Posted to tcl by aspect at Fri Jan 06 00:52:55 GMT 2017view pretty
#!/usr/bin/env tclsh # package require zlib set algos { "compress 9" decompress "deflate 9" inflate "gzip -level 9" gunzip } set output [read stdin] set sizes [dict map {c _} $algos { string length [zlib {*}[linsert $c 1 $output]] }] set sizes [lsort -stride 2 -index 1 -integer $sizes] set c [lindex $sizes 0] set d [dict get $algos $c] set b64cstr [binary encode base64 [zlib {*}[linsert $c 1 $output]]] set pgm "package require zlib\n" append pgm "puts \[zlib $d \[binary decode base64 [list $b64cstr]\]\]" puts "# [string length $pgm] bytes (excluding final newline):" puts $pgm # output for the old lady: # # 384 bytes (excluding final newline): # package require zlib # puts [zlib inflate [binary decode base64 5ZCxTsQwEET7fMV016B8B3RIRKLey/psg/Ge7Jys/D3ei0+5oBRUCERn7T7PzszgTDIolEEREhiBeEZxglwoBCmGQTiFuQe6J7DEw4T3KKUyM7Izd9zkaFL0oaLPJjk6ZyUOIYC96btu+NaxfPZskooMKliStzboJjLunm/t7WOuPKq0Wnz54sg0OUyCkabRXWfN5M/kOfrEKvFYj9AxXxKrmUa0/b513WyNr938wqD17PXYB1kfzaK6SVqB/aDjQq6+b539+U5YrCq8qhrBid02Utf7jfBCrq5buf+pOycpm5u3+pEhJ4xyqdO++wQ=]]