=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/tag.c,v retrieving revision 1.15 retrieving revision 1.16 diff -c -r1.15 -r1.16 *** src/usr.bin/mandoc/tag.c 2016/11/08 15:57:12 1.15 --- src/usr.bin/mandoc/tag.c 2016/11/08 16:23:37 1.16 *************** *** 1,4 **** ! /* $OpenBSD: tag.c,v 1.15 2016/11/08 15:57:12 schwarze Exp $ */ /* * Copyright (c) 2015, 2016 Ingo Schwarze * --- 1,4 ---- ! /* $OpenBSD: tag.c,v 1.16 2016/11/08 16:23:37 schwarze Exp $ */ /* * Copyright (c) 2015, 2016 Ingo Schwarze * *************** *** 153,166 **** } else { /* A better entry is already present, ignore the new one. */ ! if (entry->prio < prio) return; /* The existing entry is worse, clear it. */ ! if (entry->prio > prio) entry->nlines = 0; } --- 153,174 ---- } else { + /* Handle priority 0 entries. */ + + if (prio == 0) { + if (entry->prio == 0) + entry->prio = -1; + return; + } + /* A better entry is already present, ignore the new one. */ ! if (entry->prio > 0 && entry->prio < prio) return; /* The existing entry is worse, clear it. */ ! if (entry->prio < 1 || entry->prio > prio) entry->nlines = 0; } *************** *** 192,198 **** stream = fdopen(tag_files.tfd, "w"); entry = ohash_first(&tag_data, &slot); while (entry != NULL) { ! if (stream != NULL) for (i = 0; i < entry->nlines; i++) fprintf(stream, "%s %s %zu\n", entry->s, tag_files.ofn, entry->lines[i]); --- 200,206 ---- stream = fdopen(tag_files.tfd, "w"); entry = ohash_first(&tag_data, &slot); while (entry != NULL) { ! if (stream != NULL && entry->prio >= 0) for (i = 0; i < entry->nlines; i++) fprintf(stream, "%s %s %zu\n", entry->s, tag_files.ofn, entry->lines[i]);