Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Merge in the latest trunk changes. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | sec2020 |
| Files: | files | file ages | folders |
| SHA3-256: |
917917aa55331052b80bb6525e54cb12 |
| User & Date: | drh 2020-08-18 14:02:09.730 |
Context
|
2020-08-18
| ||
| 19:49 | Rework the "permissive-manifest-parser" idea to be simpler and to call it "strict-manifest-syntax". check-in: 4df8c856ee user: drh tags: sec2020 | |
| 16:07 | Added and applied permissive-manifest-parser setting to permit parsing of manifests which have F-cards containing now-illegal names. Required for rebuild of historical data and support of repositories we now know to contain such files. check-in: 9e59cf18fc user: stephan tags: sec2020-deadend | |
| 14:02 | Merge in the latest trunk changes. check-in: 917917aa55 user: drh tags: sec2020 | |
| 14:00 | Allow <del> and <ins> markup in wiki and in markdown. check-in: ae9a9db553 user: drh tags: trunk | |
| 13:17 | More missing db_unprotect() calls. check-in: 06d3789a2a user: drh tags: sec2020 | |
Changes
Changes to src/db.c.
| ︙ | ︙ | |||
3291 3292 3293 3294 3295 3296 3297 | ** "new-name" term means that the cloned repository will be called ** "new-name.fossil". ** ** Options: ** --empty Initialize checkout as being empty, but still connected ** with the local repository. If you commit this checkout, ** it will become a new "initial" commit in the repository. | | | 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 | ** "new-name" term means that the cloned repository will be called ** "new-name.fossil". ** ** Options: ** --empty Initialize checkout as being empty, but still connected ** with the local repository. If you commit this checkout, ** it will become a new "initial" commit in the repository. ** -f|--force Continue with the open even if the working directory is ** not empty. ** --force-missing Force opening a repository with missing content ** --keep Only modify the manifest and manifest.uuid files ** --nested Allow opening a repository inside an opened checkout ** --repodir DIR If REPOSITORY is a URI that will be cloned, store ** the clone in DIR rather than in "." ** --setmtime Set timestamps of all files to match their SCM-side |
| ︙ | ︙ | |||
3335 3336 3337 3338 3339 3340 3341 |
emptyFlag = find_option("empty",0,0)!=0;
keepFlag = find_option("keep",0,0)!=0;
forceMissingFlag = find_option("force-missing",0,0)!=0;
allowNested = find_option("nested",0,0)!=0;
setmtimeFlag = find_option("setmtime",0,0)!=0;
zWorkDir = find_option("workdir",0,1);
zRepoDir = find_option("repodir",0,1);
| | | 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 |
emptyFlag = find_option("empty",0,0)!=0;
keepFlag = find_option("keep",0,0)!=0;
forceMissingFlag = find_option("force-missing",0,0)!=0;
allowNested = find_option("nested",0,0)!=0;
setmtimeFlag = find_option("setmtime",0,0)!=0;
zWorkDir = find_option("workdir",0,1);
zRepoDir = find_option("repodir",0,1);
bForce = find_option("force","f",0)!=0;
if( find_option("symlinks",0,0)!=0 ) allowSymlinks = 1;
zPwd = file_getcwd(0,0);
/* We should be done with options.. */
verify_all_options();
|
| ︙ | ︙ | |||
3375 3376 3377 3378 3379 3380 3381 |
}
if( file_chdir(zWorkDir, 0) ){
fossil_fatal("unable to make %s the working directory", zWorkDir);
}
}
if( keepFlag==0 && bForce==0 && file_directory_size(".", 0, 1)>0 ){
fossil_fatal("directory %s is not empty\n"
| | | 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 |
}
if( file_chdir(zWorkDir, 0) ){
fossil_fatal("unable to make %s the working directory", zWorkDir);
}
}
if( keepFlag==0 && bForce==0 && file_directory_size(".", 0, 1)>0 ){
fossil_fatal("directory %s is not empty\n"
"use the -f or --force option to override", file_getcwd(0,0));
}
if( db_open_local_v2(0, allowNested) ){
fossil_fatal("there is already an open tree at %s", g.zLocalRoot);
}
/* If REPOSITORY looks like a URI, then try to clone it first */
|
| ︙ | ︙ |
Changes to src/default.css.
| ︙ | ︙ | |||
1153 1154 1155 1156 1157 1158 1159 |
width: 100%;
table-layout: fixed /* required to keep ultra-wide code from exceeding
window width, and instead force a scrollbar
on them. */;
}
table.numbered-lines > tbody > tr {
font-family: monospace;
| < | 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 |
width: 100%;
table-layout: fixed /* required to keep ultra-wide code from exceeding
window width, and instead force a scrollbar
on them. */;
}
table.numbered-lines > tbody > tr {
font-family: monospace;
line-height: 1.35;
white-space: pre;
}
table.numbered-lines > tbody > tr > td {
font-family: inherit;
font-size: inherit;
line-height: inherit;
|
| ︙ | ︙ |
Changes to src/sync.c.
| ︙ | ︙ | |||
509 510 511 512 513 514 515 | /* ** COMMAND: backup* ** ** Usage: %fossil backup ?OPTIONS? FILE|DIRECTORY ** ** Make a backup of the repository into the named file or into the named ** directory. This backup is guaranteed to be consistent even if there are | | | | 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 |
/*
** COMMAND: backup*
**
** Usage: %fossil backup ?OPTIONS? FILE|DIRECTORY
**
** Make a backup of the repository into the named file or into the named
** directory. This backup is guaranteed to be consistent even if there are
** concurrent changes taking place on the repository. In other words, it
** is safe to run "fossil backup" on a repository that is in active use.
**
** Only the main repository database is backed up by this command. The
** open checkout file (if any) is not saved. Nor is the global configuration
** database.
**
** Options:
**
** --overwrite OK to overwrite an existing file
** -R NAME Filename of the repository to backup
*/
void backup_cmd(void){
char *zDest;
int bOverwrite = 0;
db_find_and_open_repository(OPEN_ANY_SCHEMA, 0);
bOverwrite = find_option("overwrite",0,0)!=0;
|
| ︙ | ︙ |
Changes to src/wikiformat.c.
| ︙ | ︙ | |||
186 187 188 189 190 191 192 | #define MARKUP_BR 8 #define MARKUP_CENTER 9 #define MARKUP_CITE 10 #define MARKUP_CODE 11 #define MARKUP_COL 12 #define MARKUP_COLGROUP 13 #define MARKUP_DD 14 | > | | | | | | | | | | | | | | | | | > | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 | #define MARKUP_BR 8 #define MARKUP_CENTER 9 #define MARKUP_CITE 10 #define MARKUP_CODE 11 #define MARKUP_COL 12 #define MARKUP_COLGROUP 13 #define MARKUP_DD 14 #define MARKUP_DEL 15 #define MARKUP_DFN 16 #define MARKUP_DIV 17 #define MARKUP_DL 18 #define MARKUP_DT 19 #define MARKUP_EM 20 #define MARKUP_FONT 21 #define MARKUP_HTML5_FOOTER 22 #define MARKUP_H1 23 #define MARKUP_H2 24 #define MARKUP_H3 25 #define MARKUP_H4 26 #define MARKUP_H5 27 #define MARKUP_H6 28 #define MARKUP_HTML5_HEADER 29 #define MARKUP_HR 30 #define MARKUP_I 31 #define MARKUP_IMG 32 #define MARKUP_INS 33 #define MARKUP_KBD 34 #define MARKUP_LI 35 #define MARKUP_HTML5_NAV 36 #define MARKUP_NOBR 37 #define MARKUP_NOWIKI 38 #define MARKUP_OL 39 #define MARKUP_P 40 #define MARKUP_PRE 41 #define MARKUP_S 42 #define MARKUP_SAMP 43 #define MARKUP_HTML5_SECTION 44 #define MARKUP_SMALL 45 #define MARKUP_SPAN 46 #define MARKUP_STRIKE 47 #define MARKUP_STRONG 48 #define MARKUP_SUB 49 #define MARKUP_SUP 50 #define MARKUP_TABLE 51 #define MARKUP_TBODY 52 #define MARKUP_TD 53 #define MARKUP_TFOOT 54 #define MARKUP_TH 55 #define MARKUP_THEAD 56 #define MARKUP_TITLE 57 #define MARKUP_TR 58 #define MARKUP_TT 59 #define MARKUP_U 60 #define MARKUP_UL 61 #define MARKUP_VAR 62 #define MARKUP_VERBATIM 63 /* ** The various markup is divided into the following types: */ #define MUTYPE_SINGLE 0x0001 /* <img>, <br>, or <hr> */ #define MUTYPE_BLOCK 0x0002 /* Forms a new paragraph. ex: <p>, <h2> */ #define MUTYPE_FONT 0x0004 /* Font changes. ex: <b>, <font>, <sub> */ |
| ︙ | ︙ | |||
288 289 290 291 292 293 294 295 296 297 298 299 300 301 |
{ "cite", MARKUP_CITE, MUTYPE_FONT, AMSK_STYLE },
{ "code", MARKUP_CODE, MUTYPE_FONT, AMSK_STYLE },
{ "col", MARKUP_COL, MUTYPE_SINGLE,
AMSK_ALIGN|AMSK_CLASS|AMSK_COLSPAN|AMSK_WIDTH|AMSK_STYLE },
{ "colgroup", MARKUP_COLGROUP, MUTYPE_BLOCK,
AMSK_ALIGN|AMSK_CLASS|AMSK_COLSPAN|AMSK_WIDTH|AMSK_STYLE},
{ "dd", MARKUP_DD, MUTYPE_LI, AMSK_STYLE },
{ "dfn", MARKUP_DFN, MUTYPE_FONT, AMSK_STYLE },
{ "div", MARKUP_DIV, MUTYPE_BLOCK,
AMSK_ID|AMSK_CLASS|AMSK_STYLE },
{ "dl", MARKUP_DL, MUTYPE_LIST,
AMSK_COMPACT|AMSK_STYLE },
{ "dt", MARKUP_DT, MUTYPE_LI, AMSK_STYLE },
{ "em", MARKUP_EM, MUTYPE_FONT, AMSK_STYLE },
| > | 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 |
{ "cite", MARKUP_CITE, MUTYPE_FONT, AMSK_STYLE },
{ "code", MARKUP_CODE, MUTYPE_FONT, AMSK_STYLE },
{ "col", MARKUP_COL, MUTYPE_SINGLE,
AMSK_ALIGN|AMSK_CLASS|AMSK_COLSPAN|AMSK_WIDTH|AMSK_STYLE },
{ "colgroup", MARKUP_COLGROUP, MUTYPE_BLOCK,
AMSK_ALIGN|AMSK_CLASS|AMSK_COLSPAN|AMSK_WIDTH|AMSK_STYLE},
{ "dd", MARKUP_DD, MUTYPE_LI, AMSK_STYLE },
{ "del", MARKUP_DEL, MUTYPE_FONT, AMSK_STYLE },
{ "dfn", MARKUP_DFN, MUTYPE_FONT, AMSK_STYLE },
{ "div", MARKUP_DIV, MUTYPE_BLOCK,
AMSK_ID|AMSK_CLASS|AMSK_STYLE },
{ "dl", MARKUP_DL, MUTYPE_LIST,
AMSK_COMPACT|AMSK_STYLE },
{ "dt", MARKUP_DT, MUTYPE_LI, AMSK_STYLE },
{ "em", MARKUP_EM, MUTYPE_FONT, AMSK_STYLE },
|
| ︙ | ︙ | |||
323 324 325 326 327 328 329 330 331 332 333 334 335 336 |
{ "hr", MARKUP_HR, MUTYPE_SINGLE,
AMSK_ALIGN|AMSK_COLOR|AMSK_SIZE|AMSK_WIDTH|
AMSK_STYLE|AMSK_CLASS },
{ "i", MARKUP_I, MUTYPE_FONT, AMSK_STYLE },
{ "img", MARKUP_IMG, MUTYPE_SINGLE,
AMSK_ALIGN|AMSK_ALT|AMSK_BORDER|AMSK_HEIGHT|
AMSK_HSPACE|AMSK_SRC|AMSK_VSPACE|AMSK_WIDTH|AMSK_STYLE },
{ "kbd", MARKUP_KBD, MUTYPE_FONT, AMSK_STYLE },
{ "li", MARKUP_LI, MUTYPE_LI,
AMSK_TYPE|AMSK_VALUE|AMSK_STYLE },
{ "nav", MARKUP_HTML5_NAV, MUTYPE_BLOCK,
AMSK_ID|AMSK_CLASS|AMSK_STYLE },
{ "nobr", MARKUP_NOBR, MUTYPE_FONT, 0 },
{ "nowiki", MARKUP_NOWIKI, MUTYPE_SPECIAL, 0 },
| > | 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 |
{ "hr", MARKUP_HR, MUTYPE_SINGLE,
AMSK_ALIGN|AMSK_COLOR|AMSK_SIZE|AMSK_WIDTH|
AMSK_STYLE|AMSK_CLASS },
{ "i", MARKUP_I, MUTYPE_FONT, AMSK_STYLE },
{ "img", MARKUP_IMG, MUTYPE_SINGLE,
AMSK_ALIGN|AMSK_ALT|AMSK_BORDER|AMSK_HEIGHT|
AMSK_HSPACE|AMSK_SRC|AMSK_VSPACE|AMSK_WIDTH|AMSK_STYLE },
{ "ins", MARKUP_INS, MUTYPE_FONT, AMSK_STYLE },
{ "kbd", MARKUP_KBD, MUTYPE_FONT, AMSK_STYLE },
{ "li", MARKUP_LI, MUTYPE_LI,
AMSK_TYPE|AMSK_VALUE|AMSK_STYLE },
{ "nav", MARKUP_HTML5_NAV, MUTYPE_BLOCK,
AMSK_ID|AMSK_CLASS|AMSK_STYLE },
{ "nobr", MARKUP_NOBR, MUTYPE_FONT, 0 },
{ "nowiki", MARKUP_NOWIKI, MUTYPE_SPECIAL, 0 },
|
| ︙ | ︙ |
Changes to www/customskin.md.
| ︙ | ︙ | |||
66 67 68 69 70 71 72 | <tr><td style='background-color:lightgreen;text-align:center;'> Fossil-Generated Content</td></tr> <tr><td style='background-color:lightblue;text-align:center;'>Content Footer</td></tr> <tr><td style='background-color:lightgreen;text-align:center;'> Fossil-Generated HTML Footer</td></tr> </tbody></table></blockquote> | | | > | > | | | | | > | | 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
<tr><td style='background-color:lightgreen;text-align:center;'>
Fossil-Generated Content</td></tr>
<tr><td style='background-color:lightblue;text-align:center;'>Content Footer</td></tr>
<tr><td style='background-color:lightgreen;text-align:center;'>
Fossil-Generated HTML Footer</td></tr>
</tbody></table></blockquote>
The green parts are *usually* generated by Fossil. The blue parts
are things that you, the administrator, get to modify in order to
customize the skin.
Fossil *usually* (but not always - [see below](#override))
generates the initial HTML Header section of a page. The
generated HTML Header will look something like this:
<html>
<head>
<base href="..." />
<meta http-equiv="Content-Security-Policy" content="...." />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>....</title>
<link rel="stylesheet" href="..." type="text/css" />
</head>
<body>
In most cases, it is best to leave the Fossil-generated HTML Header
alone. (One exception is when the administrator needs to include links
to additional CSS files.) The configurable part of the skin begins
with the Content Header section which should follow this template:
<div class="header">
... top banner and menu bar ...
</div>
Note that `<div class="header">` and `</div>` tags must be included in
the Content Header text of the skin. In other words, you, the
administrator, need to supply that text as part of your skin
customization.
The Fossil-generated Content section immediately follows the Content Header.
The Content section will looks like this:
<div class="content">
... Fossil-generated content here ...
</div>
After the Content is the custom Content Footer section which should
follow this template:
<div class="footer">
... skin-specific stuff here ...
</div>
<script nonce="$nonce">
<th1>styleScript</th1>
</script>
|
| ︙ | ︙ |