}
}
+proc txtar-filename {line} {
+ if {
+ [string length $line] > 6 &&
+ [string range $line 0 2] == "-- " &&
+ [string range $line end-2 end] == " --"
+ } {
+ return [string range $line 3 end-3]
+ }
+ return ""
+}
+
set opt [lindex $argv 1]
switch [lindex $argv 0] {
list {
foreach dir $dirs {
foreach fn [walk $dir f] {
puts "-- [string range $fn [string length $Saved]+1 end] --"
- puts -nonewline [fileread $fn]
+ set fh [open $fn]
+ while {[gets $fh line] >= 0} {
+ if {[txtar-filename $line] != ""} {
+ set line "-- $line --"
+ }
+ puts $line
+ }
+ close $fh
}
}
}
close $fh
}
while {[gets stdin line] >= 0} {
- if {
- [string length $line] > 6 &&
- [string range $line 0 2] == "-- " &&
- [string range $line end-2 end] == " --"
- } {
+ set newFn [txtar-filename $line]
+ if {$newFn == ""} {
+ lappend lines $line
+ } elseif {[string range $newFn 0 2] == "-- "} {
+ lappend lines $newFn
+ } else {
if {$fn != ""} {
filewrite $fn $lines
set lines [list]
}
- set fn [string range $line 3 end-3]
- } else {
- lappend lines $line
+ set fn $newFn
}
}
if {$fn != ""} {