FUNCTION {format.names} { 's := #1 'nameptr := s num.names$ 'numnames := numnames 'namesleft := { namesleft #0 > } { s nameptr "{vv~}{ll}{, jj}{, f.}" format.name$ 't := nameptr #4 = { "others" 't := #1 'namesleft := } 'skip$ if$ nameptr #1 > { namesleft #1 > { ", " * t * } { t "others" = { " et~al." * } { numnames #2 > { ", " * } 'skip$ if$ bbl.and space.word * t * } if$ } if$ } 't if$ nameptr #1 + 'nameptr := namesleft #1 - 'namesleft := } while$ }