man(1): Lots of cleanup.
authorSascha Wildner <saw@online.de>
Sun, 11 Jul 2010 09:21:43 +0000 (11:21 +0200)
committerSascha Wildner <saw@online.de>
Sun, 11 Jul 2010 09:21:43 +0000 (11:21 +0200)
Remove 'register', ansify, remove dead code for Xenix and whatnot etc.

No functional changes.

Raise WARNS to 6.

21 files changed:
gnu/usr.bin/man/Makefile
gnu/usr.bin/man/Makefile.inc
gnu/usr.bin/man/TODO
gnu/usr.bin/man/apropos/Makefile
gnu/usr.bin/man/apropos/apropos.1 [moved from gnu/usr.bin/man/apropos/apropos.man with 87% similarity]
gnu/usr.bin/man/apropos/apropos.sh
gnu/usr.bin/man/lib/Makefile
gnu/usr.bin/man/lib/config.h [moved from gnu/usr.bin/man/lib/config.h_dist with 76% similarity]
gnu/usr.bin/man/lib/gripes.c
gnu/usr.bin/man/lib/gripes.h
gnu/usr.bin/man/lib/util.c
gnu/usr.bin/man/lib/util.h [new file with mode: 0644]
gnu/usr.bin/man/man/Makefile
gnu/usr.bin/man/man/glob.c
gnu/usr.bin/man/man/man.1 [moved from gnu/usr.bin/man/man/man.man with 97% similarity]
gnu/usr.bin/man/man/man.c
gnu/usr.bin/man/man/ndir.h
gnu/usr.bin/man/manpath/Makefile
gnu/usr.bin/man/manpath/manpath.1 [moved from gnu/usr.bin/man/manpath/manpath.man with 90% similarity]
gnu/usr.bin/man/manpath/manpath.c
gnu/usr.bin/man/manpath/manpath.config

index 6d255e3..15771ab 100644 (file)
@@ -4,8 +4,6 @@
 # License as specified in the README file that comes with the man 1.0
 # distribution.
 #
-# $DragonFly: src/gnu/usr.bin/man/Makefile,v 1.2 2004/03/25 18:05:49 joerg Exp $
-#
 
 SUBDIR = lib man manpath apropos
 
index 937510b..7e3477b 100644 (file)
@@ -1,5 +1,4 @@
 # $FreeBSD: src/gnu/usr.bin/man/Makefile.inc,v 1.17.2.2 2001/02/23 09:39:21 ru Exp $
-# $DragonFly: src/gnu/usr.bin/man/Makefile.inc,v 1.3 2006/07/15 07:33:05 dillon Exp $
 #
 # Set a bunch of things to hardcoded paths so that we don't accidently
 # pick up a user's own version of some utility and hose ourselves.
@@ -34,6 +33,6 @@ LIBDESTDIR=           ${.CURDIR}/../lib
 
 LIBMAN=        ${LIBDESTDIR}/libman.a
 
-WARNS?=        2
+WARNS?=        6
 
 .include "../Makefile.inc"
index 8c92023..4bc9320 100644 (file)
@@ -1,5 +1,3 @@
-$DragonFly: src/gnu/usr.bin/man/TODO,v 1.2 2008/05/17 09:16:13 swildner Exp $
-
 Things that would be nice but aren't really necessary:
 
 0.  Update the documentation.
index 55d0962..97e06ff 100644 (file)
@@ -1,22 +1,9 @@
 # $FreeBSD: src/gnu/usr.bin/man/apropos/Makefile,v 1.15.2.1 2001/04/25 14:04:13 ru Exp $
-# $DragonFly: src/gnu/usr.bin/man/apropos/Makefile,v 1.3 2004/01/31 06:56:37 dillon Exp $
 
-SCRIPTS=apropos
+SCRIPTS=apropos.sh
 MAN=   apropos.1
-CLEANFILES+= ${SCRIPTS} ${MAN}
 
 LINKS= ${BINDIR}/apropos ${BINDIR}/whatis
 MLINKS=        apropos.1 whatis.1
 
-.sh:
-       sed -e 's,%libdir%,${libdir},' -e 's,%bindir%,${bindir},' \
-           -e 's,%pager%,${pager},' \
-               ${.ALLSRC} > ${.TARGET}
-
-apropos.1: apropos.man
-       sed -e 's,%libdir%,${libdir},' -e 's,%bindir%,${bindir},' \
-           -e 's,%pager%,${pager},' -e 's,%troff%,${troff},' \
-           -e 's,%manpath_config_file%,${manpath_config_file},' \
-               ${.ALLSRC} > ${.TARGET}
-
 .include <bsd.prog.mk>
similarity index 87%
rename from gnu/usr.bin/man/apropos/apropos.man
rename to gnu/usr.bin/man/apropos/apropos.1
index 76702c3..aa79506 100644 (file)
@@ -4,7 +4,7 @@
 .\"
 .\" You may distribute under the terms of the GNU General Public
 .\" License as specified in the README file that comes with the man 1.0
-.\" distribution.  
+.\" distribution.
 .\"
 .\" John W. Eaton
 .\" jwe@che.utexas.edu
@@ -13,7 +13,6 @@
 .\" Austin, Texas  78712
 .\"
 .\" $FreeBSD: src/gnu/usr.bin/man/apropos/apropos.man,v 1.6.2.3 2002/08/11 11:18:51 ru Exp $
-.\" $DragonFly: src/gnu/usr.bin/man/apropos/apropos.man,v 1.3 2005/08/05 09:47:55 swildner Exp $
 .Dd January 15, 1991
 .Dt APROPOS 1
 .Os
@@ -32,14 +31,14 @@ searches a set of database files containing short descriptions
 of system commands for keywords and displays the result on the
 standard output.
 .Nm whatis
-displays only complete word matches. 
+displays only complete word matches.
 .Pp
 .Ar keyword
 really is an extended regular expression, please read
 .Xr grep 1
 manual page for more information about its format.
 .Sh DIAGNOSTICS
-The 
+The
 .Nm
 utility exits 0 on success, and 1 if no keyword matched.
 .Sh SEE ALSO
index 1f9cb05..b32ac37 100644 (file)
@@ -16,7 +16,6 @@
 # Austin, Texas  78712
 #
 # $FreeBSD: src/gnu/usr.bin/man/apropos/apropos.sh,v 1.12.2.2 2002/08/11 11:20:54 ru Exp $
-# $DragonFly: src/gnu/usr.bin/man/apropos/apropos.sh,v 1.2 2003/06/17 04:25:46 dillon Exp $
 
 
 PATH=/bin:/usr/bin:$PATH
@@ -40,7 +39,7 @@ case "$0" in
 esac
 
 # test manpath
-manpath=`%bindir%/manpath -q | tr : '\040'`
+manpath=`/usr/bin/manpath -q | tr : '\040'`
 case X"$manpath" in X) 
        echo "`basename $0`: manpath is null, use \"/usr/share/man\"" >&2
        manpath=/usr/share/man
@@ -50,11 +49,11 @@ esac
 
 # reset $PAGER if $PAGER is empty
 case X"$PAGER" in X) 
-       PAGER="%pager%"
+       PAGER="more -s"
        ;; 
 esac
 
-man_locales=`%bindir%/manpath -qL`
+man_locales=`/usr/bin/manpath -qL`
 
 # search for existing */whatis databases
 mandir=''
index 1c65734..c001fee 100644 (file)
@@ -1,28 +1,12 @@
 # $FreeBSD: src/gnu/usr.bin/man/lib/Makefile,v 1.11.6.1 2002/07/19 18:46:24 ru Exp $
-# $DragonFly: src/gnu/usr.bin/man/lib/Makefile,v 1.2 2003/06/17 04:25:46 dillon Exp $
 
 LIB=   man
 INTERNALLIB= true
 
-CFLAGS+= -DSTDC_HEADERS
-CLEANFILES+= config.h
 SRCS=  gripes.c util.c
 
 # Kludge to create config.h for other modules.  The library itself doesn't
 # depend on config.h.
 SRCS+= config.h
 
-config.h: ${.CURDIR}/config.h_dist ${.CURDIR}/../Makefile.inc
-       sed -e 's,%apropos%,${apropos},' -e 's,%whatis%,${whatis},' \
-           -e 's,%pager%,${pager},' -e 's,%troff%,${troff},' \
-           -e 's,%nroff%,${nroff},' -e 's,%tbl%,${tbl},' \
-           -e 's,%col%,${col},' -e 's,%pic%,${pic},' \
-           -e 's,%eqn%,${eqn},' -e 's,%neqn%,${neqn},' \
-           -e 's,%vgrind%,${vgrind},' -e 's,%refer%,${refer},' \
-           -e 's,%grap%,${grap},' -e 's,%zcat%,${zcat},' \
-           -e 's,%manpath_config_file%,${manpath_config_file},' \
-           -e 's,%compress%,${compress},' \
-           -e 's,%compext%,${compext},' \
-           ${.CURDIR}/config.h_dist > ${.TARGET}
-
 .include <bsd.lib.mk>
similarity index 76%
rename from gnu/usr.bin/man/lib/config.h_dist
rename to gnu/usr.bin/man/lib/config.h
index e764933..5c21bff 100644 (file)
@@ -3,9 +3,6 @@
  *
  * If you haven't read the README file, now might be a good time.
  *
