bug-gv
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug-gv] [PATCH v2] avoid make distcheck failing because of gv-i18n.h


From: Bernhard R. Link
Subject: [bug-gv] [PATCH v2] avoid make distcheck failing because of gv-i18n.h
Date: Tue, 22 Feb 2011 11:51:20 +0100
User-agent: Mutt/1.5.18 (2008-05-17)

Make distcheck fails because a gv-i18n.h file is left over
after building and dist-cleaning.

To avoid this make gv-i18n.h not depend on the nls/ directory
(causing rebuilds of this file), but list the languages
to include in a nls/LANGUAGES files.

Additionally move it from EXTRA_DIST to gv_SOURCES proper.

---
Version 2 of this patch should fix some problems when building
directly from git and documents the replacement of .lnk files

 gv/README.TRANSLATION |    7 ++++---
 gv/src/Makefile.am    |    7 ++++---
 gv/src/gv-i18n.pl     |   31 ++++++++++++-------------------
 gv/src/nls/LANGUAGES  |    6 ++++++
 4 files changed, 26 insertions(+), 25 deletions(-)
 create mode 100644 gv/src/nls/LANGUAGES

diff --git a/gv/README.TRANSLATION b/gv/README.TRANSLATION
index 63f89c4..7ef7595 100644
--- a/gv/README.TRANSLATION
+++ b/gv/README.TRANSLATION
@@ -64,7 +64,7 @@ used instead of GNU gv's own strings.
 See my job discription on http://sv.gnu.org/projects/gv for details.
 
 I'll check if they are syntactically correct and copy them to "src/nls" in the
-distribution tarball of GNU gv.
+distribution tarball of GNU gv and update the src/nls/LANGUAGES file.
 
 
 
@@ -76,9 +76,10 @@ distribution tarball of GNU gv.
 
 (A) What to do of more locales share the same translation strings?
 
+src/nls/LANGUAGES can contain aliases for languages.
 Assume "de_CH.utf8" uses the same translation strings as "de_AT.utf8".
-"echo de_AT.utf8 > de_CH.utf8.lnk" will create a translation file for
-"de_CH.utf8" that tells GNU gv to use the strings from the locale "de_AT.utf8".
+"echo 'de_AT.utf8 -> de_CH.utf8' >> LANGUAGES" tells GNU gv to use the
+strings from the locale "de_AT.utf8" for the locale "de_CH.utf8".
 
 
 
diff --git a/gv/src/Makefile.am b/gv/src/Makefile.am
index 9b6c370..c75548d 100644
--- a/gv/src/Makefile.am
+++ b/gv/src/Makefile.am
@@ -14,7 +14,7 @@ appdefaultsdir = $(pkgdatadir)
 
 appdefaults_DATA = ../GV
 
-EXTRA_DIST=ad2c gv_font_res.dat gv_font_res-I18N_mb.dat gv_layout_res.dat 
gv-i18n.h gv-i18n.pl gv_misc_res.dat Aaa_bison.yacc \
+EXTRA_DIST=ad2c gv_font_res.dat gv_font_res-I18N_mb.dat gv_layout_res.dat 
gv-i18n.pl gv_misc_res.dat Aaa_bison.yacc \
            gv_current.xbm gv_doc.xbm gv_empty.xbm gv_even.xbm gv_icon.xbm 
gv_odd.xbm \
            gv_selected.xbm gv_unmark.xbm $(srcdir)/nls/*
 
@@ -144,6 +144,7 @@ gv_SOURCES = Aaa.c \
              AaaP.h \
              gv_message.h \
              types.h \
+             gv-i18n.h \
              gv-update-userconfig.in
 
 BUILT_SOURCES = gv_spartan.h gv_widgetless.h gv_intern_res_unix.h gv_class.h 
gv-i18n.h
@@ -211,8 +212,8 @@ gv_class.h : gv_class.ad
        @echo "creating gv_class.h"
        @sh $(srcdir)/ad2c gv_class.ad > gv_class.h
 
-gv-i18n.h: $(srcdir)/nls $(srcdir)/nls/*
-       perl $(srcdir)/gv-i18n.pl $(srcdir) > gv-i18n.h
+gv-i18n.h: $(srcdir)/nls/LANGUAGES $(srcdir)/nls/*.dat
+       perl $(srcdir)/gv-i18n.pl $(srcdir) > gv-i18n.h || { rm gv-i18n.h ; 
exit 1 ; }
 
 gv_class.ad : $(srcdir)/gv_font_res.dat $(srcdir)/gv_font_res-I18N_mb.dat 
$(srcdir)/gv_layout_res.dat gv_make_res.dat $(srcdir)/gv_misc_res.dat 
$(srcdir)/gv_user_res.dat gv_intern_res_unix.dat
        @echo "creating gv_class.ad"
diff --git a/gv/src/gv-i18n.pl b/gv/src/gv-i18n.pl
index ed6f36c..28358c4 100644
--- a/gv/src/gv-i18n.pl
+++ b/gv/src/gv-i18n.pl
@@ -3,42 +3,35 @@
 $src = ".";
 $src = $ARGV[0] if @ARGV == 1;
 
address@hidden = <$src/nls/*>;
+open(LANGUAGES, '<', "$src/nls/LANGUAGES");
+s!#.*!! for (@languages);
 
-s!^$src/nls/!!g for (@languages);
-
address@hidden = reverse sort @languages;
address@hidden = <LANGUAGES>;
 %lang2 = ();
 
-
 for $lang (@languages)
 {
-   next if $lang !~ m/((\.dat))$/;
+   chomp($lang);
+   next if $lang =~ m/ -> /;
+   next if $lang =~ m/^$/;
 
    $lang2 = $lang;
    $lang2 =~ s/[^a-zA-Z_0-9]/_/g;
-   print "static String gv_nls_${lang2} [] = {\n";
-   system "$src/ad2c $src/nls/$lang";
+   print "static String gv_nls_${lang2}_dat [] = {\n";
+   (system "$src/ad2c '$src/nls/$lang'.dat") == 0 or die "failed to process 
$src/nls/${lang}.dat" ;
    print "0};\n\n";
 }
 
 print "static String* getI18N(char* locale)\n{\n";
 for $lang (@languages)
 {
-   next if $lang !~ m/((\.dat)|(\.lnk))$/;
+   next if $lang =~ m/^$/;
 
    $lang2 = $lang;
-   if ($lang =~ /\.lnk$/ )
-   {
-      open($file, "<", "$src/nls/$lang") or die "Cannot read file $lang";
-      $lang2 = <$file>;
-      chomp $lang2;
-      close($lang);
-   }
+   $lang2 =~ s/^.* -> //g;
    $lang2 =~ s/[^a-zA-Z_0-9]/_/g;
    $lang3 = $lang;
-   $lang3 =~ s/\.lnk$//g;
-   $lang3 =~ s/\.dat$//g;
-   print "   if (!strcmp(locale, \"$lang3\")) return gv_nls_$lang2;\n";
+   $lang3 =~ s/ -> .*$//g;
+   print "   if (!strcmp(locale, \"$lang3\")) return gv_nls_${lang2}_dat;\n";
 }
 print "   return 0;\n}\n";
diff --git a/gv/src/nls/LANGUAGES b/gv/src/nls/LANGUAGES
new file mode 100644
index 0000000..b316b7e
--- /dev/null
+++ b/gv/src/nls/LANGUAGES
@@ -0,0 +1,6 @@
+noint:de
+ko_KR.UTF-8
+ja_JP.UTF-8
+it.UTF-8
+fr.UTF-8
+de.UTF-8
-- 
1.5.6.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]