Page MenuHomeFreeBSD

D17454.diff
No OneTemporary

D17454.diff

Index: head/contrib/mandoc/main.c
===================================================================
--- head/contrib/mandoc/main.c
+++ head/contrib/mandoc/main.c
@@ -248,7 +248,13 @@
outmode = OUTMODE_ALL;
break;
case 'M':
+#ifdef __FreeBSD__
+ defpaths = strdup(optarg);
+ if (defpaths == NULL)
+ err(1, "strdup");
+#else
defpaths = optarg;
+#endif
break;
case 'm':
auxpaths = optarg;
@@ -380,9 +386,34 @@
outmode == OUTMODE_ONE)
search.firstmatch = 1;
+#ifdef __FreeBSD__
+ /*
+ * Use manpath(1) to populate defpaths if -M is not specified.
+ * Don't treat any failures as fatal.
+ */
+ if (defpaths == NULL) {
+ FILE *fp;
+ size_t linecap = 0;
+ ssize_t linelen;
+
+ if ((fp = popen("/usr/bin/manpath -q", "r")) != NULL) {
+ if ((linelen = getline(&defpaths,
+ &linecap, fp)) > 0) {
+ /* Strip trailing newline */
+ defpaths[linelen - 1] = '\0';
+ }
+ pclose(fp);
+ }
+ }
+#endif
+
/* Access the mandoc database. */
manconf_parse(&conf, conf_file, defpaths, auxpaths);
+#ifdef __FreeBSD__
+ free(defpaths);
+#endif
+
if ( ! mansearch(&search, &conf.manpath,
argc, argv, &res, &sz))
usage(search.argmode);

File Metadata

Mime Type
text/plain
Expires
Mon, Oct 28, 12:49 PM (21 h, 27 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14368238
Default Alt Text
D17454.diff (1 KB)

Event Timeline