#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <error.h>
#include <ctype.h>
#ifndef TRUE
#define TRUE (0==0)
#define FALSE (0!=0)
#endif
int main(int argc, char **argv)
{
  int code = FALSE;
  FILE *in;
  char *infile, *s, line[1024];
  if (argc != 2) {
    fprintf(stderr, "syntax: prepare file.txt\n");
    exit(1);
  }
  infile = argv[1];
  in = fopen(infile, "r");
  if (in == NULL) {
    fprintf(stderr, "prepare: cannot open %s - %s\n", infile, strerror(errno));
    exit(1);
  }
  for (;;) {
    s = fgets(line, 1024, in);
    if (s == NULL) break;
    s = strchr(line, '\n'); if (s) *s = '\0';
    if (strncmp(line, "0\"CODE\"", strlen("0\"CODE\"")) == 0) {
      char *t;
      code = TRUE;
      s = line + strlen("0\"CODE\"");
      if (*s == '"') s += 1;
      while (*s == ' ') s += 1;
      t = s;
      while (isdigit(*t)) t += 1; *t = '\0';
      fprintf(stdout, "================== %s =================\n", s);
    } else if (strstr(line, "\"EOP\"") != NULL) {
      code = FALSE;
    } else if (code) {
      if (strncmp(line, "1SECTION : 5.1.2.2.3", strlen("1SECTION : 5.1.2.2.3")) == 0) {
        fprintf(stderr, "Skipping faulty lines:\n    %s\n", line);
	s = fgets(line, 1024, in);
	if (s == NULL) break;
	s = strchr(line, '\n'); if (s) *s = '\0';
        fprintf(stderr, "    %s\n", line);
	s = fgets(line, 1024, in);
	if (s == NULL) break;
	s = strchr(line, '\n'); if (s) *s = '\0';
        fprintf(stderr, "    %s\n", line);
      } else fprintf(stdout, "%s\n", line);
    }
  }
}
