|
|
1.1 root 1: /*******************************************************************
2: * *
3: * File: CIFPLOT/readpat.c *
4: * Written by Dan Fitzpatrick *
5: * copyright 1980 -- Regents of the University of California *
6: * *
7: ********************************************************************/
8:
9: #include <stdio.h>
10: #include "defs.h"
11:
12: #define STRING 2
13: #define INTEGER 1
14:
15: extern int lncnt;
16:
17: FILE *patfile;
18: int patval;
19: char *patstr;
20:
21: readpat(s)
22: char *s;
23: {
24: int *pat;
25: int i,j;
26:
27: if((patfile = fopen(s,"r")) == NULL) {
28: perror(s);
29: Error("Can't open pattern file",RUNTIME);
30: }
31: /* Read name followed by NO_PAT_LINE (8) integers */
32: i = yylex();
33: while(i == STRING) {
34: /* Allocate space for NO_PAT_LINE (8) integers */
35: pat = (int *) alloc(NO_PAT_LINE * sizeof(int));
36: for(j=0; j<NO_PAT_LINE; j++) {
37: if(yylex() != INTEGER) {
38: sprintf(s,"Expected integer in pattern file. (line %d)",lncnt);
39: Error(s,RUNTIME);
40: }
41: pat[j] = patval;
42: }
43: /* Enter the names and integers into layer table */
44: CreatLayer(patstr,pat);
45: i = yylex();
46: }
47: if(i != 0) {
48: sprintf(s,"Expected name in pattern file. (line %d)",lncnt);
49: Error(s,RUNTIME);
50: }
51: fclose(patfile);
52: }
53:
54: unquote(s)
55: char *s;
56: /* remove quotes from around the string s */
57: {
58: char *p;
59:
60: if(*s == '\"') s++;
61: for(p=s;*p && *p != '\"';p++);
62: *p = '\0';
63: return(Concat(s,0));
64: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.