Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Fix typos in comments. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
243fc6c2467988f387f4257a226ff59f |
| User & Date: | drh 2016-06-21 20:03:27.496 |
Context
|
2016-06-23
| ||
| 07:43 | Replace some usage of <center> tags with align="center" attributes. ... (check-in: fcfaae37dc user: jan.nijtmans tags: trunk) | |
|
2016-06-22
| ||
| 09:11 | merge trunk ... (Closed-Leaf check-in: 414fc1e95c user: jan.nijtmans tags: html-cleanup) | |
|
2016-06-21
| ||
| 20:03 | Fix typos in comments. ... (check-in: 243fc6c246 user: drh tags: trunk) | |
| 15:20 | Fix problem reported by Carlo Miron on fossil-dev mailing list: [38a47074] broke empty markdown links ... (check-in: 6bbec5fb21 user: jan.nijtmans tags: trunk) | |
Changes
Changes to src/allrepo.c.
| ︙ | ︙ | |||
136 137 138 139 140 141 142 | ** unset conjunction with the "max-loadavg" setting which cannot ** otherwise be set globally. ** ** In addition, the following maintenance operations are supported: ** ** add Add all the repositories named to the set of repositories ** tracked by Fossil. Normally Fossil is able to keep up with | | | 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | ** unset conjunction with the "max-loadavg" setting which cannot ** otherwise be set globally. ** ** In addition, the following maintenance operations are supported: ** ** add Add all the repositories named to the set of repositories ** tracked by Fossil. Normally Fossil is able to keep up with ** this list by itself, but sometimes it can benefit from this ** hint if you rename repositories. ** ** ignore Arguments are repositories that should be ignored by ** subsequent clean, extras, list, pull, push, rebuild, and ** sync operations. The -c|--ckout option causes the listed ** local checkouts to be ignored instead. ** |
| ︙ | ︙ |
Changes to src/bundle.c.
| ︙ | ︙ | |||
24 25 26 27 28 29 30 | /* ** SQL code used to initialize the schema of a bundle. ** ** The bblob.delta field can be an integer, a text string, or NULL. ** If an integer, then the corresponding blobid is the delta basis. ** If a text string, then that string is a SHA1 hash for the delta ** basis, which is presumably in the master repository. If NULL, then | | | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | /* ** SQL code used to initialize the schema of a bundle. ** ** The bblob.delta field can be an integer, a text string, or NULL. ** If an integer, then the corresponding blobid is the delta basis. ** If a text string, then that string is a SHA1 hash for the delta ** basis, which is presumably in the master repository. If NULL, then ** data contains content without delta compression. */ static const char zBundleInit[] = @ CREATE TABLE IF NOT EXISTS "%w".bconfig( @ bcname TEXT, @ bcvalue ANY @ ); @ CREATE TABLE IF NOT EXISTS "%w".bblob( |
| ︙ | ︙ | |||
368 369 370 371 372 373 374 |
deltaFrom = db_int(0,
"SELECT max(fid) FROM mlink"
" WHERE fnid=(SELECT fnid FROM mlink WHERE fid=%d)"
" AND fid<%d", rid, mnToBundle);
}
}
| | | 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 |
deltaFrom = db_int(0,
"SELECT max(fid) FROM mlink"
" WHERE fnid=(SELECT fnid FROM mlink WHERE fid=%d)"
" AND fid<%d", rid, mnToBundle);
}
}
/* Try to insert the artifact as a delta
*/
if( deltaFrom ){
Blob basis, delta;
content_get(deltaFrom, &basis);
blob_delta_create(&basis, &content, &delta);
if( blob_size(&delta)>0.9*blob_size(&content) ){
deltaFrom = 0;
|
| ︙ | ︙ |
Changes to src/fusefs.c.
| ︙ | ︙ | |||
49 50 51 52 53 54 55 | ManifestFile *pFile; /* Name of a cached file */ Blob content; /* Content of the cached file */ /* Parsed path */ char *az[3]; /* 0=type, 1=id, 2=path */ } fusefs; /* | | | 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
ManifestFile *pFile; /* Name of a cached file */
Blob content; /* Content of the cached file */
/* Parsed path */
char *az[3]; /* 0=type, 1=id, 2=path */
} fusefs;
/*
** Clear the fusefs.az[] array.
*/
static void fusefs_clear_path(void){
int i;
for(i=0; i<count(fusefs.az); i++){
fossil_free(fusefs.az[i]);
fusefs.az[i] = 0;
}
|
| ︙ | ︙ |
Changes to src/markdown.c.
| ︙ | ︙ | |||
33 34 35 36 37 38 39 |
********************/
#if INTERFACE
/* mkd_autolink -- type of autolink */
enum mkd_autolink {
MKDA_NOT_AUTOLINK, /* used internally when it is not an autolink*/
| | | | 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
********************/
#if INTERFACE
/* mkd_autolink -- type of autolink */
enum mkd_autolink {
MKDA_NOT_AUTOLINK, /* used internally when it is not an autolink*/
MKDA_NORMAL, /* normal http/http/ftp link */
MKDA_EXPLICIT_EMAIL, /* e-mail link with explicit mailto: */
MKDA_IMPLICIT_EMAIL /* e-mail link without mailto: */
};
/* mkd_renderer -- functions for rendering parsed data */
struct mkd_renderer {
/* document level callbacks */
void (*prolog)(struct Blob *ob, void *opaque);
|
| ︙ | ︙ | |||
346 347 348 349 350 351 352 |
i++;
}
if( i>=size || data[i]!='>' || nb!=1 ) return 0;
return i+1;
}
| | | 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 |
i++;
}
if( i>=size || data[i]!='>' || nb!=1 ) return 0;
return i+1;
}
/* tag_length -- returns the length of the given tag, or 0 if it's not valid */
static size_t tag_length(char *data, size_t size, enum mkd_autolink *autolink){
size_t i, j;
/* a valid tag can't be shorter than 3 chars */
if( size<3 ) return 0;
/* begins with a '<' optionally followed by '/', followed by letter */
|
| ︙ | ︙ | |||
401 402 403 404 405 406 407 |
/* one of the forbidden chars has been found */
*autolink = MKDA_NOT_AUTOLINK;
}else if( (j = is_mail_autolink(data+i, size-i))!=0 ){
*autolink = (i==8) ? MKDA_EXPLICIT_EMAIL : MKDA_IMPLICIT_EMAIL;
return i+j;
}
| | | 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 |
/* one of the forbidden chars has been found */
*autolink = MKDA_NOT_AUTOLINK;
}else if( (j = is_mail_autolink(data+i, size-i))!=0 ){
*autolink = (i==8) ? MKDA_EXPLICIT_EMAIL : MKDA_IMPLICIT_EMAIL;
return i+j;
}
/* looking for something looking like a tag end */
while( i<size && data[i]!='>' ){ i++; }
if( i>=size ) return 0;
return i+1;
}
/* parse_inline -- parses inline markdown elements */
|
| ︙ | ︙ | |||
518 519 520 521 522 523 524 |
i++;
}
}
return 0;
}
| | | 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 |
i++;
}
}
return 0;
}
/* parse_emph1 -- parsing single emphasis */
/* closed by a symbol not preceded by whitespace and not followed by symbol */
static size_t parse_emph1(
struct Blob *ob,
struct render *rndr,
char *data,
size_t size,
char c
|
| ︙ | ︙ | |||
563 564 565 566 567 568 569 |
return r ? i+1 : 0;
}
}
return 0;
}
| | | 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 |
return r ? i+1 : 0;
}
}
return 0;
}
/* parse_emph2 -- parsing single emphasis */
static size_t parse_emph2(
struct Blob *ob,
struct render *rndr,
char *data,
size_t size,
char c
){
|
| ︙ | ︙ | |||
602 603 604 605 606 607 608 |
}
i++;
}
return 0;
}
| | | 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 |
}
i++;
}
return 0;
}
/* parse_emph3 -- parsing single emphasis */
/* finds the first closing tag, and delegates to the other emph */
static size_t parse_emph3(
struct Blob *ob,
struct render *rndr,
char *data,
size_t size,
char c
|
| ︙ | ︙ | |||
775 776 777 778 779 780 781 |
}
}
return 2;
}
/* char_entity -- '&' escaped when it doesn't belong to an entity */
| | | 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 |
}
}
return 2;
}
/* char_entity -- '&' escaped when it doesn't belong to an entity */
/* valid entities are assumed to be anything matching &#?[A-Za-z0-9]+; */
static size_t char_entity(
struct Blob *ob,
struct render *rndr,
char *data,
size_t offset,
size_t size
){
|
| ︙ | ︙ | |||
1020 1021 1022 1023 1024 1025 1026 |
if( id_end>=size ) goto char_link_cleanup;
if( i+1==id_end ){
/* implicit id - use the contents */
id_data = data+1;
id_size = txt_e-1;
}else{
| | | 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 |
if( id_end>=size ) goto char_link_cleanup;
if( i+1==id_end ){
/* implicit id - use the contents */
id_data = data+1;
id_size = txt_e-1;
}else{
/* explicit id - between brackets */
id_data = data+i+1;
id_size = id_end-(i+1);
}
if( get_link_ref(rndr, link, title, id_data, id_size)<0 ){
goto char_link_cleanup;
}
|
| ︙ | ︙ | |||
1136 1137 1138 1139 1140 1141 1142 |
return (i>=size || data[i]=='\n') ? 2 : 0;
}
return 0;
}
| | | 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 |
return (i>=size || data[i]=='\n') ? 2 : 0;
}
return 0;
}
/* is_table_sep -- returns whether there is a table separator at pos */
static int is_table_sep(char *data, size_t pos){
return data[pos]=='|' && (pos==0 || data[pos-1]!='\\');
}
/* is_tableline -- returns the number of column tables in the given line */
static int is_tableline(char *data, size_t size){
|
| ︙ | ︙ | |||
1185 1186 1187 1188 1189 1190 1191 |
}
}else{
return 0;
}
}
| | | 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 |
}
}else{
return 0;
}
}
/* prefix_code -- returns prefix length for block code */
static size_t prefix_code(char *data, size_t size){
if( size>0 && data[0]=='\t' ) return 1;
if( size>3 && data[0]==' ' && data[1]==' ' && data[2]==' ' && data[3]==' ' ){
return 4;
}
return 0;
}
|
| ︙ | ︙ | |||
1242 1243 1244 1245 1246 1247 1248 | static void parse_block( struct Blob *ob, struct render *rndr, char *data, size_t size); | | | 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 |
static void parse_block(
struct Blob *ob,
struct render *rndr,
char *data,
size_t size);
/* parse_blockquote -- handles parsing of a blockquote fragment */
static size_t parse_blockquote(
struct Blob *ob,
struct render *rndr,
char *data,
size_t size
){
size_t beg, end = 0, pre, work_size = 0;
|
| ︙ | ︙ | |||
1292 1293 1294 1295 1296 1297 1298 |
rndr->make.blockquote(ob, out ? out : &fallback, rndr->make.opaque);
}
release_work_buffer(rndr, out);
return end;
}
| | | 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 |
rndr->make.blockquote(ob, out ? out : &fallback, rndr->make.opaque);
}
release_work_buffer(rndr, out);
return end;
}
/* parse_paragraph -- handles parsing of a regular paragraph */
static size_t parse_paragraph(
struct Blob *ob,
struct render *rndr,
char *data,
size_t size
){
size_t i = 0, end = 0;
|
| ︙ | ︙ | |||
1375 1376 1377 1378 1379 1380 1381 |
release_work_buffer(rndr, span);
}
}
return end;
}
| | | 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 |
release_work_buffer(rndr, span);
}
}
return end;
}
/* parse_blockcode -- handles parsing of a block-level code fragment */
static size_t parse_blockcode(
struct Blob *ob,
struct render *rndr,
char *data,
size_t size
){
size_t beg, end, pre;
|
| ︙ | ︙ | |||
1811 1812 1813 1814 1815 1816 1817 |
int flags /* table flags */
){
size_t i = 0, col = 0;
size_t beg, end, total = 0;
struct Blob *cells = new_work_buffer(rndr);
int align;
| | | 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 |
int flags /* table flags */
){
size_t i = 0, col = 0;
size_t beg, end, total = 0;
struct Blob *cells = new_work_buffer(rndr);
int align;
/* skip leading blanks and separator */
while( i<size && (data[i]==' ' || data[i]=='\t') ){ i++; }
if( i<size && data[i]=='|' ) i++;
/* go over all the cells */
while( i<size && total==0 ){
/* check optional left/center align marker */
align = 0;
|
| ︙ | ︙ | |||
2028 2029 2030 2031 2032 2033 2034 | /* is_ref -- returns whether a line is a reference or not */ static int is_ref( char *data, /* input text */ size_t beg, /* offset of the beginning of the line */ size_t end, /* offset of the end of the text */ size_t *last, /* last character of the link */ | | | 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 |
/* is_ref -- returns whether a line is a reference or not */
static int is_ref(
char *data, /* input text */
size_t beg, /* offset of the beginning of the line */
size_t end, /* offset of the end of the text */
size_t *last, /* last character of the link */
struct Blob *refs /* array of link references */
){
size_t i = 0;
size_t id_offset, id_end;
size_t link_offset, link_end;
size_t title_offset, title_end;
size_t line_end;
struct link_ref lr = {
|
| ︙ | ︙ |