[Comm] Вопрос знатокам Tcl/Tk
Sergey Bolshakov
=?iso-8859-1?q?sbolshakov_=CE=C1_altlinux=2Eru?=
Чт Май 5 13:20:02 MSD 2005
>>>>> "cetus" == cetus <.> writes:
> Уважаемые знатоки!
> А не подскажет ли кто, что могло сломаться или поменяться в Tcl/Tk
> где-то между Master 2.0 и Master 2.2?
> Поясню суть вопроса: есть скрипт, который работает в Spring 2001 и
> Master 2.0. Под Master 2.2/2.4 для запуска скрипта требуется внесение
> исправлений, без которых он вываливается с ошибками. В основном
> это замена двойных кавычек на фигурные скобки:
> - catch "$le subwidget entry insert 0 [set ::$varname]"
> + catch {$le subwidget entry insert 0 [set ::$varname]}
> - foreach v [getopt $varname] "$le appendhistory $v"
> + foreach v [getopt $varname] {$le appendhistory $v}
> Здесь не понравились скобки квадратные:
> - if {[catch [set variable_props($varname)]]==0} {
> + if {[catch {set variable_props($varname)}]==0} {
> Из беглого взгляда в доку по Tcl/Tk я сделал единственный вывод:
> конструкции до и после исправления эквивалентны. Однако результат
> зависит. Измененная версия работает везде.
> Есть ли основания пинать разработчиков скрипта?
Конструкции не эквивалентны, поскольку порядок обработки
подвыражений различен. Таким образом, основания пинать
весьма веские.
--
Подробная информация о списке рассылки community