diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-09-30 17:01:47 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2009-09-30 17:01:47 +0300 |
commit | 71b28b43f831d62fe3a5acdb61b5cfec23f39ac6 (patch) | |
tree | 34bcc40727715537270948df5b67af7f71ee9ece | |
parent | c1b69f5eae1bb4dfb32f5afe7cbcdb99c9c4693e (diff) | |
download | mailfromd-71b28b43f831d62fe3a5acdb61b5cfec23f39ac6.tar.gz mailfromd-71b28b43f831d62fe3a5acdb61b5cfec23f39ac6.tar.bz2 |
Fix handling of #require.
* mfd/gram.y (%union): New member `string'.
(SHARPREQR): New token.
(require: SHARPREQR): New rule.
* mfd/lex.l: Fix handling of #require.
* po/POTFILES.in: Add missing files.
-rw-r--r-- | mfd/gram.y | 6 | ||||
-rw-r--r-- | mfd/lex.l | 5 | ||||
-rw-r--r-- | po/POTFILES.in | 44 |
3 files changed, 50 insertions, 5 deletions
@@ -344,6 +344,7 @@ _create_alias(void *item, void *data) } progspecial; mu_list_t list; struct import_rule_list import_rule_list; + char *string; }; %token <locus> ACT_ACCEPT ACT_REJECT ACT_TEMPFAIL ACT_CONTINUE ACT_DISCARD @@ -364,6 +365,7 @@ _create_alias(void *item, void *data) %token <function> FUNCTION FUNCTION_PROC FUNCTION_P %token <type> TYPE %token <var> VARIABLE +%token <string> SHARPREQR %token BOGUS %left CONCAT @@ -489,6 +491,10 @@ require : REQUIRE literal { require_module($2->text, $4.head); } + | SHARPREQR + { + parse_require($1); + } ; imports : literal @@ -320,7 +320,10 @@ ICONST {LOCUS}|{VCONST}|{STATEDIR}|{PREPROC} } ^[ \t]*#[ \t]*require[ \t].*\n { parse_warning(_("#require is deprecated, use `require' or `from ... import' instead")); - parse_require(yytext); + /* parse_require cannot be called directly from lexer to avoid + switching module context in the middle of grammar rule. */ + yylval.string = yytext; + return SHARPREQR; } /* End-of-line comments */ #.*\n { advance_line(); } diff --git a/po/POTFILES.in b/po/POTFILES.in index 5d98ca16..e5e6fbe3 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -34,6 +34,10 @@ gacopyz/smfi.c # libmf.a lib/version.c lib/symtab.c +lib/transform.c +lib/proctitle.c +lib/utils.c +lib/userprivs.c # Smap smap/smap.c @@ -44,38 +48,70 @@ mfd/optab.opc mfd/gram.y mfd/lex.l +mfd/bi_body.m4 +mfd/bi_ctype.m4 +mfd/bi_curhdr.m4 mfd/bi_db.m4 mfd/bi_dns.m4 +mfd/bi_geoip.m4 +mfd/bi_gethostname.m4 +mfd/bi_getopt.m4 +mfd/bi_getpw.m4 +mfd/bi_gettext.m4 +mfd/bi_header.m4 mfd/bi_io.m4 mfd/bi_ipaddr.m4 +mfd/bi_macro.m4 mfd/bi_mail.m4 -mfd/bi_other.m4 +mfd/bi_mbox.m4 +mfd/bi_msg.m4 +mfd/bi_mudebug.m4 mfd/bi_poll.m4 +mfd/bi_rcpt.m4 mfd/bi_sa.m4 +mfd/bi_sieve.m4 mfd/bi_spf.m4 +mfd/bi_sprintf.m4 mfd/bi_string.m4 mfd/bi_system.m4 +mfd/bi_other.m4 mfd/bi_vars.m4 +mfd/bi_qrnt.m4 +mfd/appinit.c +mfd/debug.c mfd/cache.c +mfd/dnscache.c mfd/db.c mfd/dns.c mfd/dnsbase.c -mfd/dnscache.c -mfd/drivers.c mfd/engine.c +mfd/gram.y +mfd/lex.l mfd/main.c +mfd/mf-status.c mfd/mu_dbm.c +mfd/optab.c +mfd/optab.h +mfd/pp.c +mfd/pragma.c mfd/prog.c -mfd/rate.c +mfd/prog.h mfd/spf.c mfd/stack.c mfd/symbols.c +mfd/rate.c +mfd/tbf_rate.c mtasim/mtasim.c mtasim/openat-die.c +pies/depmap.c +pies/limits.c +pies/meta1gram.y +pies/meta1lex.l pies/pies.c pies/progman.c +pies/socket.c pmult/pmult.c |