1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
# writeFile:
# Write the contents of a file.
#
# Copyright © 2023 Donal K Fellows.
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#
proc writeFile {args} {
# Parse the arguments
switch [llength $args] {
2 {
lassign $args filename data
set mode text
}
3 {
lassign $args filename mode data
set MODES {binary text}
set ERR [list -level 1 -errorcode [list TCL LOOKUP MODE $mode]]
set mode [tcl::prefix match -message "mode" -error $ERR $MODES $mode]
}
default {
set COMMAND [lindex [info level 0] 0]
return -code error -errorcode {TCL WRONGARGS} \
"wrong # args: should be \"$COMMAND filename ?mode? data\""
}
}
# Write the file
set f [open $filename [dict get {text w binary wb} $mode]]
try {
puts -nonewline $f $data
} finally {
close $f
}
}
|