Fossil SCM
Fixed /json/dir to work over HTTP mode, too.
Commit
857a6d9142a6b36b7ea655a208e15ca9a5eb6811
Parent
3f6c1f7033a155c…
1 file changed
+5
-5
+5
-5
| --- src/json_dir.c | ||
| +++ src/json_dir.c | ||
| @@ -34,11 +34,11 @@ | ||
| 34 | 34 | |
| 35 | 35 | static char const * json_dir_path_extra(){ |
| 36 | 36 | static char const * zP = NULL; |
| 37 | 37 | if( !zP ){ |
| 38 | 38 | zP = g.zExtra; |
| 39 | - while(zP && ('/'==*zP)){ | |
| 39 | + while(zP && *zP && ('/'==*zP)){ | |
| 40 | 40 | ++zP; |
| 41 | 41 | } |
| 42 | 42 | } |
| 43 | 43 | return zP; |
| 44 | 44 | } |
| @@ -85,15 +85,15 @@ | ||
| 85 | 85 | zCI); |
| 86 | 86 | return NULL; |
| 87 | 87 | } |
| 88 | 88 | } |
| 89 | 89 | |
| 90 | - zDX = g.isHTTP ? json_dir_path_extra() : NULL; | |
| 91 | - if(!zDX || !*zDX){ | |
| 92 | - zDX = json_find_option_cstr2("name",NULL,"n", g.json.dispatchDepth+1); | |
| 90 | + zDX = json_find_option_cstr("name",NULL,"n"); | |
| 91 | + if((!zDX || !*zDX) && !g.isHTTP){ | |
| 92 | + zDX = json_command_arg(g.json.dispatchDepth+1); | |
| 93 | 93 | } |
| 94 | - zD = zDX ? fossil_strdup(zDX) : NULL; | |
| 94 | + zD = (zDX && *zDX) ? fossil_strdup(zDX) : NULL; | |
| 95 | 95 | nD = zD ? strlen(zD)+1 : 0; |
| 96 | 96 | while( nD>1 && zD[nD-2]=='/' ){ zD[(--nD)-1] = 0; } |
| 97 | 97 | |
| 98 | 98 | sqlite3_create_function(g.db, "pathelement", 2, SQLITE_UTF8, 0, |
| 99 | 99 | pathelementFunc, 0, 0); |
| 100 | 100 |
| --- src/json_dir.c | |
| +++ src/json_dir.c | |
| @@ -34,11 +34,11 @@ | |
| 34 | |
| 35 | static char const * json_dir_path_extra(){ |
| 36 | static char const * zP = NULL; |
| 37 | if( !zP ){ |
| 38 | zP = g.zExtra; |
| 39 | while(zP && ('/'==*zP)){ |
| 40 | ++zP; |
| 41 | } |
| 42 | } |
| 43 | return zP; |
| 44 | } |
| @@ -85,15 +85,15 @@ | |
| 85 | zCI); |
| 86 | return NULL; |
| 87 | } |
| 88 | } |
| 89 | |
| 90 | zDX = g.isHTTP ? json_dir_path_extra() : NULL; |
| 91 | if(!zDX || !*zDX){ |
| 92 | zDX = json_find_option_cstr2("name",NULL,"n", g.json.dispatchDepth+1); |
| 93 | } |
| 94 | zD = zDX ? fossil_strdup(zDX) : NULL; |
| 95 | nD = zD ? strlen(zD)+1 : 0; |
| 96 | while( nD>1 && zD[nD-2]=='/' ){ zD[(--nD)-1] = 0; } |
| 97 | |
| 98 | sqlite3_create_function(g.db, "pathelement", 2, SQLITE_UTF8, 0, |
| 99 | pathelementFunc, 0, 0); |
| 100 |
| --- src/json_dir.c | |
| +++ src/json_dir.c | |
| @@ -34,11 +34,11 @@ | |
| 34 | |
| 35 | static char const * json_dir_path_extra(){ |
| 36 | static char const * zP = NULL; |
| 37 | if( !zP ){ |
| 38 | zP = g.zExtra; |
| 39 | while(zP && *zP && ('/'==*zP)){ |
| 40 | ++zP; |
| 41 | } |
| 42 | } |
| 43 | return zP; |
| 44 | } |
| @@ -85,15 +85,15 @@ | |
| 85 | zCI); |
| 86 | return NULL; |
| 87 | } |
| 88 | } |
| 89 | |
| 90 | zDX = json_find_option_cstr("name",NULL,"n"); |
| 91 | if((!zDX || !*zDX) && !g.isHTTP){ |
| 92 | zDX = json_command_arg(g.json.dispatchDepth+1); |
| 93 | } |
| 94 | zD = (zDX && *zDX) ? fossil_strdup(zDX) : NULL; |
| 95 | nD = zD ? strlen(zD)+1 : 0; |
| 96 | while( nD>1 && zD[nD-2]=='/' ){ zD[(--nD)-1] = 0; } |
| 97 | |
| 98 | sqlite3_create_function(g.db, "pathelement", 2, SQLITE_UTF8, 0, |
| 99 | pathelementFunc, 0, 0); |
| 100 |