Content-type: text/html Manpage of GETIN

GETIN

Section: User Commands (1)
Updated: Sunday, May 27th 2001
Index Return to Main Contents
 

NAME

getin - Intelligent search in fortran source files.  

SYNOPSIS

getin [ -abCdDeEfFhHlLNopPrRStV ] [ -T strings (noms des fichiers à lire) ] [ -A integer L_Aft ] [ -B integer L_bef ] [ -I string GETIN_PATH ] [ -v integer verbose level ] var1 ... varn [fichier1.reconnu ... fichierm.RECONNU]  

DESCRIPTION


Getin is a multiple search program accross source files in multiple directories that is particularly efficient in fortran. It also works with C, C++, fortran, html, perl, tcl, (latex(1)).


Getin works the following way:
- recherche des fichiers sources sur lesquels rechercher les expressions,
- recherche des fichiers includes appelés par les fichiers sources,
- recherche des expressions,
- affichage du ou des résultats des recherches.

Ce programme est particulièrement complet en ce qui concerne les recherches dans le fortran 77 et 90, C et C++, HTML et le LaTeX (latex(1)). Le programme "perl" getin est garanti par son auteur, Olivier Cessenat, que ce soit contre les bugs ou pour sa pérennité.

Le programme affiche les lignes trouvées (correspondant à la recherche demandée) ainsi que $L_Aft lignes après et $L_Bef avant: ce sont des variables d'environnement qui si elles n'existent pas sont par défaut L_Aft=2 et L_Bef=1.

La liste des options est disponible en tapant 'getin' tout seul sans argument.

Avant une liste exhaustive des options, montrons quelques exemples d'utilisation de Getin, et signalons l'existence d'une interface graphique pour le lancer ( tkWorld )  

EXAMPLES

getin toto tata recherche les mots toto et tata dans les *.f *.c *.h locaux

getin -o to recherche les occurrences de la chaîne 'to' dans *.f *.c *.h locaux

getin toto to file.f recherche les mots toto et to dans file.f et les includes locaux appelés par file.f

getin -e nmax_noeud ier *.c recherche les affectations de la variable ier dans les fichiers *.c locaux et leurs includes locaux.

