Fossil SCM

Sync with trunk and resolve the merge conflicts in the 'fossil.diff.js' script.

florian 2024-09-17 06:15 diff-word-wrap merge
Commit ac3d7c9b4fa7c042f419f6a63c7cf1943a28c6e2290de7f16ec11522f9765c59
+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
@@ -866,10 +866,17 @@
866866
padding: 1px;
867867
}
868868
div.forum_body p {
869869
margin-top: 0;
870870
}
871
+div.forum-editor-widget{
872
+ display: flex;
873
+ flex-direction: column;
874
+}
875
+div.forum-editor-widget > textarea {
876
+ max-width: initial;
877
+}
871878
td.form_label {
872879
vertical-align: top;
873880
text-align: right;
874881
}
875882
.debug {
@@ -927,12 +934,16 @@
927934
div.forumpost-single-controls {
928935
/* UI controls along the bottom of a single post
929936
** in the thread view. */
930937
}
931938
.forum div > form {
939
+ width: 100%;
932940
margin: 0.5em 0;
933
- display: inline-block;
941
+ display: block;
942
+}
943
+.forum div > form > * {
944
+ margin-bottom: 0.35em;
934945
}
935946
.forum-post-collapser {
936947
/* Common style for the bottom-of-post and right-of-post
937948
expand/collapse widgets. */
938949
font-size: 0.8em;
939950
--- src/default.css
+++ src/default.css
@@ -866,10 +866,17 @@
866 padding: 1px;
867 }
868 div.forum_body p {
869 margin-top: 0;
870 }
 
 
 
 
 
 
 
871 td.form_label {
872 vertical-align: top;
873 text-align: right;
874 }
875 .debug {
@@ -927,12 +934,16 @@
927 div.forumpost-single-controls {
928 /* UI controls along the bottom of a single post
929 ** in the thread view. */
930 }
931 .forum div > form {
 
932 margin: 0.5em 0;
933 display: inline-block;
 
 
 
934 }
935 .forum-post-collapser {
936 /* Common style for the bottom-of-post and right-of-post
937 expand/collapse widgets. */
938 font-size: 0.8em;
939
--- src/default.css
+++ src/default.css
@@ -866,10 +866,17 @@
866 padding: 1px;
867 }
868 div.forum_body p {
869 margin-top: 0;
870 }
871 div.forum-editor-widget{
872 display: flex;
873 flex-direction: column;
874 }
875 div.forum-editor-widget > textarea {
876 max-width: initial;
877 }
878 td.form_label {
879 vertical-align: top;
880 text-align: right;
881 }
882 .debug {
@@ -927,12 +934,16 @@
934 div.forumpost-single-controls {
935 /* UI controls along the bottom of a single post
936 ** in the thread view. */
937 }
938 .forum div > form {
939 width: 100%;
940 margin: 0.5em 0;
941 display: block;
942 }
943 .forum div > form > * {
944 margin-bottom: 0.35em;
945 }
946 .forum-post-collapser {
947 /* Common style for the bottom-of-post and right-of-post
948 expand/collapse widgets. */
949 font-size: 0.8em;
950
+12 -1
--- src/default.css
+++ src/default.css
@@ -866,10 +866,17 @@
866866
padding: 1px;
867867
}
868868
div.forum_body p {
869869
margin-top: 0;
870870
}
871
+div.forum-editor-widget{
872
+ display: flex;
873
+ flex-direction: column;
874
+}
875
+div.forum-editor-widget > textarea {
876
+ max-width: initial;
877
+}
871878
td.form_label {
872879
vertical-align: top;
873880
text-align: right;
874881
}
875882
.debug {
@@ -927,12 +934,16 @@
927934
div.forumpost-single-controls {
928935
/* UI controls along the bottom of a single post
929936
** in the thread view. */
930937
}
931938
.forum div > form {
939
+ width: 100%;
932940
margin: 0.5em 0;
933
- display: inline-block;
941
+ display: block;
942
+}
943
+.forum div > form > * {
944
+ margin-bottom: 0.35em;
934945
}
935946
.forum-post-collapser {
936947
/* Common style for the bottom-of-post and right-of-post
937948
expand/collapse widgets. */
938949
font-size: 0.8em;
939950
--- src/default.css
+++ src/default.css
@@ -866,10 +866,17 @@
866 padding: 1px;
867 }
868 div.forum_body p {
869 margin-top: 0;
870 }
 
 
 
 
 
 
 
871 td.form_label {
872 vertical-align: top;
873 text-align: right;
874 }
875 .debug {
@@ -927,12 +934,16 @@
927 div.forumpost-single-controls {
928 /* UI controls along the bottom of a single post
929 ** in the thread view. */
930 }
931 .forum div > form {
 
932 margin: 0.5em 0;
933 display: inline-block;
 
 
 
934 }
935 .forum-post-collapser {
936 /* Common style for the bottom-of-post and right-of-post
937 expand/collapse widgets. */
938 font-size: 0.8em;
939
--- src/default.css
+++ src/default.css
@@ -866,10 +866,17 @@
866 padding: 1px;
867 }
868 div.forum_body p {
869 margin-top: 0;
870 }
871 div.forum-editor-widget{
872 display: flex;
873 flex-direction: column;
874 }
875 div.forum-editor-widget > textarea {
876 max-width: initial;
877 }
878 td.form_label {
879 vertical-align: top;
880 text-align: right;
881 }
882 .debug {
@@ -927,12 +934,16 @@
934 div.forumpost-single-controls {
935 /* UI controls along the bottom of a single post
936 ** in the thread view. */
937 }
938 .forum div > form {
939 width: 100%;
940 margin: 0.5em 0;
941 display: block;
942 }
943 .forum div > form > * {
944 margin-bottom: 0.35em;
945 }
946 .forum-post-collapser {
947 /* Common style for the bottom-of-post and right-of-post
948 expand/collapse widgets. */
949 font-size: 0.8em;
950
+1 -1
--- src/diff.c
+++ src/diff.c
@@ -3656,11 +3656,11 @@
36563656
int szHash; /* Display size of a version hash */
36573657
Blob treename; /* Name of file to be annotated */
36583658
char *zFilename; /* Name of file to be annotated */
36593659
36603660
bBlame = g.argv[1][0]!='a';
3661
- zRevision = find_option("r","revision",1);
3661
+ zRevision = find_option("revision","r",1);
36623662
zLimit = find_option("limit","n",1);
36633663
zOrig = find_option("origin","o",1);
36643664
showLog = find_option("log","l",0)!=0;
36653665
if( find_option("ignore-trailing-space","Z",0)!=0 ){
36663666
annFlags = DIFF_IGNORE_EOLWS;
36673667
--- src/diff.c
+++ src/diff.c
@@ -3656,11 +3656,11 @@
3656 int szHash; /* Display size of a version hash */
3657 Blob treename; /* Name of file to be annotated */
3658 char *zFilename; /* Name of file to be annotated */
3659
3660 bBlame = g.argv[1][0]!='a';
3661 zRevision = find_option("r","revision",1);
3662 zLimit = find_option("limit","n",1);
3663 zOrig = find_option("origin","o",1);
3664 showLog = find_option("log","l",0)!=0;
3665 if( find_option("ignore-trailing-space","Z",0)!=0 ){
3666 annFlags = DIFF_IGNORE_EOLWS;
3667
--- src/diff.c
+++ src/diff.c
@@ -3656,11 +3656,11 @@
3656 int szHash; /* Display size of a version hash */
3657 Blob treename; /* Name of file to be annotated */
3658 char *zFilename; /* Name of file to be annotated */
3659
3660 bBlame = g.argv[1][0]!='a';
3661 zRevision = find_option("revision","r",1);
3662 zLimit = find_option("limit","n",1);
3663 zOrig = find_option("origin","o",1);
3664 showLog = find_option("log","l",0)!=0;
3665 if( find_option("ignore-trailing-space","Z",0)!=0 ){
3666 annFlags = DIFF_IGNORE_EOLWS;
3667
+1 -1
--- src/diff.c
+++ src/diff.c
@@ -3656,11 +3656,11 @@
36563656
int szHash; /* Display size of a version hash */
36573657
Blob treename; /* Name of file to be annotated */
36583658
char *zFilename; /* Name of file to be annotated */
36593659
36603660
bBlame = g.argv[1][0]!='a';
3661
- zRevision = find_option("r","revision",1);
3661
+ zRevision = find_option("revision","r",1);
36623662
zLimit = find_option("limit","n",1);
36633663
zOrig = find_option("origin","o",1);
36643664
showLog = find_option("log","l",0)!=0;
36653665
if( find_option("ignore-trailing-space","Z",0)!=0 ){
36663666
annFlags = DIFF_IGNORE_EOLWS;
36673667
--- src/diff.c
+++ src/diff.c
@@ -3656,11 +3656,11 @@
3656 int szHash; /* Display size of a version hash */
3657 Blob treename; /* Name of file to be annotated */
3658 char *zFilename; /* Name of file to be annotated */
3659
3660 bBlame = g.argv[1][0]!='a';
3661 zRevision = find_option("r","revision",1);
3662 zLimit = find_option("limit","n",1);
3663 zOrig = find_option("origin","o",1);
3664 showLog = find_option("log","l",0)!=0;
3665 if( find_option("ignore-trailing-space","Z",0)!=0 ){
3666 annFlags = DIFF_IGNORE_EOLWS;
3667
--- src/diff.c
+++ src/diff.c
@@ -3656,11 +3656,11 @@
3656 int szHash; /* Display size of a version hash */
3657 Blob treename; /* Name of file to be annotated */
3658 char *zFilename; /* Name of file to be annotated */
3659
3660 bBlame = g.argv[1][0]!='a';
3661 zRevision = find_option("revision","r",1);
3662 zLimit = find_option("limit","n",1);
3663 zOrig = find_option("origin","o",1);
3664 showLog = find_option("log","l",0)!=0;
3665 if( find_option("ignore-trailing-space","Z",0)!=0 ){
3666 annFlags = DIFF_IGNORE_EOLWS;
3667
+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
--- src/fossil.diff.js
+++ src/fossil.diff.js
@@ -6,15 +6,18 @@
66
/**
77
Adds toggle checkboxes to each file entry in the diff views for
88
/info and similar pages.
99
*/
1010
const D = window.fossil.dom;
11
+ const isFdiff = !!document.querySelector('body.fdiff');
1112
const addToggle = function(diffElem){
1213
const sib = diffElem.previousElementSibling,
1314
btn = sib ? D.addClass(D.checkbox(true), 'diff-toggle') : 0;
1415
if(!sib) return;
15
- D.append(sib,btn);
16
+ if(isFdiff) sib.parentElement.insertBefore(
17
+ D.append(D.div(),btn),sib.nextElementSibling);
18
+ else D.append(sib,btn);
1619
btn.addEventListener('click', function(){
1720
diffElem.classList.toggle('hidden');
1821
}, false);
1922
};
2023
document.querySelectorAll('table.diff').forEach(addToggle);
2124
--- src/fossil.diff.js
+++ src/fossil.diff.js
@@ -6,15 +6,18 @@
6 /**
7 Adds toggle checkboxes to each file entry in the diff views for
8 /info and similar pages.
9 */
10 const D = window.fossil.dom;
 
11 const addToggle = function(diffElem){
12 const sib = diffElem.previousElementSibling,
13 btn = sib ? D.addClass(D.checkbox(true), 'diff-toggle') : 0;
14 if(!sib) return;
15 D.append(sib,btn);
 
 
16 btn.addEventListener('click', function(){
17 diffElem.classList.toggle('hidden');
18 }, false);
19 };
20 document.querySelectorAll('table.diff').forEach(addToggle);
21
--- src/fossil.diff.js
+++ src/fossil.diff.js
@@ -6,15 +6,18 @@
6 /**
7 Adds toggle checkboxes to each file entry in the diff views for
8 /info and similar pages.
9 */
10 const D = window.fossil.dom;
11 const isFdiff = !!document.querySelector('body.fdiff');
12 const addToggle = function(diffElem){
13 const sib = diffElem.previousElementSibling,
14 btn = sib ? D.addClass(D.checkbox(true), 'diff-toggle') : 0;
15 if(!sib) return;
16 if(isFdiff) sib.parentElement.insertBefore(
17 D.append(D.div(),btn),sib.nextElementSibling);
18 else D.append(sib,btn);
19 btn.addEventListener('click', function(){
20 diffElem.classList.toggle('hidden');
21 }, false);
22 };
23 document.querySelectorAll('table.diff').forEach(addToggle);
24
--- src/fossil.diff.js
+++ src/fossil.diff.js
@@ -6,15 +6,18 @@
66
/**
77
Adds toggle checkboxes to each file entry in the diff views for
88
/info and similar pages.
99
*/
1010
const D = window.fossil.dom;
11
+ const isFdiff = !!document.querySelector('body.fdiff');
1112
const addToggle = function(diffElem){
1213
const sib = diffElem.previousElementSibling,
1314
btn = sib ? D.addClass(D.checkbox(true), 'diff-toggle') : 0;
1415
if(!sib) return;
15
- D.append(sib,btn);
16
+ if(isFdiff) sib.parentElement.insertBefore(
17
+ D.append(D.div(),btn),sib.nextElementSibling);
18
+ else D.append(sib,btn);
1619
btn.addEventListener('click', function(){
1720
diffElem.classList.toggle('hidden');
1821
}, false);
1922
};
2023
document.querySelectorAll('table.diff').forEach(addToggle);
2124
--- src/fossil.diff.js
+++ src/fossil.diff.js
@@ -6,15 +6,18 @@
6 /**
7 Adds toggle checkboxes to each file entry in the diff views for
8 /info and similar pages.
9 */
10 const D = window.fossil.dom;
 
11 const addToggle = function(diffElem){
12 const sib = diffElem.previousElementSibling,
13 btn = sib ? D.addClass(D.checkbox(true), 'diff-toggle') : 0;
14 if(!sib) return;
15 D.append(sib,btn);
 
 
16 btn.addEventListener('click', function(){
17 diffElem.classList.toggle('hidden');
18 }, false);
19 };
20 document.querySelectorAll('table.diff').forEach(addToggle);
21
--- src/fossil.diff.js
+++ src/fossil.diff.js
@@ -6,15 +6,18 @@
6 /**
7 Adds toggle checkboxes to each file entry in the diff views for
8 /info and similar pages.
9 */
10 const D = window.fossil.dom;
11 const isFdiff = !!document.querySelector('body.fdiff');
12 const addToggle = function(diffElem){
13 const sib = diffElem.previousElementSibling,
14 btn = sib ? D.addClass(D.checkbox(true), 'diff-toggle') : 0;
15 if(!sib) return;
16 if(isFdiff) sib.parentElement.insertBefore(
17 D.append(D.div(),btn),sib.nextElementSibling);
18 else D.append(sib,btn);
19 btn.addEventListener('click', function(){
20 diffElem.classList.toggle('hidden');
21 }, false);
22 };
23 document.querySelectorAll('table.diff').forEach(addToggle);
24
+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,14 @@
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
+ * On Windows, use the root certificates managed by the operating system
20
+ (requires OpenSSL 3.2.0 or greater).
21
+ * Numerous minor fixes and additions.
1822
1923
2024
<h2 id='v2_24'>Changes for version 2.24 (2024-04-23)</h2>
2125
2226
* Apache change work-around &rarr; As part of a security fix, the Apache webserver
@@ -85,11 +89,11 @@
8589
* Add ability to "close" forum threads, such that unprivileged users
8690
may no longer respond to them. Only administrators can close
8791
threads or respond to them by default, and the
8892
[/help?cmd=forum-close-policy|forum-close-policy setting] can be
8993
used to add that capability to moderators.
90
- * Add the [/help?cmd=all|fossil all whatis] command.
94
+ * Add the [/help?cmd=all|fossil all whatis] command.
9195
* The [/help?cmd=status|fossil status] command and relevant UI pages now
9296
correctly report files which were both renamed <b>and</b> edited as such.
9397
* Show default value of settings that have a default in
9498
[/help?cmd=help|fossil help SETTING] output.
9599
* On timeline graphs, show closed check-ins using an X in the middle of the
@@ -127,11 +131,10 @@
127131
they work when the "remote" machine is a Mac and the "fossil"
128132
executable is in the $HOME/bin directory.
129133
</ul>
130134
* Update built-in libraries SQLite, ZLib, Pikchr to their latest versions.
131135
* Documentation enhancements and typo fixes.
132
-
133136
134137
135138
<h2 id='v2_22'>Changes for version 2.22 (2023-05-31)</h2>
136139
* Enhancements to the [/help?cmd=/timeline|/timeline webpage]: <ol type="a">
137140
<li> Add the ft=TAG query parameter which in combination with d=Y
@@ -155,11 +158,11 @@
155158
frees us from needing to build and install the container as root,
156159
since it no longer has to create a private <tt>/dev</tt> tree
157160
inside the jail for Fossil's use.
158161
* Add support for the trigram tokenizer for FTS5 search to enable
159162
searching in Chinese.
160
- * Comment lines (starting with a '#') are now supported inside
163
+ * Comment lines (starting with a '#') are now supported inside
161164
[./settings.wiki#versionable|versioned settings].
162165
* Default permissions for anonymous users in new repositories are
163166
changed to "hz".
164167
* The [/help?cmd=status|fossil status] command now detects when a
165168
file used to be a symlink and has been replaced by a regular file.
166169
--- www/changes.wiki
+++ www/changes.wiki
@@ -13,10 +13,14 @@
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 +89,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 +131,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 +158,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,14 @@
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 * On Windows, use the root certificates managed by the operating system
20 (requires OpenSSL 3.2.0 or greater).
21 * Numerous minor fixes and additions.
22
23
24 <h2 id='v2_24'>Changes for version 2.24 (2024-04-23)</h2>
25
26 * Apache change work-around &rarr; As part of a security fix, the Apache webserver
@@ -85,11 +89,11 @@
89 * Add ability to "close" forum threads, such that unprivileged users
90 may no longer respond to them. Only administrators can close
91 threads or respond to them by default, and the
92 [/help?cmd=forum-close-policy|forum-close-policy setting] can be
93 used to add that capability to moderators.
94 * Add the [/help?cmd=all|fossil all whatis] command.
95 * The [/help?cmd=status|fossil status] command and relevant UI pages now
96 correctly report files which were both renamed <b>and</b> edited as such.
97 * Show default value of settings that have a default in
98 [/help?cmd=help|fossil help SETTING] output.
99 * On timeline graphs, show closed check-ins using an X in the middle of the
@@ -127,11 +131,10 @@
131 they work when the "remote" machine is a Mac and the "fossil"
132 executable is in the $HOME/bin directory.
133 </ul>
134 * Update built-in libraries SQLite, ZLib, Pikchr to their latest versions.
135 * Documentation enhancements and typo fixes.
 
136
137
138 <h2 id='v2_22'>Changes for version 2.22 (2023-05-31)</h2>
139 * Enhancements to the [/help?cmd=/timeline|/timeline webpage]: <ol type="a">
140 <li> Add the ft=TAG query parameter which in combination with d=Y
@@ -155,11 +158,11 @@
158 frees us from needing to build and install the container as root,
159 since it no longer has to create a private <tt>/dev</tt> tree
160 inside the jail for Fossil's use.
161 * Add support for the trigram tokenizer for FTS5 search to enable
162 searching in Chinese.
163 * Comment lines (starting with a '#') are now supported inside
164 [./settings.wiki#versionable|versioned settings].
165 * Default permissions for anonymous users in new repositories are
166 changed to "hz".
167 * The [/help?cmd=status|fossil status] command now detects when a
168 file used to be a symlink and has been replaced by a regular file.
169
--- 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