]> granicus.if.org Git - sudo/commitdiff
regen
authorTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 13 Feb 2004 21:37:02 +0000 (21:37 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 13 Feb 2004 21:37:02 +0000 (21:37 +0000)
lex.yy.c
sudo.tab.c

index bfa2ae03735606504327353076e68958cec23cde..6be7f18d38a98a5516ae9af5cc5031bf5ff937b7 100644 (file)
--- a/lex.yy.c
+++ b/lex.yy.c
@@ -1,4 +1,4 @@
-/*     $OpenBSD: flex.skl,v 1.6 2001/01/05 18:26:23 millert Exp $      */
+/*     $OpenBSD: flex.skl,v 1.8 2004/02/09 11:38:31 espie Exp $        */
 
 /* A lexical scanner generated by flex */
 
@@ -866,36 +866,18 @@ char *yytext;
 #line 2 "parse.lex"
 /*
  * Copyright (c) 1996, 1998-2004 Todd C. Miller <Todd.Miller@courtesan.com>
- * All rights reserved.
  *
- * This code is derived from software contributed by Chris Jepeway.
+ * 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.
  *
- * This code is derived from software contributed by Chris Jepeway
- * 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. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * 4. Products derived from this software may not be called "Sudo" nor
- *    may "Sudo" appear in their names without specific prior written
- *    permission from the author.
- *
- * THIS SOFTWARE IS PROVIDED ``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 AUTHOR 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,
+ * 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.
  * 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.
@@ -974,7 +956,7 @@ extern void yyerror         __P((char *));
 
 #define INDEFS 5
 
-#line 978 "lex.yy.c"
+#line 960 "lex.yy.c"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -1128,9 +1110,9 @@ YY_DECL
        register char *yy_cp, *yy_bp;
        register int yy_act;
 
-#line 117 "parse.lex"
+#line 99 "parse.lex"
 
-#line 1134 "lex.yy.c"
+#line 1116 "lex.yy.c"
 
        if ( yy_init )
                {
@@ -1216,12 +1198,12 @@ do_action:      /* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 118 "parse.lex"
+#line 100 "parse.lex"
 BEGIN STARTDEFS;
        YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 120 "parse.lex"
+#line 102 "parse.lex"
 {
                            BEGIN INDEFS;
                            LEXTRACE("DEFVAR ");
@@ -1232,7 +1214,7 @@ YY_RULE_SETUP
 
 case 3:
 YY_RULE_SETUP
-#line 128 "parse.lex"
+#line 110 "parse.lex"
 {
                            BEGIN STARTDEFS;
                            LEXTRACE(", ");
@@ -1241,7 +1223,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 134 "parse.lex"
+#line 116 "parse.lex"
 {
                            LEXTRACE("= ");
                            return('=');
@@ -1249,7 +1231,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 139 "parse.lex"
+#line 121 "parse.lex"
 {
                            LEXTRACE("+= ");
                            return('+');
@@ -1257,7 +1239,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 144 "parse.lex"
+#line 126 "parse.lex"
 {
                            LEXTRACE("-= ");
                            return('-');
@@ -1265,7 +1247,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 149 "parse.lex"
+#line 131 "parse.lex"
 {
                            LEXTRACE("WORD(1) ");
                            fill(yytext + 1, yyleng - 2);
@@ -1274,7 +1256,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 155 "parse.lex"
+#line 137 "parse.lex"
 {
                            LEXTRACE("WORD(2) ");
                            fill(yytext, yyleng);
@@ -1285,7 +1267,7 @@ YY_RULE_SETUP
 
 case 9:
 YY_RULE_SETUP
-#line 163 "parse.lex"
+#line 145 "parse.lex"
 {
                            LEXTRACE("QUOTEDCHAR ");
                            fill_args(yytext + 1, 1, sawspace);
@@ -1294,7 +1276,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 169 "parse.lex"
+#line 151 "parse.lex"
 {
                            BEGIN INITIAL;
                            unput(*yytext);
@@ -1303,7 +1285,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 175 "parse.lex"
+#line 157 "parse.lex"
 {
                            LEXTRACE("ARG ");
                            fill_args(yytext, yyleng, sawspace);
@@ -1313,7 +1295,7 @@ YY_RULE_SETUP
 
 case 12:
 YY_RULE_SETUP
-#line 182 "parse.lex"
+#line 164 "parse.lex"
 {
                            BEGIN GOTDEFS;
                            switch (yytext[8]) {
@@ -1334,7 +1316,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 200 "parse.lex"
+#line 182 "parse.lex"
 {
                            fill(yytext, yyleng);
                            switch (*yytext) {
@@ -1356,7 +1338,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 219 "parse.lex"
+#line 201 "parse.lex"
 {
                                /* cmnd does not require passwd for this user */
                                LEXTRACE("NOPASSWD ");
@@ -1365,7 +1347,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 225 "parse.lex"
+#line 207 "parse.lex"
 {
                                /* cmnd requires passwd for this user */
                                LEXTRACE("PASSWD ");
@@ -1374,7 +1356,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 231 "parse.lex"
+#line 213 "parse.lex"
 {
                                LEXTRACE("NOEXEC ");
                                return(NOEXEC);
@@ -1382,7 +1364,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 236 "parse.lex"
+#line 218 "parse.lex"
 {
                                LEXTRACE("EXEC ");
                                return(EXEC);
@@ -1390,7 +1372,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 241 "parse.lex"
+#line 223 "parse.lex"
 {
                            /* netgroup */
                            fill(yytext, yyleng);
@@ -1400,7 +1382,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 248 "parse.lex"
+#line 230 "parse.lex"
 {
                            /* UN*X group */
                            fill(yytext, yyleng);
@@ -1410,7 +1392,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 255 "parse.lex"
+#line 237 "parse.lex"
 {
                            fill(yytext, yyleng);
                            LEXTRACE("NTWKADDR ");
@@ -1419,7 +1401,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 261 "parse.lex"
+#line 243 "parse.lex"
 {
                            fill(yytext, yyleng);
                            LEXTRACE("NTWKADDR ");
@@ -1428,7 +1410,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 267 "parse.lex"
+#line 249 "parse.lex"
 {
                                BEGIN GOTRUNAS;
                                LEXTRACE("RUNAS ");
@@ -1437,7 +1419,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 273 "parse.lex"
+#line 255 "parse.lex"
 {
                            if (strcmp(yytext, "ALL") == 0) {
                                LEXTRACE("ALL ");
@@ -1451,7 +1433,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 284 "parse.lex"
+#line 266 "parse.lex"
 {
                            /* username/uid that user can run command as */
                            fill(yytext, yyleng);
@@ -1461,14 +1443,14 @@ YY_RULE_SETUP
        YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 291 "parse.lex"
+#line 273 "parse.lex"
 {
                            BEGIN INITIAL;
                        }
        YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 295 "parse.lex"
+#line 277 "parse.lex"
 {
                            BEGIN GOTCMND;
                            LEXTRACE("COMMAND ");
@@ -1477,7 +1459,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 301 "parse.lex"
+#line 283 "parse.lex"
 {
                            /* directories can't have args... */
                            if (yytext[yyleng - 1] == '/') {
@@ -1493,7 +1475,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 314 "parse.lex"
+#line 296 "parse.lex"
 {
                            /* a word */
                            fill(yytext, yyleng);
@@ -1503,7 +1485,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 321 "parse.lex"
+#line 303 "parse.lex"
 {
                            LEXTRACE(", ");
                            return(',');
@@ -1511,7 +1493,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 326 "parse.lex"
+#line 308 "parse.lex"
 {
                            LEXTRACE("= ");
                            return('=');
@@ -1519,7 +1501,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 331 "parse.lex"
+#line 313 "parse.lex"
 {
                            LEXTRACE(": ");
                            return(':');
@@ -1527,7 +1509,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 336 "parse.lex"
+#line 318 "parse.lex"
 {
                            if (yyleng % 2 == 1)
                                return('!');    /* return '!' */
@@ -1535,7 +1517,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 341 "parse.lex"
+#line 323 "parse.lex"
 {
                            BEGIN INITIAL;
                            ++sudolineno;
@@ -1545,14 +1527,14 @@ YY_RULE_SETUP
        YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 348 "parse.lex"
+#line 330 "parse.lex"
 {                      /* throw away space/tabs */
                            sawspace = TRUE;    /* but remember for fill_args */
                        }
        YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 352 "parse.lex"
+#line 334 "parse.lex"
 {
                            sawspace = TRUE;    /* remember for fill_args */
                            ++sudolineno;
@@ -1561,7 +1543,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 358 "parse.lex"
+#line 340 "parse.lex"
 {
                            BEGIN INITIAL;
                            ++sudolineno;
@@ -1571,7 +1553,7 @@ YY_RULE_SETUP
        YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 365 "parse.lex"
+#line 347 "parse.lex"
 {
                            LEXTRACE("ERROR ");
                            return(ERROR);
@@ -1583,7 +1565,7 @@ case YY_STATE_EOF(GOTDEFS):
 case YY_STATE_EOF(GOTCMND):
 case YY_STATE_EOF(STARTDEFS):
 case YY_STATE_EOF(INDEFS):
-#line 370 "parse.lex"
+#line 352 "parse.lex"
 {
                            if (YY_START != INITIAL) {
                                BEGIN INITIAL;
@@ -1595,10 +1577,10 @@ case YY_STATE_EOF(INDEFS):
        YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 379 "parse.lex"
+#line 361 "parse.lex"
 ECHO;
        YY_BREAK
-#line 1602 "lex.yy.c"
+#line 1584 "lex.yy.c"
 
        case YY_END_OF_BUFFER:
                {
@@ -2164,7 +2146,7 @@ YY_BUFFER_STATE b;
 
 #ifndef YY_ALWAYS_INTERACTIVE
 #ifndef YY_NEVER_INTERACTIVE
-extern int isatty YY_PROTO(( int ));
+#include <unistd.h>
 #endif
 #endif
 
@@ -2487,7 +2469,7 @@ int main()
        return 0;
        }
 #endif
-#line 379 "parse.lex"
+#line 361 "parse.lex"
 
 static void
 fill(s, len)
index a9e5be1cfe18b2bb838b04c07f082ba34e0815bb..9e72e9dda2b0ee3b677094fc3459b368055b49d3 100644 (file)
@@ -19,36 +19,18 @@ static char yyrcsid[]
 #line 2 "parse.yacc"
 /*
  * Copyright (c) 1996, 1998-2004 Todd C. Miller <Todd.Miller@courtesan.com>
- * All rights reserved.
  *
- * This code is derived from software contributed by Chris Jepeway.
+ * 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.
  *
- * 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. The name of the author may not be used to endorse or promote products
- *    derived from this software without specific prior written permission.
- *
- * 4. Products derived from this software may not be called "Sudo" nor
- *    may "Sudo" appear in their names without specific prior written
- *    permission from the author.
- *
- * THIS SOFTWARE IS PROVIDED ``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 AUTHOR 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
+ * 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.
  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
@@ -233,7 +215,7 @@ yyerror(s)
     }
     parse_error = TRUE;
 }
-#line 220 "parse.yacc"
+#line 202 "parse.yacc"
 #ifndef YYSTYPE_DEFINED
 #define YYSTYPE_DEFINED
 typedef union {
@@ -243,7 +225,7 @@ typedef union {
     int tok;
 } YYSTYPE;
 #endif /* YYSTYPE_DEFINED */
-#line 247 "sudo.tab.c"
+#line 229 "sudo.tab.c"
 #define COMMAND 257
 #define ALIAS 258
 #define DEFVAR 259
@@ -673,7 +655,7 @@ short *yyss;
 short *yysslim;
 YYSTYPE *yyvs;
 int yystacksize;
-#line 887 "parse.yacc"
+#line 869 "parse.yacc"
 
 #define MOREALIASES (32)
 aliasinfo *aliases = NULL;
@@ -1030,7 +1012,7 @@ init_parser()
     if (printmatches == TRUE)
        expand_match_list();
 }
-#line 982 "sudo.tab.c"
+#line 964 "sudo.tab.c"
 /* allocate initial stack or double stack size, up to YYMAXDEPTH */
 #if defined(__cplusplus) || defined(__STDC__)
 static int yygrowstack(void)
@@ -1224,85 +1206,85 @@ yyreduce:
     switch (yyn)
     {
 case 3:
-#line 273 "parse.yacc"
+#line 255 "parse.yacc"
 { ; }
 break;
 case 4:
-#line 275 "parse.yacc"
+#line 257 "parse.yacc"
 { yyerrok; }
 break;
 case 5:
-#line 276 "parse.yacc"
+#line 258 "parse.yacc"
 { push; }
 break;
 case 6:
-#line 276 "parse.yacc"
+#line 258 "parse.yacc"
 {
                            while (top && user_matches != TRUE)
                                pop;
                        }
 break;
 case 7:
-#line 281 "parse.yacc"
+#line 263 "parse.yacc"
 { ; }
 break;
 case 8:
-#line 283 "parse.yacc"
+#line 265 "parse.yacc"
 { ; }
 break;
 case 9:
-#line 285 "parse.yacc"
+#line 267 "parse.yacc"
 { ; }
 break;
 case 10:
-#line 287 "parse.yacc"
+#line 269 "parse.yacc"
 { ; }
 break;
 case 11:
-#line 289 "parse.yacc"
+#line 271 "parse.yacc"
 { ; }
 break;
 case 13:
-#line 295 "parse.yacc"
+#line 277 "parse.yacc"
 {
                            defaults_matches = TRUE;
                        }
 break;
 case 14:
-#line 298 "parse.yacc"
+#line 280 "parse.yacc"
 { push; }
 break;
 case 15:
-#line 298 "parse.yacc"
+#line 280 "parse.yacc"
 {
                            defaults_matches = user_matches;
                            pop;
                        }
 break;
 case 16:
-#line 302 "parse.yacc"
+#line 284 "parse.yacc"
 { push; }
 break;
 case 17:
-#line 302 "parse.yacc"
+#line 284 "parse.yacc"
 {
                            defaults_matches = yyvsp[0].BOOLEAN == TRUE;
                            pop;
                        }
 break;
 case 18:
-#line 306 "parse.yacc"
+#line 288 "parse.yacc"
 { push; }
 break;
 case 19:
-#line 306 "parse.yacc"
+#line 288 "parse.yacc"
 {
                            defaults_matches = host_matches;
                            pop;
                        }
 break;
 case 22:
-#line 316 "parse.yacc"
+#line 298 "parse.yacc"
 {
                            if (defaults_matches == TRUE &&
                                !set_default(yyvsp[0].string, NULL, TRUE)) {
@@ -1313,7 +1295,7 @@ case 22:
                        }
 break;
 case 23:
-#line 324 "parse.yacc"
+#line 306 "parse.yacc"
 {
                            if (defaults_matches == TRUE &&
                                !set_default(yyvsp[0].string, NULL, FALSE)) {
@@ -1324,7 +1306,7 @@ case 23:
                        }
 break;
 case 24:
-#line 332 "parse.yacc"
+#line 314 "parse.yacc"
 {
                            if (defaults_matches == TRUE &&
                                !set_default(yyvsp[-2].string, yyvsp[0].string, TRUE)) {
@@ -1336,7 +1318,7 @@ case 24:
                        }
 break;
 case 25:
-#line 341 "parse.yacc"
+#line 323 "parse.yacc"
 {
                            if (defaults_matches == TRUE &&
                                !set_default(yyvsp[-2].string, yyvsp[0].string, '+')) {
@@ -1348,7 +1330,7 @@ case 25:
                        }
 break;
 case 26:
-#line 350 "parse.yacc"
+#line 332 "parse.yacc"
 {
                            if (defaults_matches == TRUE &&
                                !set_default(yyvsp[-2].string, yyvsp[0].string, '-')) {
@@ -1360,7 +1342,7 @@ case 26:
                        }
 break;
 case 29:
-#line 365 "parse.yacc"
+#line 347 "parse.yacc"
 {
                            /*
                             * We already did a push if necessary in
@@ -1374,27 +1356,27 @@ case 29:
                        }
 break;
 case 30:
-#line 378 "parse.yacc"
+#line 360 "parse.yacc"
 {
                            if (yyvsp[0].BOOLEAN != -1)
                                host_matches = yyvsp[0].BOOLEAN;
                        }
 break;
 case 31:
-#line 382 "parse.yacc"
+#line 364 "parse.yacc"
 {
                            if (yyvsp[0].BOOLEAN != -1)
                                host_matches = ! yyvsp[0].BOOLEAN;
                        }
 break;
 case 32:
-#line 388 "parse.yacc"
+#line 370 "parse.yacc"
 {
                            yyval.BOOLEAN = TRUE;
                        }
 break;
 case 33:
-#line 391 "parse.yacc"
+#line 373 "parse.yacc"
 {
                            if (addr_matches(yyvsp[0].string))
                                yyval.BOOLEAN = TRUE;
@@ -1404,7 +1386,7 @@ case 33:
                        }
 break;
 case 34:
-#line 398 "parse.yacc"
+#line 380 "parse.yacc"
 {
                            if (netgr_matches(yyvsp[0].string, user_host, user_shost, NULL))
                                yyval.BOOLEAN = TRUE;
@@ -1414,7 +1396,7 @@ case 34:
                        }
 break;
 case 35:
-#line 405 "parse.yacc"
+#line 387 "parse.yacc"
 {
                            if (hostname_matches(user_shost, user_host, yyvsp[0].string) == 0)
                                yyval.BOOLEAN = TRUE;
@@ -1424,7 +1406,7 @@ case 35:
                        }
 break;
 case 36:
-#line 412 "parse.yacc"
+#line 394 "parse.yacc"
 {
                            aliasinfo *aip = find_alias(yyvsp[0].string, HOST_ALIAS);
 
@@ -1449,7 +1431,7 @@ case 36:
                        }
 break;
 case 39:
-#line 440 "parse.yacc"
+#line 422 "parse.yacc"
 {
                            /*
                             * Push the entry onto the stack if it is worth
@@ -1477,14 +1459,14 @@ case 39:
                        }
 break;
 case 40:
-#line 467 "parse.yacc"
+#line 449 "parse.yacc"
 {
                            if (yyvsp[0].BOOLEAN != -1)
                                cmnd_matches = yyvsp[0].BOOLEAN;
                        }
 break;
 case 41:
-#line 471 "parse.yacc"
+#line 453 "parse.yacc"
 {
                            if (printmatches == TRUE) {
                                if (in_alias == TRUE)
@@ -1496,14 +1478,14 @@ case 41:
                        }
 break;
 case 42:
-#line 479 "parse.yacc"
+#line 461 "parse.yacc"
 {
                            if (yyvsp[0].BOOLEAN != -1)
                                cmnd_matches = ! yyvsp[0].BOOLEAN;
                        }
 break;
 case 43:
-#line 485 "parse.yacc"
+#line 467 "parse.yacc"
 {
                            if (printmatches == TRUE && host_matches == TRUE &&
                                user_matches == TRUE) {
@@ -1529,17 +1511,17 @@ case 43:
                        }
 break;
 case 44:
-#line 508 "parse.yacc"
+#line 490 "parse.yacc"
 {
                            runas_matches = (yyvsp[0].BOOLEAN == TRUE ? TRUE : FALSE);
                        }
 break;
 case 45:
-#line 513 "parse.yacc"
+#line 495 "parse.yacc"
 { ; }
 break;
 case 46:
-#line 514 "parse.yacc"
+#line 496 "parse.yacc"
 {
                            /* Later entries override earlier ones. */
                            if (yyvsp[0].BOOLEAN != -1)
@@ -1549,11 +1531,11 @@ case 46:
                        }
 break;
 case 47:
-#line 523 "parse.yacc"
+#line 505 "parse.yacc"
 { ; }
 break;
 case 48:
-#line 524 "parse.yacc"
+#line 506 "parse.yacc"
 {
                            if (printmatches == TRUE) {
                                if (in_alias == TRUE)
@@ -1565,14 +1547,14 @@ case 48:
                        }
 break;
 case 49:
-#line 532 "parse.yacc"
+#line 514 "parse.yacc"
 {
                            /* Set $$ to the negation of runasuser */
                            yyval.BOOLEAN = (yyvsp[0].BOOLEAN == -1 ? -1 : ! yyvsp[0].BOOLEAN);
                        }
 break;
 case 50:
-#line 538 "parse.yacc"
+#line 520 "parse.yacc"
 {
                            if (printmatches == TRUE) {
                                if (in_alias == TRUE)
@@ -1589,7 +1571,7 @@ case 50:
                        }
 break;
 case 51:
-#line 552 "parse.yacc"
+#line 534 "parse.yacc"
 {
                            if (printmatches == TRUE) {
                                if (in_alias == TRUE)
@@ -1606,7 +1588,7 @@ case 51:
                        }
 break;
 case 52:
-#line 566 "parse.yacc"
+#line 548 "parse.yacc"
 {
                            if (printmatches == TRUE) {
                                if (in_alias == TRUE)
@@ -1623,7 +1605,7 @@ case 52:
                        }
 break;
 case 53:
-#line 580 "parse.yacc"
+#line 562 "parse.yacc"
 {
                            aliasinfo *aip = find_alias(yyvsp[0].string, RUNAS_ALIAS);
 
@@ -1655,7 +1637,7 @@ case 53:
                        }
 break;
 case 54:
-#line 609 "parse.yacc"
+#line 591 "parse.yacc"
 {
                            if (printmatches == TRUE) {
                                if (in_alias == TRUE)
@@ -1668,7 +1650,7 @@ case 54:
                        }
 break;
 case 55:
-#line 621 "parse.yacc"
+#line 603 "parse.yacc"
 {
                            /* Inherit {NOPASSWD,PASSWD,NOEXEC,EXEC} status. */
                            if (printmatches == TRUE && host_matches == TRUE &&
@@ -1685,7 +1667,7 @@ case 55:
                        }
 break;
 case 56:
-#line 635 "parse.yacc"
+#line 617 "parse.yacc"
 {
                            no_passwd = TRUE;
                            if (printmatches == TRUE && host_matches == TRUE &&
@@ -1694,7 +1676,7 @@ case 56:
                        }
 break;
 case 57:
-#line 641 "parse.yacc"
+#line 623 "parse.yacc"
 {
                            no_passwd = FALSE;
                            if (printmatches == TRUE && host_matches == TRUE &&
@@ -1703,7 +1685,7 @@ case 57:
                        }
 break;
 case 58:
-#line 647 "parse.yacc"
+#line 629 "parse.yacc"
 {
                            no_execve = TRUE;
                            if (printmatches == TRUE && host_matches == TRUE &&
@@ -1712,7 +1694,7 @@ case 58:
                        }
 break;
 case 59:
-#line 653 "parse.yacc"
+#line 635 "parse.yacc"
 {
                            no_execve = FALSE;
                            if (printmatches == TRUE && host_matches == TRUE &&
@@ -1721,7 +1703,7 @@ case 59:
                        }
 break;
 case 60:
-#line 661 "parse.yacc"
+#line 643 "parse.yacc"
 {
                            if (printmatches == TRUE) {
                                if (in_alias == TRUE)
@@ -1741,7 +1723,7 @@ case 60:
                        }
 break;
 case 61:
-#line 678 "parse.yacc"
+#line 660 "parse.yacc"
 {
                            aliasinfo *aip;
 
@@ -1773,7 +1755,7 @@ case 61:
                        }
 break;
 case 62:
-#line 707 "parse.yacc"
+#line 689 "parse.yacc"
 {
                            if (printmatches == TRUE) {
                                if (in_alias == TRUE) {
@@ -1802,11 +1784,11 @@ case 62:
                        }
 break;
 case 65:
-#line 739 "parse.yacc"
+#line 721 "parse.yacc"
 { push; }
 break;
 case 66:
-#line 739 "parse.yacc"
+#line 721 "parse.yacc"
 {
                            if ((host_matches != -1 || pedantic) &&
                                !add_alias(yyvsp[-3].string, HOST_ALIAS, host_matches)) {
@@ -1817,7 +1799,7 @@ case 66:
                        }
 break;
 case 71:
-#line 757 "parse.yacc"
+#line 739 "parse.yacc"
 {
                            push;
                            if (printmatches == TRUE) {
@@ -1830,7 +1812,7 @@ case 71:
                        }
 break;
 case 72:
-#line 766 "parse.yacc"
+#line 748 "parse.yacc"
 {
                            if ((cmnd_matches != -1 || pedantic) &&
                                !add_alias(yyvsp[-3].string, CMND_ALIAS, cmnd_matches)) {
@@ -1845,11 +1827,11 @@ case 72:
                        }
 break;
 case 73:
-#line 780 "parse.yacc"
+#line 762 "parse.yacc"
 { ; }
 break;
 case 77:
-#line 788 "parse.yacc"
+#line 770 "parse.yacc"
 {
                            if (printmatches == TRUE) {
                                in_alias = TRUE;
@@ -1861,7 +1843,7 @@ case 77:
                        }
 break;
 case 78:
-#line 796 "parse.yacc"
+#line 778 "parse.yacc"
 {
                            if ((yyvsp[0].BOOLEAN != -1 || pedantic) &&
                                !add_alias(yyvsp[-3].string, RUNAS_ALIAS, yyvsp[0].BOOLEAN)) {
@@ -1875,11 +1857,11 @@ case 78:
                        }
 break;
 case 81:
-#line 813 "parse.yacc"
+#line 795 "parse.yacc"
 { push; }
 break;
 case 82:
-#line 813 "parse.yacc"
+#line 795 "parse.yacc"
 {
                            if ((user_matches != -1 || pedantic) &&
                                !add_alias(yyvsp[-3].string, USER_ALIAS, user_matches)) {
@@ -1891,21 +1873,21 @@ case 82:
                        }
 break;
 case 85:
-#line 828 "parse.yacc"
+#line 810 "parse.yacc"
 {
                            if (yyvsp[0].BOOLEAN != -1)
                                user_matches = yyvsp[0].BOOLEAN;
                        }
 break;
 case 86:
-#line 832 "parse.yacc"
+#line 814 "parse.yacc"
 {
                            if (yyvsp[0].BOOLEAN != -1)
                                user_matches = ! yyvsp[0].BOOLEAN;
                        }
 break;
 case 87:
-#line 838 "parse.yacc"
+#line 820 "parse.yacc"
 {
                            if (strcmp(yyvsp[0].string, user_name) == 0)
                                yyval.BOOLEAN = TRUE;
@@ -1915,7 +1897,7 @@ case 87:
                        }
 break;
 case 88:
-#line 845 "parse.yacc"
+#line 827 "parse.yacc"
 {
                            if (usergr_matches(yyvsp[0].string, user_name))
                                yyval.BOOLEAN = TRUE;
@@ -1925,7 +1907,7 @@ case 88:
                        }
 break;
 case 89:
-#line 852 "parse.yacc"
+#line 834 "parse.yacc"
 {
                            if (netgr_matches(yyvsp[0].string, NULL, NULL, user_name))
                                yyval.BOOLEAN = TRUE;
@@ -1935,7 +1917,7 @@ case 89:
                        }
 break;
 case 90:
-#line 859 "parse.yacc"
+#line 841 "parse.yacc"
 {
                            aliasinfo *aip = find_alias(yyvsp[0].string, USER_ALIAS);
 
@@ -1960,12 +1942,12 @@ case 90:
                        }
 break;
 case 91:
-#line 881 "parse.yacc"
+#line 863 "parse.yacc"
 {
                            yyval.BOOLEAN = TRUE;
                        }
 break;
-#line 1917 "sudo.tab.c"
+#line 1899 "sudo.tab.c"
     }
     yyssp -= yym;
     yystate = *yyssp;