From 37fbefc3e3140b96527887d8b6d3c99132635cf3 Mon Sep 17 00:00:00 2001 From: Andreas Scherer Date: Tue, 15 Jan 2019 16:17:07 +0000 Subject: Try to locate NLS catalogs in the TDS. git-svn-id: svn://tug.org/texlive/trunk@49711 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/web2c/ChangeLog | 4 +++ Build/source/texk/web2c/cwebboot.cin | 41 ++++++++++++++++---------- Build/source/texk/web2c/cwebdir/ChangeLog | 4 +++ Build/source/texk/web2c/cwebdir/comm-w2c.ch | 45 +++++++++++++++++++---------- 4 files changed, 64 insertions(+), 30 deletions(-) (limited to 'Build/source') diff --git a/Build/source/texk/web2c/ChangeLog b/Build/source/texk/web2c/ChangeLog index 19d73fba2f3..24943d1108c 100644 --- a/Build/source/texk/web2c/ChangeLog +++ b/Build/source/texk/web2c/ChangeLog @@ -1,3 +1,7 @@ +2019-01-15 Andreas Scherer + + * cwebboot.cin: Provisional 'bindtextdomain' lookup in TDS. + 2019-01-10 Andreas Scherer * help.h (CTWILLHELP): update. diff --git a/Build/source/texk/web2c/cwebboot.cin b/Build/source/texk/web2c/cwebboot.cin index af9137e199e..3f897fb5237 100644 --- a/Build/source/texk/web2c/cwebboot.cin +++ b/Build/source/texk/web2c/cwebboot.cin @@ -31,7 +31,7 @@ #include /*:85*//*88:*/ -#line 1205 "cwebdir/comm-w2c.ch" +#line 1211 "cwebdir/comm-w2c.ch" #include @@ -48,7 +48,7 @@ #endif /*:88*//*90:*/ -#line 1263 "cwebdir/comm-w2c.ch" +#line 1278 "cwebdir/comm-w2c.ch" typedef bool boolean; #define HAVE_BOOLEAN @@ -171,12 +171,13 @@ err_print(_("! Include file name too long") ) ;goto restart;} \ #define C_printf(c,a) fprintf(C_file,c,a) #define C_putc(c) putc(c,C_file) \ +#define max_banner 50 +#define max_path_length (BUFSIZ-2) \ + #define PATH_SEPARATOR separators[0] #define DIR_SEPARATOR separators[1] #define DEVICE_SEPARATOR separators[2] \ -#define max_banner 50 \ - #define _(STRING) gettext(STRING) \ #define kpse_find_cweb(name) kpse_find_file(name,kpse_cweb_format,true) \ @@ -331,9 +332,11 @@ char change_buffer[buf_size]; char*change_limit; /*:11*//*86:*/ -#line 1180 "cwebdir/comm-w2c.ch" +#line 1184 "cwebdir/comm-w2c.ch" char cb_banner[max_banner]; +char locale_path[max_path_length]= "/usr/share/locale/"; +string texmf_locale; #ifndef SEPARATORS #define SEPARATORS "://" #endif @@ -425,7 +428,7 @@ static void check_change(void); static void prime_the_change_buffer(void); /*:84*//*95:*/ -#line 1319 "cwebdir/comm-w2c.ch" +#line 1334 "cwebdir/comm-w2c.ch" void cb_show_banner(void); static void cb_usage(const_string str); @@ -465,7 +468,7 @@ root= NULL; #line 72 "cwebdir/comm-w2c.ch" /*91:*/ -#line 1284 "cwebdir/comm-w2c.ch" +#line 1299 "cwebdir/comm-w2c.ch" kpse_set_program_name(argv[0],"cweb"); @@ -473,12 +476,20 @@ kpse_set_program_name(argv[0],"cweb"); #line 73 "cwebdir/comm-w2c.ch" /*89:*/ -#line 1236 "cwebdir/comm-w2c.ch" +#line 1242 "cwebdir/comm-w2c.ch" setlocale(LC_MESSAGES,setlocale(LC_CTYPE,"")); -bindtextdomain("cweb","/usr/share/locale/"); -bindtextdomain("cweb-tl","/usr/share/locale/"); -bindtextdomain("web2c-help","/usr/share/locale/"); +texmf_locale= kpse_var_expand("$TEXMFLOCALEFILES"); +if(texmf_locale){ +if(strlen(texmf_locale) + + * comm-w2c.ch: Provisional 'bindtextdomain' lookup in TDS. + 2019-01-05 Andreas Scherer Integration of CWEBbin as the new CWEB in TeX Live, diff --git a/Build/source/texk/web2c/cwebdir/comm-w2c.ch b/Build/source/texk/web2c/cwebdir/comm-w2c.ch index e6300f6c36f..9c1dc4c65db 100644 --- a/Build/source/texk/web2c/cwebdir/comm-w2c.ch +++ b/Build/source/texk/web2c/cwebdir/comm-w2c.ch @@ -1169,16 +1169,22 @@ standard C types for boolean values, pointers, and objects with fixed sizes. #include /* type definition of |ptrdiff_t| */ #include /* type definition of |uint8_t| et al. */ -@ The |scan_args| and |cb_show_banner| routines need a few extra variables. +@ The |scan_args| and |cb_show_banner| routines and the |bindtextdomain| +argument string need a few extra variables. + +@s string int + +@d max_banner 50 +@d max_path_length (BUFSIZ-2) @d PATH_SEPARATOR separators[0] @d DIR_SEPARATOR separators[1] @d DEVICE_SEPARATOR separators[2] -@d max_banner 50 - @= -char cb_banner[max_banner]; +char cb_banner[max_banner];@/ +char locale_path[max_path_length]="/usr/share/locale/";@/ +string texmf_locale;@/ #ifndef SEPARATORS #define SEPARATORS "://" #endif @@ -1228,16 +1234,24 @@ interface, and catalog \.{web2c-help} contains the ``\.{--help}'' texts for @.web2c-help.mo@> @.--help@> -If such translation files are not available you may want to improve this system -by checking out the sources and translating the strings in files \.{cweb.pot}, -\.{cweb-tl.pot}, and \.{web2c-help.pot}, and submitting the resulting \.{*.po} -files to the maintainers at \.{tex-k@@tug.org}. +If such translation files are not available, you may want to improve this +system by checking out the sources and translating the strings in files +\.{cweb.pot}, \.{cweb-tl.pot}, and \.{web2c-help.pot}, and submitting the +resulting \.{*.po} files to the maintainers at \.{tex-k@@tug.org}. @= setlocale(LC_MESSAGES, setlocale(LC_CTYPE, "")); -bindtextdomain("cweb", "/usr/share/locale/"); -bindtextdomain("cweb-tl", "/usr/share/locale/"); -bindtextdomain("web2c-help", "/usr/share/locale/"); +texmf_locale = kpse_var_expand ("$TEXMFLOCALEFILES"); +if (texmf_locale) { + if (strlen(texmf_locale) < max_path_length) + sprintf(locale_path,"%s",texmf_locale); + else err_print("! Include path too long"); +@.Include path too long@> + free(texmf_locale); +} +bindtextdomain("cweb", locale_path); +bindtextdomain("cweb-tl", locale_path); +bindtextdomain("web2c-help", locale_path); textdomain("cweb"); /* the majority of |"strings"| come from ``plain \.{CWEB}'' */ @.cweb.mo@> @@ -1253,10 +1267,11 @@ The directories to be searched for come from three sources: \item{(a)} a user-set environment variable \.{CWEBINPUTS} (overriden by \.{CWEBINPUTS\_cweb}); \item{(b)} a line in \Kpathsea/ configuration file \.{texmf.cnf},\hfil\break - e.g. \.{CWEBINPUTS=.:\$TEXMF/texmf/cweb//} - or \.{CWEBINPUTS.cweb=.:\$TEXMF/texmf/cweb//}; -\item{(c)} compile-time default directories \.{.:\$TEXMF/texmf/cweb//} - (specified in \.{texmf.in}).} + e.g., \.{CWEBINPUTS=\$TEXMFDOTDIR:\$TEXMF/texmf/cweb//}\hfil\break + or \.{CWEBINPUTS.cweb=\$TEXMFDOTDIR:\$TEXMF/texmf/cweb//}; +\item{(c)} compile-time default directories (specified in + \.{texmf.in}),\hfil\break + i.e., \.{\$TEXMFDOTDIR:\$TEXMF/texmf/cweb//}.\par} @d kpse_find_cweb(name) kpse_find_file(name,kpse_cweb_format,true) -- cgit v1.2.3