Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F160579703
D57648.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
65 KB
Referenced Files
None
Subscribers
None
D57648.id.diff
View Options
diff --git a/share/mk/bsd.doc.mk b/share/mk/bsd.doc.mk
--- a/share/mk/bsd.doc.mk
+++ b/share/mk/bsd.doc.mk
@@ -46,7 +46,6 @@
BIB?= bib
GREMLIN?= grn
-GRIND?= vgrind -f
INDXBIB?= indxbib
PIC?= pic
REFER?= refer
diff --git a/targets/pseudo/userland/Makefile.depend b/targets/pseudo/userland/Makefile.depend
--- a/targets/pseudo/userland/Makefile.depend
+++ b/targets/pseudo/userland/Makefile.depend
@@ -362,7 +362,6 @@
usr.bin/usbhidctl \
usr.bin/users \
usr.bin/vacation \
- usr.bin/vgrind \
usr.bin/vi \
usr.bin/vi/catalog \
usr.bin/vis \
diff --git a/usr.bin/ctags/ctags.h b/usr.bin/ctags/ctags.h
--- a/usr.bin/ctags/ctags.h
+++ b/usr.bin/ctags/ctags.h
@@ -72,7 +72,6 @@
extern int lineno; /* line number of current line */
extern int dflag; /* -d: non-macro defines */
extern int tflag; /* -t: create tags for typedefs */
-extern int vflag; /* -v: vgrind style index output */
extern int wflag; /* -w: suppress warnings */
extern int xflag; /* -x: cxref style output */
extern bool _wht[], _etk[], _itk[], _btk[], _gd[];
diff --git a/usr.bin/ctags/ctags.1 b/usr.bin/ctags/ctags.1
--- a/usr.bin/ctags/ctags.1
+++ b/usr.bin/ctags/ctags.1
@@ -110,21 +110,6 @@
slow; it is usually faster to simply rebuild the
.Pa tags
file.
-.It Fl v
-An index of the form expected by
-.Xr vgrind 1
-is produced on the standard output.
-This listing
-contains the object name, file name, and page number (assuming 64
-line pages).
-Since the output will be sorted into lexicographic order,
-it may be desired to run the output through
-.Xr sort 1 .
-Sample use:
-.Bd -literal -offset indent
-ctags -v files | sort -f > index
-vgrind -x index
-.Ed
.It Fl w
Suppress warning diagnostics.
.It Fl x
diff --git a/usr.bin/ctags/ctags.c b/usr.bin/ctags/ctags.c
--- a/usr.bin/ctags/ctags.c
+++ b/usr.bin/ctags/ctags.c
@@ -62,7 +62,6 @@
int lineno; /* line number of current line */
int dflag; /* -d: non-macro defines */
int tflag; /* -t: create tags for typedefs */
-int vflag; /* -v: vgrind style index output */
int wflag; /* -w: suppress warnings */
int xflag; /* -x: cxref style output */
@@ -88,7 +87,7 @@
aflag = uflag = false;
tflag = true;
- while ((ch = getopt(argc, argv, "BFTadf:tuwvx")) != -1)
+ while ((ch = getopt(argc, argv, "BFTadf:tuwx")) != -1)
switch(ch) {
case 'B':
searchar = '?';
@@ -117,8 +116,6 @@
case 'w':
wflag++;
break;
- case 'v':
- vflag++;
case 'x':
xflag++;
break;
diff --git a/usr.bin/ctags/print.c b/usr.bin/ctags/print.c
--- a/usr.bin/ctags/print.c
+++ b/usr.bin/ctags/print.c
@@ -93,10 +93,7 @@
if (node->left)
put_entries(node->left);
- if (vflag)
- printf("%s %s %d\n",
- node->entry, node->file, (node->lno + 63) / 64);
- else if (xflag)
+ if (xflag)
printf("%-16s %4d %-16s %s\n",
node->entry, node->lno, node->file, node->pat);
else
diff --git a/usr.bin/man/man.1 b/usr.bin/man/man.1
--- a/usr.bin/man/man.1
+++ b/usr.bin/man/man.1
@@ -190,8 +190,6 @@
.Xr refer 1 Pq Pa ports/textproc/groff
.It Cm t
.Xr tbl 1 Pq Pa ports/textproc/groff
-.It Cm v
-.Xr vgrind 1
.El
.Pp
Overrides the
diff --git a/usr.bin/man/man.conf.5 b/usr.bin/man/man.conf.5
--- a/usr.bin/man/man.conf.5
+++ b/usr.bin/man/man.conf.5
@@ -76,7 +76,6 @@
.It TBL Ns _ Ns Va LANG
.It TROFF Ns _ Ns Va LANG
.It REFER Ns _ Ns Va LANG
-.It VGRIND Ns _ Ns Va LANG
.El
.Pp
See the
diff --git a/usr.bin/man/man.sh b/usr.bin/man/man.sh
--- a/usr.bin/man/man.sh
+++ b/usr.bin/man/man.sh
@@ -418,7 +418,7 @@
# Usage: man_display_page_groff
# Display the manpage using groff
man_display_page_groff() {
- local EQN NROFF PIC TBL TROFF REFER VGRIND
+ local EQN NROFF PIC TBL TROFF REFER
local IFS l nroff_dev pipeline preproc_arg tool
# So, we really do need to parse the manpage. First, figure out the
@@ -456,7 +456,7 @@
# Allow language specific calls to override the default
# set of utilities.
l=$(echo $man_lang | tr [:lower:] [:upper:])
- for tool in EQN NROFF PIC TBL TROFF REFER VGRIND; do
+ for tool in EQN NROFF PIC TBL TROFF REFER; do
eval "$tool=\${${tool}_$l:-\$$tool}"
done
;;
@@ -483,7 +483,6 @@
p) pipeline="$pipeline | $PIC" ;;
r) pipeline="$pipeline | $REFER" ;;
t) pipeline="$pipeline | $TBL" ;;
- v) pipeline="$pipeline | $VGRIND" ;;
*) usage ;;
esac
done
@@ -1129,7 +1128,6 @@
REFER=refer
TBL=tbl
TROFF='groff -S -mandoc'
-VGRIND=vgrind
LOCALE=/usr/bin/locale
STTY=/bin/stty
diff --git a/usr.bin/vgrind/Makefile b/usr.bin/vgrind/Makefile
deleted file mode 100644
--- a/usr.bin/vgrind/Makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-PROG= vfontedpr
-SRCS= regexp.c vfontedpr.c
-SCRIPTS=vgrind.sh
-FILES= vgrindefs.src vgrindefs.src.db tmac.vgrind
-FILESNAME_vgrindefs.src= vgrindefs
-FILESNAME_vgrindefs.src.db= vgrindefs.db
-FILESDIR= ${SHAREDIR}/misc
-FILESDIR_tmac.vgrind= ${SHAREDIR}/tmac
-MAN= vgrind.1 vgrindefs.5
-
-WARNS?= 3
-
-BINDIR= ${LIBEXECDIR}
-SCRIPTSDIR=/usr/bin
-
-CLEANFILES= vgrindefs.src.db
-
-.include <bsd.endian.mk>
-.include <src.tools.mk>
-
-vgrindefs.src.db: vgrindefs.src
- ${CAP_MKDB_CMD} ${CAP_MKDB_ENDIAN} -f vgrindefs.src ${.ALLSRC}
-
-.include <bsd.prog.mk>
diff --git a/usr.bin/vgrind/Makefile.depend b/usr.bin/vgrind/Makefile.depend
deleted file mode 100644
--- a/usr.bin/vgrind/Makefile.depend
+++ /dev/null
@@ -1,15 +0,0 @@
-# Autogenerated - do NOT edit!
-
-DIRDEPS = \
- include \
- include/xlocale \
- lib/${CSU_DIR} \
- lib/libc \
- lib/libcompiler_rt \
-
-
-.include <dirdeps.mk>
-
-.if ${DEP_RELDIR} == ${_DEP_RELDIR}
-# local dependencies - needed for -jN in clean tree
-.endif
diff --git a/usr.bin/vgrind/extern.h b/usr.bin/vgrind/extern.h
deleted file mode 100644
--- a/usr.bin/vgrind/extern.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-extern bool _escaped; /* if last character was an escape */
-extern char *s_start; /* start of the current string */
-extern char *l_acmbeg; /* string introducing a comment */
-extern char *l_acmend; /* string ending a comment */
-extern char *l_blkbeg; /* string beginning of a block */
-extern char *l_blkend; /* string ending a block */
-extern char *l_chrbeg; /* delimiter for character constant */
-extern char *l_chrend; /* delimiter for character constant */
-extern char *l_combeg; /* string introducing a comment */
-extern char *l_comend; /* string ending a comment */
-extern char l_escape; /* character used to escape characters */
-extern char *l_keywds[]; /* keyword table address */
-extern bool l_onecase; /* upper and lower case are equivalent */
-extern char *l_prcbeg; /* regular expr for procedure begin */
-extern char *l_strbeg; /* delimiter for string constant */
-extern char *l_strend; /* delimiter for string constant */
-extern bool l_toplex; /* procedures only defined at top lex level */
-extern const char *language; /* the language indicator */
-
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
-extern int STRNCMP(char *, char *, int);
-extern char *convexp(char *);
-extern char *expmatch(char *, char *, char *);
-__END_DECLS
-
diff --git a/usr.bin/vgrind/pathnames.h b/usr.bin/vgrind/pathnames.h
deleted file mode 100644
--- a/usr.bin/vgrind/pathnames.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
- * Copyright (c) 1989, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#define _PATH_VGRINDEFS "/usr/share/misc/vgrindefs"
diff --git a/usr.bin/vgrind/regexp.c b/usr.bin/vgrind/regexp.c
deleted file mode 100644
--- a/usr.bin/vgrind/regexp.c
+++ /dev/null
@@ -1,584 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <ctype.h>
-#include <stdlib.h>
-#include <stdbool.h>
-#include <string.h>
-
-#include "extern.h"
-
-static void expconv(void);
-
-bool _escaped; /* true if we are currently x_escaped */
-char *s_start; /* start of string */
-bool l_onecase; /* true if upper and lower equivalent */
-
-#define makelower(c) (isupper((c)) ? tolower((c)) : (c))
-
-/* STRNCMP - like strncmp except that we convert the
- * first string to lower case before comparing
- * if l_onecase is set.
- */
-
-int
-STRNCMP(register char *s1, register char *s2, register int len)
-{
- if (l_onecase) {
- do
- if (*s2 - makelower(*s1))
- return (*s2 - makelower(*s1));
- else {
- s2++;
- s1++;
- }
- while (--len);
- } else {
- do
- if (*s2 - *s1)
- return (*s2 - *s1);
- else {
- s2++;
- s1++;
- }
- while (--len);
- }
- return(0);
-}
-
-/* The following routine converts an irregular expression to
- * internal format.
- *
- * Either meta symbols (\a \d or \p) or character strings or
- * operations ( alternation or parenthesizing ) can be
- * specified. Each starts with a descriptor byte. The descriptor
- * byte has STR set for strings, META set for meta symbols
- * and OPER set for operations.
- * The descriptor byte can also have the OPT bit set if the object
- * defined is optional. Also ALT can be set to indicate an alternation.
- *
- * For metasymbols the byte following the descriptor byte identities
- * the meta symbol (containing an ascii 'a', 'd', 'p', '|', or '('). For
- * strings the byte after the descriptor is a character count for
- * the string:
- *
- * meta symbols := descriptor
- * symbol
- *
- * strings := descriptor
- * character count
- * the string
- *
- * operations := descriptor
- * symbol
- * character count
- */
-
-/*
- * handy macros for accessing parts of match blocks
- */
-#define MSYM(A) (*(A+1)) /* symbol in a meta symbol block */
-#define MNEXT(A) (A+2) /* character following a metasymbol block */
-
-#define OSYM(A) (*(A+1)) /* symbol in an operation block */
-#define OCNT(A) (*(A+2)) /* character count */
-#define ONEXT(A) (A+3) /* next character after the operation */
-#define OPTR(A) (A+*(A+2)) /* place pointed to by the operator */
-
-#define SCNT(A) (*(A+1)) /* byte count of a string */
-#define SSTR(A) (A+2) /* address of the string */
-#define SNEXT(A) (A+2+*(A+1)) /* character following the string */
-
-/*
- * bit flags in the descriptor
- */
-#define OPT 1
-#define STR 2
-#define META 4
-#define ALT 8
-#define OPER 16
-
-static char *ccre; /* pointer to current position in converted exp*/
-static char *ure; /* pointer current position in unconverted exp */
-
-/* re: unconverted irregular expression */
-char *
-convexp(char *re)
-{
- register char *cre; /* pointer to converted regular expression */
-
- /* allocate room for the converted expression */
- if (re == NULL)
- return (NULL);
- if (*re == '\0')
- return (NULL);
- cre = malloc(4 * strlen(re) + 3);
- ccre = cre;
- ure = re;
-
- /* start the conversion with a \a */
- *cre = META | OPT;
- MSYM(cre) = 'a';
- ccre = MNEXT(cre);
-
- /* start the conversion (its recursive) */
- expconv ();
- *ccre = 0;
- return (cre);
-}
-
-static void
-expconv()
-{
- register char *cs; /* pointer to current symbol in converted exp */
- register char c; /* character being processed */
- register char *acs; /* pinter to last alternate */
- register int temp;
-
- /* let the conversion begin */
- acs = NULL;
- cs = NULL;
- while (*ure) {
- switch (c = *ure++) {
-
- case '\\':
- switch (c = *ure++) {
-
- /* escaped characters are just characters */
- default:
- if (cs == NULL || (*cs & STR) == 0) {
- cs = ccre;
- *cs = STR;
- SCNT(cs) = 1;
- ccre += 2;
- } else
- SCNT(cs)++;
- *ccre++ = c;
- break;
-
- /* normal(?) metacharacters */
- case 'a':
- case 'd':
- case 'e':
- case 'p':
- if (acs != NULL && acs != cs) {
- do {
- temp = OCNT(acs);
- OCNT(acs) = ccre - acs;
- acs -= temp;
- } while (temp != 0);
- acs = NULL;
- }
- cs = ccre;
- *cs = META;
- MSYM(cs) = c;
- ccre = MNEXT(cs);
- break;
- }
- break;
-
- /* just put the symbol in */
- case '^':
- case '$':
- if (acs != NULL && acs != cs) {
- do {
- temp = OCNT(acs);
- OCNT(acs) = ccre - acs;
- acs -= temp;
- } while (temp != 0);
- acs = NULL;
- }
- cs = ccre;
- *cs = META;
- MSYM(cs) = c;
- ccre = MNEXT(cs);
- break;
-
- /* mark the last match sequence as optional */
- case '?':
- if (cs)
- *cs = *cs | OPT;
- break;
-
- /* recurse and define a subexpression */
- case '(':
- if (acs != NULL && acs != cs) {
- do {
- temp = OCNT(acs);
- OCNT(acs) = ccre - acs;
- acs -= temp;
- } while (temp != 0);
- acs = NULL;
- }
- cs = ccre;
- *cs = OPER;
- OSYM(cs) = '(';
- ccre = ONEXT(cs);
- expconv();
- OCNT(cs) = ccre - cs; /* offset to next symbol */
- break;
-
- /* return from a recursion */
- case ')':
- if (acs != NULL) {
- do {
- temp = OCNT(acs);
- OCNT(acs) = ccre - acs;
- acs -= temp;
- } while (temp != 0);
- acs = NULL;
- }
- cs = ccre;
- *cs = META;
- MSYM(cs) = c;
- ccre = MNEXT(cs);
- return;
-
- /* mark the last match sequence as having an alternate */
- /* the third byte will contain an offset to jump over the */
- /* alternate match in case the first did not fail */
- case '|':
- if (acs != NULL && acs != cs)
- OCNT(ccre) = ccre - acs; /* make a back pointer */
- else
- OCNT(ccre) = 0;
- *cs |= ALT;
- cs = ccre;
- *cs = OPER;
- OSYM(cs) = '|';
- ccre = ONEXT(cs);
- acs = cs; /* remember that the pointer is to be filles */
- break;
-
- /* if its not a metasymbol just build a scharacter string */
- default:
- if (cs == NULL || (*cs & STR) == 0) {
- cs = ccre;
- *cs = STR;
- SCNT(cs) = 1;
- ccre = SSTR(cs);
- } else
- SCNT(cs)++;
- *ccre++ = c;
- break;
- }
- }
- if (acs != NULL) {
- do {
- temp = OCNT(acs);
- OCNT(acs) = ccre - acs;
- acs -= temp;
- } while (temp != 0);
- acs = NULL;
- }
- return;
-}
-/* end of convertre */
-
-
-/*
- * The following routine recognises an irregular expression
- * with the following special characters:
- *
- * \? - means last match was optional
- * \a - matches any number of characters
- * \d - matches any number of spaces and tabs
- * \p - matches any number of alphanumeric
- * characters. The
- * characters matched will be copied into
- * the area pointed to by 'name'.
- * \| - alternation
- * \( \) - grouping used mostly for alternation and
- * optionality
- *
- * The irregular expression must be translated to internal form
- * prior to calling this routine
- *
- * The value returned is the pointer to the first non \a
- * character matched.
- */
-
-/*
- * s: string to check for a match in
- * re: a converted irregular expression
- * mstring: where to put whatever matches a \p
- */
-char *
-expmatch (register char *s, register char *re, register char *mstring)
-{
- register char *cs; /* the current symbol */
- register char *ptr,*s1; /* temporary pointer */
- bool matched; /* a temporary bool */
-
- /* initial conditions */
- if (re == NULL)
- return (NULL);
- cs = re;
- matched = false;
-
- /* loop till expression string is exhausted (or at least pretty tired) */
- while (*cs) {
- switch (*cs & (OPER | STR | META)) {
-
- /* try to match a string */
- case STR:
- matched = !STRNCMP (s, SSTR(cs), SCNT(cs));
- if (matched) {
-
- /* hoorah it matches */
- s += SCNT(cs);
- cs = SNEXT(cs);
- } else if (*cs & ALT) {
-
- /* alternation, skip to next expression */
- cs = SNEXT(cs);
- } else if (*cs & OPT) {
-
- /* the match is optional */
- cs = SNEXT(cs);
- matched = 1; /* indicate a successful match */
- } else {
-
- /* no match, error return */
- return (NULL);
- }
- break;
-
- /* an operator, do something fancy */
- case OPER:
- switch (OSYM(cs)) {
-
- /* this is an alternation */
- case '|':
- if (matched)
-
- /* last thing in the alternation was a match, skip ahead */
- cs = OPTR(cs);
- else
-
- /* no match, keep trying */
- cs = ONEXT(cs);
- break;
-
- /* this is a grouping, recurse */
- case '(':
- ptr = expmatch(s, ONEXT(cs), mstring);
- if (ptr != NULL) {
-
- /* the subexpression matched */
- matched = 1;
- s = ptr;
- } else if (*cs & ALT) {
-
- /* alternation, skip to next expression */
- matched = 0;
- } else if (*cs & OPT) {
-
- /* the match is optional */
- matched = 1; /* indicate a successful match */
- } else {
-
- /* no match, error return */
- return (NULL);
- }
- cs = OPTR(cs);
- break;
- }
- break;
-
- /* try to match a metasymbol */
- case META:
- switch (MSYM(cs)) {
-
- /* try to match anything and remember what was matched */
- case 'p':
- /*
- * This is really the same as trying the match the
- * remaining parts of the expression to any subset
- * of the string.
- */
- s1 = s;
- do {
- ptr = expmatch(s1, MNEXT(cs), mstring);
- if (ptr != NULL && s1 != s) {
-
- /* we have a match, remember the match */
- strncpy (mstring, s, s1 - s);
- mstring[s1 - s] = '\0';
- return (ptr);
- } else if (ptr != NULL && (*cs & OPT)) {
-
- /* it was aoptional so no match is ok */
- return (ptr);
- } else if (ptr != NULL) {
-
- /* not optional and we still matched */
- return (NULL);
- }
- if (!(isalnum(*s1) || *s1 == '_' ||
- /* C++ destructor */
- *s1 == '~' ||
- /* C++ scope operator */
- (strlen(s1) > 1 && *s1 == ':' && s1[1] == ':' &&
- (s1++, true))))
- return (NULL);
- if (*s1 == '\\')
- _escaped = _escaped ? false : true;
- else
- _escaped = false;
- } while (*s1++);
- return (NULL);
-
- /* try to match anything */
- case 'a':
- /*
- * This is really the same as trying the match the
- * remaining parts of the expression to any subset
- * of the string.
- */
- s1 = s;
- do {
- ptr = expmatch(s1, MNEXT(cs), mstring);
- if (ptr != NULL && s1 != s) {
-
- /* we have a match */
- return (ptr);
- } else if (ptr != NULL && (*cs & OPT)) {
-
- /* it was aoptional so no match is ok */
- return (ptr);
- } else if (ptr != NULL) {
-
- /* not optional and we still matched */
- return (NULL);
- }
- if (*s1 == '\\')
- _escaped = _escaped ? false : true;
- else
- _escaped = false;
- } while (*s1++);
- return (NULL);
-
- /* fail if we are currently _escaped */
- case 'e':
- if (_escaped)
- return(NULL);
- cs = MNEXT(cs);
- break;
-
- /* match any number of tabs and spaces */
- case 'd':
- ptr = s;
- while (*s == ' ' || *s == '\t')
- s++;
- if (s != ptr || s == s_start) {
-
- /* match, be happy */
- matched = 1;
- cs = MNEXT(cs);
- } else if (*s == '\n' || *s == '\0') {
-
- /* match, be happy */
- matched = 1;
- cs = MNEXT(cs);
- } else if (*cs & ALT) {
-
- /* try the next part */
- matched = 0;
- cs = MNEXT(cs);
- } else if (*cs & OPT) {
-
- /* doesn't matter */
- matched = 1;
- cs = MNEXT(cs);
- } else
-
- /* no match, error return */
- return (NULL);
- break;
-
- /* check for end of line */
- case '$':
- if (*s == '\0' || *s == '\n') {
-
- /* match, be happy */
- s++;
- matched = 1;
- cs = MNEXT(cs);
- } else if (*cs & ALT) {
-
- /* try the next part */
- matched = 0;
- cs = MNEXT(cs);
- } else if (*cs & OPT) {
-
- /* doesn't matter */
- matched = 1;
- cs = MNEXT(cs);
- } else
-
- /* no match, error return */
- return (NULL);
- break;
-
- /* check for start of line */
- case '^':
- if (s == s_start) {
-
- /* match, be happy */
- matched = 1;
- cs = MNEXT(cs);
- } else if (*cs & ALT) {
-
- /* try the next part */
- matched = 0;
- cs = MNEXT(cs);
- } else if (*cs & OPT) {
-
- /* doesn't matter */
- matched = 1;
- cs = MNEXT(cs);
- } else
-
- /* no match, error return */
- return (NULL);
- break;
-
- /* end of a subexpression, return success */
- case ')':
- return (s);
- }
- break;
- }
- }
- return (s);
-}
diff --git a/usr.bin/vgrind/tmac.vgrind b/usr.bin/vgrind/tmac.vgrind
deleted file mode 100644
--- a/usr.bin/vgrind/tmac.vgrind
+++ /dev/null
@@ -1,71 +0,0 @@
-.am vS
-..
-.am vE
-..
-'ss 23
-'ds _ \d\(mi\u
-'ps 9z
-'vs 10p
-'ds - \(mi
-'ds / \\h'\\w' 'u-\\w'/'u'/
-'ds /* \\h'\\w' 'u-\\w'/'u'/*
-'bd B 3
-'bd S B 3
-'nr cm 0
-'nf
-'de vH
-'ev 2
-'ft 1
-'sp .35i
-'tl '\s14\f3\\*(=F\fP\s0'\\*(=H'\f3\s14\\*(=F\fP\s0'
-'sp .25i
-'ft 1
-\f2\s12\h'\\n(.lu-\w'\\*(=f'u'\\*(=f\fP\s0\h'|0u'
-.sp .05i
-'ev
-'ds =G \\*(=F
-..
-'de vF
-'ev 2
-'sp .35i
-'ie o 'tl '\f2\\*(=M''Page % of \\*(=G\fP'
-'el 'tl '\f2Page % of \\*(=G''\\*(=M\fP'
-'bp
-'ev
-'ft 1
-'if \\n(cm=1 'ft 2
-..
-'de ()
-'pn 1
-..
-'de +C
-'nr cm 1
-'ft 2
-'ds +K
-'ds -K
-..
-'de -C
-'nr cm 0
-'ft 1
-'ds +K \f3
-'ds -K \fP
-..
-'+C
-'-C
-'am +C
-'ne 3
-..
-'de FN
-\f2\s14\h'\\n(.lu-\w'\\$1'u'\\$1\fP\s0\h'|0u'\c
-.if r x .if \\nx .if d =F .tm \\$1 \\*(=F \\n%
-'ds =f \&...\\$1
-..
-'de FC
-.if r x .if \\nx .if d =F .tm \\$1 \\*(=F \\n%
-'ds =f \&...\\$1
-..
-'de -F
-'rm =f
-..
-'ft 1
-'lg 0
diff --git a/usr.bin/vgrind/vfontedpr.c b/usr.bin/vgrind/vfontedpr.c
deleted file mode 100644
--- a/usr.bin/vgrind/vfontedpr.c
+++ /dev/null
@@ -1,704 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-3-Clause
- *
- * Copyright (c) 1980, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <ctype.h>
-#include <err.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdbool.h>
-#include <string.h>
-#include <time.h>
-#include "pathnames.h"
-#include "extern.h"
-
-#define STANDARD 0
-#define ALTERNATE 1
-
-/*
- * Vfontedpr.
- *
- * Dave Presotto 1/12/81 (adapted from an earlier version by Bill Joy)
- *
- */
-
-#define STRLEN 10 /* length of strings introducing things */
-#define PNAMELEN 40 /* length of a function/procedure name */
-#define PSMAX 20 /* size of procedure name stacking */
-
-static int iskw(char *);
-static bool isproc(char *);
-static void putKcp(char *, char *, bool);
-static void putScp(char *);
-static void putcp(int);
-static int tabs(char *, char *);
-static int width(char *, char *);
-
-/*
- * The state variables
- */
-
-static bool filter = false; /* act as a filter (like eqn) */
-static bool inchr; /* in a string constant */
-static bool incomm; /* in a comment of the primary type */
-static bool idx = false; /* form an index */
-static bool instr; /* in a string constant */
-static bool nokeyw = false; /* no keywords being flagged */
-static bool pass = false; /*
- * when acting as a filter, pass indicates
- * whether we are currently processing
- * input.
- */
-
-static int blklevel; /* current nesting level */
-static int comtype; /* type of comment */
-static char * defsfile[2] = { _PATH_VGRINDEFS, 0 };
- /* name of language definitions file */
-static int margin;
-static int plstack[PSMAX]; /* the procedure nesting level stack */
-static char pname[BUFSIZ+1];
-static bool prccont; /* continue last procedure */
-static int psptr; /* the stack index of the current procedure */
-static char pstack[PSMAX][PNAMELEN+1]; /* the procedure name stack */
-
-/*
- * The language specific globals
- */
-
-char *l_acmbeg; /* string introducing a comment */
-char *l_acmend; /* string ending a comment */
-char *l_blkbeg; /* string beginning of a block */
-char *l_blkend; /* string ending a block */
-char *l_chrbeg; /* delimiter for character constant */
-char *l_chrend; /* delimiter for character constant */
-char *l_combeg; /* string introducing a comment */
-char *l_comend; /* string ending a comment */
-char l_escape; /* character used to escape characters */
-char *l_keywds[BUFSIZ/2]; /* keyword table address */
-char *l_nocom; /* regexp for non-comments */
-char *l_prcbeg; /* regular expr for procedure begin */
-char *l_strbeg; /* delimiter for string constant */
-char *l_strend; /* delimiter for string constant */
-bool l_toplex; /* procedures only defined at top lex level */
-const char *language = "c"; /* the language indicator */
-
-#define ps(x) printf("%s", x)
-static char minus[] = "-";
-static char minusn[] = "-n";
-
-int
-main(int argc, char **argv)
-{
- const char *fname = "";
- struct stat stbuf;
- char buf[BUFSIZ];
- char *defs;
- int needbp = 0;
-
- argc--, argv++;
- do {
- char *cp;
- int i;
-
- if (argc > 0) {
- if (!strcmp(argv[0], "-h")) {
- if (argc == 1) {
- printf("'ds =H\n");
- argc = 0;
- goto rest;
- }
- printf("'ds =H %s\n", argv[1]);
- argc--, argv++;
- argc--, argv++;
- if (argc > 0)
- continue;
- goto rest;
- }
-
- /* act as a filter like eqn */
- if (!strcmp(argv[0], "-f")) {
- filter = true;
- argv[0] = argv[argc-1];
- argv[argc-1] = minus;
- continue;
- }
-
- /* take input from the standard place */
- if (!strcmp(argv[0], "-")) {
- argc = 0;
- goto rest;
- }
-
- /* build an index */
- if (!strcmp(argv[0], "-x")) {
- idx = true;
- argv[0] = minusn;
- }
-
- /* indicate no keywords */
- if (!strcmp(argv[0], "-n")) {
- nokeyw = true;
- argc--, argv++;
- continue;
- }
-
- /* specify the font size */
- if (!strncmp(argv[0], "-s", 2)) {
- i = 0;
- cp = argv[0] + 2;
- while (*cp)
- i = i * 10 + (*cp++ - '0');
- printf("'ps %d\n'vs %d\n", i, i+1);
- argc--, argv++;
- continue;
- }
-
- /* specify the language */
- if (!strncmp(argv[0], "-l", 2)) {
- language = argv[0]+2;
- argc--, argv++;
- continue;
- }
-
- /* specify the language description file */
- if (!strncmp(argv[0], "-d", 2)) {
- defsfile[0] = argv[1];
- argc--, argv++;
- argc--, argv++;
- continue;
- }
-
- /* open the file for input */
- if (freopen(argv[0], "r", stdin) == NULL)
- err(1, "%s", argv[0]);
- if (idx)
- printf("'ta 4i 4.25i 5.5iR\n'in .5i\n");
- fname = argv[0];
- argc--, argv++;
- }
- rest:
-
- /*
- * get the language definition from the defs file
- */
- i = cgetent(&defs, defsfile, language);
- if (i == -1) {
- fprintf (stderr, "no entry for language %s\n", language);
- exit(0);
- } else if (i == -2) { fprintf(stderr,
- "cannot find vgrindefs file %s\n", defsfile[0]);
- exit(0);
- } else if (i == -3) { fprintf(stderr,
- "potential reference loop detected in vgrindefs file %s\n",
- defsfile[0]);
- exit(0);
- }
- if (cgetustr(defs, "kw", &cp) == -1)
- nokeyw = true;
- else {
- char **cpp;
-
- cpp = l_keywds;
- while (*cp) {
- while (*cp == ' ' || *cp =='\t')
- *cp++ = '\0';
- if (*cp)
- *cpp++ = cp;
- while (*cp != ' ' && *cp != '\t' && *cp)
- cp++;
- }
- *cpp = NULL;
- }
- cgetustr(defs, "pb", &cp);
- l_prcbeg = convexp(cp);
- cgetustr(defs, "cb", &cp);
- l_combeg = convexp(cp);
- cgetustr(defs, "ce", &cp);
- l_comend = convexp(cp);
- cgetustr(defs, "ab", &cp);
- l_acmbeg = convexp(cp);
- cgetustr(defs, "ae", &cp);
- l_acmend = convexp(cp);
- cgetustr(defs, "sb", &cp);
- l_strbeg = convexp(cp);
- cgetustr(defs, "se", &cp);
- l_strend = convexp(cp);
- cgetustr(defs, "bb", &cp);
- l_blkbeg = convexp(cp);
- cgetustr(defs, "be", &cp);
- l_blkend = convexp(cp);
- cgetustr(defs, "lb", &cp);
- l_chrbeg = convexp(cp);
- cgetustr(defs, "le", &cp);
- l_chrend = convexp(cp);
- if (cgetustr(defs, "nc", &cp) >= 0)
- l_nocom = convexp(cp);
- l_escape = '\\';
- l_onecase = (cgetcap(defs, "oc", ':') != NULL);
- l_toplex = (cgetcap(defs, "tl", ':') != NULL);
-
- /* initialize the program */
-
- incomm = false;
- instr = false;
- inchr = false;
- _escaped = false;
- blklevel = 0;
- for (psptr=0; psptr<PSMAX; psptr++) {
- pstack[psptr][0] = '\0';
- plstack[psptr] = 0;
- }
- psptr = -1;
- ps("'-F\n");
- if (!filter) {
- printf(".ds =F %s\n", fname);
- ps("'wh 0 vH\n");
- ps("'wh -1i vF\n");
- }
- if (needbp) {
- needbp = 0;
- printf(".()\n");
- printf(".bp\n");
- }
- if (!filter) {
- fstat(fileno(stdin), &stbuf);
- cp = ctime(&stbuf.st_mtime);
- cp[16] = '\0';
- cp[24] = '\0';
- printf(".ds =M %s %s\n", cp+4, cp+20);
- }
-
- /*
- * MAIN LOOP!!!
- */
- while (fgets(buf, sizeof buf, stdin) != NULL) {
- if (buf[0] == '\f') {
- printf(".bp\n");
- }
- if (buf[0] == '.') {
- printf("%s", buf);
- if (!strncmp (buf+1, "vS", 2))
- pass = true;
- if (!strncmp (buf+1, "vE", 2))
- pass = false;
- continue;
- }
- prccont = false;
- if (!filter || pass)
- putScp(buf);
- else
- printf("%s", buf);
- if (prccont && (psptr >= 0)) {
- ps("'FC ");
- ps(pstack[psptr]);
- ps("\n");
- }
-#ifdef DEBUG
- printf ("com %o str %o chr %o ptr %d\n", incomm, instr, inchr, psptr);
-#endif
- margin = 0;
- }
- needbp = 1;
- } while (argc > 0);
- exit(0);
-}
-
-#define isidchr(c) (isalnum(c) || (c) == '_')
-
-static void
-putScp(char *os)
-{
- register char *s = os; /* pointer to unmatched string */
- char dummy[BUFSIZ]; /* dummy to be used by expmatch */
- char *comptr; /* end of a comment delimiter */
- char *acmptr; /* end of a comment delimiter */
- char *strptr; /* end of a string delimiter */
- char *chrptr; /* end of a character const delimiter */
- char *blksptr; /* end of a lexical block start */
- char *blkeptr; /* end of a lexical block end */
- char *nocomptr; /* end of a non-comment delimiter */
-
- s_start = os; /* remember the start for expmatch */
- _escaped = false;
- if (nokeyw || incomm || instr)
- goto skip;
- if (isproc(s)) {
- ps("'FN ");
- ps(pname);
- ps("\n");
- if (psptr < PSMAX) {
- ++psptr;
- strncpy (pstack[psptr], pname, PNAMELEN);
- pstack[psptr][PNAMELEN] = '\0';
- plstack[psptr] = blklevel;
- }
- }
-skip:
- do {
- /* check for string, comment, blockstart, etc */
- if (!incomm && !instr && !inchr) {
-
- blkeptr = expmatch(s, l_blkend, dummy);
- blksptr = expmatch(s, l_blkbeg, dummy);
- comptr = expmatch(s, l_combeg, dummy);
- acmptr = expmatch(s, l_acmbeg, dummy);
- strptr = expmatch(s, l_strbeg, dummy);
- chrptr = expmatch(s, l_chrbeg, dummy);
- nocomptr = expmatch (s, l_nocom, dummy);
-
- /* start of non-comment? */
- if (nocomptr != NULL)
- if ((nocomptr <= comptr || comptr == NULL)
- && (nocomptr <= acmptr || acmptr == NULL)) {
- /* continue after non-comment */
- putKcp (s, nocomptr-1, false);
- s = nocomptr;
- continue;
- }
-
- /* start of a comment? */
- if (comptr != NULL)
- if ((comptr < strptr || strptr == NULL)
- && (comptr < acmptr || acmptr == NULL)
- && (comptr < chrptr || chrptr == NULL)
- && (comptr < blksptr || blksptr == NULL)
- && (comptr < blkeptr || blkeptr == NULL)) {
- putKcp(s, comptr-1, false);
- s = comptr;
- incomm = true;
- comtype = STANDARD;
- if (s != os)
- ps("\\c");
- ps("\\c\n'+C\n");
- continue;
- }
-
- /* start of a comment? */
- if (acmptr != NULL)
- if ((acmptr < strptr || strptr == NULL)
- && (acmptr < chrptr || chrptr == NULL)
- && (acmptr < blksptr || blksptr == NULL)
- && (acmptr < blkeptr || blkeptr == NULL)) {
- putKcp(s, acmptr-1, false);
- s = acmptr;
- incomm = true;
- comtype = ALTERNATE;
- if (s != os)
- ps("\\c");
- ps("\\c\n'+C\n");
- continue;
- }
-
- /* start of a string? */
- if (strptr != NULL)
- if ((strptr < chrptr || chrptr == NULL)
- && (strptr < blksptr || blksptr == NULL)
- && (strptr < blkeptr || blkeptr == NULL)) {
- putKcp(s, strptr-1, false);
- s = strptr;
- instr = true;
- continue;
- }
-
- /* start of a character string? */
- if (chrptr != NULL)
- if ((chrptr < blksptr || blksptr == NULL)
- && (chrptr < blkeptr || blkeptr == NULL)) {
- putKcp(s, chrptr-1, false);
- s = chrptr;
- inchr = true;
- continue;
- }
-
- /* end of a lexical block */
- if (blkeptr != NULL) {
- if (blkeptr < blksptr || blksptr == NULL) {
- putKcp(s, blkeptr - 1, false);
- s = blkeptr;
- if (blklevel > 0 /* sanity */)
- blklevel--;
- if (psptr >= 0 && plstack[psptr] >= blklevel) {
-
- /* end of current procedure */
- if (s != os)
- ps("\\c");
- ps("\\c\n'-F\n");
- blklevel = plstack[psptr];
-
- /* see if we should print the last proc name */
- if (--psptr >= 0)
- prccont = true;
- else
- psptr = -1;
- }
- continue;
- }
- }
-
- /* start of a lexical block */
- if (blksptr != NULL) {
- putKcp(s, blksptr - 1, false);
- s = blksptr;
- blklevel++;
- continue;
- }
-
- /* check for end of comment */
- } else if (incomm) {
- comptr = expmatch(s, l_comend, dummy);
- acmptr = expmatch(s, l_acmend, dummy);
- if (((comtype == STANDARD) && (comptr != NULL)) ||
- ((comtype == ALTERNATE) && (acmptr != NULL))) {
- if (comtype == STANDARD) {
- putKcp(s, comptr-1, true);
- s = comptr;
- } else {
- putKcp(s, acmptr-1, true);
- s = acmptr;
- }
- incomm = false;
- ps("\\c\n'-C\n");
- continue;
- } else {
- putKcp(s, s + strlen(s) -1, true);
- s = s + strlen(s);
- continue;
- }
-
- /* check for end of string */
- } else if (instr) {
- if ((strptr = expmatch(s, l_strend, dummy)) != NULL) {
- putKcp(s, strptr-1, true);
- s = strptr;
- instr = false;
- continue;
- } else {
- putKcp(s, s+strlen(s)-1, true);
- s = s + strlen(s);
- continue;
- }
-
- /* check for end of character string */
- } else if (inchr) {
- if ((chrptr = expmatch(s, l_chrend, dummy)) != NULL) {
- putKcp(s, chrptr-1, true);
- s = chrptr;
- inchr = false;
- continue;
- } else {
- putKcp(s, s+strlen(s)-1, true);
- s = s + strlen(s);
- continue;
- }
- }
-
- /* print out the line */
- putKcp(s, s + strlen(s) -1, false);
- s = s + strlen(s);
- } while (*s);
-}
-
-/*
- * start: start of string to write
- * end: end of string to write
- * force: true if we should force nokeyw
- */
-static void
-putKcp(char *start, char *end, bool force)
-{
- int i;
- int xfld = 0;
-
- while (start <= end) {
- if (idx) {
- if (*start == ' ' || *start == '\t') {
- if (xfld == 0)
- printf("\001");
- printf("\t");
- xfld = 1;
- while (*start == ' ' || *start == '\t')
- start++;
- continue;
- }
- }
-
- /* take care of nice tab stops */
- if (*start == '\t') {
- while (*start == '\t')
- start++;
- i = tabs(s_start, start) - margin / 8;
- printf("\\h'|%dn'", i * 10 + 1 - margin % 8);
- continue;
- }
-
- if (!nokeyw && !force)
- if ((*start == '#' || isidchr(*start))
- && (start == s_start || !isidchr(start[-1]))) {
- i = iskw(start);
- if (i > 0) {
- ps("\\*(+K");
- do
- putcp((unsigned char)*start++);
- while (--i > 0);
- ps("\\*(-K");
- continue;
- }
- }
-
- putcp((unsigned char)*start++);
- }
-}
-
-
-static int
-tabs(char *s, char *os)
-{
-
- return (width(s, os) / 8);
-}
-
-static int
-width(register char *s, register char *os)
-{
- register int i = 0;
-
- while (s < os) {
- if (*s == '\t') {
- i = (i + 8) &~ 7;
- s++;
- continue;
- }
- if (*s < ' ')
- i += 2;
- else
- i++;
- s++;
- }
- return (i);
-}
-
-static void
-putcp(register int c)
-{
-
- switch(c) {
-
- case 0:
- break;
-
- case '\f':
- break;
-
- case '\r':
- break;
-
- case '{':
- ps("\\*(+K{\\*(-K");
- break;
-
- case '}':
- ps("\\*(+K}\\*(-K");
- break;
-
- case '\\':
- ps("\\e");
- break;
-
- case '_':
- ps("\\*_");
- break;
-
- case '-':
- ps("\\*-");
- break;
-
- case '`':
- ps("\\`");
- break;
-
- case '\'':
- ps("\\'");
- break;
-
- case '.':
- ps("\\&.");
- break;
-
- case '*':
- ps("\\fI*\\fP");
- break;
-
- case '/':
- ps("\\fI\\h'\\w' 'u-\\w'/'u'/\\fP");
- break;
-
- default:
- if (c < 040)
- putchar('^'), c |= '@';
- case '\t':
- case '\n':
- putchar(c);
- }
-}
-
-/*
- * look for a process beginning on this line
- */
-static bool
-isproc(char *s)
-{
- pname[0] = '\0';
- if (!l_toplex || blklevel == 0)
- if (expmatch(s, l_prcbeg, pname) != NULL) {
- return (true);
- }
- return (false);
-}
-
-
-/* iskw - check to see if the next word is a keyword
- */
-
-static int
-iskw(register char *s)
-{
- register char **ss = l_keywds;
- register int i = 1;
- register char *cp = s;
-
- while (++cp, isidchr(*cp))
- i++;
- while ((cp = *ss++))
- if (!STRNCMP(s,cp,i) && !isidchr(cp[i]))
- return (i);
- return (0);
-}
diff --git a/usr.bin/vgrind/vgrind.1 b/usr.bin/vgrind/vgrind.1
deleted file mode 100644
--- a/usr.bin/vgrind/vgrind.1
+++ /dev/null
@@ -1,239 +0,0 @@
-.\" Copyright (c) 1980, 1990, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.Dd August 29, 2006
-.Dt VGRIND 1
-.Os
-.Sh NAME
-.Nm vgrind
-.Nd grind nice listings of programs
-.Sh SYNOPSIS
-.Nm
-.Op Fl
-.Op Fl W
-.Op Fl d Ar file
-.Op Fl f
-.Op Fl h Ar header
-.Op Fl l Ns Ar language
-.Op Fl n
-.Op Fl p Ar postproc
-.Op Fl s Ar pointsize
-.Op Fl t
-.Op Fl x
-.Ar name Ar ...
-.Sh DESCRIPTION
-The
-.Nm
-utility formats the program sources specified as arguments
-on the command line in a nice style using
-.Xr troff 1 Pq Pa ports/textproc/groff .
-Comments are placed in italics, keywords in bold face,
-and the name of the current function is listed down the margin of each
-page as it is encountered.
-.Pp
-The
-.Nm
-utility runs in two basic modes, filter mode (see the
-.Fl f
-option) or regular mode.
-In filter mode
-.Nm
-acts as a filter in a manner similar to
-.Xr tbl 1 .
-The standard input is passed directly to the standard output except
-for lines bracketed by the
-.Em troff-like
-macros:
-.Bl -tag -width Ds
-.It \&.vS
-starts processing
-.It \&.vE
-ends processing
-.El
-.Pp
-These lines are formatted as described above.
-The output from this
-filter can be passed to
-.Xr troff 1 Pq Pa ports/textproc/groff
-for output.
-There need be no particular ordering with
-.Xr eqn 1 Pq Pa ports/textproc/groff
-or
-.Xr tbl 1 Pq Pa ports/textproc/groff .
-.Pp
-In regular mode
-.Nm
-accepts input files, processes them, and passes them to the postprocessor
-for output,
-.Xr psroff 1
-by default.
-.Pp
-In both modes
-.Nm
-passes any lines beginning with a decimal point without conversion.
-.Pp
-The options are:
-.Bl -tag -width Ar
-.It Fl
-forces input to be taken from standard input (default if
-.Fl f
-is specified)
-.It Fl W
-forces output to the (wide) Versatec printer rather than the (narrow)
-Varian
-.It Fl d Ar file
-specifies an alternate language definitions
-file (default is
-.Pa /usr/share/misc/vgrindefs )
-.It Fl f
-forces filter mode
-.It Fl h Ar header
-specifies a particular header to put on every output page (default is
-the file name)
-.It Fl l
-specifies the language to use.
-Currently known are
-.Tn PASCAL
-.Pq Fl l Ns Ar p ,
-.Tn MODEL
-.Pq Fl l Ns Ar m ,
-C
-.Pf ( Fl l Ns Ar c
-or the default),
-.Tn C++
-.Pq Fl l Ns Ar c++ ,
-.Tn CSH
-.Pq Fl l Ns Ar csh ,
-.Tn SHELL
-.Pq Fl l Ns Ar sh ,
-.Tn RATFOR
-.Pq Fl l Ns Ar r ,
-.Tn MODULA2
-.Pq Fl l Ns Ar mod2 ,
-.Tn YACC
-.Pq Fl l Ns Ar yacc ,
-.Tn LISP
-.Pq Fl l Ns Ar isp ,
-.Tn ICON
-.Pq Fl l Ns Ar I ,
-and
-.Tn PERL
-.Pq Fl l Ns Ar perl .
-.It Fl n
-forces no keyword bolding
-.It Fl p Ar postproc
-use
-.Ar postproc
-to post-process the output,
-.Xr psroff 1
-by default.
-.It Fl s Ar pointsize
-specifies a point size to use on output (exactly the same as the argument
-of a .ps)
-.It Fl t
-similar to the same option in
-.Xr troff 1 Pq Pa ports/textproc/groff
-causing formatted text to go to the standard output
-.It Fl x
-outputs the index file in a ``pretty'' format.
-The index file itself is produced whenever
-.Nm
-is run with a file called
-.Pa index
-in the current directory.
-The index of function
-definitions can then be run off by giving
-.Nm
-the
-.Fl x
-option and the file
-.Pa index
-as argument.
-.El
-.Sh FILES
-.Bl -tag -width /usr/share/misc/vgrindefsxx -compact
-.It Pa index
-file where source for index is created
-.It Pa /usr/share/tmac/tmac.vgrind
-macro package
-.It Pa /usr/libexec/vfontedpr
-preprocessor
-.It Pa /usr/share/misc/vgrindefs
-language descriptions
-.El
-.Sh SEE ALSO
-.Xr getcap 3 ,
-.Xr vgrindefs 5
-.Sh HISTORY
-The
-.Nm
-command appeared in
-.Bx 3.0 .
-.Sh BUGS
-The vfontedpr preprocessor assumes that a certain programming style is
-followed:
-.Pp
-For
-.Tn C
-\- function names can be preceded on a line only by spaces, tabs, or an
-asterisk.
-The parenthesized arguments must also be on the same line.
-.Pp
-For
-.Tn PASCAL
-\- function names need to appear on the same line as the keywords
-.Em function
-or
-.Em procedure .
-.Pp
-For
-.Tn MODEL
-\- function names need to appear on the same line as the keywords
-.Em is beginproc .
-.Pp
-If these conventions are not followed, the indexing and marginal function
-name comment mechanisms will fail.
-.Pp
-More generally, arbitrary formatting styles for programs mostly look bad.
-The use of spaces to align source code fails miserably; if you plan to
-.Nm
-your program you should use tabs.
-This is somewhat inevitable since the
-font used by
-.Nm
-is variable width.
-.Pp
-The mechanism of
-.Xr ctags 1
-in recognizing functions should be used here.
-.Pp
-Filter mode does not work in documents using the
-.Fl me
-or
-.Fl ms
-macros.
-(So what use is it anyway?)
diff --git a/usr.bin/vgrind/vgrind.sh b/usr.bin/vgrind/vgrind.sh
deleted file mode 100644
--- a/usr.bin/vgrind/vgrind.sh
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/bin/sh
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-# Copyright (c) 1980, 1993
-# The Regents of the University of California. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# 3. Neither the name of the University nor the names of its contributors
-# may be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-
-voptions=""
-options=""
-files=""
-f=""
-head=""
-vf="/usr/libexec/vfontedpr"
-tm="/usr/share/tmac"
-postproc="psroff"
-
-# Parse args
-while test $# -gt 0; do
- case $1 in
- -f)
- f="filter"
- options="$options -f"
- ;;
- -t)
- voptions="$voptions -t"
- ;;
- -o*)
- voptions="$voptions $1"
- ;;
- -W)
- voptions="$voptions -W"
- ;;
- -d)
- if test $# -lt 2; then
- echo "$0: option $1 must have argument" >&2
- exit 1
- fi
- options="$options $1 $2"
- shift
- ;;
- -h)
- if test $# -lt 2; then
- echo "$0: option $1 must have argument" >&2
- exit 1
- fi
- head="$2"
- shift
- ;;
- -p)
- if test $# -lt 2; then
- echo "$0: option $1 must have argument" >&2
- exit 1
- fi
- postproc="$2"
- shift
- ;;
- -*)
- options="$options $1"
- ;;
- *)
- files="$files $1"
- ;;
- esac
- shift
-done
-
-if test -r index; then
- echo > nindex
- for i in $files; do
- # make up a sed delete command for filenames
- # being careful about slashes.
- echo "? $i ?d" | sed -e "s:/:\\/:g" -e "s:?:/:g" >> nindex
- done
- sed -f nindex index > xindex
- if test "x$f" = xfilter; then
- if test "x$head" != x; then
- $vf $options -h "$head" $files
- else
- $vf $options $files
- fi | cat $tm/tmac.vgrind -
- else
- if test "x$head" != x; then
- $vf $options -h "$head" $files
- else
- $vf $options $files
- fi | sh -c "$postproc -rx1 $voptions -i -mvgrind 2>> xindex"
- fi
- sort -df -k 1,2 xindex > index
- rm nindex xindex
-else
- if test "x$f" = xfilter; then
- if test "x$head" != x; then
- $vf $options -h "$head" $files
- else
- $vf $options $files
- fi | cat $tm/tmac.vgrind -
- else
- if test "x$head" != x; then
- $vf $options -h "$head" $files
- else
- $vf $options $files
- fi | $postproc -i $voptions -mvgrind
- fi
-fi
diff --git a/usr.bin/vgrind/vgrindefs.5 b/usr.bin/vgrind/vgrindefs.5
deleted file mode 100644
--- a/usr.bin/vgrind/vgrindefs.5
+++ /dev/null
@@ -1,167 +0,0 @@
-.\" Copyright (c) 1989, 1991, 1993
-.\" The Regents of the University of California. All rights reserved.
-.\"
-.\" Redistribution and use in source and binary forms, with or without
-.\" modification, are permitted provided that the following conditions
-.\" are met:
-.\" 1. Redistributions of source code must retain the above copyright
-.\" notice, this list of conditions and the following disclaimer.
-.\" 2. Redistributions in binary form must reproduce the above copyright
-.\" notice, this list of conditions and the following disclaimer in the
-.\" documentation and/or other materials provided with the distribution.
-.\" 3. Neither the name of the University nor the names of its contributors
-.\" may be used to endorse or promote products derived from this software
-.\" without specific prior written permission.
-.\"
-.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-.\" SUCH DAMAGE.
-.\"
-.Dd June 6, 1993
-.Dt VGRINDEFS 5
-.Os
-.Sh NAME
-.Nm vgrindefs
-.Nd language definition data base for
-.Xr vgrind 1
-.Sh SYNOPSIS
-.Nm
-.Sh DESCRIPTION
-The
-.Nm
-file
-contains all language definitions for
-.Xr vgrind 1 .
-The data base is
-very similar to
-.Xr termcap 5 .
-.Sh FIELDS
-The following table names and describes each field.
-.Bl -column Namexxx Tpexxx
-.It Sy "Name Type Description"
-.It "ab str regular expression for the start of an alternate comment"
-.It "ae str regular expression for the end of an alternate comment"
-.It "pb str regular expression for start of a procedure"
-.It "bb str regular expression for start of a lexical block"
-.It "be str regular expression for the end of a lexical block"
-.It "cb str regular expression for the start of a comment"
-.It "ce str regular expression for the end of a comment"
-.It "sb str regular expression for the start of a string"
-.It "se str regular expression for the end of a string"
-.It "lb str regular expression for the start of a character constant"
-.It "le str regular expression for the end of a character constant"
-.It "nc str regular expression for a non-comment (see below)"
-.It "tl bool present means procedures are only defined at the top lexical level"
-.It "oc bool present means upper and lower case are equivalent"
-.It "kw str a list of keywords separated by spaces"
-.El
-.Pp
-Non-comments are required to describe a certain context where a
-sequence that would normally start a comment loses its special
-meaning.
-A typical example for this can be found in Perl, where
-comments are normally starting with
-.Ql # ,
-while the string
-.Ql $#
-is an operator on an array.
-.Sh REGULAR EXPRESSIONS
-.Nm Vgrindefs
-uses regular expression which are very similar to those of
-.Xr ex 1
-and
-.Xr lex 1 .
-The characters `^', `$', `:' and `\e'
-are reserved characters and must be
-"quoted" with a preceding
-.Ql \e
-if they
-are to be included as normal characters.
-The metasymbols and their meanings are:
-.Bl -tag -width indent
-.It $
-the end of a line
-.It \&^
-the beginning of a line
-.It \ed
-a delimiter (space, tab, newline, start of line)
-.It \ea
-matches any string of symbols (like .* in lex)
-.It \ep
-matches any alphanumeric name.
-In a procedure definition (pb) the string
-that matches this symbol is used as the procedure name.
-.It ()
-grouping
-.It \&|
-alternation
-.It ?
-last item is optional
-.It \ee
-preceding any string means that the string will not match an
-input string if the input string is preceded by an escape character (\e).
-This is typically used for languages (like C) which can include the
-string delimiter in a string by escaping it.
-.El
-.Pp
-Unlike other regular expressions in the system, these match words
-and not characters.
-Hence something like "(tramp|steamer)flies?"
-would match "tramp", "steamer", "trampflies", or "steamerflies".
-.Sh KEYWORD LIST
-The keyword list is just a list of keywords in the language separated
-by spaces.
-If the "oc" boolean is specified, indicating that upper
-and lower case are equivalent, then all the keywords should be
-specified in lower case.
-.Sh FILES
-.Bl -tag -width /usr/share/misc/vgrindefs -compact
-.It Pa /usr/share/misc/vgrindefs
-File containing terminal descriptions.
-.El
-.Sh EXAMPLES
-The following entry, which describes the C language, is
-typical of a language entry.
-.Bd -literal
-C|c:\
-:pb=^\ed?*?\ed?\ep\ed?\e(\ea?\e):bb={:be=}:cb=/*:ce=*/:sb=":se=\ee":\e
-:lb=':le=\ee':tl:\e
-:kw=asm auto break case char continue default do double else enum\e
-extern float for fortran goto if int long register return short\e
-sizeof static struct switch typedef union unsigned while #define\e
-#else #endif #if #ifdef #ifndef #include #undef # define else endif\e
-if ifdef ifndef include undef:
-.Ed
-.Pp
-Note that the first field is just the language name (and any variants
-of it).
-Thus the C language could be specified to
-.Xr vgrind 1
-as "c" or "C".
-.Pp
-Entries may continue onto multiple lines by giving a \e as the last
-character of a line.
-Capabilities in
-.Nm
-are of two types:
-Boolean capabilities which indicate that the language has
-some particular feature
-and string
-capabilities which give a regular expression or
-keyword list.
-.Sh SEE ALSO
-.Xr troff 1 Pq Pa ports/textproc/groff ,
-.Xr vgrind 1
-.Sh HISTORY
-The
-.Nm
-file format appeared in
-.Bx 4.2 .
diff --git a/usr.bin/vgrind/vgrindefs.src b/usr.bin/vgrind/vgrindefs.src
deleted file mode 100644
--- a/usr.bin/vgrind/vgrindefs.src
+++ /dev/null
@@ -1,153 +0,0 @@
-# Copyright (c) 1987, 1993
-# The Regents of the University of California. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-# 3. Neither the name of the University nor the names of its contributors
-# may be used to endorse or promote products derived from this software
-# without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-#
-
-C|c:\
- :pb=^\a?\d?*?\d?\p\d?\(\a?\)(\d|{):\
- :bb={:be=}:cb=/*:ce=*/:sb=":se=\e":lb=':\
- :le=\e':tl:\
- :kw=asm auto break case char continue default do double else enum\
- extern float for fortran goto if int long register return short\
- sizeof static struct switch typedef union unsigned void while #define\
- #else #endif #if #ifdef #ifndef #include #undef # define else endif\
- if ifdef ifndef include undef:
-model|mod|m:\
- :pb=^\d(space\d\p\drep)|(\p\dis|inline|public\dbeginproc):\
- :bb=\dbeginproc|space|case\d:be=\dendproc|end\d|;:\
- :cb=\$:ce=\$|$:sb=":se=":lb=':le=\a|$:\
- :kw=abs and array beginproc boolean by case cdnl char copied dispose\
- div do dynamic else elsif end endproc entry external FALSE false\
- fi file for formal fortran global if iff ift\
- in integer include inline is lbnd\
- max min mod new NIL nil noresult not notin od of or procedure public\
- read readln readonly record recursive rem rep repeat res\
- result return set\
- space string subscript such then TRUE true type ubnd union until\
- varies while width:
-pascal|pasc|p:\
- :pb=(^\d?procedure|function|program\d\p\d|\(|;|\:)|(=\d?record\d):\
- :bb=\dcase|begin\d:be=\dend|forward\d|;:\
- :cb={:ce=}:\
- :ab=\(*:ae=*\):\
- :sb=':se=':\
- :kw=and array assert begin case const div do downto else end file for\
- forward function goto if in label mod nil not of or packed procedure\
- program record repeat set then to type until var while with oct hex\
- external:
-ISP|isp|i:\
- :cb=!:ce=!|$:oc:\
- :kw=and begin decode define end eql eqv geq gtr if leave leq lss mod\
- neq next not or otherwise repeat restart resume sr0 sr1 srd srr sl0 sl1\
- sld slr tst xor:
-SH|sh:\
- :bb={:be=}:cb=#:ce=$:sb=":se=\e":lb=':\
- :le=\e':tl:\
- :kw=break case cd continue do done \
- elif else esac eval exec exit export \
- fi for if in then while until \
- read readonly set shift test trap umask wait:
-CSH|csh:\
- :bb={:be=}:cb=#:ce=$:sb=":se=\e":lb=':\
- :le=\e':tl:\
- :kw=alias alloc break breaksw case cd chdir continue default\
- echo else end endif endsw exec exit foreach \
- glob goto history if logout nice nohup onintr repeat set\
- setenv shift source switch then time \
- while umask unalias unset wait while @ env \
- argv child home ignoreeof noclobber noglob \
- nomatch path prompt shell status verbose :
-ldl|LDL:\
- :pb=^\p\::bb=\::be=;:cb=/*:ce=*/:sb=":se=\e":\
- :kw=constant functions grammar reswords tokens add1 addste\
- car cdr check colno cond cons copy defun divide empty enter\
- eq equal findattr firstchild ge getattr getfield gt hash label\
- lambda lastchild le leftsibling lookone lookup lt minus name ne\
- newnode nextcom nil null parent plus precnl prevcom prog progn\
- quote reglob return rightsibling self set setattr setfield setq\
- stjoin sub1 t times tnull tokno ttype:
-Icon|icon|I:\
- :pb=^\d?procedure\d\p\d?\(\a?\):\
- :bb=(^\d?procedure\d\p\d?\(\a?\))|{:be=}|(^\d?end\d?$):\
- :cb=#:ce=$:\
- :sb=":se=\e":lb=':le=\e':tl:\
- :kw=break by case create default do dynamic else end every external\
- fail global if initial local next not of procedure record\
- repeat return static suspend then to until using while\
- &ascii &clock &cset &date &dateline &errout &fail &host &input\
- &lcase &level &main &null &output &pos &random &source &subject\
- &time &trace &ucase &version:
-ratfor|rat|r:\
- :pb=(subroutine|function)\d\p\d?\(\a?\):\
- :bb=(subroutine|function)\d\p\d?\(\a?\):be=^\d?end:\
- :cb=#:ce=$:\
- :sb=":se=\e":lb=':le=\e':oc:\
- :kw=DRETURN DRIVER arith break case character default define do\
- else elsedef enddef filedes for function goto if ifdef ifelse\
- ifnotdef include incr integer linepointer next opeq pointer\
- real repeat return select string subroutine substr until:
-modula2|mod2|m2:\
- :pb=(^\d?(procedure|function|module)\d\p\d|\(|;|\:):\
- :bb=\d(begin|case|for|if|loop|record|repeat|while|with)\d:\
- :be=\dend|;:\
- :cb={:ce=}:\
- :ab=\(*:ae=*\):\
- :sb=":se=":\
- :oc:\
- :kw=and array begin by case const\
- definition div do else elsif end exit export\
- for from if implementation import in\
- loop mod module not of or pointer procedure qualified\
- record repeat return set then to type\
- until var while with:
-yacc|Yacc|y:\
- :cb=/*:ce=*/:sb=":se=\e":lb=':le=\e':tl:\
- :kw=%{ %} %% %union %token %type\
- #else #endif #if #ifdef #ifndef #include #undef # define else endif\
- if ifdef ifndef include undef:
-C++|c++:\
- :pb=^\a?\d?*?\d?\p\d?\(\a?\)(\d|{):\
- :bb={:be=}:cb=/*:ce=*/:ab=//:\
- :ae=$:sb=":se=\e":lb=':\
- :le=\e':tl:\
- :kw=asm auto break case char continue default do double else enum\
- extern float for fortran goto if int long register return short\
- sizeof static struct switch typedef union unsigned while void #define\
- #else #endif #if #ifdef #ifndef #include #undef # define endif\
- ifdef ifndef include undef defined\
- class const delete friend inline new operator overload private\
- protected public virtual:
-#
-# Hack alert: defining function calls as `alternate comments' (ab/ae) seems
-# to be the only way to avoid major confusion inside vfontedpr for calls like:
-# &packagename'function;
-#
-Perl|perl|pl:\
- :pb=sub\d\p\d:bb={:be=}:cb=#:ce=$:nc=\$#:tl:\
- :ab=&:ae=(;|\d|,):\
- :sb=":se=(\e"|$):lb=':le=(\e'|$):\
- :kw=do if unless while until else elsif for foreach continue\
- next redo sub last goto return die exit require:
diff --git a/usr.sbin/crunch/examples/really-big.conf b/usr.sbin/crunch/examples/really-big.conf
--- a/usr.sbin/crunch/examples/really-big.conf
+++ b/usr.sbin/crunch/examples/really-big.conf
@@ -49,7 +49,7 @@
progs script sed showmount size soelim split strings strip su tail talk
progs tcopy tee telnet tftp time tip tn3270 touch tput tr true tset tsort
progs tty ul uname unexpand unifdef uniq units unvis users uudecode uuencode
-progs vacation vgrind vi vis vmstat w wall wc what whatis whereis who
+progs vacation vi vis vmstat w wall wc what whatis whereis who
progs whois window write xargs xinstall xstr yacc yes ypcat ypmatch ypwhich
# shell scripts: lorder mkdep which
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jun 26, 9:16 PM (1 h, 51 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34370457
Default Alt Text
D57648.id.diff (65 KB)
Attached To
Mode
D57648: vgrind: Tear down vgrind support
Attached
Detach File
Event Timeline
Log In to Comment