Ignore:
Timestamp:
2006-02-15T16:38:22+13:00 (18 years ago)
Author:
mdewsnip
Message:

Various little bug fixes and improvements (many to get things working with Visual Studio 2005), by Emanuel Dejanu.

File:
1 edited

Legend:

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

    r9674 r11259  
    374374  text_t::const_iterator saveconfend = saveconf.end();
    375375 
    376   text_t::iterator arg_ehere = arg_e->begin();
     376  text_t::iterator arg_ebegin = arg_e->begin();
    377377  text_t::iterator arg_eend = arg_e->end();
     378  text_t::iterator arg_ehere = arg_ebegin;
    378379  while (saveconfhere != saveconfend && arg_ehere != arg_eend) {
    379380    saveconfhere = get_next_save_arg (saveconfhere, saveconfend, argname);
     
    399400      text_t::const_iterator sav = arg_ehere;
    400401      arg_ehere = getdelimitstr (arg_ehere, arg_eend, '-', argvalue);
    401       // replace any '-' chars escaped with 'Zz'
    402       bool first = true;
    403       while ((*(arg_ehere-3) == 'Z') && (*(arg_ehere-2) == 'z')) {
    404         if (first) argvalue.clear();
    405         arg_ehere = (findchar (arg_ehere, arg_eend, '-')) + 1;
    406         while (sav != (arg_ehere-1)) {
    407           if (!((*sav == 'Z') && (*(sav+1) == 'z') && (*(sav+2) == '-')) &&
    408           !((*(sav-1) == 'Z') && (*sav == 'z') && (*(sav+1) == '-'))) argvalue.push_back (*sav);
    409           ++sav;
     402      if (distance(arg_ebegin, arg_ehere) > 2) {
     403        // replace any '-' chars escaped with 'Zz'
     404        bool first = true;
     405        while ((*(arg_ehere-3) == 'Z') && (*(arg_ehere-2) == 'z')) {
     406          if (first) argvalue.clear();
     407          arg_ehere = (findchar (arg_ehere, arg_eend, '-')) + 1;
     408          while (sav != (arg_ehere-1)) {
     409        if (!((*sav == 'Z') && (*(sav+1) == 'z') && (*(sav+2) == '-')) &&
     410            !((*(sav-1) == 'Z') && (*sav == 'z') && (*(sav+1) == '-'))) argvalue.push_back (*sav);
     411        ++sav;
     412          }
     413          first = false;
    410414        }
    411         first = false;
    412415      }
    413 
    414416      argvalue.setencoding(1); // other encoding
    415417      if (!argvalue.empty()) args.setdefaultarg (argname, argvalue, cgiarg_t::compressed_arg);
Note: See TracChangeset for help on using the changeset viewer.