Fossil SCM

Move all square brackets outside the hyperlink text to make it easier to copy-and-paste links sans brackets from typical browsers.

andygoth 2015-05-17 21:30 trunk
Commit a2020a7ac8b6db24b3852f65e9812cf7bd715157
+1 -1
--- src/branch.c
+++ src/branch.c
@@ -506,11 +506,11 @@
506506
" AND tag.tagname GLOB 'sym-*'",
507507
rid
508508
);
509509
while( db_step(&q)==SQLITE_ROW ){
510510
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>]
512512
}
513513
db_finalize(&q);
514514
}
515515
516516
/*
517517
--- 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 @@
10401040
zGlob = P("glob");
10411041
compute_fileage(rid,zGlob);
10421042
db_multi_exec("CREATE INDEX fileage_ix1 ON fileage(mid,pathname);");
10431043
10441044
@ <h2>Files in
1045
- @ %z(href("%R/info/%!S",zUuid))[%S(zUuid)]</a>
1045
+ @ [%z(href("%R/info/%!S",zUuid))%S(zUuid)</a>]
10461046
if( zGlob && zGlob[0] ){
10471047
@ that match "%h(zGlob)" and
10481048
}
10491049
@ ordered by check-in time</h2>
10501050
@
10511051
@ <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
10531053
@ %z(href("%R/timeline?c=%t",zNow))%s(zNow)</a>.</p>
10541054
@
10551055
@ <div class='fileage'><table>
10561056
@ <tr><th>Time</th><th>Files</th><th>Check-in</th></tr>
10571057
db_prepare(&q1,
@@ -1095,11 +1095,11 @@
10951095
}
10961096
}
10971097
db_reset(&q2);
10981098
@ </td>
10991099
@ <td>
1100
- @ %z(href("%R/info/%!S",zUuid))[%S(zUuid)]</a>
1100
+ @ [%z(href("%R/info/%!S",zUuid))%S(zUuid)</a>]
11011101
if( showId ){
11021102
@ (%d(mid))
11031103
}
11041104
@ %W(zComment) (user:
11051105
@ %z(href("%R/timeline?u=%t&c=%!S&nd&n=200",zUser,zUuid))%h(zUser)</a>,
11061106
--- 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 @@
23362336
#if 0
23372337
if( i>0 ){
23382338
char *zLink = xhref("target='infowindow'",
23392339
"%R/fdiff?v1=%S&v2=%S&sbs=1",
23402340
p->zFUuid,ann.aVers[0].zFUuid);
2341
- @ %z(zLink)[diff-to-top]</a>
2341
+ @ [%z(zLink)diff-to-top</a>]
23422342
if( i>1 ){
23432343
zLink = xhref("target='infowindow'",
23442344
"%R/fdiff?v1=%S&v2=%S&sbs=1",
23452345
p->zFUuid,p[-1].zFUuid);
2346
- @ %z(zLink)[diff-to-previous]</a>
2346
+ @ [%z(zLink)diff-to-previous</a>]
23472347
}
23482348
}
23492349
#endif
23502350
}
23512351
@ </ol>
23522352
--- 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 @@
472472
char *zPrevName = db_text(0, "SELECT name FROM filename WHERE fnid=%d",
473473
pfnid);
474474
@ <b>Renamed</b> from
475475
@ %z(href("%R/finfo?name=%t", zPrevName))%h(zPrevName)</a>
476476
}
477
- @ %z(href("%R/artifact/%!S",zUuid))[%S(zUuid)]</a>
477
+ @ [%z(href("%R/artifact/%!S",zUuid))%S(zUuid)</a>]
478478
if( fShowId ){
479479
@ (%d(frid))
480480
}
481481
@ part of check-in
482482
}else{
@@ -502,17 +502,15 @@
502502
@ %W(zCom) (user:
503503
hyperlink_to_user(zUser, zDate, "");
504504
@ branch: %z(href("%R/timeline?t=%T&n=200",zBr))%h(zBr)</a>)
505505
if( g.perm.Hyperlink && zUuid ){
506506
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&nbsp;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&nbsp;using</a>]
512510
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>]
514512
}
515513
}
516514
if( fDebug & FINFO_DEBUG_MLINK ){
517515
int ii;
518516
char *zAncLink;
@@ -522,11 +520,11 @@
522520
for(ii=1; ii<nParent; ii++){
523521
@ %d(aParent[ii])
524522
}
525523
}
526524
zAncLink = href("%R/finfo?name=%T&ci=%!S&debug=1",zFilename,zCkin);
527
- @ %z(zAncLink)[ancestry]</a>
525
+ @ [%z(zAncLink)ancestry</a>]
528526
}
529527
tag_private_status(frid);
530528
@ </td></tr>
531529
}
532530
db_finalize(&q);
533531
--- 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&nbsp;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&nbsp;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 @@
394394
}
395395
}else{
396396
if( zOld && zNew ){
397397
if( fossil_strcmp(zOld, zNew)!=0 ){
398398
@ 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>].
401401
}else if( zOldName!=0 && fossil_strcmp(zName,zOldName)!=0 ){
402402
@ Name change
403403
@ from %z(href("%R/finfo?name=%T",zOldName))%h(zOldName)</a>
404404
@ to %z(href("%R/finfo?name=%T",zName))%h(zName)</a>.
405405
}else{
@@ -409,24 +409,24 @@
409409
}else if( mperm==PERM_LNK ){
410410
@ a symlink with target
411411
}else{
412412
@ a regular file with contents
413413
}
414
- @ %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>.
414
+ @ [%z(href("%R/artifact/%!S",zNew))%S(zNew)</a>].
415415
}
416416
}else if( zOld ){
417417
@ 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>].
419419
}else{
420420
@ 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>].
422422
}
423423
if( diffFlags ){
424424
append_diff(zOld, zNew, diffFlags, pRe);
425425
}else if( zOld && zNew && fossil_strcmp(zOld,zNew)!=0 ){
426426
@ &nbsp;&nbsp;
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>]
428428
}
429429
}
430430
@ </p>
431431
}
432432
@@ -1214,11 +1214,11 @@
12141214
int mPerm = db_column_int(&q, 5);
12151215
const char *zBr = db_column_text(&q, 6);
12161216
int sameFilename = prevName!=0 && fossil_strcmp(zName,prevName)==0;
12171217
if( sameFilename && !showDetail ){
12181218
if( cnt==1 ){
1219
- @ %z(href("%R/whatis/%!S",zUuid))[more...]</a>
1219
+ @ [%z(href("%R/whatis/%!S",zUuid))more...</a>]
12201220
}
12211221
cnt++;
12221222
continue;
12231223
}
12241224
if( !sameFilename ){
@@ -1257,15 +1257,14 @@
12571257
@ on branch %z(href("%R/timeline?r=%T",zBr))%h(zBr)</a>
12581258
}
12591259
@ &mdash; %!W(zCom) (user:
12601260
hyperlink_to_user(zUser,zDate,")");
12611261
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>]
12671266
}
12681267
cnt++;
12691268
if( pDownloadName && blob_size(pDownloadName)==0 ){
12701269
blob_append(pDownloadName, zName, -1);
12711270
}
@@ -1482,17 +1481,17 @@
14821481
g.zTop, P("v1"), P("v2"), zW);
14831482
}
14841483
14851484
if( P("smhdr")!=0 ){
14861485
@ <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>
14891488
}else{
14901489
@ <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>
14921491
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>
14941493
object_description(v2, objdescFlags, 0);
14951494
}
14961495
if( pRe ){
14971496
@ <b>Only differences that match regular expression "%h(zRe)"
14981497
@ are shown.</b>
14991498
--- 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 @ &nbsp;&nbsp;
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 @ &mdash; %!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 @ &nbsp;&nbsp;
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 @ &mdash; %!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 @@
376376
zLogin = P("login");
377377
if( strlen(zLogin)==0 ){
378378
style_header("User Creation Error");
379379
@ <span class="loginError">Empty login not allowed.</span>
380380
@
381
- @ <p><a href="setup_uedit?id=%d(uid)">[Bummer]</a></p>
381
+ @ <p>[<a href="setup_uedit?id=%d(uid)">Bummer</a>]</p>
382382
style_footer();
383383
return;
384384
}
385385
if( isValidPwString(zPw) ){
386386
zPw = sha1_shared_secret(zPw, zLogin, 0);
@@ -391,11 +391,11 @@
391391
if( db_exists("SELECT 1 FROM user WHERE login=%Q AND uid!=%d", zLogin, uid) ){
392392
style_header("User Creation Error");
393393
@ <span class="loginError">Login "%h(zLogin)" is already used by
394394
@ a different user.</span>
395395
@
396
- @ <p><a href="setup_uedit?id=%d(uid)">[Bummer]</a></p>
396
+ @ <p>[<a href="setup_uedit?id=%d(uid)">Bummer</a>]</p>
397397
style_footer();
398398
return;
399399
}
400400
login_verify_csrf_secret();
401401
db_multi_exec(
@@ -436,11 +436,11 @@
436436
if( zErr ){
437437
style_header("User Change Error");
438438
admin_log( "Error updating user '%q': %s'.", zLogin, zErr );
439439
@ <span class="loginError">%s(zErr)</span>
440440
@
441
- @ <p><a href="setup_uedit?id=%d(uid)">[Bummer]</a></p>
441
+ @ <p>[<a href="setup_uedit?id=%d(uid)">Bummer</a>]</p>
442442
style_footer();
443443
return;
444444
}
445445
}
446446
cgi_redirect("setup_ulist");
447447
--- 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 @@
4141
/*
4242
** Generate a hyperlink to a version.
4343
*/
4444
void hyperlink_to_uuid(const char *zUuid){
4545
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>]
4747
}else{
4848
@ <span class="timelineHistDsp">[%S(zUuid)]</span>
4949
}
5050
}
5151
@@ -547,23 +547,23 @@
547547
if( isMergeNew ){
548548
@ (added by merge)
549549
}else{
550550
@ (new file)
551551
}
552
- @ &nbsp; %z(href("%R/artifact/%!S",zNew))[view]</a></li>
552
+ @ &nbsp; [%z(href("%R/artifact/%!S",zNew))view</a>]</li>
553553
}else if( isDel ){
554554
@ <li> %s(zA)%h(zFilename)</a> (deleted)</li>
555555
}else if( fossil_strcmp(zOld,zNew)==0 && zOldName!=0 ){
556556
@ <li> %h(zOldName) &rarr; %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>
558558
}else{
559559
if( zOldName!=0 ){
560560
@ <li>%h(zOldName) &rarr; %s(zA)%h(zFilename)%s(zId)</a> %s(zUnpub)
561561
}else{
562562
@ <li>%s(zA)%h(zFilename)</a>%s(zId) &nbsp; %s(zUnpub)
563563
}
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>
565565
}
566566
fossil_free(zA);
567567
}
568568
db_reset(&fchngQuery);
569569
if( inUl ){
@@ -1397,13 +1397,13 @@
13971397
p = p->u.pTo;
13981398
}
13991399
blob_append(&sql, ")", -1);
14001400
path_reset();
14011401
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);
14031403
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);
14051405
tmFlags |= TIMELINE_DISJOINT;
14061406
db_multi_exec("%s", blob_sql_text(&sql));
14071407
}else if( (p_rid || d_rid) && g.perm.Read ){
14081408
/* If p= or d= is present, ignore all other parameters other than n= */
14091409
char *zUuid;
@@ -1437,12 +1437,11 @@
14371437
blob_appendf(&desc, "%d ancestors", np);
14381438
db_multi_exec("%s", blob_sql_text(&sql));
14391439
}
14401440
if( useDividers ) selectedRid = p_rid;
14411441
}
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);
14441443
if( d_rid ){
14451444
if( p_rid ){
14461445
/* If both p= and d= are set, we don't have the uuid of d yet. */
14471446
zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", d_rid);
14481447
}
@@ -1464,11 +1463,11 @@
14641463
blob_append_sql(&sql, " AND event.objid IN ok");
14651464
db_multi_exec("%s", blob_sql_text(&sql));
14661465
if( useDividers ) selectedRid = f_rid;
14671466
blob_appendf(&desc, "Parents and children of check-in ");
14681467
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);
14701469
tmFlags |= TIMELINE_DISJOINT;
14711470
style_submenu_binary("v","With Files","Without Files",
14721471
zType[0]!='a' && zType[0]!='c');
14731472
if( (tmFlags & TIMELINE_UNHIDE)==0 ){
14741473
timeline_submenu(&url, "Unhide", "unhide", "", 0);
14751474
--- 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 @ &nbsp; %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) &rarr; %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) &rarr; %s(zA)%h(zFilename)%s(zId)</a> %s(zUnpub)
561 }else{
562 @ <li>%s(zA)%h(zFilename)</a>%s(zId) &nbsp; %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 @ &nbsp; [%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) &rarr; %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) &rarr; %s(zA)%h(zFilename)%s(zId)</a> %s(zUnpub)
561 }else{
562 @ <li>%s(zA)%h(zFilename)</a>%s(zId) &nbsp; %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 @@
840840
** Function called to output extra text at the end of each line in
841841
** a wiki history listing.
842842
*/
843843
static void wiki_history_extra(int rid){
844844
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>]
846846
}
847847
}
848848
849849
/*
850850
** WEBPAGE: whistory
851851
--- 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 @@
12231223
** as crossed out if the ticket is closed.
12241224
*/
12251225
if( isClosed ){
12261226
if( g.perm.Hyperlink ){
12271227
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)
12301229
);
1231
- zTerm = "]</span></a>";
1230
+ zTerm = "</span></a>]";
12321231
}else{
1233
- blob_appendf(p->pOut,"<span class=\"wikiTagCancelled\">[");
1234
- zTerm = "]</span>";
1232
+ blob_appendf(p->pOut,"[<span class=\"wikiTagCancelled\">");
1233
+ zTerm = "</span>]";
12351234
}
12361235
}else{
12371236
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>]";
12401239
}else{
12411240
blob_appendf(p->pOut, "[");
12421241
zTerm = "]";
12431242
}
12441243
}
12451244
}else if( !in_this_repo(zTarget) ){
12461245
if( (p->state & (WIKI_LINKSONLY|WIKI_NOBADLINKS))!=0 ){
12471246
zTerm = "";
12481247
}else{
1249
- blob_appendf(p->pOut, "<span class=\"brokenlink\">[");
1250
- zTerm = "]</span>";
1248
+ blob_appendf(p->pOut, "[<span class=\"brokenlink\">");
1249
+ zTerm = "</span>]";
12511250
}
12521251
}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>]";
12551254
}else{
12561255
zTerm = "";
12571256
}
12581257
}else if( strlen(zTarget)>=10 && fossil_isdigit(zTarget[0]) && zTarget[4]=='-'
12591258
&& db_int(0, "SELECT datetime(%Q) NOT NULL", zTarget) ){
@@ -1264,12 +1263,12 @@
12641263
/* Probably an array subscript in code */
12651264
zTerm = "";
12661265
}else if( (p->state & (WIKI_NOBADLINKS|WIKI_LINKSONLY))!=0 ){
12671266
zTerm = "";
12681267
}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>]";
12711270
}
12721271
assert( strlen(zTerm)<nClose );
12731272
sqlite3_snprintf(nClose, zClose, "%s", zTerm);
12741273
}
12751274
@@ -1450,11 +1449,11 @@
14501449
while( fossil_isspace(*zDisplay) ) zDisplay++;
14511450
}
14521451
openHyperlink(p, zTarget, zClose, sizeof(zClose), zOrig);
14531452
if( linksOnly || zClose[0]==0 || p->inVerbatim ){
14541453
if( cS1 ) z[iS1] = cS1;
1455
- if( zClose[0]!=']' ){
1454
+ if( zClose[strlen(zClose) - 1]!=']' ){
14561455
blob_appendf(p->pOut, "[%h]%s", zTarget, zClose);
14571456
}else{
14581457
blob_appendf(p->pOut, "%h%s", zTarget, zClose);
14591458
}
14601459
}else{
14611460
--- 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

Keyboard Shortcuts

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