Alexandre Julliard : wrc: Add --nls-dir option.

Alexandre Julliard julliard at winehq.org
Wed Feb 12 16:21:04 CST 2020


Module: wine
Branch: master
Commit: 64ff68c8847adb230beca184195a66d424f3dfa0
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=64ff68c8847adb230beca184195a66d424f3dfa0

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Feb 12 09:03:51 2020 +0100

wrc: Add --nls-dir option.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 tools/wrc/Makefile.in | 2 ++
 tools/wrc/wrc.c       | 9 +++++++++
 tools/wrc/wrc.h       | 2 ++
 tools/wrc/wrc.man.in  | 4 ++++
 4 files changed, 17 insertions(+)

diff --git a/tools/wrc/Makefile.in b/tools/wrc/Makefile.in
index c81276ebc6..f68081847e 100644
--- a/tools/wrc/Makefile.in
+++ b/tools/wrc/Makefile.in
@@ -16,7 +16,9 @@ LEX_SRCS   = parser.l
 BISON_SRCS = parser.y
 
 wrc_EXTRADEFS = \
+	-DNLSDIR="\"${nlsdir}\"" \
 	-DINCLUDEDIR="\"${includedir}\"" \
+	-DBIN_TO_NLSDIR=\"`$(MAKEDEP) -R ${bindir} ${nlsdir}`\" \
 	-DBIN_TO_INCLUDEDIR=\"`$(MAKEDEP) -R ${bindir} ${includedir}`\"
 
 EXTRALIBS = $(GETTEXTPO_LIBS) -lwpp
diff --git a/tools/wrc/wrc.c b/tools/wrc/wrc.c
index f81fe7baa6..6c1887a788 100644
--- a/tools/wrc/wrc.c
+++ b/tools/wrc/wrc.c
@@ -66,6 +66,7 @@ static const char usage[] =
 	"   -J, --input-format=FORMAT  The input format (either `rc' or `rc16')\n"
 	"   -l, --language=LANG        Set default language to LANG (default is neutral {0, 0})\n"
 	"   -m16, -m32, -m64           Build for 16-bit, 32-bit resp. 64-bit platforms\n"
+	"   --nls-dir=DIR              Directory containing the NLS codepage mappings\n"
 	"   --no-use-temp-file         Ignored for compatibility with windres\n"
 	"   --nostdinc                 Disables searching the standard include path\n"
 	"   -o, --output=FILE          Output to file (default is infile.res)\n"
@@ -157,6 +158,7 @@ char *input_name = NULL;	/* The name given on the command-line */
 static char *temp_name = NULL;	/* Temporary file for preprocess pipe */
 
 static const char *includedir;
+const char *nlsdirs[3] = { NULL, NLSDIR, NULL };
 
 int line_number = 1;		/* The current line */
 int char_number = 1;		/* The current char pos within the line */
@@ -175,6 +177,7 @@ enum long_options_values
     LONG_OPT_NOSTDINC = 1,
     LONG_OPT_TMPFILE,
     LONG_OPT_NOTMPFILE,
+    LONG_OPT_NLS_DIR,
     LONG_OPT_PO_DIR,
     LONG_OPT_PREPROCESSOR,
     LONG_OPT_SYSROOT,
@@ -196,6 +199,7 @@ static const struct option long_options[] = {
 	{ "input", 1, NULL, 'i' },
 	{ "input-format", 1, NULL, 'J' },
 	{ "language", 1, NULL, 'l' },
+	{ "nls-dir", 1, NULL, LONG_OPT_NLS_DIR },
 	{ "no-use-temp-file", 0, NULL, LONG_OPT_NOTMPFILE },
 	{ "nostdinc", 0, NULL, LONG_OPT_NOSTDINC },
 	{ "output", 1, NULL, 'o' },
@@ -349,6 +353,8 @@ static void init_argv0_dir( const char *argv0 )
     if (p == dir) p++;
     *p = 0;
     includedir = strmake( "%s/%s", dir, BIN_TO_INCLUDEDIR );
+    if (strendswith( dir, "/tools/wrc" )) nlsdirs[0] = strmake( "%s/../../nls", dir );
+    else nlsdirs[0] = strmake( "%s/%s", dir, BIN_TO_NLSDIR );
     free( dir );
 #endif
 }
@@ -408,6 +414,9 @@ int main(int argc,char *argv[])
 		case LONG_OPT_NOTMPFILE:
 			if (debuglevel) warning("--no-use-temp-file option not yet supported, ignored.\n");
 			break;
+		case LONG_OPT_NLS_DIR:
+			nlsdirs[0] = xstrdup( optarg );
+			break;
 		case LONG_OPT_PO_DIR:
 			po_dir = xstrdup( optarg );
 			break;
diff --git a/tools/wrc/wrc.h b/tools/wrc/wrc.h
index 9664dd0392..24b0e28904 100644
--- a/tools/wrc/wrc.h
+++ b/tools/wrc/wrc.h
@@ -45,6 +45,8 @@ extern int check_utf8;
 extern char *input_name;
 extern char *cmdline;
 
+extern const char *nlsdirs[];
+
 extern int line_number;
 extern int char_number;
 
diff --git a/tools/wrc/wrc.man.in b/tools/wrc/wrc.man.in
index 24dca04902..e3ad8fca4d 100644
--- a/tools/wrc/wrc.man.in
+++ b/tools/wrc/wrc.man.in
@@ -80,6 +80,10 @@ Generate resources for 16-bit, 32-bit or 64-bit platforms respectively.
 The only difference between 32-bit and 64-bit is whether
 the _WIN64 preprocessor symbol is defined.
 .TP
+.I \fB\-\-nls-dir=\fIdir\fR
+Specify the directory to search for the NLS files containing the
+codepage mapping tables.
+.TP
 .I \fB\-\-nostdinc\fR
 Do not search the standard include path, look for include files only
 in the directories explicitly specified with the \fB\-I\fR option.




More information about the wine-cvs mailing list