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). '''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]