%% 
%% This is file `birthday.bst',
%% generated with the docstrip utility.
%% 
%% The original source files were:
%% 
%% scrlettr.dtx  (with options: `birthday,bst')
%% 
%% BibTeX-Database to scrletter converter 
%% by Axel Kielhorn 1996/06/06 
%% little correction by Markus Kohm 1996/11/13 
%% 
%% Based on: 
%% BibTeX bibliography style `address' 
%% Gerd Neugebauer 1994 
%% 
%% This is only one way to use the address-database-layout defined by 
%% Gerd Neugebauer. 
%% Use this as an example for your own conversion program. 
%% 
 % This file prints the entries with birthdays only.
 % The entries are sorted by month and inside one month by date.

ENTRY
  { name
    title
    organization
    city
    zip
    country
    street
    phone
    fax
    net
    note
    key
    birthday
    nbirthday
  }
  {}
  { b.month }
STRINGS { cur.month num.index alpha.index}
FUNCTION {get.names}
{ name empty$
  { organization empty$
    { "{}{}" }
    { organization "{}" * }
    if$
  }
  {  "{" name #1 "{ll}" format.name$ "}" * *
     "{" name #1 "{ff}" format.name$ "}" * * *
  }
  if$
}
FUNCTION {print.adrchr}
{ b.month cur.month =
  'skip$
  { newline$ "\adrchar{\convdate{" b.month "}}" * * write$ newline$
    b.month 'cur.month :=
  }
  if$
}
FUNCTION{address}
{ birthday empty$
  'skip$
  {
  print.adrchr
  "\adrentry" write$
    get.names write$ newline$
    "{"
    street empty$
      { "" }
      { street }
      if$
    " \\ " * *
    zip empty$
      { "" }
      { zip }
      if$
    " " * *
    city empty$
      { "" }
      { city }
      if$
    "}{" * *
    phone empty$
      { "" }
      { phone }
      if$
    "}{}{}{" * *
    birthday empty$
      { "" }
      { birthday }
      if$
    "}{}" * * write$ newline$
  }
  if$
}
FUNCTION{presort}
{nbirthday empty$
  { "" }
  { nbirthday }
  if$
  duplicate$
  'sort.key$ :=
  #1 #2 substring$
  'b.month :=
}
READ
ITERATE {presort}
SORT
FUNCTION {begin.bib}
{
"\def\convdate#1{\ifcase#1 \or 1 \or 2 \or 3 \or 4 \or 5 "
"\or 6 \or 7 \or 8 \or 9 \or 10 \or 11 \or 12 \fi}" * 'num.index :=

"\def\convdate#1{\ifcase#1 \or Januar \or Februar \or M{^^b a}rz "
"\or April \or Mai \or Juni \or Juli \or August \or September "
"\or November \or Dezember \fi}" * * 'alpha.index :=
 % num.index write$
 alpha.index write$
  newline$
  preamble$ empty$
    'skip$
    { preamble$ write$ newline$ }
  if$
  "00" 'cur.month :=
}

EXECUTE {begin.bib}

ITERATE {call.type$}

FUNCTION {end.bib}
{ newline$
}

EXECUTE {end.bib}

%% 
%% End of file `birthday.bst'.
