colonel@sunybcs.UUCP (Col. G. L. Sicherman) (11/06/86)
Bib disambiguates only successive references. Thus if your citation template differs from your sort template, references may not be dis- ambiguated properly. Example: bibl %A Abel Abel .\" bib -c3\ D | ditroff -ms %T All about Aardvarks Much has been written about %I Aeolipile Press aardvarks [. abel aardvarks .]. %D 1986 Some regard them as a sort of behemoth [. abel baker behemoths .]; %A Abel Abel others consider them superior to %A Baker Baker cats [. abel cats .]. %T Beset by Behemoths %I Basilisk Press REFERENCES. %D 1986 [Abel 1986] %A Abel Abel A. Abel, _All about Aardvarks,_ %T Cats Can't Count Aeolipile Press, 1986. %I Cat-O-Print Co. %D 1986 [Abel and Baker 1986] A. Abel and B. Baker, _Beset by Behemoths,_ Basilisk Press, 1986. [Abel 1986] A. Abel, _Cats Can't Count,_ Cat-O-Print Co., 1986. Here's a quick, ugly fix. The source file is bibargs.c. ------------------------- 994a995,999 > /* > * Bug fix: if sort template != citation template, equal citation > * strings may not be adjacent. Quick kluge is to compare all > * strings (yuk). --the Colonel, 5 Nov 1986 > */ 999,1000c1004,1006 < for (i = 0; i < numrefs-1; i = j) { < j = i + 1; --- > for (i = 0; i < numrefs-1; i++) { > adstr = 'a'; > for (j = i + 1; j < numrefs; j++) 1002,1009c1008,1009 < adstr = 'a'; < for(j = i+1; < j<numrefs && strcmp(refinfo[i].ri_cite,refinfo[j].ri_cite) == 0; < j++) { < adstr = 'a' + (j-i); < refinfo[j].ri_disambig[0] = adstr; < } < refinfo[i].ri_disambig[0] = 'a'; --- > refinfo[i].ri_disambig[0] = 'a'; > refinfo[j].ri_disambig[0] = ++adstr; -- Col. G. L. Sicherman UU: ...{rocksvax|decvax}!sunybcs!colonel CS: colonel@buffalo-cs BI: colonel@sunybcs, csdsiche@sunyabvc