- * This file is edited by configure, so you shouldn't have to.
- * If that doesn't work, edit this file to match your site.
- *
  * Sorry it's so long, but there are lots of things you might want to
  * customize for your site.
  *
@@ -13,7 +10,7 @@
  *
  * You may distribute under the terms of the GNU General Public
  * License as specified in the file COPYING that comes with the man
- * distribution.  
+ * distribution.
  *
  * John W. Eaton
  * jwe@che.utexas.edu
  * Austin, Texas  78712
  */
 
-/*
- * This is the size of a number of internal buffers.  It should
- * probably not be less than 512.
- */
-#ifndef BUFSIZ
-#define BUFSIZ 1024
-#endif
-
 /*
  * This should be at least the size of the longest path.
  */
 #define MAXDIRS 64
 #endif
 
-/*
- * This is the name of the group that owns the preformatted man pages.
- * If you are running man as a setgid program, you should make sure
- * that all of the preformatted man pages and the directories that
- * they live in are readable and writeable and owned by this group.
- */
-#ifdef SECURE_MAN_UID
-#define MAN_USER ""
-#endif
-
 /*
  * It's probably best to define absolute paths to all of these.  If
  * you don't, you'll be depending on the user's path to be correct
  * nroff installed.
  */
 #ifndef APROPOS
-#define APROPOS "%apropos%"
+#define APROPOS "/usr/bin/apropos"
 #endif
 
 #ifndef WHATIS
-#define WHATIS "%whatis%"
+#define WHATIS "/usr/bin/whatis"
 #endif
 
 #ifndef PAGER
-#define PAGER "%pager%"
+#define PAGER "more -s"
 #endif
 
-#ifdef HAS_TROFF
 #ifndef TROFF
-#define TROFF "%troff%"
-#endif
+#define TROFF "/usr/bin/groff -S -man"
 #endif
 
 #ifndef NROFF
-#define NROFF "%nroff%"
+#define NROFF "/usr/bin/groff -S -Wall -mtty-char -man"
 #endif
 
 #ifndef EQN
-#define EQN "%eqn%"
+#define EQN "/usr/bin/eqn"
 #endif
 
 #ifndef NEQN
-#define NEQN "%neqn%"
+#define NEQN "/usr/bin/eqn"
 #endif
 
 #ifndef TBL
-#define TBL "%tbl%"
+#define TBL "/usr/bin/tbl"
 #endif
 
 #ifndef COL
-#define COL "%col%"
+#define COL "/usr/bin/col"
 #endif
 
 #ifndef VGRIND
-#define VGRIND "%vgrind%"
+#define VGRIND "/usr/bin/vgrind"
 #endif
 
 #ifndef REFER
-#define REFER "%refer%"
+#define REFER "/usr/bin/refer"
 #endif
 
 #ifndef GRAP
-#define GRAP "%grap%"
+#define GRAP ""
 #endif
 
 #ifndef PIC
-#define PIC "%pic%"
+#define PIC "/usr/bin/pic"
 #endif
 
 /*
  * Define the absolute path to the configuration file.
  */
 #ifndef MAN_MAIN
-  static char config_file[] = "%manpath_config_file%" ;
+  static char config_file[] = "/etc/manpath.config" ;
 #endif
 
 /*
 /* .Y files */
 #define YCAT ""
 /* .Z files */
-#define ZCAT "%zcat%"
+#define ZCAT "/usr/bin/zcat -q"
 
 /*
  * This is the standard program to use on this system for compressing
  * from the standard input and write compressed output to the standard
  * output.  These won't actually be used unless compression is enabled.
  */
-#ifdef DO_COMPRESS
-#define COMPRESSOR "%compress%"
-#define COMPRESS_EXT "%compext%"
-#endif
+#define COMPRESSOR "/usr/bin/gzip -c"
+#define COMPRESS_EXT ".gz"
 
 /*
  * Define the standard manual sections.  For example, if your man
  * the normal order?  If anyone knows, please tell me!
  */
 #ifndef MANPATH_MAIN
-  static char *std_sections[] = 
+  static const char *std_sections[] =
     {
        "1", "1aout", "8", "2", "3", "n", "4", "5", "6", "7", "9", "l", NULL
     };
  * you should use 666 and make the cat* directories mode 777.
  */
 #ifndef CATMODE
-#ifdef SECURE_MAN_UID
-#define CATMODE S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH
-#else
 #define CATMODE S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH
 #endif
-#endif
index 466f0bc..b7fae02 100644 (file)
  */
 
 #include <stdio.h>
-#include "gripes.h"
-
-#ifdef STDC_HEADERS
 #include <stdlib.h>
-#else
-extern int fprintf ();
-extern int fflush ();
-extern int exit ();
-#endif
+#include "gripes.h"
 
 extern char *prognam;
 
 void
