testsuite: Provide means to regexp in multiline patterns
Those multi-line-patterns are literal. Sometimes a regexp needs to be matched. This is a start: just three elements are supported: "(" ")" and the compound ")?" (and on second thought, it can be argued that "(...)" alone is not useful). Note that Tcl "string map" is documented to have the desired effect: a once-over but no re-recognitions of previously replaced mapped elements. Also, drop a doubled "containing". testsuite: * lib/multiline.exp (_build_multiline_regex): Map "{re:" to "(", similarly ")?" from ":re?}" and the same without question mark.
This commit is contained in:
parent
dfb14cdd79
commit
82318c5760
1 changed files with 5 additions and 2 deletions
|
@ -297,7 +297,7 @@ proc _get_lines { filename first_line last_line } {
|
|||
|
||||
# Convert $multiline from a list of strings to a multiline regex
|
||||
# We need to support matching arbitrary followup text on each line,
|
||||
# to deal with comments containing containing DejaGnu directives.
|
||||
# to deal with comments containing DejaGnu directives.
|
||||
|
||||
proc _build_multiline_regex { multiline index } {
|
||||
verbose "_build_multiline_regex: $multiline $index" 4
|
||||
|
@ -307,7 +307,10 @@ proc _build_multiline_regex { multiline index } {
|
|||
verbose " line: $line" 4
|
||||
|
||||
# We need to escape "^" and other regexp metacharacters.
|
||||
set line [string map {"^" "\\^"
|
||||
set line [string map {"\{re:" "("
|
||||
":re?\}" ")?"
|
||||
":re\}" ")"
|
||||
"^" "\\^"
|
||||
"(" "\\("
|
||||
")" "\\)"
|
||||
"[" "\\["
|
||||
|
|
Loading…
Add table
Reference in a new issue