With test-case gdb.testsuite/quotemeta.exp we get:
...
check_quotemeta_fail: input: @NOTHING
check_quotemeta_fail: catch_res: 1, catch_msg: \
can't read "::_quotemeta(NOTHING)": no such element in array
PASS: gdb.testsuite/quotemeta.exp: no-such-subst
check_quotemeta_fail: input: @bad-name
check_quotemeta_fail: catch_res: 1, catch_msg: invalid quotemeta expression
PASS: gdb.testsuite/quotemeta.exp: bad-name
...
Improve the error messages to:
- undefined quotemeta expression @NOTHING
- invalid quotemeta expression @bad-name
# Match the usual forms.
if {![regexp -- "^(\\.\\.\\.|\[A-Z\]\[A-Z_\]*|@|/\[^/\]*/)(.*)$" \
$at_text ignore at_text remainder]} {
- error "invalid quotemeta expression"
+ error "invalid quotemeta expression @$at_text"
}
}
# an embedded "/".
append result $rx
} else {
+ if {![info exists ::_quotemeta($at_text)]} {
+ error "undefined quotemeta expression @$at_text"
+ }
append result $::_quotemeta($at_text)
}