diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/args.c | 10 | 
1 files changed, 5 insertions, 5 deletions
| @@ -97,8 +97,8 @@ struct opts {    struct opts *next;    long *arg;         // Pointer into union "this" to store arguments at.    int c;             // Argument character to match -  int flags;         // |=1, ^=2 -  unsigned dex[3];   // which bits to disable/enable/exclude in toys.optflags +  int flags;         // |=1, ^=2, " "=4, ;=8 +  unsigned long long dex[3]; // bits to disable/enable/exclude in toys.optflags    char type;         // Type of arguments to store union "this"    union {      long l; @@ -142,7 +142,7 @@ static int gotflag(struct getoptflagstate *gof, struct opts *opt)    // Might enabling this switch off something else?    if (toys.optflags & opt->dex[0]) {      struct opts *clr; -    unsigned i = 1; +    unsigned long long i = 1;      // Forget saved argument for flag we switch back off      for (clr=gof->opts, i=1; clr; clr = clr->next, i<<=1) @@ -326,7 +326,7 @@ void parse_optflaglist(struct getoptflagstate *gof)    // (This goes right to left so we need the whole list before we can start.)    idx = 0;    for (new = gof->opts; new; new = new->next) { -    unsigned u = 1<<idx++; +    unsigned long long u = 1L<<idx++;      if (new->c == 1) new->c = 0;      new->dex[1] = u; @@ -378,7 +378,7 @@ void get_optflags(void)  {    struct getoptflagstate gof;    struct opts *catch; -  long saveflags; +  unsigned long long saveflags;    char *letters[]={"s",""};    // Option parsing is a two stage process: parse the option string into | 
