Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Merged in [0c0f268ff3], minor th1-internal doc addition. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | th1-query-api |
Files: | files | file ages | folders |
SHA1: |
56db35330d0e19569e38f56647866bed |
User & Date: | stephan 2012-07-19 18:03:39.230 |
Context
2012-07-20
| ||
11:56 | Removed unneeded th.c/blob.h dep (having it does not fix parallel builds). ... (check-in: dff26b75 user: stephan tags: th1-query-api) | |
2012-07-19
| ||
18:03 | Merged in [0c0f268ff3], minor th1-internal doc addition. ... (check-in: 56db3533 user: stephan tags: th1-query-api) | |
15:41 | Fix the db_is_writable() routine to return FALSE if the database is not even open. ... (check-in: 0c0f268f user: drh tags: trunk) | |
2012-07-16
| ||
19:35 | Removed 2x extraneous #include "th.h". ... (check-in: 27dc9b0b user: stephan tags: th1-query-api) | |
Changes
Changes to src/db.c.
︙ | ︙ | |||
1025 1026 1027 1028 1029 1030 1031 | " AND value<>'%s'", AUX_SCHEMA); } /* ** Return true if the database is writeable */ int db_is_writeable(const char *zName){ | | | 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 | " AND value<>'%s'", AUX_SCHEMA); } /* ** Return true if the database is writeable */ int db_is_writeable(const char *zName){ return g.db!=0 && !sqlite3_db_readonly(g.db, db_name(zName)); } /* ** Verify that the repository schema is correct. If it is not correct, ** issue a fatal error and die. */ void db_verify_schema(void){ |
︙ | ︙ |
Changes to src/info.c.
︙ | ︙ | |||
477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 | const char *zUuid = db_column_text(&q, 0); char *zTitle = mprintf("Check-in [%.10s]", zUuid); char *zEUser, *zEComment; const char *zUser; const char *zComment; const char *zDate; const char *zOrigDate; style_header(zTitle); login_anonymous_available(); free(zTitle); zEUser = db_text(0, "SELECT value FROM tagxref WHERE tagid=%d AND rid=%d", TAG_USER, rid); zEComment = db_text(0, "SELECT value FROM tagxref WHERE tagid=%d AND rid=%d", TAG_COMMENT, rid); zUser = db_column_text(&q, 2); zComment = db_column_text(&q, 3); zDate = db_column_text(&q,1); zOrigDate = db_column_text(&q, 4); @ <div class="section">Overview</div> @ <table class="label-value"> @ <tr><th>SHA1 Hash:</th><td>%s(zUuid) | > > > > | 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 | const char *zUuid = db_column_text(&q, 0); char *zTitle = mprintf("Check-in [%.10s]", zUuid); char *zEUser, *zEComment; const char *zUser; const char *zComment; const char *zDate; const char *zOrigDate; const char *zBranch; style_header(zTitle); login_anonymous_available(); free(zTitle); zEUser = db_text(0, "SELECT value FROM tagxref WHERE tagid=%d AND rid=%d", TAG_USER, rid); zEComment = db_text(0, "SELECT value FROM tagxref WHERE tagid=%d AND rid=%d", TAG_COMMENT, rid); zBranch = db_text("trunk", "SELECT value FROM tagxref WHERE tagid=%d AND rid=%d", TAG_BRANCH, rid); zUser = db_column_text(&q, 2); zComment = db_column_text(&q, 3); zDate = db_column_text(&q,1); zOrigDate = db_column_text(&q, 4); @ <div class="section">Overview</div> @ <table class="label-value"> @ <tr><th>SHA1 Hash:</th><td>%s(zUuid) |
︙ | ︙ | |||
557 558 559 560 561 562 563 | " AND tag.tagid=tagxref.tagid " " AND +tag.tagname GLOB 'sym-*'", rid); while( db_step(&q)==SQLITE_ROW ){ const char *zTagName = db_column_text(&q, 0); @ | %z(href("%R/timeline?r=%T",zTagName))%h(zTagName)</a> } db_finalize(&q); | < < < < > > | > > > > > > > > > > > > > | 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 | " AND tag.tagid=tagxref.tagid " " AND +tag.tagname GLOB 'sym-*'", rid); while( db_step(&q)==SQLITE_ROW ){ const char *zTagName = db_column_text(&q, 0); @ | %z(href("%R/timeline?r=%T",zTagName))%h(zTagName)</a> } db_finalize(&q); if( g.perm.Zip ){ char *zUrl = mprintf("%R/tarball/%s-%S.tar.gz?uuid=%s", zProjName, zUuid, zUuid); @ </td></tr> @ <tr><th>Downloads:</th><td> @ %z(href("%s",zUrl))Tarball</a> @ | %z(href("%R/zip/%s-%S.zip?uuid=%s",zProjName,zUuid,zUuid)) @ ZIP archive</a> fossil_free(zUrl); } #if 0 if( isLeaf && fossil_strcmp(zBranch,"trunk")!=0 ){ @ </td></tr> @ <tr><th>Diffs:</th><td> @ %z(href("%R/vdiff?branch=%t",zBranch))Changes in %h(zBranch)</a> @ | %z(href("%R/vdiff?from=trunk&to=%t",zBranch))Changes @ from trunk</a> } #endif @ </td></tr> @ <tr><th>Other Links:</th> @ <td> @ %z(href("%R/dir?ci=%S",zUuid))files</a> @ | %z(href("%R/artifact/%S",zUuid))manifest</a> if( g.perm.Write ){ @ | %z(href("%R/ci_edit?r=%S",zUuid))edit</a> } @ </td> @ </tr> } |
︙ | ︙ |
Changes to src/th.c.
︙ | ︙ | |||
2475 2476 2477 2478 2479 2480 2481 | if( realnum ) *realnum = 1; } return *z==0; } /* ** The string z[] is an ascii representation of a real number. | | > > > | 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 | if( realnum ) *realnum = 1; } return *z==0; } /* ** The string z[] is an ascii representation of a real number. ** Convert this string to a double and assigns its value to ** pResult. ** ** This routine assumes that z[] really is a valid number. If it ** is not, the result is undefined. ** ** This routine is used instead of the library atof() function because ** the library atof() might want to use "," as the decimal point instead ** of "." depending on how locale is set. But that would cause problems ** for SQL. So this routine always uses "." regardless of locale. ** ** Returns the number of bytes of z consumed in parsing the value. */ static int sqlite3AtoF(const char *z, double *pResult){ int sign = 1; const char *zBegin = z; LONGDOUBLE_TYPE v1 = 0.0; while( th_isspace(*(u8*)z) ) z++; if( *z=='-' ){ |
︙ | ︙ |