malt-wr
lineread.c
Go to the documentation of this file.
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 
5 #include "constype.h"
6 
7 void nrerror(char *error_text)
8 {
9  fprintf(stderr,"run-time error...");
10  fprintf(stderr,"%s\n",error_text);
11  exit(1);
12 }
13 
14 
15 int read_long_line(FILE *fp, char* line, int *line_no)
16 {
17  if(fgets(line, LONG_LINE_LENGTH, fp)!=NULL)
18  {
19  (*line_no)++;
20  return 1;
21  }
22  else
23  return 0;
24 }
25 
26 
27 void error_in_line(char* filename, int line_num, char*line)
28 {
29  printf("ERROR IN FILE %s LINE: %d\n%s\n", filename, line_num, line);
30  exit(255);
31 }
32 
33 
35 {
36  printf("UNEXPECTED END OF FILE: %s\n", filename);
37  exit(255);
38 }
39 
40 
41 int blank_line(char *line)
42 {
43  int i=0, n=strlen(line);
44 
45  while(i<n)
46  {
47  if(!isspace(line[i++]))
48  return 0;
49  }
50  return 1;
51 }
52 
53 
54 int skip_arg(char * line, int arg_num)
55 {
56  int i=0, k;
57  int line_length = strlen(line);
58 
59  for(k=0; k<arg_num; k++)
60  {
61  while(isspace(line[i]) && (i<line_length))
62  i++;
63  while(!isspace(line[i]) && (i<line_length))
64  i++;
65  }
66 
67  while(isspace(line[i]) && (i<line_length))
68  i++;
69 
70  return i;
71 }
72 
73 FILE *open_file(char * filename, char *mode)
74 {
75  FILE *fp;
76 
77  if ((fp=fopen(filename, mode)) == NULL) {
78  fprintf(stderr, "ERROR:\nCannot open file: %s\n\n", filename);
79  exit(255);
80  }
81  else
82  return fp;
83 }
84 
85 
#define LONG_LINE_LENGTH
Definition: constype.h:5
int read_long_line(FILE *fp, char *line, int *line_no)
Definition: lineread.c:15
int skip_arg(char *line, int arg_num)
Definition: lineread.c:54
void nrerror(char *error_text)
Definition: lineread.c:7
void error_in_line(char *filename, int line_num, char *line)
Definition: lineread.c:27
void unexpctd_eof(char *filename)
Definition: lineread.c:34
FILE * open_file(char *filename, char *mode)
Definition: lineread.c:73
static char line[LONG_LINE_LENGTH]
Definition: collect.c:7
int blank_line(char *line)
Definition: lineread.c:41
static char filename[LINE_LENGTH]
Definition: optimize.c:35