2005-05-26 Bruno Haible
* data/yacc.c: Include when NLS is enabled.
(BISON_I18N): Renamed from _. Use dcgettext when NLS is enabled.
* po/POTFILES.in: Remove autogenerated file src/parse-gram.c.
* skeleton-po: New directory.
* skeleton-po/Makefile.in.in: New file, copied from po/.
* skeleton-po/Rules-quot: Likewise.
* skeleton-po/quot.sed: Likewise.
* skeleton-po/boldquot.sed: Likewise.
* skeleton-po/address@hidden: Likewise.
* skeleton-po/address@hidden: Likewise.
* skeleton-po/insert-header.sin: Likewise.
* skeleton-po/remove-potcdate.sin: Likewise.
* skeleton-po/Makevars: New file.
* skeleton-po/POTFILES.in: New file.
* skeleton-po/LINGUAS: New file.
* skeleton-po/de.po: New file.
* data/bison-po: New directory.
* data/bison-po/Makefile.am: New file.
* data/Makefile.am (bisonpodir, bisonpo_DATA): New variables.
* m4/bison.m4: New file.
* Makefile.am (SUBDIRS): Add skeleton-po.
(aclocaldir, aclocal_DATA): New variables.
* configure.ac: Add AC_CONFIG_FILES of skeleton-po/Makefile.in.
Define aclocaldir.
* src/getargs.c (usage): Document --print-localedir option.
(PRINT_LOCALEDIR_OPTION): New enum item.
(long_options): Add --print-localedir option.
(getargs): Handle --print-localedir option.
* doc/bison.texinfo (Bison Parser): Remove paragraph about _().
(Internationalization): New section.
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/data/yacc.c bison-2.0a/data/yacc.c
*** bison-2.0a.orig/data/yacc.c 2005-05-21 19:12:32.000000000 +0200
--- bison-2.0a/data/yacc.c 2005-05-26 13:23:27.000000000 +0200
***************
*** 261,266 ****
--- 261,271 ----
#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
+ #if ENABLE_NLS && defined PACKAGE && (defined (__STDC__) || defined (__cplusplus))
+ # include
+ #endif
+
+
#if (! defined (yyoverflow) \
&& (! defined (__cplusplus) \
|| (]b4_location_if([[defined (YYLTYPE_IS_TRIVIAL) && YYLTYPE_IS_TRIVIAL \
***************
*** 388,395 ****
#endif
/* INFRINGES ON USER NAME SPACE */
! #ifndef _
! # define _(msgid) msgid
#endif
# ifdef YYPRINT
--- 393,404 ----
#endif
/* INFRINGES ON USER NAME SPACE */
! #ifndef BISON_I18N
! # if ENABLE_NLS && defined PACKAGE && (defined (__STDC__) || defined (__cplusplus))
! # define BISON_I18N(msgid) dgettext (PACKAGE "-bison", msgid)
! # else
! # define BISON_I18N(msgid) msgid
! # endif
#endif
# ifdef YYPRINT
***************
*** 509,515 ****
} \
else \
{ \
! yyerror (]b4_yyerror_args[_("syntax error: cannot back up")); \
YYERROR; \
} \
while (0)
--- 518,524 ----
} \
else \
{ \
! yyerror (]b4_yyerror_args[BISON_I18N("syntax error: cannot back up")); \
YYERROR; \
} \
while (0)
***************
*** 603,609 ****
[[short int *bottom], [bottom]],
[[short int *top], [top]])[
{
! YYFPRINTF (stderr, _("Stack now"));
for (/* Nothing. */; bottom <= top; ++bottom)
YYFPRINTF (stderr, " %d", *bottom);
YYFPRINTF (stderr, "\n");
--- 612,618 ----
[[short int *bottom], [bottom]],
[[short int *top], [top]])[
{
! YYFPRINTF (stderr, BISON_I18N("Stack now"));
for (/* Nothing. */; bottom <= top; ++bottom)
YYFPRINTF (stderr, " %d", *bottom);
YYFPRINTF (stderr, "\n");
***************
*** 625,631 ****
{
int yyi;
unsigned int yylno = yyrline[yyrule];
! YYFPRINTF (stderr, _("Reducing stack by rule %d (line %u), "),
yyrule - 1, yylno);
/* Print the symbols being reduced, and their result. */
for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
--- 634,640 ----
{
int yyi;
unsigned int yylno = yyrline[yyrule];
! YYFPRINTF (stderr, BISON_I18N("Reducing stack by rule %d (line %u), "),
yyrule - 1, yylno);
/* Print the symbols being reduced, and their result. */
for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
***************
*** 894,900 ****
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
be undefined if yyoverflow is a macro. */
! yyoverflow (_("parser stack overflow"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
]b4_location_if([ &yyls1, yysize * sizeof (*yylsp),])[
--- 903,909 ----
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
be undefined if yyoverflow is a macro. */
! yyoverflow (BISON_I18N("parser stack overflow"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
]b4_location_if([ &yyls1, yysize * sizeof (*yylsp),])[
***************
*** 934,947 ****
yyvsp = yyvs + yysize - 1;
]b4_location_if([ yylsp = yyls + yysize - 1;])[
! YYDPRINTF ((stderr, _("Stack size increased to %lu\n"),
(unsigned long int) yystacksize));
if (yyss + yystacksize - 1 <= yyssp)
YYABORT;
}
! YYDPRINTF ((stderr, _("Entering state %d\n"), yystate));
goto yybackup;
--- 943,956 ----
yyvsp = yyvs + yysize - 1;
]b4_location_if([ yylsp = yyls + yysize - 1;])[
! YYDPRINTF ((stderr, BISON_I18N("Stack size increased to %lu\n"),
(unsigned long int) yystacksize));
if (yyss + yystacksize - 1 <= yyssp)
YYABORT;
}
! YYDPRINTF ((stderr, BISON_I18N("Entering state %d\n"), yystate));
goto yybackup;
***************
*** 965,983 ****
/* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
if (yychar == YYEMPTY)
{
! YYDPRINTF ((stderr, _("Reading a token: ")));
yychar = YYLEX;
}
if (yychar <= YYEOF)
{
yychar = yytoken = YYEOF;
! YYDPRINTF ((stderr, _("Now at end of input.\n")));
}
else
{
yytoken = YYTRANSLATE (yychar);
! YY_SYMBOL_PRINT (_("Next token is"), yytoken, &yylval, &yylloc);
}
/* If the proper action on seeing token YYTOKEN is to reduce or to
--- 974,992 ----
/* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
if (yychar == YYEMPTY)
{
! YYDPRINTF ((stderr, BISON_I18N("Reading a token: ")));
yychar = YYLEX;
}
if (yychar <= YYEOF)
{
yychar = yytoken = YYEOF;
! YYDPRINTF ((stderr, BISON_I18N("Now at end of input.\n")));
}
else
{
yytoken = YYTRANSLATE (yychar);
! YY_SYMBOL_PRINT (BISON_I18N("Next token is"), yytoken, &yylval, &yylloc);
}
/* If the proper action on seeing token YYTOKEN is to reduce or to
***************
*** 998,1004 ****
YYACCEPT;
/* Shift the look-ahead token. */
! YY_SYMBOL_PRINT (_("Shifting"), yytoken, &yylval, &yylloc);
/* Discard the token being shifted unless it is eof. */
if (yychar != YYEOF)
--- 1007,1013 ----
YYACCEPT;
/* Shift the look-ahead token. */
! YY_SYMBOL_PRINT (BISON_I18N("Shifting"), yytoken, &yylval, &yylloc);
/* Discard the token being shifted unless it is eof. */
if (yychar != YYEOF)
***************
*** 1106,1116 ****
#if 0
/* This is so xgettext sees the translatable formats that are
constructed on the fly. */
! _("syntax error, unexpected %s");
! _("syntax error, unexpected %s, expecting %s");
! _("syntax error, unexpected %s, expecting %s or %s");
! _("syntax error, unexpected %s, expecting %s or %s or %s");
! _("syntax error, unexpected %s, expecting %s or %s or %s or %s");
#endif
char *yyfmt;
char const *yyf;
--- 1115,1125 ----
#if 0
/* This is so xgettext sees the translatable formats that are
constructed on the fly. */
! BISON_I18N("syntax error, unexpected %s");
! BISON_I18N("syntax error, unexpected %s, expecting %s");
! BISON_I18N("syntax error, unexpected %s, expecting %s or %s");
! BISON_I18N("syntax error, unexpected %s, expecting %s or %s or %s");
! BISON_I18N("syntax error, unexpected %s, expecting %s or %s or %s or %s");
#endif
char *yyfmt;
char const *yyf;
***************
*** 1153,1159 ****
yyprefix = yyor;
}
! yyf = _(yyformat);
yysize1 = yysize + strlen (yyf);
yysize_overflow |= yysize1 < yysize;
yysize = yysize1;
--- 1162,1168 ----
yyprefix = yyor;
}
! yyf = BISON_I18N(yyformat);
yysize1 = yysize + strlen (yyf);
yysize_overflow |= yysize1 < yysize;
yysize = yysize1;
***************
*** 1184,1194 ****
YYSTACK_FREE (yymsg);
}
else
! yyerror (]b4_yyerror_args[_("syntax error; also memory exhausted"));
}
else
#endif /* YYERROR_VERBOSE */
! yyerror (]b4_yyerror_args[_("syntax error"));
}
]b4_location_if([[ yyerror_range[0] = yylloc;]])[
--- 1193,1203 ----
YYSTACK_FREE (yymsg);
}
else
! yyerror (]b4_yyerror_args[BISON_I18N("syntax error; also memory exhausted"));
}
else
#endif /* YYERROR_VERBOSE */
! yyerror (]b4_yyerror_args[BISON_I18N("syntax error"));
}
]b4_location_if([[ yyerror_range[0] = yylloc;]])[
***************
*** 1207,1213 ****
}
else
{
! yydestruct (_("Error: discarding"), yytoken, &yylval]b4_location_if([, &yylloc])[);
yychar = YYEMPTY;
}
}
--- 1216,1222 ----
}
else
{
! yydestruct (BISON_I18N("Error: discarding"), yytoken, &yylval]b4_location_if([, &yylloc])[);
yychar = YYEMPTY;
}
}
***************
*** 1261,1267 ****
YYABORT;
]b4_location_if([[ yyerror_range[0] = *yylsp;]])[
! yydestruct (_("Error: popping"), yystos[yystate], yyvsp]b4_location_if([, yylsp])[);
YYPOPSTACK;
yystate = *yyssp;
YY_STACK_PRINT (yyss, yyssp);
--- 1270,1276 ----
YYABORT;
]b4_location_if([[ yyerror_range[0] = *yylsp;]])[
! yydestruct (BISON_I18N("Error: popping"), yystos[yystate], yyvsp]b4_location_if([, yylsp])[);
YYPOPSTACK;
yystate = *yyssp;
YY_STACK_PRINT (yyss, yyssp);
***************
*** 1279,1285 ****
*++yylsp = yyloc;]])[
/* Shift the error token. */
! YY_SYMBOL_PRINT (_("Shifting"), yystos[yyn], yyvsp, yylsp);
yystate = yyn;
goto yynewstate;
--- 1288,1294 ----
*++yylsp = yyloc;]])[
/* Shift the error token. */
! YY_SYMBOL_PRINT (BISON_I18N("Shifting"), yystos[yyn], yyvsp, yylsp);
yystate = yyn;
goto yynewstate;
***************
*** 1304,1317 ****
| yyoverflowlab -- parser overflow comes here. |
`----------------------------------------------*/
yyoverflowlab:
! yyerror (]b4_yyerror_args[_("parser stack overflow"));
yyresult = 2;
/* Fall through. */
#endif
yyreturn:
if (yychar != YYEOF && yychar != YYEMPTY)
! yydestruct (_("Error: discarding lookahead"),
yytoken, &yylval]b4_location_if([, &yylloc])[);
if (yyssp != yyss)
for (;;)
--- 1313,1326 ----
| yyoverflowlab -- parser overflow comes here. |
`----------------------------------------------*/
yyoverflowlab:
! yyerror (]b4_yyerror_args[BISON_I18N("parser stack overflow"));
yyresult = 2;
/* Fall through. */
#endif
yyreturn:
if (yychar != YYEOF && yychar != YYEMPTY)
! yydestruct (BISON_I18N("Error: discarding lookahead"),
yytoken, &yylval]b4_location_if([, &yylloc])[);
if (yyssp != yyss)
for (;;)
***************
*** 1320,1326 ****
YYPOPSTACK;
if (yyssp == yyss)
break;
! yydestruct (_("Error: popping"),
yystos[*yyssp], yyvsp]b4_location_if([, yylsp])[);
}
#ifndef yyoverflow
--- 1329,1335 ----
YYPOPSTACK;
if (yyssp == yyss)
break;
! yydestruct (BISON_I18N("Error: popping"),
yystos[*yyssp], yyvsp]b4_location_if([, yylsp])[);
}
#ifndef yyoverflow
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/po/POTFILES.in bison-2.0a/po/POTFILES.in
*** bison-2.0a.orig/po/POTFILES.in 2005-04-14 01:55:19.000000000 +0200
--- bison-2.0a/po/POTFILES.in 2005-05-26 12:14:58.000000000 +0200
***************
*** 4,10 ****
src/getargs.c
src/gram.c
src/main.c
- src/parse-gram.c
src/parse-gram.y
src/print.c
src/reader.c
--- 4,9 ----
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/skeleton-po/Makefile.in.in bison-2.0a/skeleton-po/Makefile.in.in
*** bison-2.0a.orig/skeleton-po/Makefile.in.in 1970-01-01 01:00:00.000000000 +0100
--- bison-2.0a/skeleton-po/Makefile.in.in 2005-05-26 12:21:34.000000000 +0200
***************
*** 0 ****
--- 1,353 ----
+ # Makefile for PO directory in any package using GNU gettext.
+ # Copyright (C) 1995-1997, 2000-2003 by Ulrich Drepper
+ #
+ # This file can be copied and used freely without restrictions. It can
+ # be used in projects which are not available under the GNU General Public
+ # License but which still want to provide support for the GNU gettext
+ # functionality.
+ # Please note that the actual code of GNU gettext is covered by the GNU
+ # General Public License and is *not* in the public domain.
+
+ PACKAGE = @PACKAGE@
+ VERSION = @VERSION@
+
+ SHELL = /bin/sh
+ @SET_MAKE@
+
+ srcdir = @srcdir@
+ top_srcdir = @top_srcdir@
+ VPATH = @srcdir@
+
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ datadir = @datadir@
+ localedir = $(datadir)/locale
+ gettextsrcdir = $(datadir)/gettext/po
+
+ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+ MKINSTALLDIRS = @MKINSTALLDIRS@
+ mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
+
+ GMSGFMT = @GMSGFMT@
+ MSGFMT = @MSGFMT@
+ XGETTEXT = @XGETTEXT@
+ MSGMERGE = msgmerge
+ MSGMERGE_UPDATE = @MSGMERGE@ --update
+ MSGINIT = msginit
+ MSGCONV = msgconv
+ MSGFILTER = msgfilter
+
+ POFILES = @POFILES@
+ GMOFILES = @GMOFILES@
+ UPDATEPOFILES = @UPDATEPOFILES@
+ DUMMYPOFILES = @DUMMYPOFILES@
+ DISTFILES.common = Makefile.in.in remove-potcdate.sin \
+ $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
+ DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \
+ $(POFILES) $(GMOFILES) \
+ $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
+
+ POTFILES = \
+
+ CATALOGS = @CATALOGS@
+
+ # Makevars gets inserted here. (Don't remove this line!)
+
+ .SUFFIXES:
+ .SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update
+
+ .po.mo:
+ @echo "$(MSGFMT) -c -o $@ $<"; \
+ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
+
+ .po.gmo:
+ @lang=`echo $* | sed -e 's,.*/,,'`; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
+ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+
+ .sin.sed:
+ sed -e '/^#/d' $< > t-$@
+ mv t-$@ $@
+
+
+ all: address@hidden@
+
+ all-yes: stamp-po
+ all-no:
+
+ # stamp-po is a timestamp denoting the last time at which the CATALOGS have
+ # been loosely updated. Its purpose is that when a developer or translator
+ # checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
+ # "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
+ # invocations of "make" will do nothing. This timestamp would not be necessary
+ # if updating the $(CATALOGS) would always touch them; however, the rule for
+ # $(POFILES) has been designed to not touch files that don't need to be
+ # changed.
+ stamp-po: $(srcdir)/$(DOMAIN).pot
+ test -z "$(CATALOGS)" || $(MAKE) $(CATALOGS)
+ @echo "touch stamp-po"
+ @echo timestamp > stamp-poT
+ @mv stamp-poT stamp-po
+
+ # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
+ # otherwise packages like GCC can not be built if only parts of the source
+ # have been downloaded.
+
+ # This target rebuilds $(DOMAIN).pot; it is an expensive operation.
+ # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
+ $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
+ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
+ --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder='$(COPYRIGHT_HOLDER)' \
+ --msgid-bugs-address='$(MSGID_BUGS_ADDRESS)'
+ test ! -f $(DOMAIN).po || { \
+ if test -f $(srcdir)/$(DOMAIN).pot; then \
+ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
+ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
+ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
+ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
+ else \
+ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
+ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ fi; \
+ else \
+ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ fi; \
+ }
+
+ # This rule has no dependencies: we don't need to update $(DOMAIN).pot at
+ # every "make" invocation, only create it when it is missing.
+ # Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
+ $(srcdir)/$(DOMAIN).pot:
+ $(MAKE) $(DOMAIN).pot-update
+
+ # This target rebuilds a PO file if $(DOMAIN).pot has changed.
+ # Note that a PO file is not touched if it doesn't need to be changed.
+ $(POFILES): $(srcdir)/$(DOMAIN).pot
+ @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
+ cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
+
+
+ install: install-exec install-data
+ install-exec:
+ install-data: address@hidden@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+ for file in $(DISTFILES.common) Makevars.template; do \
+ $(INSTALL_DATA) $(srcdir)/$$file \
+ $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ for file in Makevars; do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+ install-data-no: all
+ install-data-yes: all
+ $(mkinstalldirs) $(DESTDIR)$(datadir)
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkinstalldirs) $(DESTDIR)$$dir; \
+ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
+ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
+ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
+ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ if test -n "$$lc"; then \
+ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ for file in *; do \
+ if test -f $$file; then \
+ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ fi; \
+ done); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ else \
+ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ :; \
+ else \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ fi; \
+ fi; \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
+ fi; \
+ done; \
+ done
+
+ install-strip: install
+
+ installdirs: installdirs-exec installdirs-data
+ installdirs-exec:
+ installdirs-data: address@hidden@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+ else \
+ : ; \
+ fi
+ installdirs-data-no:
+ installdirs-data-yes:
+ $(mkinstalldirs) $(DESTDIR)$(datadir)
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkinstalldirs) $(DESTDIR)$$dir; \
+ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ if test -n "$$lc"; then \
+ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ for file in *; do \
+ if test -f $$file; then \
+ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ fi; \
+ done); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ else \
+ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ :; \
+ else \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ fi; \
+ fi; \
+ fi; \
+ done; \
+ done
+
+ # Define this as empty until I found a useful application.
+ installcheck:
+
+ uninstall: uninstall-exec uninstall-data
+ uninstall-exec:
+ uninstall-data: address@hidden@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ for file in $(DISTFILES.common) Makevars.template; do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+ uninstall-data-no:
+ uninstall-data-yes:
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ done; \
+ done
+
+ check: all
+
+ info dvi ps pdf html tags TAGS ctags CTAGS ID:
+
+ mostlyclean:
+ rm -f remove-potcdate.sed
+ rm -f stamp-poT
+ rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
+ rm -fr *.o
+
+ clean: mostlyclean
+
+ distclean: clean
+ rm -f Makefile Makefile.in POTFILES *.mo
+
+ maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f stamp-po $(GMOFILES)
+
+ distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+ dist distdir:
+ $(MAKE) update-po
+ @$(MAKE) dist2
+ # This is a separate target because 'update-po' must be executed before.
+ dist2: $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ dists="$$dists Makevars.template"; \
+ fi; \
+ if test -f $(srcdir)/ChangeLog; then \
+ dists="$$dists ChangeLog"; \
+ fi; \
+ for i in 0 1 2 3 4 5 6 7 8 9; do \
+ if test -f $(srcdir)/ChangeLog.$$i; then \
+ dists="$$dists ChangeLog.$$i"; \
+ fi; \
+ done; \
+ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
+ for file in $$dists; do \
+ if test -f $$file; then \
+ cp -p $$file $(distdir); \
+ else \
+ cp -p $(srcdir)/$$file $(distdir); \
+ fi; \
+ done
+
+ update-po: Makefile
+ $(MAKE) $(DOMAIN).pot-update
+ test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
+ $(MAKE) update-gmo
+
+ # General rule for updating PO files.
+
+ .nop.po-update:
+ @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
+ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
+ tmpdir=`pwd`; \
+ echo "$$lang:"; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+ cd $(srcdir); \
+ if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
+ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ rm -f $$tmpdir/$$lang.new.po; \
+ else \
+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ :; \
+ else \
+ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ exit 1; \
+ fi; \
+ fi; \
+ else \
+ echo "msgmerge for $$lang.po failed!" 1>&2; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ fi
+
+ $(DUMMYPOFILES):
+
+ update-gmo: Makefile $(GMOFILES)
+ @:
+
+ Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/address@hidden CONFIG_HEADERS= \
+ $(SHELL) ./config.status
+
+ force:
+
+ # Tell versions [3.59,3.63) of GNU make not to export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/skeleton-po/Rules-quot bison-2.0a/skeleton-po/Rules-quot
*** bison-2.0a.orig/skeleton-po/Rules-quot 1970-01-01 01:00:00.000000000 +0100
--- bison-2.0a/skeleton-po/Rules-quot 2004-09-27 22:43:21.000000000 +0200
***************
*** 0 ****
--- 1,42 ----
+ # Special Makefile rules for English message catalogs with quotation marks.
+
+ DISTFILES.common.extra1 = quot.sed boldquot.sed address@hidden address@hidden insert-header.sin Rules-quot
+
+ .SUFFIXES: .insert-header .po-update-en
+
+ address@hidden: address@hidden
+ address@hidden: address@hidden
+
+ .insert-header.po-update-en:
+ @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
+ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
+ tmpdir=`pwd`; \
+ echo "$$lang:"; \
+ ll=`echo $$lang | sed -e 's/@.*//'`; \
+ LC_ALL=C; export LC_ALL; \
+ cd $(srcdir); \
+ if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
+ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ rm -f $$tmpdir/$$lang.new.po; \
+ else \
+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ :; \
+ else \
+ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ exit 1; \
+ fi; \
+ fi; \
+ else \
+ echo "creation of $$lang.po failed!" 1>&2; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ fi
+
+ address@hidden: insert-header.sin
+ sed -e '/^#/d' -e 's/HEADER/address@hidden/g' $(srcdir)/insert-header.sin > address@hidden
+
+ address@hidden: insert-header.sin
+ sed -e '/^#/d' -e 's/HEADER/address@hidden/g' $(srcdir)/insert-header.sin > address@hidden
+
+ mostlyclean: mostlyclean-quot
+ mostlyclean-quot:
+ rm -f *.insert-header
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/skeleton-po/address@hidden bison-2.0a/skeleton-po/address@hidden
*** bison-2.0a.orig/skeleton-po/address@hidden 1970-01-01 01:00:00.000000000 +0100
--- bison-2.0a/skeleton-po/address@hidden 2004-09-27 22:43:22.000000000 +0200
***************
*** 0 ****
--- 1,22 ----
+ # All this catalog "translates" are quotation characters.
+ # The msgids must be ASCII and therefore cannot contain real quotation
+ # characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+ # and double quote (0x22). These substitutes look strange; see
+ # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+ #
+ # This catalog translates grave accent (0x60) and apostrophe (0x27) to
+ # left single quotation mark (U+2018) and right single quotation mark (U+2019).
+ # It also translates pairs of apostrophe (0x27) to
+ # left single quotation mark (U+2018) and right single quotation mark (U+2019)
+ # and pairs of quotation mark (0x22) to
+ # left double quotation mark (U+201C) and right double quotation mark (U+201D).
+ #
+ # When output to an UTF-8 terminal, the quotation characters appear perfectly.
+ # When output to an ISO-8859-1 terminal, the single quotation marks are
+ # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+ # grave/acute accent (by libiconv), and the double quotation marks are
+ # transliterated to 0x22.
+ # When output to an ASCII terminal, the single quotation marks are
+ # transliterated to apostrophes, and the double quotation marks are
+ # transliterated to 0x22.
+ #
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/skeleton-po/address@hidden bison-2.0a/skeleton-po/address@hidden
*** bison-2.0a.orig/skeleton-po/address@hidden 1970-01-01 01:00:00.000000000 +0100
--- bison-2.0a/skeleton-po/address@hidden 2004-09-27 22:43:21.000000000 +0200
***************
*** 0 ****
--- 1,25 ----
+ # All this catalog "translates" are quotation characters.
+ # The msgids must be ASCII and therefore cannot contain real quotation
+ # characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+ # and double quote (0x22). These substitutes look strange; see
+ # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+ #
+ # This catalog translates grave accent (0x60) and apostrophe (0x27) to
+ # left single quotation mark (U+2018) and right single quotation mark (U+2019).
+ # It also translates pairs of apostrophe (0x27) to
+ # left single quotation mark (U+2018) and right single quotation mark (U+2019)
+ # and pairs of quotation mark (0x22) to
+ # left double quotation mark (U+201C) and right double quotation mark (U+201D).
+ #
+ # When output to an UTF-8 terminal, the quotation characters appear perfectly.
+ # When output to an ISO-8859-1 terminal, the single quotation marks are
+ # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+ # grave/acute accent (by libiconv), and the double quotation marks are
+ # transliterated to 0x22.
+ # When output to an ASCII terminal, the single quotation marks are
+ # transliterated to apostrophes, and the double quotation marks are
+ # transliterated to 0x22.
+ #
+ # This catalog furthermore displays the text between the quotation marks in
+ # bold face, assuming the VT100/XTerm escape sequences.
+ #
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/skeleton-po/insert-header.sin bison-2.0a/skeleton-po/insert-header.sin
*** bison-2.0a.orig/skeleton-po/insert-header.sin 1970-01-01 01:00:00.000000000 +0100
--- bison-2.0a/skeleton-po/insert-header.sin 2004-09-27 22:43:22.000000000 +0200
***************
*** 0 ****
--- 1,23 ----
+ # Sed script that inserts the file called HEADER before the header entry.
+ #
+ # At each occurrence of a line starting with "msgid ", we execute the following
+ # commands. At the first occurrence, insert the file. At the following
+ # occurrences, do nothing. The distinction between the first and the following
+ # occurrences is achieved by looking at the hold space.
+ /^msgid /{
+ x
+ # Test if the hold space is empty.
+ s/m/m/
+ ta
+ # Yes it was empty. First occurrence. Read the file.
+ r HEADER
+ # Output the file's contents by reading the next line. But don't lose the
+ # current line while doing this.
+ g
+ N
+ bb
+ :a
+ # The hold space was nonempty. Following occurrences. Do nothing.
+ x
+ :b
+ }
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/skeleton-po/remove-potcdate.sin bison-2.0a/skeleton-po/remove-potcdate.sin
*** bison-2.0a.orig/skeleton-po/remove-potcdate.sin 1970-01-01 01:00:00.000000000 +0100
--- bison-2.0a/skeleton-po/remove-potcdate.sin 2004-09-27 22:43:22.000000000 +0200
***************
*** 0 ****
--- 1,19 ----
+ # Sed script that remove the POT-Creation-Date line in the header entry
+ # from a POT file.
+ #
+ # The distinction between the first and the following occurrences of the
+ # pattern is achieved by looking at the hold space.
+ /^"POT-Creation-Date: .*"$/{
+ x
+ # Test if the hold space is empty.
+ s/P/P/
+ ta
+ # Yes it was empty. First occurrence. Remove the line.
+ g
+ d
+ bb
+ :a
+ # The hold space was nonempty. Following occurrences. Do nothing.
+ x
+ :b
+ }
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/skeleton-po/Makevars bison-2.0a/skeleton-po/Makevars
*** bison-2.0a.orig/skeleton-po/Makevars 1970-01-01 01:00:00.000000000 +0100
--- bison-2.0a/skeleton-po/Makevars 2005-05-26 12:31:31.000000000 +0200
***************
*** 0 ****
--- 1,41 ----
+ # Makefile variables for PO directory in any package using GNU gettext.
+
+ # Usually the message domain is the same as the package name.
+ DOMAIN = bison-skeleton
+
+ # These two variables depend on the location of this directory.
+ subdir = skeleton-po
+ top_builddir = ..
+
+ # These options get passed to xgettext.
+ XGETTEXT_OPTIONS = --keyword=BISON_I18N
+
+ # This is the copyright holder that gets inserted into the header of the
+ # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
+ # package. (Note that the msgstr strings, extracted from the package's
+ # sources, belong to the copyright holder of the package.) Translators are
+ # expected to transfer the copyright for their translations to this person
+ # or entity, or to disclaim their copyright. The empty string stands for
+ # the public domain; in this case the translators are expected to disclaim
+ # their copyright.
+ COPYRIGHT_HOLDER = Free Software Foundation, Inc.
+
+ # This is the email address or URL to which the translators shall report
+ # bugs in the untranslated strings:
+ # - Strings which are not entire sentences, see the maintainer guidelines
+ # in the GNU gettext documentation, section 'Preparing Strings'.
+ # - Strings which use unclear terms or require additional context to be
+ # understood.
+ # - Strings which make invalid assumptions about notation of date, time or
+ # money.
+ # - Pluralisation problems.
+ # - Incorrect English spelling.
+ # - Incorrect formatting.
+ # It can be your email address, or a mailing list address where translators
+ # can write to without being subscribed, or the URL of a web page through
+ # which the translators can contact you.
+ MSGID_BUGS_ADDRESS = address@hidden
+
+ # This is the list of locale categories, beyond LC_MESSAGES, for which the
+ # message catalogs shall be used. It is usually empty.
+ EXTRA_LOCALE_CATEGORIES =
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/skeleton-po/POTFILES.in bison-2.0a/skeleton-po/POTFILES.in
*** bison-2.0a.orig/skeleton-po/POTFILES.in 1970-01-01 01:00:00.000000000 +0100
--- bison-2.0a/skeleton-po/POTFILES.in 2005-05-26 12:28:44.000000000 +0200
***************
*** 0 ****
--- 1 ----
+ data/yacc.c
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/skeleton-po/LINGUAS bison-2.0a/skeleton-po/LINGUAS
*** bison-2.0a.orig/skeleton-po/LINGUAS 1970-01-01 01:00:00.000000000 +0100
--- bison-2.0a/skeleton-po/LINGUAS 2005-05-26 12:33:37.000000000 +0200
***************
*** 0 ****
--- 1 ----
+ de
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/skeleton-po/bison-skeleton.pot bison-2.0a/skeleton-po/bison-skeleton.pot
*** bison-2.0a.orig/skeleton-po/bison-skeleton.pot 1970-01-01 01:00:00.000000000 +0100
--- bison-2.0a/skeleton-po/bison-skeleton.pot 2005-05-26 13:24:16.000000000 +0200
***************
*** 0 ****
--- 1,105 ----
+ # SOME DESCRIPTIVE TITLE.
+ # Copyright (C) YEAR Free Software Foundation, Inc.
+ # This file is distributed under the same license as the PACKAGE package.
+ # FIRST AUTHOR , YEAR.
+ #
+ #, fuzzy
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: PACKAGE VERSION\n"
+ "Report-Msgid-Bugs-To: address@hidden"
+ "POT-Creation-Date: 2005-05-26 13:24+0200\n"
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+ "Last-Translator: FULL NAME \n"
+ "Language-Team: LANGUAGE \n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=CHARSET\n"
+ "Content-Transfer-Encoding: 8bit\n"
+
+ #: data/yacc.c:521
+ msgid "syntax error: cannot back up"
+ msgstr ""
+
+ #: data/yacc.c:615
+ msgid "Stack now"
+ msgstr ""
+
+ #: data/yacc.c:637
+ #, c-format
+ msgid "Reducing stack by rule %d (line %u), "
+ msgstr ""
+
+ #: data/yacc.c:906 data/yacc.c:1316
+ msgid "parser stack overflow"
+ msgstr ""
+
+ #: data/yacc.c:946
+ #, c-format
+ msgid "Stack size increased to %lu\n"
+ msgstr ""
+
+ #: data/yacc.c:953
+ #, c-format
+ msgid "Entering state %d\n"
+ msgstr ""
+
+ #: data/yacc.c:977
+ msgid "Reading a token: "
+ msgstr ""
+
+ #: data/yacc.c:984
+ msgid "Now at end of input.\n"
+ msgstr ""
+
+ #: data/yacc.c:989
+ msgid "Next token is"
+ msgstr ""
+
+ #: data/yacc.c:1010 data/yacc.c:1291
+ msgid "Shifting"
+ msgstr ""
+
+ #: data/yacc.c:1118
+ #, c-format
+ msgid "syntax error, unexpected %s"
+ msgstr ""
+
+ #: data/yacc.c:1119
+ #, c-format
+ msgid "syntax error, unexpected %s, expecting %s"
+ msgstr ""
+
+ #: data/yacc.c:1120
+ #, c-format
+ msgid "syntax error, unexpected %s, expecting %s or %s"
+ msgstr ""
+
+ #: data/yacc.c:1121
+ #, c-format
+ msgid "syntax error, unexpected %s, expecting %s or %s or %s"
+ msgstr ""
+
+ #: data/yacc.c:1122
+ #, c-format
+ msgid "syntax error, unexpected %s, expecting %s or %s or %s or %s"
+ msgstr ""
+
+ #: data/yacc.c:1196
+ msgid "syntax error; also memory exhausted"
+ msgstr ""
+
+ #: data/yacc.c:1200
+ msgid "syntax error"
+ msgstr ""
+
+ #: data/yacc.c:1219
+ msgid "Error: discarding"
+ msgstr ""
+
+ #: data/yacc.c:1273 data/yacc.c:1332
+ msgid "Error: popping"
+ msgstr ""
+
+ #: data/yacc.c:1323
+ msgid "Error: discarding lookahead"
+ msgstr ""
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/skeleton-po/de.po bison-2.0a/skeleton-po/de.po
*** bison-2.0a.orig/skeleton-po/de.po 1970-01-01 01:00:00.000000000 +0100
--- bison-2.0a/skeleton-po/de.po 2005-05-27 00:07:19.000000000 +0200
***************
*** 0 ****
--- 1,109 ----
+ # translation of de.po to Deutsch
+ # German translations for GNU Bison package
+ # German messages for GNU Bison.
+ # Copyright (C) 2005 Free Software Foundation, Inc.
+ # This file is distributed under the same license as the GNU Bison package.
+ # Bruno Haible , 2005.
+ #
+ msgid ""
+ msgstr ""
+ "Project-Id-Version: de\n"
+ "Report-Msgid-Bugs-To: address@hidden"
+ "POT-Creation-Date: 2005-05-26 13:24+0200\n"
+ "PO-Revision-Date: 2005-05-26 12:54+0200\n"
+ "Last-Translator: Bruno Haible \n"
+ "Language-Team: Deutsch \n"
+ "MIME-Version: 1.0\n"
+ "Content-Type: text/plain; charset=UTF-8\n"
+ "Content-Transfer-Encoding: 8bit\n"
+ "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+ "X-Generator: KBabel 1.0.2\n"
+
+ #: data/yacc.c:521
+ msgid "syntax error: cannot back up"
+ msgstr ""
+
+ #: data/yacc.c:615
+ msgid "Stack now"
+ msgstr "Stapel jetzt:"
+
+ #: data/yacc.c:637
+ #, c-format
+ msgid "Reducing stack by rule %d (line %u), "
+ msgstr "Stapel verkleinert durch Regel %d (Zeile %u), "
+
+ #: data/yacc.c:906 data/yacc.c:1316
+ msgid "parser stack overflow"
+ msgstr "Ãberlauf des Parser-Stapels"
+
+ #: data/yacc.c:946
+ #, c-format
+ msgid "Stack size increased to %lu\n"
+ msgstr "Stapel wurde auf %lu Elemente vergröÃert.\n"
+
+ #: data/yacc.c:953
+ #, c-format
+ msgid "Entering state %d\n"
+ msgstr "Eintritt in Zustand %d\n"
+
+ #: data/yacc.c:977
+ msgid "Reading a token: "
+ msgstr "Lese ein Token: "
+
+ #: data/yacc.c:984
+ msgid "Now at end of input.\n"
+ msgstr "Am Ende des Eingabestroms angelangt.\n"
+
+ #: data/yacc.c:989
+ msgid "Next token is"
+ msgstr "Das nächste Token ist"
+
+ #: data/yacc.c:1010 data/yacc.c:1291
+ msgid "Shifting"
+ msgstr "Schieben"
+
+ #: data/yacc.c:1118
+ #, c-format
+ msgid "syntax error, unexpected %s"
+ msgstr "Syntaxfehler, %s wird hier nicht erwartet"
+
+ #: data/yacc.c:1119
+ #, c-format
+ msgid "syntax error, unexpected %s, expecting %s"
+ msgstr "Syntaxfehler, %s wird hier nicht erwartet, sondern %s"
+
+ #: data/yacc.c:1120
+ #, c-format
+ msgid "syntax error, unexpected %s, expecting %s or %s"
+ msgstr "Syntaxfehler, %s wird hier nicht erwartet, sondern %s oder %s"
+
+ #: data/yacc.c:1121
+ #, c-format
+ msgid "syntax error, unexpected %s, expecting %s or %s or %s"
+ msgstr "Syntaxfehler, %s wird hier nicht erwartet, sondern %s oder %s oder %s"
+
+ #: data/yacc.c:1122
+ #, c-format
+ msgid "syntax error, unexpected %s, expecting %s or %s or %s or %s"
+ msgstr ""
+ "Syntaxfehler, %s wird hier nicht erwartet, sondern %s oder %s oder %s oder %s"
+
+ #: data/yacc.c:1196
+ msgid "syntax error; also memory exhausted"
+ msgstr "Syntaxfehler und kein Speicher mehr"
+
+ #: data/yacc.c:1200
+ msgid "syntax error"
+ msgstr "Syntaxfehler"
+
+ #: data/yacc.c:1219
+ msgid "Error: discarding"
+ msgstr "Fehler, ignoriere"
+
+ #: data/yacc.c:1273 data/yacc.c:1332
+ msgid "Error: popping"
+ msgstr "Fehler, entferne"
+
+ #: data/yacc.c:1323
+ msgid "Error: discarding lookahead"
+ msgstr "Fehler, ignoriere bereits gelesenes Token"
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/data/bison-po/Makefile.am bison-2.0a/data/bison-po/Makefile.am
*** bison-2.0a.orig/data/bison-po/Makefile.am 1970-01-01 01:00:00.000000000 +0100
--- bison-2.0a/data/bison-po/Makefile.am 2005-05-26 22:24:37.000000000 +0200
***************
*** 0 ****
--- 1,142 ----
+ ## Makefile for the bison-po directory
+ ## Copyright (C) 2005 Free Software Foundation, Inc.
+ ##
+ ## This program is free software; you can redistribute it and/or modify
+ ## it under the terms of the GNU General Public License as published by
+ ## the Free Software Foundation; either version 2, or (at your option)
+ ## any later version.
+ ##
+ ## This program is distributed in the hope that it will be useful,
+ ## but WITHOUT ANY WARRANTY; without even the implied warranty of
+ ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ ## GNU General Public License for more details.
+ ##
+ ## You should have received a copy of the GNU General Public License
+ ## along with this program; if not, write to the Free Software Foundation,
+ ## Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+ ## Process this file with automake to produce Makefile.in.
+
+ # These rules assume that the version of bison doesn't change between
+ # 'configure' and 'make install'. After installing a new version of bison,
+ # you need to "make distclean" and re-configure.
+
+ BISON_DOMAIN = $(PACKAGE)-bison
+
+ localedir = $(datadir)/locale
+
+ all-local: LINGUAS
+
+ # The LINGUAS file contains the list of languages for which translations are
+ # provided. It also serves as a stamp file. It and the *.mo files are
+ # updated everytime bison is invoked.
+ LINGUAS: @BISON_BUILT_FILES@
+ if test @BISON_USE_NLS@ = yes; then \
+ linguas=""; \
+ for bisoncat in "@BISON_LOCALEDIR@"/*/LC_MESSAGES/bison-skeleton.mo; do \
+ lang=`echo "$$bisoncat" | sed -e 's,^.*/\([^/]*\)/[^/]*/[^/]*$$,\1,'` ; \
+ cp -p "@BISON_LOCALEDIR@"/$$lang/LC_MESSAGES/bison-skeleton.mo $(srcdir)/$$lang.mo; \
+ linguas="$$linguas$$lang "; \
+ done; \
+ echo "$$linguas" > $(srcdir)/LINGUAS; \
+ fi
+
+ install-data-local: address@hidden@
+ install-data-bison-nls-no: all-local
+ install-data-bison-nls-yes: all-local
+ @linguas=""; \
+ for presentlang in `cat $(srcdir)/LINGUAS`; do \
+ useit=no; \
+ if test "%UNSET%" != "@USER_LINGUAS@"; then \
+ desiredlanguages="@USER_LINGUAS@"; \
+ for desiredlang in $$desiredlanguages; do \
+ case "$$desiredlang" in \
+ "$$presentlang"*) useit=yes;; \
+ esac; \
+ done; \
+ else \
+ useit=yes; \
+ fi; \
+ if test $$useit = yes; then \
+ lang=$$presentlang; \
+ dir="$(localedir)"/$$lang/LC_MESSAGES; cat=$(BISON_DOMAIN).mo; \
+ $(mkinstalldirs) "$(DESTDIR)$$dir"; \
+ if test -r $$lang.mo; then realcat=$$lang.mo; else realcat=$(srcdir)/$$lang.mo; fi; \
+ $(INSTALL_DATA) "$$realcat" "$(DESTDIR)$$dir"/$$cat; \
+ echo "installing $$realcat as $(DESTDIR)$$dir/$$cat"; \
+ fi; \
+ done
+
+ installdirs-local: address@hidden@
+ installdirs-bison-nls-no: all-local
+ installdirs-bison-nls-yes: all-local
+ @linguas=""; \
+ for presentlang in `cat $(srcdir)/LINGUAS`; do \
+ useit=no; \
+ if test "%UNSET%" != "@USER_LINGUAS@"; then \
+ desiredlanguages="@USER_LINGUAS@"; \
+ for desiredlang in $$desiredlanguages; do \
+ case "$$desiredlang" in \
+ "$$presentlang"*) useit=yes;; \
+ esac; \
+ done; \
+ else \
+ useit=yes; \
+ fi; \
+ if test $$useit = yes; then \
+ lang=$$presentlang; \
+ echo "$(mkinstalldirs) $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES"; \
+ $(mkinstalldirs) "$(DESTDIR)$(localedir)"/$$lang/LC_MESSAGES; \
+ fi; \
+ done
+
+ uninstall-local: address@hidden@
+ uninstall-bison-nls-no: all-local
+ uninstall-bison-nls-yes: all-local
+ @linguas=""; \
+ for presentlang in `cat $(srcdir)/LINGUAS`; do \
+ useit=no; \
+ if test "%UNSET%" != "@USER_LINGUAS@"; then \
+ desiredlanguages="@USER_LINGUAS@"; \
+ for desiredlang in $$desiredlanguages; do \
+ case "$$desiredlang" in \
+ "$$presentlang"*) useit=yes;; \
+ esac; \
+ done; \
+ else \
+ useit=yes; \
+ fi; \
+ if test $$useit = yes; then \
+ lang=$$presentlang; \
+ echo "rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(BISON_DOMAIN).mo"; \
+ rm -f "$(DESTDIR)$(localedir)"/$$lang/LC_MESSAGES/$(BISON_DOMAIN).mo; \
+ fi; \
+ done
+
+ # We have to handle Makefile.am and Makefile.in here, because since
+ # automake-1.5 it is impossible to extend the 'distdir' rule: a distdir
+ # declaration overrides the default distdir rule, and a distdir-local
+ # declaration is ignored.
+ # Everything would be so easy if we could write
+ # EXTRA_DIST = \
+ # `if test -f $(srcdir)/LINGUAS; then \
+ # echo LINGUAS; \
+ # for lang in \`cat $(srcdir)/LINGUAS\`; do echo $$lang.mo; done; \
+ # fi`
+ distdir:
+ for file in Makefile.am Makefile.in; do \
+ cp -p $(srcdir)/$$file $(distdir)/$$file || exit 1; \
+ done; \
+ if test -f $(srcdir)/LINGUAS; then \
+ for file in LINGUAS; do \
+ if test -f $$file; then d=.; else d=$(srcdir); fi; \
+ cp -p $$d/$$file $(distdir)/$$file || exit 1; \
+ done; \
+ for lang in `cat $(srcdir)/LINGUAS`; do \
+ file=$$lang.mo; \
+ if test -f $$file; then d=.; else d=$(srcdir); fi; \
+ cp -p $$d/$$file $(distdir)/$$file || exit 1; \
+ done; \
+ fi
+
+ MAINTAINERCLEANFILES = LINGUAS *.mo
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/data/Makefile.am bison-2.0a/data/Makefile.am
*** bison-2.0a.orig/data/Makefile.am 2005-05-14 08:52:28.000000000 +0200
--- bison-2.0a/data/Makefile.am 2005-05-26 22:37:34.000000000 +0200
***************
*** 1,4 ****
! ## Copyright (C) 2002 Free Software Foundation, Inc.
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
--- 1,4 ----
! ## Copyright (C) 2002, 2005 Free Software Foundation, Inc.
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
***************
*** 19,21 ****
--- 19,24 ----
m4sugardir = $(pkgdatadir)/m4sugar
dist_m4sugar_DATA = m4sugar/m4sugar.m4
+
+ bisonpodir = $(pkgdatadir)/bison-po
+ bisonpo_DATA = bison-po/Makefile.am
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/m4/bison.m4 bison-2.0a/m4/bison.m4
*** bison-2.0a.orig/m4/bison.m4 1970-01-01 01:00:00.000000000 +0100
--- bison-2.0a/m4/bison.m4 2005-05-26 21:48:17.000000000 +0200
***************
*** 0 ****
--- 1,63 ----
+ # bison.m4 serial 1 (bison-2.1)
+ dnl Copyright (C) 2005 Free Software Foundation, Inc.
+ dnl This file is free software; the Free Software Foundation
+ dnl gives unlimited permission to copy and/or distribute it,
+ dnl with or without modifications, as long as this notice is preserved.
+
+ dnl From Bruno Haible.
+
+ dnl Support for internationalization of bison-generated parsers.
+
+ dnl BISON_I18N(BISON_BUILT_FILES)
+ dnl should be used in configure.ac, after AM_GNU_GETTEXT.
+ dnl It sets BISON_USE_NLS to yes or no. If yes, it also sets BISON_LOCALEDIR
+ dnl to indicate where to find the bison-skeleton.mo files and USER_LINGUAS
+ dnl to indicate the languages for which the user wants support.
+ AC_DEFUN([BISON_I18N],
+ [
+ if test -z "$USE_NLS"; then
+ echo "The BISON-I18N macro is used without being preceded by AM-GNU-GETTEXT." 1>&2
+ exit 1
+ fi
+ BISON_BUILT_FILES=
+ for f in $1; do
+ BISON_BUILT_FILES="$BISON_BUILT_FILES ../$f"
+ done
+ AC_SUBST(BISON_BUILT_FILES)
+ BISON_LOCALEDIR=
+ if test "$USE_NLS" = yes; then
+ dnl AC_PROG_YACC sets the YACC variable; other macros set the BISON variable.
+ if test -n "$YACC"; then
+ case "$YACC" in
+ *bison*)
+ if ($YACC --print-localedir) >/dev/null 2>&1; then
+ BISON_LOCALEDIR=`$YACC --print-localedir`
+ fi
+ ;;
+ esac
+ else
+ if test -n "$BISON"; then
+ if test "$BISON" != ":"; then
+ if ($BISON --print-localedir) >/dev/null 2>&1; then
+ BISON_LOCALEDIR=`$BISON --print-localedir`
+ fi
+ fi
+ fi
+ fi
+ if test -n "$BISON_LOCALEDIR"; then
+ AC_SUBST(BISON_LOCALEDIR)
+ USER_LINGUAS="${LINGUAS-%UNSET%}"
+ AC_SUBST(USER_LINGUAS)
+ if test -n "$USER_LINGUAS"; then
+ BISON_USE_NLS=yes
+ else
+ BISON_USE_NLS=no
+ fi
+ else
+ BISON_USE_NLS=no
+ fi
+ else
+ BISON_USE_NLS=no
+ fi
+ AC_SUBST(BISON_USE_NLS)
+ ])
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/Makefile.am bison-2.0a/Makefile.am
*** bison-2.0a.orig/Makefile.am 2005-05-14 08:52:28.000000000 +0200
--- bison-2.0a/Makefile.am 2005-05-26 13:04:41.000000000 +0200
***************
*** 1,5 ****
## Process this file with automake to produce Makefile.in -*-Makefile-*-
! ## Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
--- 1,5 ----
## Process this file with automake to produce Makefile.in -*-Makefile-*-
! ## Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
***************
*** 18,24 ****
ACLOCAL_AMFLAGS = -I m4
! SUBDIRS = config po lib data src doc tests
EXTRA_DIST = REFERENCES OChangeLog Makefile.maint GNUmakefile Makefile.cfg
--- 18,28 ----
ACLOCAL_AMFLAGS = -I m4
! SUBDIRS = config po skeleton-po lib data src doc tests
!
! # Files installed for use by automake.
! aclocaldir = @aclocaldir@
! aclocal_DATA = m4/bison.m4
EXTRA_DIST = REFERENCES OChangeLog Makefile.maint GNUmakefile Makefile.cfg
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/configure.ac bison-2.0a/configure.ac
*** bison-2.0a.orig/configure.ac 2005-05-22 08:44:16.000000000 +0200
--- bison-2.0a/configure.ac 2005-05-26 13:06:45.000000000 +0200
***************
*** 107,115 ****
# gnulib and gettext.
GNULIB_AUTOCONF_SNIPPET
! # We use po/Makevars.template, so we need at least gettext 0.12.
AM_GNU_GETTEXT_VERSION([0.12])
# Initialize the test suite.
AC_CONFIG_TESTDIR(tests)
AC_CONFIG_FILES([tests/Makefile tests/atlocal])
--- 107,121 ----
# gnulib and gettext.
GNULIB_AUTOCONF_SNIPPET
! # We use po/Makevars, so we need at least gettext 0.12.
AM_GNU_GETTEXT_VERSION([0.12])
+ # Internationalized parsers.
+ AC_CONFIG_FILES([skeleton-po/Makefile.in])
+ # Autoconf macros for packages using internationalized parsers.
+ aclocaldir='${datadir}/aclocal'
+ AC_SUBST(aclocaldir)
+
# Initialize the test suite.
AC_CONFIG_TESTDIR(tests)
AC_CONFIG_FILES([tests/Makefile tests/atlocal])
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/src/getargs.c bison-2.0a/src/getargs.c
*** bison-2.0a.orig/src/getargs.c 2005-05-14 08:52:29.000000000 +0200
--- bison-2.0a/src/getargs.c 2005-05-26 13:16:14.000000000 +0200
***************
*** 207,215 ****
fputs (_("\
Operation modes:\n\
! -h, --help display this help and exit\n\
! -V, --version output version information and exit\n\
! -y, --yacc emulate POSIX yacc\n"), stdout);
putc ('\n', stdout);
fputs (_("\
--- 207,216 ----
fputs (_("\
Operation modes:\n\
! -h, --help display this help and exit\n\
! -V, --version output version information and exit\n\
! --print-localedir output directory containing locale-dependent data\n\
! -y, --yacc emulate POSIX yacc\n"), stdout);
putc ('\n', stdout);
fputs (_("\
***************
*** 289,302 ****
/* Values for long options that do not have single-letter equivalents. */
enum
{
! LOCATIONS_OPTION = CHAR_MAX + 1
};
static struct option const long_options[] =
{
/* Operation modes. */
! { "help", no_argument, 0, 'h' },
! { "version", no_argument, 0, 'V' },
/* Parser. */
{ "name-prefix", required_argument, 0, 'p' },
--- 290,305 ----
/* Values for long options that do not have single-letter equivalents. */
enum
{
! LOCATIONS_OPTION = CHAR_MAX + 1,
! PRINT_LOCALEDIR_OPTION = CHAR_MAX + 2
};
static struct option const long_options[] =
{
/* Operation modes. */
! { "help", no_argument, 0, 'h' },
! { "version", no_argument, 0, 'V' },
! { "print-localedir", no_argument, 0, PRINT_LOCALEDIR_OPTION },
/* Parser. */
{ "name-prefix", required_argument, 0, 'p' },
***************
*** 364,369 ****
--- 367,376 ----
version ();
exit (EXIT_SUCCESS);
+ case PRINT_LOCALEDIR_OPTION:
+ printf ("%s\n", LOCALEDIR);
+ exit (EXIT_SUCCESS);
+
case 'g':
/* Here, the -g and --graph=FILE options are differentiated. */
graph_flag = true;
diff -r -c3 --unidirectional-new-file bison-2.0a.orig/doc/bison.texinfo bison-2.0a/doc/bison.texinfo
*** bison-2.0a.orig/doc/bison.texinfo 2005-05-14 08:52:28.000000000 +0200
--- bison-2.0a/doc/bison.texinfo 2005-05-27 00:02:57.000000000 +0200
***************
*** 242,247 ****
--- 242,249 ----
which reads tokens.
* Error Reporting:: You must supply a function @code{yyerror}.
* Action Features:: Special features for use in actions.
+ * Internationalization:: How to let the parser speak in the user's
+ native language.
The Lexical Analyzer Function @code{yylex}
***************
*** 1166,1179 ****
arrange for it to call @code{yyparse} or the parser will never run.
@xref{Interface, ,Parser C-Language Interface}.
! If your code defines a C preprocessor macro @code{_} (a single
! underscore), Bison assumes that it can be used to translate
! English-language strings to the user's preferred language using a
! function-like syntax, e.g., @code{_("syntax error")}. Otherwise,
! Bison defines a no-op macro by that name that merely returns its
! argument, so strings are not translated.
!
! Aside from @code{_} and the token type names and the symbols in the actions you
write, all symbols defined in the Bison parser file itself
begin with @samp{yy} or @samp{YY}. This includes interface functions
such as the lexical analyzer function @code{yylex}, the error reporting
--- 1168,1174 ----
arrange for it to call @code{yyparse} or the parser will never run.
@xref{Interface, ,Parser C-Language Interface}.
! Aside from the token type names and the symbols in the actions you
write, all symbols defined in the Bison parser file itself
begin with @samp{yy} or @samp{YY}. This includes interface functions
such as the lexical analyzer function @code{yylex}, the error reporting
***************
*** 4229,4234 ****
--- 4224,4231 ----
which reads tokens.
* Error Reporting:: You must supply a function @code{yyerror}.
* Action Features:: Special features for use in actions.
+ * Internationalization:: How to let the parser speak in the user's
+ native language.
@end menu
@node Parser Function
***************
*** 4791,4796 ****
--- 4788,4891 ----
Tracking Locations}.
@end deffn
+ @node Internationalization
+ @section Parser Internationalization
+ @cindex internationalization
+ @cindex i18n
+ @cindex NLS
+ @cindex gettext
+ @cindex bison-po
+
+ The parser can print diagnostics -- error messages and tracing messages --.
+ By default, they appear in English. However, Bison also supports to output
+ them in the user's native language. To make this work, the user only has
+ to set the usual environment variables; see the @file{ABOUT-NLS} file for
+ details. The maintainer of a package that uses a bison-generated parser
+ enables the internationalization of the parser's output through the
+ following steps. Here we assume a package that uses GNU autoconf and
+ GNU automake.
+
+ @enumerate
+ @item
+ In the top-level directory of your package, create a subdirectory called
+ @samp{bison-po}. It will contain localization files borrowed from the
+ Bison installation.
+ @smallexample
+ $ mkdir bison-po
+ @end smallexample
+
+ @item
+ Into the @samp{bison-po} directory, copy the @samp{Makefile.am} file
+ installed by Bison under @samp{share/bison/bison-po/Makefile.am} in Bison's
+ installation directory. For example, if the @file{bison} program is
+ installed as @file{/usr/local/bin/bison}, you will find the file under
+ @file{/usr/local/share/bison/bison-po/Makefile.am}.
+ @smallexample
+ $ cp /usr/local/share/bison/bison-po/Makefile.am bison-po/Makefile.am
+ @end smallexample
+ The other files in this directory will be created later, automatically.
+
+ @item
+ Into the directory containing the GNU autoconf macros used by the package
+ -- often called @file{m4/} -- copy the @samp{bison.m4} file installed by
+ Bison under @samp{share/aclocal/bison.m4} in Bison's installation directory.
+ Example:
+ @smallexample
+ $ cp /usr/local/share/aclocal/bison.m4 m4/bison.m4
+ @end smallexample
+
+ @item
+ In the top-level @file{Makefile.am}, add @samp{bison-po} to the SUBDIRS
+ variable and, if present, also to the DIST_SUBDIRS variable. It should
+ be mentioned after directories that contain .y files that are processed
+ by Bison, such as -- usually -- @samp{src}. Example:
+ @smallexample
+ SUBDIRS = doc lib src po bison-po tests
+ @end smallexample
+
+ @item
+ In the top-level @file{configure.ac}, add @samp{bison-po/Makefile} to the
+ @code{AC_CONFIG_FILES} command that lists the autogenerated Makefiles.
+ Example:
+ @smallexample
+ AC_CONFIG_FILES([doc/Makefile lib/Makefile src/Makefile \
+ po/Makefile.in bison-po/Makefile tests/Makefile])
+ @end smallexample
+
+ @item
+ In the top-level @file{configure.ac}, after the @code{AM_GNU_GETTEXT}
+ invocation, add an invocation of @code{BISON_I18N}. As argument, you pass
+ a space-separated list of parser code files generated by Bison. Example:
+ @smallexample
+ BISON_I18N([rpcalc.c])
+ @end smallexample
+ The @code{BISON_I18N} macro is defined in @file{bison.m4} that you copied
+ earlier. It will cause @samp{configure} to find the values of some variables
+ that are used by @code{bison-po/Makefile.am}.
+
+ @item
+ In the @code{main()} function of your program, designate the directory where
+ Bison's message catalogs will be copied to, through a call to
+ @samp{bindtextdomain}. By convention, the @code{gettext} domain name is
+ formed by contatenating the package name and a @code{"-bison"} suffix.
+ Typically this call will occur next to the call for the package's own
+ message domain. Example:
+ @smallexample
+ bindtextdomain (PACKAGE, LOCALEDIR);
+ bindtextdomain (PACKAGE "-bison", LOCALEDIR);
+ @end smallexample
+ Note that here we rely on @samp{PACKAGE} to be defined as a literal string
+ macro through @code{config.h}, and on @samp{LOCALEDIR} to be defined as a
+ literal string through the @file{Makefile}.
+
+ @item
+ Finally, invoke @samp{autoreconf}, to rebuild the autoconf/automake generated
+ build infrastructure.
+ @smallexample
+ $ autoreconf
+ @end smallexample
+ @end enumerate
+
@node Algorithm
@chapter The Bison Parser Algorithm
*** /dev/null 2003-09-23 19:59:22.000000000 +0200
--- bison-2.0a/skeleton-po/quot.sed 2004-09-27 22:43:22.000000000 +0200
***************
*** 0 ****
--- 1,6 ----
+ s/"\([^"]*\)"/â\1â/g
+ s/`\([^`']*\)'/â\1â/g
+ s/ '\([^`']*\)' / â\1â /g
+ s/ '\([^`']*\)'$/ â\1â/g
+ s/^'\([^`']*\)' /â\1â /g
+ s/ââ/""/g
*** /dev/null 2003-09-23 19:59:22.000000000 +0200
--- bison-2.0a/skeleton-po/boldquot.sed 2004-09-27 22:43:21.000000000 +0200
***************
*** 0 ****
--- 1,10 ----
+ s/"\([^"]*\)"/â\1â/g
+ s/`\([^`']*\)'/â\1â/g
+ s/ '\([^`']*\)' / â\1â /g
+ s/ '\([^`']*\)'$/ â\1â/g
+ s/^'\([^`']*\)' /â\1â /g
+ s/ââ/""/g
+ s/â/â[1m/g
+ s/â/[0mâ/g
+ s/â/â[1m/g
+ s/â/[0mâ/g