ENTRY { author } {} { label } INTEGERS { nameptr namesleft numnames } STRINGS { s t } FUNCTION {format.names} { 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{ff}|{vv}|{ll}|{jj}" format.name$ write$ newline$ s nameptr "{f}|{v}|{l}|{j}" format.name$ write$ newline$ s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ write$ newline$ s nameptr "{f~}{vv~}{ll}{, jj}" format.name$ write$ newline$ namesleft #1 - 'namesleft := nameptr #1 + 'nameptr := } while$ } FUNCTION {format.authors} { author empty$ { "" } { author format.names } if$ } READ ITERATE {format.authors}