Changeset 776 for trunk/gsdl/src/recpt


Ignore:
Timestamp:
1999-11-09T09:26:38+13:00 (25 years ago)
Author:
sjboddie
Message:

added multiplevalue option to cgiarginfo

Location:
trunk/gsdl/src/recpt
Files:
6 edited

Legend:

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

    r533 r776  
    2828/*
    2929   $Log$
     30   Revision 1.10  1999/11/08 20:26:38  sjboddie
     31   added multiplevalue option to cgiarginfo
     32
    3033   Revision 1.9  1999/09/07 04:56:53  sjboddie
    3134   added GPL notice
     
    177180cgiarginfo::cgiarginfo () {
    178181  multiplechar = false;
     182  multiplevalue = false;
    179183  defaultstatus = weak;
    180184  savedarginfo = can;
     
    186190      (x.longname == y.longname) &&
    187191      (x.multiplechar == y.multiplechar) &&
     192      (x.multiplevalue == y.multiplevalue) &&
    188193      (x.defaultstatus == y.defaultstatus) &&
    189194      (x.argdefault == y.argdefault) &&
     
    196201       ((x.longname < y.longname) ||
    197202        ((x.longname == y.longname) &&
    198          ((x.multiplechar < y.multiplechar) ||
    199           ((x.multiplechar == y.multiplechar) &&
    200            ((x.defaultstatus < y.defaultstatus) ||
    201         ((x.defaultstatus == y.defaultstatus) &&
    202          ((x.argdefault < y.argdefault) ||
    203           ((x.argdefault == y.argdefault) &&
    204            ((x.savedarginfo < y.savedarginfo))))))))))));
     203         ((x.multiplevalue < y.multiplevalue) ||
     204          ((x.multiplevalue == y.multiplevalue) &&
     205           ((x.multiplechar < y.multiplechar) ||
     206        ((x.multiplechar == y.multiplechar) &&
     207         ((x.defaultstatus < y.defaultstatus) ||
     208          ((x.defaultstatus == y.defaultstatus) &&
     209           ((x.argdefault < y.argdefault) ||
     210            ((x.argdefault == y.argdefault) &&
     211             ((x.savedarginfo < y.savedarginfo))))))))))))));
    205212}
    206213
     
    233240  }
    234241
     242  if (orginfo->multiplevalue != info.multiplevalue) {
     243    if (logout != NULL) {
     244      (*logout) << text_t2ascii << "Error: cgi argument \"" << info.shortname
     245        << "\" was given as being a single value option\n"
     246        << "and a multiple value option.\n\n";
     247    }
     248    return false; // found a clash
     249  }
     250
    235251  if (orginfo->multiplechar != info.multiplechar) {
    236252    if (logout != NULL) {
  • trunk/gsdl/src/recpt/cgiargs.h

    r533 r776  
    153153  bool multiplechar;
    154154
     155  // multiplevalue should be set to true the argument may have
     156  // multiple values (as is the case when multiple checkboxes
     157  // use the same name)
     158  bool multiplevalue;
     159
    155160  // defaultstatus_t indicates how good the default is when different
    156161  // defaults are given for one argument. "none" means there is no default
  • trunk/gsdl/src/recpt/cgiutils.cpp

    r764 r776  
    2828/*
    2929   $Log$
     30   Revision 1.12  1999/11/08 20:26:38  sjboddie
     31   added multiplevalue option to cgiarginfo
     32
    3033   Revision 1.11  1999/11/01 22:03:35  sjboddie
    3134   Added ability to handle multiple arguments with the same name (as
     
    143146
    144147// split up the cgi arguments
    145 void split_cgi_args (text_t argstr, cgiargsclass &args) {
     148void split_cgi_args (const cgiargsinfoclass &argsinfo, text_t argstr,
     149             cgiargsclass &args) {
    146150  args.clear();
    147151 
     
    165169      // multiple checkboxes using the same name) we'll
    166170      // create a comma separated list of all the values
    167       if (!args[key].empty())
    168     args[key] += "," + value;
    169       else
     171      // (if multiplevalue)
     172      if (!args[key].empty()) {
     173    const cgiarginfo *info = argsinfo.getarginfo (key);
     174    if (info != NULL && info->multiplevalue)
     175      args[key] += "," + value;
     176    else args.setarg (key, value, cgiarg_t::cgi_arg);
     177      } else
    170178    args.setarg (key, value, cgiarg_t::cgi_arg);
    171179    }
  • trunk/gsdl/src/recpt/cgiutils.h

    r607 r776  
    3939
    4040// split up the cgi arguments
    41 void split_cgi_args (text_t argstr, cgiargsclass &args);
     41void split_cgi_args (const cgiargsinfoclass &argsinfo, text_t argstr,
     42             cgiargsclass &args);
    4243
    4344// turns any '-' in a cgi argument into "(-)"
  • trunk/gsdl/src/recpt/queryaction.cpp

    r772 r776  
    2828/*
    2929   $Log$
     30   Revision 1.30  1999/11/08 20:26:37  sjboddie
     31   added multiplevalue option to cgiarginfo
     32
    3033   Revision 1.29  1999/11/04 20:29:53  sjboddie
    3134   small change to cross-collection searching
     
    330333  arg_ainfo.longname = "collections to search";
    331334  arg_ainfo.multiplechar = true;
     335  arg_ainfo.multiplevalue = true;
    332336  arg_ainfo.defaultstatus = cgiarginfo::weak;
    333337  arg_ainfo.argdefault = "";
  • trunk/gsdl/src/recpt/receptionist.cpp

    r769 r776  
    2828/*
    2929   $Log$
     30   Revision 1.40  1999/11/08 20:26:37  sjboddie
     31   added multiplevalue option to cgiarginfo
     32
    3033   Revision 1.39  1999/11/03 22:49:10  sjboddie
    3134   A location url may now contain macros
     
    584587  // get an initial list of cgi arguments
    585588  args.clear();
    586   split_cgi_args (argstr, args);
     589  split_cgi_args (argsinfo, argstr, args);
    587590
    588591  // expand the compressed argument (if there was one)
Note: See TracChangeset for help on using the changeset viewer.