getin -tb ier recherche le mot ier dans tous les .f et .c des répertoires de la variable GETIN_PATH ainsi que des fichiers includes de ces fichiers (s'ils se trouvent sur un des répertoires de la variable GETIN_PATH).

getin -d ier recherche les déclarations de la variable ier.

getin -X /tmp/$$ main.c
 construit le fichier /tmp/$$ qui contient le code du fichier main.c et de ses includes (Idem fortran ou LaTeX (latex(1)).

getin microsoft index.html recherche tous les liens locaux sur le serveur puis les occurences du mot 'microsoft' sur tout le site atteignable en local à partir de index.html.

getin -R toto *.f Recherche 'toto' dans tous les fichiers *.f locaux mais aussi dans des includes qui seraient placés sous le répertoire local.

getin -Rb toto Recherche de 'toto' dans tous les fichiers reconnus par getin sous le répertoire local et les sous répertoires.

getin -Rbt toto Recherche de 'toto' dans tous les fichiers reconnus par getin sous le répertoire local et les sous répertoires mais en plus sur les répertoires et sous répertoires de la variable GETIN_PATH.

getin -A 0 -B 0 -v 5 -NVp 'INTEGER|REAL|COMMON|INCLUDE|IMPLICIT|PARAMETER|DIMENSION' toto.f Recherchedel'expressionrationnelleperl(option-p):onrecherche les lignes qui ont le mot "INTEGER" ou sinon le mot "REAL" ou sinon... le mot "DIMENSION". On recherche les "0" (zéro) lignes précédents le match (option "-B 0") et les "0" (zéro) lignes suivants le match (option "-A 0"). On demande de ne pas afficher les numéros de ligne (option "-N"). Très important, l'option "-V" demande de n'afficher que les lignes NE CORRESPONDANT PAS au match dans les fichiers qui possèdent un match. L'option "-v 5" permet de suivre le fonctionnement du programme.

getin -A 0 -B 0 -v 5 -NVd 0 toto.f Affichetoutesleslignesdetoto.fquinesontpasdeslignesde déclaration. N'affiche pas les numéros de ligne. L'astuce dans cet exemple est de demander une recherche sur la variable "0" (zéro) qui vaut "false" en perl. Getin sait alors qu'il doit rechercher toute variable. L'option "-V" inverse l'affichage par rapport au match, "-N" supprime l'affichages des numéros de ligne. Remarque: la variable "0" peut être utilisée pour les options "-d" et "-D" uniquement pour signifier "all".

getin -T 'toto.log tata.log' -A 10 RESIDU recherchelemotRESIDUdanslesfichierstextes'toto.log'et'tata.log'. Notons que cette option est incompatible avec des noms de fichiers contenant un espace.  

OPTIONS

-A
[Numéro] permet d'afficher les lignes qui matchent la recherche et les 'Numéro' lignes qui suivent les lignes de match. Ceci permet d'éviter l'affectation de la variable d'environnement 'L_Aft'.
-a
permet d'afficher les lignes d'appel ou de déclaration selon l'option S ou P demandée et de lister, par variable les définitions (S) ou appels (P) de la variable. Cette option n'a de sens que conjuguée aux options P ou S.
-B
[Numéro] permet d'afficher les lignes qui matchent la recherche et les 'Numéro' lignes qui précèdent les lignes de match. Ceci permet d'éviter l'affectation de la variable d'environnement 'L_Bef'.
-b
conjuguée à l'option -t permet de faire une recherche sur tous les fichiers des répertoires de la variable GETIN_PATH. L'option -t seulement ne permet d'étendre la recherche aux répertoires de la variable GETIN_PATH que pour la recherche des includes. L'option -b conjuguée à l'option -R permet de faire une recherche récursive à partir du répertoire local et des éventuels répertoire si option -t ou option -I noms_des_répertoires_séparés_par:
-d
Permet d'effectuer une recherche de déclaration dans le fortran et le C en éliminant les commentaires.
-D
permet d'afficher les blocs "subroutine" ou les blocs "call" ou "function" qui contiennent la variable en question. L'affichage donne automatiquement toutes les lignes du bloc.
-e
Rechercher les affectations de variables dans le fortran et le C en éliminant les commentaires.
-f
permet d'effectuer une recherche sur les lignes de programme dans le fortran et le C.
-F
permet d'effectuer une recherche sur les lignes de commentaire dans le fortran et le C.
-H
permet de savoir si une variable est utilisée pour l'affectation d'une autre variable. Option valide sur le fortran seulement.
-I
[Répertoires_Path] permet de mettre sur le même plan le répertoire local et les répertoires dont les noms suivent l'option I, séparés par ':' pour la recherche des includes. Ceci permet une recherche sur un répertoire de développement local ainsi que sur plusieurs répertoires d'industrialisation.
-l
Effectuer une recherche sur les expressions protégées (i.e _ remplacé par \_ pour les commentaires en LaTeX) en plus de l'expression non protégée.
-L
Effectuer une recherche sur les expressions protégées (i.e _ remplacé par \_ pour les commentaires en LaTeX) à la place de l'expression non protégée.
-N
Ne pas afficher les numéros de ligne.
-o
Effectuer une recherche sur les occurrences de chaîne.
-p
Effectuer une recherche d'expression régulière perl.
-P
Demande de rechercher les passages de paramètres marqués par le mot-clef 'call' où le paramètre du call (passé en argument à getin) diffère du nom de la variable de définition dans la subroutine: exemple
a.f                L1=program a L2=call b(xa,ya,za,wa) L3=end
b.f                 L1=subroutine b(xb,yb,zb,wb) L2=end

getin -P wa a.f b.f =>                  b(wa,a.f,2,4)[b.f,1]=wb

-r
Permet d'effectuer une recherche récursive à partir d'un fichier subroutine fortran sur tous ses calls, à condition que les appelées portent le même nom.
-R
permet d'effectuer une recherche récursive à partir du répertoire local. Cette option est à conjuguer à l'option -b si cette recherche récursive doit porter sur les arguments. Remarque: avec cette option il est impossible d'avoir les f récursifs
-S
Demande de rechercher les passages de paramètres marqués par le mot-clef 'subroutine' où la variable de la définition de la subroutine (variable passée en argument à getin) diffère du nom du paramètre d'appel ailleurs lors d'un "call". C'est la "réciproque" de l'option -P. Exemple
a.f                L1=program a L2=call b(xa,ya,za,wa) L3=end
b.f                 L1=subroutine b(xb,yb,zb,wb) L2=end

getin -S wb a.f b.f =>                  b(wb,b.f,1,4)[a.f,2]=wa
-t
Permet de mettre sur le même plan le répertoire local et les répertoires dont les noms sont dans la variable d'environnement GETIN_PATH pour la recherche des includes. Ceci permet une recherche sur un répertoire de développement local ainsi que sur plusieurs répertoires d'industrialisation.
-T
Oblige une recherche dans les fichiers dont les noms suivent, séparés par des espaces.
-v
pour "verbose" permet de suivre les messages de fonctionnement de getin. On attend un entier donnant la quantité de commentaires à effectuer.
-V
N'afficher que les lignes qui ne correspondent pas au match dans les fichiers qui possèdent un match. ATTENTION: on supprime de l'affichage les L_Aft lignes après et les L_Bef lignes avant le match (voir les options -A et -B).
-X
FICHIER Demande à ce programme de constituer un FICHIER qui contient tous les fichiers appelés par les arguments analysés comme étant des fichiers. Par exemple, permet de constituer, à partir d'un fichier fortran passé en argument, un unique fichier FICHIER contenant le fortran et les includes récursifs.
-Y
FICHIER Demande à getin de constituer un FICHIER.html qui liste les fichiers pour lesquels la recherche effectuée est positive.
 

DÉTERMINATION DES FICHIERS DE RECHERCHE

Si on demande une recherche dans des fichiers '.h', on recherche dans les fichiers .h et .f et .c passés en argument uniquement
 (équivalent à un 'grep  -iw amélioré, voir la suite).
Si l'on ne passe pas d'argument, recherche automatique dans tous les fichiers fortran, c et includes (et f90 et cc).
Sinon on recherche dans les fichiers fortran .f et .c et leurs dépendances, c'est-à-dire les fichiers include inclus, récursivement.
Si option -r on recherche dans les fichiers *.f où * est un nom trouvé après l'instruction call. La recherche est récursive à partir des fichiers déjà connus.
 

AFFICHAGE DU RÉSULTAT

On affiche ensuite les numéros de ligne concernés ainsi que les L_Bef=$L_Bef lignes précédentes et les L_Aft=$L_Aft lignes suivantes (variables d'environnement modifiables si l'on ne veut pas du défaut).
Si option -P on n'affiche que les différences entre les call *(a) et les subroutine *(b) -affiche puisque a est différent de b, si a=b, n'affiche rien).
 

PRIORITÉS

1) recherche d'expression (si métacaracteres en arguments, ou option -o). Sinon:
2.a) Recherche d'affectation de variable si option -e,
2.b) recherche de déclaration de paramètres ou affectation par
 'equivalence', 'data' si option -d, 
2.c) recherche de passages de paramètres si option -p,
2.d) rech. des pass. de para. différents de ceux de la déclaration, opt. -P. Sinon:
3) Recherche de mots.
 
 

FILES

getin le programme
/lib/information.pm perl module  

AUTHOR

Olivier Cessenat  

SEE ALSO

tagshtml(1), ftagshtml(1), ftvisu(1), emacs(1)  

BUGS

None  

REMARQUE

N'oubliez-pas que getin peut se lancer par interface graphique avec tkWorld(1) et dans emacs(1) en mettant la ligne (require 'getin) dans son ~/.emacs, puis à l'aide du menu Tools/Getin...


 

Index

NAME
SYNOPSIS
DESCRIPTION
EXAMPLES
OPTIONS
DÉTERMINATION DES FICHIERS DE RECHERCHE
AFFICHAGE DU RÉSULTAT
PRIORITÉS
FILES
AUTHOR
SEE ALSO
BUGS
REMARQUE

This document was created by man2html, using the manual pages.
Time: 18:47:53 GMT, June 17, 2007