FreeCalypso > hg > ueda-linux
comparison ueda/uschem-print/papersize.c @ 0:cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
| author | Space Falcon <falcon@ivan.Harhan.ORG> |
|---|---|
| date | Mon, 20 Jul 2015 00:24:37 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:cd92449fdb51 |
|---|---|
| 1 #include <stdio.h> | |
| 2 #include <ctype.h> | |
| 3 #include <strings.h> | |
| 4 | |
| 5 extern int printsize_x, printsize_y; | |
| 6 | |
| 7 struct paper_size_kwtab { | |
| 8 char *keyword; | |
| 9 int xdim; | |
| 10 int ydim; | |
| 11 } paper_sizes[] = { | |
| 12 {"letter", 792, 612}, | |
| 13 {"legal", 1008, 612}, | |
| 14 {"ledger", 1224, 792}, | |
| 15 {"tabloid", 1224, 792}, | |
| 16 {"11x17", 1224, 792}, | |
| 17 {"A", 792, 612}, | |
| 18 {"B", 1224, 792}, | |
| 19 {"C", 1584, 1224}, | |
| 20 {"D", 2448, 1584}, | |
| 21 {"E", 3168, 2448}, | |
| 22 {NULL, 0, 0} | |
| 23 }; | |
| 24 | |
| 25 set_paper_size(str) | |
| 26 char *str; | |
| 27 { | |
| 28 struct paper_size_kwtab *kwp; | |
| 29 register char *cp, *np; | |
| 30 | |
| 31 for (kwp = paper_sizes; kwp->keyword; kwp++) | |
| 32 if (!strcmp(str, kwp->keyword)) { | |
| 33 printsize_x = kwp->xdim; | |
| 34 printsize_y = kwp->ydim; | |
| 35 return; | |
| 36 } | |
| 37 | |
| 38 cp = str; | |
| 39 if (!isdigit(*cp)) { | |
| 40 inv: fprintf(stderr, | |
| 41 "uschem-print: -P %s: invalid paper size specification\n", | |
| 42 str); | |
| 43 exit(1); | |
| 44 } | |
| 45 for (np = cp; isdigit(*cp); cp++) | |
| 46 ; | |
| 47 if (*cp++ != 'x') | |
| 48 goto inv; | |
| 49 printsize_x = atoi(np); | |
| 50 if (!isdigit(*cp)) | |
| 51 goto inv; | |
| 52 for (np = cp; isdigit(*cp); cp++) | |
| 53 ; | |
| 54 if (*cp) | |
| 55 goto inv; | |
| 56 printsize_y = atoi(np); | |
| 57 } |
