Fossil SCM
Put more long UUID's in hyperlinks, without modifying the visible appearance in the UI.
Commit
b34fda9692ad587a96b922afd90f978b69f2d465
Parent
b37a28228c3788c…
5 files changed
+8
-11
+9
-9
+1
-1
+5
-5
+1
-1
+8
-11
| --- src/browse.c | ||
| +++ src/browse.c | ||
| @@ -85,11 +85,11 @@ | ||
| 85 | 85 | |
| 86 | 86 | for(i=0; zPath[i]; i=j){ |
| 87 | 87 | for(j=i; zPath[j] && zPath[j]!='/'; j++){} |
| 88 | 88 | if( zPath[j] && g.perm.Hyperlink ){ |
| 89 | 89 | if( zCI ){ |
| 90 | - char *zLink = href("%R/%s?ci=%S&name=%#T%s", zURI, zCI, j, zPath,zREx); | |
| 90 | + char *zLink = href("%R/%s?name=%#T%s&ci=%s", zURI, j, zPath, zREx, zCI); | |
| 91 | 91 | blob_appendf(pOut, "%s%z%#h</a>", |
| 92 | 92 | zSep, zLink, j-i, &zPath[i]); |
| 93 | 93 | }else{ |
| 94 | 94 | char *zLink = href("%R/%s?name=%#T%s", zURI, j, zPath, zREx); |
| 95 | 95 | blob_appendf(pOut, "%s%z%#h</a>", |
| @@ -179,18 +179,15 @@ | ||
| 179 | 179 | if( linkTip ){ |
| 180 | 180 | style_submenu_element("Tip", "Tip", "%s", |
| 181 | 181 | url_render(&sURI, "ci", "tip", 0, 0)); |
| 182 | 182 | } |
| 183 | 183 | if( zCI ){ |
| 184 | - char zShort[20]; | |
| 185 | - memcpy(zShort, zUuid, 10); | |
| 186 | - zShort[10] = 0; | |
| 187 | - @ <h2>Files of check-in [%z(href("vinfo?name=%T",zUuid))%s(zShort)</a>] | |
| 184 | + @ <h2>Files of check-in [%z(href("vinfo?name=%s",zUuid))%.10s(zUuid)</a>] | |
| 188 | 185 | @ %s(blob_str(&dirname))</h2> |
| 189 | - zSubdirLink = mprintf("%R/dir?ci=%S&name=%T", zUuid, zPrefix); | |
| 186 | + zSubdirLink = mprintf("%R/dir?name=%T&ci=%s", zPrefix, zUuid); | |
| 190 | 187 | if( nD==0 ){ |
| 191 | - style_submenu_element("File Ages", "File Ages", "%R/fileage?name=%S", | |
| 188 | + style_submenu_element("File Ages", "File Ages", "%R/fileage?name=%s", | |
| 192 | 189 | zUuid); |
| 193 | 190 | } |
| 194 | 191 | }else{ |
| 195 | 192 | @ <h2>The union of all files from all check-ins |
| 196 | 193 | @ %s(blob_str(&dirname))</h2> |
| @@ -490,11 +487,11 @@ | ||
| 490 | 487 | } |
| 491 | 488 | if( zCI ){ |
| 492 | 489 | style_submenu_element("All", "All", "%s", |
| 493 | 490 | url_render(&sURI, "ci", 0, 0, 0)); |
| 494 | 491 | if( nD==0 && !showDirOnly ){ |
| 495 | - style_submenu_element("File Ages", "File Ages", "%R/fileage?name=%S", | |
| 492 | + style_submenu_element("File Ages", "File Ages", "%R/fileage?name=%s", | |
| 496 | 493 | zUuid); |
| 497 | 494 | } |
| 498 | 495 | } |
| 499 | 496 | if( linkTrunk ){ |
| 500 | 497 | style_submenu_element("Trunk", "Trunk", "%s", |
| @@ -574,11 +571,11 @@ | ||
| 574 | 571 | if( zCI ){ |
| 575 | 572 | @ <h2>%d(nFile) %s(zObjType) of check-in |
| 576 | 573 | if( sqlite3_strnicmp(zCI, zUuid, (int)strlen(zCI))!=0 ){ |
| 577 | 574 | @ "%h(zCI)" |
| 578 | 575 | } |
| 579 | - @ [%z(href("vinfo?name=%T",zUuid))%S(zUuid)</a>] %s(blob_str(&dirname))</h2> | |
| 576 | + @ [%z(href("vinfo?name=%s",zUuid))%S(zUuid)</a>] %s(blob_str(&dirname))</h2> | |
| 580 | 577 | }else{ |
| 581 | 578 | int n = db_int(0, "SELECT count(*) FROM plink"); |
| 582 | 579 | @ <h2>%d(nFile) %s(zObjType) from all %d(n) check-ins |
| 583 | 580 | @ %s(blob_str(&dirname))</h2> |
| 584 | 581 | } |
| @@ -617,11 +614,11 @@ | ||
| 617 | 614 | nDir++; |
| 618 | 615 | }else if( !showDirOnly ){ |
| 619 | 616 | const char *zFileClass = fileext_class(p->zName); |
| 620 | 617 | char *zLink; |
| 621 | 618 | if( zCI ){ |
| 622 | - zLink = href("%R/artifact/%S",p->zUuid); | |
| 619 | + zLink = href("%R/artifact/%s",p->zUuid); | |
| 623 | 620 | }else{ |
| 624 | 621 | zLink = href("%R/finfo?name=%T",p->zFullName); |
| 625 | 622 | } |
| 626 | 623 | @ <li class="%z(zFileClass)%s(zLastClass)">%z(zLink)%h(p->zName)</a> |
| 627 | 624 | } |
| @@ -875,14 +872,14 @@ | ||
| 875 | 872 | zAge[0] = 0; |
| 876 | 873 | } |
| 877 | 874 | @ <tr> |
| 878 | 875 | @ <td>%s(zAge) |
| 879 | 876 | @ <td width="25"> |
| 880 | - @ <td>%z(href("%R/artifact/%S?ln", zFUuid))%h(db_column_text(&q, 3))</a> | |
| 877 | + @ <td>%z(href("%R/artifact/%s?ln", zFUuid))%h(db_column_text(&q, 3))</a> | |
| 881 | 878 | @ </tr> |
| 882 | 879 | @ |
| 883 | 880 | } |
| 884 | 881 | @ <tr><td colspan=3><hr></tr> |
| 885 | 882 | @ </table> |
| 886 | 883 | db_finalize(&q); |
| 887 | 884 | style_footer(); |
| 888 | 885 | } |
| 889 | 886 |
| --- src/browse.c | |
| +++ src/browse.c | |
| @@ -85,11 +85,11 @@ | |
| 85 | |
| 86 | for(i=0; zPath[i]; i=j){ |
| 87 | for(j=i; zPath[j] && zPath[j]!='/'; j++){} |
| 88 | if( zPath[j] && g.perm.Hyperlink ){ |
| 89 | if( zCI ){ |
| 90 | char *zLink = href("%R/%s?ci=%S&name=%#T%s", zURI, zCI, j, zPath,zREx); |
| 91 | blob_appendf(pOut, "%s%z%#h</a>", |
| 92 | zSep, zLink, j-i, &zPath[i]); |
| 93 | }else{ |
| 94 | char *zLink = href("%R/%s?name=%#T%s", zURI, j, zPath, zREx); |
| 95 | blob_appendf(pOut, "%s%z%#h</a>", |
| @@ -179,18 +179,15 @@ | |
| 179 | if( linkTip ){ |
| 180 | style_submenu_element("Tip", "Tip", "%s", |
| 181 | url_render(&sURI, "ci", "tip", 0, 0)); |
| 182 | } |
| 183 | if( zCI ){ |
| 184 | char zShort[20]; |
| 185 | memcpy(zShort, zUuid, 10); |
| 186 | zShort[10] = 0; |
| 187 | @ <h2>Files of check-in [%z(href("vinfo?name=%T",zUuid))%s(zShort)</a>] |
| 188 | @ %s(blob_str(&dirname))</h2> |
| 189 | zSubdirLink = mprintf("%R/dir?ci=%S&name=%T", zUuid, zPrefix); |
| 190 | if( nD==0 ){ |
| 191 | style_submenu_element("File Ages", "File Ages", "%R/fileage?name=%S", |
| 192 | zUuid); |
| 193 | } |
| 194 | }else{ |
| 195 | @ <h2>The union of all files from all check-ins |
| 196 | @ %s(blob_str(&dirname))</h2> |
| @@ -490,11 +487,11 @@ | |
| 490 | } |
| 491 | if( zCI ){ |
| 492 | style_submenu_element("All", "All", "%s", |
| 493 | url_render(&sURI, "ci", 0, 0, 0)); |
| 494 | if( nD==0 && !showDirOnly ){ |
| 495 | style_submenu_element("File Ages", "File Ages", "%R/fileage?name=%S", |
| 496 | zUuid); |
| 497 | } |
| 498 | } |
| 499 | if( linkTrunk ){ |
| 500 | style_submenu_element("Trunk", "Trunk", "%s", |
| @@ -574,11 +571,11 @@ | |
| 574 | if( zCI ){ |
| 575 | @ <h2>%d(nFile) %s(zObjType) of check-in |
| 576 | if( sqlite3_strnicmp(zCI, zUuid, (int)strlen(zCI))!=0 ){ |
| 577 | @ "%h(zCI)" |
| 578 | } |
| 579 | @ [%z(href("vinfo?name=%T",zUuid))%S(zUuid)</a>] %s(blob_str(&dirname))</h2> |
| 580 | }else{ |
| 581 | int n = db_int(0, "SELECT count(*) FROM plink"); |
| 582 | @ <h2>%d(nFile) %s(zObjType) from all %d(n) check-ins |
| 583 | @ %s(blob_str(&dirname))</h2> |
| 584 | } |
| @@ -617,11 +614,11 @@ | |
| 617 | nDir++; |
| 618 | }else if( !showDirOnly ){ |
| 619 | const char *zFileClass = fileext_class(p->zName); |
| 620 | char *zLink; |
| 621 | if( zCI ){ |
| 622 | zLink = href("%R/artifact/%S",p->zUuid); |
| 623 | }else{ |
| 624 | zLink = href("%R/finfo?name=%T",p->zFullName); |
| 625 | } |
| 626 | @ <li class="%z(zFileClass)%s(zLastClass)">%z(zLink)%h(p->zName)</a> |
| 627 | } |
| @@ -875,14 +872,14 @@ | |
| 875 | zAge[0] = 0; |
| 876 | } |
| 877 | @ <tr> |
| 878 | @ <td>%s(zAge) |
| 879 | @ <td width="25"> |
| 880 | @ <td>%z(href("%R/artifact/%S?ln", zFUuid))%h(db_column_text(&q, 3))</a> |
| 881 | @ </tr> |
| 882 | @ |
| 883 | } |
| 884 | @ <tr><td colspan=3><hr></tr> |
| 885 | @ </table> |
| 886 | db_finalize(&q); |
| 887 | style_footer(); |
| 888 | } |
| 889 |
| --- src/browse.c | |
| +++ src/browse.c | |
| @@ -85,11 +85,11 @@ | |
| 85 | |
| 86 | for(i=0; zPath[i]; i=j){ |
| 87 | for(j=i; zPath[j] && zPath[j]!='/'; j++){} |
| 88 | if( zPath[j] && g.perm.Hyperlink ){ |
| 89 | if( zCI ){ |
| 90 | char *zLink = href("%R/%s?name=%#T%s&ci=%s", zURI, j, zPath, zREx, zCI); |
| 91 | blob_appendf(pOut, "%s%z%#h</a>", |
| 92 | zSep, zLink, j-i, &zPath[i]); |
| 93 | }else{ |
| 94 | char *zLink = href("%R/%s?name=%#T%s", zURI, j, zPath, zREx); |
| 95 | blob_appendf(pOut, "%s%z%#h</a>", |
| @@ -179,18 +179,15 @@ | |
| 179 | if( linkTip ){ |
| 180 | style_submenu_element("Tip", "Tip", "%s", |
| 181 | url_render(&sURI, "ci", "tip", 0, 0)); |
| 182 | } |
| 183 | if( zCI ){ |
| 184 | @ <h2>Files of check-in [%z(href("vinfo?name=%s",zUuid))%.10s(zUuid)</a>] |
| 185 | @ %s(blob_str(&dirname))</h2> |
| 186 | zSubdirLink = mprintf("%R/dir?name=%T&ci=%s", zPrefix, zUuid); |
| 187 | if( nD==0 ){ |
| 188 | style_submenu_element("File Ages", "File Ages", "%R/fileage?name=%s", |
| 189 | zUuid); |
| 190 | } |
| 191 | }else{ |
| 192 | @ <h2>The union of all files from all check-ins |
| 193 | @ %s(blob_str(&dirname))</h2> |
| @@ -490,11 +487,11 @@ | |
| 487 | } |
| 488 | if( zCI ){ |
| 489 | style_submenu_element("All", "All", "%s", |
| 490 | url_render(&sURI, "ci", 0, 0, 0)); |
| 491 | if( nD==0 && !showDirOnly ){ |
| 492 | style_submenu_element("File Ages", "File Ages", "%R/fileage?name=%s", |
| 493 | zUuid); |
| 494 | } |
| 495 | } |
| 496 | if( linkTrunk ){ |
| 497 | style_submenu_element("Trunk", "Trunk", "%s", |
| @@ -574,11 +571,11 @@ | |
| 571 | if( zCI ){ |
| 572 | @ <h2>%d(nFile) %s(zObjType) of check-in |
| 573 | if( sqlite3_strnicmp(zCI, zUuid, (int)strlen(zCI))!=0 ){ |
| 574 | @ "%h(zCI)" |
| 575 | } |
| 576 | @ [%z(href("vinfo?name=%s",zUuid))%S(zUuid)</a>] %s(blob_str(&dirname))</h2> |
| 577 | }else{ |
| 578 | int n = db_int(0, "SELECT count(*) FROM plink"); |
| 579 | @ <h2>%d(nFile) %s(zObjType) from all %d(n) check-ins |
| 580 | @ %s(blob_str(&dirname))</h2> |
| 581 | } |
| @@ -617,11 +614,11 @@ | |
| 614 | nDir++; |
| 615 | }else if( !showDirOnly ){ |
| 616 | const char *zFileClass = fileext_class(p->zName); |
| 617 | char *zLink; |
| 618 | if( zCI ){ |
| 619 | zLink = href("%R/artifact/%s",p->zUuid); |
| 620 | }else{ |
| 621 | zLink = href("%R/finfo?name=%T",p->zFullName); |
| 622 | } |
| 623 | @ <li class="%z(zFileClass)%s(zLastClass)">%z(zLink)%h(p->zName)</a> |
| 624 | } |
| @@ -875,14 +872,14 @@ | |
| 872 | zAge[0] = 0; |
| 873 | } |
| 874 | @ <tr> |
| 875 | @ <td>%s(zAge) |
| 876 | @ <td width="25"> |
| 877 | @ <td>%z(href("%R/artifact/%s?ln", zFUuid))%h(db_column_text(&q, 3))</a> |
| 878 | @ </tr> |
| 879 | @ |
| 880 | } |
| 881 | @ <tr><td colspan=3><hr></tr> |
| 882 | @ </table> |
| 883 | db_finalize(&q); |
| 884 | style_footer(); |
| 885 | } |
| 886 |
+9
-9
| --- src/diff.c | ||
| +++ src/diff.c | ||
| @@ -2307,17 +2307,17 @@ | ||
| 2307 | 2307 | clr = gradient_color(clr1, clr2, ann.nVers-1, i); |
| 2308 | 2308 | ann.aVers[i].zBgColor = mprintf("#%06x", clr); |
| 2309 | 2309 | } |
| 2310 | 2310 | |
| 2311 | 2311 | if( showLog ){ |
| 2312 | - char *zLink = href("%R/finfo?name=%t&ci=%S",zFilename,zCI); | |
| 2312 | + char *zLink = href("%R/finfo?name=%t&ci=%s",zFilename,zCI); | |
| 2313 | 2313 | @ <h2>Ancestors of %z(zLink)%h(zFilename)</a> analyzed:</h2> |
| 2314 | 2314 | @ <ol> |
| 2315 | 2315 | for(p=ann.aVers, i=0; i<ann.nVers; i++, p++){ |
| 2316 | 2316 | @ <li><span style='background-color:%s(p->zBgColor);'>%s(p->zDate) |
| 2317 | - @ check-in %z(href("%R/info/%S",p->zMUuid))%.10s(p->zMUuid)</a> | |
| 2318 | - @ artifact %z(href("%R/artifact/%S",p->zFUuid))%.10s(p->zFUuid)</a> | |
| 2317 | + @ check-in %z(href("%R/info/%s",p->zMUuid))%.10s(p->zMUuid)</a> | |
| 2318 | + @ artifact %z(href("%R/artifact/%s",p->zFUuid))%.10s(p->zFUuid)</a> | |
| 2319 | 2319 | @ </span> |
| 2320 | 2320 | #if 0 |
| 2321 | 2321 | if( i>0 ){ |
| 2322 | 2322 | char *zLink = xhref("target='infowindow'", |
| 2323 | 2323 | "%R/fdiff?v1=%S&v2=%S&sbs=1", |
| @@ -2335,17 +2335,17 @@ | ||
| 2335 | 2335 | @ </ol> |
| 2336 | 2336 | @ <hr> |
| 2337 | 2337 | } |
| 2338 | 2338 | if( !ann.bLimit ){ |
| 2339 | 2339 | @ <h2>Origin for each line in |
| 2340 | - @ %z(href("%R/finfo?name=%h&ci=%S", zFilename, zCI))%h(zFilename)</a> | |
| 2341 | - @ from check-in %z(href("%R/info/%S",zCI))%S(zCI)</a>:</h2> | |
| 2340 | + @ %z(href("%R/finfo?name=%h&ci=%s", zFilename, zCI))%h(zFilename)</a> | |
| 2341 | + @ from check-in %z(href("%R/info/%s",zCI))%S(zCI)</a>:</h2> | |
| 2342 | 2342 | iLimit = ann.nVers+10; |
| 2343 | 2343 | }else{ |
| 2344 | 2344 | @ <h2>Lines added by the %d(iLimit) most recent ancestors of |
| 2345 | - @ %z(href("%R/finfo?name=%h&ci=%S", zFilename, zCI))%h(zFilename)</a> | |
| 2346 | - @ from check-in %z(href("%R/info/%S",zCI))%S(zCI)</a>:</h2> | |
| 2345 | + @ %z(href("%R/finfo?name=%h&ci=%s", zFilename, zCI))%h(zFilename)</a> | |
| 2346 | + @ from check-in %z(href("%R/info/%s",zCI))%S(zCI)</a>:</h2> | |
| 2347 | 2347 | } |
| 2348 | 2348 | @ <pre> |
| 2349 | 2349 | for(i=0; i<ann.nOrig; i++){ |
| 2350 | 2350 | int iVers = ann.aOrig[i].iVers; |
| 2351 | 2351 | char *z = (char*)ann.aOrig[i].z; |
| @@ -2355,11 +2355,11 @@ | ||
| 2355 | 2355 | if( iLimit>ann.nVers && iVers<0 ) iVers = ann.nVers-1; |
| 2356 | 2356 | |
| 2357 | 2357 | if( bBlame ){ |
| 2358 | 2358 | if( iVers>=0 ){ |
| 2359 | 2359 | struct AnnVers *p = ann.aVers+iVers; |
| 2360 | - char *zLink = xhref("target='infowindow'", "%R/info/%S", p->zMUuid); | |
| 2360 | + char *zLink = xhref("target='infowindow'", "%R/info/%s", p->zMUuid); | |
| 2361 | 2361 | sqlite3_snprintf(sizeof(zPrefix), zPrefix, |
| 2362 | 2362 | "<span style='background-color:%s'>" |
| 2363 | 2363 | "%s%.10s</a> %s</span> %13.13s:", |
| 2364 | 2364 | p->zBgColor, zLink, p->zMUuid, p->zDate, p->zUser); |
| 2365 | 2365 | fossil_free(zLink); |
| @@ -2367,11 +2367,11 @@ | ||
| 2367 | 2367 | sqlite3_snprintf(sizeof(zPrefix), zPrefix, "%36s", ""); |
| 2368 | 2368 | } |
| 2369 | 2369 | }else{ |
| 2370 | 2370 | if( iVers>=0 ){ |
| 2371 | 2371 | struct AnnVers *p = ann.aVers+iVers; |
| 2372 | - char *zLink = xhref("target='infowindow'", "%R/info/%S", p->zMUuid); | |
| 2372 | + char *zLink = xhref("target='infowindow'", "%R/info/%s", p->zMUuid); | |
| 2373 | 2373 | sqlite3_snprintf(sizeof(zPrefix), zPrefix, |
| 2374 | 2374 | "<span style='background-color:%s'>" |
| 2375 | 2375 | "%s%.10s</a> %s</span> %4d:", |
| 2376 | 2376 | p->zBgColor, zLink, p->zMUuid, p->zDate, i+1); |
| 2377 | 2377 | fossil_free(zLink); |
| 2378 | 2378 |
| --- src/diff.c | |
| +++ src/diff.c | |
| @@ -2307,17 +2307,17 @@ | |
| 2307 | clr = gradient_color(clr1, clr2, ann.nVers-1, i); |
| 2308 | ann.aVers[i].zBgColor = mprintf("#%06x", clr); |
| 2309 | } |
| 2310 | |
| 2311 | if( showLog ){ |
| 2312 | char *zLink = href("%R/finfo?name=%t&ci=%S",zFilename,zCI); |
| 2313 | @ <h2>Ancestors of %z(zLink)%h(zFilename)</a> analyzed:</h2> |
| 2314 | @ <ol> |
| 2315 | for(p=ann.aVers, i=0; i<ann.nVers; i++, p++){ |
| 2316 | @ <li><span style='background-color:%s(p->zBgColor);'>%s(p->zDate) |
| 2317 | @ check-in %z(href("%R/info/%S",p->zMUuid))%.10s(p->zMUuid)</a> |
| 2318 | @ artifact %z(href("%R/artifact/%S",p->zFUuid))%.10s(p->zFUuid)</a> |
| 2319 | @ </span> |
| 2320 | #if 0 |
| 2321 | if( i>0 ){ |
| 2322 | char *zLink = xhref("target='infowindow'", |
| 2323 | "%R/fdiff?v1=%S&v2=%S&sbs=1", |
| @@ -2335,17 +2335,17 @@ | |
| 2335 | @ </ol> |
| 2336 | @ <hr> |
| 2337 | } |
| 2338 | if( !ann.bLimit ){ |
| 2339 | @ <h2>Origin for each line in |
| 2340 | @ %z(href("%R/finfo?name=%h&ci=%S", zFilename, zCI))%h(zFilename)</a> |
| 2341 | @ from check-in %z(href("%R/info/%S",zCI))%S(zCI)</a>:</h2> |
| 2342 | iLimit = ann.nVers+10; |
| 2343 | }else{ |
| 2344 | @ <h2>Lines added by the %d(iLimit) most recent ancestors of |
| 2345 | @ %z(href("%R/finfo?name=%h&ci=%S", zFilename, zCI))%h(zFilename)</a> |
| 2346 | @ from check-in %z(href("%R/info/%S",zCI))%S(zCI)</a>:</h2> |
| 2347 | } |
| 2348 | @ <pre> |
| 2349 | for(i=0; i<ann.nOrig; i++){ |
| 2350 | int iVers = ann.aOrig[i].iVers; |
| 2351 | char *z = (char*)ann.aOrig[i].z; |
| @@ -2355,11 +2355,11 @@ | |
| 2355 | if( iLimit>ann.nVers && iVers<0 ) iVers = ann.nVers-1; |
| 2356 | |
| 2357 | if( bBlame ){ |
| 2358 | if( iVers>=0 ){ |
| 2359 | struct AnnVers *p = ann.aVers+iVers; |
| 2360 | char *zLink = xhref("target='infowindow'", "%R/info/%S", p->zMUuid); |
| 2361 | sqlite3_snprintf(sizeof(zPrefix), zPrefix, |
| 2362 | "<span style='background-color:%s'>" |
| 2363 | "%s%.10s</a> %s</span> %13.13s:", |
| 2364 | p->zBgColor, zLink, p->zMUuid, p->zDate, p->zUser); |
| 2365 | fossil_free(zLink); |
| @@ -2367,11 +2367,11 @@ | |
| 2367 | sqlite3_snprintf(sizeof(zPrefix), zPrefix, "%36s", ""); |
| 2368 | } |
| 2369 | }else{ |
| 2370 | if( iVers>=0 ){ |
| 2371 | struct AnnVers *p = ann.aVers+iVers; |
| 2372 | char *zLink = xhref("target='infowindow'", "%R/info/%S", p->zMUuid); |
| 2373 | sqlite3_snprintf(sizeof(zPrefix), zPrefix, |
| 2374 | "<span style='background-color:%s'>" |
| 2375 | "%s%.10s</a> %s</span> %4d:", |
| 2376 | p->zBgColor, zLink, p->zMUuid, p->zDate, i+1); |
| 2377 | fossil_free(zLink); |
| 2378 |
| --- src/diff.c | |
| +++ src/diff.c | |
| @@ -2307,17 +2307,17 @@ | |
| 2307 | clr = gradient_color(clr1, clr2, ann.nVers-1, i); |
| 2308 | ann.aVers[i].zBgColor = mprintf("#%06x", clr); |
| 2309 | } |
| 2310 | |
| 2311 | if( showLog ){ |
| 2312 | char *zLink = href("%R/finfo?name=%t&ci=%s",zFilename,zCI); |
| 2313 | @ <h2>Ancestors of %z(zLink)%h(zFilename)</a> analyzed:</h2> |
| 2314 | @ <ol> |
| 2315 | for(p=ann.aVers, i=0; i<ann.nVers; i++, p++){ |
| 2316 | @ <li><span style='background-color:%s(p->zBgColor);'>%s(p->zDate) |
| 2317 | @ check-in %z(href("%R/info/%s",p->zMUuid))%.10s(p->zMUuid)</a> |
| 2318 | @ artifact %z(href("%R/artifact/%s",p->zFUuid))%.10s(p->zFUuid)</a> |
| 2319 | @ </span> |
| 2320 | #if 0 |
| 2321 | if( i>0 ){ |
| 2322 | char *zLink = xhref("target='infowindow'", |
| 2323 | "%R/fdiff?v1=%S&v2=%S&sbs=1", |
| @@ -2335,17 +2335,17 @@ | |
| 2335 | @ </ol> |
| 2336 | @ <hr> |
| 2337 | } |
| 2338 | if( !ann.bLimit ){ |
| 2339 | @ <h2>Origin for each line in |
| 2340 | @ %z(href("%R/finfo?name=%h&ci=%s", zFilename, zCI))%h(zFilename)</a> |
| 2341 | @ from check-in %z(href("%R/info/%s",zCI))%S(zCI)</a>:</h2> |
| 2342 | iLimit = ann.nVers+10; |
| 2343 | }else{ |
| 2344 | @ <h2>Lines added by the %d(iLimit) most recent ancestors of |
| 2345 | @ %z(href("%R/finfo?name=%h&ci=%s", zFilename, zCI))%h(zFilename)</a> |
| 2346 | @ from check-in %z(href("%R/info/%s",zCI))%S(zCI)</a>:</h2> |
| 2347 | } |
| 2348 | @ <pre> |
| 2349 | for(i=0; i<ann.nOrig; i++){ |
| 2350 | int iVers = ann.aOrig[i].iVers; |
| 2351 | char *z = (char*)ann.aOrig[i].z; |
| @@ -2355,11 +2355,11 @@ | |
| 2355 | if( iLimit>ann.nVers && iVers<0 ) iVers = ann.nVers-1; |
| 2356 | |
| 2357 | if( bBlame ){ |
| 2358 | if( iVers>=0 ){ |
| 2359 | struct AnnVers *p = ann.aVers+iVers; |
| 2360 | char *zLink = xhref("target='infowindow'", "%R/info/%s", p->zMUuid); |
| 2361 | sqlite3_snprintf(sizeof(zPrefix), zPrefix, |
| 2362 | "<span style='background-color:%s'>" |
| 2363 | "%s%.10s</a> %s</span> %13.13s:", |
| 2364 | p->zBgColor, zLink, p->zMUuid, p->zDate, p->zUser); |
| 2365 | fossil_free(zLink); |
| @@ -2367,11 +2367,11 @@ | |
| 2367 | sqlite3_snprintf(sizeof(zPrefix), zPrefix, "%36s", ""); |
| 2368 | } |
| 2369 | }else{ |
| 2370 | if( iVers>=0 ){ |
| 2371 | struct AnnVers *p = ann.aVers+iVers; |
| 2372 | char *zLink = xhref("target='infowindow'", "%R/info/%s", p->zMUuid); |
| 2373 | sqlite3_snprintf(sizeof(zPrefix), zPrefix, |
| 2374 | "<span style='background-color:%s'>" |
| 2375 | "%s%.10s</a> %s</span> %4d:", |
| 2376 | p->zBgColor, zLink, p->zMUuid, p->zDate, i+1); |
| 2377 | fossil_free(zLink); |
| 2378 |
+1
-1
| --- src/info.c | ||
| +++ src/info.c | ||
| @@ -1189,11 +1189,11 @@ | ||
| 1189 | 1189 | } |
| 1190 | 1190 | @ - %!w(zCom) (user: |
| 1191 | 1191 | hyperlink_to_user(zUser,zDate,")"); |
| 1192 | 1192 | if( g.perm.Hyperlink ){ |
| 1193 | 1193 | @ %z(href("%R/finfo?name=%T&ci=%s",zName,zVers))[ancestry]</a> |
| 1194 | - @ %z(href("%R/annotate?checkin=%s&filename=%T",zVers,zName)) | |
| 1194 | + @ %z(href("%R/annotate?filename=%T&checkin=%s",zName,zVers)) | |
| 1195 | 1195 | @ [annotate]</a> |
| 1196 | 1196 | @ %z(href("%R/blame?filename=%T&checkin=%s",zName,zVers)) |
| 1197 | 1197 | @ [blame]</a> |
| 1198 | 1198 | } |
| 1199 | 1199 | cnt++; |
| 1200 | 1200 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -1189,11 +1189,11 @@ | |
| 1189 | } |
| 1190 | @ - %!w(zCom) (user: |
| 1191 | hyperlink_to_user(zUser,zDate,")"); |
| 1192 | if( g.perm.Hyperlink ){ |
| 1193 | @ %z(href("%R/finfo?name=%T&ci=%s",zName,zVers))[ancestry]</a> |
| 1194 | @ %z(href("%R/annotate?checkin=%s&filename=%T",zVers,zName)) |
| 1195 | @ [annotate]</a> |
| 1196 | @ %z(href("%R/blame?filename=%T&checkin=%s",zName,zVers)) |
| 1197 | @ [blame]</a> |
| 1198 | } |
| 1199 | cnt++; |
| 1200 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -1189,11 +1189,11 @@ | |
| 1189 | } |
| 1190 | @ - %!w(zCom) (user: |
| 1191 | hyperlink_to_user(zUser,zDate,")"); |
| 1192 | if( g.perm.Hyperlink ){ |
| 1193 | @ %z(href("%R/finfo?name=%T&ci=%s",zName,zVers))[ancestry]</a> |
| 1194 | @ %z(href("%R/annotate?filename=%T&checkin=%s",zName,zVers)) |
| 1195 | @ [annotate]</a> |
| 1196 | @ %z(href("%R/blame?filename=%T&checkin=%s",zName,zVers)) |
| 1197 | @ [blame]</a> |
| 1198 | } |
| 1199 | cnt++; |
| 1200 |
+5
-5
| --- src/tkt.c | ||
| +++ src/tkt.c | ||
| @@ -446,14 +446,14 @@ | ||
| 446 | 446 | style_submenu_element("Attach", "Add An Attachment", |
| 447 | 447 | "%s/attachadd?tkt=%T&from=%s/tktview/%t", |
| 448 | 448 | g.zTop, zUuid, g.zTop, zUuid); |
| 449 | 449 | } |
| 450 | 450 | if( P("plaintext") ){ |
| 451 | - style_submenu_element("Formatted", "Formatted", "%R/tktview/%S", zUuid); | |
| 451 | + style_submenu_element("Formatted", "Formatted", "%R/tktview/%s", zUuid); | |
| 452 | 452 | }else{ |
| 453 | 453 | style_submenu_element("Plaintext", "Plaintext", |
| 454 | - "%R/tktview/%S?plaintext", zUuid); | |
| 454 | + "%R/tktview/%s?plaintext", zUuid); | |
| 455 | 455 | } |
| 456 | 456 | style_header("View Ticket"); |
| 457 | 457 | if( g.thTrace ) Th_Trace("BEGIN_TKTVIEW<br />\n", -1); |
| 458 | 458 | ticket_init(); |
| 459 | 459 | initializeVariablesFromCGI(); |
| @@ -895,14 +895,14 @@ | ||
| 895 | 895 | "%s/tkttimeline?name=%s&y=ci", g.zTop, zUuid); |
| 896 | 896 | style_submenu_element("Timeline", "Timeline", |
| 897 | 897 | "%s/tkttimeline?name=%s", g.zTop, zUuid); |
| 898 | 898 | if( P("plaintext")!=0 ){ |
| 899 | 899 | style_submenu_element("Formatted", "Formatted", |
| 900 | - "%R/tkthistory/%S", zUuid); | |
| 900 | + "%R/tkthistory/%s", zUuid); | |
| 901 | 901 | }else{ |
| 902 | 902 | style_submenu_element("Plaintext", "Plaintext", |
| 903 | - "%R/tkthistory/%S?plaintext", zUuid); | |
| 903 | + "%R/tkthistory/%s?plaintext", zUuid); | |
| 904 | 904 | } |
| 905 | 905 | style_header(zTitle); |
| 906 | 906 | free(zTitle); |
| 907 | 907 | |
| 908 | 908 | tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname GLOB 'tkt-%q*'",zUuid); |
| @@ -944,11 +944,11 @@ | ||
| 944 | 944 | @ |
| 945 | 945 | @ <li><p>Delete attachment "%h(zFile)" |
| 946 | 946 | }else{ |
| 947 | 947 | @ |
| 948 | 948 | @ <li><p>Add attachment |
| 949 | - @ "%z(href("%R/artifact/%S",zSrc))%s(zFile)</a>" | |
| 949 | + @ "%z(href("%R/artifact/%s",zSrc))%s(zFile)</a>" | |
| 950 | 950 | } |
| 951 | 951 | @ [%z(href("%R/artifact/%T",zChngUuid))%s(zShort)</a>] |
| 952 | 952 | @ (rid %d(rid)) by |
| 953 | 953 | hyperlink_to_user(zUser,zDate," on"); |
| 954 | 954 | hyperlink_to_date(zDate, ".</p>"); |
| 955 | 955 |
| --- src/tkt.c | |
| +++ src/tkt.c | |
| @@ -446,14 +446,14 @@ | |
| 446 | style_submenu_element("Attach", "Add An Attachment", |
| 447 | "%s/attachadd?tkt=%T&from=%s/tktview/%t", |
| 448 | g.zTop, zUuid, g.zTop, zUuid); |
| 449 | } |
| 450 | if( P("plaintext") ){ |
| 451 | style_submenu_element("Formatted", "Formatted", "%R/tktview/%S", zUuid); |
| 452 | }else{ |
| 453 | style_submenu_element("Plaintext", "Plaintext", |
| 454 | "%R/tktview/%S?plaintext", zUuid); |
| 455 | } |
| 456 | style_header("View Ticket"); |
| 457 | if( g.thTrace ) Th_Trace("BEGIN_TKTVIEW<br />\n", -1); |
| 458 | ticket_init(); |
| 459 | initializeVariablesFromCGI(); |
| @@ -895,14 +895,14 @@ | |
| 895 | "%s/tkttimeline?name=%s&y=ci", g.zTop, zUuid); |
| 896 | style_submenu_element("Timeline", "Timeline", |
| 897 | "%s/tkttimeline?name=%s", g.zTop, zUuid); |
| 898 | if( P("plaintext")!=0 ){ |
| 899 | style_submenu_element("Formatted", "Formatted", |
| 900 | "%R/tkthistory/%S", zUuid); |
| 901 | }else{ |
| 902 | style_submenu_element("Plaintext", "Plaintext", |
| 903 | "%R/tkthistory/%S?plaintext", zUuid); |
| 904 | } |
| 905 | style_header(zTitle); |
| 906 | free(zTitle); |
| 907 | |
| 908 | tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname GLOB 'tkt-%q*'",zUuid); |
| @@ -944,11 +944,11 @@ | |
| 944 | @ |
| 945 | @ <li><p>Delete attachment "%h(zFile)" |
| 946 | }else{ |
| 947 | @ |
| 948 | @ <li><p>Add attachment |
| 949 | @ "%z(href("%R/artifact/%S",zSrc))%s(zFile)</a>" |
| 950 | } |
| 951 | @ [%z(href("%R/artifact/%T",zChngUuid))%s(zShort)</a>] |
| 952 | @ (rid %d(rid)) by |
| 953 | hyperlink_to_user(zUser,zDate," on"); |
| 954 | hyperlink_to_date(zDate, ".</p>"); |
| 955 |
| --- src/tkt.c | |
| +++ src/tkt.c | |
| @@ -446,14 +446,14 @@ | |
| 446 | style_submenu_element("Attach", "Add An Attachment", |
| 447 | "%s/attachadd?tkt=%T&from=%s/tktview/%t", |
| 448 | g.zTop, zUuid, g.zTop, zUuid); |
| 449 | } |
| 450 | if( P("plaintext") ){ |
| 451 | style_submenu_element("Formatted", "Formatted", "%R/tktview/%s", zUuid); |
| 452 | }else{ |
| 453 | style_submenu_element("Plaintext", "Plaintext", |
| 454 | "%R/tktview/%s?plaintext", zUuid); |
| 455 | } |
| 456 | style_header("View Ticket"); |
| 457 | if( g.thTrace ) Th_Trace("BEGIN_TKTVIEW<br />\n", -1); |
| 458 | ticket_init(); |
| 459 | initializeVariablesFromCGI(); |
| @@ -895,14 +895,14 @@ | |
| 895 | "%s/tkttimeline?name=%s&y=ci", g.zTop, zUuid); |
| 896 | style_submenu_element("Timeline", "Timeline", |
| 897 | "%s/tkttimeline?name=%s", g.zTop, zUuid); |
| 898 | if( P("plaintext")!=0 ){ |
| 899 | style_submenu_element("Formatted", "Formatted", |
| 900 | "%R/tkthistory/%s", zUuid); |
| 901 | }else{ |
| 902 | style_submenu_element("Plaintext", "Plaintext", |
| 903 | "%R/tkthistory/%s?plaintext", zUuid); |
| 904 | } |
| 905 | style_header(zTitle); |
| 906 | free(zTitle); |
| 907 | |
| 908 | tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname GLOB 'tkt-%q*'",zUuid); |
| @@ -944,11 +944,11 @@ | |
| 944 | @ |
| 945 | @ <li><p>Delete attachment "%h(zFile)" |
| 946 | }else{ |
| 947 | @ |
| 948 | @ <li><p>Add attachment |
| 949 | @ "%z(href("%R/artifact/%s",zSrc))%s(zFile)</a>" |
| 950 | } |
| 951 | @ [%z(href("%R/artifact/%T",zChngUuid))%s(zShort)</a>] |
| 952 | @ (rid %d(rid)) by |
| 953 | hyperlink_to_user(zUser,zDate," on"); |
| 954 | hyperlink_to_date(zDate, ".</p>"); |
| 955 |
+1
-1
| --- src/wiki.c | ||
| +++ src/wiki.c | ||
| @@ -241,11 +241,11 @@ | ||
| 241 | 241 | if( rid ){ |
| 242 | 242 | style_submenu_element("Diff", "Last change", |
| 243 | 243 | "%R/wdiff?name=%T&a=%d", zPageName, rid); |
| 244 | 244 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid); |
| 245 | 245 | style_submenu_element("Details", "Details", |
| 246 | - "%R/info/%S", zUuid); | |
| 246 | + "%R/info/%s", zUuid); | |
| 247 | 247 | } |
| 248 | 248 | if( (rid && g.perm.WrWiki) || (!rid && g.perm.NewWiki) ){ |
| 249 | 249 | if( db_get_boolean("wysiwyg-wiki", 0) ){ |
| 250 | 250 | style_submenu_element("Edit", "Edit Wiki Page", |
| 251 | 251 | "%s/wikiedit?name=%T&wysiwyg=1", |
| 252 | 252 |
| --- src/wiki.c | |
| +++ src/wiki.c | |
| @@ -241,11 +241,11 @@ | |
| 241 | if( rid ){ |
| 242 | style_submenu_element("Diff", "Last change", |
| 243 | "%R/wdiff?name=%T&a=%d", zPageName, rid); |
| 244 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid); |
| 245 | style_submenu_element("Details", "Details", |
| 246 | "%R/info/%S", zUuid); |
| 247 | } |
| 248 | if( (rid && g.perm.WrWiki) || (!rid && g.perm.NewWiki) ){ |
| 249 | if( db_get_boolean("wysiwyg-wiki", 0) ){ |
| 250 | style_submenu_element("Edit", "Edit Wiki Page", |
| 251 | "%s/wikiedit?name=%T&wysiwyg=1", |
| 252 |
| --- src/wiki.c | |
| +++ src/wiki.c | |
| @@ -241,11 +241,11 @@ | |
| 241 | if( rid ){ |
| 242 | style_submenu_element("Diff", "Last change", |
| 243 | "%R/wdiff?name=%T&a=%d", zPageName, rid); |
| 244 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid); |
| 245 | style_submenu_element("Details", "Details", |
| 246 | "%R/info/%s", zUuid); |
| 247 | } |
| 248 | if( (rid && g.perm.WrWiki) || (!rid && g.perm.NewWiki) ){ |
| 249 | if( db_get_boolean("wysiwyg-wiki", 0) ){ |
| 250 | style_submenu_element("Edit", "Edit Wiki Page", |
| 251 | "%s/wikiedit?name=%T&wysiwyg=1", |
| 252 |