[BACK]Return to parse.y CVS log [TXT][DIR] Up to [local] / src / usr.bin / doas

Diff for /src/usr.bin/doas/parse.y between version 1.25 and 1.26

version 1.25, 2016/12/29 19:12:42 version 1.26, 2017/01/02 01:40:20
Line 36 
Line 36 
                         const char **cmdargs;                          const char **cmdargs;
                         const char **envlist;                          const char **envlist;
                 };                  };
                   const char **strlist;
                 const char *str;                  const char *str;
         };          };
         int lineno;          int lineno;
Line 141 
Line 142 
                 } | TKEEPENV {                  } | TKEEPENV {
                         $$.options = KEEPENV;                          $$.options = KEEPENV;
                         $$.envlist = NULL;                          $$.envlist = NULL;
                 } | TSETENV '{' envlist '}' {                  } | TSETENV '{' strlist '}' {
                         $$.options = 0;                          $$.options = 0;
                         $$.envlist = $3.envlist;                          $$.envlist = $3.strlist;
                 } ;                  } ;
   
 envlist:        /* empty */ {  strlist:        /* empty */ {
                         if (!($$.envlist = calloc(1, sizeof(char *))))                          if (!($$.strlist = calloc(1, sizeof(char *))))
                                 errx(1, "can't allocate envlist");                                  errx(1, "can't allocate strlist");
                 } | envlist TSTRING {                  } | strlist TSTRING {
                         int nenv = arraylen($1.envlist);                          int nstr = arraylen($1.strlist);
                         if (!($$.envlist = reallocarray($1.envlist, nenv + 2,                          if (!($$.strlist = reallocarray($1.strlist, nstr + 2,
                             sizeof(char *))))                              sizeof(char *))))
                                 errx(1, "can't allocate envlist");                                  errx(1, "can't allocate strlist");
                         $$.envlist[nenv] = $2.str;                          $$.strlist[nstr] = $2.str;
                         $$.envlist[nenv + 1] = NULL;                          $$.strlist[nstr + 1] = NULL;
                 } ;                  } ;
   
   
Line 179 
Line 180 
   
 args:           /* empty */ {  args:           /* empty */ {
                         $$.cmdargs = NULL;                          $$.cmdargs = NULL;
                 } | TARGS argslist {                  } | TARGS strlist {
                         $$.cmdargs = $2.cmdargs;                          $$.cmdargs = $2.strlist;
                 } ;  
   
 argslist:       /* empty */ {  
                         if (!($$.cmdargs = calloc(1, sizeof(char *))))  
                                 errx(1, "can't allocate args");  
                 } | argslist TSTRING {  
                         int nargs = arraylen($1.cmdargs);  
                         if (!($$.cmdargs = reallocarray($1.cmdargs, nargs + 2,  
                             sizeof(char *))))  
                                 errx(1, "can't allocate args");  
                         $$.cmdargs[nargs] = $2.str;  
                         $$.cmdargs[nargs + 1] = NULL;  
                 } ;                  } ;
   
 %%  %%

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.26