Fossil SCM

Use the correct filename in hyperlinks in the new /finfo page.

drh 2020-10-17 18:47 trunk
Commit 0af477224547fea832dae6a6c740d89da7cf293288cbebf295107922dd37cdfd
1 file changed +13 -10
+13 -10
--- src/finfo.c
+++ src/finfo.c
@@ -464,15 +464,17 @@
464464
" (SELECT value FROM tagxref WHERE tagid=%d AND tagtype>0"
465465
" AND tagxref.rid=mlink.mid),\n" /* Branchname */
466466
" mlink.mid,\n" /* check-in ID */
467467
" mlink.pfnid,\n" /* Previous filename */
468468
" blob.size,\n" /* File size */
469
- " mlink.fnid\n" /* Current filename */
470
- "FROM clade, mlink, event, blob\n"
469
+ " mlink.fnid,\n" /* Current filename */
470
+ " filename.name\n" /* Current filename */
471
+ "FROM clade, mlink, event, blob, filename\n"
471472
"WHERE mlink.fnid=clade.fnid AND mlink.fid=clade.fid\n"
472473
" AND event.objid=mlink.mid\n"
473
- " AND blob.rid=clade.fid\n",
474
+ " AND blob.rid=clade.fid\n"
475
+ " AND filename.fnid=clade.fnid\n",
474476
TAG_BRANCH
475477
);
476478
if( (zA = P("a"))!=0 ){
477479
blob_append_sql(&sql, " AND event.mtime>=%.16g\n",
478480
symbolic_name_to_mtime(zA,0));
@@ -587,10 +589,11 @@
587589
const char *zBr = db_column_text(&q, 9);
588590
int fmid = db_column_int(&q, 10);
589591
int pfnid = db_column_int(&q, 11);
590592
int szFile = db_column_int(&q, 12);
591593
int fnid = db_column_int(&q, 13);
594
+ const char *zFName = db_column_text(&q,14);
592595
int gidx;
593596
char zTime[10];
594597
int nParent = 0;
595598
int aParent[GR_MAX_RAIL];
596599
@@ -623,11 +626,11 @@
623626
@ <tr class='timelineSelected'>
624627
}else{
625628
@ <tr>
626629
}
627630
@ <td class="timelineTime">\
628
- @ %z(href("%R/file?name=%T&ci=%!S",zFilename,zCkin))%s(zTime)</a></td>
631
+ @ %z(href("%R/file?name=%T&ci=%!S",zFName,zCkin))%s(zTime)</a></td>
629632
@ <td class="timelineGraph"><div id="m%d(gidx)" class="tl-nodemark"></div>
630633
@ </td>
631634
if( zBgClr && zBgClr[0] ){
632635
@ <td class="timeline%s(zStyle)Cell" id='mc%d(gidx)'>
633636
}else{
@@ -660,11 +663,11 @@
660663
cgi_printf("<span class='clutter' id='detail-%d'>",frid);
661664
}
662665
cgi_printf("<span class='timeline%sDetail'>", zStyle);
663666
if( tmFlags & (TIMELINE_COMPACT|TIMELINE_VERBOSE) ) cgi_printf("(");
664667
if( zUuid && (tmFlags & TIMELINE_VERBOSE)==0 ){
665
- @ file:&nbsp;%z(href("%R/file?name=%T&ci=%!S",zFilename,zCkin))\
668
+ @ file:&nbsp;%z(href("%R/file?name=%T&ci=%!S",zFName,zCkin))\
666669
@ [%S(zUuid)]</a>
667670
if( fShowId ){
668671
int srcId = delta_source_rid(frid);
669672
if( srcId>0 ){
670673
@ id:&nbsp;%d(frid)&larr;%d(srcId)
@@ -701,32 +704,32 @@
701704
zNewName = db_text(0,
702705
"SELECT name FROM filename WHERE fnid = "
703706
" (SELECT fnid FROM mlink"
704707
" WHERE mid=%d"
705708
" AND pfnid IN (SELECT fnid FROM filename WHERE name=%Q))",
706
- fmid, zFilename);
709
+ fmid, zFName);
707710
if( zNewName ){
708711
@ <b>Renamed</b> to
709712
@ %z(href("%R/finfo?name=%t",zNewName))%h(zNewName)</a>
710713
fossil_free(zNewName);
711714
}else{
712715
@ <b>Deleted</b>
713716
}
714717
}
715718
if( g.perm.Hyperlink && zUuid ){
716
- const char *z = zFilename;
719
+ const char *z = zFName;
717720
@ <span id='links-%d(frid)'><span class='timelineExtraLinks'>
718721
@ %z(href("%R/annotate?filename=%h&checkin=%s",z,zCkin))
719722
@ [annotate]</a>
720723
@ %z(href("%R/blame?filename=%h&checkin=%s",z,zCkin))
721724
@ [blame]</a>
722725
@ %z(href("%R/timeline?n=all&uf=%!S",zUuid))[check-ins&nbsp;using]</a>
723726
if( fpid>0 ){
724727
@ %z(href("%R/fdiff?v1=%!S&v2=%!S",zPUuid,zUuid))[diff]</a>
725728
}
726
- if( fileedit_is_editable(zFilename) ){
727
- @ %z(href("%R/fileedit?filename=%T&checkin=%!S",zFilename,zCkin))\
729
+ if( fileedit_is_editable(zFName) ){
730
+ @ %z(href("%R/fileedit?filename=%T&checkin=%!S",zFName,zCkin))\
728731
@ [edit]</a>
729732
}
730733
@ </span></span>
731734
}
732735
if( fDebug & FINFO_DEBUG_MLINK ){
@@ -737,11 +740,11 @@
737740
@ parents=%d(aParent[0])
738741
for(ii=1; ii<nParent; ii++){
739742
@ %d(aParent[ii])
740743
}
741744
}
742
- zAncLink = href("%R/finfo?name=%T&from=%!S&debug=1",zFilename,zCkin);
745
+ zAncLink = href("%R/finfo?name=%T&from=%!S&debug=1",zFName,zCkin);
743746
@ %z(zAncLink)[ancestry]</a>
744747
}
745748
tag_private_status(frid);
746749
/* End timelineDetail */
747750
if( tmFlags & TIMELINE_COMPACT ){
748751
--- src/finfo.c
+++ src/finfo.c
@@ -464,15 +464,17 @@
464 " (SELECT value FROM tagxref WHERE tagid=%d AND tagtype>0"
465 " AND tagxref.rid=mlink.mid),\n" /* Branchname */
466 " mlink.mid,\n" /* check-in ID */
467 " mlink.pfnid,\n" /* Previous filename */
468 " blob.size,\n" /* File size */
469 " mlink.fnid\n" /* Current filename */
470 "FROM clade, mlink, event, blob\n"
 
471 "WHERE mlink.fnid=clade.fnid AND mlink.fid=clade.fid\n"
472 " AND event.objid=mlink.mid\n"
473 " AND blob.rid=clade.fid\n",
 
474 TAG_BRANCH
475 );
476 if( (zA = P("a"))!=0 ){
477 blob_append_sql(&sql, " AND event.mtime>=%.16g\n",
478 symbolic_name_to_mtime(zA,0));
@@ -587,10 +589,11 @@
587 const char *zBr = db_column_text(&q, 9);
588 int fmid = db_column_int(&q, 10);
589 int pfnid = db_column_int(&q, 11);
590 int szFile = db_column_int(&q, 12);
591 int fnid = db_column_int(&q, 13);
 
592 int gidx;
593 char zTime[10];
594 int nParent = 0;
595 int aParent[GR_MAX_RAIL];
596
@@ -623,11 +626,11 @@
623 @ <tr class='timelineSelected'>
624 }else{
625 @ <tr>
626 }
627 @ <td class="timelineTime">\
628 @ %z(href("%R/file?name=%T&ci=%!S",zFilename,zCkin))%s(zTime)</a></td>
629 @ <td class="timelineGraph"><div id="m%d(gidx)" class="tl-nodemark"></div>
630 @ </td>
631 if( zBgClr && zBgClr[0] ){
632 @ <td class="timeline%s(zStyle)Cell" id='mc%d(gidx)'>
633 }else{
@@ -660,11 +663,11 @@
660 cgi_printf("<span class='clutter' id='detail-%d'>",frid);
661 }
662 cgi_printf("<span class='timeline%sDetail'>", zStyle);
663 if( tmFlags & (TIMELINE_COMPACT|TIMELINE_VERBOSE) ) cgi_printf("(");
664 if( zUuid && (tmFlags & TIMELINE_VERBOSE)==0 ){
665 @ file:&nbsp;%z(href("%R/file?name=%T&ci=%!S",zFilename,zCkin))\
666 @ [%S(zUuid)]</a>
667 if( fShowId ){
668 int srcId = delta_source_rid(frid);
669 if( srcId>0 ){
670 @ id:&nbsp;%d(frid)&larr;%d(srcId)
@@ -701,32 +704,32 @@
701 zNewName = db_text(0,
702 "SELECT name FROM filename WHERE fnid = "
703 " (SELECT fnid FROM mlink"
704 " WHERE mid=%d"
705 " AND pfnid IN (SELECT fnid FROM filename WHERE name=%Q))",
706 fmid, zFilename);
707 if( zNewName ){
708 @ <b>Renamed</b> to
709 @ %z(href("%R/finfo?name=%t",zNewName))%h(zNewName)</a>
710 fossil_free(zNewName);
711 }else{
712 @ <b>Deleted</b>
713 }
714 }
715 if( g.perm.Hyperlink && zUuid ){
716 const char *z = zFilename;
717 @ <span id='links-%d(frid)'><span class='timelineExtraLinks'>
718 @ %z(href("%R/annotate?filename=%h&checkin=%s",z,zCkin))
719 @ [annotate]</a>
720 @ %z(href("%R/blame?filename=%h&checkin=%s",z,zCkin))
721 @ [blame]</a>
722 @ %z(href("%R/timeline?n=all&uf=%!S",zUuid))[check-ins&nbsp;using]</a>
723 if( fpid>0 ){
724 @ %z(href("%R/fdiff?v1=%!S&v2=%!S",zPUuid,zUuid))[diff]</a>
725 }
726 if( fileedit_is_editable(zFilename) ){
727 @ %z(href("%R/fileedit?filename=%T&checkin=%!S",zFilename,zCkin))\
728 @ [edit]</a>
729 }
730 @ </span></span>
731 }
732 if( fDebug & FINFO_DEBUG_MLINK ){
@@ -737,11 +740,11 @@
737 @ parents=%d(aParent[0])
738 for(ii=1; ii<nParent; ii++){
739 @ %d(aParent[ii])
740 }
741 }
742 zAncLink = href("%R/finfo?name=%T&from=%!S&debug=1",zFilename,zCkin);
743 @ %z(zAncLink)[ancestry]</a>
744 }
745 tag_private_status(frid);
746 /* End timelineDetail */
747 if( tmFlags & TIMELINE_COMPACT ){
748
--- src/finfo.c
+++ src/finfo.c
@@ -464,15 +464,17 @@
464 " (SELECT value FROM tagxref WHERE tagid=%d AND tagtype>0"
465 " AND tagxref.rid=mlink.mid),\n" /* Branchname */
466 " mlink.mid,\n" /* check-in ID */
467 " mlink.pfnid,\n" /* Previous filename */
468 " blob.size,\n" /* File size */
469 " mlink.fnid,\n" /* Current filename */
470 " filename.name\n" /* Current filename */
471 "FROM clade, mlink, event, blob, filename\n"
472 "WHERE mlink.fnid=clade.fnid AND mlink.fid=clade.fid\n"
473 " AND event.objid=mlink.mid\n"
474 " AND blob.rid=clade.fid\n"
475 " AND filename.fnid=clade.fnid\n",
476 TAG_BRANCH
477 );
478 if( (zA = P("a"))!=0 ){
479 blob_append_sql(&sql, " AND event.mtime>=%.16g\n",
480 symbolic_name_to_mtime(zA,0));
@@ -587,10 +589,11 @@
589 const char *zBr = db_column_text(&q, 9);
590 int fmid = db_column_int(&q, 10);
591 int pfnid = db_column_int(&q, 11);
592 int szFile = db_column_int(&q, 12);
593 int fnid = db_column_int(&q, 13);
594 const char *zFName = db_column_text(&q,14);
595 int gidx;
596 char zTime[10];
597 int nParent = 0;
598 int aParent[GR_MAX_RAIL];
599
@@ -623,11 +626,11 @@
626 @ <tr class='timelineSelected'>
627 }else{
628 @ <tr>
629 }
630 @ <td class="timelineTime">\
631 @ %z(href("%R/file?name=%T&ci=%!S",zFName,zCkin))%s(zTime)</a></td>
632 @ <td class="timelineGraph"><div id="m%d(gidx)" class="tl-nodemark"></div>
633 @ </td>
634 if( zBgClr && zBgClr[0] ){
635 @ <td class="timeline%s(zStyle)Cell" id='mc%d(gidx)'>
636 }else{
@@ -660,11 +663,11 @@
663 cgi_printf("<span class='clutter' id='detail-%d'>",frid);
664 }
665 cgi_printf("<span class='timeline%sDetail'>", zStyle);
666 if( tmFlags & (TIMELINE_COMPACT|TIMELINE_VERBOSE) ) cgi_printf("(");
667 if( zUuid && (tmFlags & TIMELINE_VERBOSE)==0 ){
668 @ file:&nbsp;%z(href("%R/file?name=%T&ci=%!S",zFName,zCkin))\
669 @ [%S(zUuid)]</a>
670 if( fShowId ){
671 int srcId = delta_source_rid(frid);
672 if( srcId>0 ){
673 @ id:&nbsp;%d(frid)&larr;%d(srcId)
@@ -701,32 +704,32 @@
704 zNewName = db_text(0,
705 "SELECT name FROM filename WHERE fnid = "
706 " (SELECT fnid FROM mlink"
707 " WHERE mid=%d"
708 " AND pfnid IN (SELECT fnid FROM filename WHERE name=%Q))",
709 fmid, zFName);
710 if( zNewName ){
711 @ <b>Renamed</b> to
712 @ %z(href("%R/finfo?name=%t",zNewName))%h(zNewName)</a>
713 fossil_free(zNewName);
714 }else{
715 @ <b>Deleted</b>
716 }
717 }
718 if( g.perm.Hyperlink && zUuid ){
719 const char *z = zFName;
720 @ <span id='links-%d(frid)'><span class='timelineExtraLinks'>
721 @ %z(href("%R/annotate?filename=%h&checkin=%s",z,zCkin))
722 @ [annotate]</a>
723 @ %z(href("%R/blame?filename=%h&checkin=%s",z,zCkin))
724 @ [blame]</a>
725 @ %z(href("%R/timeline?n=all&uf=%!S",zUuid))[check-ins&nbsp;using]</a>
726 if( fpid>0 ){
727 @ %z(href("%R/fdiff?v1=%!S&v2=%!S",zPUuid,zUuid))[diff]</a>
728 }
729 if( fileedit_is_editable(zFName) ){
730 @ %z(href("%R/fileedit?filename=%T&checkin=%!S",zFName,zCkin))\
731 @ [edit]</a>
732 }
733 @ </span></span>
734 }
735 if( fDebug & FINFO_DEBUG_MLINK ){
@@ -737,11 +740,11 @@
740 @ parents=%d(aParent[0])
741 for(ii=1; ii<nParent; ii++){
742 @ %d(aParent[ii])
743 }
744 }
745 zAncLink = href("%R/finfo?name=%T&from=%!S&debug=1",zFName,zCkin);
746 @ %z(zAncLink)[ancestry]</a>
747 }
748 tag_private_status(frid);
749 /* End timelineDetail */
750 if( tmFlags & TIMELINE_COMPACT ){
751

Keyboard Shortcuts

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