Fossil SCM

Add functions to modify and delete query parameters

andygoth 2016-11-05 05:15 andygoth-timeline-ms
Commit 1c511cd9e6362bf04041f1b4d4a6efe5d5b1f2dd
1 file changed +32
+32
--- src/cgi.c
+++ src/cgi.c
@@ -483,10 +483,13 @@
483483
** Copies are made of both the zName and zValue parameters.
484484
*/
485485
void cgi_set_parameter(const char *zName, const char *zValue){
486486
cgi_set_parameter_nocopy(mprintf("%s",zName), mprintf("%s",zValue), 0);
487487
}
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
+}
488491
489492
/*
490493
** Replace a parameter with a new value.
491494
*/
492495
void cgi_replace_parameter(const char *zName, const char *zValue){
@@ -508,10 +511,39 @@
508511
return;
509512
}
510513
}
511514
cgi_set_parameter_nocopy(zName, zValue, 1);
512515
}
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
+}
513545
514546
/*
515547
** Add a query parameter. The zName portion is fixed but a copy
516548
** must be made of zValue.
517549
*/
518550
--- 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

Keyboard Shortcuts

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