Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-6]: src Pull up following revision(s) (requested by joerg in tick...



details:   https://anonhg.NetBSD.org/src/rev/9e4eb2689dbb
branches:  netbsd-6
changeset: 773769:9e4eb2689dbb
user:      riz <riz%NetBSD.org@localhost>
date:      Sat Feb 18 18:03:26 2012 +0000

description:
Pull up following revision(s) (requested by joerg in ticket #4):
        usr.sbin/makemandb/apropos.c: revision 1.5
        external/bsd/mdocml/dist/read.c: revision 1.6
        external/bsd/mdocml/dist/mandoc.h: revision 1.2
        usr.sbin/makemandb/makemandb.c: revision 1.3
        usr.sbin/makemandb/makemandb.c: revision 1.4
        usr.sbin/makemandb/makemandb.c: revision 1.5
        usr.sbin/makemandb/Makefile: revision 1.2
        etc/man.conf: revision 1.30
        usr.sbin/makemandb/apropos.1: revision 1.3
        external/bsd/mdocml/Makefile.inc: revision 1.15
Be a bit more friendly to man pages using the roff .so command by
changing the current directory to the parent of the man -p entry, e.g.
/usr/share/man for /usr/share/man1.
Also handle hyphen replacement if it was used as plain input and no
backslash sequence was used at all in the line.
Add support for apropos -s like in the old apropos. Fix capitalisation.
Add note about optional quotation. From Abhinav Upadhyay.
Merge mandoc.h r1.99 and read.c 1.28 from upstream:
Add mparse_readmem, which allows application to run the parser directly
from memory, e.g. after de-compressing a document.
Add support for compressed man pages in all the usual formats.
Use mmap when dealing with plain files.
Add entries for bzip2 and xz.

diffstat:

 etc/man.conf                      |   20 +++-
 external/bsd/mdocml/Makefile.inc  |    4 +-
 external/bsd/mdocml/dist/mandoc.h |    4 +-
 external/bsd/mdocml/dist/read.c   |   98 +++++++++++++++-----------
 usr.sbin/makemandb/Makefile       |    6 +-
 usr.sbin/makemandb/apropos.1      |   16 +++-
 usr.sbin/makemandb/apropos.c      |   17 +++-
 usr.sbin/makemandb/makemandb.c    |  139 ++++++++++++++++++++++++++++++-------
 8 files changed, 212 insertions(+), 92 deletions(-)

diffs (truncated from 666 to 300 lines):

diff -r cff4719a33ca -r 9e4eb2689dbb etc/man.conf
--- a/etc/man.conf      Fri Feb 17 00:43:14 2012 +0000
+++ b/etc/man.conf      Sat Feb 18 18:03:26 2012 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: man.conf,v 1.29 2012/02/14 14:03:35 wiz Exp $
+#      $NetBSD: man.conf,v 1.29.2.1 2012/02/18 18:03:26 riz Exp $
 
 # Sheer, raging paranoia...
 _version       BSD.2
@@ -17,18 +17,26 @@
 # Note the order, .Z must come after .[1-9].Z, or it will match first.
 _suffix                .0
 _build         .0.Z            /usr/bin/zcat %s
-_build         .0.gz           /usr/bin/gunzip -c %s
+_build         .0.bz2          /usr/bin/bzcat %s
+_build         .0.gz           /usr/bin/zcat %s
+_build         .0.xz           /usr/bin/xzcat %s
 _build         .[1-9ln]        /usr/bin/mandoc %s
 _build         .[1-9ln].Z      /usr/bin/zcat %s | /usr/bin/mandoc
-_build         .[1-9ln].gz     /usr/bin/gunzip -c %s | /usr/bin/mandoc
+_build         .[1-9ln].bz2    /usr/bin/bzcat %s | /usr/bin/mandoc
+_build         .[1-9ln].gz     /usr/bin/zcat %s | /usr/bin/mandoc
+_build         .[1-9ln].xz     /usr/bin/xzcat %s | /usr/bin/mandoc
 _build         .tbl            /usr/bin/mandoc %s
 _build         .tbl.Z          /usr/bin/zcat %s | /usr/bin/mandoc
-_build         .tbl.gz         /usr/bin/gunzip -c %s | /usr/bin/mandoc
+_build         .tbl.bz2        /usr/bin/bzcat %s | /usr/bin/mandoc
+_build         .tbl.gz         /usr/bin/zcat %s | /usr/bin/mandoc
+_build         .tbl.xz         /usr/bin/xzcat %s | /usr/bin/mandoc
 
 _build         .me             /usr/bin/nroff -msafer -me %s 2>/dev/null | cat -s
 
-_crunch                .Z              /usr/bin/compress -c > %s
-_crunch                .gz             /usr/bin/gzip -c > %s
+_crunch                .Z              /usr/bin/zcat > %s
+_crunch                .bz             /usr/bin/bzcat > %s
+_crunch                .gz             /usr/bin/zcat > %s
+_crunch                .xz             /usr/bin/xzcat > %s
 
 # Sections and their directories.
 # All paths ending in '/' are the equivalent of entries specifying that
diff -r cff4719a33ca -r 9e4eb2689dbb external/bsd/mdocml/Makefile.inc
--- a/external/bsd/mdocml/Makefile.inc  Fri Feb 17 00:43:14 2012 +0000
+++ b/external/bsd/mdocml/Makefile.inc  Sat Feb 18 18:03:26 2012 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.inc,v 1.14 2011/10/12 15:33:38 njoly Exp $
+# $NetBSD: Makefile.inc,v 1.14.4.1 2012/02/18 18:03:26 riz Exp $
 
 .include <bsd.own.mk>
 
@@ -7,7 +7,7 @@
 CPPFLAGS+=     -DVERSION=\"${VERSION}\" -DUGLY
 
 .if (${HOSTPROG:U} == "")
-CPPFLAGS+=     -DHAVE_STRLCAT -DHAVE_STRLCPY -DHAVE_STRPTIME
+CPPFLAGS+=     -DHAVE_STRLCAT -DHAVE_STRLCPY -DHAVE_STRPTIME -DHAVE_MMAP
 .endif
 
 DISTDIR:=      ${.PARSEDIR}/dist
diff -r cff4719a33ca -r 9e4eb2689dbb external/bsd/mdocml/dist/mandoc.h
--- a/external/bsd/mdocml/dist/mandoc.h Fri Feb 17 00:43:14 2012 +0000
+++ b/external/bsd/mdocml/dist/mandoc.h Sat Feb 18 18:03:26 2012 +0000
@@ -1,4 +1,4 @@
-/*     $Vendor-Id: mandoc.h,v 1.98 2011/11/08 00:15:23 kristaps Exp $ */
+/*     $Vendor-Id: mandoc.h,v 1.99 2012/02/16 20:51:31 joerg Exp $ */
 /*
  * Copyright (c) 2010, 2011 Kristaps Dzonsons <kristaps%bsd.lv@localhost>
  *
@@ -418,6 +418,8 @@
 void             mparse_free(struct mparse *);
 void             mparse_keep(struct mparse *);
 enum mandoclevel  mparse_readfd(struct mparse *, int, const char *);
+enum mandoclevel  mparse_readmem(struct mparse *, const void *, size_t,
+                       const char *);
 void             mparse_reset(struct mparse *);
 void             mparse_result(struct mparse *, 
                        struct mdoc **, struct man **);
diff -r cff4719a33ca -r 9e4eb2689dbb external/bsd/mdocml/dist/read.c
--- a/external/bsd/mdocml/dist/read.c   Fri Feb 17 00:43:14 2012 +0000
+++ b/external/bsd/mdocml/dist/read.c   Sat Feb 18 18:03:26 2012 +0000
@@ -1,4 +1,4 @@
-/*     $Vendor-Id: read.c,v 1.27 2012/02/05 16:46:15 joerg Exp $ */
+/*     $Vendor-Id: read.c,v 1.28 2012/02/16 20:51:31 joerg Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps%bsd.lv@localhost>
  * Copyright (c) 2010, 2011 Ingo Schwarze <schwarze%openbsd.org@localhost>
@@ -28,6 +28,7 @@
 #include <ctype.h>
 #include <fcntl.h>
 #include <stdarg.h>
+#include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -37,6 +38,7 @@
 #include "libmandoc.h"
 #include "mdoc.h"
 #include "man.h"
+#include "main.h"
 
 #ifndef MAP_FILE
 #define        MAP_FILE        0
@@ -70,7 +72,6 @@
 static void      mparse_buf_r(struct mparse *, struct buf, int);
 static void      mparse_readfd_r(struct mparse *, int, const char *, int);
 static void      pset(const char *, int, struct mparse *);
-static void      pdesc(struct mparse *, const char *, int);
 static int       read_whole_file(const char *, int, struct buf *, int *);
 static void      mparse_end(struct mparse *);
 
@@ -547,38 +548,6 @@
        free(ln.buf);
 }
 
-static void
-pdesc(struct mparse *curp, const char *file, int fd)
-{
-       struct buf       blk;
-       int              with_mmap;
-
-       /*
-        * Run for each opened file; may be called more than once for
-        * each full parse sequence if the opened file is nested (i.e.,
-        * from `so').  Simply sucks in the whole file and moves into
-        * the parse phase for the file.
-        */
-
-       if ( ! read_whole_file(file, fd, &blk, &with_mmap)) {
-               curp->file_status = MANDOCLEVEL_SYSERR;
-               return;
-       }
-
-       /* Line number is per-file. */
-
-       curp->line = 1;
-
-       mparse_buf_r(curp, blk, 1);
-
-#ifdef HAVE_MMAP
-       if (with_mmap)
-               munmap(blk.buf, blk.sz);
-       else
-#endif
-               free(blk.buf);
-}
-
 static int
 read_whole_file(const char *file, int fd, struct buf *fb, int *with_mmap)
 {
@@ -674,9 +643,42 @@
 }
 
 static void
+mparse_parse_buffer(struct mparse *curp, struct buf blk, const char *file,
+               int re)
+{
+       const char      *svfile;
+
+       /* Line number is per-file. */
+       svfile = curp->file;
+       curp->file = file;
+       curp->line = 1;
+
+       mparse_buf_r(curp, blk, 1);
+
+       if (0 == re && MANDOCLEVEL_FATAL > curp->file_status)
+               mparse_end(curp);
+
+       curp->file = svfile;
+}
+
+enum mandoclevel
+mparse_readmem(struct mparse *curp, const void *buf, size_t len,
+               const char *file)
+{
+       struct buf blk;
+
+       blk.buf = UNCONST(buf);
+       blk.sz = len;
+
+       mparse_parse_buffer(curp, blk, file, 0);
+       return(curp->file_status);
+}
+
+static void
 mparse_readfd_r(struct mparse *curp, int fd, const char *file, int re)
 {
-       const char      *svfile;
+       struct buf       blk;
+       int              with_mmap;
 
        if (-1 == fd)
                if (-1 == (fd = open(file, O_RDONLY, 0))) {
@@ -684,19 +686,29 @@
                        curp->file_status = MANDOCLEVEL_SYSERR;
                        return;
                }
-
-       svfile = curp->file;
-       curp->file = file;
+       /*
+        * Run for each opened file; may be called more than once for
+        * each full parse sequence if the opened file is nested (i.e.,
+        * from `so').  Simply sucks in the whole file and moves into
+        * the parse phase for the file.
+        */
 
-       pdesc(curp, file, fd);
+       if ( ! read_whole_file(file, fd, &blk, &with_mmap)) {
+               curp->file_status = MANDOCLEVEL_SYSERR;
+               return;
+       }
+
+       mparse_parse_buffer(curp, blk, file, re);
 
-       if (0 == re && MANDOCLEVEL_FATAL > curp->file_status)
-               mparse_end(curp);
+#ifdef HAVE_MMAP
+       if (with_mmap)
+               munmap(blk.buf, blk.sz);
+       else
+#endif
+               free(blk.buf);
 
        if (STDIN_FILENO != fd && -1 == close(fd))
                perror(file);
-
-       curp->file = svfile;
 }
 
 enum mandoclevel
diff -r cff4719a33ca -r 9e4eb2689dbb usr.sbin/makemandb/Makefile
--- a/usr.sbin/makemandb/Makefile       Fri Feb 17 00:43:14 2012 +0000
+++ b/usr.sbin/makemandb/Makefile       Sat Feb 18 18:03:26 2012 +0000
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.1 2012/02/07 19:13:32 joerg Exp $
+# $NetBSD: Makefile,v 1.1.2.1 2012/02/18 18:03:26 riz Exp $
 
 .include <bsd.own.mk>
 
@@ -22,8 +22,8 @@
 MDOCMLOBJDIR!= cd ${MDOCDIR}/lib/libmandoc && ${PRINTOBJDIR}
 MDOCMLLIB=     ${MDOCMLOBJDIR}/libmandoc.a
 
-DPADD.makemandb+=      ${MDOCMLLIB}
-LDADD.makemandb+=      -L${MDOCMLOBJDIR} -lmandoc
+DPADD.makemandb+=      ${MDOCMLLIB} ${LIBARCHIVE} ${LIBBZ2} ${LIBLZMA}
+LDADD.makemandb+=      -L${MDOCMLOBJDIR} -lmandoc -larchive -lbz2 -llzma
 DPADD+=                ${LIBSQLITE3} ${LIBM} ${LIBZ} ${LIBUTIL}
 LDADD+=                -lsqlite3 -lm -lz -lutil
 
diff -r cff4719a33ca -r 9e4eb2689dbb usr.sbin/makemandb/apropos.1
--- a/usr.sbin/makemandb/apropos.1      Fri Feb 17 00:43:14 2012 +0000
+++ b/usr.sbin/makemandb/apropos.1      Sat Feb 18 18:03:26 2012 +0000
@@ -1,4 +1,4 @@
-.\" $NetBSD: apropos.1,v 1.2 2012/02/10 16:57:44 njoly Exp $
+.\" $NetBSD: apropos.1,v 1.2.2.1 2012/02/18 18:03:26 riz Exp $
 .\"
 .\" Copyright (c) 2011 Abhinav Upadhyay <er.abhinav.upadhyay%gmail.com@localhost>
 .\" All rights reserved.
@@ -29,7 +29,7 @@
 .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd February 6, 2012
+.Dd February 15, 2012
 .Dt APROPOS 1
 .Os
 .Sh NAME
@@ -40,6 +40,7 @@
 .Op Fl 123456789Ccp
 .Op Fl n Ar Number of results
 .Op Fl S Ar machine
+.Op Fl s Ar section
 .Ar query
 .Sh DESCRIPTION
 The
@@ -61,6 +62,8 @@
 .Nm
 will only display the top 10 matches in the output.
 .Pp
+Quotes are optional for specifying multiword queries.
+.Pp
 It supports the following options:
 .Bl -tag -width indent
 .It Fl 1
@@ -91,9 +94,16 @@
 .It Fl p
 Display all matching results and pipe them through a pager (defaulting to
 .Xr more 1 ) .
-.It Fl S
+.It Fl S Ar machine
 Limit the search to the pages for the specified machine architecture.
 By default pages for all architectures are shown in the search results.
+.It Fl s Ar section
+Restrict the search to the specified section of the manual.
+By default, pages from all section are shown.
+This option is for backwards compatibility with the classic version of apropos,
+using it is equivalent to using the
+.Op 123456789



Home | Main Index | Thread Index | Old Index