Index: src/db.c ================================================================== --- src/db.c +++ src/db.c @@ -1778,10 +1778,11 @@ { "gdiff-command", 0, 16, 0, "gdiff" }, { "gmerge-command",0, 40, 0, "" }, { "https-login", 0, 0, 0, "off" }, { "ignore-glob", 0, 40, 1, "" }, { "empty-dirs", 0, 40, 1, "" }, + { "href-targets", 0, 0, 0, "on" }, { "http-port", 0, 16, 0, "8080" }, { "localauth", 0, 0, 0, "off" }, { "main-branch", 0, 40, 0, "trunk" }, { "manifest", 0, 0, 1, "off" }, { "max-upload", 0, 25, 0, "250000" }, Index: src/diff.c ================================================================== --- src/diff.c +++ src/diff.c @@ -951,10 +951,13 @@ Blob toAnnotate; /* Text of the final (mid) version of the file */ Blob step; /* Text of previous revision */ int rid; /* Artifact ID of the file being annotated */ char *zLabel; /* Label to apply to a line */ Stmt q; /* Query returning all ancestor versions */ + const char *zInfoTarget; /* String for target info window */ + + zInfoTarget = db_get_boolean("href-targets", 1) ? "target='infowindow'" : ""; /* Initialize the annotation */ rid = db_int(0, "SELECT fid FROM mlink WHERE mid=%d AND fnid=%d",mid,fnid); if( rid==0 ){ fossil_panic("file #%d is unchanged in manifest #%d", fnid, mid); @@ -987,12 +990,14 @@ const char *zUuid = db_column_text(&q, 1); const char *zDate = db_column_text(&q, 2); const char *zUser = db_column_text(&q, 3); if( webLabel ){ zLabel = mprintf( - "%.10s %s %9.9s", - g.zTop, zUuid, zUuid, zDate, zUser + "%.10s %s %9.9s", + g.zTop, zUuid, + zInfoTarget, + zUuid, zDate, zUser ); }else{ zLabel = mprintf("%.10s %s %9.9s", zUuid, zDate, zUser); } p->nVers++; Index: src/timeline.c ================================================================== --- src/timeline.c +++ src/timeline.c @@ -202,18 +202,21 @@ GraphContext *pGraph = 0; int prevWasDivider = 0; /* True if previous output row was
*/ int fchngQueryInit = 0; /* True if fchngQuery is initialized */ Stmt fchngQuery; /* Query for file changes on check-ins */ static Stmt qbranch; + const char *zDiffTarget; /* String for the target diff window */ zPrevDate[0] = 0; mxWikiLen = db_get_int("timeline-max-comment", 0); if( db_get_boolean("timeline-block-markup", 0) ){ wikiFlags = WIKI_INLINE; }else{ wikiFlags = WIKI_INLINE | WIKI_NOBLOCK; } + zDiffTarget = db_get_boolean("href-targets", 1) ? + "target=\"diffwindow\"": ""; if( tmFlags & TIMELINE_GRAPH ){ pGraph = graph_init(); /* style is not moved to css, because this is ** a technical div for the timeline graph */ @@ -428,25 +431,25 @@ inUl = 1; } if( isNew ){ @
  • %h(zFilename) (new file)   @ [view]
  • + @ %s(zDiffTarget)>[view] }else if( isDel ){ @
  • %h(zFilename) (deleted)
  • }else if( fossil_strcmp(zOld,zNew)==0 && zOldName!=0 ){ @
  • %h(zOldName) → %h(zFilename) @ [view]
  • + @ %s(zDiffTarget)>[view] }else{ if( zOldName!=0 ){ @
  • %h(zOldName) → %h(zFilename) }else{ @
  • %h(zFilename)   } @ [diff]
  • + @ %s(zDiffTarget)>[diff] } } db_reset(&fchngQuery); if( inUl ){ @