From: <no...@so...> - 2002-12-17 15:04:07
|
Feature Requests item #652953, was opened at 2002-12-12 21:51 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=360894&aid=652953&group_id=10894 >Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) >Assigned to: Nobody/Anonymous (nobody) Summary: regsub -code (equivalent to Perl's /e) Initial Comment: (Greg Beauchesne, gr...@be...) I hope I didn't miss something, but I wanted an option in "regsub" that was equivalent to Perl's /e modifier on substitutions, and I couldn't find one. /e in Perl evaluates the subtitution string as code rather than as just a string. So, I added a -code flag to "regsub" for this purpose. For example, to decode a URL-encoded string, you can do: regsub -nocase -all -code -- {%([0-9a-f]{2})} $string {format %c 0x$1} During the substitution code, the variables $0, $1, $2, etc. are set to the match. If there were actual variables $0, $1, $2, etc. beforehand, they are restored at the end of the regsub command, but they are not accessible during the code execution. Matches which are unused are set to empty strings (to avoid errors). The replacement is done for TCL_OK and TCL_RETURN codes. TCL_BREAK will stop replacement prematurely (Not much use without -all) and TCL_ERROR or TCL_CONTINUE will cause the command to return TCL_ERROR. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2002-12-15 04:20 Message: Logged In: NO Yeah, after I submitted it, I saw your comment on the feature request list. It would be a small change to switch the use of Tcl_EvalObjEx with Tcl_SubstObj, though, yes, that wouldn't be compatible with the \1 \2 \3 etc. format. It sort of seems to me like $1 $2 $3 ... is more "natural" in the context of evaluated expressions, however. (as opposed to {[expr {\1 + \2}]} or whatever) It might be inconsistent, but it wouldn't break the non-substituted version. -- Greg ---------------------------------------------------------------------- Comment By: Donal K. Fellows (dkf) Date: 2002-12-13 09:58 Message: Logged In: YES user_id=79902 This sort of thing has been on my to-do list for ages, though I've been thinking more in terms of passing things through the (subst) engine. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=360894&aid=652953&group_id=10894 |