On Tue, Jun 13, 2017 at 05:05:56PM -0400, Brian Callahan wrote:
> Hi --
> 
> Whoops, that was unintentional. Fixed.
> 
> ~Brian

Sorry for not looking sooner.

I would rather you use two variables for -E flags. e.g., set
error_warns for one -E flag, and  fatal_warns for multiple -E flags.

That way, most of your comments would be no longer necessary at all. ;)

I mean:

> Index: usr.bin/m4/eval.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/m4/eval.c,v
> retrieving revision 1.74
> diff -u -p -u -p -r1.74 eval.c
> --- usr.bin/m4/eval.c 5 Feb 2015 12:59:57 -0000       1.74
> +++ usr.bin/m4/eval.c 13 Jun 2017 21:03:15 -0000
> @@ -269,6 +269,12 @@ expand_builtin(const char *argv[], int a
>                                       warn("%s at line %lu: include(%s)",
>                                           CURRENT_NAME, CURRENT_LINE, 
> argv[2]);
>                                       exit_code = 1;
That comment:
> +                                     /* exit immediately if multiple -E flags
> +                                      */
> +                                     if (fatal_warns == 2) {
> +                                             killdiv();
> +                                             exit(exit_code);
> +                                     }
>                               } else
>                                       err(1, "%s at line %lu: include(%s)",
>                                           CURRENT_NAME, CURRENT_LINE, 
> argv[2]);
> Index: usr.bin/m4/gnum4.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/m4/gnum4.c,v
> retrieving revision 1.50
> diff -u -p -u -p -r1.50 gnum4.c
> --- usr.bin/m4/gnum4.c        29 Apr 2015 00:13:26 -0000      1.50
> +++ usr.bin/m4/gnum4.c        13 Jun 2017 21:03:15 -0000
> @@ -255,11 +256,35 @@ exit_regerror(int er, regex_t *re, const
>       m4errx(1, "regular expression error in %s: %s.", source, errbuf);
>  }
>  
> +/* warnx() plus check to see if we need to change exit code or exit.
> + * -E flag functionality.
> + */
> +void
> +m4_warnx(const char *fmt, ...)
> +{
> +     va_list ap;
> +
> +     va_start(ap, fmt);
> +     vwarnx(fmt, ap);
> +     va_end(ap);
> +
and that code:
> +     /* Do nothing if no -E flags, set exit_code > 0 but keep going
> +      * if one -E flag, exit immediately with exit status > 0 if
> +      * two or more -E flags.
> +      */
> +     if (fatal_warns == 0)
> +             return;
> +     else if (fatal_warns == 1)
> +             exit_code = 1;
> +     else
> +             exit(1);
> +}
> +
which would become something like:
        if (fatal_warns)
                exit(1);
        if (error_warns)
                exit_code = 1;

no need for any comment....

Reply via email to