-gripe_no_name (section)
-     char *section;
+gripe_no_name (char *section)
 {
   if (section)
     fprintf (stderr, "What manual page do you want from section %s?\n",
@@ -41,8 +33,7 @@ gripe_no_name (section)
 }
 
 void
-gripe_reading_man_file (name)
-     char *name;
+gripe_reading_man_file (char *name)
 {
   fprintf (stderr, "Read access denied for file %s\n", name);
 
@@ -50,9 +41,7 @@ gripe_reading_man_file (name)
 }
 
 void
-gripe_converting_name (name, to_cat)
-     char *name;
-     int to_cat;
+gripe_converting_name (char *name, int to_cat)
 {
   if (to_cat)
     fprintf (stderr, "Error converting %s to cat name\n", name);
@@ -65,8 +54,7 @@ gripe_converting_name (name, to_cat)
 }
 
 void
-gripe_system_command (status)
-     int status;
+gripe_system_command (int status)
 {
   fprintf (stderr, "Error executing formatting or display command.\n");
   fprintf (stderr, "system command exited with status %d\n", status);
@@ -75,8 +63,7 @@ gripe_system_command (status)
 }
 
 void
-gripe_not_found (name, section)
-     char *name, *section;
+gripe_not_found (char *name, char *section)
 {
   if (section)
     fprintf (stderr, "No entry for %s in section %s of the manual\n",
@@ -88,8 +75,7 @@ gripe_not_found (name, section)
 }
 
 void
-gripe_incompatible (s)
-     char *s;
+gripe_incompatible (const char *s)
 {
   fprintf (stderr, "%s: incompatible options %s\n", prognam, s);
 
@@ -99,8 +85,7 @@ gripe_incompatible (s)
 }
 
 void
-gripe_getting_mp_config (file)
-     char *file;
+gripe_getting_mp_config (char *file)
 {
   fprintf (stderr, "%s: unable to find the file %s\n", prognam, file);
 
@@ -110,8 +95,7 @@ gripe_getting_mp_config (file)
 }
 
 void
-gripe_reading_mp_config (file)
-     char *file;
+gripe_reading_mp_config (char *file)
 {
   fprintf (stderr, "%s: unable to make sense of the file %s\n", prognam, file);
 
@@ -121,8 +105,7 @@ gripe_reading_mp_config (file)
 }
 
 void
-gripe_invalid_section (section)
-     char *section;
+gripe_invalid_section (char *section)
 {
   fprintf (stderr, "%s: invalid section (%s) selected\n", prognam, section);
 
@@ -132,7 +115,7 @@ gripe_invalid_section (section)
 }
 
 void
-gripe_manpath ()
+gripe_manpath (void)
 {
   fprintf (stderr, "%s: manpath is null\n", prognam);
 
@@ -142,9 +125,7 @@ gripe_manpath ()
 }
 
 void
-gripe_alloc (bytes, object)
-     int bytes;
-     char *object;
+gripe_alloc (int bytes, const char *object)
 {
   fprintf (stderr, "%s: can't malloc %d bytes for %s\n",
           prognam, bytes, object);
@@ -155,8 +136,7 @@ gripe_alloc (bytes, object)
 }
 
 void
-gripe_roff_command_from_file (file)
-     char *file;
+gripe_roff_command_from_file (char *file)
 {
   fprintf (stderr, "Error parsing *roff command from file %s\n", file);
 
@@ -164,7 +144,7 @@ gripe_roff_command_from_file (file)
 }
 
 void
-gripe_roff_command_from_env ()
+gripe_roff_command_from_env (void)
 {
   fprintf (stderr, "Error parsing MANROFFSEQ.  Using system defaults.\n");
 
@@ -172,7 +152,7 @@ gripe_roff_command_from_env ()
 }
 
 void
-gripe_roff_command_from_command_line ()
+gripe_roff_command_from_command_line (void)
 {
   fprintf (stderr, "Error parsing *roff command from command line.\n");
 
index 5fd59b2..54a948f 100644 (file)
  * Austin, Texas  78712
  */
 
-extern void gripe_no_name ();
-extern void gripe_converting_name ();
-extern void gripe_system_command ();
-extern void gripe_reading_man_file ();
-extern void gripe_not_found ();
-extern void gripe_invalid_section ();
-extern void gripe_manpath ();
-extern void gripe_alloc ();
-extern void gripe_incompatible ();
-extern void gripe_getting_mp_config ();
-extern void gripe_reading_mp_config ();
-extern void gripe_roff_command_from_file ();
-extern void gripe_roff_command_from_env ();
-extern void gripe_roff_command_from_command_line ();
+extern void gripe_no_name (char *);
+extern void gripe_converting_name (char *, int);
+extern void gripe_system_command (int);
+extern void gripe_reading_man_file (char *);
+extern void gripe_not_found (char *, char *);
+extern void gripe_invalid_section (char *);
+extern void gripe_manpath (void);
+extern void gripe_alloc (int, const char *);
+extern void gripe_incompatible (const char *);
+extern void gripe_getting_mp_config (char *);
+extern void gripe_reading_mp_config (char *);
+extern void gripe_roff_command_from_file (char *);
+extern void gripe_roff_command_from_env (void);
+extern void gripe_roff_command_from_command_line (void);
index 70d57b5..121e642 100644 (file)
  */
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/wait.h>
 
-#ifdef STDC_HEADERS
-#include <stdlib.h>
-#else
-extern int fprintf ();
-extern int tolower ();
-#endif
-
-extern char *strdup ();
-extern int system ();
-
 #include "gripes.h"
+#include "util.h"
+
+extern int debug;
 
 /*
  * Extract last element of a name like /foo/bar/baz.
  */
 char *
-mkprogname (s)
-     register char *s;
+mkprogname (char *s)
 {
   char *t;
 
@@ -52,10 +45,9 @@ mkprogname (s)
 }
 
 void
-downcase (s)
-     unsigned char *s;
+downcase (unsigned char *s)
 {
-  register unsigned char c;
+  unsigned char c;
   while ((c = *s) != '\0')
     {
       if (isalpha (c))
@@ -76,15 +68,13 @@ downcase (s)
  *   stat on a and b fails  returns   -3
  */
 int
-is_newer (fa, fb)
-  register char *fa;
-  register char *fb;
+is_newer (char *fa, char *fb)
 {
   struct stat fa_sb;
   struct stat fb_sb;
-  register int fa_stat;
-  register int fb_stat;
-  register int status = 0;
+  int fa_stat;
+  int fb_stat;
+  int status = 0;
 
   fa_stat = stat (fa, &fa_sb);
   if (fa_stat != 0)
@@ -104,11 +94,10 @@ is_newer (fa, fb)
  * Is path a directory?
  */
 int
-is_directory (path)
-     char *path;
+is_directory (char *path)
 {
   struct stat sb;
-  register int status;
+  int status;
 
   status = stat (path, &sb);
 
@@ -124,11 +113,9 @@ is_directory (path)
  * (handy for counting successes :-).
  */
 int
-do_system_command (command)
-     char *command;
+do_system_command (char *command)
 {
   int status = 0;
-  extern int debug;
 
   /*
    * If we're debugging, don't really execute the command -- you never
diff --git a/gnu/usr.bin/man/lib/util.h b/gnu/usr.bin/man/lib/util.h
new file mode 100644 (file)
index 0000000..23a7004
--- /dev/null
@@ -0,0 +1,15 @@
+/*
+ * util.h
+ *
+ * Copyright (c) 2010, Sascha Wildner
+ *
+ * You may distribute under the terms of the GNU General Public
+ * License as specified in the file COPYING that comes with the man
+ * distribution.
+ */
+
+extern int do_system_command(char *);
+extern void downcase(unsigned char *);
+extern int is_directory(char *);
+extern int is_newer(char *, char *);
+extern char *mkprogname(char *);
index 6ce6967..cdb8c26 100644 (file)
@@ -1,9 +1,6 @@
 # $FreeBSD: src/gnu/usr.bin/man/man/Makefile,v 1.27.2.4 2002/07/17 13:25:17 ru Exp $
-# $DragonFly: src/gnu/usr.bin/man/man/Makefile,v 1.3 2004/11/17 19:15:54 dillon Exp $
 #
 
-MAN_LIBZ=YES
-
 PROG=  man
 SRCS=  man.c manpath.c glob.c
 BINOWN= man
@@ -16,24 +13,12 @@ CFLAGS+= -I${LIBDESTDIR}
 DPADD= ${LIBMAN}
 LDADD= ${LIBMAN}
 
-.if defined(MAN_LIBZ) && !empty(MAN_LIBZ)
 DPADD+=        ${LIBZ}
 LDADD+=        -lz
-CFLAGS+=-DHAVE_LIBZ=1
-.endif
 
-CFLAGS+= -I${.CURDIR}/../lib -DSTDC_HEADERS -DPOSIX -DHAS_TROFF
-CFLAGS+= -DDO_COMPRESS -DSETREUID -DCATMODE=0644
-CLEANFILES+=   man.1
+CFLAGS+= -I${.CURDIR}/../lib
+CFLAGS+= -DCATMODE=0644
 
 .PATH: ${.CURDIR}/../manpath
 
-man.1: ${.CURDIR}/man.man
-       @${ECHO} echo Making ${.TARGET:T} from ${.ALLSRC:T}; \
-       sed -e 's,%libdir%,${libdir},' -e 's,%bindir%,${bindir},' \
-           -e 's,%pager%,${pager},' -e 's,%troff%,${troff},' \
-           -e 's,%manpath_config_file%,${manpath_config_file},' \
-           -e 's,%compress%,${compress},' \
-       ${.ALLSRC} > ${.TARGET}
-
 .include <bsd.prog.mk>
index 43615ec..c11952e 100644 (file)
 /* To whomever it may concern: I have never seen the code which most
    Unix programs use to perform this function.  I wrote this from scratch
    based on specifications for the pattern matching.  --RMS.  */
-/* 
- * $DragonFly: src/gnu/usr.bin/man/man/glob.c,v 1.2 2004/02/03 19:22:59 dillon Exp $
- */
 
 #ifdef SHELL
 #include "config.h"
 #endif /* SHELL */
 
 #include <sys/types.h>
-
-#if defined (USGr3) && !defined (DIRENT)
-#define DIRENT
-#endif /* USGr3 */
-#if defined (Xenix) && !defined (SYSNDIR)
-#define SYSNDIR
-#endif /* Xenix */
-
-#if defined (POSIX) || defined (DIRENT) || defined (__GNU_LIBRARY__)
 #include <dirent.h>
-#define direct dirent
-#define D_NAMLEN(d) strlen((d)->d_name)
-#else /* not POSIX or DIRENT or __GNU_LIBRARY__ */
-#define D_NAMLEN(d) ((d)->d_namlen)
-#ifdef USG
-#if defined (SYSNDIR)
-#include <sys/ndir.h>
-#else /* SYSNDIR */
-#include "ndir.h"
-#endif /* not SYSNDIR */
-#else /* not USG */
-#include <sys/dir.h>
-#endif /* USG */
-#endif /* POSIX or DIRENT or __GNU_LIBRARY__ */
-
-#if defined (_POSIX_SOURCE)
-/* Posix does not require that the d_ino field be present, and some
-   systems do not provide it. */
-#define REAL_DIR_ENTRY(dp) 1
-#else
-#define REAL_DIR_ENTRY(dp) (dp->d_ino != 0)
-#endif /* _POSIX_SOURCE */
-
-#if defined (STDC_HEADERS) || defined (__GNU_LIBRARY__)
 #include <stdlib.h>
 #include <string.h>
-#define STDC_STRINGS
-#else /* STDC_HEADERS or __GNU_LIBRARY__ */
 
-#if defined (USG)
-#include <string.h>
-#ifndef POSIX
-#include <memory.h>
-#endif /* POSIX */
-#define STDC_STRINGS
-#else /* not USG */
-#ifdef NeXT
-#include <string.h>
-#else /* NeXT */
-#include <strings.h>
-#endif /* NeXT */
-/* Declaring bcopy causes errors on systems whose declarations are different.
-   If the declaration is omitted, everything works fine.  */
-#endif /* not USG */
-
-extern char *malloc ();
-extern char *realloc ();
-extern void free ();
-
-#ifndef NULL
-#define NULL 0
-#endif
-#endif /* Not STDC_HEADERS or __GNU_LIBRARY__.  */
+#define direct dirent
+#define D_NAMLEN(d) strlen((d)->d_name)
+#define REAL_DIR_ENTRY(dp) (dp->d_ino != 0)
 
-#ifdef STDC_STRINGS
 #define bcopy(s, d, n) memcpy ((d), (s), (n))
 #define index strchr
 #define rindex strrchr
-#endif /* STDC_STRINGS */
 
 #ifndef        alloca
-#ifdef __GNUC__
 #define alloca __builtin_alloca
-#else /* Not GCC.  */
-#ifdef sparc
-#include <alloca.h>
-#else /* Not sparc.  */
-extern char *alloca ();
-#endif /* sparc.  */
-#endif /* GCC.  */
 #endif
 
+int glob_pattern_p (char *);
+int glob_match (char *, char *, int);
+char **glob_vector (char *, const char *);
+char **glob_filename (char *);
+
 /* Nonzero if '*' and '?' do not match an initial '.' for glob_filename.  */
 int noglob_dot_filenames = 1;
 
-static int glob_match_after_star ();
+static int glob_match_after_star (char *, char *);
 
-#ifdef __DragonFly__
-static int collate_range_cmp (a, b)
-       int a, b;
+static int
+collate_range_cmp (int a, int b)
 {
        int r;
        static char s[2][2];
@@ -129,16 +64,14 @@ static int collate_range_cmp (a, b)
                r = (unsigned char)a - (unsigned char)b;
        return r;
 }
-#endif
 \f
 /* Return nonzero if PATTERN has any special globbing chars in it.  */
 
 int
-glob_pattern_p (pattern)
-     char *pattern;
+glob_pattern_p (char *pattern)
 {
-  register char *p = pattern;
-  register char c;
+  char *p = pattern;
+  char c;
   int open = 0;
 
   while ((c = *p++) != '\0')
@@ -186,12 +119,10 @@ glob_pattern_p (pattern)
    `*' and `?' do not match `.' at the beginning of TEXT.  */
 
 int
-glob_match (pattern, text, dot_special)
-     char *pattern, *text;
-     int dot_special;
+glob_match (char *pattern, char *text, int dot_special)
 {
-  register char *p = pattern, *t = text;
-  register char c;
+  char *p = pattern, *t = text;
+  char c;
 
   while ((c = *p++) != '\0')
     switch (c)
@@ -215,7 +146,7 @@ glob_match (pattern, text, dot_special)
 
       case '[':
        {
-         register char c1 = *t++;
+         char c1 = *t++;
          int invert;
          char *cp1 = p;
 
@@ -230,7 +161,7 @@ glob_match (pattern, text, dot_special)
          c = *p++;
          while (1)
            {
-             register char cstart = c, cend = c;
+             char cstart = c, cend = c;
 
              if (c == '\\')
                {
@@ -259,13 +190,9 @@ glob_match (pattern, text, dot_special)
                    return 0;
                  c = *p++;
                }
-#ifdef __DragonFly__
              if (   collate_range_cmp (c1, cstart) >= 0
                  && collate_range_cmp (c1, cend) <= 0
                 )
-#else
-             if (c1 >= cstart && c1 <= cend)
-#endif
                goto match;
              if (c == ']')
                break;
@@ -303,11 +230,10 @@ glob_match (pattern, text, dot_special)
 /* Like glob_match, but match PATTERN against any final segment of TEXT.  */
 
 static int
-glob_match_after_star (pattern, text)
-     char *pattern, *text;
+glob_match_after_star (char *pattern, char *text)
 {
-  register char *p = pattern, *t = text;
-  register char c, c1;
+  char *p = pattern, *t = text;
+  char c, c1;
 
   while ((c = *p++) == '?' || c == '*')
     if (c == '?' && *t++ == '\0')
@@ -349,9 +275,7 @@ glob_match_after_star (pattern, text)
    Look in errno for more information.  */
 
 char **
-glob_vector (pat, dir)
-     char *pat;
-     char *dir;
+glob_vector (char *pat, const char *dir)
 {
   struct globval
   {
@@ -360,17 +284,14 @@ glob_vector (pat, dir)
   };
 
   DIR *d;
-  register struct direct *dp;
+  struct direct *dp;
   struct globval *lastlink;
-  register struct globval *nextlink;
-  register char *nextname;
+  struct globval *nextlink;
+  char *nextname;
   unsigned int count;
   int lose;
-  register char **name_vector;
-  register unsigned int i;
-#ifdef ALLOCA_MISSING
-  struct globval *templink;
-#endif
+  char **name_vector;
+  unsigned int i;
 
   d = opendir (dir);
   if (d == NULL)
@@ -404,11 +325,7 @@ glob_vector (pat, dir)
       if (REAL_DIR_ENTRY (dp)
          && glob_match (pat, dp->d_name, noglob_dot_filenames))
        {
-#ifdef ALLOCA_MISSING
-         nextlink = (struct globval *) malloc (sizeof (struct globval));
-#else
          nextlink = (struct globval *) alloca (sizeof (struct globval));
-#endif
          nextlink->next = lastlink;
          i = D_NAMLEN (dp) + 1;
          nextname = (char *) malloc (i);
@@ -441,13 +358,7 @@ glob_vector (pat, dir)
       while (lastlink)
        {
          free (lastlink->name);
-#ifdef ALLOCA_MISSING
-         templink = lastlink->next;
-         free ((char *) lastlink);
-         lastlink = templink;
-#else
          lastlink = lastlink->next;
-#endif
        }
       return NULL;
     }
@@ -456,13 +367,7 @@ glob_vector (pat, dir)
   for (i = 0; i < count; ++i)
     {
       name_vector[i] = lastlink->name;
-#ifdef ALLOCA_MISSING
-      templink = lastlink->next;
-      free ((char *) lastlink);
-      lastlink = templink;
-#else
       lastlink = lastlink->next;
-#endif
     }
 
   name_vector[count] = NULL;
@@ -474,10 +379,9 @@ glob_vector (pat, dir)
    Return NULL if out of memory.  */
 
 static char **
-glob_dir_to_array (dir, array)
-     char *dir, **array;
+glob_dir_to_array (char *dir, char **array)
 {
-  register unsigned int i, l;
+  unsigned int i, l;
   int add_slash = 0;
   char **result;
 
@@ -524,8 +428,7 @@ glob_dir_to_array (dir, array)
    do not match an initial period if noglob_dot_filenames is nonzero.  */
 
 char **
-glob_filename (pathname)
-     char *pathname;
+glob_filename (char *pathname)
 {
   char **result;
   unsigned int result_size;
@@ -544,17 +447,13 @@ glob_filename (pathname)
   if (filename == NULL)
     {
       filename = pathname;
-      directory_name = "";
+      directory_name = NULL;
       directory_len = 0;
     }
   else
     {
       directory_len = (filename - pathname) + 1;
-#ifdef ALLOCA_MISSING
-      directory_name = (char *) malloc (directory_len + 1);
-#else
       directory_name = (char *) alloca (directory_len + 1);
-#endif
       bcopy (pathname, directory_name, directory_len);
       directory_name[directory_len] = '\0';
       ++filename;
@@ -565,15 +464,12 @@ glob_filename (pathname)
   if (glob_pattern_p (directory_name))
     {
       char **directories;
-      register unsigned int i;
+      unsigned int i;
 
       if (directory_name[directory_len - 1] == '/')
        directory_name[directory_len - 1] = '\0';
 
       directories = glob_filename (directory_name);
-#ifdef ALLOCA_MISSING
-      free ((char *) directory_name);
-#endif
       if (directories == NULL)
        goto memory_error;
       else if (directories == (char **) -1)
@@ -598,7 +494,7 @@ glob_filename (pathname)
          else
            {
              char **array = glob_dir_to_array (directories[i], temp_results);
-             register unsigned int l;
+             unsigned int l;
 
              l = 0;
              while (array[l] != NULL)
@@ -632,17 +528,11 @@ glob_filename (pathname)
          result[0] = (char *) malloc (directory_len + 1);
          if (result[0] == NULL)
            {
-#ifdef ALLOCA_MISSING
-             free ((char *) directory_name);
-#endif
              goto memory_error;
            }
          bcopy (directory_name, result[0], directory_len + 1);
          result[1] = NULL;
        }
-#ifdef ALLOCA_MISSING
-      free ((char *) directory_name);
-#endif
       return result;
     }
   else
@@ -655,16 +545,10 @@ glob_filename (pathname)
 
       if (temp_results == NULL || temp_results == (char **) -1)
        {
-#ifdef NO_ALLOCA
-         free ((char *) directory_name);
-#endif
          return temp_results;
        }
 
       temp_results = glob_dir_to_array (directory_name, temp_results);
-#ifdef NO_ALLOCA
-      free ((char *) directory_name);
-#endif
       return temp_results;
     }
 
@@ -673,7 +557,7 @@ glob_filename (pathname)
  memory_error:
   if (result != NULL)
     {
-      register unsigned int i;
+      unsigned int i;
       for (i = 0; result[i] != NULL; ++i)
        free (result[i]);
       free ((char *) result);
@@ -691,9 +575,8 @@ glob_filename (pathname)
 \f
 #ifdef TEST
 
-main (argc, argv)
-     int argc;
-     char **argv;
+int
+main (int argc, char **argv)
 {
   char **value;
   int i, optind;
similarity index 97%
rename from gnu/usr.bin/man/man/man.man
rename to gnu/usr.bin/man/man/man.1
index 02b9e0e..4c50f41 100644 (file)
@@ -4,7 +4,7 @@
 .\"
 .\" You may distribute under the terms of the GNU General Public
 .\" License as specified in the README file that comes with the man 1.0
-.\" distribution.  
+.\" distribution.
 .\"
 .\" John W. Eaton
 .\" jwe@che.utexas.edu
@@ -13,7 +13,6 @@
 .\" Austin, Texas  78712
 .\"
 .\" $FreeBSD: src/gnu/usr.bin/man/man/man.man,v 1.10.2.8 2002/06/25 00:02:55 eric Exp $
-.\" $DragonFly: src/gnu/usr.bin/man/man/man.man,v 1.7 2008/08/21 21:02:33 thomas Exp $
 .\"
 .Dd August 21, 2008
 .Dt MAN 1
@@ -51,7 +50,7 @@ which preprocessors to run on the source files via command line options
 or environment variables.
 If enabled by the system administrator, formatted man pages will also
 be compressed with the
-.Nm %compress%
+.Nm /usr/bin/gzip -c
 command to save space.
 If
 .Ar name
@@ -80,7 +79,7 @@ Specify which pager to use.
 By default,
 .Nm
 uses
-.Nm %pager% .
+.Nm more -s .
 This option overrides the
 .Ev PAGER
 environment variable.
@@ -187,17 +186,17 @@ directory.
 .It Fl p Ar string
 Specify the sequence of preprocessors to run before nroff or troff.
 Not all installations will have a full set of preprocessors.
-Some of the preprocessors and the letters used to designate them are: 
+Some of the preprocessors and the letters used to designate them are:
 eqn (e), grap (g), pic (p), tbl (t), vgrind (v), refer (r).
 This option overrides the
 .Ev MANROFFSEQ
 environment variable.
 .It Fl t
 Use
-.Nm %troff%
+.Nm /usr/bin/groff -S -man
 to format the manual page, passing the output to stdout.
 The output from
-.Nm %troff%
+.Nm /usr/bin/groff -S -man
 may need to be passed through some filter or another before being
 printed.
 .It Fl w
@@ -240,7 +239,7 @@ If
 is set, its value is used as the name of the program to use to display
 the man page.
 By default,
-.Nm %pager%
+.Nm more -s
 is used.
 .El
 .Sh EXAMPLES
index 9a311db..ed93b1a 100644 (file)
@@ -14,7 +14,6 @@
  * Austin, Texas  78712
  *
  * $FreeBSD: src/gnu/usr.bin/man/man/man.c,v 1.37.2.10 2003/02/14 15:38:51 ru Exp $
- * $DragonFly: src/gnu/usr.bin/man/man/man.c,v 1.9 2008/07/10 18:29:51 swildner Exp $
  */
 
 #define MAN_MAIN
 #include <ctype.h>
 #include <errno.h>
 #include <libgen.h>
-#ifdef __DragonFly__
 #include <locale.h>
 #include <langinfo.h>
-#endif
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 #include <signal.h>
-#if HAVE_LIBZ > 0
+#include <unistd.h>
 #include <zlib.h>
-#endif
+
 #include "config.h"
 #include "gripes.h"
+#include "util.h"
 #include "version.h"
 
-#ifdef POSIX
-#include <unistd.h>
-#else
-#ifndef R_OK
-#define R_OK 4
-#endif
-#endif
-
-#ifdef SECURE_MAN_UID
-extern uid_t getuid ();
-extern int setuid ();
-#endif
-
-#ifdef STDC_HEADERS
-#include <stdlib.h>
-#else
-extern char *malloc ();
-extern char *getenv ();
-extern void free ();
-extern int system ();
-extern int strcmp ();
-extern int strncmp ();
-extern int exit ();
-extern int fflush ();
-extern int printf ();
-extern int fprintf ();
-extern FILE *fopen ();
-extern int fclose ();
-extern char *sprintf ();
-#endif
-
-extern char **glob_filename ();
-extern int is_newer ();
-extern int is_directory ();
-extern int do_system_command ();
+extern char **glob_filename (char *);
+extern char *manpath (int);
+
+char *is_section (char *);
+char **get_section_list (void);
+void man_getopt (int, char **);
+void do_apropos (char *);
+void do_whatis (char *);
+int man (char *);
+void usage (void);
+char **add_dir_to_mpath_list (char **, char *);
+char *convert_name (char *, int);
+char **glob_for_file (char *, char *, char *, char *, int);
+char **make_name (char *, char *, char *, char *, int);
+const char *get_expander (char *);
+int display_cat_file (char *);
+char *ultimate_source (char *, char *);
+void add_directive (int *, const char *, char *, char *, int);
+int parse_roff_directive (const char *, char *, char *, int);
+char *make_roff_command (char *);
+void cleantmp(int);
+void set_sigs(void);
+void restore_sigs(void);
+int make_cat_file (char *, char *, char *, int);
+int format_and_display (char *, char *, char *);
+int try_section (char *, char *, char *, char *, int);
 
 char *prognam;
 static char *pager;
-static char *machine;
+static const char *machine;
 static char *manp;
 static char *manpathlist[MAXDIRS];
 static char *shortsec;
@@ -90,72 +80,46 @@ static int whatis;
 static int findall;
 static int print_where;
 
-#ifdef __DragonFly__
-static char *locale, *locale_opts, *locale_nroff, *locale_codeset;
+static char *locale, *locale_codeset;
+static const char *locale_nroff, *locale_opts;
 static char locale_terr[3], locale_lang[3];
 static char *man_locale;
 static int use_man_locale;
 static int use_original;
 struct ltable {
-       char *lcode;
-       char *nroff;
+       const char *lcode;
+       const char *nroff;
 };
 static struct ltable ltable[] = {
        {"KOI8-R", "koi8-r"},
        {"ISO8859-1", "latin1"},
        {"ISO8859-15", "latin1"},
-       {NULL}
+       {NULL, NULL}
 };
-#endif
 
 static int troff = 0;
 
 int debug;
 
-#ifdef HAS_TROFF
-#ifdef __DragonFly__
 static char args[] = "M:P:S:adfhkm:op:tw?";
-#else
-static char args[] = "M:P:S:adfhkm:p:tw?";
-#endif
-#else
-#ifdef __DragonFly__
-static char args[] = "M:P:S:adfhkm:op:w?";
-#else
-static char args[] = "M:P:S:adfhkm:p:w?";
-#endif
-#endif
-
-#ifdef SETREUID
+
 uid_t ruid;
 uid_t euid;
 gid_t rgid;
 gid_t egid;
-#endif
 
 int
-main (argc, argv)
-     int argc;
-     char **argv;
+main (int argc, char **argv)
 {
   int status = 0;
   char *nextarg;
   char *tmp;
-  extern char *mkprogname ();
-  char *is_section ();
-  char **get_section_list ();
-  void man_getopt ();
-  void do_apropos ();
-  void do_whatis ();
-  int man ();
 
   prognam = mkprogname (argv[0]);
   longsec = NULL;
 
   unsetenv("IFS");
-#ifdef __DragonFly__
   (void) setlocale(LC_ALL, "");
-#endif
   man_getopt (argc, argv);
 
   if (optind == argc)
@@ -165,20 +129,18 @@ main (argc, argv)
 
   if (optind == argc - 1)
     {
-      tmp = is_section (argv[optind], manp);
+      tmp = is_section (argv[optind]);
 
       if (tmp != NULL)
        gripe_no_name (tmp);
     }
 
-#ifdef SETREUID
   ruid = getuid();
   rgid = getgid();
   euid = geteuid();
   egid = getegid();
   setreuid(-1, ruid);
   setregid(-1, rgid);
-#endif
 
   while (optind < argc)
     {
@@ -188,7 +150,7 @@ main (argc, argv)
        * See if this argument is a valid section name.  If not,
        * is_section returns NULL.
        */
-      tmp = is_section (nextarg, manp);
+      tmp = is_section (nextarg);
 
       if (tmp != NULL)
        {
@@ -221,31 +183,13 @@ main (argc, argv)
 }
 
 void
-usage ()
+usage (void)
 {
   static char usage_string[1024] = "%s, version %s\n\n";
 
-#ifdef HAS_TROFF
-#ifdef __DragonFly__
   static char s1[] =
     "usage: %s [-adfhkotw] [section] [-M path] [-P pager] [-S list]\n\
            [-m machine] [-p string] name ...\n\n";
-#else
-  static char s1[] =
-    "usage: %s [-adfhktw] [section] [-M path] [-P pager] [-S list]\n\
-           [-m machine] [-p string] name ...\n\n";
-#endif
-#else
-#ifdef __DragonFly__
-  static char s1[] =
-    "usage: %s [-adfhkow] [section] [-M path] [-P pager] [-S list]\n\
-           [-m machine] [-p string] name ...\n\n";
-#else
-  static char s1[] =
-    "usage: %s [-adfhkw] [section] [-M path] [-P pager] [-S list]\n\
-           [-m machine] [-p string] name ...\n\n";
-#endif
-#endif
 
 static char s2[] = "  a : find all matching entries\n\
   d : print gobs of debugging information\n\
@@ -253,13 +197,9 @@ static char s2[] = "  a : find all matching entries\n\
   h : print this help message\n\
   k : same as apropos(1)\n";
 
-#ifdef __DragonFly__
   static char s3[] = "  o : use original, non-localized manpages\n";
-#endif
 
-#ifdef HAS_TROFF
   static char s4[] = "  t : use troff to format pages for printing\n";
-#endif
 
   static char s5[] = "  w : print location of man page(s) that would be displayed\n\n\
   M path    : set search path for manual pages to `path'\n\
@@ -273,13 +213,9 @@ static char s2[] = "  a : find all matching entries\n\
 
   strcat (usage_string, s1);
   strcat (usage_string, s2);
-#ifdef __DragonFly__
   strcat (usage_string, s3);
-#endif
 
-#ifdef HAS_TROFF
   strcat (usage_string, s4);
-#endif
 
   strcat (usage_string, s5);
 
@@ -290,9 +226,7 @@ static char s2[] = "  a : find all matching entries\n\
 }
 
 char **
-add_dir_to_mpath_list (mp, p)
-     char **mp;
-     char *p;
+add_dir_to_mpath_list (char **mp, char *p)
 {
   int status;
 
@@ -320,16 +254,12 @@ add_dir_to_mpath_list (mp, p)
  * Get options from the command line and user environment.
  */
 void
-man_getopt (argc, argv)
-     register int argc;
-     register char **argv;
+man_getopt (int argc, char **argv)
 {
-  register int c;
-  register char *p;
-  register char *end;
-  register char **mp;
-  extern void downcase ();
-  extern char *manpath ();
+  int c;
+  char *p;
+  char *end;
+  char **mp;
 
   while ((c = getopt (argc, argv, args)) != -1)
     {
@@ -373,15 +303,12 @@ man_getopt (argc, argv)
        case 'm':
          machine = optarg;
          break;
-#ifdef __DragonFly__
        case 'o':
          use_original++;
          break;
-#endif
        case 'p':
          roff_directive = strdup (optarg);
          break;
-#ifdef HAS_TROFF
        case 't':
          if (apropos)
            gripe_incompatible ("-t and -k");
@@ -391,7 +318,6 @@ man_getopt (argc, argv)
            gripe_incompatible ("-t and -w");
          troff++;
          break;
-#endif
        case 'w':
          if (apropos)
            gripe_incompatible ("-w and -k");
@@ -409,7 +335,6 @@ man_getopt (argc, argv)
        }
     }
 
-#ifdef __DragonFly__
   /* "" intentionally used to catch error */
   if ((locale = setlocale(LC_CTYPE, "")) != NULL)
        locale_codeset = nl_langinfo(CODESET);
@@ -468,7 +393,6 @@ man_getopt (argc, argv)
                }
        }
   }
-#endif /* __DragonFly__ */
 
   if (pager == NULL || *pager == '\0')
     if ((pager = getenv ("PAGER")) == NULL || *pager == '\0')
@@ -524,11 +448,9 @@ man_getopt (argc, argv)
  * named directories like .../man3f.  Yuk.
  */
 char *
-is_section (name, path)
-     char *name;
-     char *path;
+is_section (char *name)
 {
-  register char **vs;
+  char **vs;
   char *temp, *end, *loc;
   char **plist;
   int x;
@@ -580,11 +502,10 @@ is_section (name, path)
  * Handle the apropos option.  Cheat by using another program.
  */
 void
-do_apropos (name)
-     register char *name;
+do_apropos (char *name)
 {
-  register int len;
-  register char *command;
+  int len;
+  char *command;
 
   len = strlen (APROPOS) + strlen (name) + 4;
 
@@ -602,11 +523,10 @@ do_apropos (name)
  * Handle the whatis option.  Cheat by using another program.
  */
 void
-do_whatis (name)
-     register char *name;
+do_whatis (char *name)
 {
-  register int len;
-  register char *command;
+  int len;
+  char *command;
 
   len = strlen (WHATIS) + strlen (name) + 4;
 
@@ -625,15 +545,12 @@ do_whatis (name)
  * or a name of the form ...man/cat1/name.1 to ...man/man1/name.1
  */
 char *
-convert_name (name, to_cat)
-     register char *name;
-     register int to_cat;
+convert_name (char *name, int to_cat)
 {
-  register char *to_name;
-  register char *t1;
-  register char *t2 = NULL;
+  char *to_name;
+  char *t1;
+  char *t2 = NULL;
 
-#ifdef DO_COMPRESS
   if (to_cat)
     {
       int olen = strlen(name);
@@ -651,9 +568,6 @@ convert_name (name, to_cat)
     }
   else
     to_name = strdup (name);
-#else
-  to_name = strdup (name);
-#endif
 
   t1 = strrchr (to_name, '/');
   if (t1 != NULL)
@@ -703,25 +617,20 @@ convert_name (name, to_cat)
  * Note that globbing is only done when the section is unspecified.
  */
 char **
-glob_for_file (path, section, longsec, name, cat)
-     char *path;
-     char *section;
-     char *longsec;
-     char *name;
-     int cat;
+glob_for_file (char *path, char *section, char *_longsec, char *name, int cat)
 {
   char pathname[FILENAME_MAX];
   char **gf;
 
-  if (longsec == NULL)
-    longsec = section;
+  if (_longsec == NULL)
+    _longsec = section;
 
   if (cat)
     snprintf (pathname, sizeof(pathname), "%s/cat%s/%s.%s*", path, section,
-       name, longsec);
+       name, _longsec);
   else
     snprintf (pathname, sizeof(pathname), "%s/man%s/%s.%s*", path, section,
-       name, longsec);
+       name, _longsec);
 
   if (debug)
     fprintf (stderr, "globbing %s\n", pathname);
@@ -729,7 +638,7 @@ glob_for_file (path, section, longsec, name, cat)
   gf = glob_filename (pathname);
 
   if ((gf == (char **) -1 || *gf == NULL) && isdigit ((unsigned char)*section)
-      && strlen (longsec) == 1)
+      && strlen (_longsec) == 1)
     {
       if (cat)
        snprintf (pathname, sizeof(pathname), "%s/cat%s/%s.%c*", path, section, name, *section);
@@ -739,7 +648,7 @@ glob_for_file (path, section, longsec, name, cat)
       gf = glob_filename (pathname);
     }
   if ((gf == (char **) -1 || *gf == NULL) && isdigit ((unsigned char)*section)
-      && strlen (longsec) == 1)
+      && strlen (_longsec) == 1)
     {
       if (cat)
        snprintf (pathname, sizeof(pathname), "%s/cat%s/%s.0*", path, section, name);
@@ -757,21 +666,16 @@ glob_for_file (path, section, longsec, name, cat)
  * globbing.
  */
 char **
-make_name (path, section, longsec, name, cat)
-     char *path;
-     char *section;
-     char *longsec;
-     char *name;
-     int cat;
+make_name (char *path, char *section, char *_longsec, char *name, int cat)
 {
-  register int i = 0;
+  int i = 0;
   static char *names[3];
   char buf[FILENAME_MAX];
 
   if (cat)
-    snprintf (buf, sizeof(buf), "%s/cat%s/%s.%s", path, section, name, longsec);
+    snprintf (buf, sizeof(buf), "%s/cat%s/%s.%s", path, section, name, _longsec);
   else
-    snprintf (buf, sizeof(buf), "%s/man%s/%s.%s", path, section, name, longsec);
+    snprintf (buf, sizeof(buf), "%s/man%s/%s.%s", path, section, name, _longsec);
 
   if (access (buf, R_OK) == 0)
     names[i++] = strdup (buf);
@@ -797,9 +701,8 @@ make_name (path, section, longsec, name, cat)
   return &names[0];
 }
 
-char *
-get_expander (file)
-     char *file;
+const char *
+get_expander (char *file)
 {
   char *end = file + (strlen (file) - 1);
 
@@ -826,17 +729,16 @@ get_expander (file)
  * Simply display the preformatted page.
  */
 int
-display_cat_file (file)
-     register char *file;
+display_cat_file (char *file)
 {
-  register int found;
+  int found;
   char command[FILENAME_MAX];
 
   found = 0;
 
   if (access (file, R_OK) == 0)
     {
-      char *expander = get_expander (file);
+      const char *expander = get_expander (file);
 
       if (expander != NULL)
        snprintf (command, sizeof(command), "%s %s | %s", expander, file, pager);
@@ -857,9 +759,7 @@ display_cat_file (file)
  * the input file name is returned.
  */
 char *
-ultimate_source (name, path)
-     char *name;
-     char *path;
+ultimate_source (char *name, char *path)
 {
   static  char buf[BUFSIZ];
   static  char ult[FILENAME_MAX];
@@ -909,12 +809,7 @@ ultimate_source (name, path)
 }
 
 void
-add_directive (first, d, file, buf, bufsize)
-     int *first;
-     char *d;
-     char *file;
-     char *buf;
-     int bufsize;
+add_directive (int *first, const char *d, char *file, char *buf, int bufsize)
 {
   if (strcmp (d, "") != 0)
     {
@@ -932,14 +827,10 @@ add_directive (first, d, file, buf, bufsize)
 }
 
 int
-parse_roff_directive (cp, file, buf, bufsize)
-  char *cp;
-  char *file;
-  char *buf;
-  int bufsize;
+parse_roff_directive (const char *cp, char *file, char *buf, int bufsize)
 {
   char c;
-  char *exp;
+  const char *exp;
   int first = 1;
   int preproc_found = 0;
   int use_col = 0;
@@ -960,15 +851,11 @@ parse_roff_directive (cp, file, buf, bufsize)
          if (troff)
            add_directive (&first, EQN, file, buf, bufsize);
          else {
-#ifdef __DragonFly__
            char lbuf[FILENAME_MAX];
 
            snprintf(lbuf, sizeof(lbuf), "%s -T%s", NEQN,
                     locale_opts == NULL ? "ascii" : locale_opts);
            add_directive (&first, lbuf, file, buf, bufsize);
-#else
-           add_directive (&first, NEQN, file, buf, bufsize);
-#endif
          }
 
          break;
@@ -1033,13 +920,10 @@ parse_roff_directive (cp, file, buf, bufsize)
 
  done:
 
-#ifdef HAS_TROFF
   if (troff)
     add_directive (&first, TROFF, file, buf, bufsize);
   else
-#endif
     {
-#ifdef __DragonFly__
       char lbuf[FILENAME_MAX];
 
       snprintf(lbuf, sizeof(lbuf), "%s -T%s%s%s", NROFF,
@@ -1047,9 +931,6 @@ parse_roff_directive (cp, file, buf, bufsize)
               use_man_locale ? " -dlocale=" : "",
               use_man_locale ? man_locale : "");
            add_directive (&first, lbuf, file, buf, bufsize);
-#else
-      add_directive (&first, NROFF " -Tascii", file, buf, bufsize);
-#endif
     }
   if (use_col && !troff)
       add_directive (&first, COL, file, buf, bufsize);
@@ -1061,14 +942,9 @@ parse_roff_directive (cp, file, buf, bufsize)
 }
 
 char *
-make_roff_command (file)
-     char *file;
+make_roff_command (char *file)
 {
-#if HAVE_LIBZ > 0
   gzFile fp;
-#else
-  FILE *fp;
-#endif
   char line [BUFSIZ];
   static char buf [BUFSIZ];
   int status;
@@ -1085,23 +961,14 @@ make_roff_command (file)
        return buf;
 
       if (status == -1)
-       gripe_roff_command_from_command_line (file);
+       gripe_roff_command_from_command_line ();
     }
 
-#if HAVE_LIBZ > 0
   if ((fp = gzopen (file, "r")) != NULL)
-#else
-  if ((fp = fopen (file, "r")) != NULL)
-#endif
     {
       cp = line;
-#if HAVE_LIBZ > 0
       gzgets (fp, line, BUFSIZ);
       gzclose(fp);
-#else
-      fgets (line, BUFSIZ, fp);
-      fclose(fp);
-#endif
       if (*cp++ == '\'' && *cp++ == '\\' && *cp++ == '"' && *cp++ == ' ')
        {
          if (debug)
@@ -1153,14 +1020,15 @@ make_roff_command (file)
 sig_t ohup, oint, oquit, oterm;
 static char temp[FILENAME_MAX];
 
-void cleantmp()
+void
+cleantmp(int signo __unused)
 {
        unlink(temp);
        exit(1);
 }
 
 void
-set_sigs()
+set_sigs(void)
 {
   ohup = signal(SIGHUP, cleantmp);
   oint = signal(SIGINT, cleantmp);
@@ -1169,7 +1037,7 @@ set_sigs()
 }
 
 void
-restore_sigs()
+restore_sigs(void)
 {
   signal(SIGHUP, ohup);
   signal(SIGINT, oint);
@@ -1182,10 +1050,7 @@ restore_sigs()
  * 1 for success and 0 for failure.
  */
 int
-make_cat_file (path, man_file, cat_file, manid)
-     register char *path;
-     register char *man_file;
-     register char *cat_file;
+make_cat_file (char *path, char *man_file, char *cat_file, int manid)
 {
   int s, f;
   FILE *fp, *pp;
@@ -1210,48 +1075,36 @@ make_cat_file (path, man_file, cat_file, manid)
       } else if (debug)
        fprintf (stderr, "mode of %s is now %o\n", temp, CATMODE);
 
-#ifdef DO_COMPRESS
       snprintf (command, sizeof(command), "(cd %s ; %s | %s)", path,
                roff_command, COMPRESSOR);
-#else
-      snprintf (command, sizeof(command), "(cd %s ; %s)", path,
-               roff_command);
-#endif
       fprintf (stderr, "Formatting page, please wait...");
       fflush(stderr);
 
       if (debug)
        fprintf (stderr, "\ntrying command: %s\n", command);
       else {
-
-#ifdef SETREUID
        if (manid) {
          setreuid(-1, ruid);
          setregid(-1, rgid);
        }
-#endif
        if ((pp = popen(command, "r")) == NULL) {
          s = errno;
          fprintf(stderr, "Failed.\n");
          errno = s;
          perror("popen");
-#ifdef SETREUID
          if (manid) {
            setreuid(-1, euid);
            setregid(-1, egid);
          }
-#endif
          unlink(temp);
          restore_sigs();
          fclose(fp);
          return 0;
        }
-#ifdef SETREUID
        if (manid) {
          setreuid(-1, euid);
          setregid(-1, egid);
        }
-#endif
 
        f = 0;
        while ((s = getc(pp)) != EOF) {
@@ -1344,13 +1197,10 @@ make_cat_file (path, man_file, cat_file, manid)
  * file at this point.
  */
 int
-format_and_display (path, man_file, cat_file)
-     register char *path;
-     register char *man_file;
-     register char *cat_file;
+format_and_display (char *path, char *man_file, char *cat_file)
 {
   int status;
-  register int found;
+  int found;
   char *roff_command;
   char command[FILENAME_MAX];
 
@@ -1391,14 +1241,9 @@ format_and_display (path, man_file, cat_file)
          else
            {
 
-#ifdef SETREUID
              setreuid(-1, euid);
              setregid(-1, egid);
              found = make_cat_file (path, man_file, cat_file, 1);
-#else
-             found = make_cat_file (path, man_file, cat_file, 0);
-#endif
-#ifdef SETREUID
              setreuid(-1, ruid);
              setregid(-1, rgid);
 
@@ -1411,26 +1256,6 @@ format_and_display (path, man_file, cat_file)
                     of reading private man pages is avoided.  */
                  found = make_cat_file (path, man_file, cat_file, 0);
                }
-#endif
-#ifdef SECURE_MAN_UID
-             if (!found)
-               {
-                 /*
-                  * Try again as real user.  Note that for private
-                  * man pages, we won't even get this far unless the
-                  * effective user can read the real user's man page
-                  * source.  Also, if we are trying to find all the
-                  * man pages, this will probably make it impossible
-                  * to make cat files in the system directories if
-                  * the real user's man directories are searched
-                  * first, because there's no way to undo this (is
-                  * there?).  Yikes, am I missing something obvious?
-                  */
-                 setuid (getuid ());
-
-                 found = make_cat_file (path, man_file, cat_file, 0);
-               }
-#endif
              if (found)
                {
                  /*
@@ -1481,18 +1306,13 @@ format_and_display:
  * section.
  */
 int
-try_section (path, section, longsec, name, glob)
-     char *path;
-     char *section;
-     char *longsec;
-     char *name;
-     int glob;
+try_section (char *path, char *section, char *_longsec, char *name, int glob)
 {
-  register int found = 0;
-  register int to_cat;
-  register int cat;
-  register char **names;
-  register char **np;
+  int found = 0;
+  int to_cat;
+  int cat;
+  char **names;
+  char **np;
   static int arch_search;
   char buf[FILENAME_MAX];
 
@@ -1503,7 +1323,7 @@ try_section (path, section, longsec, name, glob)
        {
          snprintf(buf, sizeof(buf), "%s/%s", machine, name);
          arch_search++;
-         found = try_section (path, section, longsec, buf, glob);
+         found = try_section (path, section, _longsec, buf, glob);
          arch_search--;
          if (found && !findall)   /* only do this architecture... */
            return found;
@@ -1524,9 +1344,9 @@ try_section (path, section, longsec, name, glob)
    */
   cat = 0;
   if (glob)
-    names = glob_for_file (path, section, longsec, name, cat);
+    names = glob_for_file (path, section, _longsec, name, cat);
   else
-    names = make_name (path, section, longsec, name, cat);
+    names = make_name (path, section, _longsec, name, cat);
 
   if (names == (char **) -1 || *names == NULL)
     /*
@@ -1539,9 +1359,9 @@ try_section (path, section, longsec, name, glob)
        {
          cat = 1;
          if (glob)
-           names = glob_for_file (path, section, longsec, name, cat);
+           names = glob_for_file (path, section, _longsec, name, cat);
          else
-           names = make_name (path, section, longsec, name, cat);
+           names = make_name (path, section, _longsec, name, cat);
 
          if (names != (char **) -1 && *names != NULL)
            {
@@ -1565,8 +1385,8 @@ try_section (path, section, longsec, name, glob)
     {
       for (np = names; *np != NULL; np++)
        {
-         register char *cat_file = NULL;
-         register char *man_file;
+         char *cat_file = NULL;
+         char *man_file;
 
          man_file = ultimate_source (*np, path);
 
@@ -1602,17 +1422,14 @@ try_section (path, section, longsec, name, glob)
  *
  */
 int
-man (name)
-     char *name;
+man (char *name)
 {
-  register int found;
-  register int glob;
-  register char **mp;
-  register char **sp;
-#ifdef __DragonFly__
+  int found;
+  int glob;
+  char **mp;
+  char **sp;
   int l_found;
   char buf[PATH_MAX];
-#endif
 
   found = 0;
 
@@ -1642,7 +1459,6 @@ man (name)
 
          glob = 1;
 
-#ifdef __DragonFly__
          l_found = 0;
          if (locale != NULL) {
            locale_opts = locale_nroff;
@@ -1672,12 +1488,9 @@ man (name)
            use_man_locale = 0;
          }
          if (!l_found) {
-#endif
          found += try_section (*mp, shortsec, longsec, name, glob);
-#ifdef __DragonFly__
          } else
            found += l_found;
-#endif
 
          if (found && !findall)   /* i.e. only do this section... */
            return found;
@@ -1694,7 +1507,6 @@ man (name)
 
              glob = 1;
 
-#ifdef __DragonFly__
              l_found = 0;
              if (locale != NULL) {
                locale_opts = locale_nroff;
@@ -1724,12 +1536,9 @@ man (name)
                use_man_locale = 0;
              }
              if (!l_found) {
-#endif
              found += try_section (*mp, *sp, longsec, name, glob);
-#ifdef __DragonFly__
              } else
                found += l_found;
-#endif
 
              if (found && !findall)   /* i.e. only do this section... */
                return found;
@@ -1740,7 +1549,7 @@ man (name)
 }
 
 char **
-get_section_list ()
+get_section_list (void)
 {
   int i;
   char *p;
@@ -1752,7 +1561,7 @@ get_section_list ()
     {
       if ((p = getenv ("MANSECT")) == NULL)
        {
-         return std_sections;
+         return __DECONST(char **, std_sections);
        }
       else
        {
index 438d5c2..140f330 100644 (file)
@@ -4,26 +4,8 @@
        last edit:      09-Jul-1983     D A Gwyn
 */
 
-#ifdef VMS
-#ifndef FAB$C_BID
-#include <fab.h>
-#endif
-#ifndef NAM$C_BID
-#include <nam.h>
-#endif
-#ifndef RMS$_SUC
-#include <rmsdef.h>
-#endif
-#include "dir.h"
-#endif /* VMS */
-
 #define DIRBLKSIZ      512             /* size of directory block */
-#ifdef VMS
-#define MAXNAMLEN      (DIR$S_NAME + 7) /* 80 plus room for version #.  */
-#define MAXFULLSPEC    NAM$C_MAXRSS /* Maximum full spec */
-#else
 #define MAXNAMLEN      15              /* maximum filename length */
-#endif /* VMS */
        /* NOTE:  MAXNAMLEN must be one less than a multiple of 4 */
 
 struct direct                          /* data from readdir() */
index 180b118..2a12f9c 100644 (file)
@@ -1,18 +1,11 @@
 # $FreeBSD: src/gnu/usr.bin/man/manpath/Makefile,v 1.22.2.3 2002/02/01 09:00:02 ru Exp $
-# $DragonFly: src/gnu/usr.bin/man/manpath/Makefile,v 1.2 2003/06/17 04:25:46 dillon Exp $
 
 PROG=  manpath
 
 DPADD= ${LIBMAN}
 LDADD= ${LIBMAN}
 
-CFLAGS+= -DMAIN -DSTDC_HEADERS -DPOSIX -DHAS_TROFF -DDO_UNCOMPRESS
+CFLAGS+= -DMAIN -DDO_UNCOMPRESS
 CFLAGS+= -I${.CURDIR}/../lib -I${.OBJDIR}/../lib
-CLEANFILES+=   manpath.1
-
-manpath.1: ${.CURDIR}/manpath.man
-       @${ECHO} Making ${.TARGET:T} from ${.ALLSRC:T}; \
-       sed -e 's,%manpath_config_file%,/etc/manpath.config,' \
-       ${.ALLSRC} > ${.TARGET}
 
 .include <bsd.prog.mk>
similarity index 90%
rename from gnu/usr.bin/man/manpath/manpath.man
rename to gnu/usr.bin/man/manpath/manpath.1
index 837e64d..558e900 100644 (file)
@@ -13,7 +13,6 @@
 .\" Austin, Texas  78712
 .\"
 .\" $FreeBSD: src/gnu/usr.bin/man/manpath/manpath.man,v 1.6.2.3 2001/10/04 13:02:24 ru Exp $
-.\" $DragonFly: src/gnu/usr.bin/man/manpath/manpath.man,v 1.3 2007/04/26 15:47:43 swildner Exp $
 .Dd August 16, 1999
 .Dt MANPATH 1
 .Os
@@ -31,7 +30,7 @@ defaults and the user's
 echoing the result to the standard output.
 Warnings and errors are written to the standard error.
 If a directory in the user's path is not listed in the
-.Pa %manpath_config_file%
+.Pa /etc/manpath.config
 file,
 .Nm
 looks for the subdirectories
@@ -86,8 +85,8 @@ echoes its value on the standard output and issues a warning on the
 standard error.
 .El
 .Sh FILES
-.Bl -tag -width %manpath_config_file% -compact
-.It Pa %manpath_config_file%
+.Bl -tag -width /etc/manpath.config -compact
+.It Pa /etc/manpath.config
 System configuration file.
 .El
 .Sh SEE ALSO
index 96d2b88..b5001e6 100644 (file)
  * Austin, Texas  78712
  *
  * $FreeBSD: src/gnu/usr.bin/man/manpath/manpath.c,v 1.11.2.2 2003/02/15 05:33:06 kris Exp $
- * $DragonFly: src/gnu/usr.bin/man/manpath/manpath.c,v 1.5 2008/07/10 18:29:51 swildner Exp $
  */
 
 #define MANPATH_MAIN
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
+#include <unistd.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include "config.h"
 #include "manpath.h"
 #include "gripes.h"
-
-#ifdef STDC_HEADERS
-#include <stdlib.h>
-#else
-extern int fprintf ();
-extern int strcmp ();
-extern int strncmp ();
-extern char *memcpy ();
-extern char *getenv();
-extern char *malloc();
-extern void free ();
-extern int exit ();
-#endif
-
-extern char *strdup ();
-extern int is_directory ();
+#include "util.h"
 
 #ifndef MAIN
 extern int debug;
 #endif
 
-#ifdef MAIN
+int  get_dirlist (void);
+char *def_path (int);
+char *get_manpath (int, char *);
+void add_dir_to_list (char **, char *, int);
+char *has_subdirs (char *);
+const char *manpath (int);
+void usage (void);
 
-#ifndef STDC_HEADERS
-extern char *strcpy ();
-extern int fflush ();
-#endif
+#ifdef MAIN
 
 char *prognam;
 int debug;
@@ -63,17 +52,11 @@ char *man_locales;
  * Examine user's PATH and print a reasonable MANPATH.
  */
 int
-main(argc, argv)
-     int argc;
-     char **argv;
+main(int argc, char **argv)
 {
   int c;
   int quiet;
-  char *mp;
-  extern int getopt ();
-  extern char *mkprogname ();
-  void usage ();
-  char *manpath ();
+  const char *mp;
 
   quiet = 1;
 
@@ -109,7 +92,7 @@ main(argc, argv)
 }
 
 void
-usage ()
+usage (void)
 {
   fprintf (stderr, "usage: %s [-dLq]\n", prognam);
   exit (1);
@@ -134,16 +117,12 @@ usage ()
  * Also search for a `man' directory next to the directory on the path.
  * Example: $HOME/bin will look for $HOME/man
  */
-char *
-manpath (perrs)
-     register int perrs;
+const char *
+manpath (int perrs)
 {
-  register int len;
-  register char *manpathlist;
-  register char *path;
-  int  get_dirlist ();
-  char *def_path ();
-  char *get_manpath ();
+  int len;
+  char *manpathlist;
+  char *path;
 
   if (get_dirlist ())
       gripe_reading_mp_config (config_file);
@@ -204,7 +183,7 @@ manpath (perrs)
  * This is ugly.
  */
 int
-get_dirlist ()
+get_dirlist (void)
 {
   int i;
   char *bp;
@@ -334,12 +313,11 @@ get_dirlist ()
  * and optional (if they exist) manpaths only.
  */
 char *
-def_path (perrs)
-     int perrs;
+def_path (int perrs)
 {
-  register int len;
-  register char *manpathlist, *p;
-  register DIRLIST *dlp;
+  int len;
+  char *manpathlist, *p;
+  DIRLIST *dlp;
 
   len = 0;
   dlp = list;
@@ -399,20 +377,16 @@ def_path (perrs)
  * to the manpath.
  */
 char *
-get_manpath (perrs, path)
-     register int perrs;
-     register char *path;
+get_manpath (int perrs, char *path)
 {
-  register int len;
-  register char *tmppath;
-  register char *t;
-  register char *p;
-  register char **lp;
-  register char *end;
-  register char *manpathlist;
-  register DIRLIST *dlp;
-  void add_dir_to_list ();
-  char *has_subdirs ();
+  int len;
+  char *tmppath;
+  char *t;
+  char *p;
+  char **lp;
+  char *end;
+  char *manpathlist;
+  DIRLIST *dlp;
   int fnd = 0;
 
   tmppath = strdup (path);
@@ -529,12 +503,8 @@ get_manpath (perrs, path)
  * Add a directory to the manpath list if it isn't already there.
  */
 void
-add_dir_to_list (lp, dir, perrs)
-     char **lp;
-     char *dir;
-     int perrs;
+add_dir_to_list (char **lp, char *dir, int perrs)
 {
-  extern char *strdup ();
   int status;
 
   while (*lp != NULL)
@@ -574,11 +544,10 @@ add_dir_to_list (lp, dir, perrs)
  * subdirectories.
  */
 char *
-has_subdirs (p)
-     register char *p;
+has_subdirs (char *p)
 {
   int len;
-  register char *t;
+  char *t;
 
   len = strlen (p);
 
index 6562601..e763c1a 100644 (file)
@@ -1,5 +1,4 @@
 # $FreeBSD: src/gnu/usr.bin/man/manpath/manpath.config,v 1.15.2.1 2003/02/14 22:38:14 nectar Exp $
-# $DragonFly: src/gnu/usr.bin/man/manpath/manpath.config,v 1.8 2007/07/11 08:21:14 swildner Exp $
 #
 # This file is read by manpath(1) to configure the mandatory manpath,
 # optional manpath and to map each path element to a manpath element.