[PD-cvs] SF.net SVN: pure-data: [9799] trunk/packages/patches/ fix_encoding_bug_1572290-0.41.4.patch

eighthave at users.sourceforge.net eighthave at users.sourceforge.net
Wed May 14 19:41:18 CEST 2008


Revision: 9799
          http://pure-data.svn.sourceforge.net/pure-data/?rev=9799&view=rev
Author:   eighthave
Date:     2008-05-14 10:41:17 -0700 (Wed, 14 May 2008)

Log Message:
-----------
added patch to fix problems of saving patches into folders with extended chars in it

Added Paths:
-----------
    trunk/packages/patches/fix_encoding_bug_1572290-0.41.4.patch

Added: trunk/packages/patches/fix_encoding_bug_1572290-0.41.4.patch
===================================================================
--- trunk/packages/patches/fix_encoding_bug_1572290-0.41.4.patch	                        (rev 0)
+++ trunk/packages/patches/fix_encoding_bug_1572290-0.41.4.patch	2008-05-14 17:41:17 UTC (rev 9799)
@@ -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);
+ }
+ 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Pd-cvs mailing list