/var/db/man.db
and returns the results in a format which can be piped to a pager
int
run_query_pager(sqlite3 *db, query_args *args)
)
is very similar to
run_query_html(3)
but with following two differences.
)
function will return 0 and in case of an error -1 will be returned.
/var/db/man.db
#include
query_args args;
FILE *pager = popen("more", "w");
char *errmsg = NULL;
const char **sec_nums = {NULL, "2", "3", NULL, NULL, NULL, NULL, NULL, NULL};
args.search_str = argv[1];
args.sec_nums = sec_nums;
args.nrec = "10";
args.callback = &query_callback;
args.callback_data = (void *)pager;
args.errmsg = &errmsg;
if (run_query(db, &args) < 0)
errx(EXIT_FAILURE, "%s", errmsg);
}
free(query);
free(errmsg);
pclose(pager);
static int
query_callback(void *data, int ncol, char **col_values, char **col_names)
{
FILE *out = (FILE *) data;
char *html_result = col_values[0];
fprintf(out, "%s\n", html_result);
return 0;
}
|
|
|