[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