Fossil SCM
Patch the javascript compressor so that it does not elide text after // if the // immediately follows a :, as that text might be part of a URI string literal.
Commit
ffa1c7d0a0e6b32eab1a6b7f217a8f653f76fe650e80de407a15dab9dfe05c79
Parent
8bd19cad6346b57…
1 file changed
+1
-1
+1
-1
| --- tools/mkbuiltin.c | ||
| +++ tools/mkbuiltin.c | ||
| @@ -75,11 +75,11 @@ | ||
| 75 | 75 | static void compressJavascript(unsigned char *z, int *pn){ |
| 76 | 76 | int n = *pn; |
| 77 | 77 | int i, j, k; |
| 78 | 78 | for(i=j=0; i<n; i++){ |
| 79 | 79 | unsigned char c = z[i]; |
| 80 | - if( c=='/' ){ | |
| 80 | + if( c=='/' && (i==0 || z[i-1]!=':')){ | |
| 81 | 81 | if( z[i+1]=='*' ){ |
| 82 | 82 | while( j>0 && (z[j-1]==' ' || z[j-1]=='\t') ){ j--; } |
| 83 | 83 | for(k=i+3; k<n && (z[k]!='/' || z[k-1]!='*'); k++){} |
| 84 | 84 | i = k; |
| 85 | 85 | continue; |
| 86 | 86 |
| --- tools/mkbuiltin.c | |
| +++ tools/mkbuiltin.c | |
| @@ -75,11 +75,11 @@ | |
| 75 | static void compressJavascript(unsigned char *z, int *pn){ |
| 76 | int n = *pn; |
| 77 | int i, j, k; |
| 78 | for(i=j=0; i<n; i++){ |
| 79 | unsigned char c = z[i]; |
| 80 | if( c=='/' ){ |
| 81 | if( z[i+1]=='*' ){ |
| 82 | while( j>0 && (z[j-1]==' ' || z[j-1]=='\t') ){ j--; } |
| 83 | for(k=i+3; k<n && (z[k]!='/' || z[k-1]!='*'); k++){} |
| 84 | i = k; |
| 85 | continue; |
| 86 |
| --- tools/mkbuiltin.c | |
| +++ tools/mkbuiltin.c | |
| @@ -75,11 +75,11 @@ | |
| 75 | static void compressJavascript(unsigned char *z, int *pn){ |
| 76 | int n = *pn; |
| 77 | int i, j, k; |
| 78 | for(i=j=0; i<n; i++){ |
| 79 | unsigned char c = z[i]; |
| 80 | if( c=='/' && (i==0 || z[i-1]!=':')){ |
| 81 | if( z[i+1]=='*' ){ |
| 82 | while( j>0 && (z[j-1]==' ' || z[j-1]=='\t') ){ j--; } |
| 83 | for(k=i+3; k<n && (z[k]!='/' || z[k-1]!='*'); k++){} |
| 84 | i = k; |
| 85 | continue; |
| 86 |