Fossil SCM
Omit unused c= parameters from hyperlinks in the /timeline.
Commit
65b729ac31174784ed2b5fafba64b68f13ab462e
Parent
b709be6517716eb…
2 files changed
+5
-1
+9
-2
+5
-1
| --- src/timeline.c | ||
| +++ src/timeline.c | ||
| @@ -1472,24 +1472,28 @@ | ||
| 1472 | 1472 | }else{ |
| 1473 | 1473 | blob_append_sql(&sql, |
| 1474 | 1474 | " AND event.mtime>=%.17g ORDER BY event.mtime ASC", |
| 1475 | 1475 | rAfter-ONE_SECOND); |
| 1476 | 1476 | } |
| 1477 | + zCirca = 0; | |
| 1478 | + url_add_parameter(&url, "c", 0); | |
| 1477 | 1479 | }else if( rBefore>0.0 ){ |
| 1478 | 1480 | blob_append_sql(&sql, |
| 1479 | 1481 | " AND event.mtime<=%.17g ORDER BY event.mtime DESC", |
| 1480 | 1482 | rBefore+ONE_SECOND); |
| 1483 | + zCirca = 0; | |
| 1484 | + url_add_parameter(&url, "c", 0); | |
| 1481 | 1485 | }else if( rCirca>0.0 ){ |
| 1482 | 1486 | Blob sql2; |
| 1483 | 1487 | blob_init(&sql2, blob_sql_text(&sql), -1); |
| 1484 | 1488 | blob_append_sql(&sql2, |
| 1485 | 1489 | " AND event.mtime<=%f ORDER BY event.mtime DESC LIMIT %d", |
| 1486 | 1490 | rCirca, (nEntry+1)/2 |
| 1487 | 1491 | ); |
| 1488 | 1492 | db_multi_exec("%s", blob_sql_text(&sql2)); |
| 1489 | 1493 | blob_reset(&sql2); |
| 1490 | - blob_append_sql(&sql, | |
| 1494 | + blob_append_sql(&sql, | |
| 1491 | 1495 | " AND event.mtime>=%f ORDER BY event.mtime ASC", |
| 1492 | 1496 | rCirca |
| 1493 | 1497 | ); |
| 1494 | 1498 | nEntry -= (nEntry+1)/2; |
| 1495 | 1499 | }else{ |
| 1496 | 1500 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -1472,24 +1472,28 @@ | |
| 1472 | }else{ |
| 1473 | blob_append_sql(&sql, |
| 1474 | " AND event.mtime>=%.17g ORDER BY event.mtime ASC", |
| 1475 | rAfter-ONE_SECOND); |
| 1476 | } |
| 1477 | }else if( rBefore>0.0 ){ |
| 1478 | blob_append_sql(&sql, |
| 1479 | " AND event.mtime<=%.17g ORDER BY event.mtime DESC", |
| 1480 | rBefore+ONE_SECOND); |
| 1481 | }else if( rCirca>0.0 ){ |
| 1482 | Blob sql2; |
| 1483 | blob_init(&sql2, blob_sql_text(&sql), -1); |
| 1484 | blob_append_sql(&sql2, |
| 1485 | " AND event.mtime<=%f ORDER BY event.mtime DESC LIMIT %d", |
| 1486 | rCirca, (nEntry+1)/2 |
| 1487 | ); |
| 1488 | db_multi_exec("%s", blob_sql_text(&sql2)); |
| 1489 | blob_reset(&sql2); |
| 1490 | blob_append_sql(&sql, |
| 1491 | " AND event.mtime>=%f ORDER BY event.mtime ASC", |
| 1492 | rCirca |
| 1493 | ); |
| 1494 | nEntry -= (nEntry+1)/2; |
| 1495 | }else{ |
| 1496 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -1472,24 +1472,28 @@ | |
| 1472 | }else{ |
| 1473 | blob_append_sql(&sql, |
| 1474 | " AND event.mtime>=%.17g ORDER BY event.mtime ASC", |
| 1475 | rAfter-ONE_SECOND); |
| 1476 | } |
| 1477 | zCirca = 0; |
| 1478 | url_add_parameter(&url, "c", 0); |
| 1479 | }else if( rBefore>0.0 ){ |
| 1480 | blob_append_sql(&sql, |
| 1481 | " AND event.mtime<=%.17g ORDER BY event.mtime DESC", |
| 1482 | rBefore+ONE_SECOND); |
| 1483 | zCirca = 0; |
| 1484 | url_add_parameter(&url, "c", 0); |
| 1485 | }else if( rCirca>0.0 ){ |
| 1486 | Blob sql2; |
| 1487 | blob_init(&sql2, blob_sql_text(&sql), -1); |
| 1488 | blob_append_sql(&sql2, |
| 1489 | " AND event.mtime<=%f ORDER BY event.mtime DESC LIMIT %d", |
| 1490 | rCirca, (nEntry+1)/2 |
| 1491 | ); |
| 1492 | db_multi_exec("%s", blob_sql_text(&sql2)); |
| 1493 | blob_reset(&sql2); |
| 1494 | blob_append_sql(&sql, |
| 1495 | " AND event.mtime>=%f ORDER BY event.mtime ASC", |
| 1496 | rCirca |
| 1497 | ); |
| 1498 | nEntry -= (nEntry+1)/2; |
| 1499 | }else{ |
| 1500 |
+9
-2
| --- src/url.c | ||
| +++ src/url.c | ||
| @@ -460,21 +460,28 @@ | ||
| 460 | 460 | fossil_free(p->azValue); |
| 461 | 461 | url_initialize(p, p->zBase); |
| 462 | 462 | } |
| 463 | 463 | |
| 464 | 464 | /* |
| 465 | -** Add a fixed parameter to an HQuery. | |
| 465 | +** Add a fixed parameter to an HQuery. Or remove the parameters if zValue==0. | |
| 466 | 466 | */ |
| 467 | 467 | void url_add_parameter(HQuery *p, const char *zName, const char *zValue){ |
| 468 | 468 | int i; |
| 469 | 469 | for(i=0; i<p->nParam; i++){ |
| 470 | 470 | if( fossil_strcmp(p->azName[i],zName)==0 ){ |
| 471 | - p->azValue[i] = zValue; | |
| 471 | + if( zValue==0 ){ | |
| 472 | + p->nParam--; | |
| 473 | + p->azValue[i] = p->azValue[p->nParam]; | |
| 474 | + p->azName[i] = p->azName[p->nParam]; | |
| 475 | + }else{ | |
| 476 | + p->azValue[i] = zValue; | |
| 477 | + } | |
| 472 | 478 | return; |
| 473 | 479 | } |
| 474 | 480 | } |
| 475 | 481 | assert( i==p->nParam ); |
| 482 | + if( zValue==0 ) return; | |
| 476 | 483 | if( i>=p->nAlloc ){ |
| 477 | 484 | p->nAlloc = p->nAlloc*2 + 10; |
| 478 | 485 | p->azName = fossil_realloc(p->azName, sizeof(p->azName[0])*p->nAlloc); |
| 479 | 486 | p->azValue = fossil_realloc(p->azValue, sizeof(p->azValue[0])*p->nAlloc); |
| 480 | 487 | } |
| 481 | 488 |
| --- src/url.c | |
| +++ src/url.c | |
| @@ -460,21 +460,28 @@ | |
| 460 | fossil_free(p->azValue); |
| 461 | url_initialize(p, p->zBase); |
| 462 | } |
| 463 | |
| 464 | /* |
| 465 | ** Add a fixed parameter to an HQuery. |
| 466 | */ |
| 467 | void url_add_parameter(HQuery *p, const char *zName, const char *zValue){ |
| 468 | int i; |
| 469 | for(i=0; i<p->nParam; i++){ |
| 470 | if( fossil_strcmp(p->azName[i],zName)==0 ){ |
| 471 | p->azValue[i] = zValue; |
| 472 | return; |
| 473 | } |
| 474 | } |
| 475 | assert( i==p->nParam ); |
| 476 | if( i>=p->nAlloc ){ |
| 477 | p->nAlloc = p->nAlloc*2 + 10; |
| 478 | p->azName = fossil_realloc(p->azName, sizeof(p->azName[0])*p->nAlloc); |
| 479 | p->azValue = fossil_realloc(p->azValue, sizeof(p->azValue[0])*p->nAlloc); |
| 480 | } |
| 481 |
| --- src/url.c | |
| +++ src/url.c | |
| @@ -460,21 +460,28 @@ | |
| 460 | fossil_free(p->azValue); |
| 461 | url_initialize(p, p->zBase); |
| 462 | } |
| 463 | |
| 464 | /* |
| 465 | ** Add a fixed parameter to an HQuery. Or remove the parameters if zValue==0. |
| 466 | */ |
| 467 | void url_add_parameter(HQuery *p, const char *zName, const char *zValue){ |
| 468 | int i; |
| 469 | for(i=0; i<p->nParam; i++){ |
| 470 | if( fossil_strcmp(p->azName[i],zName)==0 ){ |
| 471 | if( zValue==0 ){ |
| 472 | p->nParam--; |
| 473 | p->azValue[i] = p->azValue[p->nParam]; |
| 474 | p->azName[i] = p->azName[p->nParam]; |
| 475 | }else{ |
| 476 | p->azValue[i] = zValue; |
| 477 | } |
| 478 | return; |
| 479 | } |
| 480 | } |
| 481 | assert( i==p->nParam ); |
| 482 | if( zValue==0 ) return; |
| 483 | if( i>=p->nAlloc ){ |
| 484 | p->nAlloc = p->nAlloc*2 + 10; |
| 485 | p->azName = fossil_realloc(p->azName, sizeof(p->azName[0])*p->nAlloc); |
| 486 | p->azValue = fossil_realloc(p->azValue, sizeof(p->azValue[0])*p->nAlloc); |
| 487 | } |
| 488 |