Мигрировал с TCL8.4 до 8.5, и у меня возникли проблемы с поиском файлов - PullRequest
0 голосов
/ 26 сентября 2018

Мое приложение хорошо работает на RHEL 5 (TCL 8.4).Но в 64-битном TCL8.5 RHEL 7 файлы базы данных поступают неправильно.Приложение по умолчанию указывает на последний файл записи в БД.Следовательно, я предполагаю, что это может быть проблема с тем, как 8.5 обрабатывает поиск файлов.Поэтому я создал файл X и написал следующий код.(Пожалуйста, игнорируйте dbname и / path, все работает нормально)

Файл X

#!/bin/sh
# \
exec tclsh "$0" "$@"
puts [package require Itcl]
namespace import ::itcl::*
puts $itcl::patchLevel
puts $itcl::library
set databases /dbname
set system ($databases,dbpath) /path
source File.class.tcl
source FareFile.class.tcl
puts [Fare.File formtitle]
source Record1File.class.tcl
puts [Fare.File formtitle]

Я использую FareFile и печатаю заголовок формы (o / p: Fare Viewer), используя метод formtitleкоторый объявлен в File.class.tcl.Затем я создаю Record1File и распечатываю формуляр FareFile (первый), в котором печатается заголовок формы Record1File.Метод formtitle возвращает значение файла с последним источником.Это не происходит в 8.4

File.class.tcl:

class File {

    variable fileinfo
    variable recordarray

    variable allads_flag 0
    variable updates_is_lastkey 0

    method formtitle {} {
            variable fileinfo
            return $fileinfo(formtitle)
    }
}

FareFile.class.tcl

FareFile ::Fare.File

::Fare.File parse_fields {
            tabtitle "Fares"
            formtitle "Fare Viewer"
         }

Record1File.class.tcl

Record1File ::Record1.File

::Record1.File  parse_fields {
            tabtitle "Record 1"
            formtitle "Record 1 Viewer"

выход в 8,4 / RHEL 5: (ожидаемый выход в 8,5)

3.4
3.4.0
/path
Fare Viewer
Fare Viewer

выход в 8,5 / RHEL 7:

3.4
3.4.3
/path
Fare Viewer
Record 1 Viewer

Если вы видите выход на обоихплатформы, это разные.Пожалуйста, помогите

1 Ответ

0 голосов
/ 26 сентября 2018

(Это только предварительный ответ, учитывая все пробелы в вопросе, но мне нужны возможности форматирования:)

Попробуйте следующие инструкции, переписав сценарий тела метода formtitle какследует:

class File {
    method formtitle {} {
            set v variable
            $v fileinfo
            return $fileinfo(formtitle)
    }
}

... и доложите, оставив комментарий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...