1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
$FreeBSD$
--- exp_main_sub.c 2002/08/24 08:04:43 1.1
+++ exp_main_sub.c 2002/08/24 08:15:33
@@ -593,6 +593,9 @@
char *args; /* ptr to string-rep of all args */
char *debug_init;
+ char *native;
+ Tcl_DString ds;
+
exp_argv0 = argv[0];
#ifdef TCL_DEBUGGER
@@ -768,18 +771,23 @@
expDiagLog("set argc %s\r\n",argc_rep);
if (exp_cmdfilename) {
- Tcl_SetVar(interp,"argv0",exp_cmdfilename,0);
+ native = Tcl_ExternalToUtfDString(NULL, exp_cmdfilename, -1, &ds);
+ Tcl_SetVar(interp,"argv0",native,0);
expDiagLog("set argv0 \"%s\"\r\n",exp_cmdfilename);
} else {
- Tcl_SetVar(interp,"argv0",exp_argv0,0);
+ native = Tcl_ExternalToUtfDString(NULL, exp_argv0, -1, &ds);
+ Tcl_SetVar(interp,"argv0",native,0);
expDiagLog("set argv0 \"%s\"\r\n",exp_argv0);
}
+ Tcl_DStringFree(&ds);
args = Tcl_Merge(argc-optind,argv+optind);
expDiagLogU("set argv \"");
expDiagLogU(args);
expDiagLogU("\"\r\n");
- Tcl_SetVar(interp,"argv",args,0);
+ native = Tcl_ExternalToUtfDString(NULL, args, -1, &ds);
+ Tcl_SetVar(interp,"argv",native,0);
+ Tcl_DStringFree(&ds);
Tcl_Free(args);
exp_interpret_rcfiles(interp,my_rc,sys_rc);
|