vile
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vile] cannot compile 9.8s -- sh-filt.c


From: hymie
Subject: Re: [vile] cannot compile 9.8s -- sh-filt.c
Date: Thu, 16 Mar 2017 19:39:36 -0400

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
a message, and I'm not even sure I use whatever this is.  But vile
compiled.  Yay!)

Thank you for the quick turn-around.

--hymie!    http://lactose.homelinux.net/~hymie    address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]