Stop using libcompat in our tree.
authorSascha Wildner <saw@online.de>
Thu, 23 Jan 2014 21:56:29 +0000 (22:56 +0100)
committerSascha Wildner <saw@online.de>
Thu, 23 Jan 2014 21:56:29 +0000 (22:56 +0100)
The only thing that actually needed it was fortune(6). Move it to using
libc's regex(3) functions (taken from FreeBSD).

games/fortune/fortune/Makefile
games/fortune/fortune/fortune.c
games/phantasia/Makefile
usr.sbin/IPXrouted/Makefile
usr.sbin/rrenumd/Makefile
usr.sbin/rtadvd/Makefile

index d625548..72fa123 100644 (file)
@@ -1,12 +1,9 @@
 #      @(#)Makefile    8.1 (Berkeley) 5/31/93
 # $FreeBSD: src/games/fortune/fortune/Makefile,v 1.3.8.1 2001/04/25 09:28:54 ru Exp $
-# $DragonFly: src/games/fortune/fortune/Makefile,v 1.4 2006/10/08 16:22:35 pavalos Exp $
 
 PROG=  fortune
 MAN=   fortune.6
 CFLAGS+=-DDEBUG -I${.CURDIR}/../strfile
-DPADD= ${LIBCOMPAT}
-LDADD= -lcompat
 
 .include "${.CURDIR}/../../Makefile.inc"
 .include <bsd.prog.mk>
index 76b2427..175ab53 100644 (file)
@@ -50,6 +50,7 @@
 #include <string.h>
 #include <locale.h>
 #include <time.h>
+#include <regex.h>
 
 #include "strfile.h"
 #include "pathnames.h"
@@ -94,9 +95,7 @@ bool Long_only        = false;        /* long fortune desired */
 bool Offend    = false;        /* offensive fortunes only */
 bool All_forts = false;        /* any fortune allowed */
 bool Equal_probs= false;       /* scatter un-allocted prob equally */
-#ifndef NO_REGEX
 bool Match     = false;        /* dump fortunes matching a pattern */
-#endif
 #ifdef DEBUG
 bool Debug = false;            /* print debug messages */
 #endif
@@ -144,27 +143,12 @@ void sum_tbl(STRFILE *, STRFILE *);
 void usage(void);
 void zero_tbl(STRFILE *);
 
-#ifndef NO_REGEX
 char *conv_pat(char *);
 int find_matches(void);
 void matches_in_list(FILEDESC *);
 int maxlen_in_list(FILEDESC *);
-#endif
 
-#ifndef NO_REGEX
-#ifdef REGCMP
-#define RE_COMP(p)     (Re_pat = regcmp(p, NULL))
-#define BAD_COMP(f)    ((f) == NULL)
-#define RE_EXEC(p)     regex(Re_pat, (p))
-
-char *Re_pat;
-char *regcmp(), *regex();
-#else
-#define RE_COMP(p)     (p = re_comp(p))
-#define BAD_COMP(f)    ((f) != NULL)
-#define RE_EXEC(p)     re_exec(p)
-#endif
-#endif
+static regex_t Re_pat;
 
 int
 main(int ac, char *av[])
@@ -177,10 +161,8 @@ main(int ac, char *av[])
 
        getargs(ac, av);
 
-#ifndef NO_REGEX
        if (Match)
                exit(find_matches() != 0);
-#endif
 
        init_prob();
        srandomdev();
@@ -281,15 +263,11 @@ void
 getargs(int argc, char **argv)
 {
        int ignore_case;
-#ifndef NO_REGEX
        char *pat;
-#endif /* NO_REGEX */
        int ch;
 
        ignore_case = false;
-#ifndef NO_REGEX
        pat = NULL;
-#endif /* NO_REGEX */
 
 #ifdef DEBUG
        while ((ch = getopt(argc, argv, "aDefilm:osw")) != -1)
@@ -325,13 +303,6 @@ getargs(int argc, char **argv)
                case 'w':               /* give time to read */
                        Wait++;
                        break;
-#ifdef NO_REGEX
-               case 'i':                       /* case-insensitive match */
-               case 'm':                       /* dump out the fortunes */
-                       fprintf(stderr,
-                           "fortune: can't match fortunes on this system (Sorry)\n");
-                       exit(0);
-#else /* NO_REGEX */
                case 'm':                       /* dump out the fortunes */
                        Match++;
                        pat = optarg;
@@ -339,7 +310,6 @@ getargs(int argc, char **argv)
                case 'i':                       /* case-insensitive match */
                        ignore_case++;
                        break;
-#endif /* NO_REGEX */
                case '?':
                default:
                        usage();
@@ -358,19 +328,17 @@ getargs(int argc, char **argv)
                print_file_list();
 #endif /* DEBUG */
 
-#ifndef NO_REGEX
        if (pat != NULL) {
+               int error;
+
                if (ignore_case)
                        pat = conv_pat(pat);
-               if (BAD_COMP(RE_COMP(pat))) {
-#ifndef REGCMP
-                       fprintf(stderr, "%s\n", pat);
-#else /* REGCMP */
-                       fprintf(stderr, "bad pattern: %s\n", pat);
-#endif /* REGCMP */
+               error = regcomp(&Re_pat, pat, REG_BASIC);
+               if (error) {
+                       fprintf(stderr, "regcomp(%s) fails\n", pat);
+                       exit (1);
                }
        }
-#endif /* NO_REGEX */
 }
 
 /*
@@ -1206,7 +1174,6 @@ print_list(FILEDESC *list, int lev)
        }
 }
 
-#ifndef NO_REGEX
 /*
  * conv_pat:
  *     Convert the pattern to an ignore-case equivalent.
@@ -1333,7 +1300,7 @@ matches_in_list(FILEDESC *list)
                                                                *p = 'a' + (ch - 'a' + 13) % 26;
                                                }
                                        }
-                               if (RE_EXEC(Fortbuf)) {
+                               if (regexec(&Re_pat, Fortbuf, 0, NULL, 0) != REG_NOMATCH) {
                                        printf("%c%c", fp->tbl.str_delim,
                                            fp->tbl.str_delim);
                                        if (!in_file) {
@@ -1348,7 +1315,6 @@ matches_in_list(FILEDESC *list)
                        }
        }
 }
-#endif /* NO_REGEX */
 
 void
 usage(void)
@@ -1358,13 +1324,9 @@ usage(void)
        fprintf(stderr, "D");
 #endif /* DEBUG */
        fprintf(stderr, "f");
-#ifndef NO_REGEX
        fprintf(stderr, "i");
-#endif
        fprintf(stderr, "losw]");
-#ifndef NO_REGEX
        fprintf(stderr, " [-m pattern]");
-#endif
        fprintf(stderr, "[[#%%] file/directory/all]\n");
        exit(1);
 }
