[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [vile] cannot compile 9.8s -- sh-filt.c
From: |
Thomas Dickey |
Subject: |
Re: [vile] cannot compile 9.8s -- sh-filt.c |
Date: |
Fri, 17 Mar 2017 04:33:06 -0400 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, Mar 16, 2017 at 07:39:36PM -0400, address@hidden wrote:
> Thomas Dickey writes:
>
> >On Thu, Mar 16, 2017 at 05:19:28PM -0400, address@hidden wrote:
> >> Thomas Dickey writes:
> >> >On Thu, Mar 16, 2017 at 12:30:19PM -0400, address@hidden
> >> >wrote:
> >> >>
> >> >> I'm trying to compile vile 9.8s, but I'm getting stuck here:
> >> >>
> >> >> echo "#include <flt_defs.h>" > sh-filt.c
> >> >> flex -t sh-filt.l >> sh-filt.c
> >> >> /usr/bin/m4:stdin:2872: ERROR: end of file in string
> >> >> makefile:248: recipe for target 'sh-filt.o' failed
> >> >> make[1]: *** [sh-filt.o] Error 1
> >> >> make[1]: Leaving directory '/home/hymie/vile-9.8s/filters'
> >> >
> >> >That's a bug in "new" flex (reported earlier this year against 2.6.1),
> >> >which sees "[[" in a comment and gets confused:
> >> >
> >> >#define LEN_KSH_TEST_DOWN 2 /* "[[" */
> >> >#define LEN_BACKTIC1_DOWN 2 /* "$(" */
> >> >#define LEN_BACKTIC2_DOWN 3 /* "$((" */
> >> >#define LEN_BRACEGRP_DOWN 3 /* "$("{space} */
> >>
> >> I adjusted the offending line
> >>
> >> #define LEN_KSH_TEST_DOWN 2
> >>
> >> but I still get the same error
> >>
> >> cd filters && make prefix=3D/usr/local DESTDIR=3D all
> >> make[1]: Entering directory '/home/hymie/vile-9.8s/filters'
> >> echo "#include <flt_defs.h>" > sh-filt.c
> >> flex -t sh-filt.l >> sh-filt.c
> >> /usr/bin/m4:stdin:2872: ERROR: end of file in string
> >> makefile:248: recipe for target 'sh-filt.o' failed
> >> make[1]: *** [sh-filt.o] Error 1
> >> make[1]: Leaving directory '/home/hymie/vile-9.8s/filters'
> >>
> >> I also found this
> >>
> >> C_INT16 0x[[[:xdigit:]]+
> >>
> >> which appears to have an extra [
> >
> >agreed (odd that neither old/new flex nor lex mentioned this).
> >
> >But following that direction ("new" flex is relying on m4 to do some
> >parsing...), there's another pitfall for its m4-related bug on line 201:
> >
> > FLEX_PRINTF((stderr, "cannot pop '[[' level %d\n", stk_level));
>
> Yay! I replaced it with this:
>
> FLEX_PRINTF((stderr, "cannot pop '\[\[' level %d\n", stk_level));
>
> and it worked.
>
> (I don't know what, if anything, I broke; but it looks like it's just
perhaps some compiler will warn about this
> a message, and I'm not even sure I use whatever this is. But vile
> compiled. Yay!)
>
> Thank you for the quick turn-around.
no problem (report bugs)
--
Thomas E. Dickey <address@hidden>
http://invisible-island.net
ftp://invisible-island.net
signature.asc
Description: Digital signature