Fossil SCM

Sync with trunk (to fix some JS error showing up in the developer console).

florian 2024-09-13 14:02 diff-keyboard-navigation merge
Commit a8ef0da81ecf18dc61ea0d964dbcf402908bffb20baae553437bba030d104915
+3 -1
--- src/builtin.c
+++ src/builtin.c
@@ -718,11 +718,13 @@
718718
** the final one! */
719719
} fjs[] = {
720720
/* This list ordering isn't strictly important. */
721721
{"confirmer", 0, 0},
722722
{"copybutton", 0, "dom\0"},
723
- {"diff", 0, "dom\0fetch\0"},
723
+ {"diff", 0, "dom\0fetch\0storage\0"
724
+ /* maintenance note: "diff" needs "storage" for storing the the
725
+ ** sbs-sync-scroll toggle. */},
724726
{"dom", 0, 0},
725727
{"fetch", 0, 0},
726728
{"numbered-lines", 0, "popupwidget\0copybutton\0"},
727729
{"pikchr", 0, "dom\0"},
728730
{"popupwidget", 0, "dom\0"},
729731
--- src/builtin.c
+++ src/builtin.c
@@ -718,11 +718,13 @@
718 ** the final one! */
719 } fjs[] = {
720 /* This list ordering isn't strictly important. */
721 {"confirmer", 0, 0},
722 {"copybutton", 0, "dom\0"},
723 {"diff", 0, "dom\0fetch\0"},
 
 
724 {"dom", 0, 0},
725 {"fetch", 0, 0},
726 {"numbered-lines", 0, "popupwidget\0copybutton\0"},
727 {"pikchr", 0, "dom\0"},
728 {"popupwidget", 0, "dom\0"},
729
--- src/builtin.c
+++ src/builtin.c
@@ -718,11 +718,13 @@
718 ** the final one! */
719 } fjs[] = {
720 /* This list ordering isn't strictly important. */
721 {"confirmer", 0, 0},
722 {"copybutton", 0, "dom\0"},
723 {"diff", 0, "dom\0fetch\0storage\0"
724 /* maintenance note: "diff" needs "storage" for storing the the
725 ** sbs-sync-scroll toggle. */},
726 {"dom", 0, 0},
727 {"fetch", 0, 0},
728 {"numbered-lines", 0, "popupwidget\0copybutton\0"},
729 {"pikchr", 0, "dom\0"},
730 {"popupwidget", 0, "dom\0"},
731
+12 -1
--- src/default.css
+++ src/default.css
@@ -905,10 +905,17 @@
905905
padding: 1px;
906906
}
907907
div.forum_body p {
908908
margin-top: 0;
909909
}
910
+div.forum-editor-widget{
911
+ display: flex;
912
+ flex-direction: column;
913
+}
914
+div.forum-editor-widget > textarea {
915
+ max-width: initial;
916
+}
910917
td.form_label {
911918
vertical-align: top;
912919
text-align: right;
913920
}
914921
.debug {
@@ -966,12 +973,16 @@
966973
div.forumpost-single-controls {
967974
/* UI controls along the bottom of a single post
968975
** in the thread view. */
969976
}
970977
.forum div > form {
978
+ width: 100%;
971979
margin: 0.5em 0;
972
- display: inline-block;
980
+ display: block;
981
+}
982
+.forum div > form > * {
983
+ margin-bottom: 0.35em;
973984
}
974985
.forum-post-collapser {
975986
/* Common style for the bottom-of-post and right-of-post
976987
expand/collapse widgets. */
977988
font-size: 0.8em;
978989
--- src/default.css
+++ src/default.css
@@ -905,10 +905,17 @@
905 padding: 1px;
906 }
907 div.forum_body p {
908 margin-top: 0;
909 }
 
 
 
 
 
 
 
910 td.form_label {
911 vertical-align: top;
912 text-align: right;
913 }
914 .debug {
@@ -966,12 +973,16 @@
966 div.forumpost-single-controls {
967 /* UI controls along the bottom of a single post
968 ** in the thread view. */
969 }
970 .forum div > form {
 
971 margin: 0.5em 0;
972 display: inline-block;
 
 
 
973 }
974 .forum-post-collapser {
975 /* Common style for the bottom-of-post and right-of-post
976 expand/collapse widgets. */
977 font-size: 0.8em;
978
--- src/default.css
+++ src/default.css
@@ -905,10 +905,17 @@
905 padding: 1px;
906 }
907 div.forum_body p {
908 margin-top: 0;
909 }
910 div.forum-editor-widget{
911 display: flex;
912 flex-direction: column;
913 }
914 div.forum-editor-widget > textarea {
915 max-width: initial;
916 }
917 td.form_label {
918 vertical-align: top;
919 text-align: right;
920 }
921 .debug {
@@ -966,12 +973,16 @@
973 div.forumpost-single-controls {
974 /* UI controls along the bottom of a single post
975 ** in the thread view. */
976 }
977 .forum div > form {
978 width: 100%;
979 margin: 0.5em 0;
980 display: block;
981 }
982 .forum div > form > * {
983 margin-bottom: 0.35em;
984 }
985 .forum-post-collapser {
986 /* Common style for the bottom-of-post and right-of-post
987 expand/collapse widgets. */
988 font-size: 0.8em;
989
+3 -2
--- src/forum.c
+++ src/forum.c
@@ -1397,12 +1397,13 @@
13971397
@ Title: <input type="input" name="title" value="%h(zTitle)" size="50"
13981398
@ maxlength="125"><br>
13991399
}
14001400
@ %z(href("%R/markup_help"))Markup style</a>:
14011401
mimetype_option_menu(zMimetype, "mimetype");
1402
- @ <br><textarea aria-label="Content:" name="content" class="wikiedit" \
1403
- @ cols="80" rows="25" wrap="virtual">%h(zContent)</textarea><br>
1402
+ @ <div class="forum-editor-widget">
1403
+ @ <textarea aria-label="Content:" name="content" class="wikiedit" \
1404
+ @ cols="80" rows="25" wrap="virtual">%h(zContent)</textarea></div>
14041405
}
14051406
14061407
/*
14071408
** WEBPAGE: forumpost_close hidden
14081409
** WEBPAGE: forumpost_reopen hidden
14091410
--- src/forum.c
+++ src/forum.c
@@ -1397,12 +1397,13 @@
1397 @ Title: <input type="input" name="title" value="%h(zTitle)" size="50"
1398 @ maxlength="125"><br>
1399 }
1400 @ %z(href("%R/markup_help"))Markup style</a>:
1401 mimetype_option_menu(zMimetype, "mimetype");
1402 @ <br><textarea aria-label="Content:" name="content" class="wikiedit" \
1403 @ cols="80" rows="25" wrap="virtual">%h(zContent)</textarea><br>
 
1404 }
1405
1406 /*
1407 ** WEBPAGE: forumpost_close hidden
1408 ** WEBPAGE: forumpost_reopen hidden
1409
--- src/forum.c
+++ src/forum.c
@@ -1397,12 +1397,13 @@
1397 @ Title: <input type="input" name="title" value="%h(zTitle)" size="50"
1398 @ maxlength="125"><br>
1399 }
1400 @ %z(href("%R/markup_help"))Markup style</a>:
1401 mimetype_option_menu(zMimetype, "mimetype");
1402 @ <div class="forum-editor-widget">
1403 @ <textarea aria-label="Content:" name="content" class="wikiedit" \
1404 @ cols="80" rows="25" wrap="virtual">%h(zContent)</textarea></div>
1405 }
1406
1407 /*
1408 ** WEBPAGE: forumpost_close hidden
1409 ** WEBPAGE: forumpost_reopen hidden
1410
+3 -3
--- src/login.c
+++ src/login.c
@@ -751,11 +751,11 @@
751751
if( anonFlag ){
752752
@ <input type="hidden" name="anon" value="1">
753753
}
754754
if( g.zLogin ){
755755
@ <p>Currently logged in as <b>%h(g.zLogin)</b>.
756
- @ <input type="submit" name="out" value="Logout"></p>
756
+ @ <input type="submit" name="out" value="Logout" autofocus></p>
757757
@ </form>
758758
}else{
759759
unsigned int uSeed = captcha_seed();
760760
if( g.zLogin==0 && (anonFlag || zGoto==0) ){
761761
zAnonPw = db_text(0, "SELECT pw FROM user"
@@ -777,11 +777,11 @@
777777
@ </span></td></tr>
778778
}
779779
@ <tr>
780780
@ <td class="form_label" id="userlabel1">User ID:</td>
781781
@ <td><input type="text" id="u" aria-labelledby="userlabel1" name="u" \
782
- @ size="30" value="%s(anonFlag?"anonymous":"")"></td>
782
+ @ size="30" value="%s(anonFlag?"anonymous":"")" autofocus></td>
783783
@ </tr>
784784
@ <tr>
785785
@ <td class="form_label" id="pswdlabel">Password:</td>
786786
@ <td><input aria-labelledby="pswdlabel" type="password" id="p" \
787787
@ name="p" value="" size="30">\
@@ -2243,11 +2243,11 @@
22432243
@ <p><input type="hidden" name="captchaseed" value="%u(uSeed)">
22442244
@ <table class="login_out">
22452245
@ <tr>
22462246
@ <td class="form_label" align="right" id="uid">User ID:</td>
22472247
@ <td><input aria-labelledby="uid" type="text" name="u" \
2248
- @ value="%h(zUserID)" size="30"></td>
2248
+ @ value="%h(zUserID)" size="30" autofocus></td>
22492249
@
22502250
if( iErrLine==1 ){
22512251
@ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
22522252
}
22532253
@ <tr>
22542254
--- src/login.c
+++ src/login.c
@@ -751,11 +751,11 @@
751 if( anonFlag ){
752 @ <input type="hidden" name="anon" value="1">
753 }
754 if( g.zLogin ){
755 @ <p>Currently logged in as <b>%h(g.zLogin)</b>.
756 @ <input type="submit" name="out" value="Logout"></p>
757 @ </form>
758 }else{
759 unsigned int uSeed = captcha_seed();
760 if( g.zLogin==0 && (anonFlag || zGoto==0) ){
761 zAnonPw = db_text(0, "SELECT pw FROM user"
@@ -777,11 +777,11 @@
777 @ </span></td></tr>
778 }
779 @ <tr>
780 @ <td class="form_label" id="userlabel1">User ID:</td>
781 @ <td><input type="text" id="u" aria-labelledby="userlabel1" name="u" \
782 @ size="30" value="%s(anonFlag?"anonymous":"")"></td>
783 @ </tr>
784 @ <tr>
785 @ <td class="form_label" id="pswdlabel">Password:</td>
786 @ <td><input aria-labelledby="pswdlabel" type="password" id="p" \
787 @ name="p" value="" size="30">\
@@ -2243,11 +2243,11 @@
2243 @ <p><input type="hidden" name="captchaseed" value="%u(uSeed)">
2244 @ <table class="login_out">
2245 @ <tr>
2246 @ <td class="form_label" align="right" id="uid">User ID:</td>
2247 @ <td><input aria-labelledby="uid" type="text" name="u" \
2248 @ value="%h(zUserID)" size="30"></td>
2249 @
2250 if( iErrLine==1 ){
2251 @ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
2252 }
2253 @ <tr>
2254
--- src/login.c
+++ src/login.c
@@ -751,11 +751,11 @@
751 if( anonFlag ){
752 @ <input type="hidden" name="anon" value="1">
753 }
754 if( g.zLogin ){
755 @ <p>Currently logged in as <b>%h(g.zLogin)</b>.
756 @ <input type="submit" name="out" value="Logout" autofocus></p>
757 @ </form>
758 }else{
759 unsigned int uSeed = captcha_seed();
760 if( g.zLogin==0 && (anonFlag || zGoto==0) ){
761 zAnonPw = db_text(0, "SELECT pw FROM user"
@@ -777,11 +777,11 @@
777 @ </span></td></tr>
778 }
779 @ <tr>
780 @ <td class="form_label" id="userlabel1">User ID:</td>
781 @ <td><input type="text" id="u" aria-labelledby="userlabel1" name="u" \
782 @ size="30" value="%s(anonFlag?"anonymous":"")" autofocus></td>
783 @ </tr>
784 @ <tr>
785 @ <td class="form_label" id="pswdlabel">Password:</td>
786 @ <td><input aria-labelledby="pswdlabel" type="password" id="p" \
787 @ name="p" value="" size="30">\
@@ -2243,11 +2243,11 @@
2243 @ <p><input type="hidden" name="captchaseed" value="%u(uSeed)">
2244 @ <table class="login_out">
2245 @ <tr>
2246 @ <td class="form_label" align="right" id="uid">User ID:</td>
2247 @ <td><input aria-labelledby="uid" type="text" name="u" \
2248 @ value="%h(zUserID)" size="30" autofocus></td>
2249 @
2250 if( iErrLine==1 ){
2251 @ <tr><td><td><span class='loginError'>&uarr; %h(zErr)</span></td></tr>
2252 }
2253 @ <tr>
2254
+20 -20
--- test/glob.test
+++ test/glob.test
@@ -30,40 +30,40 @@
3030
}
3131
3232
glob-parse 100 test test [string map [list \r\n \n] \
3333
{SQL expression: (x GLOB 'test')
3434
pattern[0] = [test]
35
-1 test}]
35
+1 1 test}]
3636
3737
glob-parse 101 "one two" one [string map [list \r\n \n] \
3838
{SQL expression: (x GLOB 'one' OR x GLOB 'two')
3939
pattern[0] = [one]
4040
pattern[1] = [two]
41
-1 one}]
41
+1 1 one}]
4242
4343
glob-parse 102 t* test [string map [list \r\n \n] \
4444
{SQL expression: (x GLOB 't*')
4545
pattern[0] = [t*]
46
-1 test}]
46
+1 1 test}]
4747
4848
glob-parse 103 "o* two" one [string map [list \r\n \n] \
4949
{SQL expression: (x GLOB 'o*' OR x GLOB 'two')
5050
pattern[0] = [o*]
5151
pattern[1] = [two]
52
-1 one}]
52
+1 1 one}]
5353
5454
glob-parse 104 {"o* two" "three four"} "one two" [string map [list \r\n \n] \
5555
{SQL expression: (x GLOB 'o* two' OR x GLOB 'three four')
5656
pattern[0] = [o* two]
5757
pattern[1] = [three four]
58
-1 one two}]
58
+1 1 one two}]
5959
6060
glob-parse 105 {"o* two" "three four"} "two one" [string map [list \r\n \n] \
6161
{SQL expression: (x GLOB 'o* two' OR x GLOB 'three four')
6262
pattern[0] = [o* two]
6363
pattern[1] = [three four]
64
-0 two one}]
64
+0 0 two one}]
6565
6666
glob-parse 106 "\"o*\ntwo\" \"three\nfour\"" "one\ntwo" \
6767
[string map [list \r\n \n] \
6868
{SQL expression: (x GLOB 'o*
6969
two' OR x GLOB 'three
@@ -70,11 +70,11 @@
7070
four')
7171
pattern[0] = [o*
7272
two]
7373
pattern[1] = [three
7474
four]
75
-1 one
75
+1 1 one
7676
two}]
7777
7878
glob-parse 107 "\"o*\ntwo\" \"three\nfour\"" "two\none" \
7979
[string map [list \r\n \n] \
8080
{SQL expression: (x GLOB 'o*
@@ -82,11 +82,11 @@
8282
four')
8383
pattern[0] = [o*
8484
two]
8585
pattern[1] = [three
8686
four]
87
-0 two
87
+0 0 two
8888
one}]
8989
9090
glob-parse 108 "\"o*\rtwo\" \"three\rfour\"" "one\rtwo" \
9191
[string map [list \r\n \n] \
9292
{SQL expression: (x GLOB 'o*
@@ -94,11 +94,11 @@
9494
four')
9595
pattern[0] = [o*
9696
two]
9797
pattern[1] = [three
9898
four]
99
-1 one
99
+1 1 one
100100
two}]
101101
102102
glob-parse 109 "\"o*\rtwo\" \"three\rfour\"" "two\rone" \
103103
[string map [list \r\n \n] \
104104
{SQL expression: (x GLOB 'o*
@@ -106,11 +106,11 @@
106106
four')
107107
pattern[0] = [o*
108108
two]
109109
pattern[1] = [three
110110
four]
111
-0 two
111
+0 0 two
112112
one}]
113113
114114
glob-parse 110 "'o*\ntwo' 'three\nfour'" "one\ntwo" \
115115
[string map [list \r\n \n] \
116116
{SQL expression: (x GLOB 'o*
@@ -118,11 +118,11 @@
118118
four')
119119
pattern[0] = [o*
120120
two]
121121
pattern[1] = [three
122122
four]
123
-1 one
123
+1 1 one
124124
two}]
125125
126126
glob-parse 111 "'o*\ntwo' 'three\nfour'" "two\none" \
127127
[string map [list \r\n \n] \
128128
{SQL expression: (x GLOB 'o*
@@ -130,61 +130,61 @@
130130
four')
131131
pattern[0] = [o*
132132
two]
133133
pattern[1] = [three
134134
four]
135
-0 two
135
+0 0 two
136136
one}]
137137
138138
glob-parse 112 "\"'o*' 'two'\" \"'three' 'four'\"" "'one' 'two'" \
139139
[string map [list \r\n \n] \
140140
{SQL expression: (x GLOB '''o*'' ''two''' OR x GLOB '''three'' ''four''')
141141
pattern[0] = ['o*' 'two']
142142
pattern[1] = ['three' 'four']
143
-1 'one' 'two'}]
143
+1 1 'one' 'two'}]
144144
145145
glob-parse 113 "\"'o*' 'two'\" \"'three' 'four'\"" "two one" \
146146
[string map [list \r\n \n] \
147147
{SQL expression: (x GLOB '''o*'' ''two''' OR x GLOB '''three'' ''four''')
148148
pattern[0] = ['o*' 'two']
149149
pattern[1] = ['three' 'four']
150
-0 two one}]
150
+0 0 two one}]
151151
152152
glob-parse 114 o*,two one [string map [list \r\n \n] \
153153
{SQL expression: (x GLOB 'o*' OR x GLOB 'two')
154154
pattern[0] = [o*]
155155
pattern[1] = [two]
156
-1 one}]
156
+1 1 one}]
157157
158158
glob-parse 115 "o*,two three,four" "one two" [string map [list \r\n \n] \
159159
{SQL expression: (x GLOB 'o*' OR x GLOB 'two' OR x GLOB 'three' OR x GLOB 'four')
160160
pattern[0] = [o*]
161161
pattern[1] = [two]
162162
pattern[2] = [three]
163163
pattern[3] = [four]
164
-1 one two}]
164
+1 1 one two}]
165165
166166
glob-parse 116 'o*,two' one [string map [list \r\n \n] \
167167
{SQL expression: (x GLOB 'o*,two')
168168
pattern[0] = [o*,two]
169
-0 one}]
169
+0 0 one}]
170170
171171
glob-parse 117 'o*,two' one,two [string map [list \r\n \n] \
172172
{SQL expression: (x GLOB 'o*,two')
173173
pattern[0] = [o*,two]
174
-1 one,two}]
174
+1 1 one,two}]
175175
176176
glob-parse 118 "'o*,two three,four'" "one two three,four" \
177177
[string map [list \r\n \n] \
178178
{SQL expression: (x GLOB 'o*,two three,four')
179179
pattern[0] = [o*,two three,four]
180
-0 one two three,four}]
180
+0 0 one two three,four}]
181181
182182
glob-parse 119 "'o*,two three,four'" "one,two three,four" \
183183
[string map [list \r\n \n] \
184184
{SQL expression: (x GLOB 'o*,two three,four')
185185
pattern[0] = [o*,two three,four]
186
-1 one,two three,four}]
186
+1 1 one,two three,four}]
187187
188188
###############################################################################
189189
190190
test_cleanup
191191
--- test/glob.test
+++ test/glob.test
@@ -30,40 +30,40 @@
30 }
31
32 glob-parse 100 test test [string map [list \r\n \n] \
33 {SQL expression: (x GLOB 'test')
34 pattern[0] = [test]
35 1 test}]
36
37 glob-parse 101 "one two" one [string map [list \r\n \n] \
38 {SQL expression: (x GLOB 'one' OR x GLOB 'two')
39 pattern[0] = [one]
40 pattern[1] = [two]
41 1 one}]
42
43 glob-parse 102 t* test [string map [list \r\n \n] \
44 {SQL expression: (x GLOB 't*')
45 pattern[0] = [t*]
46 1 test}]
47
48 glob-parse 103 "o* two" one [string map [list \r\n \n] \
49 {SQL expression: (x GLOB 'o*' OR x GLOB 'two')
50 pattern[0] = [o*]
51 pattern[1] = [two]
52 1 one}]
53
54 glob-parse 104 {"o* two" "three four"} "one two" [string map [list \r\n \n] \
55 {SQL expression: (x GLOB 'o* two' OR x GLOB 'three four')
56 pattern[0] = [o* two]
57 pattern[1] = [three four]
58 1 one two}]
59
60 glob-parse 105 {"o* two" "three four"} "two one" [string map [list \r\n \n] \
61 {SQL expression: (x GLOB 'o* two' OR x GLOB 'three four')
62 pattern[0] = [o* two]
63 pattern[1] = [three four]
64 0 two one}]
65
66 glob-parse 106 "\"o*\ntwo\" \"three\nfour\"" "one\ntwo" \
67 [string map [list \r\n \n] \
68 {SQL expression: (x GLOB 'o*
69 two' OR x GLOB 'three
@@ -70,11 +70,11 @@
70 four')
71 pattern[0] = [o*
72 two]
73 pattern[1] = [three
74 four]
75 1 one
76 two}]
77
78 glob-parse 107 "\"o*\ntwo\" \"three\nfour\"" "two\none" \
79 [string map [list \r\n \n] \
80 {SQL expression: (x GLOB 'o*
@@ -82,11 +82,11 @@
82 four')
83 pattern[0] = [o*
84 two]
85 pattern[1] = [three
86 four]
87 0 two
88 one}]
89
90 glob-parse 108 "\"o*\rtwo\" \"three\rfour\"" "one\rtwo" \
91 [string map [list \r\n \n] \
92 {SQL expression: (x GLOB 'o*
@@ -94,11 +94,11 @@
94 four')
95 pattern[0] = [o*
96 two]
97 pattern[1] = [three
98 four]
99 1 one
100 two}]
101
102 glob-parse 109 "\"o*\rtwo\" \"three\rfour\"" "two\rone" \
103 [string map [list \r\n \n] \
104 {SQL expression: (x GLOB 'o*
@@ -106,11 +106,11 @@
106 four')
107 pattern[0] = [o*
108 two]
109 pattern[1] = [three
110 four]
111 0 two
112 one}]
113
114 glob-parse 110 "'o*\ntwo' 'three\nfour'" "one\ntwo" \
115 [string map [list \r\n \n] \
116 {SQL expression: (x GLOB 'o*
@@ -118,11 +118,11 @@
118 four')
119 pattern[0] = [o*
120 two]
121 pattern[1] = [three
122 four]
123 1 one
124 two}]
125
126 glob-parse 111 "'o*\ntwo' 'three\nfour'" "two\none" \
127 [string map [list \r\n \n] \
128 {SQL expression: (x GLOB 'o*
@@ -130,61 +130,61 @@
130 four')
131 pattern[0] = [o*
132 two]
133 pattern[1] = [three
134 four]
135 0 two
136 one}]
137
138 glob-parse 112 "\"'o*' 'two'\" \"'three' 'four'\"" "'one' 'two'" \
139 [string map [list \r\n \n] \
140 {SQL expression: (x GLOB '''o*'' ''two''' OR x GLOB '''three'' ''four''')
141 pattern[0] = ['o*' 'two']
142 pattern[1] = ['three' 'four']
143 1 'one' 'two'}]
144
145 glob-parse 113 "\"'o*' 'two'\" \"'three' 'four'\"" "two one" \
146 [string map [list \r\n \n] \
147 {SQL expression: (x GLOB '''o*'' ''two''' OR x GLOB '''three'' ''four''')
148 pattern[0] = ['o*' 'two']
149 pattern[1] = ['three' 'four']
150 0 two one}]
151
152 glob-parse 114 o*,two one [string map [list \r\n \n] \
153 {SQL expression: (x GLOB 'o*' OR x GLOB 'two')
154 pattern[0] = [o*]
155 pattern[1] = [two]
156 1 one}]
157
158 glob-parse 115 "o*,two three,four" "one two" [string map [list \r\n \n] \
159 {SQL expression: (x GLOB 'o*' OR x GLOB 'two' OR x GLOB 'three' OR x GLOB 'four')
160 pattern[0] = [o*]
161 pattern[1] = [two]
162 pattern[2] = [three]
163 pattern[3] = [four]
164 1 one two}]
165
166 glob-parse 116 'o*,two' one [string map [list \r\n \n] \
167 {SQL expression: (x GLOB 'o*,two')
168 pattern[0] = [o*,two]
169 0 one}]
170
171 glob-parse 117 'o*,two' one,two [string map [list \r\n \n] \
172 {SQL expression: (x GLOB 'o*,two')
173 pattern[0] = [o*,two]
174 1 one,two}]
175
176 glob-parse 118 "'o*,two three,four'" "one two three,four" \
177 [string map [list \r\n \n] \
178 {SQL expression: (x GLOB 'o*,two three,four')
179 pattern[0] = [o*,two three,four]
180 0 one two three,four}]
181
182 glob-parse 119 "'o*,two three,four'" "one,two three,four" \
183 [string map [list \r\n \n] \
184 {SQL expression: (x GLOB 'o*,two three,four')
185 pattern[0] = [o*,two three,four]
186 1 one,two three,four}]
187
188 ###############################################################################
189
190 test_cleanup
191
--- test/glob.test
+++ test/glob.test
@@ -30,40 +30,40 @@
30 }
31
32 glob-parse 100 test test [string map [list \r\n \n] \
33 {SQL expression: (x GLOB 'test')
34 pattern[0] = [test]
35 1 1 test}]
36
37 glob-parse 101 "one two" one [string map [list \r\n \n] \
38 {SQL expression: (x GLOB 'one' OR x GLOB 'two')
39 pattern[0] = [one]
40 pattern[1] = [two]
41 1 1 one}]
42
43 glob-parse 102 t* test [string map [list \r\n \n] \
44 {SQL expression: (x GLOB 't*')
45 pattern[0] = [t*]
46 1 1 test}]
47
48 glob-parse 103 "o* two" one [string map [list \r\n \n] \
49 {SQL expression: (x GLOB 'o*' OR x GLOB 'two')
50 pattern[0] = [o*]
51 pattern[1] = [two]
52 1 1 one}]
53
54 glob-parse 104 {"o* two" "three four"} "one two" [string map [list \r\n \n] \
55 {SQL expression: (x GLOB 'o* two' OR x GLOB 'three four')
56 pattern[0] = [o* two]
57 pattern[1] = [three four]
58 1 1 one two}]
59
60 glob-parse 105 {"o* two" "three four"} "two one" [string map [list \r\n \n] \
61 {SQL expression: (x GLOB 'o* two' OR x GLOB 'three four')
62 pattern[0] = [o* two]
63 pattern[1] = [three four]
64 0 0 two one}]
65
66 glob-parse 106 "\"o*\ntwo\" \"three\nfour\"" "one\ntwo" \
67 [string map [list \r\n \n] \
68 {SQL expression: (x GLOB 'o*
69 two' OR x GLOB 'three
@@ -70,11 +70,11 @@
70 four')
71 pattern[0] = [o*
72 two]
73 pattern[1] = [three
74 four]
75 1 1 one
76 two}]
77
78 glob-parse 107 "\"o*\ntwo\" \"three\nfour\"" "two\none" \
79 [string map [list \r\n \n] \
80 {SQL expression: (x GLOB 'o*
@@ -82,11 +82,11 @@
82 four')
83 pattern[0] = [o*
84 two]
85 pattern[1] = [three
86 four]
87 0 0 two
88 one}]
89
90 glob-parse 108 "\"o*\rtwo\" \"three\rfour\"" "one\rtwo" \
91 [string map [list \r\n \n] \
92 {SQL expression: (x GLOB 'o*
@@ -94,11 +94,11 @@
94 four')
95 pattern[0] = [o*
96 two]
97 pattern[1] = [three
98 four]
99 1 1 one
100 two}]
101
102 glob-parse 109 "\"o*\rtwo\" \"three\rfour\"" "two\rone" \
103 [string map [list \r\n \n] \
104 {SQL expression: (x GLOB 'o*
@@ -106,11 +106,11 @@
106 four')
107 pattern[0] = [o*
108 two]
109 pattern[1] = [three
110 four]
111 0 0 two
112 one}]
113
114 glob-parse 110 "'o*\ntwo' 'three\nfour'" "one\ntwo" \
115 [string map [list \r\n \n] \
116 {SQL expression: (x GLOB 'o*
@@ -118,11 +118,11 @@
118 four')
119 pattern[0] = [o*
120 two]
121 pattern[1] = [three
122 four]
123 1 1 one
124 two}]
125
126 glob-parse 111 "'o*\ntwo' 'three\nfour'" "two\none" \
127 [string map [list \r\n \n] \
128 {SQL expression: (x GLOB 'o*
@@ -130,61 +130,61 @@
130 four')
131 pattern[0] = [o*
132 two]
133 pattern[1] = [three
134 four]
135 0 0 two
136 one}]
137
138 glob-parse 112 "\"'o*' 'two'\" \"'three' 'four'\"" "'one' 'two'" \
139 [string map [list \r\n \n] \
140 {SQL expression: (x GLOB '''o*'' ''two''' OR x GLOB '''three'' ''four''')
141 pattern[0] = ['o*' 'two']
142 pattern[1] = ['three' 'four']
143 1 1 'one' 'two'}]
144
145 glob-parse 113 "\"'o*' 'two'\" \"'three' 'four'\"" "two one" \
146 [string map [list \r\n \n] \
147 {SQL expression: (x GLOB '''o*'' ''two''' OR x GLOB '''three'' ''four''')
148 pattern[0] = ['o*' 'two']
149 pattern[1] = ['three' 'four']
150 0 0 two one}]
151
152 glob-parse 114 o*,two one [string map [list \r\n \n] \
153 {SQL expression: (x GLOB 'o*' OR x GLOB 'two')
154 pattern[0] = [o*]
155 pattern[1] = [two]
156 1 1 one}]
157
158 glob-parse 115 "o*,two three,four" "one two" [string map [list \r\n \n] \
159 {SQL expression: (x GLOB 'o*' OR x GLOB 'two' OR x GLOB 'three' OR x GLOB 'four')
160 pattern[0] = [o*]
161 pattern[1] = [two]
162 pattern[2] = [three]
163 pattern[3] = [four]
164 1 1 one two}]
165
166 glob-parse 116 'o*,two' one [string map [list \r\n \n] \
167 {SQL expression: (x GLOB 'o*,two')
168 pattern[0] = [o*,two]
169 0 0 one}]
170
171 glob-parse 117 'o*,two' one,two [string map [list \r\n \n] \
172 {SQL expression: (x GLOB 'o*,two')
173 pattern[0] = [o*,two]
174 1 1 one,two}]
175
176 glob-parse 118 "'o*,two three,four'" "one two three,four" \
177 [string map [list \r\n \n] \
178 {SQL expression: (x GLOB 'o*,two three,four')
179 pattern[0] = [o*,two three,four]
180 0 0 one two three,four}]
181
182 glob-parse 119 "'o*,two three,four'" "one,two three,four" \
183 [string map [list \r\n \n] \
184 {SQL expression: (x GLOB 'o*,two three,four')
185 pattern[0] = [o*,two three,four]
186 1 1 one,two three,four}]
187
188 ###############################################################################
189
190 test_cleanup
191
--- test/settings.test
+++ test/settings.test
@@ -26,10 +26,16 @@
2626
#
2727
# fossil settings ?PROPERTY? ?VALUE? ?OPTIONS?
2828
# fossil unset PROPERTY ?OPTIONS?
2929
#
3030
# Where the only supported options are "--global" and "--exact".
31
+#
32
+###############################################################################
33
+#
34
+# NOTE: The [get_all_settings] procedure from test/tester.tcl returns the list
35
+# of settings to test and needs to be manually updated when new settings
36
+# are added.
3137
#
3238
###############################################################################
3339
#
3440
# NOTE: The [extract_setting_names] procedure extracts the list of setting
3541
# names from the line-ending normalized output of the "fossil settings"
3642
--- test/settings.test
+++ test/settings.test
@@ -26,10 +26,16 @@
26 #
27 # fossil settings ?PROPERTY? ?VALUE? ?OPTIONS?
28 # fossil unset PROPERTY ?OPTIONS?
29 #
30 # Where the only supported options are "--global" and "--exact".
 
 
 
 
 
 
31 #
32 ###############################################################################
33 #
34 # NOTE: The [extract_setting_names] procedure extracts the list of setting
35 # names from the line-ending normalized output of the "fossil settings"
36
--- test/settings.test
+++ test/settings.test
@@ -26,10 +26,16 @@
26 #
27 # fossil settings ?PROPERTY? ?VALUE? ?OPTIONS?
28 # fossil unset PROPERTY ?OPTIONS?
29 #
30 # Where the only supported options are "--global" and "--exact".
31 #
32 ###############################################################################
33 #
34 # NOTE: The [get_all_settings] procedure from test/tester.tcl returns the list
35 # of settings to test and needs to be manually updated when new settings
36 # are added.
37 #
38 ###############################################################################
39 #
40 # NOTE: The [extract_setting_names] procedure extracts the list of setting
41 # names from the line-ending normalized output of the "fossil settings"
42
--- test/tester.tcl
+++ test/tester.tcl
@@ -359,10 +359,12 @@
359359
proxy \
360360
redirect-to-https \
361361
relative-paths \
362362
repo-cksum \
363363
repolist-skin \
364
+ robot-restrict \
365
+ robots-txt \
364366
safe-html \
365367
self-pw-reset \
366368
self-register \
367369
sitemap-extra \
368370
ssh-command \
369371
--- test/tester.tcl
+++ test/tester.tcl
@@ -359,10 +359,12 @@
359 proxy \
360 redirect-to-https \
361 relative-paths \
362 repo-cksum \
363 repolist-skin \
 
 
364 safe-html \
365 self-pw-reset \
366 self-register \
367 sitemap-extra \
368 ssh-command \
369
--- test/tester.tcl
+++ test/tester.tcl
@@ -359,10 +359,12 @@
359 proxy \
360 redirect-to-https \
361 relative-paths \
362 repo-cksum \
363 repolist-skin \
364 robot-restrict \
365 robots-txt \
366 safe-html \
367 self-pw-reset \
368 self-register \
369 sitemap-extra \
370 ssh-command \
371
--- www/changes.wiki
+++ www/changes.wiki
@@ -13,10 +13,12 @@
1313
* Add new query parameters to the [/help?cmd=/timeline|/timeline page]:
1414
d2=, p2=, and dp2=.
1515
* Add options to the [/help?cmd=tag|fossil tag] command that will list tag values.
1616
* Add ability to upload unversioned files via the [/help?cmd=/uvlist|/uvlist page].
1717
* Add history search to the [/help?cmd=/chat|/chat page].
18
+ * Add Unix socket support to the [/help?cmd=server|server command].
19
+ * Numerous minor fixes and additions.
1820
1921
2022
<h2 id='v2_24'>Changes for version 2.24 (2024-04-23)</h2>
2123
2224
* Apache change work-around &rarr; As part of a security fix, the Apache webserver
@@ -85,11 +87,11 @@
8587
* Add ability to "close" forum threads, such that unprivileged users
8688
may no longer respond to them. Only administrators can close
8789
threads or respond to them by default, and the
8890
[/help?cmd=forum-close-policy|forum-close-policy setting] can be
8991
used to add that capability to moderators.
90
- * Add the [/help?cmd=all|fossil all whatis] command.
92
+ * Add the [/help?cmd=all|fossil all whatis] command.
9193
* The [/help?cmd=status|fossil status] command and relevant UI pages now
9294
correctly report files which were both renamed <b>and</b> edited as such.
9395
* Show default value of settings that have a default in
9496
[/help?cmd=help|fossil help SETTING] output.
9597
* On timeline graphs, show closed check-ins using an X in the middle of the
@@ -127,11 +129,10 @@
127129
they work when the "remote" machine is a Mac and the "fossil"
128130
executable is in the $HOME/bin directory.
129131
</ul>
130132
* Update built-in libraries SQLite, ZLib, Pikchr to their latest versions.
131133
* Documentation enhancements and typo fixes.
132
-
133134
134135
135136
<h2 id='v2_22'>Changes for version 2.22 (2023-05-31)</h2>
136137
* Enhancements to the [/help?cmd=/timeline|/timeline webpage]: <ol type="a">
137138
<li> Add the ft=TAG query parameter which in combination with d=Y
@@ -155,11 +156,11 @@
155156
frees us from needing to build and install the container as root,
156157
since it no longer has to create a private <tt>/dev</tt> tree
157158
inside the jail for Fossil's use.
158159
* Add support for the trigram tokenizer for FTS5 search to enable
159160
searching in Chinese.
160
- * Comment lines (starting with a '#') are now supported inside
161
+ * Comment lines (starting with a '#') are now supported inside
161162
[./settings.wiki#versionable|versioned settings].
162163
* Default permissions for anonymous users in new repositories are
163164
changed to "hz".
164165
* The [/help?cmd=status|fossil status] command now detects when a
165166
file used to be a symlink and has been replaced by a regular file.
166167
--- www/changes.wiki
+++ www/changes.wiki
@@ -13,10 +13,12 @@
13 * Add new query parameters to the [/help?cmd=/timeline|/timeline page]:
14 d2=, p2=, and dp2=.
15 * Add options to the [/help?cmd=tag|fossil tag] command that will list tag values.
16 * Add ability to upload unversioned files via the [/help?cmd=/uvlist|/uvlist page].
17 * Add history search to the [/help?cmd=/chat|/chat page].
 
 
18
19
20 <h2 id='v2_24'>Changes for version 2.24 (2024-04-23)</h2>
21
22 * Apache change work-around &rarr; As part of a security fix, the Apache webserver
@@ -85,11 +87,11 @@
85 * Add ability to "close" forum threads, such that unprivileged users
86 may no longer respond to them. Only administrators can close
87 threads or respond to them by default, and the
88 [/help?cmd=forum-close-policy|forum-close-policy setting] can be
89 used to add that capability to moderators.
90 * Add the [/help?cmd=all|fossil all whatis] command.
91 * The [/help?cmd=status|fossil status] command and relevant UI pages now
92 correctly report files which were both renamed <b>and</b> edited as such.
93 * Show default value of settings that have a default in
94 [/help?cmd=help|fossil help SETTING] output.
95 * On timeline graphs, show closed check-ins using an X in the middle of the
@@ -127,11 +129,10 @@
127 they work when the "remote" machine is a Mac and the "fossil"
128 executable is in the $HOME/bin directory.
129 </ul>
130 * Update built-in libraries SQLite, ZLib, Pikchr to their latest versions.
131 * Documentation enhancements and typo fixes.
132
133
134
135 <h2 id='v2_22'>Changes for version 2.22 (2023-05-31)</h2>
136 * Enhancements to the [/help?cmd=/timeline|/timeline webpage]: <ol type="a">
137 <li> Add the ft=TAG query parameter which in combination with d=Y
@@ -155,11 +156,11 @@
155 frees us from needing to build and install the container as root,
156 since it no longer has to create a private <tt>/dev</tt> tree
157 inside the jail for Fossil's use.
158 * Add support for the trigram tokenizer for FTS5 search to enable
159 searching in Chinese.
160 * Comment lines (starting with a '#') are now supported inside
161 [./settings.wiki#versionable|versioned settings].
162 * Default permissions for anonymous users in new repositories are
163 changed to "hz".
164 * The [/help?cmd=status|fossil status] command now detects when a
165 file used to be a symlink and has been replaced by a regular file.
166
--- www/changes.wiki
+++ www/changes.wiki
@@ -13,10 +13,12 @@
13 * Add new query parameters to the [/help?cmd=/timeline|/timeline page]:
14 d2=, p2=, and dp2=.
15 * Add options to the [/help?cmd=tag|fossil tag] command that will list tag values.
16 * Add ability to upload unversioned files via the [/help?cmd=/uvlist|/uvlist page].
17 * Add history search to the [/help?cmd=/chat|/chat page].
18 * Add Unix socket support to the [/help?cmd=server|server command].
19 * Numerous minor fixes and additions.
20
21
22 <h2 id='v2_24'>Changes for version 2.24 (2024-04-23)</h2>
23
24 * Apache change work-around &rarr; As part of a security fix, the Apache webserver
@@ -85,11 +87,11 @@
87 * Add ability to "close" forum threads, such that unprivileged users
88 may no longer respond to them. Only administrators can close
89 threads or respond to them by default, and the
90 [/help?cmd=forum-close-policy|forum-close-policy setting] can be
91 used to add that capability to moderators.
92 * Add the [/help?cmd=all|fossil all whatis] command.
93 * The [/help?cmd=status|fossil status] command and relevant UI pages now
94 correctly report files which were both renamed <b>and</b> edited as such.
95 * Show default value of settings that have a default in
96 [/help?cmd=help|fossil help SETTING] output.
97 * On timeline graphs, show closed check-ins using an X in the middle of the
@@ -127,11 +129,10 @@
129 they work when the "remote" machine is a Mac and the "fossil"
130 executable is in the $HOME/bin directory.
131 </ul>
132 * Update built-in libraries SQLite, ZLib, Pikchr to their latest versions.
133 * Documentation enhancements and typo fixes.
 
134
135
136 <h2 id='v2_22'>Changes for version 2.22 (2023-05-31)</h2>
137 * Enhancements to the [/help?cmd=/timeline|/timeline webpage]: <ol type="a">
138 <li> Add the ft=TAG query parameter which in combination with d=Y
@@ -155,11 +156,11 @@
156 frees us from needing to build and install the container as root,
157 since it no longer has to create a private <tt>/dev</tt> tree
158 inside the jail for Fossil's use.
159 * Add support for the trigram tokenizer for FTS5 search to enable
160 searching in Chinese.
161 * Comment lines (starting with a '#') are now supported inside
162 [./settings.wiki#versionable|versioned settings].
163 * Default permissions for anonymous users in new repositories are
164 changed to "hz".
165 * The [/help?cmd=status|fossil status] command now detects when a
166 file used to be a symlink and has been replaced by a regular file.
167
--- www/embeddeddoc.wiki
+++ www/embeddeddoc.wiki
@@ -178,17 +178,25 @@
178178
As with "$ROOT", this substitution only works for Markdown and HTML
179179
documents. For Wiki documents, you would need to use a relative URL.
180180
181181
<h2 id="th1">2.3 TH1 Documents</h2>
182182
183
-Fossil will substitute the value of [./th1.md | TH1 expressions] within
184
-<tt>{</tt> curly braces <tt>}</tt> into the output HTML if you have
185
-configured it with the <tt>--with-th1-docs</tt> option, which is
186
-disabled by default.
183
+Enabling TH1 document support requires the following:
184
+
185
+ * Configure the build with the <code>--with-th1-docs</code> flag.
186
+ * Enable the <code>th1-docs</code> setting, which is only available
187
+ after building with <code>--with-th1-docs</code>.
188
+ * Affected files must have a <code>.th1</code> file extension.
189
+ * The code to run must be embedded in blocks of
190
+ <code>&lt;th1>...&lt;/th1></code>.
191
+
192
+Fossil will substitute the value of [./th1.md | TH1 expressions]
193
+within the <code>&lt;th1>...&lt;/th1></code> blocks into
194
+the output HTML.
187195
188196
Since TH1 is a full scripting language, this feature essential grants
189
-the ability to execute code on the server to anyone with check-in
197
+the ability to execute code on the server to anyone with check-in
190198
privilege for the project.
191199
This is a security risk that needs to be carefully managed.
192200
The feature is off by default.
193201
Administrators should understand and carefully assess the risks
194202
before enabling the use of TH1 within embedded documentation.
195203
--- www/embeddeddoc.wiki
+++ www/embeddeddoc.wiki
@@ -178,17 +178,25 @@
178 As with "$ROOT", this substitution only works for Markdown and HTML
179 documents. For Wiki documents, you would need to use a relative URL.
180
181 <h2 id="th1">2.3 TH1 Documents</h2>
182
183 Fossil will substitute the value of [./th1.md | TH1 expressions] within
184 <tt>{</tt> curly braces <tt>}</tt> into the output HTML if you have
185 configured it with the <tt>--with-th1-docs</tt> option, which is
186 disabled by default.
 
 
 
 
 
 
 
 
187
188 Since TH1 is a full scripting language, this feature essential grants
189 the ability to execute code on the server to anyone with check-in
190 privilege for the project.
191 This is a security risk that needs to be carefully managed.
192 The feature is off by default.
193 Administrators should understand and carefully assess the risks
194 before enabling the use of TH1 within embedded documentation.
195
--- www/embeddeddoc.wiki
+++ www/embeddeddoc.wiki
@@ -178,17 +178,25 @@
178 As with "$ROOT", this substitution only works for Markdown and HTML
179 documents. For Wiki documents, you would need to use a relative URL.
180
181 <h2 id="th1">2.3 TH1 Documents</h2>
182
183 Enabling TH1 document support requires the following:
184
185 * Configure the build with the <code>--with-th1-docs</code> flag.
186 * Enable the <code>th1-docs</code> setting, which is only available
187 after building with <code>--with-th1-docs</code>.
188 * Affected files must have a <code>.th1</code> file extension.
189 * The code to run must be embedded in blocks of
190 <code>&lt;th1>...&lt;/th1></code>.
191
192 Fossil will substitute the value of [./th1.md | TH1 expressions]
193 within the <code>&lt;th1>...&lt;/th1></code> blocks into
194 the output HTML.
195
196 Since TH1 is a full scripting language, this feature essential grants
197 the ability to execute code on the server to anyone with check-in
198 privilege for the project.
199 This is a security risk that needs to be carefully managed.
200 The feature is off by default.
201 Administrators should understand and carefully assess the risks
202 before enabling the use of TH1 within embedded documentation.
203

Keyboard Shortcuts

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