Fossil SCM
Add functions to modify and delete query parameters
Commit
1c511cd9e6362bf04041f1b4d4a6efe5d5b1f2dd
Parent
3bcdc0779382af5…
1 file changed
+32
+32
| --- src/cgi.c | ||
| +++ src/cgi.c | ||
| @@ -483,10 +483,13 @@ | ||
| 483 | 483 | ** Copies are made of both the zName and zValue parameters. |
| 484 | 484 | */ |
| 485 | 485 | void cgi_set_parameter(const char *zName, const char *zValue){ |
| 486 | 486 | cgi_set_parameter_nocopy(mprintf("%s",zName), mprintf("%s",zValue), 0); |
| 487 | 487 | } |
| 488 | +void cgi_set_query_parameter(const char *zName, const char *zValue){ | |
| 489 | + cgi_set_parameter_nocopy(mprintf("%s",zName), mprintf("%s",zValue), 1); | |
| 490 | +} | |
| 488 | 491 | |
| 489 | 492 | /* |
| 490 | 493 | ** Replace a parameter with a new value. |
| 491 | 494 | */ |
| 492 | 495 | void cgi_replace_parameter(const char *zName, const char *zValue){ |
| @@ -508,10 +511,39 @@ | ||
| 508 | 511 | return; |
| 509 | 512 | } |
| 510 | 513 | } |
| 511 | 514 | cgi_set_parameter_nocopy(zName, zValue, 1); |
| 512 | 515 | } |
| 516 | + | |
| 517 | +/* | |
| 518 | +** Delete a parameter. | |
| 519 | +*/ | |
| 520 | +void cgi_delete_parameter(const char *zName){ | |
| 521 | + int i; | |
| 522 | + for(i=0; i<nUsedQP; i++){ | |
| 523 | + if( fossil_strcmp(aParamQP[i].zName,zName)==0 ){ | |
| 524 | + --nUsedQP; | |
| 525 | + if( i<nUsedQP ){ | |
| 526 | + memmove(aParamQP+i, aParamQP+i+1, sizeof(*aParamQP)*(nUsedQP-i)); | |
| 527 | + } | |
| 528 | + return; | |
| 529 | + } | |
| 530 | + } | |
| 531 | +} | |
| 532 | +void cgi_delete_query_parameter(const char *zName){ | |
| 533 | + int i; | |
| 534 | + for(i=0; i<nUsedQP; i++){ | |
| 535 | + if( fossil_strcmp(aParamQP[i].zName,zName)==0 ){ | |
| 536 | + assert( aParamQP[i].isQP ); | |
| 537 | + --nUsedQP; | |
| 538 | + if( i<nUsedQP ){ | |
| 539 | + memmove(aParamQP+i, aParamQP+i+1, sizeof(*aParamQP)*(nUsedQP-i)); | |
| 540 | + } | |
| 541 | + return; | |
| 542 | + } | |
| 543 | + } | |
| 544 | +} | |
| 513 | 545 | |
| 514 | 546 | /* |
| 515 | 547 | ** Add a query parameter. The zName portion is fixed but a copy |
| 516 | 548 | ** must be made of zValue. |
| 517 | 549 | */ |
| 518 | 550 |
| --- src/cgi.c | |
| +++ src/cgi.c | |
| @@ -483,10 +483,13 @@ | |
| 483 | ** Copies are made of both the zName and zValue parameters. |
| 484 | */ |
| 485 | void cgi_set_parameter(const char *zName, const char *zValue){ |
| 486 | cgi_set_parameter_nocopy(mprintf("%s",zName), mprintf("%s",zValue), 0); |
| 487 | } |
| 488 | |
| 489 | /* |
| 490 | ** Replace a parameter with a new value. |
| 491 | */ |
| 492 | void cgi_replace_parameter(const char *zName, const char *zValue){ |
| @@ -508,10 +511,39 @@ | |
| 508 | return; |
| 509 | } |
| 510 | } |
| 511 | cgi_set_parameter_nocopy(zName, zValue, 1); |
| 512 | } |
| 513 | |
| 514 | /* |
| 515 | ** Add a query parameter. The zName portion is fixed but a copy |
| 516 | ** must be made of zValue. |
| 517 | */ |
| 518 |
| --- src/cgi.c | |
| +++ src/cgi.c | |
| @@ -483,10 +483,13 @@ | |
| 483 | ** Copies are made of both the zName and zValue parameters. |
| 484 | */ |
| 485 | void cgi_set_parameter(const char *zName, const char *zValue){ |
| 486 | cgi_set_parameter_nocopy(mprintf("%s",zName), mprintf("%s",zValue), 0); |
| 487 | } |
| 488 | void cgi_set_query_parameter(const char *zName, const char *zValue){ |
| 489 | cgi_set_parameter_nocopy(mprintf("%s",zName), mprintf("%s",zValue), 1); |
| 490 | } |
| 491 | |
| 492 | /* |
| 493 | ** Replace a parameter with a new value. |
| 494 | */ |
| 495 | void cgi_replace_parameter(const char *zName, const char *zValue){ |
| @@ -508,10 +511,39 @@ | |
| 511 | return; |
| 512 | } |
| 513 | } |
| 514 | cgi_set_parameter_nocopy(zName, zValue, 1); |
| 515 | } |
| 516 | |
| 517 | /* |
| 518 | ** Delete a parameter. |
| 519 | */ |
| 520 | void cgi_delete_parameter(const char *zName){ |
| 521 | int i; |
| 522 | for(i=0; i<nUsedQP; i++){ |
| 523 | if( fossil_strcmp(aParamQP[i].zName,zName)==0 ){ |
| 524 | --nUsedQP; |
| 525 | if( i<nUsedQP ){ |
| 526 | memmove(aParamQP+i, aParamQP+i+1, sizeof(*aParamQP)*(nUsedQP-i)); |
| 527 | } |
| 528 | return; |
| 529 | } |
| 530 | } |
| 531 | } |
| 532 | void cgi_delete_query_parameter(const char *zName){ |
| 533 | int i; |
| 534 | for(i=0; i<nUsedQP; i++){ |
| 535 | if( fossil_strcmp(aParamQP[i].zName,zName)==0 ){ |
| 536 | assert( aParamQP[i].isQP ); |
| 537 | --nUsedQP; |
| 538 | if( i<nUsedQP ){ |
| 539 | memmove(aParamQP+i, aParamQP+i+1, sizeof(*aParamQP)*(nUsedQP-i)); |
| 540 | } |
| 541 | return; |
| 542 | } |
| 543 | } |
| 544 | } |
| 545 | |
| 546 | /* |
| 547 | ** Add a query parameter. The zName portion is fixed but a copy |
| 548 | ** must be made of zValue. |
| 549 | */ |
| 550 |