|
|
| version 1.63, 2001/07/18 10:06:04 | version 1.64, 2001/07/20 09:40:46 |
|---|---|
| Line 214 static void _match(Request& r, const Str | Line 214 static void _match(Request& r, const Str |
| Temp_lang temp_lang(r, String::UL_PASS_APPENDED); | Temp_lang temp_lang(r, String::UL_PASS_APPENDED); |
| Table *table; | Table *table; |
| if(params->size()<3) { // search | if(params->size()<3) { // search |
| bool was_global; | |
| bool matched=src.match(r.pcre_tables, | bool matched=src.match(r.pcre_tables, |
| &method_name, | &method_name, |
| regexp.as_string(), options, | regexp.as_string(), options, |
| &table, | &table, |
| search_action, 0); | search_action, 0, |
| &was_global); | |
| // matched | // matched |
| if(table->columns()->size()==3 && // just matched[3=pre/match/post], no substrings | // not (just matched[3=pre/match/post], no substrings) or Global search |
| table->size()<=1) // just one row, not /g_lobal search | if(table->columns()->size()>3 || was_global) |
| result=new(pool) VBool(pool, matched); | result=new(pool) VTable(pool, table); // table of pre/match/post+substrings |
| else // table of pre/match/post+substrings | else |
| result=new(pool) VTable(pool, table); | result=new(pool) VBool(pool, matched); |
| } else { // replace | } else { // replace |
| Value& replacement_code=params->as_junction(2, "replacement code must be code"); | Value& replacement_code=params->as_junction(2, "replacement code must be code"); |