Changeset 1786
- Timestamp:
- 2000-12-12T15:00:05+13:00 (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gsdl/src/recpt/historydb.cpp
r1285 r1786 201 201 records[num].save=tset; 202 202 } 203 }}204 else { // dodgy format205 // error message206 203 } 204 } 205 else { // dodgy format 206 // error message 207 } 207 208 208 209 } 209 210 numbegin++; 210 211 } // while 211 212 212 213 HistRecordmap::iterator recbegin = records.begin(); 213 214 HistRecordmap::iterator recend = records.end(); … … 299 300 if (it==end) return true; // no need to swap anything 300 301 301 302 bool result=true; 302 303 text_t queryresult = ""; 303 304 text_t historyfile = filename_cat(gsdlhome, "etc", "history.db"); … … 318 319 queryresult += substr(begin, it); 319 320 it++; 320 while(*it>='0'&&*it<='9') it++; 321 if (*it<'0' || *it>'9') { 322 queryresult.push_back('#'); // put the hash back if its not next to a number 323 } 324 else { 325 while(*it>='0'&&*it<='9') it++; 326 result = false; 327 } 321 328 begin=it; 322 329 it=findchar(begin, end, '#'); … … 324 331 queryresult += substr(begin, end); 325 332 query = queryresult; 326 return false; 327 } 328 bool result=true; 333 return result; 334 } 329 335 330 336 // if have got to here, have a previous history in historyresult … … 349 355 if (*begin==text_t('#')) { 350 356 begin++; 351 while(begin !=end && *begin>='0'&&*begin<='9') { 352 querynum.push_back(*begin); 353 begin++; 357 if(*begin<'0'||*begin>'9') { // not a history ref, leave in 358 queryresult.push_back('#'); 354 359 } 355 text_t oldquery = historymap[querynum]; 356 if (oldquery !="") { // valid entry 357 parse_saved_args(oldquery, "q", newquery); 358 decode_cgi_arg(newquery); 359 queryresult += newquery; 360 else { // history ref 361 while(begin !=end && *begin>='0'&&*begin<='9') { 362 querynum.push_back(*begin); 363 begin++; 364 } 365 text_t oldquery = historymap[querynum]; 366 if (oldquery !="") { // valid entry 367 parse_saved_args(oldquery, "q", newquery); 368 decode_cgi_arg(newquery); 369 queryresult += newquery; 370 } 371 else { 372 result=false; // have replaced #n with nothing 373 } 374 querynum.clear(); 360 375 } 361 else { 362 result=false; 363 } 364 querynum.clear(); 365 // else do nothing (replace #x with nothing) 366 } // if 376 } // if # 367 377 else { 368 378 queryresult.push_back(*begin); … … 407 417 if (*begin==text_t('#')) { 408 418 begin++; 409 while(begin !=end && *begin>='0'&&*begin<='9') { 410 querynum.push_back(*begin); 411 begin++; 419 if ( *begin<'0' || *begin>'9') { // not a ref 420 queryresult.push_back('#'); 412 421 } 413 if(records.count(querynum)>0) { // valid entry 414 if (!records[querynum].save){ // referenced record to be deleted 415 // get the q arg out of referenced query 416 parse_saved_args(records[querynum].entry, "q", newquery); 417 decode_cgi_arg(newquery); 418 queryresult += newquery; 419 changed=true; 422 else { 423 while(begin !=end && *begin>='0'&&*begin<='9') { 424 querynum.push_back(*begin); 425 begin++; 420 426 } 421 else { // leave the #x in 422 queryresult.push_back('#'); 423 queryresult += querynum; 424 } 427 if(records.count(querynum)>0) { // valid entry 428 if (!records[querynum].save){ // referenced record to be deleted 429 // get the q arg out of referenced query 430 parse_saved_args(records[querynum].entry, "q", newquery); 431 decode_cgi_arg(newquery); 432 queryresult += newquery; 433 changed=true; 434 } 435 else { // leave the #x in 436 queryresult.push_back('#'); 437 queryresult += querynum; 438 } 439 }// else do nothing (replace #x with nothing) 440 querynum.clear(); 441 newquery.clear(); 425 442 } 426 querynum.clear();427 newquery.clear();428 // else do nothing (replace #x with nothing)429 443 } // if its a hash 430 444 else {
Note:
See TracChangeset
for help on using the changeset viewer.