Lines Matching refs:reader

30  * The implementation of the HPGL reader.                              *
44 static int base32_decode (hpgs_reader *reader, unsigned *value)
53 if (reader->last_byte == EOF) return -1;
55 reader->last_byte &= 0x7f;
57 if (reader->last_byte > 94)
58 digit = reader->last_byte - 95;
60 digit = reader->last_byte - 63;
66 if (reader->last_byte > 94) return 0;
71 if (reader->last_byte > 32) return -1;
73 reader->last_byte = hpgs_getc(reader->in);
79 static int base64_decode (hpgs_reader *reader, unsigned *value)
88 if (reader->last_byte == EOF) return -1;
90 if (reader->last_byte > 190)
91 digit = reader->last_byte - 191;
93 digit = reader->last_byte - 63;
99 if (reader->last_byte > 190) return 0;
104 if (reader->last_byte > 32) return -1;
106 reader->last_byte = hpgs_getc(reader->in);
111 static int int_decode (hpgs_reader *reader, int *value, int b32)
116 { if (base32_decode(reader,&uval)) return -1; }
118 { if (base64_decode(reader,&uval)) return -1; }
129 static int double_decode (hpgs_reader *reader, double *value,
134 if (int_decode(reader,&int_val,b32))
141 static int coord_decode (hpgs_reader *reader, hpgs_point *p,
144 if (double_decode (reader,&p->x,fract_fac,b32)) return -1;
145 reader->last_byte = hpgs_getc(reader->in);
146 if (double_decode (reader,&p->y,fract_fac,b32)) return -1;
150 hpgs_matrix_scale (p,&reader->total_matrix,p);
151 p->x+=reader->current_point.x;
152 p->y+=reader->current_point.y;
156 hpgs_matrix_xform (p,&reader->total_matrix,p);
163 int hpgs_reader_do_PE(hpgs_reader *reader)
172 reader->pen_down = 1;
180 reader->last_byte = hpgs_getc(reader->in);
182 if (reader->last_byte == EOF || reader->last_byte == ';')
184 reader->eoc = 1;
185 reader->bytes_ignored = 0;
189 switch (reader->last_byte & 0x7f)
196 reader->pen_down = 0;
201 reader->last_byte = hpgs_getc(reader->in);
202 if (int_decode(reader,&pen,b32)) return -1;
203 if (hpgs_reader_do_setpen(reader,pen)) return -1;
209 reader->last_byte = hpgs_getc(reader->in);
210 if (int_decode(reader,&fract_bits,b32)) return -1;
218 reader->pen_down = 0;
225 if (isspace(reader->last_byte)) break;
227 if (coord_decode(reader,&p,fract_fac,b32,rel))
234 if (reader->last_byte != EOF)
236 reader->eoc = 1;
237 reader->bytes_ignored = 1;
245 hpgs_log("p,down,rect = (%lg,%lg),%d,%d.\n",p.x,p.y,reader->pen_down,rect);
250 if (hpgs_reader_checkpath(reader)) return -1;
252 if (hpgs_reader_moveto(reader,&p0)) return -1;
260 if (hpgs_reader_lineto(reader,&pp)) return -1;
261 if (hpgs_reader_lineto(reader,&p))
265 if (hpgs_reader_lineto(reader,&pp)) return -1;
266 if (hpgs_reader_lineto(reader,&p0)) return -1;
268 if (!reader->polygon_mode &&
269 hpgs_reader_fill(reader,1)) return -1;
271 reader->pen_down = 1;
275 if (reader->pen_down)
277 if (hpgs_reader_lineto(reader,&p)) return -1;
281 if (hpgs_reader_checkpath(reader)) return -1;
282 if (hpgs_reader_moveto(reader,&p)) return -1;
285 reader->pen_down = 1;