FreeCalypso > hg > ueda-linux
annotate ueda/uschem-print/gschemcode.c @ 153:c147a730271f
KWH020ST23-F01.fp corrections:
1) Y geometry for the solder pads was wrong
2) add silk dots matching alignment holes in the FPC tail
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Thu, 24 Jun 2021 06:38:02 +0000 | 
| parents | cd92449fdb51 | 
| children | 
| rev | line source | 
|---|---|
| 0 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 1 /* | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 2 * We print gschem code in two places: symbols and graphblocks. | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 3 */ | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 4 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 5 #include <sys/types.h> | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 6 #include <ctype.h> | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 7 #include <stdio.h> | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 8 #include <strings.h> | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 9 #include "../libuschem/graphsym.h" | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 10 #include "../libuschem/schemstruct.h" | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 11 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 12 static char leftstr[] = "/left"; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 13 static char rightstr[] = "/right"; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 14 static char topstr[] = "/top"; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 15 static char bottomstr[] = "/bottom"; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 16 static char ctrstr[] = "/ctr"; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 17 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 18 char *gschem_text_halign[9] = {leftstr, leftstr, leftstr, | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 19 ctrstr, ctrstr, ctrstr, | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 20 rightstr, rightstr, rightstr}; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 21 char *gschem_text_valign[9] = {bottomstr,ctrstr, topstr, | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 22 bottomstr,ctrstr, topstr, | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 23 bottomstr,ctrstr, topstr}; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 24 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 25 #define MAXLINE 256 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 26 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 27 static FILE *inf; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 28 static char *pathname; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 29 static int lineno; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 30 static int issym, in_pinblock; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 31 static int linewidth, dashed; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 32 static int font_ptsize; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 33 static int varpin_count; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 34 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 35 print_gschem_code_sym(file, sym) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 36 FILE *file; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 37 struct graphsym *sym; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 38 { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 39 inf = file; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 40 pathname = sym->gs_pathname; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 41 lineno = 0; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 42 issym = 1; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 43 mymain(); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 44 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 45 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 46 print_gschem_code_graphblk(file, blk, orig_filename) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 47 FILE *file; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 48 struct graphblock *blk; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 49 char *orig_filename; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 50 { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 51 inf = file; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 52 pathname = orig_filename; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 53 lineno = blk->lineno; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 54 issym = 0; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 55 fseek(inf, blk->offset, 0); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 56 mymain(); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 57 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 58 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 59 static | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 60 mymain() | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 61 { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 62 char line[MAXLINE]; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 63 register char *cp; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 64 register int c; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 65 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 66 in_pinblock = 0; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 67 linewidth = -1; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 68 dashed = 0; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 69 font_ptsize = 0; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 70 varpin_count = 0; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 71 while (getline(line)) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 72 switch (line[0]) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 73 case '%': /* PS-like comments */ | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 74 case '\0': /* allow blank lines too */ | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 75 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 76 case '{': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 77 in_pinblock++; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 78 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 79 case '}': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 80 if (!in_pinblock) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 81 return; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 82 in_pinblock--; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 83 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 84 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 85 if (!isalpha(line[0])) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 86 inv: fprintf(stderr, "%s: line %d: invalid gschem code\n", | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 87 pathname, lineno); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 88 exit(1); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 89 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 90 for (cp = line; isalpha(*cp); cp++) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 91 ; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 92 if (!isspace(*cp)) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 93 goto inv; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 94 *cp++ = '\0'; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 95 while (isspace(*cp)) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 96 cp++; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 97 if (!strcmp(line, "PS")) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 98 if (strcmp(cp, "{")) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 99 goto inv; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 100 do_ps_block(); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 101 /* be safe about the graphics state */ | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 102 linewidth = -1; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 103 font_ptsize = 0; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 104 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 105 } else if (strlen(line) != 1) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 106 continue; /* ignore these */ | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 107 line[1] = ' '; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 108 /* dispatch by single-char type */ | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 109 switch (line[0]) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 110 case 'v': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 111 continue; /* ignore */ | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 112 /* simple graphics */ | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 113 case 'L': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 114 do_line(line); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 115 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 116 case 'B': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 117 do_box(line); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 118 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 119 case 'V': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 120 do_circle(line); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 121 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 122 case 'A': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 123 do_arc(line); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 124 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 125 case 'P': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 126 handle_pin(line); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 127 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 128 case 'T': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 129 handle_T_obj(line, lineno); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 130 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 131 default: | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 132 goto inv; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 133 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 134 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 135 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 136 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 137 static | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 138 do_line(objline) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 139 char *objline; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 140 { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 141 int numparams[10]; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 142 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 143 parse_numline(objline, lineno, numparams, 10); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 144 if (setdash(numparams[7], numparams[8], numparams[9]) < 0) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 145 return; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 146 setlinewidth(numparams[5]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 147 emit_coordpair(numparams[0], numparams[1]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 148 fputs("moveto ", stdout); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 149 emit_coordpair(numparams[2], numparams[3]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 150 puts("lineto stroke"); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 151 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 152 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 153 static | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 154 do_box(objline) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 155 char *objline; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 156 { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 157 int numparams[16]; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 158 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 159 parse_numline(objline, lineno, numparams, 16); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 160 switch (numparams[10]) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 161 case 0: | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 162 if (setdash(numparams[7], numparams[8], numparams[9]) < 0) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 163 return; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 164 setlinewidth(numparams[5]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 165 emit_coordpair(numparams[0], numparams[1]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 166 emit_coordpair(numparams[2], numparams[3]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 167 puts("rectstroke"); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 168 return; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 169 case 1: | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 170 emit_coordpair(numparams[0], numparams[1]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 171 emit_coordpair(numparams[2], numparams[3]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 172 puts("rectfill"); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 173 return; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 174 default: | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 175 fprintf(stderr, | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 176 "%s: line %d: fill type %d not implemented; object omitted\n", | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 177 pathname, lineno, numparams[10]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 178 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 179 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 180 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 181 static | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 182 do_circle(objline) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 183 char *objline; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 184 { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 185 int numparams[15]; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 186 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 187 parse_numline(objline, lineno, numparams, 15); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 188 switch (numparams[9]) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 189 case 0: | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 190 if (setdash(numparams[6], numparams[7], numparams[8]) < 0) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 191 return; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 192 setlinewidth(numparams[4]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 193 emit_coordpair(numparams[0], numparams[1]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 194 printf("%d circlestroke\n", numparams[2]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 195 return; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 196 case 1: | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 197 emit_coordpair(numparams[0], numparams[1]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 198 printf("%d circlefill\n", numparams[2]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 199 return; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 200 default: | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 201 fprintf(stderr, | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 202 "%s: line %d: fill type %d not implemented; object omitted\n", | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 203 pathname, lineno, numparams[9]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 204 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 205 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 206 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 207 static | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 208 do_arc(objline) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 209 char *objline; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 210 { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 211 int numparams[11]; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 212 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 213 parse_numline(objline, lineno, numparams, 11); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 214 if (!numparams[4]) /* degenerate? */ | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 215 return; /* ignore those */ | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 216 if (setdash(numparams[8], numparams[9], numparams[10]) < 0) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 217 return; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 218 setlinewidth(numparams[6]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 219 puts("newpath"); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 220 emit_coordpair(numparams[0], numparams[1]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 221 printf("%d %d %d%s%s arc stroke\n", numparams[2], numparams[3], | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 222 numparams[3] + numparams[4], numparams[4] > 0 ? "" : " exch", | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 223 issym ? " mirrorarc" : ""); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 224 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 225 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 226 static | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 227 setlinewidth(newval) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 228 { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 229 if (newval != linewidth) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 230 linewidth = newval; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 231 if (linewidth) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 232 printf("%d setlinewidth\n", linewidth); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 233 else | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 234 puts("defaultlinewidth setlinewidth"); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 235 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 236 return(0); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 237 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 238 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 239 static | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 240 setdash(dashstyle, dashlength, dashspace) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 241 { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 242 switch (dashstyle) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 243 case 0: | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 244 if (dashed) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 245 puts("setsolid"); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 246 dashed = 0; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 247 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 248 return(0); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 249 case 2: | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 250 printf("[%d %d] 0 setdash\n", dashlength, dashspace); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 251 dashed = 1; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 252 return(0); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 253 default: | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 254 fprintf(stderr, | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 255 "%s: line %d: dash style %d not implemented; object omitted\n", | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 256 pathname, lineno, dashstyle); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 257 return(-1); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 258 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 259 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 260 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 261 static | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 262 emit_coordpair(x, y) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 263 { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 264 printf("%d%s %d ", x, issym ? " mirror" : "", y); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 265 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 266 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 267 static | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 268 handle_pin(objline) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 269 char *objline; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 270 { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 271 int numparams[7]; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 272 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 273 parse_numline(objline, lineno, numparams, 7); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 274 printf("%d mirror %d %d mirror %d drawpin\n", numparams[0], | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 275 numparams[1], numparams[2], numparams[3]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 276 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 277 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 278 static | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 279 handle_T_obj(objline, objlineno) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 280 char *objline; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 281 { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 282 int numparams[9]; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 283 char textline[MAXLINE]; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 284 register int i; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 285 register char *cp; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 286 int readystr, isvarpin; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 287 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 288 parse_numline(objline, objlineno, numparams, 9); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 289 if (numparams[8] < 1) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 290 fprintf(stderr, "%s: line %d: T object: num_lines<1!\n", | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 291 pathname, objlineno); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 292 exit(1); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 293 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 294 if (numparams[8] > 1) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 295 fprintf(stderr, | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 296 "warning: multiline T objects not implemented (found in %s)\n", | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 297 pathname); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 298 for (i = numparams[8]; i; i--) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 299 if (!getline(textline)) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 300 fprintf(stderr, "%s: EOF in T object\n", pathname); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 301 exit(1); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 302 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 303 if (!numparams[4]) /* visible? */ | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 304 continue; /* nope */ | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 305 isvarpin = 0; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 306 if (issym) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 307 readystr = 0; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 308 cp = index(textline, '='); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 309 if (cp) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 310 cp++; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 311 if (!in_pinblock) /* we don't print */ | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 312 continue; /* top level attrs */ | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 313 if (!strcmp(cp, "%d")) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 314 isvarpin = 1; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 315 } else | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 316 cp = textline; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 317 } else { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 318 cp = textline; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 319 readystr = (cp[0] == '('); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 320 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 321 if (numparams[7] < 0 || numparams[7] > 8) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 322 fprintf(stderr, | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 323 "%s: line %d: T object: alignment %d is invalid\n", | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 324 pathname, objlineno, numparams[7]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 325 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 326 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 327 if (font_ptsize != numparams[3]) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 328 font_ptsize = numparams[3]; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 329 printf("/Helvetica %d selisofnt\n", font_ptsize); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 330 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 331 if (isvarpin) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 332 printf("pins %d get", varpin_count++); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 333 else if (readystr) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 334 fputs(cp, stdout); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 335 else | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 336 emit_ps_string(cp); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 337 printf(" %s%s %s %d ", gschem_text_halign[numparams[7]], | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 338 issym ? " mirrortext" : "", | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 339 gschem_text_valign[numparams[7]], numparams[6]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 340 emit_coordpair(numparams[0], numparams[1]); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 341 puts("Tshow"); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 342 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 343 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 344 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 345 static | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 346 parse_numline(line, lineno, numarray, nfields) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 347 char *line; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 348 int lineno; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 349 int *numarray; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 350 int nfields; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 351 { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 352 register char *cp, *np; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 353 register int i; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 354 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 355 for (i = 0, cp = line+1; i < nfields; i++) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 356 if (!isspace(*cp)) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 357 inv: fprintf(stderr, "%s: line %d: invalid numeric line\n", | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 358 pathname, lineno); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 359 exit(1); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 360 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 361 while (isspace(*cp)) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 362 cp++; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 363 np = cp; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 364 if (*cp == '-') | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 365 cp++; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 366 if (!isdigit(*cp)) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 367 goto inv; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 368 while (isdigit(*cp)) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 369 cp++; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 370 numarray[i] = atoi(np); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 371 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 372 if (*cp) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 373 goto inv; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 374 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 375 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 376 static | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 377 getline(linebuf) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 378 char *linebuf; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 379 { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 380 register char *cp; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 381 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 382 if (fgets(linebuf, MAXLINE, inf) == NULL) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 383 return(0); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 384 lineno++; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 385 /* strip trailing newline or other whitespace */ | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 386 cp = index(linebuf, '\0'); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 387 while (cp > linebuf && isspace(cp[-1])) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 388 cp--; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 389 *cp = '\0'; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 390 return(1); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 391 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 392 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 393 static | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 394 do_ps_block() | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 395 { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 396 register int c, n; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 397 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 398 for (n = 0; ; ) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 399 c = getc(inf); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 400 switch (c) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 401 case EOF: | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 402 badeof: fprintf(stderr, "%s: EOF in a PS block\n", pathname); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 403 exit(1); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 404 case '%': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 405 for (;;) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 406 c = getc(inf); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 407 if (c == EOF) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 408 goto badeof; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 409 if (c == '\n') | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 410 break; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 411 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 412 /* FALL THRU */ | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 413 case '\n': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 414 putchar(c); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 415 lineno++; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 416 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 417 case '(': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 418 putchar(c); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 419 skip_over_ps_string(); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 420 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 421 case ')': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 422 fprintf(stderr, | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 423 "%s: line %d: unmatched \')\' in a PS block", | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 424 pathname, lineno); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 425 exit(1); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 426 case '{': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 427 putchar(c); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 428 n++; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 429 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 430 case '}': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 431 if (!n) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 432 goto out; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 433 putchar(c); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 434 n--; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 435 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 436 default: | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 437 putchar(c); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 438 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 439 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 440 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 441 out: c = getc(inf); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 442 if (c != '\n') { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 443 fprintf(stderr, | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 444 "%s: line %d: '}' closing PS block must be directly followed by newline\n", | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 445 pathname, lineno); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 446 exit(1); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 447 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 448 lineno++; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 449 putchar(c); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 450 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 451 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 452 static | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 453 skip_over_ps_string() | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 454 { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 455 register int c, n; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 456 | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 457 for (n = 1; n > 0; ) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 458 c = getc(inf); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 459 if (c == EOF) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 460 badeof: fprintf(stderr, "%s: EOF in a PS block\n", pathname); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 461 exit(1); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 462 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 463 putchar(c); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 464 switch (c) { | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 465 case '\n': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 466 lineno++; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 467 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 468 case '(': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 469 n++; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 470 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 471 case ')': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 472 n--; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 473 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 474 case '\\': | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 475 c = getc(inf); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 476 if (c == EOF) | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 477 goto badeof; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 478 putchar(c); | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 479 if (c == '\n') | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 480 lineno++; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 481 continue; | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 482 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 483 } | 
| 
cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
 Space Falcon <falcon@ivan.Harhan.ORG> parents: diff
changeset | 484 } | 
