Fossil SCM
Merge trunk.
Commit
794d4752aede6fc88ffb495f8525ce2df8f0a744
Parent
ff1926143db0f2a…
8 files changed
+1
+10
-10
+1
-1
+1
-1
+14
-10
+4
-7
+1
-1
+2
-2
| --- skins/eagle/header.txt | ||
| +++ skins/eagle/header.txt | ||
| @@ -123,10 +123,11 @@ | ||
| 123 | 123 | menulink /ticket Tickets |
| 124 | 124 | } |
| 125 | 125 | if {[anoncap j]} { |
| 126 | 126 | menulink /wiki Wiki |
| 127 | 127 | } |
| 128 | +menulink /sitemap More... | |
| 128 | 129 | if {[hascap s]} { |
| 129 | 130 | menulink /setup Admin |
| 130 | 131 | } elseif {[hascap a]} { |
| 131 | 132 | menulink /setup_ulist Users |
| 132 | 133 | } |
| 133 | 134 |
| --- skins/eagle/header.txt | |
| +++ skins/eagle/header.txt | |
| @@ -123,10 +123,11 @@ | |
| 123 | menulink /ticket Tickets |
| 124 | } |
| 125 | if {[anoncap j]} { |
| 126 | menulink /wiki Wiki |
| 127 | } |
| 128 | if {[hascap s]} { |
| 129 | menulink /setup Admin |
| 130 | } elseif {[hascap a]} { |
| 131 | menulink /setup_ulist Users |
| 132 | } |
| 133 |
| --- skins/eagle/header.txt | |
| +++ skins/eagle/header.txt | |
| @@ -123,10 +123,11 @@ | |
| 123 | menulink /ticket Tickets |
| 124 | } |
| 125 | if {[anoncap j]} { |
| 126 | menulink /wiki Wiki |
| 127 | } |
| 128 | menulink /sitemap More... |
| 129 | if {[hascap s]} { |
| 130 | menulink /setup Admin |
| 131 | } elseif {[hascap a]} { |
| 132 | menulink /setup_ulist Users |
| 133 | } |
| 134 |
+10
-10
| --- src/checkin.c | ||
| +++ src/checkin.c | ||
| @@ -44,15 +44,15 @@ | ||
| 44 | 44 | Blob where; |
| 45 | 45 | const char *zName; |
| 46 | 46 | int i; |
| 47 | 47 | |
| 48 | 48 | blob_zero(&where); |
| 49 | - for(i=2; i<g.argc; i++) { | |
| 49 | + for(i=2; i<g.argc; i++){ | |
| 50 | 50 | Blob fname; |
| 51 | 51 | file_tree_name(g.argv[i], &fname, 1); |
| 52 | 52 | zName = blob_str(&fname); |
| 53 | - if( fossil_strcmp(zName, ".")==0 ) { | |
| 53 | + if( fossil_strcmp(zName, ".")==0 ){ | |
| 54 | 54 | blob_reset(&where); |
| 55 | 55 | break; |
| 56 | 56 | } |
| 57 | 57 | blob_append_sql(&where, |
| 58 | 58 | " %s (pathname=%Q %s) " |
| @@ -290,11 +290,11 @@ | ||
| 290 | 290 | blob_zero(&where); |
| 291 | 291 | for(i=2; i<g.argc; i++){ |
| 292 | 292 | Blob fname; |
| 293 | 293 | file_tree_name(g.argv[i], &fname, 1); |
| 294 | 294 | zName = blob_str(&fname); |
| 295 | - if( fossil_strcmp(zName, ".")==0 ) { | |
| 295 | + if( fossil_strcmp(zName, ".")==0 ){ | |
| 296 | 296 | blob_reset(&where); |
| 297 | 297 | break; |
| 298 | 298 | } |
| 299 | 299 | blob_append_sql(&where, |
| 300 | 300 | " %s (pathname=%Q %s) " |
| @@ -403,11 +403,11 @@ | ||
| 403 | 403 | blob_zero(&where); |
| 404 | 404 | for(i=2; i<g.argc; i++){ |
| 405 | 405 | Blob fname; |
| 406 | 406 | file_tree_name(g.argv[i], &fname, 1); |
| 407 | 407 | zName = blob_str(&fname); |
| 408 | - if( fossil_strcmp(zName, ".")==0 ) { | |
| 408 | + if( fossil_strcmp(zName, ".")==0 ){ | |
| 409 | 409 | blob_reset(&where); |
| 410 | 410 | break; |
| 411 | 411 | } |
| 412 | 412 | blob_append_sql(&where, |
| 413 | 413 | " %s (pathname=%Q %s) " |
| @@ -595,11 +595,11 @@ | ||
| 595 | 595 | db_multi_exec("DELETE FROM sfile WHERE x IN (SELECT pathname FROM vfile)"); |
| 596 | 596 | blob_zero(&rewrittenPathname); |
| 597 | 597 | g.allowSymlinks = 1; /* Report on symbolic links */ |
| 598 | 598 | while( db_step(&q)==SQLITE_ROW ){ |
| 599 | 599 | zDisplayName = zPathname = db_column_text(&q, 0); |
| 600 | - if( cwdRelative ) { | |
| 600 | + if( cwdRelative ){ | |
| 601 | 601 | char *zFullName = mprintf("%s%s", g.zLocalRoot, zPathname); |
| 602 | 602 | file_relative_name(zFullName, &rewrittenPathname, 0); |
| 603 | 603 | free(zFullName); |
| 604 | 604 | zDisplayName = blob_str(&rewrittenPathname); |
| 605 | 605 | if( zDisplayName[0]=='.' && zDisplayName[1]=='/' ){ |
| @@ -761,11 +761,11 @@ | ||
| 761 | 761 | blob_reset(&ans); |
| 762 | 762 | continue; |
| 763 | 763 | } |
| 764 | 764 | blob_reset(&ans); |
| 765 | 765 | } |
| 766 | - if ( dryRunFlag || file_delete(zName)==0 ){ | |
| 766 | + if( dryRunFlag || file_delete(zName)==0 ){ | |
| 767 | 767 | if( verboseFlag || dryRunFlag ){ |
| 768 | 768 | fossil_print("Removed unmanaged file: %s\n", zName+nRoot); |
| 769 | 769 | } |
| 770 | 770 | }else if( verboseFlag ){ |
| 771 | 771 | fossil_print("Could not remove file: %s\n", zName+nRoot); |
| @@ -777,11 +777,11 @@ | ||
| 777 | 777 | Glob *pEmptyDirs = glob_create(db_get("empty-dirs", 0)); |
| 778 | 778 | Stmt q; |
| 779 | 779 | Blob root; |
| 780 | 780 | blob_init(&root, g.zLocalRoot, nRoot - 1); |
| 781 | 781 | vfile_dir_scan(&root, blob_size(&root), scanFlags, pIgnore, |
| 782 | - pEmptyDirs, 0); | |
| 782 | + pEmptyDirs); | |
| 783 | 783 | blob_reset(&root); |
| 784 | 784 | db_prepare(&q, |
| 785 | 785 | "SELECT %Q || x FROM dscan_temp" |
| 786 | 786 | " WHERE x NOT IN (%s) AND y = 0" |
| 787 | 787 | " ORDER BY 1 DESC", |
| @@ -809,11 +809,11 @@ | ||
| 809 | 809 | blob_reset(&ans); |
| 810 | 810 | continue; |
| 811 | 811 | } |
| 812 | 812 | blob_reset(&ans); |
| 813 | 813 | } |
| 814 | - if ( dryRunFlag || file_rmdir(zName)==0 ){ | |
| 814 | + if( dryRunFlag || file_rmdir(zName)==0 ){ | |
| 815 | 815 | if( verboseFlag || dryRunFlag ){ |
| 816 | 816 | fossil_print("Removed unmanaged directory: %s\n", zName+nRoot); |
| 817 | 817 | } |
| 818 | 818 | }else if( verboseFlag ){ |
| 819 | 819 | fossil_print("Could not remove directory: %s\n", zName+nRoot); |
| @@ -948,11 +948,11 @@ | ||
| 948 | 948 | Blob prompt; |
| 949 | 949 | #if defined(_WIN32) || defined(__CYGWIN__) |
| 950 | 950 | int bomSize; |
| 951 | 951 | const unsigned char *bom = get_utf8_bom(&bomSize); |
| 952 | 952 | blob_init(&prompt, (const char *) bom, bomSize); |
| 953 | - if( zInit && zInit[0]) { | |
| 953 | + if( zInit && zInit[0]){ | |
| 954 | 954 | blob_append(&prompt, zInit, -1); |
| 955 | 955 | } |
| 956 | 956 | #else |
| 957 | 957 | blob_init(&prompt, zInit, -1); |
| 958 | 958 | #endif |
| @@ -1489,11 +1489,11 @@ | ||
| 1489 | 1489 | fossil_free(zOrig); |
| 1490 | 1490 | f = fossil_fopen(zFilename, "wb"); |
| 1491 | 1491 | if( f==0 ){ |
| 1492 | 1492 | fossil_warning("cannot open %s for writing", zFilename); |
| 1493 | 1493 | }else{ |
| 1494 | - if( fUnicode ) { | |
| 1494 | + if( fUnicode ){ | |
| 1495 | 1495 | int bomSize; |
| 1496 | 1496 | const unsigned char *bom = get_utf8_bom(&bomSize); |
| 1497 | 1497 | fwrite(bom, 1, bomSize, f); |
| 1498 | 1498 | blob_to_utf8_no_bom(p, 0); |
| 1499 | 1499 | }else if( fHasInvalidUtf8 ){ |
| 1500 | 1500 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -44,15 +44,15 @@ | |
| 44 | Blob where; |
| 45 | const char *zName; |
| 46 | int i; |
| 47 | |
| 48 | blob_zero(&where); |
| 49 | for(i=2; i<g.argc; i++) { |
| 50 | Blob fname; |
| 51 | file_tree_name(g.argv[i], &fname, 1); |
| 52 | zName = blob_str(&fname); |
| 53 | if( fossil_strcmp(zName, ".")==0 ) { |
| 54 | blob_reset(&where); |
| 55 | break; |
| 56 | } |
| 57 | blob_append_sql(&where, |
| 58 | " %s (pathname=%Q %s) " |
| @@ -290,11 +290,11 @@ | |
| 290 | blob_zero(&where); |
| 291 | for(i=2; i<g.argc; i++){ |
| 292 | Blob fname; |
| 293 | file_tree_name(g.argv[i], &fname, 1); |
| 294 | zName = blob_str(&fname); |
| 295 | if( fossil_strcmp(zName, ".")==0 ) { |
| 296 | blob_reset(&where); |
| 297 | break; |
| 298 | } |
| 299 | blob_append_sql(&where, |
| 300 | " %s (pathname=%Q %s) " |
| @@ -403,11 +403,11 @@ | |
| 403 | blob_zero(&where); |
| 404 | for(i=2; i<g.argc; i++){ |
| 405 | Blob fname; |
| 406 | file_tree_name(g.argv[i], &fname, 1); |
| 407 | zName = blob_str(&fname); |
| 408 | if( fossil_strcmp(zName, ".")==0 ) { |
| 409 | blob_reset(&where); |
| 410 | break; |
| 411 | } |
| 412 | blob_append_sql(&where, |
| 413 | " %s (pathname=%Q %s) " |
| @@ -595,11 +595,11 @@ | |
| 595 | db_multi_exec("DELETE FROM sfile WHERE x IN (SELECT pathname FROM vfile)"); |
| 596 | blob_zero(&rewrittenPathname); |
| 597 | g.allowSymlinks = 1; /* Report on symbolic links */ |
| 598 | while( db_step(&q)==SQLITE_ROW ){ |
| 599 | zDisplayName = zPathname = db_column_text(&q, 0); |
| 600 | if( cwdRelative ) { |
| 601 | char *zFullName = mprintf("%s%s", g.zLocalRoot, zPathname); |
| 602 | file_relative_name(zFullName, &rewrittenPathname, 0); |
| 603 | free(zFullName); |
| 604 | zDisplayName = blob_str(&rewrittenPathname); |
| 605 | if( zDisplayName[0]=='.' && zDisplayName[1]=='/' ){ |
| @@ -761,11 +761,11 @@ | |
| 761 | blob_reset(&ans); |
| 762 | continue; |
| 763 | } |
| 764 | blob_reset(&ans); |
| 765 | } |
| 766 | if ( dryRunFlag || file_delete(zName)==0 ){ |
| 767 | if( verboseFlag || dryRunFlag ){ |
| 768 | fossil_print("Removed unmanaged file: %s\n", zName+nRoot); |
| 769 | } |
| 770 | }else if( verboseFlag ){ |
| 771 | fossil_print("Could not remove file: %s\n", zName+nRoot); |
| @@ -777,11 +777,11 @@ | |
| 777 | Glob *pEmptyDirs = glob_create(db_get("empty-dirs", 0)); |
| 778 | Stmt q; |
| 779 | Blob root; |
| 780 | blob_init(&root, g.zLocalRoot, nRoot - 1); |
| 781 | vfile_dir_scan(&root, blob_size(&root), scanFlags, pIgnore, |
| 782 | pEmptyDirs, 0); |
| 783 | blob_reset(&root); |
| 784 | db_prepare(&q, |
| 785 | "SELECT %Q || x FROM dscan_temp" |
| 786 | " WHERE x NOT IN (%s) AND y = 0" |
| 787 | " ORDER BY 1 DESC", |
| @@ -809,11 +809,11 @@ | |
| 809 | blob_reset(&ans); |
| 810 | continue; |
| 811 | } |
| 812 | blob_reset(&ans); |
| 813 | } |
| 814 | if ( dryRunFlag || file_rmdir(zName)==0 ){ |
| 815 | if( verboseFlag || dryRunFlag ){ |
| 816 | fossil_print("Removed unmanaged directory: %s\n", zName+nRoot); |
| 817 | } |
| 818 | }else if( verboseFlag ){ |
| 819 | fossil_print("Could not remove directory: %s\n", zName+nRoot); |
| @@ -948,11 +948,11 @@ | |
| 948 | Blob prompt; |
| 949 | #if defined(_WIN32) || defined(__CYGWIN__) |
| 950 | int bomSize; |
| 951 | const unsigned char *bom = get_utf8_bom(&bomSize); |
| 952 | blob_init(&prompt, (const char *) bom, bomSize); |
| 953 | if( zInit && zInit[0]) { |
| 954 | blob_append(&prompt, zInit, -1); |
| 955 | } |
| 956 | #else |
| 957 | blob_init(&prompt, zInit, -1); |
| 958 | #endif |
| @@ -1489,11 +1489,11 @@ | |
| 1489 | fossil_free(zOrig); |
| 1490 | f = fossil_fopen(zFilename, "wb"); |
| 1491 | if( f==0 ){ |
| 1492 | fossil_warning("cannot open %s for writing", zFilename); |
| 1493 | }else{ |
| 1494 | if( fUnicode ) { |
| 1495 | int bomSize; |
| 1496 | const unsigned char *bom = get_utf8_bom(&bomSize); |
| 1497 | fwrite(bom, 1, bomSize, f); |
| 1498 | blob_to_utf8_no_bom(p, 0); |
| 1499 | }else if( fHasInvalidUtf8 ){ |
| 1500 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -44,15 +44,15 @@ | |
| 44 | Blob where; |
| 45 | const char *zName; |
| 46 | int i; |
| 47 | |
| 48 | blob_zero(&where); |
| 49 | for(i=2; i<g.argc; i++){ |
| 50 | Blob fname; |
| 51 | file_tree_name(g.argv[i], &fname, 1); |
| 52 | zName = blob_str(&fname); |
| 53 | if( fossil_strcmp(zName, ".")==0 ){ |
| 54 | blob_reset(&where); |
| 55 | break; |
| 56 | } |
| 57 | blob_append_sql(&where, |
| 58 | " %s (pathname=%Q %s) " |
| @@ -290,11 +290,11 @@ | |
| 290 | blob_zero(&where); |
| 291 | for(i=2; i<g.argc; i++){ |
| 292 | Blob fname; |
| 293 | file_tree_name(g.argv[i], &fname, 1); |
| 294 | zName = blob_str(&fname); |
| 295 | if( fossil_strcmp(zName, ".")==0 ){ |
| 296 | blob_reset(&where); |
| 297 | break; |
| 298 | } |
| 299 | blob_append_sql(&where, |
| 300 | " %s (pathname=%Q %s) " |
| @@ -403,11 +403,11 @@ | |
| 403 | blob_zero(&where); |
| 404 | for(i=2; i<g.argc; i++){ |
| 405 | Blob fname; |
| 406 | file_tree_name(g.argv[i], &fname, 1); |
| 407 | zName = blob_str(&fname); |
| 408 | if( fossil_strcmp(zName, ".")==0 ){ |
| 409 | blob_reset(&where); |
| 410 | break; |
| 411 | } |
| 412 | blob_append_sql(&where, |
| 413 | " %s (pathname=%Q %s) " |
| @@ -595,11 +595,11 @@ | |
| 595 | db_multi_exec("DELETE FROM sfile WHERE x IN (SELECT pathname FROM vfile)"); |
| 596 | blob_zero(&rewrittenPathname); |
| 597 | g.allowSymlinks = 1; /* Report on symbolic links */ |
| 598 | while( db_step(&q)==SQLITE_ROW ){ |
| 599 | zDisplayName = zPathname = db_column_text(&q, 0); |
| 600 | if( cwdRelative ){ |
| 601 | char *zFullName = mprintf("%s%s", g.zLocalRoot, zPathname); |
| 602 | file_relative_name(zFullName, &rewrittenPathname, 0); |
| 603 | free(zFullName); |
| 604 | zDisplayName = blob_str(&rewrittenPathname); |
| 605 | if( zDisplayName[0]=='.' && zDisplayName[1]=='/' ){ |
| @@ -761,11 +761,11 @@ | |
| 761 | blob_reset(&ans); |
| 762 | continue; |
| 763 | } |
| 764 | blob_reset(&ans); |
| 765 | } |
| 766 | if( dryRunFlag || file_delete(zName)==0 ){ |
| 767 | if( verboseFlag || dryRunFlag ){ |
| 768 | fossil_print("Removed unmanaged file: %s\n", zName+nRoot); |
| 769 | } |
| 770 | }else if( verboseFlag ){ |
| 771 | fossil_print("Could not remove file: %s\n", zName+nRoot); |
| @@ -777,11 +777,11 @@ | |
| 777 | Glob *pEmptyDirs = glob_create(db_get("empty-dirs", 0)); |
| 778 | Stmt q; |
| 779 | Blob root; |
| 780 | blob_init(&root, g.zLocalRoot, nRoot - 1); |
| 781 | vfile_dir_scan(&root, blob_size(&root), scanFlags, pIgnore, |
| 782 | pEmptyDirs); |
| 783 | blob_reset(&root); |
| 784 | db_prepare(&q, |
| 785 | "SELECT %Q || x FROM dscan_temp" |
| 786 | " WHERE x NOT IN (%s) AND y = 0" |
| 787 | " ORDER BY 1 DESC", |
| @@ -809,11 +809,11 @@ | |
| 809 | blob_reset(&ans); |
| 810 | continue; |
| 811 | } |
| 812 | blob_reset(&ans); |
| 813 | } |
| 814 | if( dryRunFlag || file_rmdir(zName)==0 ){ |
| 815 | if( verboseFlag || dryRunFlag ){ |
| 816 | fossil_print("Removed unmanaged directory: %s\n", zName+nRoot); |
| 817 | } |
| 818 | }else if( verboseFlag ){ |
| 819 | fossil_print("Could not remove directory: %s\n", zName+nRoot); |
| @@ -948,11 +948,11 @@ | |
| 948 | Blob prompt; |
| 949 | #if defined(_WIN32) || defined(__CYGWIN__) |
| 950 | int bomSize; |
| 951 | const unsigned char *bom = get_utf8_bom(&bomSize); |
| 952 | blob_init(&prompt, (const char *) bom, bomSize); |
| 953 | if( zInit && zInit[0]){ |
| 954 | blob_append(&prompt, zInit, -1); |
| 955 | } |
| 956 | #else |
| 957 | blob_init(&prompt, zInit, -1); |
| 958 | #endif |
| @@ -1489,11 +1489,11 @@ | |
| 1489 | fossil_free(zOrig); |
| 1490 | f = fossil_fopen(zFilename, "wb"); |
| 1491 | if( f==0 ){ |
| 1492 | fossil_warning("cannot open %s for writing", zFilename); |
| 1493 | }else{ |
| 1494 | if( fUnicode ){ |
| 1495 | int bomSize; |
| 1496 | const unsigned char *bom = get_utf8_bom(&bomSize); |
| 1497 | fwrite(bom, 1, bomSize, f); |
| 1498 | blob_to_utf8_no_bom(p, 0); |
| 1499 | }else if( fHasInvalidUtf8 ){ |
| 1500 |
M
src/db.c
+1
-1
| --- src/db.c | ||
| +++ src/db.c | ||
| @@ -1887,11 +1887,11 @@ | ||
| 1887 | 1887 | ** |
| 1888 | 1888 | ** Return the text of the string if it is found. Return NULL if not |
| 1889 | 1889 | ** found. |
| 1890 | 1890 | ** |
| 1891 | 1891 | ** If the zNonVersionedSetting parameter is not NULL then it holds the |
| 1892 | -** non-versioned value for this setting. If both a versioned and ad | |
| 1892 | +** non-versioned value for this setting. If both a versioned and a | |
| 1893 | 1893 | ** non-versioned value exist and are not equal, then a warning message |
| 1894 | 1894 | ** might be generated. |
| 1895 | 1895 | */ |
| 1896 | 1896 | char *db_get_versioned(const char *zName, char *zNonVersionedSetting){ |
| 1897 | 1897 | char *zVersionedSetting = 0; |
| 1898 | 1898 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -1887,11 +1887,11 @@ | |
| 1887 | ** |
| 1888 | ** Return the text of the string if it is found. Return NULL if not |
| 1889 | ** found. |
| 1890 | ** |
| 1891 | ** If the zNonVersionedSetting parameter is not NULL then it holds the |
| 1892 | ** non-versioned value for this setting. If both a versioned and ad |
| 1893 | ** non-versioned value exist and are not equal, then a warning message |
| 1894 | ** might be generated. |
| 1895 | */ |
| 1896 | char *db_get_versioned(const char *zName, char *zNonVersionedSetting){ |
| 1897 | char *zVersionedSetting = 0; |
| 1898 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -1887,11 +1887,11 @@ | |
| 1887 | ** |
| 1888 | ** Return the text of the string if it is found. Return NULL if not |
| 1889 | ** found. |
| 1890 | ** |
| 1891 | ** If the zNonVersionedSetting parameter is not NULL then it holds the |
| 1892 | ** non-versioned value for this setting. If both a versioned and a |
| 1893 | ** non-versioned value exist and are not equal, then a warning message |
| 1894 | ** might be generated. |
| 1895 | */ |
| 1896 | char *db_get_versioned(const char *zName, char *zNonVersionedSetting){ |
| 1897 | char *zVersionedSetting = 0; |
| 1898 |
M
src/db.c
+1
-1
| --- src/db.c | ||
| +++ src/db.c | ||
| @@ -1887,11 +1887,11 @@ | ||
| 1887 | 1887 | ** |
| 1888 | 1888 | ** Return the text of the string if it is found. Return NULL if not |
| 1889 | 1889 | ** found. |
| 1890 | 1890 | ** |
| 1891 | 1891 | ** If the zNonVersionedSetting parameter is not NULL then it holds the |
| 1892 | -** non-versioned value for this setting. If both a versioned and ad | |
| 1892 | +** non-versioned value for this setting. If both a versioned and a | |
| 1893 | 1893 | ** non-versioned value exist and are not equal, then a warning message |
| 1894 | 1894 | ** might be generated. |
| 1895 | 1895 | */ |
| 1896 | 1896 | char *db_get_versioned(const char *zName, char *zNonVersionedSetting){ |
| 1897 | 1897 | char *zVersionedSetting = 0; |
| 1898 | 1898 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -1887,11 +1887,11 @@ | |
| 1887 | ** |
| 1888 | ** Return the text of the string if it is found. Return NULL if not |
| 1889 | ** found. |
| 1890 | ** |
| 1891 | ** If the zNonVersionedSetting parameter is not NULL then it holds the |
| 1892 | ** non-versioned value for this setting. If both a versioned and ad |
| 1893 | ** non-versioned value exist and are not equal, then a warning message |
| 1894 | ** might be generated. |
| 1895 | */ |
| 1896 | char *db_get_versioned(const char *zName, char *zNonVersionedSetting){ |
| 1897 | char *zVersionedSetting = 0; |
| 1898 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -1887,11 +1887,11 @@ | |
| 1887 | ** |
| 1888 | ** Return the text of the string if it is found. Return NULL if not |
| 1889 | ** found. |
| 1890 | ** |
| 1891 | ** If the zNonVersionedSetting parameter is not NULL then it holds the |
| 1892 | ** non-versioned value for this setting. If both a versioned and a |
| 1893 | ** non-versioned value exist and are not equal, then a warning message |
| 1894 | ** might be generated. |
| 1895 | */ |
| 1896 | char *db_get_versioned(const char *zName, char *zNonVersionedSetting){ |
| 1897 | char *zVersionedSetting = 0; |
| 1898 |
+14
-10
| --- src/report.c | ||
| +++ src/report.c | ||
| @@ -1083,11 +1083,11 @@ | ||
| 1083 | 1083 | ** then the output consists of lines of tab-separated fields instead of |
| 1084 | 1084 | ** an HTML table. |
| 1085 | 1085 | */ |
| 1086 | 1086 | void rptview_page(void){ |
| 1087 | 1087 | int count = 0; |
| 1088 | - int rn; | |
| 1088 | + int rn, rc; | |
| 1089 | 1089 | char *zSql; |
| 1090 | 1090 | char *zTitle; |
| 1091 | 1091 | char *zOwner; |
| 1092 | 1092 | char *zClrKey; |
| 1093 | 1093 | int tabs; |
| @@ -1095,28 +1095,32 @@ | ||
| 1095 | 1095 | char *zErr1 = 0; |
| 1096 | 1096 | char *zErr2 = 0; |
| 1097 | 1097 | |
| 1098 | 1098 | login_check_credentials(); |
| 1099 | 1099 | if( !g.perm.RdTkt ){ login_needed(g.anon.RdTkt); return; } |
| 1100 | - rn = atoi(PD("rn","0")); | |
| 1101 | - if( rn==0 ){ | |
| 1102 | - cgi_redirect("reportlist"); | |
| 1103 | - return; | |
| 1104 | - } | |
| 1105 | 1100 | tabs = P("tablist")!=0; |
| 1106 | - /* view_add_functions(tabs); */ | |
| 1107 | 1101 | db_prepare(&q, |
| 1108 | - "SELECT title, sqlcode, owner, cols FROM reportfmt WHERE rn=%d", rn); | |
| 1109 | - if( db_step(&q)!=SQLITE_ROW ){ | |
| 1110 | - cgi_redirect("reportlist"); | |
| 1102 | + "SELECT title, sqlcode, owner, cols, rn FROM reportfmt WHERE rn=%d", | |
| 1103 | + atoi(PD("rn","0"))); | |
| 1104 | + rc = db_step(&q); | |
| 1105 | + if( rc!=SQLITE_ROW ){ | |
| 1106 | + db_finalize(&q); | |
| 1107 | + db_prepare(&q, | |
| 1108 | + "SELECT title, sqlcode, owner, cols, rn FROM reportfmt WHERE title GLOB %Q", | |
| 1109 | + P("title")); | |
| 1110 | + rc = db_step(&q); | |
| 1111 | + } | |
| 1112 | + if( rc!=SQLITE_ROW ){ | |
| 1111 | 1113 | db_finalize(&q); |
| 1114 | + cgi_redirect("reportlist"); | |
| 1112 | 1115 | return; |
| 1113 | 1116 | } |
| 1114 | 1117 | zTitle = db_column_malloc(&q, 0); |
| 1115 | 1118 | zSql = db_column_malloc(&q, 1); |
| 1116 | 1119 | zOwner = db_column_malloc(&q, 2); |
| 1117 | 1120 | zClrKey = db_column_malloc(&q, 3); |
| 1121 | + rn = db_column_int(&q,4); | |
| 1118 | 1122 | db_finalize(&q); |
| 1119 | 1123 | |
| 1120 | 1124 | if( P("order_by") ){ |
| 1121 | 1125 | /* |
| 1122 | 1126 | ** If the user wants to do a column sort, wrap the query into a sub |
| 1123 | 1127 |
| --- src/report.c | |
| +++ src/report.c | |
| @@ -1083,11 +1083,11 @@ | |
| 1083 | ** then the output consists of lines of tab-separated fields instead of |
| 1084 | ** an HTML table. |
| 1085 | */ |
| 1086 | void rptview_page(void){ |
| 1087 | int count = 0; |
| 1088 | int rn; |
| 1089 | char *zSql; |
| 1090 | char *zTitle; |
| 1091 | char *zOwner; |
| 1092 | char *zClrKey; |
| 1093 | int tabs; |
| @@ -1095,28 +1095,32 @@ | |
| 1095 | char *zErr1 = 0; |
| 1096 | char *zErr2 = 0; |
| 1097 | |
| 1098 | login_check_credentials(); |
| 1099 | if( !g.perm.RdTkt ){ login_needed(g.anon.RdTkt); return; } |
| 1100 | rn = atoi(PD("rn","0")); |
| 1101 | if( rn==0 ){ |
| 1102 | cgi_redirect("reportlist"); |
| 1103 | return; |
| 1104 | } |
| 1105 | tabs = P("tablist")!=0; |
| 1106 | /* view_add_functions(tabs); */ |
| 1107 | db_prepare(&q, |
| 1108 | "SELECT title, sqlcode, owner, cols FROM reportfmt WHERE rn=%d", rn); |
| 1109 | if( db_step(&q)!=SQLITE_ROW ){ |
| 1110 | cgi_redirect("reportlist"); |
| 1111 | db_finalize(&q); |
| 1112 | return; |
| 1113 | } |
| 1114 | zTitle = db_column_malloc(&q, 0); |
| 1115 | zSql = db_column_malloc(&q, 1); |
| 1116 | zOwner = db_column_malloc(&q, 2); |
| 1117 | zClrKey = db_column_malloc(&q, 3); |
| 1118 | db_finalize(&q); |
| 1119 | |
| 1120 | if( P("order_by") ){ |
| 1121 | /* |
| 1122 | ** If the user wants to do a column sort, wrap the query into a sub |
| 1123 |
| --- src/report.c | |
| +++ src/report.c | |
| @@ -1083,11 +1083,11 @@ | |
| 1083 | ** then the output consists of lines of tab-separated fields instead of |
| 1084 | ** an HTML table. |
| 1085 | */ |
| 1086 | void rptview_page(void){ |
| 1087 | int count = 0; |
| 1088 | int rn, rc; |
| 1089 | char *zSql; |
| 1090 | char *zTitle; |
| 1091 | char *zOwner; |
| 1092 | char *zClrKey; |
| 1093 | int tabs; |
| @@ -1095,28 +1095,32 @@ | |
| 1095 | char *zErr1 = 0; |
| 1096 | char *zErr2 = 0; |
| 1097 | |
| 1098 | login_check_credentials(); |
| 1099 | if( !g.perm.RdTkt ){ login_needed(g.anon.RdTkt); return; } |
| 1100 | tabs = P("tablist")!=0; |
| 1101 | db_prepare(&q, |
| 1102 | "SELECT title, sqlcode, owner, cols, rn FROM reportfmt WHERE rn=%d", |
| 1103 | atoi(PD("rn","0"))); |
| 1104 | rc = db_step(&q); |
| 1105 | if( rc!=SQLITE_ROW ){ |
| 1106 | db_finalize(&q); |
| 1107 | db_prepare(&q, |
| 1108 | "SELECT title, sqlcode, owner, cols, rn FROM reportfmt WHERE title GLOB %Q", |
| 1109 | P("title")); |
| 1110 | rc = db_step(&q); |
| 1111 | } |
| 1112 | if( rc!=SQLITE_ROW ){ |
| 1113 | db_finalize(&q); |
| 1114 | cgi_redirect("reportlist"); |
| 1115 | return; |
| 1116 | } |
| 1117 | zTitle = db_column_malloc(&q, 0); |
| 1118 | zSql = db_column_malloc(&q, 1); |
| 1119 | zOwner = db_column_malloc(&q, 2); |
| 1120 | zClrKey = db_column_malloc(&q, 3); |
| 1121 | rn = db_column_int(&q,4); |
| 1122 | db_finalize(&q); |
| 1123 | |
| 1124 | if( P("order_by") ){ |
| 1125 | /* |
| 1126 | ** If the user wants to do a column sort, wrap the query into a sub |
| 1127 |
+4
-7
| --- src/vfile.c | ||
| +++ src/vfile.c | ||
| @@ -546,12 +546,11 @@ | ||
| 546 | 546 | int vfile_dir_scan( |
| 547 | 547 | Blob *pPath, /* Base directory to be scanned */ |
| 548 | 548 | int nPrefix, /* Number of bytes in base directory name */ |
| 549 | 549 | unsigned scanFlags, /* Zero or more SCAN_xxx flags */ |
| 550 | 550 | Glob *pIgnore1, /* Do not add directories that match this GLOB */ |
| 551 | - Glob *pIgnore2, /* Omit directories matching this GLOB too */ | |
| 552 | - Glob *pIgnore3 /* Omit directories matching this GLOB too */ | |
| 551 | + Glob *pIgnore2 /* Omit directories matching this GLOB too */ | |
| 553 | 552 | ){ |
| 554 | 553 | int result = 0; |
| 555 | 554 | DIR *d; |
| 556 | 555 | int origSize; |
| 557 | 556 | struct dirent *pEntry; |
| @@ -560,15 +559,14 @@ | ||
| 560 | 559 | static Stmt upd; |
| 561 | 560 | static int depth = 0; |
| 562 | 561 | void *zNative; |
| 563 | 562 | |
| 564 | 563 | origSize = blob_size(pPath); |
| 565 | - if( pIgnore1 || pIgnore2 || pIgnore3 ){ | |
| 564 | + if( pIgnore1 || pIgnore2 ){ | |
| 566 | 565 | blob_appendf(pPath, "/"); |
| 567 | 566 | if( glob_match(pIgnore1, &blob_str(pPath)[nPrefix+1]) ) skipAll = 1; |
| 568 | 567 | if( glob_match(pIgnore2, &blob_str(pPath)[nPrefix+1]) ) skipAll = 1; |
| 569 | - if( glob_match(pIgnore3, &blob_str(pPath)[nPrefix+1]) ) skipAll = 1; | |
| 570 | 568 | blob_resize(pPath, origSize); |
| 571 | 569 | } |
| 572 | 570 | if( skipAll ) return result; |
| 573 | 571 | |
| 574 | 572 | if( depth==0 ){ |
| @@ -604,12 +602,11 @@ | ||
| 604 | 602 | zOrigPath = mprintf("%s", blob_str(pPath)); |
| 605 | 603 | zUtf8 = fossil_filename_to_utf8(pEntry->d_name); |
| 606 | 604 | blob_appendf(pPath, "/%s", zUtf8); |
| 607 | 605 | zPath = blob_str(pPath); |
| 608 | 606 | if( glob_match(pIgnore1, &zPath[nPrefix+1]) || |
| 609 | - glob_match(pIgnore2, &zPath[nPrefix+1]) || | |
| 610 | - glob_match(pIgnore3, &zPath[nPrefix+1]) ){ | |
| 607 | + glob_match(pIgnore2, &zPath[nPrefix+1]) ){ | |
| 611 | 608 | /* do nothing */ |
| 612 | 609 | #ifdef _DIRENT_HAVE_D_TYPE |
| 613 | 610 | }else if( (pEntry->d_type==DT_UNKNOWN || pEntry->d_type==DT_LNK) |
| 614 | 611 | ? (file_wd_isdir(zPath)==1) : (pEntry->d_type==DT_DIR) ){ |
| 615 | 612 | #else |
| @@ -616,11 +613,11 @@ | ||
| 616 | 613 | }else if( file_wd_isdir(zPath)==1 ){ |
| 617 | 614 | #endif |
| 618 | 615 | if( (scanFlags & SCAN_NESTED) || !vfile_top_of_checkout(zPath) ){ |
| 619 | 616 | char *zSavePath = mprintf("%s", zPath); |
| 620 | 617 | int count = vfile_dir_scan(pPath, nPrefix, scanFlags, pIgnore1, |
| 621 | - pIgnore2, pIgnore3); | |
| 618 | + pIgnore2); | |
| 622 | 619 | db_bind_text(&ins, ":file", &zSavePath[nPrefix+1]); |
| 623 | 620 | db_bind_int(&ins, ":count", count); |
| 624 | 621 | db_step(&ins); |
| 625 | 622 | db_reset(&ins); |
| 626 | 623 | fossil_free(zSavePath); |
| 627 | 624 |
| --- src/vfile.c | |
| +++ src/vfile.c | |
| @@ -546,12 +546,11 @@ | |
| 546 | int vfile_dir_scan( |
| 547 | Blob *pPath, /* Base directory to be scanned */ |
| 548 | int nPrefix, /* Number of bytes in base directory name */ |
| 549 | unsigned scanFlags, /* Zero or more SCAN_xxx flags */ |
| 550 | Glob *pIgnore1, /* Do not add directories that match this GLOB */ |
| 551 | Glob *pIgnore2, /* Omit directories matching this GLOB too */ |
| 552 | Glob *pIgnore3 /* Omit directories matching this GLOB too */ |
| 553 | ){ |
| 554 | int result = 0; |
| 555 | DIR *d; |
| 556 | int origSize; |
| 557 | struct dirent *pEntry; |
| @@ -560,15 +559,14 @@ | |
| 560 | static Stmt upd; |
| 561 | static int depth = 0; |
| 562 | void *zNative; |
| 563 | |
| 564 | origSize = blob_size(pPath); |
| 565 | if( pIgnore1 || pIgnore2 || pIgnore3 ){ |
| 566 | blob_appendf(pPath, "/"); |
| 567 | if( glob_match(pIgnore1, &blob_str(pPath)[nPrefix+1]) ) skipAll = 1; |
| 568 | if( glob_match(pIgnore2, &blob_str(pPath)[nPrefix+1]) ) skipAll = 1; |
| 569 | if( glob_match(pIgnore3, &blob_str(pPath)[nPrefix+1]) ) skipAll = 1; |
| 570 | blob_resize(pPath, origSize); |
| 571 | } |
| 572 | if( skipAll ) return result; |
| 573 | |
| 574 | if( depth==0 ){ |
| @@ -604,12 +602,11 @@ | |
| 604 | zOrigPath = mprintf("%s", blob_str(pPath)); |
| 605 | zUtf8 = fossil_filename_to_utf8(pEntry->d_name); |
| 606 | blob_appendf(pPath, "/%s", zUtf8); |
| 607 | zPath = blob_str(pPath); |
| 608 | if( glob_match(pIgnore1, &zPath[nPrefix+1]) || |
| 609 | glob_match(pIgnore2, &zPath[nPrefix+1]) || |
| 610 | glob_match(pIgnore3, &zPath[nPrefix+1]) ){ |
| 611 | /* do nothing */ |
| 612 | #ifdef _DIRENT_HAVE_D_TYPE |
| 613 | }else if( (pEntry->d_type==DT_UNKNOWN || pEntry->d_type==DT_LNK) |
| 614 | ? (file_wd_isdir(zPath)==1) : (pEntry->d_type==DT_DIR) ){ |
| 615 | #else |
| @@ -616,11 +613,11 @@ | |
| 616 | }else if( file_wd_isdir(zPath)==1 ){ |
| 617 | #endif |
| 618 | if( (scanFlags & SCAN_NESTED) || !vfile_top_of_checkout(zPath) ){ |
| 619 | char *zSavePath = mprintf("%s", zPath); |
| 620 | int count = vfile_dir_scan(pPath, nPrefix, scanFlags, pIgnore1, |
| 621 | pIgnore2, pIgnore3); |
| 622 | db_bind_text(&ins, ":file", &zSavePath[nPrefix+1]); |
| 623 | db_bind_int(&ins, ":count", count); |
| 624 | db_step(&ins); |
| 625 | db_reset(&ins); |
| 626 | fossil_free(zSavePath); |
| 627 |
| --- src/vfile.c | |
| +++ src/vfile.c | |
| @@ -546,12 +546,11 @@ | |
| 546 | int vfile_dir_scan( |
| 547 | Blob *pPath, /* Base directory to be scanned */ |
| 548 | int nPrefix, /* Number of bytes in base directory name */ |
| 549 | unsigned scanFlags, /* Zero or more SCAN_xxx flags */ |
| 550 | Glob *pIgnore1, /* Do not add directories that match this GLOB */ |
| 551 | Glob *pIgnore2 /* Omit directories matching this GLOB too */ |
| 552 | ){ |
| 553 | int result = 0; |
| 554 | DIR *d; |
| 555 | int origSize; |
| 556 | struct dirent *pEntry; |
| @@ -560,15 +559,14 @@ | |
| 559 | static Stmt upd; |
| 560 | static int depth = 0; |
| 561 | void *zNative; |
| 562 | |
| 563 | origSize = blob_size(pPath); |
| 564 | if( pIgnore1 || pIgnore2 ){ |
| 565 | blob_appendf(pPath, "/"); |
| 566 | if( glob_match(pIgnore1, &blob_str(pPath)[nPrefix+1]) ) skipAll = 1; |
| 567 | if( glob_match(pIgnore2, &blob_str(pPath)[nPrefix+1]) ) skipAll = 1; |
| 568 | blob_resize(pPath, origSize); |
| 569 | } |
| 570 | if( skipAll ) return result; |
| 571 | |
| 572 | if( depth==0 ){ |
| @@ -604,12 +602,11 @@ | |
| 602 | zOrigPath = mprintf("%s", blob_str(pPath)); |
| 603 | zUtf8 = fossil_filename_to_utf8(pEntry->d_name); |
| 604 | blob_appendf(pPath, "/%s", zUtf8); |
| 605 | zPath = blob_str(pPath); |
| 606 | if( glob_match(pIgnore1, &zPath[nPrefix+1]) || |
| 607 | glob_match(pIgnore2, &zPath[nPrefix+1]) ){ |
| 608 | /* do nothing */ |
| 609 | #ifdef _DIRENT_HAVE_D_TYPE |
| 610 | }else if( (pEntry->d_type==DT_UNKNOWN || pEntry->d_type==DT_LNK) |
| 611 | ? (file_wd_isdir(zPath)==1) : (pEntry->d_type==DT_DIR) ){ |
| 612 | #else |
| @@ -616,11 +613,11 @@ | |
| 613 | }else if( file_wd_isdir(zPath)==1 ){ |
| 614 | #endif |
| 615 | if( (scanFlags & SCAN_NESTED) || !vfile_top_of_checkout(zPath) ){ |
| 616 | char *zSavePath = mprintf("%s", zPath); |
| 617 | int count = vfile_dir_scan(pPath, nPrefix, scanFlags, pIgnore1, |
| 618 | pIgnore2); |
| 619 | db_bind_text(&ins, ":file", &zSavePath[nPrefix+1]); |
| 620 | db_bind_int(&ins, ":count", count); |
| 621 | db_step(&ins); |
| 622 | db_reset(&ins); |
| 623 | fossil_free(zSavePath); |
| 624 |
+1
-1
| --- test/release-checklist.wiki | ||
| +++ test/release-checklist.wiki | ||
| @@ -3,11 +3,11 @@ | ||
| 3 | 3 | This file describes the testing procedures for Fossil prior to an |
| 4 | 4 | official release. |
| 5 | 5 | |
| 6 | 6 | <ol> |
| 7 | 7 | <li><p> |
| 8 | -From a private directory (not the source tree) run | |
| 8 | +From a private directory (not the source tree) run | |
| 9 | 9 | "<b>tclsh $SRC/test/tester.tcl $FOSSIL</b>" where $FOSSIL is the |
| 10 | 10 | name of the executable under test and $SRC is the source tree. |
| 11 | 11 | Verify that there are no errors. |
| 12 | 12 | |
| 13 | 13 | <li><p> |
| 14 | 14 |
| --- test/release-checklist.wiki | |
| +++ test/release-checklist.wiki | |
| @@ -3,11 +3,11 @@ | |
| 3 | This file describes the testing procedures for Fossil prior to an |
| 4 | official release. |
| 5 | |
| 6 | <ol> |
| 7 | <li><p> |
| 8 | From a private directory (not the source tree) run |
| 9 | "<b>tclsh $SRC/test/tester.tcl $FOSSIL</b>" where $FOSSIL is the |
| 10 | name of the executable under test and $SRC is the source tree. |
| 11 | Verify that there are no errors. |
| 12 | |
| 13 | <li><p> |
| 14 |
| --- test/release-checklist.wiki | |
| +++ test/release-checklist.wiki | |
| @@ -3,11 +3,11 @@ | |
| 3 | This file describes the testing procedures for Fossil prior to an |
| 4 | official release. |
| 5 | |
| 6 | <ol> |
| 7 | <li><p> |
| 8 | From a private directory (not the source tree) run |
| 9 | "<b>tclsh $SRC/test/tester.tcl $FOSSIL</b>" where $FOSSIL is the |
| 10 | name of the executable under test and $SRC is the source tree. |
| 11 | Verify that there are no errors. |
| 12 | |
| 13 | <li><p> |
| 14 |
+2
-2
| --- test/th1.test | ||
| +++ test/th1.test | ||
| @@ -42,16 +42,16 @@ | ||
| 42 | 42 | test th1-setting-4 {$RESULT eq {TH_ERROR: no value for setting "abc"}} |
| 43 | 43 | |
| 44 | 44 | ############################################################################### |
| 45 | 45 | |
| 46 | 46 | fossil test-th-eval --open-config "setting autosync" |
| 47 | -test th1-setting-5 {$RESULT eq 0 || $RESULT eq 1} | |
| 47 | +test th1-setting-5 {$RESULT eq 0 || $RESULT eq 1 || $RESULT eq "on"} | |
| 48 | 48 | |
| 49 | 49 | ############################################################################### |
| 50 | 50 | |
| 51 | 51 | fossil test-th-eval --open-config "setting -strict autosync" |
| 52 | -test th1-setting-6 {$RESULT eq 0 || $RESULT eq 1} | |
| 52 | +test th1-setting-6 {$RESULT eq 0 || $RESULT eq 1 || $RESULT eq "on"} | |
| 53 | 53 | |
| 54 | 54 | ############################################################################### |
| 55 | 55 | |
| 56 | 56 | fossil test-th-eval --open-config "setting --" |
| 57 | 57 | test th1-setting-7 {$RESULT eq \ |
| 58 | 58 |
| --- test/th1.test | |
| +++ test/th1.test | |
| @@ -42,16 +42,16 @@ | |
| 42 | test th1-setting-4 {$RESULT eq {TH_ERROR: no value for setting "abc"}} |
| 43 | |
| 44 | ############################################################################### |
| 45 | |
| 46 | fossil test-th-eval --open-config "setting autosync" |
| 47 | test th1-setting-5 {$RESULT eq 0 || $RESULT eq 1} |
| 48 | |
| 49 | ############################################################################### |
| 50 | |
| 51 | fossil test-th-eval --open-config "setting -strict autosync" |
| 52 | test th1-setting-6 {$RESULT eq 0 || $RESULT eq 1} |
| 53 | |
| 54 | ############################################################################### |
| 55 | |
| 56 | fossil test-th-eval --open-config "setting --" |
| 57 | test th1-setting-7 {$RESULT eq \ |
| 58 |
| --- test/th1.test | |
| +++ test/th1.test | |
| @@ -42,16 +42,16 @@ | |
| 42 | test th1-setting-4 {$RESULT eq {TH_ERROR: no value for setting "abc"}} |
| 43 | |
| 44 | ############################################################################### |
| 45 | |
| 46 | fossil test-th-eval --open-config "setting autosync" |
| 47 | test th1-setting-5 {$RESULT eq 0 || $RESULT eq 1 || $RESULT eq "on"} |
| 48 | |
| 49 | ############################################################################### |
| 50 | |
| 51 | fossil test-th-eval --open-config "setting -strict autosync" |
| 52 | test th1-setting-6 {$RESULT eq 0 || $RESULT eq 1 || $RESULT eq "on"} |
| 53 | |
| 54 | ############################################################################### |
| 55 | |
| 56 | fossil test-th-eval --open-config "setting --" |
| 57 | test th1-setting-7 {$RESULT eq \ |
| 58 |