to post messages and comments.

Tcl

А вот неплохой же язык незаслуженно предан забытию. Почему про него так все позабыли? Не хуже lua или javascript какого-нибудь. Кто-нибудь использует его ещё?

tk Tcl ?

Сука, я охуеваю. Как же мне прочитать состояние checkbutton? Я тут это из питона делаю, так что, надо обойтись без создания переменной для хранения значения. Походу именно этот виджет не имеет команд для тупо взятия текущего значения, либо в доках нихуя нет. Самое ебанутое, что команды для изменения значения checkbutton имеются.

? Tcl

man fileevent говорит нам:

A file event handler is also deleted automatically whenever its channel is closed
Что же делать если мне надо обработать закрытие канала? в некоторых случаях [eof $fd] утверждает, что eof ещё нету, и после этого хендлер никогда не выполняется.
Единственное, что приходит в голову — наколхозить проверяльщик на after, но не может ли он наткнуться на то же значение $fd после его переоткрытия?

А нафига потребовалось переопределять синтаксис? Всё уже было придумано.
Ввели разные маркеры начала и конца последовательности.

[] — вызывает подстановку результата выполнения команды внутри скобок.
`cmd` — обратный апостроф.

{} — группирует аргументы в один без подстановки значений переменных.
'some $var' — одинарная кавычка.

"" — группирует аргументы в один с подстановкой значений переменных.
Так и осталось.

...
if [expr [string index $text $x] = "?"] {set correct_text "$correct_text$minus"} else {if [expr [string index $text $x] = ":"] {set correct_text "$correct_text$dots"} else {set correct_text "$correct_text$x_char"}}
...
И всё в одну строку ... Только ради такого стоит покупать FullHD монитор

За эту ночь я влюбился в Tcl/Tk: на нем можно клепать гуйцы и вообще кодить не приходя в сознание и не читая практически ничего кроме манов по командам. Активно оборачиваю vim в тк-виджет дабы можно было юзать оный вместо стандартного text в том же ткаббере. А вот vimscript, в отличии от, вызывает рвотные позывы.

[email protected] ~ $ Downloads/Installer_LPCXpresso_4.0.6_131_Linux-x86
invalid command name "bind"
while executing
"::unknown bind Text <Tab>"
("uplevel" body line 1)
invoked from within
"uplevel 1 $next $args"
(procedure "::obj::Unknown" line 3)
invoked from within
"bind Text <Tab>"
(procedure "::InstallJammer::InitializeGui" line 19)
invoked from within
"::InstallJammer::InitializeGui "
(procedure "::InstallJammer::InitInstall" line 68)
invoked from within
"::InstallJammer::InitInstall"
(file "/installkitvfs/main.tcl" line 36411)

Охуеть, у NXPшного говна инсталлер на тикле. Фрискейловский на яве хотя бы работал.

Tcl

дано: перменная ip с IP адресом. нужно: увеличить адрес на 1 (было 192.168.0.1, стало 192.168.0.2). решение: set ip 192.168.0.1; set ip [join [lreplace [split $ip .] 3 3 [expr [lindex [split $ip .] 3] + 1]] .]; puts $ip

.tcl set ::errtm 0; proc ::wrerr {args} {if {[incr ::errtm] >= 1 && ![string is space $::errorInfo]} {putloglev d "\00304 .---Error occured---"; set i 0; foreach _ [split $::errorInfo \n] {if {[incr i] > 99} {putloglev d "\00304| \00309\002Too much lines... Breaking.";break};putloglev d "\00304| \017$_"}; putloglev d "\00304`---End of error[info script]---"; set ::errtm 0; set ::errorInfo ""}}
.tcl trace add variable errorInfo write ::wrerr
.console +d

При малейшей ошибке бот будет в патилайн выводить содержимое $::errorInfo
Отключить:
.tcl trace remove variable errorInfo write ::wrerr
.tcl rename ::wrerr ""
Или:
.console -d