On Fri, Aug 13, 2021 at 09:10:57AM +0200, Martijn van Duren wrote:
> Similar to tb's de Morgan's rule send last night.
> 
> Shaves of 4 LoC of putdata and reads easier to me.

Agreed.

> regress passes
> 
> OK?

ok tb

> 
> martijn@
> 
> Index: jot.c
> ===================================================================
> RCS file: /cvs/src/usr.bin/jot/jot.c,v
> retrieving revision 1.51
> diff -u -p -r1.51 jot.c
> --- jot.c     30 Jul 2021 02:47:37 -0000      1.51
> +++ jot.c     13 Aug 2021 07:09:41 -0000
> @@ -304,25 +304,21 @@ putdata(double x, bool last)
>       if (boring)
>               printf("%s", format);
>       else if (longdata && nosign) {
> -             if (x <= (double)ULONG_MAX && x >= 0.0)
> -                     printf(format, (unsigned long)x);
> -             else
> +             if (x < 0.0 || x > (double)ULONG_MAX)
>                       return 1;
> +             printf(format, (unsigned long)x);
>       } else if (longdata) {
> -             if (x <= (double)LONG_MAX && x >= (double)LONG_MIN)
> -                     printf(format, (long)x);
> -             else
> +             if (x < (double)LONG_MIN || x > (double)LONG_MAX)
>                       return 1;
> +             printf(format, (long)x);
>       } else if (chardata || (intdata && !nosign)) {
> -             if (x <= (double)INT_MAX && x >= (double)INT_MIN)
> -                     printf(format, (int)x);
> -             else
> +             if (x < (double)INT_MIN || x > (double)INT_MAX)
>                       return 1;
> +             printf(format, (int)x);
>       } else if (intdata) {
> -             if (x <= (double)UINT_MAX && x >= 0.0)
> -                     printf(format, (unsigned int)x);
> -             else
> +             if (x < 0.0 || x > (double)UINT_MAX)
>                       return 1;
> +             printf(format, (unsigned int)x);
>       } else
>               printf(format, x);
>       if (!last)
> 
> 

Reply via email to