Implement @gettext<...@> directive to call gettext from skeletons. It

can be used anywhere including inside arguments of directives of the
form @foo(...@).  Eventually, it should be possible to write an
xgettext-like utility to extract @gettext<...@> text from skeletons.
* data/bison.m4 (b4_check_user_names): Use @gettext<...@> when invoking
b4_warn_at since b4_warn_at doesn't invoke gettext anymore.
* data/glr.cc, data/lalr1.cc: Likewise but for b4_fatal and
b4_complain reporting a push-parsing request or a missing %defines.
* src/scan-skel.l (INITIAL): Recognize `@gettext<' to start...
(SC_AT_GETTEXT_ARG): ... this new start condition where gettext is
invoked.
(SC_AT_DIRECTIVE_ARG): Rename to...
(SC_AT_DIRECTIVE_ARGS): ... this, and recognize `@gettext<' to start
SC_AT_GETTEXT_ARG.
(at_directive_perform): Don't invoke gettext for @warn(...@),
@warn_at(...@), etc.  Instead, let the skeletons decide what should be
passed to @gettext<...@>.
* tests/skeletons.at (@gettext<...@>): New test case.

* tests/skeletons.at (installed skeleton file name): Rename to...
(installed skeleton file names): ... this.
This commit is contained in:
Joel E. Denny
2007-01-18 05:14:59 +00:00
parent a7867f53b3
commit d4bdb91677
8 changed files with 132 additions and 32 deletions

View File

@@ -16,7 +16,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
AT_BANNER([[Skeletons Support.]])
AT_BANNER([[Skeleton Support.]])
## ------------------------------ ##
## relative skeleton file names. ##
@@ -78,11 +78,11 @@ AT_CHECK([[cat input-cmd-line.tab.c]], [[0]],
AT_CLEANUP
## ------------------------------ ##
## installed skeleton file name. ##
## ------------------------------ ##
## ------------------------------- ##
## installed skeleton file names. ##
## ------------------------------- ##
AT_SETUP([[installed skeleton file name]])
AT_SETUP([[installed skeleton file names]])
m4_pushdef([AT_GRAM],
[[%{
@@ -141,3 +141,35 @@ AT_PARSER_CHECK([[./input-gram]], [[1]], [],
m4_popdef([AT_GRAM])
AT_CLEANUP
## ---------------- ##
## @gettext<...@>. ##
## ---------------- ##
AT_SETUP([[@gettext<...@>]])
AT_DATA([[skel.c]],
[[m4@&t@_divert_push(0)d@&t@nl
@output(b4_parser_file_name@)d@&t@nl
b4_warn([[@gettext<cannot close file@>]])d@&t@nl
`@gettext<cannot close file@>'
m4@&t@_divert_pop(0)
]])
AT_DATA([[input.y]],
[[%skeleton "./skel.c"
%%
start: ;
]])
AT_CHECK([[LC_ALL= LC_MESSAGES= LANGUAGE=fr LANG=fr_FR bison input.y]], [[0]],
[],
[[input.y: AVERTISSEMENT: ne peut fermer le fichier
]])
AT_CHECK([[cat input.tab.c]], [[0]],
[[`ne peut fermer le fichier'
]])
AT_CLEANUP