Changeset 12562 for trunk/gsdl


Ignore:
Timestamp:
2006-08-25T14:16:48+12:00 (18 years ago)
Author:
kjdon
Message:

reverted back to the previous version because it really was needed. Because we need to have dynamically named arguments multivalued, we will always assume multiplevalue = true if there is no argsinfo - remember to decode your commas whenyou get the values back

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gsdl/src/recpt/cgiutils.cpp

    r12555 r12562  
    338338      // again before use) - it should use an array instead
    339339      const cgiarginfo *info = argsinfo.getarginfo (key);
    340       if (info != NULL && info->multiplevalue) {
    341     text_t newvalue = args[key];
    342     if (args.lookupcgiarg(key).source == cgiarg_t::cgi_arg) newvalue += ",";
    343     newvalue += encode_commas(value);
    344     args.setarg (key, newvalue, cgiarg_t::cgi_arg);
    345 
    346       } else {
    347     args.setarg (key, value, cgiarg_t::cgi_arg);
     340      if (info==NULL) {
     341    // If info is NULL, we can't tell if the arg is multiple value or not
     342    // Because we need to have dynamically named arguments multivalued, we
     343    // will always assume multiplevalue = true
     344    // If the arg is not multi valued, then you need to decode the commas.
     345    if (args.getarg(key)==NULL) {
     346      args.setarg (key, encode_commas(value), cgiarg_t::cgi_arg);
     347    }
     348    else {
     349      text_t newvalue = args[key];
     350
     351      newvalue += "," + encode_commas(value);
     352      args.setarg (key, newvalue, cgiarg_t::cgi_arg);
     353    }
     354      }
     355      else {
     356    if (info->multiplevalue) {
     357
     358      text_t newvalue = args[key];
     359      if (args.lookupcgiarg(key).source == cgiarg_t::cgi_arg) newvalue += ",";
     360      newvalue += encode_commas(value);
     361      args.setarg (key, newvalue, cgiarg_t::cgi_arg);
     362
     363    } else {
     364      args.setarg (key, value, cgiarg_t::cgi_arg);
     365    }
    348366      }
    349367    }
Note: See TracChangeset for help on using the changeset viewer.