45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
/*
** Impl of /json/dir. 98% of it was taken directly
** from browse.c::page_dir()
*/
static cson_value * json_page_dir_list(){
cson_object * zPayload = NULL;
cson_array * zFiles = NULL;
cson_array * zDirs = NULL;
cson_object * zEntry = NULL;
cson_string * zKeyName = NULL;
cson_string * zKeyIsDir = NULL;
cson_string * zKeyUuid = NULL;
char * zD = NULL;
|
>
|
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
/*
** Impl of /json/dir. 98% of it was taken directly
** from browse.c::page_dir()
*/
static cson_value * json_page_dir_list(){
cson_object * zPayload = NULL;
cson_array * zEntries = NULL;
cson_array * zFiles = NULL;
cson_array * zDirs = NULL;
cson_object * zEntry = NULL;
cson_string * zKeyName = NULL;
cson_string * zKeyIsDir = NULL;
cson_string * zKeyUuid = NULL;
char * zD = NULL;
|
181
182
183
184
185
186
187
188
189
190
191
192
193
194
|
cson_object_set_s( zPayload, zKeyName, json_new_string(zD ? zD : "/") );
if(zUuid){
cson_object_set_s( zPayload, zKeyUuid, cson_string_value(cson_new_string(zUuid, strlen(zUuid))) );
}
if( zCI ) cson_object_set( zPayload, "checkin", json_new_string(zCI) );
while( (SQLITE_ROW==db_step(&q)) ){
char const * n = db_column_text(&q,0);
char const * u = zCI ? db_column_text(&q,1) : NULL;
zEntry = cson_new_object();
#if 0
if('/'==*n){
if(!zDirs){
zDirs = cson_new_array();
|
>
|
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
|
cson_object_set_s( zPayload, zKeyName, json_new_string(zD ? zD : "/") );
if(zUuid){
cson_object_set_s( zPayload, zKeyUuid, cson_string_value(cson_new_string(zUuid, strlen(zUuid))) );
}
if( zCI ) cson_object_set( zPayload, "checkin", json_new_string(zCI) );
while( (SQLITE_ROW==db_step(&q)) ){
cson_value * name = NULL;
char const * n = db_column_text(&q,0);
char const * u = zCI ? db_column_text(&q,1) : NULL;
zEntry = cson_new_object();
#if 0
if('/'==*n){
if(!zDirs){
zDirs = cson_new_array();
|
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
|
cson_array_append(zFiles, cson_object_value(zEntry) );
cson_object_set_s(zEntry, zKeyName, json_new_string( n ) );
}
if(u && *u){
cson_object_set_s(zEntry, zKeyUuid, json_new_string( u ) );
}
#else
if(!zFiles){
zFiles = cson_new_array();
cson_object_set( zPayload, "entries", cson_array_value(zFiles) );
}
cson_array_append(zFiles, cson_object_value(zEntry) );
if('/'==*n){
cson_object_set_s(zEntry, zKeyName, json_new_string( n+1 ) );
cson_object_set_s(zEntry, zKeyIsDir, cson_value_true() );
} else{
cson_object_set_s(zEntry, zKeyName, json_new_string( n ) );
}
if(u && *u){
cson_object_set_s(zEntry, zKeyUuid, json_new_string( u ) );
}
#endif
}
db_finalize(&q);
if(pM){
manifest_destroy(pM);
}
cson_value_free( cson_string_value( zKeyName ) );
|
|
|
|
<
|
>
|
>
>
|
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
|
cson_array_append(zFiles, cson_object_value(zEntry) );
cson_object_set_s(zEntry, zKeyName, json_new_string( n ) );
}
if(u && *u){
cson_object_set_s(zEntry, zKeyUuid, json_new_string( u ) );
}
#else
if(!zEntries){
zEntries = cson_new_array();
cson_object_set( zPayload, "entries", cson_array_value(zEntries) );
}
if('/'==*n){
name = json_new_string( n+1 );
cson_object_set_s(zEntry, zKeyIsDir, cson_value_true() );
} else{
name = json_new_string( n );
}
if(u && *u){
cson_object_set_s(zEntry, zKeyUuid, json_new_string( u ) );
}
cson_object_set_s(zEntry, zKeyName, name );
cson_array_append(zEntries, cson_object_value(zEntry) );
#endif
}
db_finalize(&q);
if(pM){
manifest_destroy(pM);
}
cson_value_free( cson_string_value( zKeyName ) );
|