library      Commandes Internes Tcl


NOM

auto_execok, auto_import, auto_load, auto_mkindex, auto_mkindex_old, auto_qualify, auto_reset, tcl_findLibrary, parray, tcl_endOfWord, tcl_startOfNextWord, tcl_startOfPreviousWord, tcl_wordBreakAfter, tcl_wordBreakBefore - bibliothèque standard des fonctions Tcl

SYNTAXE

auto_execok cmd
auto_import pattern
auto_load cmd
auto_mkindex dir pattern pattern ...
auto_mkindex_old dir pattern pattern ...
auto_qualify command namespace
auto_reset
tcl_findLibrary basename version patch initScript enVarName varName
parray arrayName
tcl_endOfWord str start
tcl_startOfNextWord str start
tcl_startOfPreviousWord str start
tcl_wordBreakAfter str start
tcl_wordBreakBefore str start

INTRODUCTION

Tcl inclut une bibliothèque de fonctions d'usage courant. Les fonctions définies dans la bibliothèque Tcl sont génériques et peuvent être utilisées par de nombreuses applications différentes. L'emplacement de la bibliothèque Tcl est renvoyé par la commande info library. En plus de la bibliothèque Tcl, chaque application doit normalement avoir sa propre bibliothèque de fonctions; l'emplacement de cette bibliothèque est normalement donnée par la valeur de la variable globale $app_library, où app est le nom de l'application. Par exemple, l'emplacement de la bibliothèque Tk est conservé dans la variable $tk_library.
Pour accéder aux fonctions de la bibliothèque Tcl, une application doit " sourcer " le fichier init.tcl dans la bibliothèque, par exemple avec la commande Tcl
source [file join [info library] init.tcl]
Si la fonction de bibliothèque Tcl_Init est appelée de la fonction d'une application Tcl_AppInit, ceci se produit automatiquement. Le code de init.tcl définira la fonction unknown et prépare les autres fonctions à être chargées à la demande en utilisant le mécanisme auto_load défini ci-dessous.

FONCTIONS COMMANDES

