Return to BSD News archive
Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!bunyip.cc.uq.oz.au!munnari.oz.au!constellation!news.uoknor.edu!ns1.nodak.edu!netnews.nwnet.net!uw-beaver!uhog.mit.edu!MathWorks.Com!news.duke.edu!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!agate!asami From: asami@cs.berkeley.edu (Satoshi ASAMI) Newsgroups: comp.os.386bsd.questions Subject: Re: ctwm 3.0 Date: 11 May 94 09:59:18 Organization: CS Div. - EECS, University of California, Berkeley, CA 94720 Lines: 56 Message-ID: <ASAMI.94May11095918@forgery.cs.berkeley.edu> References: <2qordl$e7c@wzv.win.tue.nl> <1994May11.080109.20519@olivetti.nl> <NJW.94May11105325@wilma.cs.city.ac.uk> <2qqnr7$3vd@wzv.win.tue.nl> NNTP-Posting-Host: forgery.cs.berkeley.edu In-reply-to: guido@gvr.win.tue.nl's message of 11 May 1994 13:50:31 GMT In article <2qqnr7$3vd@wzv.win.tue.nl> guido@gvr.win.tue.nl (Guido van Rooij) writes: * The reason is that in lex.l, input() is undefined and redefined to some * internal read function. * However, in freebsd's lex, input() is not a define, neither as yywrap(). * I can only conclude that ctwm's lex.l is completely broken in respect to * POSIX. (they also use the yylineno int). Great! Following your hints, I finally got piewm (like tvtwm but with round "pie" menus) to read the startup file! Following are the patches to lex.l. It may or may not apply to other *twm variants per se, but you get the idea. I'll package it up and put it on freefall some day. Satoshi --- --- lex.l.org Sun Oct 4 00:50:35 1992 +++ lex.l Wed May 11 09:47:49 1994 @@ -43,6 +43,18 @@ extern int ParseError; + +#undef YY_INPUT +#define YY_INPUT(buf,result,max_size) \ + { \ + int res = (*twmInputFunc)() ; \ + if (res == NULL) result = YY_NULL ; \ + else { \ + buf[0] = res ; \ + result = 1 ; \ + } \ + } + %} string \"([^"]|\\.)*\" @@ -88,13 +100,13 @@ ParseError = 1; } %% -yywrap() { return(1);} +/* yywrap() { return(1);} */ #undef unput -#undef input +/* #undef input */ #undef output #undef feof #define unput(c) twmUnput(c) -#define input() (*twmInputFunc)() +/* #define input() (*twmInputFunc)() */ #define output(c) TwmOutput(c) #define feof() (1)