Projet mkd/find.c
De Wiki EELL.
(Différences entre les versions)
JPL (discuter | contributions) m |
JPL (discuter | contributions) m (Mise à jour) |
||
| Ligne 2 : | Ligne 2 : | ||
<small>[[Projet mkd/Fichiers en développement|Retour aux fichiers en développement →]]</small> | <small>[[Projet mkd/Fichiers en développement|Retour aux fichiers en développement →]]</small> | ||
| - | + | == find (included file) == | |
| - | <pre> | + | |
| + | {{boîte déroulante/début|titre=find.inc.c, find.inc.h}} | ||
| + | * find.inc.h | ||
| + | <pre style="color:orange"> | ||
#define ARGS_EXAM | #define ARGS_EXAM | ||
</pre> | </pre> | ||
| - | + | * find.inc.h | |
| - | + | <pre style="color:blue"> | |
| - | <pre> | + | //P maj R3.11 04/01/91 par JPL |
| - | / | + | //P maj R 130509 alpha |
| - | + | { /*S find */ | |
L=0; | L=0; | ||
| + | // c is a register int defined in mkd.c | ||
| + | int d; // local variables | ||
| + | int e, f, g; | ||
if(v) printf("Find Souce File Language, \'%s\': ",fsrc); | if(v) printf("Find Souce File Language, \'%s\': ",fsrc); | ||
if(k) | if(k) | ||
{ /*S chercher */ | { /*S chercher */ | ||
| + | //T char buffer[10]; //T tests only | ||
| + | c = tolower(fsrc[k+1]); | ||
| + | if (c!='\0') d = tolower(fsrc[k+2]); else d='\0'; | ||
| + | if (d!='\0') e = tolower(fsrc[k+3]); else e='\0'; | ||
| + | // if (e!='\0') f = tolower(fsrc[k+4]); else f='\0'; | ||
| + | // if (f!='\0') g = tolower(fsrc[k+4]); else g='\0'; | ||
| + | // if (g!='\0') h = tolower(fsrc[k+3]); else h='\0'; | ||
| + | //T buffer[0]=c; buffer[1]=d; buffer[2]=e; buffer[3]='\0'; //T Tests only | ||
| + | //T printf("\nTests: **** tolower extension = %s\n",buffer); //T tests only | ||
| - | #ifndef UNIX_ONLY | + | #ifndef UNIX_ONLY // OK for PC and UNIX / LINUX. Not OK for C strict |
| - | if( | + | if(c=='a'&&d=='s'&&(e=='m'||e=='i')) |
| - | + | {L=1;A=1;printf("ASM\n");} | |
| - | + | ||
| - | else if(( | + | else if( (c=='b'&&d=='a'&&e=='s') || // bas |
| - | + | (c=='v'&&d=='b'&&e=='\0') || // Visual bacic | |
| - | + | (c=='b'&&d=='a'&&e=='t') // bat | |
| - | + | ) | |
| - | + | {L=1;B=1;printf("BASIC\n");} | |
| - | + | ||
| - | + | else if( | |
| - | + | ( ((c=='c'||'h')&&d=='+'&&e=='+') || // c++, h++ | |
| - | + | ((c=='c'||'h')&&d=='-'&&e=='-') || // c--, h-- | |
| - | + | ((c=='c'||'h')&&d=='p'&&e=='p') || // cpp, hpp | |
| - | + | (c=='c'&&d=='s'&&e=='s') || // css | |
| - | + | (c=='c'&&d=='c'&&e=='\0') || // cc | |
| - | + | (c=='h'&&d=='h'&&e=='\0') || // hh | |
| - | + | (c=='c'&&d=='p'&&e=='\0') || // cp=c# | |
| - | + | (c=='c'&&d=='s'&&e=='\0') || // cs=c# | |
| - | + | (c=='c'&&d=='#'&&e=='\0') || // c# | |
| - | + | (c=='c'&&d=='\0') || // C | |
| + | (c=='h'&&d=='\0') || // h | ||
| + | (c=='d'&&d=='\0') || // D | ||
| + | (c=='p'&&d=='r')&&e=='o') || // pro prolog | ||
| + | //w see forward (c=='p'&&d=='l')&&d=='\0') || // pl perl, prolog | ||
| + | (c=='p'&&d=='h'&&e=='p') || // PHP | ||
| + | (c=='j'&&d=='a'&&e=='v') || // jav java | ||
| + | (c=='j'&&d=='s'&&e=='e') || // jse javascript | ||
| + | (c=='j'&&d=='s'&&e=='\0') // js javascript | ||
| + | ) | ||
| + | {L=1;C=1;printf("C or PROLOG\n");} | ||
| + | |||
| + | else if(c=='f'&&d=='o'&&e=='r') | ||
| + | {L=1;F=1;printf("FORTRAN\n");} | ||
| + | |||
| + | else if(c=='p'&&d=='a'&&e=='s') | ||
| + | {L=1;P=1;printf("PASCAL\n");} | ||
#endif | #endif | ||
| - | #ifndef PC_ONLY | + | #ifndef PC_ONLY // OK for UNIX / LINUX |
| - | if | + | if(c=='s'&&d=='\0') |
| - | + | {L=1;A=1;printf("Assembler\n");} | |
| - | + | ||
| - | + | else if(c=='f'&&d=='\0') | |
| - | + | {L=1;F=1;printf("Fortran\n");} | |
| - | + | ||
| - | + | else if(c=='p'&&d=='\0') | |
| - | + | {L=1;P=1;printf("Pascal\n");} | |
| - | + | ||
| - | + | /*w Attention, il n'est pas coutumier de donner des extensions aux fichiers | |
| - | + | shell. Il serait utile de vérifier la première ligne si c est NULL. Pour | |
| + | cela il faudrait ouvrir et refermer le fichier source. */ | ||
| + | else if( (c=='s'&&d=='h'&&e=='\0') || // sh | ||
| + | (c=='c'&&d=='s'&&e=='h') || // csh | ||
| + | (c=='p'&&d=='l'&&e=='\0') || // pl perl | ||
| + | (c=='r'&&d=='b'&&e=='\0') || // rb ruby | ||
| + | (c=='p'&&d=='y'&&e=='\0') || // py python | ||
| + | (c=='p'&&d=='y'&&e=='w') || // pyw python | ||
| + | (c=='r'&&d=='\0') // ratfor | ||
| + | ) | ||
| + | {L=1;S=1;printf("Shell\n");} | ||
| + | |||
#endif | #endif | ||
| - | #ifdef UNIX_ONLY | + | #ifdef UNIX_ONLY // C strict not in use with mkd see version.h |
| - | + | else if((c=='c'||c=='i'|| c=='h')&&d=='\0') | |
| - | + | {L=1;C=1;printf("C strict\n");} | |
| - | + | ||
#endif | #endif | ||
#ifndef ARGS_EXAM | #ifndef ARGS_EXAM | ||
| - | + | else if( (c=='p'&&d=='r'&&e=='j') || // prj mkd | |
| - | + | (c=='p'&&d=='j'&&e=='\0') // pj mkd | |
| - | + | ) | |
| + | {L=1;j=1;printf("Project file\n");} | ||
#endif | #endif | ||
} /*S chercher */ | } /*S chercher */ | ||
| - | /*O si le langage n'est pas | + | /*O si le langage n'est pas trouvé: */ |
if(!L) | if(!L) | ||
/*O alors: */ | /*O alors: */ | ||
| Ligne 82 : | Ligne 124 : | ||
if(j)printf("\b\bor space_bar for Ignore ?: "); | if(j)printf("\b\bor space_bar for Ignore ?: "); | ||
if((c=getch())==0x1B){ /*S*/ printf("\n.Exit 1\n");exit(1);} /*S*/ | if((c=getch())==0x1B){ /*S*/ printf("\n.Exit 1\n");exit(1);} /*S*/ | ||
| - | else if(c=='A')A=1; | + | else if(c=='A'||c=='a')A=1; |
| - | + | else if(c=='B'||c=='b')B=1; | |
| - | + | else if(c=='C'||c=='c')C=1; | |
| - | + | else if(c=='F'||c=='f')F=1; | |
| - | + | else if(c=='P'||c=='p')P=1; | |
| - | + | else if(c=='S'||c=='s')S=1; | |
| - | + | else if (c=='l')l=1; | |
| - | + | else if(c=='p')p=1; | |
| - | + | else | |
| - | + | { /*S*/printf("\n.Exit 2\n"); exit(2);} /*S*/ | |
| - | + | printf("\n"); | |
| - | /*O | + | L=A+B+C+F+P+S; |
| - | + | /*O si aucun drapeau langage n'est positionne envoyer BEL */ | |
| - | + | if(!(L==1||p||l))putch(0x7); | |
| - | + | putch('\n'); | |
| - | + | } /*S*/ | |
| + | } /*S find */ | ||
</pre> | </pre> | ||
| + | {{Boîte déroulante/fin}} | ||
| + | |||
| + | == Fichier de commande des tests == | ||
| + | |||
| + | == Analyse des test konsole == | ||
| + | |||
| + | == Fichiers sources des tests == | ||
[[Catégorie:Générateurs de documentation]] | [[Catégorie:Générateurs de documentation]] | ||
Version du 9 mai 2013 à 17:53
| | Cette page n'est pas finie. Veuillez considérer le plan et le contenu comme incomplets et en préparation, temporaires et sujets à caution. Si vous souhaitez participer, il vous est recommandé de consulter sa page de discussion au préalable. |
Retour aux fichiers en développement →
Sommaire |
find (included file)
find.inc.c, find.inc.h
- find.inc.h
#define ARGS_EXAM
- find.inc.h
//P maj R3.11 04/01/91 par JPL
//P maj R 130509 alpha
{ /*S find */
L=0;
// c is a register int defined in mkd.c
int d; // local variables
int e, f, g;
if(v) printf("Find Souce File Language, \'%s\': ",fsrc);
if(k)
{ /*S chercher */
//T char buffer[10]; //T tests only
c = tolower(fsrc[k+1]);
if (c!='\0') d = tolower(fsrc[k+2]); else d='\0';
if (d!='\0') e = tolower(fsrc[k+3]); else e='\0';
// if (e!='\0') f = tolower(fsrc[k+4]); else f='\0';
// if (f!='\0') g = tolower(fsrc[k+4]); else g='\0';
// if (g!='\0') h = tolower(fsrc[k+3]); else h='\0';
//T buffer[0]=c; buffer[1]=d; buffer[2]=e; buffer[3]='\0'; //T Tests only
//T printf("\nTests: **** tolower extension = %s\n",buffer); //T tests only
#ifndef UNIX_ONLY // OK for PC and UNIX / LINUX. Not OK for C strict
if(c=='a'&&d=='s'&&(e=='m'||e=='i'))
{L=1;A=1;printf("ASM\n");}
else if( (c=='b'&&d=='a'&&e=='s') || // bas
(c=='v'&&d=='b'&&e=='\0') || // Visual bacic
(c=='b'&&d=='a'&&e=='t') // bat
)
{L=1;B=1;printf("BASIC\n");}
else if(
( ((c=='c'||'h')&&d=='+'&&e=='+') || // c++, h++
((c=='c'||'h')&&d=='-'&&e=='-') || // c--, h--
((c=='c'||'h')&&d=='p'&&e=='p') || // cpp, hpp
(c=='c'&&d=='s'&&e=='s') || // css
(c=='c'&&d=='c'&&e=='\0') || // cc
(c=='h'&&d=='h'&&e=='\0') || // hh
(c=='c'&&d=='p'&&e=='\0') || // cp=c#
(c=='c'&&d=='s'&&e=='\0') || // cs=c#
(c=='c'&&d=='#'&&e=='\0') || // c#
(c=='c'&&d=='\0') || // C
(c=='h'&&d=='\0') || // h
(c=='d'&&d=='\0') || // D
(c=='p'&&d=='r')&&e=='o') || // pro prolog
//w see forward (c=='p'&&d=='l')&&d=='\0') || // pl perl, prolog
(c=='p'&&d=='h'&&e=='p') || // PHP
(c=='j'&&d=='a'&&e=='v') || // jav java
(c=='j'&&d=='s'&&e=='e') || // jse javascript
(c=='j'&&d=='s'&&e=='\0') // js javascript
)
{L=1;C=1;printf("C or PROLOG\n");}
else if(c=='f'&&d=='o'&&e=='r')
{L=1;F=1;printf("FORTRAN\n");}
else if(c=='p'&&d=='a'&&e=='s')
{L=1;P=1;printf("PASCAL\n");}
#endif
#ifndef PC_ONLY // OK for UNIX / LINUX
if(c=='s'&&d=='\0')
{L=1;A=1;printf("Assembler\n");}
else if(c=='f'&&d=='\0')
{L=1;F=1;printf("Fortran\n");}
else if(c=='p'&&d=='\0')
{L=1;P=1;printf("Pascal\n");}
/*w Attention, il n'est pas coutumier de donner des extensions aux fichiers
shell. Il serait utile de vérifier la première ligne si c est NULL. Pour
cela il faudrait ouvrir et refermer le fichier source. */
else if( (c=='s'&&d=='h'&&e=='\0') || // sh
(c=='c'&&d=='s'&&e=='h') || // csh
(c=='p'&&d=='l'&&e=='\0') || // pl perl
(c=='r'&&d=='b'&&e=='\0') || // rb ruby
(c=='p'&&d=='y'&&e=='\0') || // py python
(c=='p'&&d=='y'&&e=='w') || // pyw python
(c=='r'&&d=='\0') // ratfor
)
{L=1;S=1;printf("Shell\n");}
#endif
#ifdef UNIX_ONLY // C strict not in use with mkd see version.h
else if((c=='c'||c=='i'|| c=='h')&&d=='\0')
{L=1;C=1;printf("C strict\n");}
#endif
#ifndef ARGS_EXAM
else if( (c=='p'&&d=='r'&&e=='j') || // prj mkd
(c=='p'&&d=='j'&&e=='\0') // pj mkd
)
{L=1;j=1;printf("Project file\n");}
#endif
} /*S chercher */
/*O si le langage n'est pas trouvé: */
if(!L)
/*O alors: */
{ /*S*/
/*O mettre les drapeaux (options ABC... ) a 0 */
A=B=C=F=P=S=0;
/*O demander le type de langage du fichier et positionner le drapeau */
printf("\n*** Source file: language not found. (Enter A,B,C,F,P,S,l or p)\n");
#ifndef ARGS_EXAM
if(!j)printf("*** For project file: exit and use option -j.\n");
#endif
printf("Enter ESCAPE for exit ?:");
if(j)printf("\b\bor space_bar for Ignore ?: ");
if((c=getch())==0x1B){ /*S*/ printf("\n.Exit 1\n");exit(1);} /*S*/
else if(c=='A'||c=='a')A=1;
else if(c=='B'||c=='b')B=1;
else if(c=='C'||c=='c')C=1;
else if(c=='F'||c=='f')F=1;
else if(c=='P'||c=='p')P=1;
else if(c=='S'||c=='s')S=1;
else if (c=='l')l=1;
else if(c=='p')p=1;
else
{ /*S*/printf("\n.Exit 2\n"); exit(2);} /*S*/
printf("\n");
L=A+B+C+F+P+S;
/*O si aucun drapeau langage n'est positionne envoyer BEL */
if(!(L==1||p||l))putch(0x7);
putch('\n');
} /*S*/
} /*S find */

