freebsd-ports/mail/pathalias/files/patch-parse.y
2013-12-28 06:59:23 +00:00

128 lines
3 KiB
Text

--- parse.y.orig 1993-03-03 22:10:03.000000000 +0100
+++ parse.y 2013-06-17 00:03:43.000000000 +0200
@@ -1,9 +1,10 @@
%{
/* pathalias -- by steve bellovin, as told to peter honeyman */
#ifndef lint
-static char *sccsid = "@(#)parse.y 9.11 91/06/01";
+static const char *sccsid = "@(#)parse.y 9.11 91/06/01";
#endif /* lint */
+#include <unistd.h>
#include "def.h"
/* scanner states (yylex, parse) */
@@ -14,22 +15,16 @@
/* exports */
long Tcount;
-extern void yyerror();
/* imports */
-extern node *addnode(), *addprivate();
-extern void fixprivate(), alias(), deadlink(), deletelink();
-extern link *addlink();
-extern int strcmp();
-extern char *strsave();
-extern int optind;
-extern char *Cfile, *Netchars, **Argv;
-extern int Lineno, Argc;
-extern node *Home;
/* privates */
-STATIC void fixnet(), adjust();
-STATIC int yylex(), yywrap(), getword();
+STATIC void fixnet(register node *network, node *nlist, Cost cost, int netchar, int netdir);
+STATIC void adjust(node *n, Cost cost);
+STATIC int yylex(void);
+STATIC int yywrap(void);
+STATIC int getword(register char *str, register int c);
+static const char *Netchars = "!:@%"; /* sparse, but sufficient */
static int Scanstate = NEWLINE; /* scanner (yylex) state */
/* flags for ys_flags */
@@ -78,7 +73,7 @@
;
links : host site cost {
- struct link *l;
+ struct palink *l;
l = addlink($1, $2.ys_node, $3, $2.ys_net, $2.ys_dir);
if (GATEWAYED($2.ys_node))
@@ -87,7 +82,7 @@
l->l_flag |= LTERMINAL;
}
| links ',' site cost {
- struct link *l;
+ struct palink *l;
l = addlink($1, $3.ys_node, $4, $3.ys_net, $3.ys_dir);
if (GATEWAYED($3.ys_node))
@@ -99,11 +94,11 @@
;
host : HOST {$$ = addnode($1);}
- | PRIVATE {$$ = addnode("private");}
- | DEAD {$$ = addnode("dead");}
- | DELETE {$$ = addnode("delete");}
- | FILETOK {$$ = addnode("file");}
- | ADJUST {$$ = addnode("adjust");}
+ | PRIVATE {$$ = addnode(strsave("private"));}
+ | DEAD {$$ = addnode(strsave("dead"));}
+ | DELETE {$$ = addnode(strsave("delete"));}
+ | FILETOK {$$ = addnode(strsave("file"));}
+ | ADJUST {$$ = addnode(strsave("adjust"));}
;
site : asite {
@@ -238,18 +233,18 @@
%%
void
-#ifdef YYDEBUG
+#if YYDEBUG
/*VARARGS1*/
yyerror(fmt, arg)
- char *fmt, *arg;
+ const char *fmt, *arg;
#else
yyerror(s)
- char *s;
+ const char *s;
#endif
{
/* a concession to bsd error(1) */
fprintf(stderr, "\"%s\", ", Cfile);
-#ifdef YYDEBUG
+#if YYDEBUG
fprintf(stderr, "line %d: ", Lineno);
fprintf(stderr, fmt, arg);
putc('\n', stderr);
@@ -279,7 +274,7 @@
Cost cost;
char netchar, netdir;
{ register node *member, *nextnet;
- link *l;
+ palink *l;
static int netanon = 0;
char anon[25];
@@ -314,7 +309,7 @@
#define NLRETURN() {Scanstate = NEWLINE; return EOL;}
static struct ctable {
- char *cname;
+ const char *cname;
Cost cval;
} ctable[] = {
/* ordered by frequency of appearance in a "typical" dataset */
@@ -524,7 +519,7 @@
adjust(n, cost)
node *n;
Cost cost;
-{ link *l;
+{ palink *l;
n->n_cost += cost; /* cumulative */