Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Oct 2020 08:12:14 -0500
From:      Kyle Evans <kevans@freebsd.org>
To:        =?UTF-8?B?U3RlZmFuIEXDn2Vy?= <se@freebsd.org>
Cc:        src-committers <src-committers@freebsd.org>, svn-src-all <svn-src-all@freebsd.org>,  svn-src-head <svn-src-head@freebsd.org>
Subject:   Re: svn commit: r367103 - head/usr.bin/calendar
Message-ID:  <CACNAnaERLh7NvWQ45FZd_s94rApwzyDpah2APP3m=VbfBZrTgg@mail.gmail.com>
In-Reply-To: <202010281306.09SD6dgf040611@repo.freebsd.org>
References:  <202010281306.09SD6dgf040611@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Oct 28, 2020 at 8:06 AM Stefan E=C3=9Fer <se@freebsd.org> wrote:
>
> Author: se
> Date: Wed Oct 28 13:06:39 2020
> New Revision: 367103
> URL: https://svnweb.freebsd.org/changeset/base/367103
>
> Log:
>   Fix parsing of #ifdef in calendar files
>
>   There was code to process an #ifndef tokens, but none for #ifdef.
>   The #ifdef token was mentioned as unsupported in the BUGS section,
>   but no reason was given and I do not see why it should stay omitted.
>
>   Misleading information in The BUGS section of the man-page regarding
>   the maximum number of #define and #include statements supported has
>   been removed. These limits might have applied to a prior version of
>   this program, but do not seem to apply to the current implementation.
>
>   I have not tried to test for the existence of the limits, but the
>   include file processing just recursively calls the parser (without
>   counting the recursion depth) and the stringlist functions do not
>   impose a limit on the number of entries.
>
>   Reported by:  jhs@berklix.com
>   MFC after:    3 days
>
> Modified:
>   head/usr.bin/calendar/calendar.1
>   head/usr.bin/calendar/io.c
>
> Modified: head/usr.bin/calendar/calendar.1
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/usr.bin/calendar/calendar.1    Wed Oct 28 11:54:09 2020        (=
r367102)
> +++ head/usr.bin/calendar/calendar.1    Wed Oct 28 13:06:39 2020        (=
r367103)
> @@ -346,11 +346,9 @@ double-check the start and end time of solar and lun=
ar
>  .Sh BUGS
>  The
>  .Nm
> -internal cpp does not correctly do #ifndef and will discard the rest
> -of the file if a #ifndef is triggered.
> -It also has a maximum of 50 include file and/or 100 #defines
> -and only recognises #include, #define and
> -#ifndef.
> +internal cpp does not support nested conditions and will continue
> +parsing of the input file on the next #endif even in nested contexts.
> +It does only recognise #include, #define, #ifdef and #ifndef.
>  .Pp
>  There is no possibility to properly specify the local position
>  needed for solar and lunar calculations.
>
> Modified: head/usr.bin/calendar/io.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> --- head/usr.bin/calendar/io.c  Wed Oct 28 11:54:09 2020        (r367102)
> +++ head/usr.bin/calendar/io.c  Wed Oct 28 13:06:39 2020        (r367103)
> @@ -212,6 +212,21 @@ token(char *line, FILE *out, bool *skip)
>                 return (T_OK);
>         }
>
> +       if (strncmp(line, "ifdef", 5) =3D=3D 0) {
> +               walk =3D line + 6;
> +               trimlr(&walk);
> +

I think you wanted to step walk forward 5 instead of 6 here



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACNAnaERLh7NvWQ45FZd_s94rApwzyDpah2APP3m=VbfBZrTgg>