/* input.c * last revised at 16, October, 1995 * * magic input * Copyright (C) 1994-5, All rights reserved. * written by Gyudong Kim(chilly@iclab.snu.ac.kr) * */ #include "findhier.h" static char buf[BUFSIZE]; void seek_char(a, mag) char a; FILE *mag; { register int c; while ((c = fgetc(mag))!=EOF) { if (c==a) return; } } static int skip_blank(mag) FILE *mag; { register int c; while((c=fgetc(mag))!=EOF) { if (!isspace(c)) return(c); } return(EOF); } static void look_for_u(mag) FILE *mag; { register int c; char tmp[3]; c = skip_blank(mag); while(c!=EOF) { if (c=='u') { if (fgets(tmp,3,mag)==NULL) return; if (!strncmp(tmp,"se",2)) return; } seek_char('\n',mag); c = skip_blank(mag); } return; } static char *token(mag) FILE *mag; { register int c,i; i = 0; c = skip_blank(mag); while (c!=EOF) { if (isspace(c)||i>=BUFSIZE-1) { buf[i] = 0; return(buf); } buf[i]=c; i++; c = fgetc(mag); } buf[i]=0; return(buf); } /* * ignore prefixed spaces * determine the first word is "use" * if not, ignore. * if so, get the next word * skip until it reaches an end of line. * & return the word */ char *getmagline(mag) FILE *mag; { char *tmp; look_for_u(mag); tmp = token(mag); if (tmp[0]) return(tmp); return((char *)NULL); } /* input.c */