index ff1d3c4..774e6d0 100644 (file)
@@ -1,11 +1,10 @@
 #      @(#)Makefile    8.1 (Berkeley) 5/31/93
 # $FreeBSD: src/games/phantasia/Makefile,v 1.16.2.2 2002/08/07 16:31:42 ru Exp $
-# $DragonFly: src/games/phantasia/Makefile,v 1.5 2006/10/08 16:22:36 pavalos Exp $
 
 PROG=  phantasia
 SRCS=  main.c fight.c io.c interplayer.c gamesupport.c misc.c phantglobs.c
-DPADD= ${LIBM} ${LIBCURSES} ${LIBTERMCAP} ${LIBCOMPAT}
-LDADD= -lm -lcurses -ltermcap -lcompat
+DPADD= ${LIBM} ${LIBCURSES} ${LIBTERMCAP}
+LDADD= -lm -lcurses -ltermcap
 NXLDLIBS= -lm
 DATAFILES=characs gold lastdead mess monsters motd scoreboard void
 HIDEGAME=hidegame
index 620c034..c70f1a8 100644 (file)
@@ -1,13 +1,12 @@
 #      @(#)Makefile    8.1 (Berkeley) 6/5/93
 # $FreeBSD: src/usr.sbin/IPXrouted/Makefile,v 1.4.2.1 2001/04/25 12:09:10 ru Exp $
-# $DragonFly: src/usr.sbin/IPXrouted/Makefile,v 1.2 2003/06/17 04:29:52 dillon Exp $
 
 PROG=  IPXrouted
 MAN=   IPXrouted.8
 SRCS=  af.c if.c input.c main.c output.c startup.c tables.c timer.c trace.c
 SRCS+=  sap_input.c sap_tables.c sap_output.c
-DPADD= ${LIBCOMPAT} ${LIBIPX}
-LDADD= -lcompat -lipx
+DPADD= ${LIBIPX}
+LDADD= -lipx
 
 WARNS?=        2
 
index a280019..1724e76 100644 (file)
@@ -12,7 +12,6 @@
 # LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 # A PARTICULAR PURPOSE.
 # $FreeBSD: src/usr.sbin/rrenumd/Makefile,v 1.1.2.3 2001/04/25 12:10:47 ru Exp $
-# $DragonFly: src/usr.sbin/rrenumd/Makefile,v 1.3 2004/03/31 20:22:14 cpressey Exp $
 
 PROG=  rrenumd
 SRCS=  rrenumd.c  parser.y lexer.l
@@ -20,8 +19,8 @@ YFLAGS+=      -d
 WARNS?=        2
 
 CFLAGS+= -DINET6 -DIPSEC -I. -I${.CURDIR}
-LDADD= -lipsec -lcompat -ll
-DPADD= ${LIBIPSEC} ${LIBCOMPAT} ${LIBL}
+LDADD= -lipsec -ll
+DPADD= ${LIBIPSEC} ${LIBL}
 
 MAN=   rrenumd.conf.5 rrenumd.8
 
index 250926e..513e870 100644 (file)
 # LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 # A PARTICULAR PURPOSE.
 # $FreeBSD: src/usr.sbin/rtadvd/Makefile,v 1.1.2.2 2001/04/25 12:10:48 ru Exp $
-# $DragonFly: src/usr.sbin/rtadvd/Makefile,v 1.2 2003/06/17 04:30:02 dillon Exp $
 
 PROG=  rtadvd
 SRCS=  rtadvd.c rrenum.c advcap.c if.c config.c timer.c dump.c
 WARNS?=        1
 
 CFLAGS+=-DINET6
-LDADD+=        -lcompat
-DPADD+=        ${LIBCOMPAT}
 
 MAN=   rtadvd.conf.5 rtadvd.8