@@ -472,10 +472,11 @@
472 472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bDebug = find_option("debug",0,0)!=0;
473 473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bList = find_option("list",0,0)!=0;
474 474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zSqlArchive = find_option("sqlar",0,1);
475 475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *z;
476 476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zDest = 0; /* Where to store results */
477 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zSql; /* SQL used to query the results */
477 478 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zUrl; /* Url to get */
478 479 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zVers; /* Version name to get */
479 480 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unsigned int mHttpFlags = HTTP_GENERIC|HTTP_NOCOMPRESS;
480 481 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob in, out; /* I/O for the HTTP request */
481 482 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob file; /* A file to extract */
@@ -541,11 +542,11 @@
541 542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
542 543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
543 544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
544 545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Construct a subpath on the URL if necessary */
545 546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.url.isSsh || g.url.isFile ){
546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.url.subpath = mprintf("/sqlar/%t/%t.sqlar", zVers, zDest);
547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ g.url.subpath = mprintf("/sqlar?r=%t&name=%t.sqlar", zVers, zDest);
547 548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
548 549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
549 550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( bDebug ){
550 551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
urlparse_print(0);
551 552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -571,13 +572,14 @@
571 572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
572 573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=SQLITE_OK ){
573 574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_fatal("Cannot create an in-memory database: %s",
574 575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_errmsg(db));
575 576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rc = sqlite3_prepare_v2(db,
577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "SELECT name, mode, sz, data"
578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " FROM sqlar", -1, &pStmt, 0);
577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSql = mprintf("SELECT name, mode, sz, data FROM sqlar"
578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " WHERE name GLOB '%q*'", zDest);
579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rc = sqlite3_prepare_v2(db, zSql, -1, &pStmt, 0);
580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_free(zSql);
579 581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( rc!=0 ){
580 582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_fatal("SQL error: %s\n", sqlite3_errmsg(db));
581 583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
582 584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_init(&file, 0, 0);
583 585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( sqlite3_step(pStmt)==SQLITE_ROW ){
@@ -584,11 +586,11 @@
584 586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zFilename = (const char*)sqlite3_column_text(pStmt, 0);
585 587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int mode = sqlite3_column_int(pStmt, 1);
586 588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int sz = sqlite3_column_int(pStmt, 2);
587 589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( bList ){
588 590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("%s\n", zFilename);
589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( mode & 0x4000 ){
591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( mode & 0x4000 ){
590 592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* A directory name */
591 593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nDir++;
592 594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
file_mkdir(zFilename, ExtFILE, 1);
593 595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
594 596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* A file */
595 597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!