fossil import --git

fossil does not decode file name that encorded by octal string when you import 
from the git.

utf8 file name will become the numbers

static void dequote_git_filename(char *zName)


--- src/import.c
+++ src/import.c
@@ -463,11 +463,27 @@
   if( zName==0 || zName[0]!='"' ) return;
   n = (int)strlen(zName);
   if( zName[n-1]!='"' ) return;
   for(i=0, j=1; j<n-1; j++){
     char c = zName[j];
-    if( c=='\\' ) c = zName[++j];
+    int w;
+    if( c=='\\' ) {
+      if ( (j+3 <= n-1)
+        && (zName[j+1]>='0') && (zName[j+1]<='3')
+        && (zName[j+2]>='0') && (zName[j+2]<='7')
+        && (zName[j+3]>='0') && (zName[j+3]<='7') ) {
+        w = 64*(zName[j+1]-'0') + 8*(zName[j+2]-'0') + (zName[j+3]-'0');
+        if (w > 0xFFFF || w == 0) {
+           c = zName[++j];
+       } else {
+           c = (char) w & 0xFFFF;
+           j = j + 3;
+        }
+      } else {
+        c = zName[++j];
+      }
+    }
     zName[i++] = c;
   }
   zName[i] = 0;
 }
 
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to