Les fonctions suivantes sont fournies dans la bibliothèque Tcl:
auto_execok cmd
Détermine si cmd est un fichier exécutable ou une commande interne. Si c'est le cas, elle retourne une liste d'arguments à transmettre à exec pour exécuter le fichier exécutable ou la commande interne désignée par cmd. Sinon, elle retourne une chaîne vide. Cette commande examine les répertoires dans le chemin de recherche courant (donnés par la variable d'environnement PATH) dans sa recherche d'un fichier exécutable nommé cmd. Sur les plateformes Windows, la recherche est éténdue avec les mêmes répertoires et extensions de fichier utilisés par exec. Auto_exec conserve l'information au sujet des recherches précedentes dans un tableau nommé auto_execs; ceci évite la recherche du chemin dans les appels suivants pour la même cmd. La commande auto_reset peut être employée pour forcer auto_execok à vider son cache.

auto_import pattern
Auto_import est appelée pendant namespace import pour voir si les commandes importées spécifiées par pattern résident dans une bibliothèque auto-chargée. Si vrai, les commandes sont chargées, ainsi elles seront disponibles dans l'interpréteur pour la création des liens d'import. Si les commandes ne résident pas dans une bibliothèque auto-chargée, auto_import ne fait rien.

auto_load cmd
Cette commande tente de charger la définition d'une commande Tcl nommée cmd. Pour ceci elle recherche un auto-load path, qui est une liste d'un ou plusieurs répertoires. Le chemin auto-load est donnés par la variable globale $auto_path si elle existe. S'il n'y a pas de variable $auto_path, alors la variable d'environnement TCLLIBPATH est utilisée, si elle existe. Autrement le chemin auto-load contient juste le répertoire de la bibliothèque Tcl. A l'intérieur de chaque répertoire dans le chemin auto-load il doit y avoir un fichier tclIndex qui décrit une ou plusieurs commandes définies dans ce répertoire et un script à évaluer pour charger chacune des commandes. Le fichier tclIndex sera généré avec la commande auto_mkindex Si cmd est trouvé dans un fichier index, alors le script approprié est évalué pour créer la commande. La commande auto_load retourne 1 si cmd est créée avec succès. La commande retourne 0 si il n'y a pas d'entrée index pour cmd ou si le script ne definit actuellement pas cmd (ex. parce que l'information d'index est périmée). Si une erreur se produit pendant le traitement du script, alors cette erreur est renvoyée. Auto_load lit seulement l'information d'index une fois et la sauvegarde dans le tableau auto_index les appels suivants à auto_load recherchent cmd dans le tableau plutôt que de relire les fichiers d'index. L'information d'index mise en cache peut être effacée avec la commande auto_reset. Ceci forcera la commande auto_load suivante à recharger la base de données d'index à partir du disque.

auto_mkindex dir pattern pattern ...
Génère un index utilisable par auto_load. La commande recherche dir pour tout fichiers dont les noms correspondent à un des arguments pattern (la correspondance est établie avec la commande glob), génère un index de toutes les fonctions de commande Tcl définies dans tout les fichiers correspondants, et stocke l'information d'index dans un fichier nommé tclIndex dans dir. Si aucun modèle n'est précisé, un modèle de *.tcl sera supposé. Par exemple, la commande
   auto_mkindex foo *.tcl
lira tout les fichiers.tcl dans le sous-répertoire foo et générera un nouveau fichier d'index foo/tclIndex.
Auto_mkindex analyse les scripts Tcl en les "sourcant" dans un interpréteur esclave et en interceptant les commandes proc et namespace qui sont exécutées Des extensions peuvent utiliser le package (non documenté) auto_mkindex_parser pour déclarer d'autres commandes qui peuvent collaborer avec auto_load index. Vous pourrez parcourir auto.tcl pour voir comment cela fonctionne.
Auto_mkindex_old analyse les scripts Tcl d'une manière relativement rustique s'il existe une ligne qui contient le mot proc en premiers caractères alors c'est supposé être une définition de fonction et le mot suivant de la ligne est interprété comme le nom de la fonction. Les définitions de fonction qui n'apparaissent de cette manière (ex. elles ont des espaces avant proc) ne seront pas indexées. Si votre script contient du code "dangereux", tel que du code d'initialisation globale ou des noms de fonction avec des caractères spéciaux comme $, *, [ ou ], il sera plus sur d'utiliser auto_mkindex_old.

auto_reset
Détruit toute l'information mise en cache par auto_execok et auto_load. Cette information sera relue à partir du disque la prochaine fois que c'est nécessaire. Auto_reset efface aussi toutes fonctions listées dans l'index auto_load, ainsi une copie récente sera chargée la fois suivante qu'elles seront utilisées.

auto_qualify command namespace
Calcule une liste de noms pleinement qualifiés pour command. Cette liste reflète le chemin qu'un interpréteur standard Tcl suit pour la recherche de commande: d'abord il cherche la commande dans le namespace courant, et ensuite dans le namespace global. Conformément, si command est relatif et que namespace n'est pas ::, la liste renvoyée a deux éléments command visible par namespace, comme si c'était une commande dans le namespace namespace; et command comme si c'était une commande dans le namespace global. Autrement, si command est absolue (elle commence par ::), ou bien que namespace est ::, la liste contient seulement command comme si c'etait une commande dans le namespace global.
Auto_qualify est utilisé par les auto-loading facilités en Tcl, autant pour produire des index auto-loading tel que pkgIndex.tcl, que pour effectuer l'auto-loading des fonctions à l'exécution.

tcl_findLibrary basename version patch initScript enVarName varName
Ceci est une fonction de recherche standard à utiliser par les extensions pendant leur initialisation. Elles appellent cette fonction pour rechercher leur bibliothèque de scripts dans plusieurs répertoires standard. Le dernier composant du nom de répertoire de la bibliothèque est normalement basenameversion (ex., tk8.0), mais il pourra être "library" quand il est situé dans les hiérarchies de construction. Le fichier initScript sera "sourcé" dans l'interpréteur une fois qu'il est trouvé. Le répertoire dans lequel ce fichier est trouvé est stocké dans la variable globale varName. Si cette variable est déjà définie (ex., par du code C pendant l'initialisation de l'application) alors aucune recherche n'est effectuée. Autrement la recherche se fait dans ces répertoires: le répertoire nommé par la variable d'environnement enVarName; relatif au répertoire bibliothèque Tcl; relatif au fichier exécutable dans l'installation standard (répertoire bin ou bin/arch); relatif au fichier exécutable dans l'arbre de construction courant; relatif au fichier exécutable dans un arbre de construction parallèle.

parray arrayName
Affiche sur la sortie standard les noms et valeurs de tous les éléments dans le tableau arrayName. ArrayName doit être un tableau accessible à l'appelant de parray. Il peut être soit local ou global.

tcl_endOfWord str start
Renvoie l'index du premier emplacement de fin-de-mot qui se trouve après un index de départ start dans la chaîne str. Un emplacement de fin-de-mot est défini pour être le premier caractère non-mot suivant le premier caractère mot après le point de départ. Renvoie -1 si il n'y a plus d'emplacement fin-de-mot après le point de départ. Voir la description de tcl_wordchars et tcl_nonwordchars ci-dessous pour plus de détails sur comment Tcl détermine quels caractères sont des caractère mots.

tcl_startOfNextWord str start
Renvoie l' index du premier emplacement début-de-mot qui se trouve après un index de départ start dans la chaîne str. Un emplacement début-de-mot est défini pour être le premier caractère mot suivant un caractère non-mot. Renvoie -1 si il n'y a plus d'emplacement de début-de-mot après le point de départ.

tcl_startOfPreviousWord str start
Renvoie l'index du premier emplacement début-de-mot qui se trouve avant un index de départ start dans la chaîne str. Renvoie -1 si il n'y a plus d'emplacement de début-de-mot après le point de départ.

tcl_wordBreakAfter str start
Renvoie l'index de la première limite de mot après l'index de départ start dans la chaîne str. Renvoie -1 si il n'y a pas de plus limites après le point de départ dans la chaîne donnée L'index renvoyé se réfère au second caractère de la paire qui comporte une limite.

tcl_wordBreakBefore str start
Renvoie l'index de la première limite de mot avant l'index de départ start dans la chaîne str Renvoie -1 si il n'y a pas de plus limites avant le point de départ dans la chaîne donnée. L'index renvoyé se réfère au second caractère de la paire qui comporte une limite.

VARIABLES

Les variables globales suivantes sont définies ou utilisées par les fonctions dans la bibliothèque Tcl:
auto_execs
Utilisée par auto_execok pour enregistrer si des commandes particulières existent comme fichiers exécutables.

auto_index
Utilisée par auto_load pour sauvegarder l'information index lue à partir du disque.

auto_noexec
Si fixée à une quelconque valeur, alors unknown ne tentera pas " d'auto-exec " quelconques commandes.

auto_noload
Si fixée à une quelconque valeur, alors unknown ne tentera pas " d'auto-load " quelconque commandes.

auto_path
Si fixée, alors doit contenir une liste Tcl valide indiquant les répertoires à rechercher pendant les opérations auto-load. Cette variable est initialisée au démarrage pour contenir, dans l'ordre: les répertoires listés dans la variable d'environnement TCLLIBPATH, le répertoire nommé par la variable $tcl_library, le répertoire parent de $tcl_ library, les répertoires listés dans la variable $tcl_pkgPath.

env(TCL_LIBRARY)
Si fixée, alors spécifie l'emplacement du répertoire contenant la bibliothèque des scripts (la valeur de cette variable sera assignés à tcl_library variable et therefore renvoyé par la commande info library). Si cette variable n'est pas fixée alors une valeur par défaut est utilisée.

env(TCLLIBPATH)
Si fixée, alors doit contenir une liste Tcl valide donnant les répertoires à rechercher pendant les opérations auto-load. Les répertoires doivent être spécifiés en format Tcl , en utilisant "/" comme séparateur de chemin, indépendemment de la plateforme. Cette variable est seulement utilisée à l'initialisation de la variable auto_path .

tcl_nonwordchars
Cette variable contient une expression rationelle qui est utilisé par les routines comme tcl_endOfWord pour identifier si un caractère fait partie d'un mot ou non. Si le modèle correspond à un caractère, le caractère est consideré comme caractère non-mot. Sur les plateformes Windows, les espaces, tabulations, et saut de lignes sont considerés comme caractères non-mots. Sous Unix, tout sauf les chiffres, lettres et underscores sont considerés comme caractère non-mots.

tcl_wordchars
Cette variable contient une expression rationelle qui est utilisée par les routines comme tcl_endOfWord pour identifier si un caractère fait partie d'un mot ou non. Si le modèle correspond à un caractère, le caractère est consideré comme caractère d'un mot. Sur les plateformes Windows,les mots comportent tout caractère qui n'est pas un espace, une tabulation, ou une nouvelle ligne. Sous Unix, les mots comportent des chiffres, lettres ou underscores.

unknown_pending
Utilisée par unknown pour enregistrer la commande(s) recherchée. Elle est utilisée pour detecter les erreurs où unknown s'appelle récursivement dans une boucle infinie. La variable est détruite avant que unknown retourne.

VOIR EGALEMENT

re_syntax(n)

Dernière révision: 8.0


Index  Précédent  Suivant