Fossil SCM

Merge trunk.

andygoth 2015-05-02 20:37 andygoth-versioned-open merge
Commit 794d4752aede6fc88ffb495f8525ce2df8f0a744
--- skins/eagle/header.txt
+++ skins/eagle/header.txt
@@ -123,10 +123,11 @@
123123
menulink /ticket Tickets
124124
}
125125
if {[anoncap j]} {
126126
menulink /wiki Wiki
127127
}
128
+menulink /sitemap More...
128129
if {[hascap s]} {
129130
menulink /setup Admin
130131
} elseif {[hascap a]} {
131132
menulink /setup_ulist Users
132133
}
133134
--- 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 @@
4444
Blob where;
4545
const char *zName;
4646
int i;
4747
4848
blob_zero(&where);
49
- for(i=2; i<g.argc; i++) {
49
+ for(i=2; i<g.argc; i++){
5050
Blob fname;
5151
file_tree_name(g.argv[i], &fname, 1);
5252
zName = blob_str(&fname);
53
- if( fossil_strcmp(zName, ".")==0 ) {
53
+ if( fossil_strcmp(zName, ".")==0 ){
5454
blob_reset(&where);
5555
break;
5656
}
5757
blob_append_sql(&where,
5858
" %s (pathname=%Q %s) "
@@ -290,11 +290,11 @@
290290
blob_zero(&where);
291291
for(i=2; i<g.argc; i++){
292292
Blob fname;
293293
file_tree_name(g.argv[i], &fname, 1);
294294
zName = blob_str(&fname);
295
- if( fossil_strcmp(zName, ".")==0 ) {
295
+ if( fossil_strcmp(zName, ".")==0 ){
296296
blob_reset(&where);
297297
break;
298298
}
299299
blob_append_sql(&where,
300300
" %s (pathname=%Q %s) "
@@ -403,11 +403,11 @@
403403
blob_zero(&where);
404404
for(i=2; i<g.argc; i++){
405405
Blob fname;
406406
file_tree_name(g.argv[i], &fname, 1);
407407
zName = blob_str(&fname);
408
- if( fossil_strcmp(zName, ".")==0 ) {
408
+ if( fossil_strcmp(zName, ".")==0 ){
409409
blob_reset(&where);
410410
break;
411411
}
412412
blob_append_sql(&where,
413413
" %s (pathname=%Q %s) "
@@ -595,11 +595,11 @@
595595
db_multi_exec("DELETE FROM sfile WHERE x IN (SELECT pathname FROM vfile)");
596596
blob_zero(&rewrittenPathname);
597597
g.allowSymlinks = 1; /* Report on symbolic links */
598598
while( db_step(&q)==SQLITE_ROW ){
599599
zDisplayName = zPathname = db_column_text(&q, 0);
600
- if( cwdRelative ) {
600
+ if( cwdRelative ){
601601
char *zFullName = mprintf("%s%s", g.zLocalRoot, zPathname);
602602
file_relative_name(zFullName, &rewrittenPathname, 0);
603603
free(zFullName);
604604
zDisplayName = blob_str(&rewrittenPathname);
605605
if( zDisplayName[0]=='.' && zDisplayName[1]=='/' ){
@@ -761,11 +761,11 @@
761761
blob_reset(&ans);
762762
continue;
763763
}
764764
blob_reset(&ans);
765765
}
766
- if ( dryRunFlag || file_delete(zName)==0 ){
766
+ if( dryRunFlag || file_delete(zName)==0 ){
767767
if( verboseFlag || dryRunFlag ){
768768
fossil_print("Removed unmanaged file: %s\n", zName+nRoot);
769769
}
770770
}else if( verboseFlag ){
771771
fossil_print("Could not remove file: %s\n", zName+nRoot);
@@ -777,11 +777,11 @@
777777
Glob *pEmptyDirs = glob_create(db_get("empty-dirs", 0));
778778
Stmt q;
779779
Blob root;
780780
blob_init(&root, g.zLocalRoot, nRoot - 1);
781781
vfile_dir_scan(&root, blob_size(&root), scanFlags, pIgnore,
782
- pEmptyDirs, 0);
782
+ pEmptyDirs);
783783
blob_reset(&root);
784784
db_prepare(&q,
785785
"SELECT %Q || x FROM dscan_temp"
786786
" WHERE x NOT IN (%s) AND y = 0"
787787
" ORDER BY 1 DESC",
@@ -809,11 +809,11 @@
809809
blob_reset(&ans);
810810
continue;
811811
}
812812
blob_reset(&ans);
813813
}
814
- if ( dryRunFlag || file_rmdir(zName)==0 ){
814
+ if( dryRunFlag || file_rmdir(zName)==0 ){
815815
if( verboseFlag || dryRunFlag ){
816816
fossil_print("Removed unmanaged directory: %s\n", zName+nRoot);
817817
}
818818
}else if( verboseFlag ){
819819
fossil_print("Could not remove directory: %s\n", zName+nRoot);
@@ -948,11 +948,11 @@
948948
Blob prompt;
949949
#if defined(_WIN32) || defined(__CYGWIN__)
950950
int bomSize;
951951
const unsigned char *bom = get_utf8_bom(&bomSize);
952952
blob_init(&prompt, (const char *) bom, bomSize);
953
- if( zInit && zInit[0]) {
953
+ if( zInit && zInit[0]){
954954
blob_append(&prompt, zInit, -1);
955955
}
956956
#else
957957
blob_init(&prompt, zInit, -1);
958958
#endif
@@ -1489,11 +1489,11 @@
14891489
fossil_free(zOrig);
14901490
f = fossil_fopen(zFilename, "wb");
14911491
if( f==0 ){
14921492
fossil_warning("cannot open %s for writing", zFilename);
14931493
}else{
1494
- if( fUnicode ) {
1494
+ if( fUnicode ){
14951495
int bomSize;
14961496
const unsigned char *bom = get_utf8_bom(&bomSize);
14971497
fwrite(bom, 1, bomSize, f);
14981498
blob_to_utf8_no_bom(p, 0);
14991499
}else if( fHasInvalidUtf8 ){
15001500
--- 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
+1 -1
--- src/db.c
+++ src/db.c
@@ -1887,11 +1887,11 @@
18871887
**
18881888
** Return the text of the string if it is found. Return NULL if not
18891889
** found.
18901890
**
18911891
** 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
18931893
** non-versioned value exist and are not equal, then a warning message
18941894
** might be generated.
18951895
*/
18961896
char *db_get_versioned(const char *zName, char *zNonVersionedSetting){
18971897
char *zVersionedSetting = 0;
18981898
--- 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
+1 -1
--- src/db.c
+++ src/db.c
@@ -1887,11 +1887,11 @@
18871887
**
18881888
** Return the text of the string if it is found. Return NULL if not
18891889
** found.
18901890
**
18911891
** 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
18931893
** non-versioned value exist and are not equal, then a warning message
18941894
** might be generated.
18951895
*/
18961896
char *db_get_versioned(const char *zName, char *zNonVersionedSetting){
18971897
char *zVersionedSetting = 0;
18981898
--- 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 @@
10831083
** then the output consists of lines of tab-separated fields instead of
10841084
** an HTML table.
10851085
*/
10861086
void rptview_page(void){
10871087
int count = 0;
1088
- int rn;
1088
+ int rn, rc;
10891089
char *zSql;
10901090
char *zTitle;
10911091
char *zOwner;
10921092
char *zClrKey;
10931093
int tabs;
@@ -1095,28 +1095,32 @@
10951095
char *zErr1 = 0;
10961096
char *zErr2 = 0;
10971097
10981098
login_check_credentials();
10991099
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
- }
11051100
tabs = P("tablist")!=0;
1106
- /* view_add_functions(tabs); */
11071101
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 ){
11111113
db_finalize(&q);
1114
+ cgi_redirect("reportlist");
11121115
return;
11131116
}
11141117
zTitle = db_column_malloc(&q, 0);
11151118
zSql = db_column_malloc(&q, 1);
11161119
zOwner = db_column_malloc(&q, 2);
11171120
zClrKey = db_column_malloc(&q, 3);
1121
+ rn = db_column_int(&q,4);
11181122
db_finalize(&q);
11191123
11201124
if( P("order_by") ){
11211125
/*
11221126
** If the user wants to do a column sort, wrap the query into a sub
11231127
--- 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 @@
546546
int vfile_dir_scan(
547547
Blob *pPath, /* Base directory to be scanned */
548548
int nPrefix, /* Number of bytes in base directory name */
549549
unsigned scanFlags, /* Zero or more SCAN_xxx flags */
550550
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 */
553552
){
554553
int result = 0;
555554
DIR *d;
556555
int origSize;
557556
struct dirent *pEntry;
@@ -560,15 +559,14 @@
560559
static Stmt upd;
561560
static int depth = 0;
562561
void *zNative;
563562
564563
origSize = blob_size(pPath);
565
- if( pIgnore1 || pIgnore2 || pIgnore3 ){
564
+ if( pIgnore1 || pIgnore2 ){
566565
blob_appendf(pPath, "/");
567566
if( glob_match(pIgnore1, &blob_str(pPath)[nPrefix+1]) ) skipAll = 1;
568567
if( glob_match(pIgnore2, &blob_str(pPath)[nPrefix+1]) ) skipAll = 1;
569
- if( glob_match(pIgnore3, &blob_str(pPath)[nPrefix+1]) ) skipAll = 1;
570568
blob_resize(pPath, origSize);
571569
}
572570
if( skipAll ) return result;
573571
574572
if( depth==0 ){
@@ -604,12 +602,11 @@
604602
zOrigPath = mprintf("%s", blob_str(pPath));
605603
zUtf8 = fossil_filename_to_utf8(pEntry->d_name);
606604
blob_appendf(pPath, "/%s", zUtf8);
607605
zPath = blob_str(pPath);
608606
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]) ){
611608
/* do nothing */
612609
#ifdef _DIRENT_HAVE_D_TYPE
613610
}else if( (pEntry->d_type==DT_UNKNOWN || pEntry->d_type==DT_LNK)
614611
? (file_wd_isdir(zPath)==1) : (pEntry->d_type==DT_DIR) ){
615612
#else
@@ -616,11 +613,11 @@
616613
}else if( file_wd_isdir(zPath)==1 ){
617614
#endif
618615
if( (scanFlags & SCAN_NESTED) || !vfile_top_of_checkout(zPath) ){
619616
char *zSavePath = mprintf("%s", zPath);
620617
int count = vfile_dir_scan(pPath, nPrefix, scanFlags, pIgnore1,
621
- pIgnore2, pIgnore3);
618
+ pIgnore2);
622619
db_bind_text(&ins, ":file", &zSavePath[nPrefix+1]);
623620
db_bind_int(&ins, ":count", count);
624621
db_step(&ins);
625622
db_reset(&ins);
626623
fossil_free(zSavePath);
627624
--- 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
--- test/release-checklist.wiki
+++ test/release-checklist.wiki
@@ -3,11 +3,11 @@
33
This file describes the testing procedures for Fossil prior to an
44
official release.
55
66
<ol>
77
<li><p>
8
-From a private directory (not the source tree) run
8
+From a private directory (not the source tree) run
99
"<b>tclsh $SRC/test/tester.tcl $FOSSIL</b>" where $FOSSIL is the
1010
name of the executable under test and $SRC is the source tree.
1111
Verify that there are no errors.
1212
1313
<li><p>
1414
--- 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 @@
4242
test th1-setting-4 {$RESULT eq {TH_ERROR: no value for setting "abc"}}
4343
4444
###############################################################################
4545
4646
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"}
4848
4949
###############################################################################
5050
5151
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"}
5353
5454
###############################################################################
5555
5656
fossil test-th-eval --open-config "setting --"
5757
test th1-setting-7 {$RESULT eq \
5858
--- 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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button