While working on a tcl implementation of a cpp (i.e. C preprocessor) I found it necessary to splice together lines with escaped new lines while preserving the line number where the splice began. Given a file of source lines that look like the following. ====== line(1) line(2)\ line(3) with space after excape\ line(4)\ line(5) line(6)\ line(7) line(8) ====== This code ... ====== set fid [open [file normalize "./filename"] r] set text [read ${fid}] close $fid regsub -all -- {[\\][ \t]*[\n]} ${text} "\\\n" text while { [regsub -all -- {[\\][\n](.*?[^\\])[\n]} ${text} "\\1\n\n" text] } {} ====== produces the following results (line number were added). %|no.|output|% |'''1'''| line(1)| |'''2'''|line(2)line(3) with space after excapeline(4)line(5) |'''3'''|| |'''4'''|| |'''5'''|| |'''6'''|line(6)line(7)| |'''7'''|| |'''8'''|line(8)| Notice that the lines have been spliced together and the spliced lines occur on the correct line in the output. [Tom Krehbiel] ---- [Category File]