diff options
-rw-r--r-- | packages/patches/fix_encoding_bug_1572290-0.41.4.patch | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/packages/patches/fix_encoding_bug_1572290-0.41.4.patch b/packages/patches/fix_encoding_bug_1572290-0.41.4.patch new file mode 100644 index 00000000..9e8d07ee --- /dev/null +++ b/packages/patches/fix_encoding_bug_1572290-0.41.4.patch @@ -0,0 +1,37 @@ +Index: t_tkcmd.c +=================================================================== +--- t_tkcmd.c (revision 9782) ++++ t_tkcmd.c (working copy) +@@ -509,10 +509,14 @@ + + static int pdCmd(ClientData cd, Tcl_Interp *interp, int argc, char **argv) + { ++ Tcl_DString dstring; /* used to convert the Tcl string to the OS encoding */ ++ char *dstring_char; + if (argc == 2) + { + int n = strlen(argv[1]); +- if (send(sockfd, argv[1], n, 0) < n) ++ /* NULL as first arg means use the current system encoding */ ++ dstring_char = Tcl_UtfToExternalDString(NULL, argv[1], -1, &dstring); ++ if (send(sockfd, dstring_char, n, 0) < n) + { + perror("stdout"); + tcl_mess("exit\n"); +@@ -534,12 +538,15 @@ + if (i > 1) strcat(buf, " "); + strcat(buf, argv[i]); + } +- if (send(sockfd, buf, strlen(buf), 0) < 0) ++ /* NULL as first arg means use the current system encoding */ ++ dstring_char = Tcl_UtfToExternalDString(NULL, buf, -1, &dstring); ++ if (send(sockfd, dstring_char, strlen(dstring_char), 0) < 0) + { + perror("stdout"); + tcl_mess("exit\n"); + } + } ++ Tcl_DStringFree(&dstring); + return (TCL_OK); + } + |