Fossil SCM
Move all square brackets outside the hyperlink text to make it easier to copy-and-paste links sans brackets from typical browsers.
Commit
a2020a7ac8b6db24b3852f65e9812cf7bd715157
Parent
80e7250a4eb05c6…
9 files changed
+1
-1
+3
-3
+2
-2
+6
-8
+15
-16
+3
-3
+8
-9
+1
-1
+13
-14
+1
-1
| --- src/branch.c | ||
| +++ src/branch.c | ||
| @@ -506,11 +506,11 @@ | ||
| 506 | 506 | " AND tag.tagname GLOB 'sym-*'", |
| 507 | 507 | rid |
| 508 | 508 | ); |
| 509 | 509 | while( db_step(&q)==SQLITE_ROW ){ |
| 510 | 510 | const char *zTagName = db_column_text(&q, 0); |
| 511 | - @ %z(href("%R/timeline?r=%T&n=200",zTagName))[timeline]</a> | |
| 511 | + @ [%z(href("%R/timeline?r=%T&n=200",zTagName))timeline</a>] | |
| 512 | 512 | } |
| 513 | 513 | db_finalize(&q); |
| 514 | 514 | } |
| 515 | 515 | |
| 516 | 516 | /* |
| 517 | 517 |
| --- src/branch.c | |
| +++ src/branch.c | |
| @@ -506,11 +506,11 @@ | |
| 506 | " AND tag.tagname GLOB 'sym-*'", |
| 507 | rid |
| 508 | ); |
| 509 | while( db_step(&q)==SQLITE_ROW ){ |
| 510 | const char *zTagName = db_column_text(&q, 0); |
| 511 | @ %z(href("%R/timeline?r=%T&n=200",zTagName))[timeline]</a> |
| 512 | } |
| 513 | db_finalize(&q); |
| 514 | } |
| 515 | |
| 516 | /* |
| 517 |
| --- src/branch.c | |
| +++ src/branch.c | |
| @@ -506,11 +506,11 @@ | |
| 506 | " AND tag.tagname GLOB 'sym-*'", |
| 507 | rid |
| 508 | ); |
| 509 | while( db_step(&q)==SQLITE_ROW ){ |
| 510 | const char *zTagName = db_column_text(&q, 0); |
| 511 | @ [%z(href("%R/timeline?r=%T&n=200",zTagName))timeline</a>] |
| 512 | } |
| 513 | db_finalize(&q); |
| 514 | } |
| 515 | |
| 516 | /* |
| 517 |
+3
-3
| --- src/browse.c | ||
| +++ src/browse.c | ||
| @@ -1040,18 +1040,18 @@ | ||
| 1040 | 1040 | zGlob = P("glob"); |
| 1041 | 1041 | compute_fileage(rid,zGlob); |
| 1042 | 1042 | db_multi_exec("CREATE INDEX fileage_ix1 ON fileage(mid,pathname);"); |
| 1043 | 1043 | |
| 1044 | 1044 | @ <h2>Files in |
| 1045 | - @ %z(href("%R/info/%!S",zUuid))[%S(zUuid)]</a> | |
| 1045 | + @ [%z(href("%R/info/%!S",zUuid))%S(zUuid)</a>] | |
| 1046 | 1046 | if( zGlob && zGlob[0] ){ |
| 1047 | 1047 | @ that match "%h(zGlob)" and |
| 1048 | 1048 | } |
| 1049 | 1049 | @ ordered by check-in time</h2> |
| 1050 | 1050 | @ |
| 1051 | 1051 | @ <p>Times are relative to the check-in time for |
| 1052 | - @ %z(href("%R/ci/%!S",zUuid))[%S(zUuid)]</a> which is | |
| 1052 | + @ [%z(href("%R/ci/%!S",zUuid))%S(zUuid)</a>] which is | |
| 1053 | 1053 | @ %z(href("%R/timeline?c=%t",zNow))%s(zNow)</a>.</p> |
| 1054 | 1054 | @ |
| 1055 | 1055 | @ <div class='fileage'><table> |
| 1056 | 1056 | @ <tr><th>Time</th><th>Files</th><th>Check-in</th></tr> |
| 1057 | 1057 | db_prepare(&q1, |
| @@ -1095,11 +1095,11 @@ | ||
| 1095 | 1095 | } |
| 1096 | 1096 | } |
| 1097 | 1097 | db_reset(&q2); |
| 1098 | 1098 | @ </td> |
| 1099 | 1099 | @ <td> |
| 1100 | - @ %z(href("%R/info/%!S",zUuid))[%S(zUuid)]</a> | |
| 1100 | + @ [%z(href("%R/info/%!S",zUuid))%S(zUuid)</a>] | |
| 1101 | 1101 | if( showId ){ |
| 1102 | 1102 | @ (%d(mid)) |
| 1103 | 1103 | } |
| 1104 | 1104 | @ %W(zComment) (user: |
| 1105 | 1105 | @ %z(href("%R/timeline?u=%t&c=%!S&nd&n=200",zUser,zUuid))%h(zUser)</a>, |
| 1106 | 1106 |
| --- src/browse.c | |
| +++ src/browse.c | |
| @@ -1040,18 +1040,18 @@ | |
| 1040 | zGlob = P("glob"); |
| 1041 | compute_fileage(rid,zGlob); |
| 1042 | db_multi_exec("CREATE INDEX fileage_ix1 ON fileage(mid,pathname);"); |
| 1043 | |
| 1044 | @ <h2>Files in |
| 1045 | @ %z(href("%R/info/%!S",zUuid))[%S(zUuid)]</a> |
| 1046 | if( zGlob && zGlob[0] ){ |
| 1047 | @ that match "%h(zGlob)" and |
| 1048 | } |
| 1049 | @ ordered by check-in time</h2> |
| 1050 | @ |
| 1051 | @ <p>Times are relative to the check-in time for |
| 1052 | @ %z(href("%R/ci/%!S",zUuid))[%S(zUuid)]</a> which is |
| 1053 | @ %z(href("%R/timeline?c=%t",zNow))%s(zNow)</a>.</p> |
| 1054 | @ |
| 1055 | @ <div class='fileage'><table> |
| 1056 | @ <tr><th>Time</th><th>Files</th><th>Check-in</th></tr> |
| 1057 | db_prepare(&q1, |
| @@ -1095,11 +1095,11 @@ | |
| 1095 | } |
| 1096 | } |
| 1097 | db_reset(&q2); |
| 1098 | @ </td> |
| 1099 | @ <td> |
| 1100 | @ %z(href("%R/info/%!S",zUuid))[%S(zUuid)]</a> |
| 1101 | if( showId ){ |
| 1102 | @ (%d(mid)) |
| 1103 | } |
| 1104 | @ %W(zComment) (user: |
| 1105 | @ %z(href("%R/timeline?u=%t&c=%!S&nd&n=200",zUser,zUuid))%h(zUser)</a>, |
| 1106 |
| --- src/browse.c | |
| +++ src/browse.c | |
| @@ -1040,18 +1040,18 @@ | |
| 1040 | zGlob = P("glob"); |
| 1041 | compute_fileage(rid,zGlob); |
| 1042 | db_multi_exec("CREATE INDEX fileage_ix1 ON fileage(mid,pathname);"); |
| 1043 | |
| 1044 | @ <h2>Files in |
| 1045 | @ [%z(href("%R/info/%!S",zUuid))%S(zUuid)</a>] |
| 1046 | if( zGlob && zGlob[0] ){ |
| 1047 | @ that match "%h(zGlob)" and |
| 1048 | } |
| 1049 | @ ordered by check-in time</h2> |
| 1050 | @ |
| 1051 | @ <p>Times are relative to the check-in time for |
| 1052 | @ [%z(href("%R/ci/%!S",zUuid))%S(zUuid)</a>] which is |
| 1053 | @ %z(href("%R/timeline?c=%t",zNow))%s(zNow)</a>.</p> |
| 1054 | @ |
| 1055 | @ <div class='fileage'><table> |
| 1056 | @ <tr><th>Time</th><th>Files</th><th>Check-in</th></tr> |
| 1057 | db_prepare(&q1, |
| @@ -1095,11 +1095,11 @@ | |
| 1095 | } |
| 1096 | } |
| 1097 | db_reset(&q2); |
| 1098 | @ </td> |
| 1099 | @ <td> |
| 1100 | @ [%z(href("%R/info/%!S",zUuid))%S(zUuid)</a>] |
| 1101 | if( showId ){ |
| 1102 | @ (%d(mid)) |
| 1103 | } |
| 1104 | @ %W(zComment) (user: |
| 1105 | @ %z(href("%R/timeline?u=%t&c=%!S&nd&n=200",zUser,zUuid))%h(zUser)</a>, |
| 1106 |
+2
-2
| --- src/diff.c | ||
| +++ src/diff.c | ||
| @@ -2336,16 +2336,16 @@ | ||
| 2336 | 2336 | #if 0 |
| 2337 | 2337 | if( i>0 ){ |
| 2338 | 2338 | char *zLink = xhref("target='infowindow'", |
| 2339 | 2339 | "%R/fdiff?v1=%S&v2=%S&sbs=1", |
| 2340 | 2340 | p->zFUuid,ann.aVers[0].zFUuid); |
| 2341 | - @ %z(zLink)[diff-to-top]</a> | |
| 2341 | + @ [%z(zLink)diff-to-top</a>] | |
| 2342 | 2342 | if( i>1 ){ |
| 2343 | 2343 | zLink = xhref("target='infowindow'", |
| 2344 | 2344 | "%R/fdiff?v1=%S&v2=%S&sbs=1", |
| 2345 | 2345 | p->zFUuid,p[-1].zFUuid); |
| 2346 | - @ %z(zLink)[diff-to-previous]</a> | |
| 2346 | + @ [%z(zLink)diff-to-previous</a>] | |
| 2347 | 2347 | } |
| 2348 | 2348 | } |
| 2349 | 2349 | #endif |
| 2350 | 2350 | } |
| 2351 | 2351 | @ </ol> |
| 2352 | 2352 |
| --- src/diff.c | |
| +++ src/diff.c | |
| @@ -2336,16 +2336,16 @@ | |
| 2336 | #if 0 |
| 2337 | if( i>0 ){ |
| 2338 | char *zLink = xhref("target='infowindow'", |
| 2339 | "%R/fdiff?v1=%S&v2=%S&sbs=1", |
| 2340 | p->zFUuid,ann.aVers[0].zFUuid); |
| 2341 | @ %z(zLink)[diff-to-top]</a> |
| 2342 | if( i>1 ){ |
| 2343 | zLink = xhref("target='infowindow'", |
| 2344 | "%R/fdiff?v1=%S&v2=%S&sbs=1", |
| 2345 | p->zFUuid,p[-1].zFUuid); |
| 2346 | @ %z(zLink)[diff-to-previous]</a> |
| 2347 | } |
| 2348 | } |
| 2349 | #endif |
| 2350 | } |
| 2351 | @ </ol> |
| 2352 |
| --- src/diff.c | |
| +++ src/diff.c | |
| @@ -2336,16 +2336,16 @@ | |
| 2336 | #if 0 |
| 2337 | if( i>0 ){ |
| 2338 | char *zLink = xhref("target='infowindow'", |
| 2339 | "%R/fdiff?v1=%S&v2=%S&sbs=1", |
| 2340 | p->zFUuid,ann.aVers[0].zFUuid); |
| 2341 | @ [%z(zLink)diff-to-top</a>] |
| 2342 | if( i>1 ){ |
| 2343 | zLink = xhref("target='infowindow'", |
| 2344 | "%R/fdiff?v1=%S&v2=%S&sbs=1", |
| 2345 | p->zFUuid,p[-1].zFUuid); |
| 2346 | @ [%z(zLink)diff-to-previous</a>] |
| 2347 | } |
| 2348 | } |
| 2349 | #endif |
| 2350 | } |
| 2351 | @ </ol> |
| 2352 |
+6
-8
| --- src/finfo.c | ||
| +++ src/finfo.c | ||
| @@ -472,11 +472,11 @@ | ||
| 472 | 472 | char *zPrevName = db_text(0, "SELECT name FROM filename WHERE fnid=%d", |
| 473 | 473 | pfnid); |
| 474 | 474 | @ <b>Renamed</b> from |
| 475 | 475 | @ %z(href("%R/finfo?name=%t", zPrevName))%h(zPrevName)</a> |
| 476 | 476 | } |
| 477 | - @ %z(href("%R/artifact/%!S",zUuid))[%S(zUuid)]</a> | |
| 477 | + @ [%z(href("%R/artifact/%!S",zUuid))%S(zUuid)</a>] | |
| 478 | 478 | if( fShowId ){ |
| 479 | 479 | @ (%d(frid)) |
| 480 | 480 | } |
| 481 | 481 | @ part of check-in |
| 482 | 482 | }else{ |
| @@ -502,17 +502,15 @@ | ||
| 502 | 502 | @ %W(zCom) (user: |
| 503 | 503 | hyperlink_to_user(zUser, zDate, ""); |
| 504 | 504 | @ branch: %z(href("%R/timeline?t=%T&n=200",zBr))%h(zBr)</a>) |
| 505 | 505 | if( g.perm.Hyperlink && zUuid ){ |
| 506 | 506 | const char *z = zFilename; |
| 507 | - @ %z(href("%R/annotate?filename=%h&checkin=%s",z,zCkin)) | |
| 508 | - @ [annotate]</a> | |
| 509 | - @ %z(href("%R/blame?filename=%h&checkin=%s",z,zCkin)) | |
| 510 | - @ [blame]</a> | |
| 511 | - @ %z(href("%R/timeline?n=200&uf=%!S",zUuid))[check-ins using]</a> | |
| 507 | + @ [%z(href("%R/annotate?filename=%h&checkin=%s",z,zCkin))annotate</a>] | |
| 508 | + @ [%z(href("%R/blame?filename=%h&checkin=%s",z,zCkin))blame</a>] | |
| 509 | + @ [%z(href("%R/timeline?n=200&uf=%!S",zUuid))check-ins using</a>] | |
| 512 | 510 | if( fpid>0 ){ |
| 513 | - @ %z(href("%R/fdiff?sbs=1&v1=%!S&v2=%!S",zPUuid,zUuid))[diff]</a> | |
| 511 | + @ [%z(href("%R/fdiff?sbs=1&v1=%!S&v2=%!S",zPUuid,zUuid))diff</a>] | |
| 514 | 512 | } |
| 515 | 513 | } |
| 516 | 514 | if( fDebug & FINFO_DEBUG_MLINK ){ |
| 517 | 515 | int ii; |
| 518 | 516 | char *zAncLink; |
| @@ -522,11 +520,11 @@ | ||
| 522 | 520 | for(ii=1; ii<nParent; ii++){ |
| 523 | 521 | @ %d(aParent[ii]) |
| 524 | 522 | } |
| 525 | 523 | } |
| 526 | 524 | zAncLink = href("%R/finfo?name=%T&ci=%!S&debug=1",zFilename,zCkin); |
| 527 | - @ %z(zAncLink)[ancestry]</a> | |
| 525 | + @ [%z(zAncLink)ancestry</a>] | |
| 528 | 526 | } |
| 529 | 527 | tag_private_status(frid); |
| 530 | 528 | @ </td></tr> |
| 531 | 529 | } |
| 532 | 530 | db_finalize(&q); |
| 533 | 531 |
| --- src/finfo.c | |
| +++ src/finfo.c | |
| @@ -472,11 +472,11 @@ | |
| 472 | char *zPrevName = db_text(0, "SELECT name FROM filename WHERE fnid=%d", |
| 473 | pfnid); |
| 474 | @ <b>Renamed</b> from |
| 475 | @ %z(href("%R/finfo?name=%t", zPrevName))%h(zPrevName)</a> |
| 476 | } |
| 477 | @ %z(href("%R/artifact/%!S",zUuid))[%S(zUuid)]</a> |
| 478 | if( fShowId ){ |
| 479 | @ (%d(frid)) |
| 480 | } |
| 481 | @ part of check-in |
| 482 | }else{ |
| @@ -502,17 +502,15 @@ | |
| 502 | @ %W(zCom) (user: |
| 503 | hyperlink_to_user(zUser, zDate, ""); |
| 504 | @ branch: %z(href("%R/timeline?t=%T&n=200",zBr))%h(zBr)</a>) |
| 505 | if( g.perm.Hyperlink && zUuid ){ |
| 506 | const char *z = zFilename; |
| 507 | @ %z(href("%R/annotate?filename=%h&checkin=%s",z,zCkin)) |
| 508 | @ [annotate]</a> |
| 509 | @ %z(href("%R/blame?filename=%h&checkin=%s",z,zCkin)) |
| 510 | @ [blame]</a> |
| 511 | @ %z(href("%R/timeline?n=200&uf=%!S",zUuid))[check-ins using]</a> |
| 512 | if( fpid>0 ){ |
| 513 | @ %z(href("%R/fdiff?sbs=1&v1=%!S&v2=%!S",zPUuid,zUuid))[diff]</a> |
| 514 | } |
| 515 | } |
| 516 | if( fDebug & FINFO_DEBUG_MLINK ){ |
| 517 | int ii; |
| 518 | char *zAncLink; |
| @@ -522,11 +520,11 @@ | |
| 522 | for(ii=1; ii<nParent; ii++){ |
| 523 | @ %d(aParent[ii]) |
| 524 | } |
| 525 | } |
| 526 | zAncLink = href("%R/finfo?name=%T&ci=%!S&debug=1",zFilename,zCkin); |
| 527 | @ %z(zAncLink)[ancestry]</a> |
| 528 | } |
| 529 | tag_private_status(frid); |
| 530 | @ </td></tr> |
| 531 | } |
| 532 | db_finalize(&q); |
| 533 |
| --- src/finfo.c | |
| +++ src/finfo.c | |
| @@ -472,11 +472,11 @@ | |
| 472 | char *zPrevName = db_text(0, "SELECT name FROM filename WHERE fnid=%d", |
| 473 | pfnid); |
| 474 | @ <b>Renamed</b> from |
| 475 | @ %z(href("%R/finfo?name=%t", zPrevName))%h(zPrevName)</a> |
| 476 | } |
| 477 | @ [%z(href("%R/artifact/%!S",zUuid))%S(zUuid)</a>] |
| 478 | if( fShowId ){ |
| 479 | @ (%d(frid)) |
| 480 | } |
| 481 | @ part of check-in |
| 482 | }else{ |
| @@ -502,17 +502,15 @@ | |
| 502 | @ %W(zCom) (user: |
| 503 | hyperlink_to_user(zUser, zDate, ""); |
| 504 | @ branch: %z(href("%R/timeline?t=%T&n=200",zBr))%h(zBr)</a>) |
| 505 | if( g.perm.Hyperlink && zUuid ){ |
| 506 | const char *z = zFilename; |
| 507 | @ [%z(href("%R/annotate?filename=%h&checkin=%s",z,zCkin))annotate</a>] |
| 508 | @ [%z(href("%R/blame?filename=%h&checkin=%s",z,zCkin))blame</a>] |
| 509 | @ [%z(href("%R/timeline?n=200&uf=%!S",zUuid))check-ins using</a>] |
| 510 | if( fpid>0 ){ |
| 511 | @ [%z(href("%R/fdiff?sbs=1&v1=%!S&v2=%!S",zPUuid,zUuid))diff</a>] |
| 512 | } |
| 513 | } |
| 514 | if( fDebug & FINFO_DEBUG_MLINK ){ |
| 515 | int ii; |
| 516 | char *zAncLink; |
| @@ -522,11 +520,11 @@ | |
| 520 | for(ii=1; ii<nParent; ii++){ |
| 521 | @ %d(aParent[ii]) |
| 522 | } |
| 523 | } |
| 524 | zAncLink = href("%R/finfo?name=%T&ci=%!S&debug=1",zFilename,zCkin); |
| 525 | @ [%z(zAncLink)ancestry</a>] |
| 526 | } |
| 527 | tag_private_status(frid); |
| 528 | @ </td></tr> |
| 529 | } |
| 530 | db_finalize(&q); |
| 531 |
+15
-16
| --- src/info.c | ||
| +++ src/info.c | ||
| @@ -394,12 +394,12 @@ | ||
| 394 | 394 | } |
| 395 | 395 | }else{ |
| 396 | 396 | if( zOld && zNew ){ |
| 397 | 397 | if( fossil_strcmp(zOld, zNew)!=0 ){ |
| 398 | 398 | @ Modified %z(href("%R/finfo?name=%T",zName))%h(zName)</a> |
| 399 | - @ from %z(href("%R/artifact/%!S",zOld))[%S(zOld)]</a> | |
| 400 | - @ to %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>. | |
| 399 | + @ from [%z(href("%R/artifact/%!S",zOld))%S(zOld)</a>] | |
| 400 | + @ to [%z(href("%R/artifact/%!S",zNew))%S(zNew)</a>]. | |
| 401 | 401 | }else if( zOldName!=0 && fossil_strcmp(zName,zOldName)!=0 ){ |
| 402 | 402 | @ Name change |
| 403 | 403 | @ from %z(href("%R/finfo?name=%T",zOldName))%h(zOldName)</a> |
| 404 | 404 | @ to %z(href("%R/finfo?name=%T",zName))%h(zName)</a>. |
| 405 | 405 | }else{ |
| @@ -409,24 +409,24 @@ | ||
| 409 | 409 | }else if( mperm==PERM_LNK ){ |
| 410 | 410 | @ a symlink with target |
| 411 | 411 | }else{ |
| 412 | 412 | @ a regular file with contents |
| 413 | 413 | } |
| 414 | - @ %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>. | |
| 414 | + @ [%z(href("%R/artifact/%!S",zNew))%S(zNew)</a>]. | |
| 415 | 415 | } |
| 416 | 416 | }else if( zOld ){ |
| 417 | 417 | @ Deleted %z(href("%R/finfo?name=%T",zName))%h(zName)</a> |
| 418 | - @ version %z(href("%R/artifact/%!S",zOld))[%S(zOld)]</a>. | |
| 418 | + @ version [%z(href("%R/artifact/%!S",zOld))%S(zOld)</a>]. | |
| 419 | 419 | }else{ |
| 420 | 420 | @ Added %z(href("%R/finfo?name=%T",zName))%h(zName)</a> |
| 421 | - @ version %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>. | |
| 421 | + @ version [%z(href("%R/artifact/%!S",zNew))%S(zNew)</a>]. | |
| 422 | 422 | } |
| 423 | 423 | if( diffFlags ){ |
| 424 | 424 | append_diff(zOld, zNew, diffFlags, pRe); |
| 425 | 425 | }else if( zOld && zNew && fossil_strcmp(zOld,zNew)!=0 ){ |
| 426 | 426 | @ |
| 427 | - @ %z(href("%R/fdiff?v1=%!S&v2=%!S&sbs=1",zOld,zNew))[diff]</a> | |
| 427 | + @ [%z(href("%R/fdiff?v1=%!S&v2=%!S&sbs=1",zOld,zNew))diff</a>] | |
| 428 | 428 | } |
| 429 | 429 | } |
| 430 | 430 | @ </p> |
| 431 | 431 | } |
| 432 | 432 | |
| @@ -1214,11 +1214,11 @@ | ||
| 1214 | 1214 | int mPerm = db_column_int(&q, 5); |
| 1215 | 1215 | const char *zBr = db_column_text(&q, 6); |
| 1216 | 1216 | int sameFilename = prevName!=0 && fossil_strcmp(zName,prevName)==0; |
| 1217 | 1217 | if( sameFilename && !showDetail ){ |
| 1218 | 1218 | if( cnt==1 ){ |
| 1219 | - @ %z(href("%R/whatis/%!S",zUuid))[more...]</a> | |
| 1219 | + @ [%z(href("%R/whatis/%!S",zUuid))more...</a>] | |
| 1220 | 1220 | } |
| 1221 | 1221 | cnt++; |
| 1222 | 1222 | continue; |
| 1223 | 1223 | } |
| 1224 | 1224 | if( !sameFilename ){ |
| @@ -1257,15 +1257,14 @@ | ||
| 1257 | 1257 | @ on branch %z(href("%R/timeline?r=%T",zBr))%h(zBr)</a> |
| 1258 | 1258 | } |
| 1259 | 1259 | @ — %!W(zCom) (user: |
| 1260 | 1260 | hyperlink_to_user(zUser,zDate,")"); |
| 1261 | 1261 | if( g.perm.Hyperlink ){ |
| 1262 | - @ %z(href("%R/finfo?name=%T&ci=%!S",zName,zVers))[ancestry]</a> | |
| 1263 | - @ %z(href("%R/annotate?filename=%T&checkin=%!S",zName,zVers)) | |
| 1264 | - @ [annotate]</a> | |
| 1265 | - @ %z(href("%R/blame?filename=%T&checkin=%!S",zName,zVers)) | |
| 1266 | - @ [blame]</a> | |
| 1262 | + @ [%z(href("%R/finfo?name=%T&ci=%!S",zName,zVers))ancestry</a>] | |
| 1263 | + @ [%z(href("%R/annotate?filename=%T&checkin=%!S",zName,zVers)) | |
| 1264 | + @ annotate</a>] | |
| 1265 | + @ [%z(href("%R/blame?filename=%T&checkin=%!S",zName,zVers))blame</a>] | |
| 1267 | 1266 | } |
| 1268 | 1267 | cnt++; |
| 1269 | 1268 | if( pDownloadName && blob_size(pDownloadName)==0 ){ |
| 1270 | 1269 | blob_append(pDownloadName, zName, -1); |
| 1271 | 1270 | } |
| @@ -1482,17 +1481,17 @@ | ||
| 1482 | 1481 | g.zTop, P("v1"), P("v2"), zW); |
| 1483 | 1482 | } |
| 1484 | 1483 | |
| 1485 | 1484 | if( P("smhdr")!=0 ){ |
| 1486 | 1485 | @ <h2>Differences From Artifact |
| 1487 | - @ %z(href("%R/artifact/%!S",zV1))[%S(zV1)]</a> To | |
| 1488 | - @ %z(href("%R/artifact/%!S",zV2))[%S(zV2)]</a>.</h2> | |
| 1486 | + @ [%z(href("%R/artifact/%!S",zV1))%S(zV1)</a>] To | |
| 1487 | + @ [%z(href("%R/artifact/%!S",zV2))%S(zV2)</a>].</h2> | |
| 1489 | 1488 | }else{ |
| 1490 | 1489 | @ <h2>Differences From |
| 1491 | - @ Artifact %z(href("%R/artifact/%!S",zV1))[%S(zV1)]</a>:</h2> | |
| 1490 | + @ Artifact [%z(href("%R/artifact/%!S",zV1))%S(zV1)</a>]:</h2> | |
| 1492 | 1491 | object_description(v1, objdescFlags, 0); |
| 1493 | - @ <h2>To Artifact %z(href("%R/artifact/%!S",zV2))[%S(zV2)]</a>:</h2> | |
| 1492 | + @ <h2>To Artifact [%z(href("%R/artifact/%!S",zV2))%S(zV2)</a>]:</h2> | |
| 1494 | 1493 | object_description(v2, objdescFlags, 0); |
| 1495 | 1494 | } |
| 1496 | 1495 | if( pRe ){ |
| 1497 | 1496 | @ <b>Only differences that match regular expression "%h(zRe)" |
| 1498 | 1497 | @ are shown.</b> |
| 1499 | 1498 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -394,12 +394,12 @@ | |
| 394 | } |
| 395 | }else{ |
| 396 | if( zOld && zNew ){ |
| 397 | if( fossil_strcmp(zOld, zNew)!=0 ){ |
| 398 | @ Modified %z(href("%R/finfo?name=%T",zName))%h(zName)</a> |
| 399 | @ from %z(href("%R/artifact/%!S",zOld))[%S(zOld)]</a> |
| 400 | @ to %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>. |
| 401 | }else if( zOldName!=0 && fossil_strcmp(zName,zOldName)!=0 ){ |
| 402 | @ Name change |
| 403 | @ from %z(href("%R/finfo?name=%T",zOldName))%h(zOldName)</a> |
| 404 | @ to %z(href("%R/finfo?name=%T",zName))%h(zName)</a>. |
| 405 | }else{ |
| @@ -409,24 +409,24 @@ | |
| 409 | }else if( mperm==PERM_LNK ){ |
| 410 | @ a symlink with target |
| 411 | }else{ |
| 412 | @ a regular file with contents |
| 413 | } |
| 414 | @ %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>. |
| 415 | } |
| 416 | }else if( zOld ){ |
| 417 | @ Deleted %z(href("%R/finfo?name=%T",zName))%h(zName)</a> |
| 418 | @ version %z(href("%R/artifact/%!S",zOld))[%S(zOld)]</a>. |
| 419 | }else{ |
| 420 | @ Added %z(href("%R/finfo?name=%T",zName))%h(zName)</a> |
| 421 | @ version %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>. |
| 422 | } |
| 423 | if( diffFlags ){ |
| 424 | append_diff(zOld, zNew, diffFlags, pRe); |
| 425 | }else if( zOld && zNew && fossil_strcmp(zOld,zNew)!=0 ){ |
| 426 | @ |
| 427 | @ %z(href("%R/fdiff?v1=%!S&v2=%!S&sbs=1",zOld,zNew))[diff]</a> |
| 428 | } |
| 429 | } |
| 430 | @ </p> |
| 431 | } |
| 432 | |
| @@ -1214,11 +1214,11 @@ | |
| 1214 | int mPerm = db_column_int(&q, 5); |
| 1215 | const char *zBr = db_column_text(&q, 6); |
| 1216 | int sameFilename = prevName!=0 && fossil_strcmp(zName,prevName)==0; |
| 1217 | if( sameFilename && !showDetail ){ |
| 1218 | if( cnt==1 ){ |
| 1219 | @ %z(href("%R/whatis/%!S",zUuid))[more...]</a> |
| 1220 | } |
| 1221 | cnt++; |
| 1222 | continue; |
| 1223 | } |
| 1224 | if( !sameFilename ){ |
| @@ -1257,15 +1257,14 @@ | |
| 1257 | @ on branch %z(href("%R/timeline?r=%T",zBr))%h(zBr)</a> |
| 1258 | } |
| 1259 | @ — %!W(zCom) (user: |
| 1260 | hyperlink_to_user(zUser,zDate,")"); |
| 1261 | if( g.perm.Hyperlink ){ |
| 1262 | @ %z(href("%R/finfo?name=%T&ci=%!S",zName,zVers))[ancestry]</a> |
| 1263 | @ %z(href("%R/annotate?filename=%T&checkin=%!S",zName,zVers)) |
| 1264 | @ [annotate]</a> |
| 1265 | @ %z(href("%R/blame?filename=%T&checkin=%!S",zName,zVers)) |
| 1266 | @ [blame]</a> |
| 1267 | } |
| 1268 | cnt++; |
| 1269 | if( pDownloadName && blob_size(pDownloadName)==0 ){ |
| 1270 | blob_append(pDownloadName, zName, -1); |
| 1271 | } |
| @@ -1482,17 +1481,17 @@ | |
| 1482 | g.zTop, P("v1"), P("v2"), zW); |
| 1483 | } |
| 1484 | |
| 1485 | if( P("smhdr")!=0 ){ |
| 1486 | @ <h2>Differences From Artifact |
| 1487 | @ %z(href("%R/artifact/%!S",zV1))[%S(zV1)]</a> To |
| 1488 | @ %z(href("%R/artifact/%!S",zV2))[%S(zV2)]</a>.</h2> |
| 1489 | }else{ |
| 1490 | @ <h2>Differences From |
| 1491 | @ Artifact %z(href("%R/artifact/%!S",zV1))[%S(zV1)]</a>:</h2> |
| 1492 | object_description(v1, objdescFlags, 0); |
| 1493 | @ <h2>To Artifact %z(href("%R/artifact/%!S",zV2))[%S(zV2)]</a>:</h2> |
| 1494 | object_description(v2, objdescFlags, 0); |
| 1495 | } |
| 1496 | if( pRe ){ |
| 1497 | @ <b>Only differences that match regular expression "%h(zRe)" |
| 1498 | @ are shown.</b> |
| 1499 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -394,12 +394,12 @@ | |
| 394 | } |
| 395 | }else{ |
| 396 | if( zOld && zNew ){ |
| 397 | if( fossil_strcmp(zOld, zNew)!=0 ){ |
| 398 | @ Modified %z(href("%R/finfo?name=%T",zName))%h(zName)</a> |
| 399 | @ from [%z(href("%R/artifact/%!S",zOld))%S(zOld)</a>] |
| 400 | @ to [%z(href("%R/artifact/%!S",zNew))%S(zNew)</a>]. |
| 401 | }else if( zOldName!=0 && fossil_strcmp(zName,zOldName)!=0 ){ |
| 402 | @ Name change |
| 403 | @ from %z(href("%R/finfo?name=%T",zOldName))%h(zOldName)</a> |
| 404 | @ to %z(href("%R/finfo?name=%T",zName))%h(zName)</a>. |
| 405 | }else{ |
| @@ -409,24 +409,24 @@ | |
| 409 | }else if( mperm==PERM_LNK ){ |
| 410 | @ a symlink with target |
| 411 | }else{ |
| 412 | @ a regular file with contents |
| 413 | } |
| 414 | @ [%z(href("%R/artifact/%!S",zNew))%S(zNew)</a>]. |
| 415 | } |
| 416 | }else if( zOld ){ |
| 417 | @ Deleted %z(href("%R/finfo?name=%T",zName))%h(zName)</a> |
| 418 | @ version [%z(href("%R/artifact/%!S",zOld))%S(zOld)</a>]. |
| 419 | }else{ |
| 420 | @ Added %z(href("%R/finfo?name=%T",zName))%h(zName)</a> |
| 421 | @ version [%z(href("%R/artifact/%!S",zNew))%S(zNew)</a>]. |
| 422 | } |
| 423 | if( diffFlags ){ |
| 424 | append_diff(zOld, zNew, diffFlags, pRe); |
| 425 | }else if( zOld && zNew && fossil_strcmp(zOld,zNew)!=0 ){ |
| 426 | @ |
| 427 | @ [%z(href("%R/fdiff?v1=%!S&v2=%!S&sbs=1",zOld,zNew))diff</a>] |
| 428 | } |
| 429 | } |
| 430 | @ </p> |
| 431 | } |
| 432 | |
| @@ -1214,11 +1214,11 @@ | |
| 1214 | int mPerm = db_column_int(&q, 5); |
| 1215 | const char *zBr = db_column_text(&q, 6); |
| 1216 | int sameFilename = prevName!=0 && fossil_strcmp(zName,prevName)==0; |
| 1217 | if( sameFilename && !showDetail ){ |
| 1218 | if( cnt==1 ){ |
| 1219 | @ [%z(href("%R/whatis/%!S",zUuid))more...</a>] |
| 1220 | } |
| 1221 | cnt++; |
| 1222 | continue; |
| 1223 | } |
| 1224 | if( !sameFilename ){ |
| @@ -1257,15 +1257,14 @@ | |
| 1257 | @ on branch %z(href("%R/timeline?r=%T",zBr))%h(zBr)</a> |
| 1258 | } |
| 1259 | @ — %!W(zCom) (user: |
| 1260 | hyperlink_to_user(zUser,zDate,")"); |
| 1261 | if( g.perm.Hyperlink ){ |
| 1262 | @ [%z(href("%R/finfo?name=%T&ci=%!S",zName,zVers))ancestry</a>] |
| 1263 | @ [%z(href("%R/annotate?filename=%T&checkin=%!S",zName,zVers)) |
| 1264 | @ annotate</a>] |
| 1265 | @ [%z(href("%R/blame?filename=%T&checkin=%!S",zName,zVers))blame</a>] |
| 1266 | } |
| 1267 | cnt++; |
| 1268 | if( pDownloadName && blob_size(pDownloadName)==0 ){ |
| 1269 | blob_append(pDownloadName, zName, -1); |
| 1270 | } |
| @@ -1482,17 +1481,17 @@ | |
| 1481 | g.zTop, P("v1"), P("v2"), zW); |
| 1482 | } |
| 1483 | |
| 1484 | if( P("smhdr")!=0 ){ |
| 1485 | @ <h2>Differences From Artifact |
| 1486 | @ [%z(href("%R/artifact/%!S",zV1))%S(zV1)</a>] To |
| 1487 | @ [%z(href("%R/artifact/%!S",zV2))%S(zV2)</a>].</h2> |
| 1488 | }else{ |
| 1489 | @ <h2>Differences From |
| 1490 | @ Artifact [%z(href("%R/artifact/%!S",zV1))%S(zV1)</a>]:</h2> |
| 1491 | object_description(v1, objdescFlags, 0); |
| 1492 | @ <h2>To Artifact [%z(href("%R/artifact/%!S",zV2))%S(zV2)</a>]:</h2> |
| 1493 | object_description(v2, objdescFlags, 0); |
| 1494 | } |
| 1495 | if( pRe ){ |
| 1496 | @ <b>Only differences that match regular expression "%h(zRe)" |
| 1497 | @ are shown.</b> |
| 1498 |
+3
-3
| --- src/setup.c | ||
| +++ src/setup.c | ||
| @@ -376,11 +376,11 @@ | ||
| 376 | 376 | zLogin = P("login"); |
| 377 | 377 | if( strlen(zLogin)==0 ){ |
| 378 | 378 | style_header("User Creation Error"); |
| 379 | 379 | @ <span class="loginError">Empty login not allowed.</span> |
| 380 | 380 | @ |
| 381 | - @ <p><a href="setup_uedit?id=%d(uid)">[Bummer]</a></p> | |
| 381 | + @ <p>[<a href="setup_uedit?id=%d(uid)">Bummer</a>]</p> | |
| 382 | 382 | style_footer(); |
| 383 | 383 | return; |
| 384 | 384 | } |
| 385 | 385 | if( isValidPwString(zPw) ){ |
| 386 | 386 | zPw = sha1_shared_secret(zPw, zLogin, 0); |
| @@ -391,11 +391,11 @@ | ||
| 391 | 391 | if( db_exists("SELECT 1 FROM user WHERE login=%Q AND uid!=%d", zLogin, uid) ){ |
| 392 | 392 | style_header("User Creation Error"); |
| 393 | 393 | @ <span class="loginError">Login "%h(zLogin)" is already used by |
| 394 | 394 | @ a different user.</span> |
| 395 | 395 | @ |
| 396 | - @ <p><a href="setup_uedit?id=%d(uid)">[Bummer]</a></p> | |
| 396 | + @ <p>[<a href="setup_uedit?id=%d(uid)">Bummer</a>]</p> | |
| 397 | 397 | style_footer(); |
| 398 | 398 | return; |
| 399 | 399 | } |
| 400 | 400 | login_verify_csrf_secret(); |
| 401 | 401 | db_multi_exec( |
| @@ -436,11 +436,11 @@ | ||
| 436 | 436 | if( zErr ){ |
| 437 | 437 | style_header("User Change Error"); |
| 438 | 438 | admin_log( "Error updating user '%q': %s'.", zLogin, zErr ); |
| 439 | 439 | @ <span class="loginError">%s(zErr)</span> |
| 440 | 440 | @ |
| 441 | - @ <p><a href="setup_uedit?id=%d(uid)">[Bummer]</a></p> | |
| 441 | + @ <p>[<a href="setup_uedit?id=%d(uid)">Bummer</a>]</p> | |
| 442 | 442 | style_footer(); |
| 443 | 443 | return; |
| 444 | 444 | } |
| 445 | 445 | } |
| 446 | 446 | cgi_redirect("setup_ulist"); |
| 447 | 447 |
| --- src/setup.c | |
| +++ src/setup.c | |
| @@ -376,11 +376,11 @@ | |
| 376 | zLogin = P("login"); |
| 377 | if( strlen(zLogin)==0 ){ |
| 378 | style_header("User Creation Error"); |
| 379 | @ <span class="loginError">Empty login not allowed.</span> |
| 380 | @ |
| 381 | @ <p><a href="setup_uedit?id=%d(uid)">[Bummer]</a></p> |
| 382 | style_footer(); |
| 383 | return; |
| 384 | } |
| 385 | if( isValidPwString(zPw) ){ |
| 386 | zPw = sha1_shared_secret(zPw, zLogin, 0); |
| @@ -391,11 +391,11 @@ | |
| 391 | if( db_exists("SELECT 1 FROM user WHERE login=%Q AND uid!=%d", zLogin, uid) ){ |
| 392 | style_header("User Creation Error"); |
| 393 | @ <span class="loginError">Login "%h(zLogin)" is already used by |
| 394 | @ a different user.</span> |
| 395 | @ |
| 396 | @ <p><a href="setup_uedit?id=%d(uid)">[Bummer]</a></p> |
| 397 | style_footer(); |
| 398 | return; |
| 399 | } |
| 400 | login_verify_csrf_secret(); |
| 401 | db_multi_exec( |
| @@ -436,11 +436,11 @@ | |
| 436 | if( zErr ){ |
| 437 | style_header("User Change Error"); |
| 438 | admin_log( "Error updating user '%q': %s'.", zLogin, zErr ); |
| 439 | @ <span class="loginError">%s(zErr)</span> |
| 440 | @ |
| 441 | @ <p><a href="setup_uedit?id=%d(uid)">[Bummer]</a></p> |
| 442 | style_footer(); |
| 443 | return; |
| 444 | } |
| 445 | } |
| 446 | cgi_redirect("setup_ulist"); |
| 447 |
| --- src/setup.c | |
| +++ src/setup.c | |
| @@ -376,11 +376,11 @@ | |
| 376 | zLogin = P("login"); |
| 377 | if( strlen(zLogin)==0 ){ |
| 378 | style_header("User Creation Error"); |
| 379 | @ <span class="loginError">Empty login not allowed.</span> |
| 380 | @ |
| 381 | @ <p>[<a href="setup_uedit?id=%d(uid)">Bummer</a>]</p> |
| 382 | style_footer(); |
| 383 | return; |
| 384 | } |
| 385 | if( isValidPwString(zPw) ){ |
| 386 | zPw = sha1_shared_secret(zPw, zLogin, 0); |
| @@ -391,11 +391,11 @@ | |
| 391 | if( db_exists("SELECT 1 FROM user WHERE login=%Q AND uid!=%d", zLogin, uid) ){ |
| 392 | style_header("User Creation Error"); |
| 393 | @ <span class="loginError">Login "%h(zLogin)" is already used by |
| 394 | @ a different user.</span> |
| 395 | @ |
| 396 | @ <p>[<a href="setup_uedit?id=%d(uid)">Bummer</a>]</p> |
| 397 | style_footer(); |
| 398 | return; |
| 399 | } |
| 400 | login_verify_csrf_secret(); |
| 401 | db_multi_exec( |
| @@ -436,11 +436,11 @@ | |
| 436 | if( zErr ){ |
| 437 | style_header("User Change Error"); |
| 438 | admin_log( "Error updating user '%q': %s'.", zLogin, zErr ); |
| 439 | @ <span class="loginError">%s(zErr)</span> |
| 440 | @ |
| 441 | @ <p>[<a href="setup_uedit?id=%d(uid)">Bummer</a>]</p> |
| 442 | style_footer(); |
| 443 | return; |
| 444 | } |
| 445 | } |
| 446 | cgi_redirect("setup_ulist"); |
| 447 |
+8
-9
| --- src/timeline.c | ||
| +++ src/timeline.c | ||
| @@ -41,11 +41,11 @@ | ||
| 41 | 41 | /* |
| 42 | 42 | ** Generate a hyperlink to a version. |
| 43 | 43 | */ |
| 44 | 44 | void hyperlink_to_uuid(const char *zUuid){ |
| 45 | 45 | if( g.perm.Hyperlink ){ |
| 46 | - @ %z(xhref("class='timelineHistLink'","%R/info/%!S",zUuid))[%S(zUuid)]</a> | |
| 46 | + @ [%z(xhref("class='timelineHistLink'","%R/info/%!S",zUuid))%S(zUuid)</a>] | |
| 47 | 47 | }else{ |
| 48 | 48 | @ <span class="timelineHistDsp">[%S(zUuid)]</span> |
| 49 | 49 | } |
| 50 | 50 | } |
| 51 | 51 | |
| @@ -547,23 +547,23 @@ | ||
| 547 | 547 | if( isMergeNew ){ |
| 548 | 548 | @ (added by merge) |
| 549 | 549 | }else{ |
| 550 | 550 | @ (new file) |
| 551 | 551 | } |
| 552 | - @ %z(href("%R/artifact/%!S",zNew))[view]</a></li> | |
| 552 | + @ [%z(href("%R/artifact/%!S",zNew))view</a>]</li> | |
| 553 | 553 | }else if( isDel ){ |
| 554 | 554 | @ <li> %s(zA)%h(zFilename)</a> (deleted)</li> |
| 555 | 555 | }else if( fossil_strcmp(zOld,zNew)==0 && zOldName!=0 ){ |
| 556 | 556 | @ <li> %h(zOldName) → %s(zA)%h(zFilename)</a>%s(zId) |
| 557 | - @ %s(zUnpub) %z(href("%R/artifact/%!S",zNew))[view]</a></li> | |
| 557 | + @ %s(zUnpub) [%z(href("%R/artifact/%!S",zNew))view</a>]</li> | |
| 558 | 558 | }else{ |
| 559 | 559 | if( zOldName!=0 ){ |
| 560 | 560 | @ <li>%h(zOldName) → %s(zA)%h(zFilename)%s(zId)</a> %s(zUnpub) |
| 561 | 561 | }else{ |
| 562 | 562 | @ <li>%s(zA)%h(zFilename)</a>%s(zId) %s(zUnpub) |
| 563 | 563 | } |
| 564 | - @ %z(href("%R/fdiff?sbs=1&v1=%!S&v2=%!S",zOld,zNew))[diff]</a></li> | |
| 564 | + @ [%z(href("%R/fdiff?sbs=1&v1=%!S&v2=%!S",zOld,zNew))diff</a>]</li> | |
| 565 | 565 | } |
| 566 | 566 | fossil_free(zA); |
| 567 | 567 | } |
| 568 | 568 | db_reset(&fchngQuery); |
| 569 | 569 | if( inUl ){ |
| @@ -1397,13 +1397,13 @@ | ||
| 1397 | 1397 | p = p->u.pTo; |
| 1398 | 1398 | } |
| 1399 | 1399 | blob_append(&sql, ")", -1); |
| 1400 | 1400 | path_reset(); |
| 1401 | 1401 | blob_append(&desc, "All nodes on the path from ", -1); |
| 1402 | - blob_appendf(&desc, "%z[%h]</a>", href("%R/info/%h", zFrom), zFrom); | |
| 1402 | + blob_appendf(&desc, "[%z%h</a>]", href("%R/info/%h", zFrom), zFrom); | |
| 1403 | 1403 | blob_append(&desc, " to ", -1); |
| 1404 | - blob_appendf(&desc, "%z[%h]</a>", href("%R/info/%h",zTo), zTo); | |
| 1404 | + blob_appendf(&desc, "[%z%h</a>]", href("%R/info/%h",zTo), zTo); | |
| 1405 | 1405 | tmFlags |= TIMELINE_DISJOINT; |
| 1406 | 1406 | db_multi_exec("%s", blob_sql_text(&sql)); |
| 1407 | 1407 | }else if( (p_rid || d_rid) && g.perm.Read ){ |
| 1408 | 1408 | /* If p= or d= is present, ignore all other parameters other than n= */ |
| 1409 | 1409 | char *zUuid; |
| @@ -1437,12 +1437,11 @@ | ||
| 1437 | 1437 | blob_appendf(&desc, "%d ancestors", np); |
| 1438 | 1438 | db_multi_exec("%s", blob_sql_text(&sql)); |
| 1439 | 1439 | } |
| 1440 | 1440 | if( useDividers ) selectedRid = p_rid; |
| 1441 | 1441 | } |
| 1442 | - blob_appendf(&desc, " of %z[%S]</a>", | |
| 1443 | - href("%R/info/%!S", zUuid), zUuid); | |
| 1442 | + blob_appendf(&desc, " of [%z%S</a>]", href("%R/info/%!S", zUuid), zUuid); | |
| 1444 | 1443 | if( d_rid ){ |
| 1445 | 1444 | if( p_rid ){ |
| 1446 | 1445 | /* If both p= and d= are set, we don't have the uuid of d yet. */ |
| 1447 | 1446 | zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", d_rid); |
| 1448 | 1447 | } |
| @@ -1464,11 +1463,11 @@ | ||
| 1464 | 1463 | blob_append_sql(&sql, " AND event.objid IN ok"); |
| 1465 | 1464 | db_multi_exec("%s", blob_sql_text(&sql)); |
| 1466 | 1465 | if( useDividers ) selectedRid = f_rid; |
| 1467 | 1466 | blob_appendf(&desc, "Parents and children of check-in "); |
| 1468 | 1467 | zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", f_rid); |
| 1469 | - blob_appendf(&desc, "%z[%S]</a>", href("%R/info/%!S", zUuid), zUuid); | |
| 1468 | + blob_appendf(&desc, "[%z%S</a>]", href("%R/info/%!S", zUuid), zUuid); | |
| 1470 | 1469 | tmFlags |= TIMELINE_DISJOINT; |
| 1471 | 1470 | style_submenu_binary("v","With Files","Without Files", |
| 1472 | 1471 | zType[0]!='a' && zType[0]!='c'); |
| 1473 | 1472 | if( (tmFlags & TIMELINE_UNHIDE)==0 ){ |
| 1474 | 1473 | timeline_submenu(&url, "Unhide", "unhide", "", 0); |
| 1475 | 1474 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -41,11 +41,11 @@ | |
| 41 | /* |
| 42 | ** Generate a hyperlink to a version. |
| 43 | */ |
| 44 | void hyperlink_to_uuid(const char *zUuid){ |
| 45 | if( g.perm.Hyperlink ){ |
| 46 | @ %z(xhref("class='timelineHistLink'","%R/info/%!S",zUuid))[%S(zUuid)]</a> |
| 47 | }else{ |
| 48 | @ <span class="timelineHistDsp">[%S(zUuid)]</span> |
| 49 | } |
| 50 | } |
| 51 | |
| @@ -547,23 +547,23 @@ | |
| 547 | if( isMergeNew ){ |
| 548 | @ (added by merge) |
| 549 | }else{ |
| 550 | @ (new file) |
| 551 | } |
| 552 | @ %z(href("%R/artifact/%!S",zNew))[view]</a></li> |
| 553 | }else if( isDel ){ |
| 554 | @ <li> %s(zA)%h(zFilename)</a> (deleted)</li> |
| 555 | }else if( fossil_strcmp(zOld,zNew)==0 && zOldName!=0 ){ |
| 556 | @ <li> %h(zOldName) → %s(zA)%h(zFilename)</a>%s(zId) |
| 557 | @ %s(zUnpub) %z(href("%R/artifact/%!S",zNew))[view]</a></li> |
| 558 | }else{ |
| 559 | if( zOldName!=0 ){ |
| 560 | @ <li>%h(zOldName) → %s(zA)%h(zFilename)%s(zId)</a> %s(zUnpub) |
| 561 | }else{ |
| 562 | @ <li>%s(zA)%h(zFilename)</a>%s(zId) %s(zUnpub) |
| 563 | } |
| 564 | @ %z(href("%R/fdiff?sbs=1&v1=%!S&v2=%!S",zOld,zNew))[diff]</a></li> |
| 565 | } |
| 566 | fossil_free(zA); |
| 567 | } |
| 568 | db_reset(&fchngQuery); |
| 569 | if( inUl ){ |
| @@ -1397,13 +1397,13 @@ | |
| 1397 | p = p->u.pTo; |
| 1398 | } |
| 1399 | blob_append(&sql, ")", -1); |
| 1400 | path_reset(); |
| 1401 | blob_append(&desc, "All nodes on the path from ", -1); |
| 1402 | blob_appendf(&desc, "%z[%h]</a>", href("%R/info/%h", zFrom), zFrom); |
| 1403 | blob_append(&desc, " to ", -1); |
| 1404 | blob_appendf(&desc, "%z[%h]</a>", href("%R/info/%h",zTo), zTo); |
| 1405 | tmFlags |= TIMELINE_DISJOINT; |
| 1406 | db_multi_exec("%s", blob_sql_text(&sql)); |
| 1407 | }else if( (p_rid || d_rid) && g.perm.Read ){ |
| 1408 | /* If p= or d= is present, ignore all other parameters other than n= */ |
| 1409 | char *zUuid; |
| @@ -1437,12 +1437,11 @@ | |
| 1437 | blob_appendf(&desc, "%d ancestors", np); |
| 1438 | db_multi_exec("%s", blob_sql_text(&sql)); |
| 1439 | } |
| 1440 | if( useDividers ) selectedRid = p_rid; |
| 1441 | } |
| 1442 | blob_appendf(&desc, " of %z[%S]</a>", |
| 1443 | href("%R/info/%!S", zUuid), zUuid); |
| 1444 | if( d_rid ){ |
| 1445 | if( p_rid ){ |
| 1446 | /* If both p= and d= are set, we don't have the uuid of d yet. */ |
| 1447 | zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", d_rid); |
| 1448 | } |
| @@ -1464,11 +1463,11 @@ | |
| 1464 | blob_append_sql(&sql, " AND event.objid IN ok"); |
| 1465 | db_multi_exec("%s", blob_sql_text(&sql)); |
| 1466 | if( useDividers ) selectedRid = f_rid; |
| 1467 | blob_appendf(&desc, "Parents and children of check-in "); |
| 1468 | zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", f_rid); |
| 1469 | blob_appendf(&desc, "%z[%S]</a>", href("%R/info/%!S", zUuid), zUuid); |
| 1470 | tmFlags |= TIMELINE_DISJOINT; |
| 1471 | style_submenu_binary("v","With Files","Without Files", |
| 1472 | zType[0]!='a' && zType[0]!='c'); |
| 1473 | if( (tmFlags & TIMELINE_UNHIDE)==0 ){ |
| 1474 | timeline_submenu(&url, "Unhide", "unhide", "", 0); |
| 1475 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -41,11 +41,11 @@ | |
| 41 | /* |
| 42 | ** Generate a hyperlink to a version. |
| 43 | */ |
| 44 | void hyperlink_to_uuid(const char *zUuid){ |
| 45 | if( g.perm.Hyperlink ){ |
| 46 | @ [%z(xhref("class='timelineHistLink'","%R/info/%!S",zUuid))%S(zUuid)</a>] |
| 47 | }else{ |
| 48 | @ <span class="timelineHistDsp">[%S(zUuid)]</span> |
| 49 | } |
| 50 | } |
| 51 | |
| @@ -547,23 +547,23 @@ | |
| 547 | if( isMergeNew ){ |
| 548 | @ (added by merge) |
| 549 | }else{ |
| 550 | @ (new file) |
| 551 | } |
| 552 | @ [%z(href("%R/artifact/%!S",zNew))view</a>]</li> |
| 553 | }else if( isDel ){ |
| 554 | @ <li> %s(zA)%h(zFilename)</a> (deleted)</li> |
| 555 | }else if( fossil_strcmp(zOld,zNew)==0 && zOldName!=0 ){ |
| 556 | @ <li> %h(zOldName) → %s(zA)%h(zFilename)</a>%s(zId) |
| 557 | @ %s(zUnpub) [%z(href("%R/artifact/%!S",zNew))view</a>]</li> |
| 558 | }else{ |
| 559 | if( zOldName!=0 ){ |
| 560 | @ <li>%h(zOldName) → %s(zA)%h(zFilename)%s(zId)</a> %s(zUnpub) |
| 561 | }else{ |
| 562 | @ <li>%s(zA)%h(zFilename)</a>%s(zId) %s(zUnpub) |
| 563 | } |
| 564 | @ [%z(href("%R/fdiff?sbs=1&v1=%!S&v2=%!S",zOld,zNew))diff</a>]</li> |
| 565 | } |
| 566 | fossil_free(zA); |
| 567 | } |
| 568 | db_reset(&fchngQuery); |
| 569 | if( inUl ){ |
| @@ -1397,13 +1397,13 @@ | |
| 1397 | p = p->u.pTo; |
| 1398 | } |
| 1399 | blob_append(&sql, ")", -1); |
| 1400 | path_reset(); |
| 1401 | blob_append(&desc, "All nodes on the path from ", -1); |
| 1402 | blob_appendf(&desc, "[%z%h</a>]", href("%R/info/%h", zFrom), zFrom); |
| 1403 | blob_append(&desc, " to ", -1); |
| 1404 | blob_appendf(&desc, "[%z%h</a>]", href("%R/info/%h",zTo), zTo); |
| 1405 | tmFlags |= TIMELINE_DISJOINT; |
| 1406 | db_multi_exec("%s", blob_sql_text(&sql)); |
| 1407 | }else if( (p_rid || d_rid) && g.perm.Read ){ |
| 1408 | /* If p= or d= is present, ignore all other parameters other than n= */ |
| 1409 | char *zUuid; |
| @@ -1437,12 +1437,11 @@ | |
| 1437 | blob_appendf(&desc, "%d ancestors", np); |
| 1438 | db_multi_exec("%s", blob_sql_text(&sql)); |
| 1439 | } |
| 1440 | if( useDividers ) selectedRid = p_rid; |
| 1441 | } |
| 1442 | blob_appendf(&desc, " of [%z%S</a>]", href("%R/info/%!S", zUuid), zUuid); |
| 1443 | if( d_rid ){ |
| 1444 | if( p_rid ){ |
| 1445 | /* If both p= and d= are set, we don't have the uuid of d yet. */ |
| 1446 | zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", d_rid); |
| 1447 | } |
| @@ -1464,11 +1463,11 @@ | |
| 1463 | blob_append_sql(&sql, " AND event.objid IN ok"); |
| 1464 | db_multi_exec("%s", blob_sql_text(&sql)); |
| 1465 | if( useDividers ) selectedRid = f_rid; |
| 1466 | blob_appendf(&desc, "Parents and children of check-in "); |
| 1467 | zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", f_rid); |
| 1468 | blob_appendf(&desc, "[%z%S</a>]", href("%R/info/%!S", zUuid), zUuid); |
| 1469 | tmFlags |= TIMELINE_DISJOINT; |
| 1470 | style_submenu_binary("v","With Files","Without Files", |
| 1471 | zType[0]!='a' && zType[0]!='c'); |
| 1472 | if( (tmFlags & TIMELINE_UNHIDE)==0 ){ |
| 1473 | timeline_submenu(&url, "Unhide", "unhide", "", 0); |
| 1474 |
+1
-1
| --- src/wiki.c | ||
| +++ src/wiki.c | ||
| @@ -840,11 +840,11 @@ | ||
| 840 | 840 | ** Function called to output extra text at the end of each line in |
| 841 | 841 | ** a wiki history listing. |
| 842 | 842 | */ |
| 843 | 843 | static void wiki_history_extra(int rid){ |
| 844 | 844 | if( db_exists("SELECT 1 FROM tagxref WHERE rid=%d", rid) ){ |
| 845 | - @ %z(href("%R/wdiff?name=%t&a=%d",zWikiPageName,rid))[diff]</a> | |
| 845 | + @ [%z(href("%R/wdiff?name=%t&a=%d",zWikiPageName,rid))diff</a>] | |
| 846 | 846 | } |
| 847 | 847 | } |
| 848 | 848 | |
| 849 | 849 | /* |
| 850 | 850 | ** WEBPAGE: whistory |
| 851 | 851 |
| --- src/wiki.c | |
| +++ src/wiki.c | |
| @@ -840,11 +840,11 @@ | |
| 840 | ** Function called to output extra text at the end of each line in |
| 841 | ** a wiki history listing. |
| 842 | */ |
| 843 | static void wiki_history_extra(int rid){ |
| 844 | if( db_exists("SELECT 1 FROM tagxref WHERE rid=%d", rid) ){ |
| 845 | @ %z(href("%R/wdiff?name=%t&a=%d",zWikiPageName,rid))[diff]</a> |
| 846 | } |
| 847 | } |
| 848 | |
| 849 | /* |
| 850 | ** WEBPAGE: whistory |
| 851 |
| --- src/wiki.c | |
| +++ src/wiki.c | |
| @@ -840,11 +840,11 @@ | |
| 840 | ** Function called to output extra text at the end of each line in |
| 841 | ** a wiki history listing. |
| 842 | */ |
| 843 | static void wiki_history_extra(int rid){ |
| 844 | if( db_exists("SELECT 1 FROM tagxref WHERE rid=%d", rid) ){ |
| 845 | @ [%z(href("%R/wdiff?name=%t&a=%d",zWikiPageName,rid))diff</a>] |
| 846 | } |
| 847 | } |
| 848 | |
| 849 | /* |
| 850 | ** WEBPAGE: whistory |
| 851 |
+13
-14
| --- src/wikiformat.c | ||
| +++ src/wikiformat.c | ||
| @@ -1223,37 +1223,36 @@ | ||
| 1223 | 1223 | ** as crossed out if the ticket is closed. |
| 1224 | 1224 | */ |
| 1225 | 1225 | if( isClosed ){ |
| 1226 | 1226 | if( g.perm.Hyperlink ){ |
| 1227 | 1227 | blob_appendf(p->pOut, |
| 1228 | - "%z<span class=\"wikiTagCancelled\">[", | |
| 1229 | - href("%R/info/%s",zTarget) | |
| 1228 | + "[%z<span class=\"wikiTagCancelled\">", href("%R/info/%s",zTarget) | |
| 1230 | 1229 | ); |
| 1231 | - zTerm = "]</span></a>"; | |
| 1230 | + zTerm = "</span></a>]"; | |
| 1232 | 1231 | }else{ |
| 1233 | - blob_appendf(p->pOut,"<span class=\"wikiTagCancelled\">["); | |
| 1234 | - zTerm = "]</span>"; | |
| 1232 | + blob_appendf(p->pOut,"[<span class=\"wikiTagCancelled\">"); | |
| 1233 | + zTerm = "</span>]"; | |
| 1235 | 1234 | } |
| 1236 | 1235 | }else{ |
| 1237 | 1236 | if( g.perm.Hyperlink ){ |
| 1238 | - blob_appendf(p->pOut,"%z[", href("%R/info/%s", zTarget)); | |
| 1239 | - zTerm = "]</a>"; | |
| 1237 | + blob_appendf(p->pOut,"[%z", href("%R/info/%s", zTarget)); | |
| 1238 | + zTerm = "</a>]"; | |
| 1240 | 1239 | }else{ |
| 1241 | 1240 | blob_appendf(p->pOut, "["); |
| 1242 | 1241 | zTerm = "]"; |
| 1243 | 1242 | } |
| 1244 | 1243 | } |
| 1245 | 1244 | }else if( !in_this_repo(zTarget) ){ |
| 1246 | 1245 | if( (p->state & (WIKI_LINKSONLY|WIKI_NOBADLINKS))!=0 ){ |
| 1247 | 1246 | zTerm = ""; |
| 1248 | 1247 | }else{ |
| 1249 | - blob_appendf(p->pOut, "<span class=\"brokenlink\">["); | |
| 1250 | - zTerm = "]</span>"; | |
| 1248 | + blob_appendf(p->pOut, "[<span class=\"brokenlink\">"); | |
| 1249 | + zTerm = "</span>]"; | |
| 1251 | 1250 | } |
| 1252 | 1251 | }else if( g.perm.Hyperlink ){ |
| 1253 | - blob_appendf(p->pOut, "%z[",href("%R/info/%s", zTarget)); | |
| 1254 | - zTerm = "]</a>"; | |
| 1252 | + blob_appendf(p->pOut, "[%z",href("%R/info/%s", zTarget)); | |
| 1253 | + zTerm = "</a>]"; | |
| 1255 | 1254 | }else{ |
| 1256 | 1255 | zTerm = ""; |
| 1257 | 1256 | } |
| 1258 | 1257 | }else if( strlen(zTarget)>=10 && fossil_isdigit(zTarget[0]) && zTarget[4]=='-' |
| 1259 | 1258 | && db_int(0, "SELECT datetime(%Q) NOT NULL", zTarget) ){ |
| @@ -1264,12 +1263,12 @@ | ||
| 1264 | 1263 | /* Probably an array subscript in code */ |
| 1265 | 1264 | zTerm = ""; |
| 1266 | 1265 | }else if( (p->state & (WIKI_NOBADLINKS|WIKI_LINKSONLY))!=0 ){ |
| 1267 | 1266 | zTerm = ""; |
| 1268 | 1267 | }else{ |
| 1269 | - blob_appendf(p->pOut, "<span class=\"brokenlink\">[%h]", zTarget); | |
| 1270 | - zTerm = "</span>"; | |
| 1268 | + blob_appendf(p->pOut, "[<span class=\"brokenlink\">%h", zTarget); | |
| 1269 | + zTerm = "</span>]"; | |
| 1271 | 1270 | } |
| 1272 | 1271 | assert( strlen(zTerm)<nClose ); |
| 1273 | 1272 | sqlite3_snprintf(nClose, zClose, "%s", zTerm); |
| 1274 | 1273 | } |
| 1275 | 1274 | |
| @@ -1450,11 +1449,11 @@ | ||
| 1450 | 1449 | while( fossil_isspace(*zDisplay) ) zDisplay++; |
| 1451 | 1450 | } |
| 1452 | 1451 | openHyperlink(p, zTarget, zClose, sizeof(zClose), zOrig); |
| 1453 | 1452 | if( linksOnly || zClose[0]==0 || p->inVerbatim ){ |
| 1454 | 1453 | if( cS1 ) z[iS1] = cS1; |
| 1455 | - if( zClose[0]!=']' ){ | |
| 1454 | + if( zClose[strlen(zClose) - 1]!=']' ){ | |
| 1456 | 1455 | blob_appendf(p->pOut, "[%h]%s", zTarget, zClose); |
| 1457 | 1456 | }else{ |
| 1458 | 1457 | blob_appendf(p->pOut, "%h%s", zTarget, zClose); |
| 1459 | 1458 | } |
| 1460 | 1459 | }else{ |
| 1461 | 1460 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -1223,37 +1223,36 @@ | |
| 1223 | ** as crossed out if the ticket is closed. |
| 1224 | */ |
| 1225 | if( isClosed ){ |
| 1226 | if( g.perm.Hyperlink ){ |
| 1227 | blob_appendf(p->pOut, |
| 1228 | "%z<span class=\"wikiTagCancelled\">[", |
| 1229 | href("%R/info/%s",zTarget) |
| 1230 | ); |
| 1231 | zTerm = "]</span></a>"; |
| 1232 | }else{ |
| 1233 | blob_appendf(p->pOut,"<span class=\"wikiTagCancelled\">["); |
| 1234 | zTerm = "]</span>"; |
| 1235 | } |
| 1236 | }else{ |
| 1237 | if( g.perm.Hyperlink ){ |
| 1238 | blob_appendf(p->pOut,"%z[", href("%R/info/%s", zTarget)); |
| 1239 | zTerm = "]</a>"; |
| 1240 | }else{ |
| 1241 | blob_appendf(p->pOut, "["); |
| 1242 | zTerm = "]"; |
| 1243 | } |
| 1244 | } |
| 1245 | }else if( !in_this_repo(zTarget) ){ |
| 1246 | if( (p->state & (WIKI_LINKSONLY|WIKI_NOBADLINKS))!=0 ){ |
| 1247 | zTerm = ""; |
| 1248 | }else{ |
| 1249 | blob_appendf(p->pOut, "<span class=\"brokenlink\">["); |
| 1250 | zTerm = "]</span>"; |
| 1251 | } |
| 1252 | }else if( g.perm.Hyperlink ){ |
| 1253 | blob_appendf(p->pOut, "%z[",href("%R/info/%s", zTarget)); |
| 1254 | zTerm = "]</a>"; |
| 1255 | }else{ |
| 1256 | zTerm = ""; |
| 1257 | } |
| 1258 | }else if( strlen(zTarget)>=10 && fossil_isdigit(zTarget[0]) && zTarget[4]=='-' |
| 1259 | && db_int(0, "SELECT datetime(%Q) NOT NULL", zTarget) ){ |
| @@ -1264,12 +1263,12 @@ | |
| 1264 | /* Probably an array subscript in code */ |
| 1265 | zTerm = ""; |
| 1266 | }else if( (p->state & (WIKI_NOBADLINKS|WIKI_LINKSONLY))!=0 ){ |
| 1267 | zTerm = ""; |
| 1268 | }else{ |
| 1269 | blob_appendf(p->pOut, "<span class=\"brokenlink\">[%h]", zTarget); |
| 1270 | zTerm = "</span>"; |
| 1271 | } |
| 1272 | assert( strlen(zTerm)<nClose ); |
| 1273 | sqlite3_snprintf(nClose, zClose, "%s", zTerm); |
| 1274 | } |
| 1275 | |
| @@ -1450,11 +1449,11 @@ | |
| 1450 | while( fossil_isspace(*zDisplay) ) zDisplay++; |
| 1451 | } |
| 1452 | openHyperlink(p, zTarget, zClose, sizeof(zClose), zOrig); |
| 1453 | if( linksOnly || zClose[0]==0 || p->inVerbatim ){ |
| 1454 | if( cS1 ) z[iS1] = cS1; |
| 1455 | if( zClose[0]!=']' ){ |
| 1456 | blob_appendf(p->pOut, "[%h]%s", zTarget, zClose); |
| 1457 | }else{ |
| 1458 | blob_appendf(p->pOut, "%h%s", zTarget, zClose); |
| 1459 | } |
| 1460 | }else{ |
| 1461 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -1223,37 +1223,36 @@ | |
| 1223 | ** as crossed out if the ticket is closed. |
| 1224 | */ |
| 1225 | if( isClosed ){ |
| 1226 | if( g.perm.Hyperlink ){ |
| 1227 | blob_appendf(p->pOut, |
| 1228 | "[%z<span class=\"wikiTagCancelled\">", href("%R/info/%s",zTarget) |
| 1229 | ); |
| 1230 | zTerm = "</span></a>]"; |
| 1231 | }else{ |
| 1232 | blob_appendf(p->pOut,"[<span class=\"wikiTagCancelled\">"); |
| 1233 | zTerm = "</span>]"; |
| 1234 | } |
| 1235 | }else{ |
| 1236 | if( g.perm.Hyperlink ){ |
| 1237 | blob_appendf(p->pOut,"[%z", href("%R/info/%s", zTarget)); |
| 1238 | zTerm = "</a>]"; |
| 1239 | }else{ |
| 1240 | blob_appendf(p->pOut, "["); |
| 1241 | zTerm = "]"; |
| 1242 | } |
| 1243 | } |
| 1244 | }else if( !in_this_repo(zTarget) ){ |
| 1245 | if( (p->state & (WIKI_LINKSONLY|WIKI_NOBADLINKS))!=0 ){ |
| 1246 | zTerm = ""; |
| 1247 | }else{ |
| 1248 | blob_appendf(p->pOut, "[<span class=\"brokenlink\">"); |
| 1249 | zTerm = "</span>]"; |
| 1250 | } |
| 1251 | }else if( g.perm.Hyperlink ){ |
| 1252 | blob_appendf(p->pOut, "[%z",href("%R/info/%s", zTarget)); |
| 1253 | zTerm = "</a>]"; |
| 1254 | }else{ |
| 1255 | zTerm = ""; |
| 1256 | } |
| 1257 | }else if( strlen(zTarget)>=10 && fossil_isdigit(zTarget[0]) && zTarget[4]=='-' |
| 1258 | && db_int(0, "SELECT datetime(%Q) NOT NULL", zTarget) ){ |
| @@ -1264,12 +1263,12 @@ | |
| 1263 | /* Probably an array subscript in code */ |
| 1264 | zTerm = ""; |
| 1265 | }else if( (p->state & (WIKI_NOBADLINKS|WIKI_LINKSONLY))!=0 ){ |
| 1266 | zTerm = ""; |
| 1267 | }else{ |
| 1268 | blob_appendf(p->pOut, "[<span class=\"brokenlink\">%h", zTarget); |
| 1269 | zTerm = "</span>]"; |
| 1270 | } |
| 1271 | assert( strlen(zTerm)<nClose ); |
| 1272 | sqlite3_snprintf(nClose, zClose, "%s", zTerm); |
| 1273 | } |
| 1274 | |
| @@ -1450,11 +1449,11 @@ | |
| 1449 | while( fossil_isspace(*zDisplay) ) zDisplay++; |
| 1450 | } |
| 1451 | openHyperlink(p, zTarget, zClose, sizeof(zClose), zOrig); |
| 1452 | if( linksOnly || zClose[0]==0 || p->inVerbatim ){ |
| 1453 | if( cS1 ) z[iS1] = cS1; |
| 1454 | if( zClose[strlen(zClose) - 1]!=']' ){ |
| 1455 | blob_appendf(p->pOut, "[%h]%s", zTarget, zClose); |
| 1456 | }else{ |
| 1457 | blob_appendf(p->pOut, "%h%s", zTarget, zClose); |
| 1458 | } |
| 1459 | }else{ |
| 1460 |