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