diff options
author | Eric S. Raymond <esr@thyrsus.com> | 1999-07-31 21:41:50 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 1999-07-31 21:41:50 +0000 |
commit | 72fc2c255f364507fbc87717cd54b9541f2f5189 (patch) | |
tree | 9b739f816b027ba8ee891e0ae064904f21166b3d | |
parent | 79739caa154403260496d3b0c33f47ef0cf21447 (diff) | |
download | fetchmail-72fc2c255f364507fbc87717cd54b9541f2f5189.tar.gz fetchmail-72fc2c255f364507fbc87717cd54b9541f2f5189.tar.bz2 fetchmail-72fc2c255f364507fbc87717cd54b9541f2f5189.zip |
The big lexer fix.
svn path=/trunk/; revision=2519
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | fetchmail-FAQ.html | 29 | ||||
-rw-r--r-- | rcfile_l.l | 23 |
3 files changed, 34 insertions, 22 deletions
@@ -13,7 +13,9 @@ fetchmail-5.0.6 (): * Russion internationalization support (but I couldn't read the contributor name in the headers!) * Update of the French internationalization support by Guy Brand. -* Fix for the `nokeep' problem by Robert de Bath. +* Lexer fix for the `nokeep' problem by Robert de Bath. +* Lexer states added to tell the lexer to return a string after a + `username' or `password' keyword, courtesy of Brian Boutel. * Interface option fix from Bill Currie. There are 267 people on fetchmail-friends and 420 on fetchmail-announce. diff --git a/fetchmail-FAQ.html b/fetchmail-FAQ.html index 1b9693fe..5aaecd29 100644 --- a/fetchmail-FAQ.html +++ b/fetchmail-FAQ.html @@ -10,7 +10,7 @@ <table width="100%" cellpadding=0><tr> <td width="30%">Back to <a href="index.html">Fetchmail Home Page</a> <td width="30%" align=center>To <a href="/~esr/sitemap.html">Site Map</a> -<td width="30%" align=right>$Date: 1999/07/31 20:44:54 $ +<td width="30%" align=right>$Date: 1999/07/31 21:41:50 $ </table> <HR> <H1>Frequently Asked Questions About Fetchmail</H1> @@ -666,27 +666,26 @@ Do similarly for any `<CODE>monitor</CODE>' or `<CODE>batchlimit</CODE>' options <hr> <h2><a name="F2">F2. The .fetchmailrc parser won't accept my all-numeric user name.</a></h2> -So put string quotes around it. :-)<p> +Either upgrade to a post-5.0.5 fetchmail or put string quotes around it. :-)<p> -The configuration file parser treats any all-numeric token as a -number, which will confuse it when it's expecting a name. String -quoting forces the token's class.<p> +The configuration file parser in older fetchmail versions treated any +all-numeric token as a number, which confused it when it was +expecting a name. String quoting forces the token's class.<p> + +The lexical analyzer in 5.0.6 and beyond is smarter and assumes +any token following "username" or "password" is a string. <hr> <h2><a name="F3">F3. The .fetchmailrc parser won't accept my host or username beginning with `no'.</a></h2> -You're caught in an unfortunate crack between the newer-style syntax -for negated options (`no keep', `no rewrite' etc.) and the older style -run-on syntax (`nokeep', `norewrite' etc.).<p> +See <a href="#F2">F2</a> You're caught in an unfortunate crack between +the newer-style syntax for negated options (`no keep', `no rewrite' +etc.) and the older style run-on syntax (`nokeep', `norewrite' +etc.).<p> -You can work around this easily. Just put string quotes around your +Upgrade to a 5.0.6 or later fetchmail, or put string quotes around your token.<p> -I haven't fixed this because there is no good fix for it short of -implementing a token pushback stack in the lexer. That's more -additional complexity than I'm willing to add to banish a very -marginal bug with an easy workaround.<p> - <hr> <h2><a name="F4">F4. I'm migrating from popclient. How do I need to modify my .poprc?</a></h2> @@ -2428,7 +2427,7 @@ inactivity timeout.<p> <table width="100%" cellpadding=0><tr> <td width="30%">Back to <a href="index.html">Fetchmail Home Page</a> <td width="30%" align=center>To <a href="/~esr/sitemap.html">Site Map</a> -<td width="30%" align=right>$Date: 1999/07/31 20:44:54 $ +<td width="30%" align=right>$Date: 1999/07/31 21:41:50 $ </table> <P><ADDRESS>Eric S. Raymond <A HREF="mailto:esr@thyrsus.com"><esr@snark.thyrsus.com></A></ADDRESS> @@ -19,8 +19,19 @@ int prc_lineno = 1; %a 4000 %p 3000 +%s NAME + %% +<NAME>[^=;:, \t\r\n\"\']+ { + char buf[MSGBUFSIZE]; + + escapes(yytext, buf); + yylval.sval = (char *) xstrdup(buf); + BEGIN(0); + return STRING; + } + set { return SET; } logfile { return LOGFILE; } idfile { return IDFILE; } @@ -50,8 +61,8 @@ timeout { return TIMEOUT;} envelope { return ENVELOPE; } qvirtual { return QVIRTUAL; } -user(name)? { return USERNAME; } -pass(word)? { return PASSWORD; } +user(name)? {BEGIN(NAME); return USERNAME; } +pass(word)? {BEGIN(NAME); return PASSWORD; } folder(s)? { return FOLDER; } smtp(host)? { return SMTPHOST; } smtpaddress { return SMTPADDRESS; } @@ -71,12 +82,12 @@ fetchlimit { return FETCHLIMIT; } expunge { return EXPUNGE; } properties { return PROPERTIES; } -is { return IS; } +is { BEGIN(NAME); return IS; } here { return HERE; } there { return THERE; } -to { return TO; } -= { return MAP; } -"*" { return WILDCARD; } +to { BEGIN(NAME); return TO; } += { BEGIN(NAME); return MAP; } +"*" { BEGIN(0); return WILDCARD; } nobouncemail | nouidl | |