Fossil SCM

Fix links with truncated symbolic names in /vdiff, as reported in forum post 690436f85e.

danield 2025-09-11 15:43 trunk
Commit 2871b39a62f311a16036febaf2538f3511dd41ff95d8e680bc9ce5fbabcb6a55
1 file changed +10 -8
+10 -8
--- src/info.c
+++ src/info.c
@@ -401,34 +401,36 @@
401401
@ </span></div>
402402
if( pCfg ){
403403
append_diff(zOld, zNew, pCfg);
404404
}
405405
}else{
406
+ const char *zCkin2 =
407
+ mprintf(validate16(zCkin, -1) ? "%!S" : "%T"/*works-like:"%s"*/, zCkin);
406408
if( zOld && zNew ){
407409
if( fossil_strcmp(zOld, zNew)!=0 ){
408410
if( zOldName!=0 && fossil_strcmp(zName,zOldName)!=0 ){
409411
@ Renamed and modified
410
- @ %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zOldName,zOld,zCkin))\
412
+ @ %z(href("%R/finfo?name=%T&m=%!S&ci=%s",zOldName,zOld,zCkin2))\
411413
@ %h(zOldName)</a>
412414
@ %z(href("%R/artifact/%!S",zOld))[%S(zOld)]</a>
413
- @ to %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zName,zNew,zCkin))\
415
+ @ to %z(href("%R/finfo?name=%T&m=%!S&ci=%s",zName,zNew,zCkin2))\
414416
@ %h(zName)</a>
415417
@ %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>.
416418
}else{
417
- @ Modified %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zName,zNew,zCkin))\
419
+ @ Modified %z(href("%R/finfo?name=%T&m=%!S&ci=%s",zName,zNew,zCkin2))\
418420
@ %h(zName)</a>
419421
@ from %z(href("%R/artifact/%!S",zOld))[%S(zOld)]</a>
420422
@ to %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>.
421423
}
422424
}else if( zOldName!=0 && fossil_strcmp(zName,zOldName)!=0 ){
423425
@ Name change
424
- @ from %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zOldName,zOld,zCkin))\
426
+ @ from %z(href("%R/finfo?name=%T&m=%!S&ci=%s",zOldName,zOld,zCkin2))\
425427
@ %h(zOldName)</a>
426
- @ to %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zName,zNew,zCkin))\
428
+ @ to %z(href("%R/finfo?name=%T&m=%!S&ci=%s",zName,zNew,zCkin2))\
427429
@ %h(zName)</a>.
428430
}else{
429
- @ %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zName,zNew,zCkin))\
431
+ @ %z(href("%R/finfo?name=%T&m=%!S&ci=%s",zName,zNew,zCkin2))\
430432
@ %h(zName)</a> became
431433
if( mperm==PERM_EXE ){
432434
@ executable with contents
433435
}else if( mperm==PERM_LNK ){
434436
@ a symlink with target
@@ -436,14 +438,14 @@
436438
@ a regular file with contents
437439
}
438440
@ %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>.
439441
}
440442
}else if( zOld ){
441
- @ Deleted %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zName,zOld,zCkin))\
443
+ @ Deleted %z(href("%R/finfo?name=%T&m=%!S&ci=%s",zName,zOld,zCkin2))\
442444
@ %h(zName)</a> version %z(href("%R/artifact/%!S",zOld))[%S(zOld)]</a>.
443445
}else{
444
- @ Added %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zName,zNew,zCkin))\
446
+ @ Added %z(href("%R/finfo?name=%T&m=%!S&ci=%s",zName,zNew,zCkin2))\
445447
@ %h(zName)</a> version %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>.
446448
}
447449
if( zOld && zNew && fossil_strcmp(zOld,zNew)!=0 ){
448450
if( pCfg ){
449451
@ </span></div>
450452
--- src/info.c
+++ src/info.c
@@ -401,34 +401,36 @@
401 @ </span></div>
402 if( pCfg ){
403 append_diff(zOld, zNew, pCfg);
404 }
405 }else{
 
 
406 if( zOld && zNew ){
407 if( fossil_strcmp(zOld, zNew)!=0 ){
408 if( zOldName!=0 && fossil_strcmp(zName,zOldName)!=0 ){
409 @ Renamed and modified
410 @ %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zOldName,zOld,zCkin))\
411 @ %h(zOldName)</a>
412 @ %z(href("%R/artifact/%!S",zOld))[%S(zOld)]</a>
413 @ to %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zName,zNew,zCkin))\
414 @ %h(zName)</a>
415 @ %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>.
416 }else{
417 @ Modified %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zName,zNew,zCkin))\
418 @ %h(zName)</a>
419 @ from %z(href("%R/artifact/%!S",zOld))[%S(zOld)]</a>
420 @ to %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>.
421 }
422 }else if( zOldName!=0 && fossil_strcmp(zName,zOldName)!=0 ){
423 @ Name change
424 @ from %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zOldName,zOld,zCkin))\
425 @ %h(zOldName)</a>
426 @ to %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zName,zNew,zCkin))\
427 @ %h(zName)</a>.
428 }else{
429 @ %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zName,zNew,zCkin))\
430 @ %h(zName)</a> became
431 if( mperm==PERM_EXE ){
432 @ executable with contents
433 }else if( mperm==PERM_LNK ){
434 @ a symlink with target
@@ -436,14 +438,14 @@
436 @ a regular file with contents
437 }
438 @ %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>.
439 }
440 }else if( zOld ){
441 @ Deleted %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zName,zOld,zCkin))\
442 @ %h(zName)</a> version %z(href("%R/artifact/%!S",zOld))[%S(zOld)]</a>.
443 }else{
444 @ Added %z(href("%R/finfo?name=%T&m=%!S&ci=%!S",zName,zNew,zCkin))\
445 @ %h(zName)</a> version %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>.
446 }
447 if( zOld && zNew && fossil_strcmp(zOld,zNew)!=0 ){
448 if( pCfg ){
449 @ </span></div>
450
--- src/info.c
+++ src/info.c
@@ -401,34 +401,36 @@
401 @ </span></div>
402 if( pCfg ){
403 append_diff(zOld, zNew, pCfg);
404 }
405 }else{
406 const char *zCkin2 =
407 mprintf(validate16(zCkin, -1) ? "%!S" : "%T"/*works-like:"%s"*/, zCkin);
408 if( zOld && zNew ){
409 if( fossil_strcmp(zOld, zNew)!=0 ){
410 if( zOldName!=0 && fossil_strcmp(zName,zOldName)!=0 ){
411 @ Renamed and modified
412 @ %z(href("%R/finfo?name=%T&m=%!S&ci=%s",zOldName,zOld,zCkin2))\
413 @ %h(zOldName)</a>
414 @ %z(href("%R/artifact/%!S",zOld))[%S(zOld)]</a>
415 @ to %z(href("%R/finfo?name=%T&m=%!S&ci=%s",zName,zNew,zCkin2))\
416 @ %h(zName)</a>
417 @ %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>.
418 }else{
419 @ Modified %z(href("%R/finfo?name=%T&m=%!S&ci=%s",zName,zNew,zCkin2))\
420 @ %h(zName)</a>
421 @ from %z(href("%R/artifact/%!S",zOld))[%S(zOld)]</a>
422 @ to %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>.
423 }
424 }else if( zOldName!=0 && fossil_strcmp(zName,zOldName)!=0 ){
425 @ Name change
426 @ from %z(href("%R/finfo?name=%T&m=%!S&ci=%s",zOldName,zOld,zCkin2))\
427 @ %h(zOldName)</a>
428 @ to %z(href("%R/finfo?name=%T&m=%!S&ci=%s",zName,zNew,zCkin2))\
429 @ %h(zName)</a>.
430 }else{
431 @ %z(href("%R/finfo?name=%T&m=%!S&ci=%s",zName,zNew,zCkin2))\
432 @ %h(zName)</a> became
433 if( mperm==PERM_EXE ){
434 @ executable with contents
435 }else if( mperm==PERM_LNK ){
436 @ a symlink with target
@@ -436,14 +438,14 @@
438 @ a regular file with contents
439 }
440 @ %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>.
441 }
442 }else if( zOld ){
443 @ Deleted %z(href("%R/finfo?name=%T&m=%!S&ci=%s",zName,zOld,zCkin2))\
444 @ %h(zName)</a> version %z(href("%R/artifact/%!S",zOld))[%S(zOld)]</a>.
445 }else{
446 @ Added %z(href("%R/finfo?name=%T&m=%!S&ci=%s",zName,zNew,zCkin2))\
447 @ %h(zName)</a> version %z(href("%R/artifact/%!S",zNew))[%S(zNew)]</a>.
448 }
449 if( zOld && zNew && fossil_strcmp(zOld,zNew)!=0 ){
450 if( pCfg ){
451 @ </span></div>
452

Keyboard Shortcuts

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