source: doc/papers/AMA/AMA-stix/ama/WileyNJD-AMA.bst.orig @ ce1d721

ADTast-experimentalpthread-emulation
Last change on this file since ce1d721 was d046db2, checked in by Peter A. Buhr <pabuhr@…>, 7 years ago

relocate AMA paper macros

  • Property mode set to 100644
File size: 18.8 KB
Line 
1%
2% THIS IS AN ALPHA VERSION!!!
3%
4% USE AT YOUR OWN RISK
5%
6% This should work for articles...I don't know if it works well for
7% books, etc (give it a try and see!).
8%
9% PLEASE COMPARE RESULTS WITH THE INSTRUCTIONS FOR AUTHORS FOR THE
10% JOURNAL YOU ARE SUBMITTING FOR...I CANNOT ACCEPT RESPONSIBILITY
11% FOR REJECTED MANUSCRIPTS (but I will try to fix it if you point out
12% a bug)
13%
14% AMA Manual of Style (JAMA, Cancer, many others..)
15%    -Up to 6 authors, otherwise 3 authors et al.
16%    -Title in italics
17%    -numeric labels
18%    -order-of-reference.
19%   
20%    Author L, Author S, Author D, et al. Title. Journal.
21%    YYYY;VOL(NUM):PPP-PPP.
22%
23%
24%   History
25%    9/30/85    (HWT)   IEETR Original version, by Howard Trickey.
26%    1/29/88    (OP&HWT) Updated for BibTeX version 0.99a, Oren Patashnik;
27%    3/27/02    IEETR style used as framework.  Formats heavily changed by
28%               Eric Kort (eric.kort@vai.org)
29%
30%           THIS VERSION DOES NOT WORK WITH BIBTEX 0.98i.
31%
32
33ENTRY
34  { address
35    author
36    booktitle
37    chapter
38    edition
39    editor
40    howpublished
41    institution
42    journal
43    key
44    month
45    note
46    number
47    organization
48    pages
49    publisher
50    school
51    series
52    title
53    type
54    volume
55    year
56  }
57  {}
58  { label }
59
60INTEGERS { output.state before.all mid.sentence after.quote after.sentence
61        after.quoted.block after.block }
62
63FUNCTION {init.state.consts}
64{ #0 'before.all :=
65  #1 'mid.sentence :=
66  #2 'after.quote :=
67  #3 'after.sentence :=
68  #4 'after.quoted.block :=
69  #5 'after.block :=
70}
71
72STRINGS { s t }
73
74FUNCTION {output.nonnull}
75{ 's :=
76  output.state mid.sentence =
77    { "" * write$ }
78    { output.state after.quote =
79    { " " * write$ }
80    { output.state after.block =
81        { add.period$ write$
82          newline$
83          "\newblock " write$
84        }
85        { output.state before.all =
86        'write$
87        { output.state after.quoted.block =
88            { write$
89              newline$
90              "\newblock " write$
91            }
92            { add.period$ " " * write$ }
93          if$
94        }
95          if$
96        }
97      if$
98    }
99      if$
100      mid.sentence 'output.state :=
101    }
102  if$
103  s
104}
105
106FUNCTION {output}
107{ duplicate$ empty$
108    'pop$
109    'output.nonnull
110  if$
111}
112
113FUNCTION {output.check}
114{ 't :=
115  duplicate$ empty$
116    { pop$ "empty " t * " in " * cite$ * warning$ }
117    'output.nonnull
118  if$
119}
120
121FUNCTION {output.bibitem}
122{ newline$
123  "\bibitem{" write$
124  cite$ write$
125  "}" write$
126  newline$
127  ""
128  before.all 'output.state :=
129}
130
131FUNCTION {blank.sep}
132{ after.quote 'output.state :=
133}
134
135FUNCTION {fin.entry}
136{ output.state after.quoted.block =
137    'skip$
138    'add.period$
139  if$
140  write$
141  newline$
142}
143
144FUNCTION {new.block}
145{ output.state before.all =
146    'skip$
147    { output.state after.quote =
148    { after.quoted.block 'output.state := }
149    { after.block 'output.state := }
150      if$
151    }
152  if$
153}
154
155FUNCTION {new.sentence}
156{ output.state after.block =
157    'skip$
158    { output.state before.all =
159    'skip$
160    { after.sentence 'output.state := }
161      if$
162    }
163  if$
164}
165
166FUNCTION {not}
167{   { #0 }
168    { #1 }
169  if$
170}
171
172FUNCTION {and}
173{   'skip$
174    { pop$ #0 }
175  if$
176}
177
178FUNCTION {or}
179{   { pop$ #1 }
180    'skip$
181  if$
182}
183
184FUNCTION {new.block.checka}
185{ empty$
186    'skip$
187    'new.block
188  if$
189}
190
191FUNCTION {new.block.checkb}
192{ empty$
193  swap$ empty$
194  and
195    'skip$
196    'new.block
197  if$
198}
199
200FUNCTION {new.sentence.checka}
201{ empty$
202    'skip$
203    'new.sentence
204  if$
205}
206
207FUNCTION {field.or.null}
208{ duplicate$ empty$
209    { pop$ "" }
210    'skip$
211  if$
212}
213
214FUNCTION {emphasize}
215{ duplicate$ empty$
216    { pop$ "" }
217    { "{\it " swap$ * "}" * }
218  if$
219}
220
221INTEGERS { nameptr namesleft numnames etal}
222
223FUNCTION {format.names}
224{ 's :=  % push the name s, pop s and author (already on stack), assign author to s
225  #1 'nameptr :=
226  #0 'etal :=
227
228  s num.names$ 'numnames :=
229 
230  numnames #6 >
231    {#3 'numnames :=
232     #1 'etal :=
233    }
234    {}
235    %end if
236  if$
237 
238  numnames 'namesleft :=
239  { namesleft #0 > }
240
241  {s nameptr "{ll~}{ff}" format.name$ 't :=
242    namesleft #1 >
243    {t * ", " * }
244    {t}
245    %end if
246    if$
247    nameptr #1 + 'nameptr :=
248    namesleft #1 - 'namesleft :=
249  }
250  while$
251
252  etal
253    {", et al. "}
254    {". "}
255  if$
256  *
257}
258
259FUNCTION {format.editors.names}
260{ 's :=  % push the name s, pop s and author (already on stack), assign author to s
261  #1 'nameptr :=
262  #0 'etal :=
263
264  s num.names$ 'numnames :=
265 
266  numnames #6 >
267    {#3 'numnames :=
268     #1 'etal :=
269    }
270    {}
271    %end if
272  if$
273 
274  numnames 'namesleft :=
275  { namesleft #0 > }
276
277  {s nameptr "{ll~}{ff}" format.name$ 't :=
278    namesleft #1 >
279    {t * ", " * }
280    {t}
281    %end if
282    if$
283    nameptr #1 + 'nameptr :=
284    namesleft #1 - 'namesleft :=
285  }
286  while$
287
288  etal
289    {", et al. "}
290    {""}
291  if$
292  *
293}
294
295FUNCTION {format.authors}
296{ author empty$
297    { "" }
298    { author format.names }
299  if$
300}
301
302FUNCTION {format.editors}
303{ editor empty$
304    { "" }
305    { editor format.editors.names
306      editor num.names$ #1 >
307    { ", eds." * }
308    { ", ed." * }
309      if$
310    }
311  if$
312}
313
314FUNCTION {format.title}
315{ title empty$
316    { "" }
317    { title ". " *}% modified by SPi-Global on 12Jun2017
318  if$
319}
320
321FUNCTION {format.journal}
322{ journal empty$
323    { "" }
324    { journal ". " *}
325  if$
326}
327
328FUNCTION {format.title.p}
329{ title empty$
330    { "" }
331    { title " " *}
332  if$
333}
334
335FUNCTION {n.dashify}
336{ 't :=
337  ""
338    { t empty$ not }
339    { t #1 #1 substring$ "-" =
340    { t #1 #2 substring$ "--" = not
341        { "--" *
342          t #2 global.max$ substring$ 't :=
343        }
344        {   { t #1 #1 substring$ "-" = }
345        { "-" *
346          t #2 global.max$ substring$ 't :=
347        }
348          while$
349        }
350      if$
351    }
352    { t #1 #1 substring$ *
353      t #2 global.max$ substring$ 't :=
354    }
355      if$
356    }
357  while$
358}
359
360FUNCTION {format.date}
361{ year empty$
362    { "" }
363    { "" * year }
364  if$
365}
366
367FUNCTION {inproformat.date}
368{ year empty$
369    { "" }
370    { "; " * year }
371  if$
372}
373
374FUNCTION {format.btitle}
375%%{ title emphasize
376{ title % modified by SPi-Global on 12Jun2017
377}
378
379FUNCTION {tie.or.space.connect}
380{ duplicate$ text.length$ #3 <
381    { "~" }
382    { " " }
383  if$
384  swap$ * *
385}
386
387FUNCTION {either.or.check}
388{ empty$
389    'pop$
390    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
391  if$
392}
393
394FUNCTION {format.bvolume}
395{ volume empty$
396    { "" }
397    { series empty$
398    'skip$
399    { " " * series * ", vol. " volume * ": " *}
400      if$
401      "volume and number" number either.or.check
402    }
403  if$
404}
405
406FUNCTION {format.number.series}
407{ volume empty$
408    { number empty$
409    { series field.or.null }
410    { output.state mid.sentence =
411        { "no.~" }
412        { "No.~" }
413      if$
414      number *
415      series empty$
416        { "there's a number but no series in " cite$ * warning$ }
417        { " in " * series * }
418      if$
419    }
420      if$
421    }
422    { "" }
423  if$
424}
425
426FUNCTION {format.edition}
427{ edition empty$
428    { "" }
429    { edition "l" change.case$ "~ed." * }
430  if$
431}
432
433INTEGERS { multiresult }
434
435FUNCTION {multi.page.check}
436{ 't :=
437  #0 'multiresult :=
438    { multiresult not
439      t empty$ not
440      and
441    }
442    { t #1 #1 substring$
443      duplicate$ "-" =
444      swap$ duplicate$ "," =
445      swap$ "+" =
446      or or
447    { #1 'multiresult := }
448    { t #2 global.max$ substring$ 't := }
449      if$
450    }
451  while$
452  multiresult
453}
454
455FUNCTION {format.pages}
456{ pages empty$
457    { "" }
458    {":" pages *}
459  if$
460}
461
462FUNCTION {incollecformat.pages}
463{ pages empty$
464    { "" }
465    {" (pp. " pages * ")" *}
466  if$
467}
468
469FUNCTION {format.volume}
470{ volume empty$
471    { "" }
472    { "" volume * }
473  if$
474}
475
476FUNCTION {format.number}
477{ number empty$
478    { "" }
479    { "(" number * ")" *}
480  if$
481}
482
483FUNCTION {format.chapter.pages}
484{ chapter empty$
485    'format.pages
486    { type empty$
487    { "ch.~" chapter * }
488    { type "l" change.case$ chapter tie.or.space.connect }
489      if$
490      pages empty$
491    'skip$
492    { ", " * format.pages * }
493      if$
494    }
495  if$
496}
497
498FUNCTION {format.in.ed.booktitle}
499{ booktitle empty$
500    { "In: " }
501    { "In: "
502      editor empty$
503    'skip$
504    { " " * format.editors * " " * booktitle emphasize * ", " * }
505      if$
506    }
507  if$
508}
509
510FUNCTION {format.thesis.type}
511{ type empty$
512    'skip$
513    { pop$
514      output.state after.block =
515    { type "t" change.case$ }
516    { type "l" change.case$ }
517      if$
518    }
519  if$
520}
521
522FUNCTION {empty.misc.check}
523{ author empty$ title empty$ howpublished empty$
524  month empty$ year empty$ note empty$
525  and and and and and
526    { "all relevant fields are empty in " cite$ * warning$ }
527    'skip$
528  if$
529}
530
531FUNCTION {format.tr.number}
532{ type empty$
533    %%{ "Tech. Rep." }% modified by SPi-Global - 16Jun2017
534    { "" }
535    'type
536  if$
537  number empty$
538    { "l" change.case$ }
539    { number tie.or.space.connect }
540  if$
541}
542
543FUNCTION {format.addr.pub}
544{ publisher empty$
545    { "" }
546    { address empty$
547    { "" }
548    { address ": " * }
549      if$
550      publisher * " " *
551    }
552  if$
553}
554
555FUNCTION {format.book.addr.pub}
556{ publisher empty$
557    { "" }
558    { address empty$
559    { "" }
560    { address ": " * }
561      if$
562      publisher * "; " *
563    }
564  if$
565}
566
567FUNCTION {format.paddress}
568{ address empty$
569    { "" }
570    { "(" address * ")" * }
571  if$
572}
573
574FUNCTION {format.ppaddress}
575{ address empty$
576    { "" }
577    { "; " address * "" * }
578  if$
579}
580
581FUNCTION {format.article.crossref}
582{ key empty$
583    { journal empty$
584    { "need key or journal for " cite$ * " to crossref " * crossref *
585      warning$
586      ""
587    }
588    { "in {\em " journal * "\/}" * }
589      if$
590    }
591    { "in " key * }
592  if$
593  " \cite{" * crossref * "}" *
594}
595
596FUNCTION {format.crossref.editor}
597{ editor #1 "{vv~}{ll}" format.name$
598  editor num.names$ duplicate$
599  #2 >
600    { pop$ " {\em et~al.}" * }
601    { #2 <
602    'skip$
603    { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
604        { " {\em et~al.}" * }
605        { " and " * editor #2 "{vv~}{ll}" format.name$ * }
606      if$
607    }
608      if$
609    }
610  if$
611}
612
613FUNCTION {format.book.crossref}
614{ volume empty$
615    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
616      "In "
617    }
618    { "Vol.~" volume *
619      " of " *
620    }
621  if$
622  editor empty$
623  editor field.or.null author field.or.null =
624  or
625    { key empty$
626    { series empty$
627        { "need editor, key, or series for " cite$ * " to crossref " *
628          crossref * warning$
629          "" *
630        }
631        { "{\em " * series * "\/}" * }
632      if$
633    }
634    { key * }
635      if$
636    }
637    { format.crossref.editor * }
638  if$
639  " \cite{" * crossref * "}" *
640}
641
642FUNCTION {format.incoll.inproc.crossref}
643{ editor empty$
644  editor field.or.null author field.or.null =
645  or
646    { key empty$
647    { booktitle empty$
648        { "need editor, key, or booktitle for " cite$ * " to crossref " *
649          crossref * warning$
650          ""
651        }
652        { "in {\em " booktitle * "\/}" * }
653      if$
654    }
655    { "in " key * }
656      if$
657    }
658    { "in " format.crossref.editor * }
659  if$
660  " \cite{" * crossref * "}" *
661}
662
663FUNCTION {no.blank.or.punct}
664{  "" * before.all 'output.state :=
665}
666
667FUNCTION {add.semicolon}
668{
669  ";" *
670  no.blank.or.punct
671}
672
673FUNCTION {add.colon}
674{
675  ": " *
676  no.blank.or.punct
677}
678
679FUNCTION {add.space}
680{
681  " " *
682  no.blank.or.punct
683}
684
685FUNCTION {article}
686{ output.bibitem
687  format.authors "author" output.check
688  format.title "title" output.check
689  blank.sep
690  crossref missing$
691    { format.journal emphasize "journal" output.check
692      format.date add.semicolon "year" output.check
693      format.volume output
694      format.number output
695      format.pages output
696    }
697    { format.article.crossref output.nonnull
698      format.pages output
699    }
700  if$
701  new.block
702  note output
703  fin.entry
704}
705
706FUNCTION {book}
707{ output.bibitem
708  author empty$
709    { format.editors "author and editor" output.check }
710    { format.authors output.nonnull
711      crossref missing$
712    { "author and editor" editor either.or.check }
713    'skip$
714      if$
715    }
716  if$
717  format.btitle emphasize "title"  output.check
718  crossref missing$
719    { format.bvolume output
720      new.block
721      format.number.series output
722      format.book.addr.pub "publisher" output.check
723    }
724    { new.block
725      format.book.crossref output.nonnull
726    }
727  if$
728  format.edition output
729  format.date "year" output.check
730  new.block
731  note output
732  fin.entry
733}
734
735FUNCTION {booklet}
736{ output.bibitem
737  format.authors output
738  title empty$
739    { "empty title in " cite$ * warning$
740      howpublished new.sentence.checka
741    }
742    { howpublished empty$ not
743      address empty$ month empty$ year empty$ and and
744      or
745    { format.title.p output.nonnull }
746    { format.title output.nonnull }
747      if$
748      blank.sep
749    }
750  if$
751  howpublished output
752  address output
753  format.date output
754  new.block
755  note output
756  fin.entry
757}
758
759FUNCTION {inbook}
760{ output.bibitem
761  author empty$
762    { format.editors "author and editor" output.check }
763    { format.authors output.nonnull
764      crossref missing$
765    { "author and editor" editor either.or.check }
766    'skip$
767      if$
768    }
769  if$
770  format.btitle "title" output.check
771  crossref missing$
772    { format.bvolume output
773      format.chapter.pages "chapter and pages" output.check
774      new.block
775      format.number.series output
776      format.addr.pub "publisher" output.check
777    }
778    { format.chapter.pages "chapter and pages" output.check
779      new.block
780      format.book.crossref output.nonnull
781    }
782  if$
783  format.edition output
784  format.date "year" output.check
785  new.block
786  note output
787  fin.entry
788}
789
790FUNCTION {incollection}
791{ output.bibitem
792  format.authors "author" output.check
793  format.title "title" output.check
794  blank.sep
795  crossref missing$
796    { format.in.ed.booktitle "booktitle" output.check
797      format.number.series add.period$ add.space output
798      format.bvolume output
799      format.addr.pub "publisher" output.check
800      format.edition output
801      format.date "year" output.check
802      %%format.chapter.pages output
803      incollecformat.pages output
804    }
805    { format.incoll.inproc.crossref output.nonnull
806      format.chapter.pages output
807    }
808  if$
809  new.block
810  note output
811  fin.entry
812}
813
814FUNCTION {inproceedings}
815{ output.bibitem
816  format.authors "author" output.check
817  format.title "title" output.check
818  blank.sep
819  crossref missing$
820    { format.in.ed.booktitle "booktitle" output.check
821      format.bvolume output
822      format.number.series output
823      format.pages output
824      organization output
825      publisher output
826      inproformat.date "year" output.check
827      format.ppaddress output
828    }
829    { format.incoll.inproc.crossref output.nonnull
830      format.pages output
831    }
832  if$
833  new.block
834  note output
835  fin.entry
836}
837
838FUNCTION {conference} { inproceedings }
839
840FUNCTION {manual}
841{ output.bibitem
842  author empty$
843    { organization empty$
844    'skip$
845    { organization output.nonnull
846      address output
847    }
848      if$
849    }
850    { format.authors output.nonnull }
851  if$
852  format.btitle "title" output.check
853  author empty$
854    { organization empty$
855    { address new.block.checka
856      address output
857    }
858    'skip$
859      if$
860    }
861    { organization address new.block.checkb
862      organization output
863      address output
864    }
865  if$
866  format.edition output
867  format.date output
868  new.block
869  note output
870  fin.entry
871}
872
873FUNCTION {mastersthesis}
874{ output.bibitem
875  format.authors "author" output.check
876  format.title "title" output.check
877  blank.sep
878  "Master's thesis" format.thesis.type output.nonnull
879  school "school" output.check
880  address output
881  format.date "year" output.check
882  new.block
883  note output
884  fin.entry
885}
886
887FUNCTION {format.note}
888{ note empty$
889    { "" }
890    { note "; " *}
891  if$
892}
893
894FUNCTION {misc}
895{ output.bibitem
896  format.authors output
897  title empty$
898    { howpublished new.sentence.checka }
899    { howpublished empty$ not
900      month empty$ year empty$ and
901      or
902    { format.title.p output.nonnull }
903    { format.title emphasize output.nonnull }
904      if$
905      blank.sep
906    }
907  if$
908  howpublished output
909  format.note output
910  %%new.block
911  format.date output
912  fin.entry
913  empty.misc.check
914}
915
916FUNCTION {phdthesis}
917{ output.bibitem
918  format.authors "author" output.check
919  format.btitle "title" output.check
920  new.block
921  "PhD thesis" format.thesis.type output.nonnull
922  school "school" output.check
923  address output
924  format.date "year" output.check
925  new.block
926  note output
927  fin.entry
928}
929
930FUNCTION {proceedings}
931{ output.bibitem
932  editor empty$
933    { organization output }
934    { format.editors output.nonnull }
935  if$
936  format.btitle "title" output.check
937  format.bvolume output
938  format.number.series output
939  format.paddress output
940  editor empty$
941    'skip$
942    { organization output }
943  if$
944  publisher output
945  format.date "year" output.check
946  new.block
947  note output
948  fin.entry
949}
950
951FUNCTION {add.spperiod}
952{
953  ". " *
954  no.blank.or.punct
955}
956
957FUNCTION {techreport}
958{ output.bibitem
959  format.authors "author" output.check
960  format.title emphasize "title" output.check
961  blank.sep
962  format.tr.number add.colon output.nonnull
963  institution "institution" output.check
964  address output
965  add.semicolon add.space format.date "year" output.check
966  new.block
967  note output
968  fin.entry
969}
970
971FUNCTION {unpublished}
972{ output.bibitem
973  format.authors "author" output.check
974  format.title.p "title" output.check
975  blank.sep
976  note "note" output.check
977  format.date output
978  fin.entry
979}
980
981FUNCTION {default.type} { misc }
982
983MACRO {jan} {"Jan."}
984
985MACRO {feb} {"Feb."}
986
987MACRO {mar} {"Mar."}
988
989MACRO {apr} {"Apr."}
990
991MACRO {may} {"May"}
992
993MACRO {jun} {"June"}
994
995MACRO {jul} {"July"}
996
997MACRO {aug} {"Aug."}
998
999MACRO {sep} {"Sept."}
1000
1001MACRO {oct} {"Oct."}
1002
1003MACRO {nov} {"Nov."}
1004
1005MACRO {dec} {"Dec."}
1006
1007MACRO {acmcs} {"ACM Computing Surveys"}
1008
1009MACRO {acta} {"Acta Informatica"}
1010
1011MACRO {cacm} {"Communications ACM"}
1012
1013MACRO {ibmjrd} {"IBM J. Research and Development"}
1014
1015MACRO {ibmsj} {"IBM Systems~J."}
1016
1017MACRO {ieeese} {"IEEE Trans. Software Engineering"}
1018
1019MACRO {ieeetc} {"IEEE Trans. Computers"}
1020
1021MACRO {ieeetcad}
1022 {"IEEE Trans. Computer-Aided Design"}
1023
1024MACRO {ipl} {"Information Processing Letters"}
1025
1026MACRO {jacm} {"J.~ACM"}
1027
1028MACRO {jcss} {"J.~Computer and System Sciences"}
1029
1030MACRO {scp} {"Science of Computer Programming"}
1031
1032MACRO {sicomp} {"SIAM J. Computing"}
1033
1034MACRO {tocs} {"ACM Trans. Computer Systems"}
1035
1036MACRO {tods} {"ACM Trans. Database Systems"}
1037
1038MACRO {tog} {"ACM Trans. Graphics"}
1039
1040MACRO {toms} {"ACM Trans. Mathematical Software"}
1041
1042MACRO {toois} {"ACM Trans. Office Information Systems"}
1043
1044MACRO {toplas} {"ACM Trans. Programming Languages and Systems"}
1045
1046MACRO {tcs} {"Theoretical Computer Science"}
1047
1048READ
1049
1050STRINGS { longest.label }
1051
1052INTEGERS { number.label longest.label.width }
1053
1054FUNCTION {initialize.longest.label}
1055{ "" 'longest.label :=
1056  #1 'number.label :=
1057  #0 'longest.label.width :=
1058}
1059
1060FUNCTION {longest.label.pass}
1061{ number.label int.to.str$ 'label :=
1062  number.label #1 + 'number.label :=
1063  label width$ longest.label.width >
1064    { label 'longest.label :=
1065      label width$ 'longest.label.width :=
1066    }
1067    'skip$
1068  if$
1069}
1070
1071EXECUTE {initialize.longest.label}
1072
1073ITERATE {longest.label.pass}
1074
1075FUNCTION {begin.bib}
1076{ preamble$ empty$
1077    'skip$
1078    { preamble$ write$ newline$ }
1079  if$
1080  "\begin{thebibliography}{"  longest.label  * "}" * write$ newline$
1081}
1082
1083EXECUTE {begin.bib}
1084
1085EXECUTE {init.state.consts}
1086
1087ITERATE {call.type$}
1088
1089FUNCTION {end.bib}
1090{ newline$
1091  "\end{thebibliography}" write$ newline$
1092}
1093
1094EXECUTE {end.bib}
Note: See TracBrowser for help on using the repository browser.