Найти переименованную команду из оригинальной команды - PullRequest
1 голос
/ 31 марта 2020

Существует ли какая-либо функция tcl / proc / api, с помощью которой я могу получить все переименованные команды?

Я имею в виду:

Предположим, кто-то пишет ниже утверждение где-то во включенных файлах:

rename -force command tmp_command

После этой строки нет команды для 'command', вместо этого, 'tmp_command' является новой командой.

Как я могу получить переименованную команду, 'tmp_command', если у меня есть только ' Имя команды, где мне нужно.

1 Ответ

2 голосов
/ 31 марта 2020

Tcl не запоминает переименования, которые он делает для вас, но вы можете создать свое собственное, отслеживая вызовы на rename (на стороне отпуска, чтобы вы могли отслеживать только успешные вызовы):

trace add execution rename leave rememberRename
proc rememberRename {cmd code args} { # see the docs for the full list of callback arguments
    if {$code == 0} {
        lappend ::renames [lrange $cmd 1 end]
    }
}

# demo code
proc foo x y
rename foo bar
rename bar grill
rename grill foo
puts $renames
# {foo bar} {bar grill} {grill foo}

Предупреждение: это не отслеживает все удалений команд.

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