Fossil SCM
Enhance the --tk option on diff so that it works with special characters (like "\" and "}") in the filename.
Commit
544d22139da66d98f857dbd0149dff036b7dc213
Parent
c23190a61d7794b…
1 file changed
+7
-2
+7
-2
| --- src/diffcmd.c | ||
| +++ src/diffcmd.c | ||
| @@ -1024,12 +1024,17 @@ | ||
| 1024 | 1024 | i++; |
| 1025 | 1025 | zTempFile = g.argv[i]; |
| 1026 | 1026 | continue; |
| 1027 | 1027 | } |
| 1028 | 1028 | } |
| 1029 | - blob_append(&script, " ", 1); | |
| 1030 | - shell_escape(&script, z); | |
| 1029 | + if( sqlite3_strglob("*}*",z) ){ | |
| 1030 | + blob_appendf(&script, " {%/}", z); | |
| 1031 | + }else{ | |
| 1032 | + int j; | |
| 1033 | + blob_append(&script, " ", 1); | |
| 1034 | + for(j=0; z[j]; j++) blob_appendf(&script, "\\%03o", (unsigned char)z[j]); | |
| 1035 | + } | |
| 1031 | 1036 | } |
| 1032 | 1037 | blob_appendf(&script, "}\n%s", zDiffScript); |
| 1033 | 1038 | if( zTempFile ){ |
| 1034 | 1039 | blob_write_to_file(&script, zTempFile); |
| 1035 | 1040 | fossil_print("To see diff, run: tclsh \"%s\"\n", zTempFile); |
| 1036 | 1041 |
| --- src/diffcmd.c | |
| +++ src/diffcmd.c | |
| @@ -1024,12 +1024,17 @@ | |
| 1024 | i++; |
| 1025 | zTempFile = g.argv[i]; |
| 1026 | continue; |
| 1027 | } |
| 1028 | } |
| 1029 | blob_append(&script, " ", 1); |
| 1030 | shell_escape(&script, z); |
| 1031 | } |
| 1032 | blob_appendf(&script, "}\n%s", zDiffScript); |
| 1033 | if( zTempFile ){ |
| 1034 | blob_write_to_file(&script, zTempFile); |
| 1035 | fossil_print("To see diff, run: tclsh \"%s\"\n", zTempFile); |
| 1036 |
| --- src/diffcmd.c | |
| +++ src/diffcmd.c | |
| @@ -1024,12 +1024,17 @@ | |
| 1024 | i++; |
| 1025 | zTempFile = g.argv[i]; |
| 1026 | continue; |
| 1027 | } |
| 1028 | } |
| 1029 | if( sqlite3_strglob("*}*",z) ){ |
| 1030 | blob_appendf(&script, " {%/}", z); |
| 1031 | }else{ |
| 1032 | int j; |
| 1033 | blob_append(&script, " ", 1); |
| 1034 | for(j=0; z[j]; j++) blob_appendf(&script, "\\%03o", (unsigned char)z[j]); |
| 1035 | } |
| 1036 | } |
| 1037 | blob_appendf(&script, "}\n%s", zDiffScript); |
| 1038 | if( zTempFile ){ |
| 1039 | blob_write_to_file(&script, zTempFile); |
| 1040 | fossil_print("To see diff, run: tclsh \"%s\"\n", zTempFile); |
| 1041 |