auto_mkindex dir pattern pattern …
Местонахождение библиотеки Tcl можно получить с помощью команды info library. Обычно, помимо этой библиотеки, приложения имеют собственные библиотеки служебных процедур. Местонахождение процедур приложения обычно содержит глобальная переменная $app_library, где app — имя приложения. Например, для Tk это переменная $tk_library.
Для того, чтобы использовать процедуры из Tcl-библиотеки, приложению необходимо прочитать файл init.tcl библиотеки, например, командой
source [file join [info library] init.tcl]
Если в приложении процедура Tcl_AppInit вызывает библиотечную процедуру Tcl_Init, то такая команда выполняется автоматически. Код в файле init.tcl определит процедуру unknown и позволит остальным процедурам загружаться по требованию при помощи механизма автозагрузки, описанного ниже.
В каждом из каталогов, входящих в путь автозагрузки, должен находиться файл tclIndex, список команд, определенных в этом каталоге, и скрипты для загрузки каждой команды. Файл tclIndex должен быть создан с помощью команды auto_mkindex.
Команда auto_load читает индексные файлы только один раз и сохраняет полученную информацию в массиве auto_index. При последующих обращениях к команде auto_load сначала проверяется массив и только если информация о процедуре не найдена, приступает к просмотру индексных файлов. Эта информация может быть удалена с помощью команды auto_reset. После команды auto_reset следующий вызов auto_load к повторному чтению индексных файлов.
auto_mkindexdir pattern pattern...
Команда auto_mkindex просматривает Tcl-скрипты очень простым способом: если в очередной строке, начиная с первого символа, написано слово proc, считается, что это определение процедуры, а следующее слово есть имя процедуры. Процедуры, определение которых не подходит под описанное (например, если перед словом proc стоят пробелы), не попадают в индексный файл.
auto_execs — используется командой auto_execok для записи информации о том, существуют ли конкретная команда в виде исполняемого файла.
auto_index — используется auto_load для сохранения индексной информации, считанной с диска.
auto_noexec — если переменная задана с любым значением, то команда unknown не будет пытаться автоматически исполнить какую-либо команду.
auto_noload — если переменная задана с любым значением, то команда unknown не будет пытаться автоматически загрузить какую-либо команду.
auto_path — если переменная задана, то она должна содержать Tcl-список с каталогами для просмотра при операциях автозагрузки.
env(TCL_LIBRARY) — если переменная задана, то она указывает местоположение каталога с библиотечными скриптами (команда info library возвращает значение этой переменной). Если переменная не определена, то используется значение по умолчанию.
env(TCLLIBPATH) — если переменная задана, то она должна содержать действующий Tcl список каталогов для поиска при операциях автозагрузки. Эта переменная используется только тогда, когда не определена переменная auto_path.
tcl_nonwordchars — переменная содержит регулярное выражение, используемое такими процедурами, как tcl_endOfWord для определения, является ли символ частью слова или нет. Если образец соответствует символу, то символ считается не принадлежащим к слову. В Unix такими символами являются все символы, кроме цифр, букв и символа подчеркивания.
tcl_wordchars — переменная содержит регулярное выражение, используемое такими процедурами, как tcl_endOfWord для определения, является ли символ частью слова или нет. Если образец соответствует символу, то символ считается частью слова. В Unix слова состоят из цифр, букв и символа подчеркивания.
unknown_active — эта переменная служит
флагом для индикации активности команды unknown:
команда сама устанавливает ее. Переменная используется для выявления ошибок,
при которых unknown бесконечно рекурсивно обращается
к себе. Перед окончанием работы unknown переменная
сбрасывается.