2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / libf2c / libI77 / xwsne.c
blob68b606c8276c3d62573920dcb1c6691eee7637c2
1 #include "config.h"
2 #include "f2c.h"
3 #include "fio.h"
4 #include "lio.h"
5 #include "fmt.h"
7 extern int f__Aquote;
9 static void
10 nl_donewrec (void)
12 (*f__donewrec) ();
13 PUT (' ');
16 #include <string.h>
18 void
19 x_wsne (cilist * a)
21 Namelist *nl;
22 char *s;
23 Vardesc *v, **vd, **vde;
24 ftnint number, type;
25 ftnlen *dims;
26 ftnlen size;
27 extern ftnlen f__typesize[];
29 nl = (Namelist *) a->cifmt;
30 PUT ('&');
31 for (s = nl->name; *s; s++)
32 PUT (*s);
33 PUT (' ');
34 f__Aquote = 1;
35 vd = nl->vars;
36 vde = vd + nl->nvars;
37 while (vd < vde)
39 v = *vd++;
40 s = v->name;
41 #ifdef No_Extra_Namelist_Newlines
42 if (f__recpos + strlen (s) + 2 >= L_len)
43 #endif
44 nl_donewrec ();
45 while (*s)
46 PUT (*s++);
47 PUT (' ');
48 PUT ('=');
49 number = (dims = v->dims) ? dims[1] : 1;
50 type = v->type;
51 if (type < 0)
53 size = -type;
54 type = TYCHAR;
56 else
57 size = f__typesize[type];
58 l_write (&number, v->addr, size, type);
59 if (vd < vde)
61 if (f__recpos + 2 >= L_len)
62 nl_donewrec ();
63 PUT (',');
64 PUT (' ');
66 else if (f__recpos + 1 >= L_len)
67 nl_donewrec ();
69 f__Aquote = 0;
70 PUT ('/');