comparison lwasm/pragma.c @ 165:566943f98f8d

Made pragma actually take multiple pragmas on one line
author lost
date Sat, 31 Jan 2009 18:22:02 +0000
parents b061350c17e4
children 6ddc861a07d4
comparison
equal deleted inserted replaced
164:586069fb17a1 165:566943f98f8d
61 char pragma[128]; 61 char pragma[128];
62 int c = 0; 62 int c = 0;
63 63
64 while (isspace(**optr)) 64 while (isspace(**optr))
65 (*optr)++; 65 (*optr)++;
66 66
67 while (c < 127 && **optr && !isspace(**optr)) 67 pragmaagain:
68 c = 0;
69 while (c < 127 && **optr && **optr != ',' && !isspace(**optr))
68 { 70 {
69 pragma[c++] = **optr; 71 pragma[c++] = **optr;
70 (*optr)++; 72 (*optr)++;
71 } 73 }
72 74
73 if (c == 0 || (**optr && !isspace(**optr))) 75 if (c == 0 || (**optr && **optr != ',' && !isspace(**optr)))
74 { 76 {
75 if (error) 77 if (error)
76 { 78 {
77 register_error(as, cl, 1, "Unrecognized pragma"); 79 register_error(as, cl, 1, "Unrecognized pragma");
78 } 80 }
116 { 118 {
117 *optr = NULL; 119 *optr = NULL;
118 } 120 }
119 } 121 }
120 } 122 }
123 if (**optr == ',')
124 {
125 (*optr)++;
126 goto pragmaagain;
127 }
121 } 128 }
122 129
123 OPFUNC(pseudo_pragma) 130 OPFUNC(pseudo_pragma)
124 { 131 {
125 pseudo_pragma_real(as, l, p, 1); 132 pseudo_pragma_real(as, l, p, 1);