16 struct extension acceptable = {
'U',
'u',
'u'};
19 int usage_extension(
char *s)
21 fprintf(stderr,
"Incorrect extension: %s\n",s);
22 fprintf(stderr,
" File extension must be of the form \".%c%c%c\"\n",
23 acceptable.RC,acceptable.ind1,acceptable.ind2);
24 if (acceptable.RC==
'U') fprintf(stderr,
" U means R, C or U\n");
25 if ((acceptable.ind1==
'u') || (acceptable.ind2==
'u'))
26 fprintf(stderr,
" u means i, d or u\n");
30 int verif_ext_fic (
char *s,
char *ext)
33 if (strlen(s) < 4) usage_extension(s);
34 acceptable.RC = ext[0];
35 acceptable.ind1 = ext[1];
36 acceptable.ind2 = ext[2];
37 NOM = (
char *)malloc(strlen(s)+1);
38 if (NOM == NULL) {perror(
"malloc NOM");exit(2);}
47 if ((*t !=
'R') && (*t !=
'C') && (*t !=
'U'))
return usage_extension(NOM);
48 if ((acceptable.RC ==
'R') && (*t !=
'R'))
return usage_extension(NOM);
49 if ((acceptable.RC ==
'C') && (*t !=
'C'))
return usage_extension(NOM);
52 if ((*t !=
'i') && (*t !=
'd') && (*t !=
'u'))
return usage_extension(NOM);
53 if ((acceptable.ind1 ==
'i') && (*t !=
'i'))
return usage_extension(NOM);
54 if ((acceptable.ind1 ==
'd') && (*t !=
'd'))
return usage_extension(NOM);
57 if ((*t !=
'i') && (*t !=
'd') && (*t !=
'u'))
return usage_extension(NOM);
58 if ((acceptable.ind2 ==
'i') && (*t !=
'i'))
return usage_extension(NOM);
59 if ((acceptable.ind2 ==
'd') && (*t !=
'd'))
return usage_extension(NOM);
61 NOMsz = (
char *)malloc(strlen(NOMBASE)+4);
62 if (NOMsz == NULL) {perror(
"malloc NOMsz");exit(2);}
63 sprintf(NOMsz,
"%s.sz",s);
65 NOMbk = (
char *)malloc(strlen(NOMBASE)+4);
66 if (NOMbk == NULL) {perror(
"malloc NOMbk");exit(2);}
67 sprintf(NOMbk,
"%s.bk",s);
69 NOMcd = (
char *)malloc(strlen(NOMBASE)+4);
70 if (NOMcd == NULL) {perror(
"malloc NOMcd");exit(2);}
71 sprintf(NOMcd,
"%s.cd",s);