diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2010-09-10 13:02:12 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2010-09-10 13:02:12 (GMT) |
commit | 18ef7fb196345ec8b9f583a865dbd860803cea56 (patch) | |
tree | 6391537b7795029b02b495e01b23031ad30f61c9 /doc/regsub.n | |
parent | 393428f319e2b46f52358501a48f0f0efa70701e (diff) | |
download | tcl-18ef7fb196345ec8b9f583a865dbd860803cea56.zip tcl-18ef7fb196345ec8b9f583a865dbd860803cea56.tar.gz tcl-18ef7fb196345ec8b9f583a865dbd860803cea56.tar.bz2 |
* doc/regsub.n: [Bug 3063568]: Fix for gotcha in example due to Tcl's
special handling of backslash-newline. Makes example slightly less
pure, but more useful.
Diffstat (limited to 'doc/regsub.n')
-rw-r--r-- | doc/regsub.n | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/doc/regsub.n b/doc/regsub.n index 413a6ab..e762b9d 100644 --- a/doc/regsub.n +++ b/doc/regsub.n @@ -6,7 +6,7 @@ '\" See the file "license.terms" for information on usage and redistribution '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES. '\" -'\" RCS: @(#) $Id: regsub.n,v 1.22.2.1 2008/07/07 08:36:30 dkf Exp $ +'\" RCS: @(#) $Id: regsub.n,v 1.22.2.2 2010/09/10 13:02:12 dkf Exp $ '\" .so man.macros .TH regsub n 8.3 Tcl "Tcl Built-In Commands" @@ -161,15 +161,18 @@ Insert double-quotes around the first instance of the word Convert all non-ASCII and Tcl-significant characters into \eu escape sequences by using \fBregsub\fR and \fBsubst\fR in combination: .CS -# This RE is just a character class for everything "bad" -set RE {[][{};#\e\e\e$\es\eu0080-\euffff]} +# This RE is just a character class for almost everything "bad" +set RE {[][{};#\e\e\e$ \er\et\eu0080-\euffff]} # We will substitute with a fragment of Tcl script in brackets set substitution {[format \e\e\e\eu%04x [scan "\e\e&" %c]]} # Now we apply the substitution to get a subst-string that -# will perform the computational parts of the conversion. -set quoted [subst [\fBregsub\fR -all $RE $string $substitution]] +# will perform the computational parts of the conversion. Note +# that newline is handled specially through \fBstring map\fR since +# backslash-newline is a special sequence. +set quoted [subst [string map {\en {\e\eu000a}} \e + [\fBregsub\fR -all $RE $string $substitution]]] .CE .SH "SEE ALSO" regexp(n), re_syntax(n), subst(n), |