Fossil SCM
Merged all trunk changes in except for the underlined link change to default.css.
Commit
6301f6ce761e79b66798de7e6d65014d4f97cb85603b23463e9a78ebe7a99d03
Parent
11805fcf538ad02…
6 files changed
+3
+1
+27
-2
+6
+2
-2
+2
-2
M
src/db.c
+3
| --- src/db.c | ||
| +++ src/db.c | ||
| @@ -4484,10 +4484,13 @@ | ||
| 4484 | 4484 | ** forks. |
| 4485 | 4485 | ** |
| 4486 | 4486 | ** The syntax is a comma-separated list of VALUE and COMMAND=VALUE entries. |
| 4487 | 4487 | ** A plain VALUE entry is the default that is used if no COMMAND matches. |
| 4488 | 4488 | ** Otherwise, the VALUE of the matching command is used. |
| 4489 | +** | |
| 4490 | +** The "all" value is special in that it applies to the "sync" command in | |
| 4491 | +** addition to "commit", "merge", "open", and "update". | |
| 4489 | 4492 | */ |
| 4490 | 4493 | /* |
| 4491 | 4494 | ** SETTING: autosync-tries width=16 default=1 |
| 4492 | 4495 | ** If autosync is enabled setting this to a value greater |
| 4493 | 4496 | ** than zero will cause autosync to try no more than this |
| 4494 | 4497 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -4484,10 +4484,13 @@ | |
| 4484 | ** forks. |
| 4485 | ** |
| 4486 | ** The syntax is a comma-separated list of VALUE and COMMAND=VALUE entries. |
| 4487 | ** A plain VALUE entry is the default that is used if no COMMAND matches. |
| 4488 | ** Otherwise, the VALUE of the matching command is used. |
| 4489 | */ |
| 4490 | /* |
| 4491 | ** SETTING: autosync-tries width=16 default=1 |
| 4492 | ** If autosync is enabled setting this to a value greater |
| 4493 | ** than zero will cause autosync to try no more than this |
| 4494 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -4484,10 +4484,13 @@ | |
| 4484 | ** forks. |
| 4485 | ** |
| 4486 | ** The syntax is a comma-separated list of VALUE and COMMAND=VALUE entries. |
| 4487 | ** A plain VALUE entry is the default that is used if no COMMAND matches. |
| 4488 | ** Otherwise, the VALUE of the matching command is used. |
| 4489 | ** |
| 4490 | ** The "all" value is special in that it applies to the "sync" command in |
| 4491 | ** addition to "commit", "merge", "open", and "update". |
| 4492 | */ |
| 4493 | /* |
| 4494 | ** SETTING: autosync-tries width=16 default=1 |
| 4495 | ** If autosync is enabled setting this to a value greater |
| 4496 | ** than zero will cause autosync to try no more than this |
| 4497 |
+1
| --- src/http_transport.c | ||
| +++ src/http_transport.c | ||
| @@ -135,10 +135,11 @@ | ||
| 135 | 135 | } |
| 136 | 136 | if( !is_safe_fossil_command(pUrlData->fossil) ){ |
| 137 | 137 | fossil_fatal("the ssh:// URL is asking to run an unsafe command [%s] on " |
| 138 | 138 | "the server.", pUrlData->fossil); |
| 139 | 139 | } |
| 140 | + blob_append_escaped_arg(&zCmd, "PATH=$HOME/bin:$PATH", 1); | |
| 140 | 141 | blob_append_escaped_arg(&zCmd, pUrlData->fossil, 1); |
| 141 | 142 | blob_append(&zCmd, " test-http", 10); |
| 142 | 143 | if( pUrlData->path && pUrlData->path[0] ){ |
| 143 | 144 | blob_append_escaped_arg(&zCmd, pUrlData->path, 1); |
| 144 | 145 | }else{ |
| 145 | 146 |
| --- src/http_transport.c | |
| +++ src/http_transport.c | |
| @@ -135,10 +135,11 @@ | |
| 135 | } |
| 136 | if( !is_safe_fossil_command(pUrlData->fossil) ){ |
| 137 | fossil_fatal("the ssh:// URL is asking to run an unsafe command [%s] on " |
| 138 | "the server.", pUrlData->fossil); |
| 139 | } |
| 140 | blob_append_escaped_arg(&zCmd, pUrlData->fossil, 1); |
| 141 | blob_append(&zCmd, " test-http", 10); |
| 142 | if( pUrlData->path && pUrlData->path[0] ){ |
| 143 | blob_append_escaped_arg(&zCmd, pUrlData->path, 1); |
| 144 | }else{ |
| 145 |
| --- src/http_transport.c | |
| +++ src/http_transport.c | |
| @@ -135,10 +135,11 @@ | |
| 135 | } |
| 136 | if( !is_safe_fossil_command(pUrlData->fossil) ){ |
| 137 | fossil_fatal("the ssh:// URL is asking to run an unsafe command [%s] on " |
| 138 | "the server.", pUrlData->fossil); |
| 139 | } |
| 140 | blob_append_escaped_arg(&zCmd, "PATH=$HOME/bin:$PATH", 1); |
| 141 | blob_append_escaped_arg(&zCmd, pUrlData->fossil, 1); |
| 142 | blob_append(&zCmd, " test-http", 10); |
| 143 | if( pUrlData->path && pUrlData->path[0] ){ |
| 144 | blob_append_escaped_arg(&zCmd, pUrlData->path, 1); |
| 145 | }else{ |
| 146 |
+27
-2
| --- src/markdown.c | ||
| +++ src/markdown.c | ||
| @@ -1617,23 +1617,48 @@ | ||
| 1617 | 1617 | struct Blob *ob, |
| 1618 | 1618 | struct render *rndr, |
| 1619 | 1619 | char *data, |
| 1620 | 1620 | size_t size |
| 1621 | 1621 | ){ |
| 1622 | - size_t beg, end = 0, pre, work_size = 0; | |
| 1622 | + size_t beg, end = 0, pre, work_size = 0, nb, endFence = 0; | |
| 1623 | 1623 | char *work_data = 0; |
| 1624 | 1624 | struct Blob *out = new_work_buffer(rndr); |
| 1625 | + | |
| 1626 | + /* Check to see if this is a quote of a fenced code block, because | |
| 1627 | + ** if it is, then blank lines do not terminated the quoted text. Ex: | |
| 1628 | + ** | |
| 1629 | + ** > ~~~~ | |
| 1630 | + ** First line | |
| 1631 | + ** | |
| 1632 | + ** Line after blank | |
| 1633 | + ** ~~~~ | |
| 1634 | + ** | |
| 1635 | + ** If this is a quoted fenced block, then set endFence to be the | |
| 1636 | + ** offset of the end of the fenced block. | |
| 1637 | + */ | |
| 1638 | + pre = prefix_quote(data,size); | |
| 1639 | + pre += is_empty(data+pre,size-pre); | |
| 1640 | + nb = prefix_fencedcode(data+pre,size-pre); | |
| 1641 | + if( nb ){ | |
| 1642 | + size_t i = 0; | |
| 1643 | + char delim = data[pre]; | |
| 1644 | + for(end=pre+nb; end<size && i<nb; end++){ | |
| 1645 | + if( data[end]==delim ) i++; else i = 0; | |
| 1646 | + } | |
| 1647 | + if( i>=nb ) endFence = end; | |
| 1648 | + } | |
| 1625 | 1649 | |
| 1626 | 1650 | beg = 0; |
| 1627 | 1651 | while( beg<size ){ |
| 1628 | 1652 | for(end=beg+1; end<size && data[end-1]!='\n'; end++); |
| 1629 | 1653 | pre = prefix_quote(data+beg, end-beg); |
| 1630 | 1654 | if( pre ){ |
| 1631 | 1655 | beg += pre; /* skipping prefix */ |
| 1632 | 1656 | }else if( is_empty(data+beg, end-beg) |
| 1633 | 1657 | && (end>=size |
| 1634 | - || (prefix_quote(data+end, size-end)==0 | |
| 1658 | + || (end>endFence | |
| 1659 | + && prefix_quote(data+end, size-end)==0 | |
| 1635 | 1660 | && !is_empty(data+end, size-end))) |
| 1636 | 1661 | ){ |
| 1637 | 1662 | /* empty line followed by non-quote line */ |
| 1638 | 1663 | break; |
| 1639 | 1664 | } |
| 1640 | 1665 |
| --- src/markdown.c | |
| +++ src/markdown.c | |
| @@ -1617,23 +1617,48 @@ | |
| 1617 | struct Blob *ob, |
| 1618 | struct render *rndr, |
| 1619 | char *data, |
| 1620 | size_t size |
| 1621 | ){ |
| 1622 | size_t beg, end = 0, pre, work_size = 0; |
| 1623 | char *work_data = 0; |
| 1624 | struct Blob *out = new_work_buffer(rndr); |
| 1625 | |
| 1626 | beg = 0; |
| 1627 | while( beg<size ){ |
| 1628 | for(end=beg+1; end<size && data[end-1]!='\n'; end++); |
| 1629 | pre = prefix_quote(data+beg, end-beg); |
| 1630 | if( pre ){ |
| 1631 | beg += pre; /* skipping prefix */ |
| 1632 | }else if( is_empty(data+beg, end-beg) |
| 1633 | && (end>=size |
| 1634 | || (prefix_quote(data+end, size-end)==0 |
| 1635 | && !is_empty(data+end, size-end))) |
| 1636 | ){ |
| 1637 | /* empty line followed by non-quote line */ |
| 1638 | break; |
| 1639 | } |
| 1640 |
| --- src/markdown.c | |
| +++ src/markdown.c | |
| @@ -1617,23 +1617,48 @@ | |
| 1617 | struct Blob *ob, |
| 1618 | struct render *rndr, |
| 1619 | char *data, |
| 1620 | size_t size |
| 1621 | ){ |
| 1622 | size_t beg, end = 0, pre, work_size = 0, nb, endFence = 0; |
| 1623 | char *work_data = 0; |
| 1624 | struct Blob *out = new_work_buffer(rndr); |
| 1625 | |
| 1626 | /* Check to see if this is a quote of a fenced code block, because |
| 1627 | ** if it is, then blank lines do not terminated the quoted text. Ex: |
| 1628 | ** |
| 1629 | ** > ~~~~ |
| 1630 | ** First line |
| 1631 | ** |
| 1632 | ** Line after blank |
| 1633 | ** ~~~~ |
| 1634 | ** |
| 1635 | ** If this is a quoted fenced block, then set endFence to be the |
| 1636 | ** offset of the end of the fenced block. |
| 1637 | */ |
| 1638 | pre = prefix_quote(data,size); |
| 1639 | pre += is_empty(data+pre,size-pre); |
| 1640 | nb = prefix_fencedcode(data+pre,size-pre); |
| 1641 | if( nb ){ |
| 1642 | size_t i = 0; |
| 1643 | char delim = data[pre]; |
| 1644 | for(end=pre+nb; end<size && i<nb; end++){ |
| 1645 | if( data[end]==delim ) i++; else i = 0; |
| 1646 | } |
| 1647 | if( i>=nb ) endFence = end; |
| 1648 | } |
| 1649 | |
| 1650 | beg = 0; |
| 1651 | while( beg<size ){ |
| 1652 | for(end=beg+1; end<size && data[end-1]!='\n'; end++); |
| 1653 | pre = prefix_quote(data+beg, end-beg); |
| 1654 | if( pre ){ |
| 1655 | beg += pre; /* skipping prefix */ |
| 1656 | }else if( is_empty(data+beg, end-beg) |
| 1657 | && (end>=size |
| 1658 | || (end>endFence |
| 1659 | && prefix_quote(data+end, size-end)==0 |
| 1660 | && !is_empty(data+end, size-end))) |
| 1661 | ){ |
| 1662 | /* empty line followed by non-quote line */ |
| 1663 | break; |
| 1664 | } |
| 1665 |
+6
| --- src/sync.c | ||
| +++ src/sync.c | ||
| @@ -303,10 +303,16 @@ | ||
| 303 | 303 | usage("URL"); |
| 304 | 304 | } |
| 305 | 305 | user_select(); |
| 306 | 306 | url_enable_proxy("via proxy: "); |
| 307 | 307 | *pConfigFlags |= configSync; |
| 308 | + if( (*pSyncFlags & SYNC_ALLURL)==0 && zUrl==0 ){ | |
| 309 | + const char *zAutosync = db_get_for_subsystem("autosync", "sync"); | |
| 310 | + if( sqlite3_strglob("*all*", zAutosync)==0 ){ | |
| 311 | + *pSyncFlags |= SYNC_ALLURL; | |
| 312 | + } | |
| 313 | + } | |
| 308 | 314 | } |
| 309 | 315 | |
| 310 | 316 | |
| 311 | 317 | /* |
| 312 | 318 | ** COMMAND: pull |
| 313 | 319 |
| --- src/sync.c | |
| +++ src/sync.c | |
| @@ -303,10 +303,16 @@ | |
| 303 | usage("URL"); |
| 304 | } |
| 305 | user_select(); |
| 306 | url_enable_proxy("via proxy: "); |
| 307 | *pConfigFlags |= configSync; |
| 308 | } |
| 309 | |
| 310 | |
| 311 | /* |
| 312 | ** COMMAND: pull |
| 313 |
| --- src/sync.c | |
| +++ src/sync.c | |
| @@ -303,10 +303,16 @@ | |
| 303 | usage("URL"); |
| 304 | } |
| 305 | user_select(); |
| 306 | url_enable_proxy("via proxy: "); |
| 307 | *pConfigFlags |= configSync; |
| 308 | if( (*pSyncFlags & SYNC_ALLURL)==0 && zUrl==0 ){ |
| 309 | const char *zAutosync = db_get_for_subsystem("autosync", "sync"); |
| 310 | if( sqlite3_strglob("*all*", zAutosync)==0 ){ |
| 311 | *pSyncFlags |= SYNC_ALLURL; |
| 312 | } |
| 313 | } |
| 314 | } |
| 315 | |
| 316 | |
| 317 | /* |
| 318 | ** COMMAND: pull |
| 319 |
+2
-2
| --- www/tech_overview.wiki | ||
| +++ www/tech_overview.wiki | ||
| @@ -53,11 +53,11 @@ | ||
| 53 | 53 | checkout for a project and contains state information that is unique |
| 54 | 54 | to that working checkout. |
| 55 | 55 | |
| 56 | 56 | Fossil does not always use all three database files. The web interface, |
| 57 | 57 | for example, typically only uses the repository database. And the |
| 58 | -[/help/all | fossil settings] command only opens the configuration database | |
| 58 | +[/help/settings | fossil settings] command only opens the configuration database | |
| 59 | 59 | when the --global option is used. But other commands use all three |
| 60 | 60 | databases at once. For example, the [/help/status | fossil status] |
| 61 | 61 | command will first locate the checkout database, then use the checkout |
| 62 | 62 | database to find the repository database, then open the configuration |
| 63 | 63 | database. Whenever multiple databases are used at the same time, |
| @@ -159,11 +159,11 @@ | ||
| 159 | 159 | * %LOCALAPPDATA%/_fossil |
| 160 | 160 | * %APPDATA%/_fossil |
| 161 | 161 | * %USERPROFILES%/_fossil |
| 162 | 162 | * %HOMEDRIVE%%HOMEPATH%/_fossil |
| 163 | 163 | |
| 164 | -The second case is the one that usually determines the name Note that the | |
| 164 | +The second case is the one that usually determines the name. Note that the | |
| 165 | 165 | FOSSIL_HOME environment variable can always be set to determine the |
| 166 | 166 | location of the configuration database. Note also that the configuration |
| 167 | 167 | database file itself is called ".fossil" or "fossil.db" on unix but |
| 168 | 168 | "_fossil" on windows. |
| 169 | 169 | |
| 170 | 170 |
| --- www/tech_overview.wiki | |
| +++ www/tech_overview.wiki | |
| @@ -53,11 +53,11 @@ | |
| 53 | checkout for a project and contains state information that is unique |
| 54 | to that working checkout. |
| 55 | |
| 56 | Fossil does not always use all three database files. The web interface, |
| 57 | for example, typically only uses the repository database. And the |
| 58 | [/help/all | fossil settings] command only opens the configuration database |
| 59 | when the --global option is used. But other commands use all three |
| 60 | databases at once. For example, the [/help/status | fossil status] |
| 61 | command will first locate the checkout database, then use the checkout |
| 62 | database to find the repository database, then open the configuration |
| 63 | database. Whenever multiple databases are used at the same time, |
| @@ -159,11 +159,11 @@ | |
| 159 | * %LOCALAPPDATA%/_fossil |
| 160 | * %APPDATA%/_fossil |
| 161 | * %USERPROFILES%/_fossil |
| 162 | * %HOMEDRIVE%%HOMEPATH%/_fossil |
| 163 | |
| 164 | The second case is the one that usually determines the name Note that the |
| 165 | FOSSIL_HOME environment variable can always be set to determine the |
| 166 | location of the configuration database. Note also that the configuration |
| 167 | database file itself is called ".fossil" or "fossil.db" on unix but |
| 168 | "_fossil" on windows. |
| 169 | |
| 170 |
| --- www/tech_overview.wiki | |
| +++ www/tech_overview.wiki | |
| @@ -53,11 +53,11 @@ | |
| 53 | checkout for a project and contains state information that is unique |
| 54 | to that working checkout. |
| 55 | |
| 56 | Fossil does not always use all three database files. The web interface, |
| 57 | for example, typically only uses the repository database. And the |
| 58 | [/help/settings | fossil settings] command only opens the configuration database |
| 59 | when the --global option is used. But other commands use all three |
| 60 | databases at once. For example, the [/help/status | fossil status] |
| 61 | command will first locate the checkout database, then use the checkout |
| 62 | database to find the repository database, then open the configuration |
| 63 | database. Whenever multiple databases are used at the same time, |
| @@ -159,11 +159,11 @@ | |
| 159 | * %LOCALAPPDATA%/_fossil |
| 160 | * %APPDATA%/_fossil |
| 161 | * %USERPROFILES%/_fossil |
| 162 | * %HOMEDRIVE%%HOMEPATH%/_fossil |
| 163 | |
| 164 | The second case is the one that usually determines the name. Note that the |
| 165 | FOSSIL_HOME environment variable can always be set to determine the |
| 166 | location of the configuration database. Note also that the configuration |
| 167 | database file itself is called ".fossil" or "fossil.db" on unix but |
| 168 | "_fossil" on windows. |
| 169 | |
| 170 |
+2
-2
| --- www/tech_overview.wiki | ||
| +++ www/tech_overview.wiki | ||
| @@ -53,11 +53,11 @@ | ||
| 53 | 53 | checkout for a project and contains state information that is unique |
| 54 | 54 | to that working checkout. |
| 55 | 55 | |
| 56 | 56 | Fossil does not always use all three database files. The web interface, |
| 57 | 57 | for example, typically only uses the repository database. And the |
| 58 | -[/help/all | fossil settings] command only opens the configuration database | |
| 58 | +[/help/settings | fossil settings] command only opens the configuration database | |
| 59 | 59 | when the --global option is used. But other commands use all three |
| 60 | 60 | databases at once. For example, the [/help/status | fossil status] |
| 61 | 61 | command will first locate the checkout database, then use the checkout |
| 62 | 62 | database to find the repository database, then open the configuration |
| 63 | 63 | database. Whenever multiple databases are used at the same time, |
| @@ -159,11 +159,11 @@ | ||
| 159 | 159 | * %LOCALAPPDATA%/_fossil |
| 160 | 160 | * %APPDATA%/_fossil |
| 161 | 161 | * %USERPROFILES%/_fossil |
| 162 | 162 | * %HOMEDRIVE%%HOMEPATH%/_fossil |
| 163 | 163 | |
| 164 | -The second case is the one that usually determines the name Note that the | |
| 164 | +The second case is the one that usually determines the name. Note that the | |
| 165 | 165 | FOSSIL_HOME environment variable can always be set to determine the |
| 166 | 166 | location of the configuration database. Note also that the configuration |
| 167 | 167 | database file itself is called ".fossil" or "fossil.db" on unix but |
| 168 | 168 | "_fossil" on windows. |
| 169 | 169 | |
| 170 | 170 |
| --- www/tech_overview.wiki | |
| +++ www/tech_overview.wiki | |
| @@ -53,11 +53,11 @@ | |
| 53 | checkout for a project and contains state information that is unique |
| 54 | to that working checkout. |
| 55 | |
| 56 | Fossil does not always use all three database files. The web interface, |
| 57 | for example, typically only uses the repository database. And the |
| 58 | [/help/all | fossil settings] command only opens the configuration database |
| 59 | when the --global option is used. But other commands use all three |
| 60 | databases at once. For example, the [/help/status | fossil status] |
| 61 | command will first locate the checkout database, then use the checkout |
| 62 | database to find the repository database, then open the configuration |
| 63 | database. Whenever multiple databases are used at the same time, |
| @@ -159,11 +159,11 @@ | |
| 159 | * %LOCALAPPDATA%/_fossil |
| 160 | * %APPDATA%/_fossil |
| 161 | * %USERPROFILES%/_fossil |
| 162 | * %HOMEDRIVE%%HOMEPATH%/_fossil |
| 163 | |
| 164 | The second case is the one that usually determines the name Note that the |
| 165 | FOSSIL_HOME environment variable can always be set to determine the |
| 166 | location of the configuration database. Note also that the configuration |
| 167 | database file itself is called ".fossil" or "fossil.db" on unix but |
| 168 | "_fossil" on windows. |
| 169 | |
| 170 |
| --- www/tech_overview.wiki | |
| +++ www/tech_overview.wiki | |
| @@ -53,11 +53,11 @@ | |
| 53 | checkout for a project and contains state information that is unique |
| 54 | to that working checkout. |
| 55 | |
| 56 | Fossil does not always use all three database files. The web interface, |
| 57 | for example, typically only uses the repository database. And the |
| 58 | [/help/settings | fossil settings] command only opens the configuration database |
| 59 | when the --global option is used. But other commands use all three |
| 60 | databases at once. For example, the [/help/status | fossil status] |
| 61 | command will first locate the checkout database, then use the checkout |
| 62 | database to find the repository database, then open the configuration |
| 63 | database. Whenever multiple databases are used at the same time, |
| @@ -159,11 +159,11 @@ | |
| 159 | * %LOCALAPPDATA%/_fossil |
| 160 | * %APPDATA%/_fossil |
| 161 | * %USERPROFILES%/_fossil |
| 162 | * %HOMEDRIVE%%HOMEPATH%/_fossil |
| 163 | |
| 164 | The second case is the one that usually determines the name. Note that the |
| 165 | FOSSIL_HOME environment variable can always be set to determine the |
| 166 | location of the configuration database. Note also that the configuration |
| 167 | database file itself is called ".fossil" or "fossil.db" on unix but |
| 168 | "_fossil" on windows. |
| 169 | |
| 170 |