Fossil SCM

Fix some spacing issues (blame output should be exactly the same as Fossil 1.28) Make annotation work with UTF-16 files. Remove some unnecessary end-of-line spaces in text files.

jan.nijtmans 2014-03-07 11:29 strip-trailing-cr
Commit 4514910a5f820e41fdd5c2685cf5f9ada6172660
+2 -2
--- BUILD.txt
+++ BUILD.txt
@@ -22,11 +22,11 @@
2222
2323
cd win; nmake /f Makefile.msc
2424
2525
If you have trouble, or you want to do something fancy, just look at
2626
Makefile.classic. There are 6 configuration options that are all well
27
-commented. Instead of editing the Makefile.classic, consider copying
27
+commented. Instead of editing the Makefile.classic, consider copying
2828
Makefile.classic to an alternative name such as "GNUMakefile",
2929
"BSDMakefile", or "makefile" and editing the copy.
3030
3131
3232
BUILDING OUTSIDE THE SOURCE TREE
@@ -61,11 +61,11 @@
6161
Do not edit src/main.mk directly. Update src/makemake.tcl and
6262
then rerun it.
6363
6464
* The *.h header files are automatically generated using a program
6565
called "makeheaders". Source code to the makeheaders program is
66
- found in src/makeheaders.c. Documentation is found in
66
+ found in src/makeheaders.c. Documentation is found in
6767
src/makeheaders.html.
6868
6969
* Most *.c source files are preprocessed using a program called
7070
"translate". The sources to translate are found in src/translate.c.
7171
A header comment in src/translate.c explains in detail what it does.
7272
--- BUILD.txt
+++ BUILD.txt
@@ -22,11 +22,11 @@
22
23 cd win; nmake /f Makefile.msc
24
25 If you have trouble, or you want to do something fancy, just look at
26 Makefile.classic. There are 6 configuration options that are all well
27 commented. Instead of editing the Makefile.classic, consider copying
28 Makefile.classic to an alternative name such as "GNUMakefile",
29 "BSDMakefile", or "makefile" and editing the copy.
30
31
32 BUILDING OUTSIDE THE SOURCE TREE
@@ -61,11 +61,11 @@
61 Do not edit src/main.mk directly. Update src/makemake.tcl and
62 then rerun it.
63
64 * The *.h header files are automatically generated using a program
65 called "makeheaders". Source code to the makeheaders program is
66 found in src/makeheaders.c. Documentation is found in
67 src/makeheaders.html.
68
69 * Most *.c source files are preprocessed using a program called
70 "translate". The sources to translate are found in src/translate.c.
71 A header comment in src/translate.c explains in detail what it does.
72
--- BUILD.txt
+++ BUILD.txt
@@ -22,11 +22,11 @@
22
23 cd win; nmake /f Makefile.msc
24
25 If you have trouble, or you want to do something fancy, just look at
26 Makefile.classic. There are 6 configuration options that are all well
27 commented. Instead of editing the Makefile.classic, consider copying
28 Makefile.classic to an alternative name such as "GNUMakefile",
29 "BSDMakefile", or "makefile" and editing the copy.
30
31
32 BUILDING OUTSIDE THE SOURCE TREE
@@ -61,11 +61,11 @@
61 Do not edit src/main.mk directly. Update src/makemake.tcl and
62 then rerun it.
63
64 * The *.h header files are automatically generated using a program
65 called "makeheaders". Source code to the makeheaders program is
66 found in src/makeheaders.c. Documentation is found in
67 src/makeheaders.html.
68
69 * Most *.c source files are preprocessed using a program called
70 "translate". The sources to translate are found in src/translate.c.
71 A header comment in src/translate.c explains in detail what it does.
72
+12 -12
--- COPYRIGHT-BSD2.txt
+++ COPYRIGHT-BSD2.txt
@@ -1,31 +1,31 @@
11
Copyright 2007 D. Richard Hipp. All rights reserved.
22
3
-Redistribution and use in source and binary forms, with or
4
-without modification, are permitted provided that the
3
+Redistribution and use in source and binary forms, with or
4
+without modification, are permitted provided that the
55
following conditions are met:
66
77
1. Redistributions of source code must retain the above
8
- copyright notice, this list of conditions and the
8
+ copyright notice, this list of conditions and the
99
following disclaimer.
1010
1111
2. Redistributions in binary form must reproduce the above
1212
copyright notice, this list of conditions and the
1313
following disclaimer in the documentation and/or other
1414
materials provided with the distribution.
1515
16
-THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
17
-OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16
+THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
17
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
1818
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19
-ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
19
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
2020
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
21
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
2323
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24
-WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25
-OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
24
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25
+OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
2626
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2727
28
-The views and conclusions contained in the software and documentation
29
-are those of the authors and contributors and should not be interpreted
28
+The views and conclusions contained in the software and documentation
29
+are those of the authors and contributors and should not be interpreted
3030
as representing official policies, either expressed or implied, of anybody
3131
else.
3232
--- COPYRIGHT-BSD2.txt
+++ COPYRIGHT-BSD2.txt
@@ -1,31 +1,31 @@
1 Copyright 2007 D. Richard Hipp. All rights reserved.
2
3 Redistribution and use in source and binary forms, with or
4 without modification, are permitted provided that the
5 following conditions are met:
6
7 1. Redistributions of source code must retain the above
8 copyright notice, this list of conditions and the
9 following disclaimer.
10
11 2. Redistributions in binary form must reproduce the above
12 copyright notice, this list of conditions and the
13 following disclaimer in the documentation and/or other
14 materials provided with the distribution.
15
16 THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
17 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
20 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23 BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25 OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
28 The views and conclusions contained in the software and documentation
29 are those of the authors and contributors and should not be interpreted
30 as representing official policies, either expressed or implied, of anybody
31 else.
32
--- COPYRIGHT-BSD2.txt
+++ COPYRIGHT-BSD2.txt
@@ -1,31 +1,31 @@
1 Copyright 2007 D. Richard Hipp. All rights reserved.
2
3 Redistribution and use in source and binary forms, with or
4 without modification, are permitted provided that the
5 following conditions are met:
6
7 1. Redistributions of source code must retain the above
8 copyright notice, this list of conditions and the
9 following disclaimer.
10
11 2. Redistributions in binary form must reproduce the above
12 copyright notice, this list of conditions and the
13 following disclaimer in the documentation and/or other
14 materials provided with the distribution.
15
16 THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
17 OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE
20 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23 BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
25 OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
28 The views and conclusions contained in the software and documentation
29 are those of the authors and contributors and should not be interpreted
30 as representing official policies, either expressed or implied, of anybody
31 else.
32
+16 -10
--- src/diff.c
+++ src/diff.c
@@ -176,15 +176,19 @@
176176
/* Don't do "extend++" here, because the CR needs to be stripped! */
177177
if( k>0 && z[k-1]=='\r' ){ k--; }
178178
}
179179
if( (diffFlags & DIFF_IGNORE_ALLWS)==DIFF_IGNORE_ALLWS ){
180180
while( s<k && fossil_isspace(z[s]) ){s++; extent++;}
181
- }
182
- for(h=0, x=s; x<k; x++){
183
- if( (diffFlags & DIFF_IGNORE_ALLWS)==DIFF_IGNORE_ALLWS && fossil_isspace(z[x]) ){
184
- ++numws;
185
- }else{
181
+ for(h=0, x=s; x<k; x++){
182
+ if( fossil_isspace(z[x]) ){
183
+ ++numws;
184
+ }else{
185
+ h = h ^ (h<<2) ^ z[x];
186
+ }
187
+ }
188
+ }else{
189
+ for(h=0, x=0; x<k; x++){
186190
h = h ^ (h<<2) ^ z[x];
187191
}
188192
}
189193
a[i].z = z;
190194
a[i].extent = extent+numws;
@@ -2094,10 +2098,11 @@
20942098
}
20952099
if( !content_get(rid, &toAnnotate) ){
20962100
fossil_fatal("unable to retrieve content of artifact #%d", rid);
20972101
}
20982102
if( iLimit<=0 ) iLimit = 1000000000;
2103
+ blob_to_utf8_no_bom(&toAnnotate, 0);
20992104
annotation_start(p, &toAnnotate, diffFlags);
21002105
db_begin_transaction();
21012106
db_multi_exec(
21022107
"CREATE TEMP TABLE IF NOT EXISTS vseen(rid INTEGER PRIMARY KEY);"
21032108
"DELETE FROM vseen;"
@@ -2128,10 +2133,11 @@
21282133
p->aVers[p->nVers].zMUuid = fossil_strdup(db_column_text(&q, 1));
21292134
p->aVers[p->nVers].zDate = fossil_strdup(db_column_text(&q, 2));
21302135
p->aVers[p->nVers].zUser = fossil_strdup(db_column_text(&q, 3));
21312136
if( p->nVers ){
21322137
content_get(rid, &step);
2138
+ blob_to_utf8_no_bom(&step, 0);
21332139
annotation_step(p, &step, p->nVers-1, diffFlags);
21342140
blob_reset(&step);
21352141
}
21362142
p->nVers++;
21372143
db_bind_int(&ins, ":rid", rid);
@@ -2325,26 +2331,26 @@
23252331
"<span style='background-color:%s'>"
23262332
"%s%.10s</a> %s</span> %13.13s:",
23272333
p->zBgColor, zLink, p->zMUuid, p->zDate, p->zUser);
23282334
fossil_free(zLink);
23292335
}else{
2330
- sqlite3_snprintf(sizeof(zPrefix), zPrefix, "%36s ", "");
2336
+ sqlite3_snprintf(sizeof(zPrefix), zPrefix, "%36s", "");
23312337
}
23322338
}else{
23332339
if( iVers>=0 ){
23342340
struct AnnVers *p = ann.aVers+iVers;
23352341
char *zLink = xhref("target='infowindow'", "%R/info/%S", p->zMUuid);
23362342
sqlite3_snprintf(sizeof(zPrefix), zPrefix,
23372343
"<span style='background-color:%s'>"
2338
- "%s%.10s</a> %s</span> %4d: ",
2344
+ "%s%.10s</a> %s</span> %4d:",
23392345
p->zBgColor, zLink, p->zMUuid, p->zDate, i+1);
23402346
fossil_free(zLink);
23412347
}else{
2342
- sqlite3_snprintf(sizeof(zPrefix), zPrefix, "%22s%4d: ", "", i+1);
2348
+ sqlite3_snprintf(sizeof(zPrefix), zPrefix, "%22s%4d:", "", i+1);
23432349
}
23442350
}
2345
- @ %s(zPrefix)%h(z)
2351
+ @ %s(zPrefix) %h(z)
23462352
23472353
}
23482354
@ </pre>
23492355
style_footer();
23502356
}
@@ -2448,12 +2454,12 @@
24482454
}
24492455
}else{
24502456
if( iVers>=0 ){
24512457
fossil_print("%.10s %s %5d: %.*s\n",
24522458
fileVers ? p->zFUuid : p->zMUuid, p->zDate, i+1, n, z);
2453
- }else {
2459
+ }else{
24542460
fossil_print("%21s %5d: %.*s\n",
24552461
"", i+1, n, z);
24562462
}
24572463
}
24582464
}
24592465
}
24602466
--- src/diff.c
+++ src/diff.c
@@ -176,15 +176,19 @@
176 /* Don't do "extend++" here, because the CR needs to be stripped! */
177 if( k>0 && z[k-1]=='\r' ){ k--; }
178 }
179 if( (diffFlags & DIFF_IGNORE_ALLWS)==DIFF_IGNORE_ALLWS ){
180 while( s<k && fossil_isspace(z[s]) ){s++; extent++;}
181 }
182 for(h=0, x=s; x<k; x++){
183 if( (diffFlags & DIFF_IGNORE_ALLWS)==DIFF_IGNORE_ALLWS && fossil_isspace(z[x]) ){
184 ++numws;
185 }else{
 
 
 
 
186 h = h ^ (h<<2) ^ z[x];
187 }
188 }
189 a[i].z = z;
190 a[i].extent = extent+numws;
@@ -2094,10 +2098,11 @@
2094 }
2095 if( !content_get(rid, &toAnnotate) ){
2096 fossil_fatal("unable to retrieve content of artifact #%d", rid);
2097 }
2098 if( iLimit<=0 ) iLimit = 1000000000;
 
