From fc6576de63a75aaffc7db1eb42311898b8fe0240 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rainer=20M=C3=BCller?= Date: Mon, 21 Nov 2016 11:11:24 +0100 Subject: [PATCH] Properly escape string for regex replace Only escape special replacement syntax such as \0 or & in the replacement string. This is a follow-up to 265dc92b95edc3b12e25037724719e525188e46a which broke the TOC output. Closes: https://trac.macports.org/ticket/52924 --- toc-for-chunked.tcl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/toc-for-chunked.tcl b/toc-for-chunked.tcl index 08ea1b1..9189966 100644 --- a/toc-for-chunked.tcl +++ b/toc-for-chunked.tcl @@ -6,7 +6,7 @@ set file [open "[lindex $argv 0]/index.html"] regexp {
.+?
} [read $file] replacement close $file -set replacement "
$replacement" +set replacement "
[regsub -all {&|\\[0-9]} $replacement {\\&}]" # Add the table of contents to all other html files. foreach path [glob -directory [lindex $argv 0] {*.html}] { @@ -16,7 +16,7 @@ foreach path [glob -directory [lindex $argv 0] {*.html}] { set file [open $path r+] set data [read $file] - regsub {]+)>} $data [regsub -all {\W} $replacement {\\&}] data + regsub {]+)>} $data $replacement data regsub {} $data {
} data seek $file 0 puts $file $data