Initial version of donated sources by Avertec, 3.4p5.
[tas-yagle.git] / distrib / sources / tas / tma / tma_files.c
1 /****************************************************************************/
2 /* */
3 /* Chaine de CAO & VLSI Alliance */
4 /* */
5 /* Produit : TMA Version 1 */
6 /* Fichier : tma_files.c */
7 /* */
8 /* (c) copyright 1997-1998 Laboratoire LIP6 equipe ASIM */
9 /* Tous droits reserves */
10 /* Support : e-mail alliance-support@asim.lip6.fr */
11 /* */
12 /* Auteur(s) : Gilles AUGUSTINS */
13 /* */
14 /****************************************************************************/
15
16 #include "tma.h"
17
18 /****************************************************************************/
19
20 chain_list *tma_ReadFileNames (char *filein)
21 {
22 chain_list *filechain = NULL;
23 char buf[1024];
24 char mode[1024];
25 int c;
26 FILE *file;
27
28 if (!(file = mbkfopen (filein, NULL, READ_TEXT))) {
29 fprintf (stderr, "WARNING : no file %s\n", filein);
30 return NULL;
31 }
32
33 while (1) {
34 c = fscanf (file, "%s%s\n", buf, mode);
35 if ((char)c != EOF) {
36 if (c)
37 filechain = addchain (filechain, namealloc (buf));
38 else {
39 fprintf (stderr, "WARNING : syntax error in file %s\n", filein);
40 return NULL;
41 }
42 } else
43 break;
44 }
45
46 fclose (file);
47
48 return filechain;
49 }
50
51 /****************************************************************************/
52
53 chain_list *tma_ReadFileBehModes (char *filein)
54 {
55 chain_list *behchain = NULL;
56 char buf[1024];
57 char mode[1024];
58 int c, t, r, w;
59 FILE *file;
60
61 if (!(file = mbkfopen (filein, NULL, READ_TEXT))) {
62 fprintf (stderr, "WARNING : no file %s\n", filein);
63 return NULL;
64 }
65
66 while (1) {
67 c = fscanf (file, "%s%s\n", buf, mode);
68 if ((char)c != EOF) {
69 if (c) {
70 switch (mode[0]) {
71 case 'T' :
72 case 't' :
73 t = 'T';
74 behchain = addchain (behchain, (void*)(long)t);
75 break;
76 case 'W' :
77 case 'w' :
78 w = 'W';
79 behchain = addchain (behchain, (void*)(long)w);
80 break;
81 case 'R' :
82 case 'r' :
83 r = 'R';
84 behchain = addchain (behchain, (void*)(long)r);
85 break;
86 default :
87 fprintf (stderr, "WARNING : syntax error in file %s, ", filein);
88 fprintf (stderr, "mode T, W, R expected\n");
89 behchain = addchain (behchain, (void*)(long)t);
90 }
91 } else {
92 fprintf (stderr, "WARNING : syntax error in file %s\n", filein);
93 return NULL;
94 }
95 } else
96 break;
97 }
98
99 fclose (file);
100
101 return behchain;
102 }