Module Name: src
Committed By: christos
Date: Fri Mar 29 20:46:07 UTC 2013
Modified Files:
src/usr.sbin/makemandb: apropos-utils.c
Log Message:
fix legacy mode in pager filter. (don't ul format if we are not formatting).
To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/usr.sbin/makemandb/apropos-utils.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/makemandb/apropos-utils.c
diff -u src/usr.sbin/makemandb/apropos-utils.c:1.13 src/usr.sbin/makemandb/apropos-utils.c:1.14
--- src/usr.sbin/makemandb/apropos-utils.c:1.13 Fri Mar 29 16:37:00 2013
+++ src/usr.sbin/makemandb/apropos-utils.c Fri Mar 29 16:46:07 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: apropos-utils.c,v 1.13 2013/03/29 20:37:00 christos Exp $ */
+/* $NetBSD: apropos-utils.c,v 1.14 2013/03/29 20:46:07 christos Exp $ */
/*-
* Copyright (c) 2011 Abhinav Upadhyay <[email protected]>
* All rights reserved.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: apropos-utils.c,v 1.13 2013/03/29 20:37:00 christos Exp $");
+__RCSID("$NetBSD: apropos-utils.c,v 1.14 2013/03/29 20:46:07 christos Exp $");
#include <sys/queue.h>
#include <sys/stat.h>
@@ -735,11 +735,14 @@ run_query_html(sqlite3 *db, query_args *
* underline a string, pager style.
*/
static char *
-ul_pager(const char *s)
+ul_pager(int ul, const char *s)
{
size_t len;
char *dst, *d;
+ if (!ul)
+ return estrdup(s);
+
// a -> _\ba
len = strlen(s) * 3 + 1;
@@ -767,7 +770,7 @@ callback_pager(void *data, const char *s
char *psnippet;
const char *temp = snippet;
int count = 0;
- int i = 0;
+ int i = 0, did;
size_t sz = 0;
size_t psnippet_length;
@@ -792,6 +795,7 @@ callback_pager(void *data, const char *s
* 2. The bytes after \002 need to be overstriked till we encounter \003.
* 3. To overstrike a byte 'A' we need to write 'A\bA'
*/
+ did = 0;
while (*snippet) {
sz = strcspn(snippet, "\002");
memcpy(&psnippet[i], snippet, sz);
@@ -804,6 +808,7 @@ callback_pager(void *data, const char *s
if (*snippet == '\002')
snippet++;
while (*snippet && *snippet != '\003') {
+ did = 1;
psnippet[i++] = *snippet;
psnippet[i++] = '\b';
psnippet[i++] = *snippet++;
@@ -813,9 +818,9 @@ callback_pager(void *data, const char *s
}
psnippet[i] = 0;
- char *ul_section = ul_pager(section);
- char *ul_name = ul_pager(name);
- char *ul_name_desc = ul_pager(name_desc);
+ char *ul_section = ul_pager(did, section);
+ char *ul_name = ul_pager(did, name);
+ char *ul_name_desc = ul_pager(did, name_desc);
(orig_data->callback)(orig_data->data, ul_section, ul_name,
ul_name_desc, psnippet, psnippet_length);
free(ul_section);