2099 annotation_start(p, &toAnnotate, diffFlags);
2100 db_begin_transaction();
2101 db_multi_exec(
2102 "CREATE TEMP TABLE IF NOT EXISTS vseen(rid INTEGER PRIMARY KEY);"
2103 "DELETE FROM vseen;"
@@ -2128,10 +2133,11 @@
2128 p->aVers[p->nVers].zMUuid = fossil_strdup(db_column_text(&q, 1));
2129 p->aVers[p->nVers].zDate = fossil_strdup(db_column_text(&q, 2));
2130 p->aVers[p->nVers].zUser = fossil_strdup(db_column_text(&q, 3));
2131 if( p->nVers ){
2132 content_get(rid, &step);
 
2133 annotation_step(p, &step, p->nVers-1, diffFlags);
2134 blob_reset(&step);
2135 }
2136 p->nVers++;
2137 db_bind_int(&ins, ":rid", rid);
@@ -2325,26 +2331,26 @@
2325 "<span style='background-color:%s'>"
2326 "%s%.10s</a> %s</span> %13.13s:",
2327 p->zBgColor, zLink, p->zMUuid, p->zDate, p->zUser);
2328 fossil_free(zLink);
2329 }else{
2330 sqlite3_snprintf(sizeof(zPrefix), zPrefix, "%36s ", "");
2331 }
2332 }else{
2333 if( iVers>=0 ){
2334 struct AnnVers *p = ann.aVers+iVers;
2335 char *zLink = xhref("target='infowindow'", "%R/info/%S", p->zMUuid);
2336 sqlite3_snprintf(sizeof(zPrefix), zPrefix,
2337 "<span style='background-color:%s'>"
2338 "%s%.10s</a> %s</span> %4d: ",
2339 p->zBgColor, zLink, p->zMUuid, p->zDate, i+1);
2340 fossil_free(zLink);
2341 }else{
2342 sqlite3_snprintf(sizeof(zPrefix), zPrefix, "%22s%4d: ", "", i+1);
2343 }
2344 }
2345 @ %s(zPrefix)%h(z)
2346
2347 }
2348 @ </pre>
2349 style_footer();
2350 }
@@ -2448,12 +2454,12 @@
2448 }
2449 }else{
2450 if( iVers>=0 ){
2451 fossil_print("%.10s %s %5d: %.*s\n",
2452 fileVers ? p->zFUuid : p->zMUuid, p->zDate, i+1, n, z);
2453 }else {
2454 fossil_print("%21s %5d: %.*s\n",
2455 "", i+1, n, z);
2456 }
2457 }
2458 }
2459 }
2460
--- src/diff.c
+++ src/diff.c
@@ -176,15 +176,19 @@
176 /* Don't do "extend++" here, because the CR needs to be stripped! */
177 if( k>0 && z[k-1]=='\r' ){ k--; }
178 }
179 if( (diffFlags & DIFF_IGNORE_ALLWS)==DIFF_IGNORE_ALLWS ){
180 while( s<k && fossil_isspace(z[s]) ){s++; extent++;}
181 for(h=0, x=s; x<k; x++){
182 if( fossil_isspace(z[x]) ){
183 ++numws;
184 }else{
185 h = h ^ (h<<2) ^ z[x];
186 }
187 }
188 }else{
189 for(h=0, x=0; x<k; x++){
190 h = h ^ (h<<2) ^ z[x];
191 }
192 }
193 a[i].z = z;
194 a[i].extent = extent+numws;
@@ -2094,10 +2098,11 @@
2098 }
2099 if( !content_get(rid, &toAnnotate) ){
2100 fossil_fatal("unable to retrieve content of artifact #%d", rid);
2101 }
2102 if( iLimit<=0 ) iLimit = 1000000000;
2103 blob_to_utf8_no_bom(&toAnnotate, 0);
2104 annotation_start(p, &toAnnotate, diffFlags);
2105 db_begin_transaction();
2106 db_multi_exec(
2107 "CREATE TEMP TABLE IF NOT EXISTS vseen(rid INTEGER PRIMARY KEY);"
2108 "DELETE FROM vseen;"
@@ -2128,10 +2133,11 @@
2133 p->aVers[p->nVers].zMUuid = fossil_strdup(db_column_text(&q, 1));
2134 p->aVers[p->nVers].zDate = fossil_strdup(db_column_text(&q, 2));
2135 p->aVers[p->nVers].zUser = fossil_strdup(db_column_text(&q, 3));
2136 if( p->nVers ){
2137 content_get(rid, &step);
2138 blob_to_utf8_no_bom(&step, 0);
2139 annotation_step(p, &step, p->nVers-1, diffFlags);
2140 blob_reset(&step);
2141 }
2142 p->nVers++;
2143 db_bind_int(&ins, ":rid", rid);
@@ -2325,26 +2331,26 @@
2331 "<span style='background-color:%s'>"
2332 "%s%.10s</a> %s</span> %13.13s:",
2333 p->zBgColor, zLink, p->zMUuid, p->zDate, p->zUser);
2334 fossil_free(zLink);
2335 }else{
2336 sqlite3_snprintf(sizeof(zPrefix), zPrefix, "%36s", "");
2337 }
2338 }else{
2339 if( iVers>=0 ){
2340 struct AnnVers *p = ann.aVers+iVers;
2341 char *zLink = xhref("target='infowindow'", "%R/info/%S", p->zMUuid);
2342 sqlite3_snprintf(sizeof(zPrefix), zPrefix,
2343 "<span style='background-color:%s'>"
2344 "%s%.10s</a> %s</span> %4d:",
2345 p->zBgColor, zLink, p->zMUuid, p->zDate, i+1);
2346 fossil_free(zLink);
2347 }else{
2348 sqlite3_snprintf(sizeof(zPrefix), zPrefix, "%22s%4d:", "", i+1);
2349 }
2350 }
2351 @ %s(zPrefix) %h(z)
2352
2353 }
2354 @ </pre>
2355 style_footer();
2356 }
@@ -2448,12 +2454,12 @@
2454 }
2455 }else{
2456 if( iVers>=0 ){
2457 fossil_print("%.10s %s %5d: %.*s\n",
2458 fileVers ? p->zFUuid : p->zMUuid, p->zDate, i+1, n, z);
2459 }else{
2460 fossil_print("%21s %5d: %.*s\n",
2461 "", i+1, n, z);
2462 }
2463 }
2464 }
2465 }
2466
--- test/utf16be.txt
+++ test/utf16be.txt
@@ -12,11 +12,11 @@
1212
1313
Test procedures:
1414
1515
1. Verify that this file is correctly display using the /artifact
1616
webpage.
17
-
17
+
1818
2. Verify that this file is correctly displayed by the /doc webpage.
1919
2020
3. Verify that changes to are correctly displayed by the /fdiff webpage.
2121
2222
4. Verify that the "fossil diff" command correctly displays changes
2323
--- test/utf16be.txt
+++ test/utf16be.txt
@@ -12,11 +12,11 @@
12
13 Test procedures:
14
15 1. Verify that this file is correctly display using the /artifact
16 webpage.
17
18 2. Verify that this file is correctly displayed by the /doc webpage.
19
20 3. Verify that changes to are correctly displayed by the /fdiff webpage.
21
22 4. Verify that the "fossil diff" command correctly displays changes
23
--- test/utf16be.txt
+++ test/utf16be.txt
@@ -12,11 +12,11 @@
12
13 Test procedures:
14
15 1. Verify that this file is correctly display using the /artifact
16 webpage.
17
18 2. Verify that this file is correctly displayed by the /doc webpage.
19
20 3. Verify that changes to are correctly displayed by the /fdiff webpage.
21
22 4. Verify that the "fossil diff" command correctly displays changes
23
--- test/utf16le.txt
+++ test/utf16le.txt
@@ -12,11 +12,11 @@
1212
1313
Test procedures:
1414
1515
1. Verify that this file is correctly display using the /artifact
1616
webpage.
17
-
17
+
1818
2. Verify that this file is correctly displayed by the /doc webpage.
1919
2020
3. Verify that changes to are correctly displayed by the /fdiff webpage.
2121
2222
4. Verify that the "fossil diff" command correctly displays changes
2323
--- test/utf16le.txt
+++ test/utf16le.txt
@@ -12,11 +12,11 @@
12
13 Test procedures:
14
15 1. Verify that this file is correctly display using the /artifact
16 webpage.
17
18 2. Verify that this file is correctly displayed by the /doc webpage.
19
20 3. Verify that changes to are correctly displayed by the /fdiff webpage.
21
22 4. Verify that the "fossil diff" command correctly displays changes
23
--- test/utf16le.txt
+++ test/utf16le.txt
@@ -12,11 +12,11 @@
12
13 Test procedures:
14
15 1. Verify that this file is correctly display using the /artifact
16 webpage.
17
18 2. Verify that this file is correctly displayed by the /doc webpage.
19
20 3. Verify that changes to are correctly displayed by the /fdiff webpage.
21
22 4. Verify that the "fossil diff" command correctly displays changes
23

Keyboard Shortcuts

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