From b7e6671371e489fb6607f9ab883ddeb03895e51d Mon Sep 17 00:00:00 2001 From: deraadt Date: Thu, 15 Sep 2016 00:58:23 +0000 Subject: [PATCH] use static in the right places to seperate modules better ok tedu --- doas.c | 1 - doas.h | 20 +++++++++++++++++++- env.c | 2 +- parse.y | 13 +++++++------ 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/doas.c b/doas.c index 7757f49..7feaafc 100644 --- a/doas.c +++ b/doas.c @@ -174,7 +174,6 @@ static void parseconfig(const char *filename, int checkperms) { extern FILE *yyfp; - extern int yyparse(void); struct stat sb; yyfp = fopen(filename, "r"); diff --git a/doas.h b/doas.h index 062c387..5de73cc 100644 --- a/doas.h +++ b/doas.h @@ -1,4 +1,20 @@ /* $OpenBSD$ */ +/* + * Copyright (c) 2015 Ted Unangst + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + struct rule { int action; int options; @@ -10,13 +26,15 @@ struct rule { }; extern struct rule **rules; -extern int nrules, maxrules; +extern int nrules; extern int parse_errors; size_t arraylen(const char **); char **prepenv(struct rule *); +int yyparse(void); + #define PERMIT 1 #define DENY 2 diff --git a/env.c b/env.c index e4e1c43..23a95f2 100644 --- a/env.c +++ b/env.c @@ -195,7 +195,7 @@ prepenv(struct rule *rule) NULL }; struct env *env; - + env = createenv(rule); /* if we started with blank, fill some defaults then apply rules */ diff --git a/parse.y b/parse.y index 8a33364..5e77679 100644 --- a/parse.y +++ b/parse.y @@ -49,13 +49,14 @@ typedef struct { FILE *yyfp; struct rule **rules; -int nrules, maxrules; +int nrules; +static int maxrules; + int parse_errors = 0; -int obsolete_warned = 0; +static int obsolete_warned = 0; -void yyerror(const char *, ...); -int yylex(void); -int yyparse(void); +static void yyerror(const char *, ...); +static int yylex(void); %} @@ -205,7 +206,7 @@ yyerror(const char *fmt, ...) parse_errors++; } -struct keyword { +static struct keyword { const char *word; int token; } keywords[] = { -- 2.39.2