aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2009-09-30 17:01:47 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2009-09-30 17:01:47 +0300
commit71b28b43f831d62fe3a5acdb61b5cfec23f39ac6 (patch)
tree34bcc40727715537270948df5b67af7f71ee9ece
parentc1b69f5eae1bb4dfb32f5afe7cbcdb99c9c4693e (diff)
downloadmailfromd-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.y6
-rw-r--r--mfd/lex.l5
-rw-r--r--po/POTFILES.in44
3 files changed, 50 insertions, 5 deletions
diff --git a/mfd/gram.y b/mfd/gram.y
index 26ebc445..4080fa7c 100644
--- a/mfd/gram.y
+++ b/mfd/gram.y
@@ -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
diff --git a/mfd/lex.l b/mfd/lex.l
index 12b1baa0..4ccf7a0a 100644
--- a/mfd/lex.l
+++ b/mfd/lex.l
@@ -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

Return to:

Send suggestions and report system problems to the System administrator.