/*Copyright (C) 1992, 1996 by Thomas Glen Smith. All Rights Reserved.*/ /* aplfopn APL2 V1.0.0 ************************************************* * Called from aplrun, aplread and aplwrite to parse a file name and * * open it. * ***********************************************************************/ #define INCLUDES STDIO+APLCHDEF #include "includes.h" void *aplfopn(cp,cpend,mode) char *cp; /* Pointer to char after right parenthesis. */ char *cpend; /* Pointer to end of command text. */ char *mode; /* File mode, e.g. "r", "w", etc. */ { Aplscan; extern int aplerr; FILE *fp; int code; char *s; if (cp == cpend) aplerr = 58; /* syntax error - no file name supplied */ else { s = cp; /* save possible pointer to first non-blank */ if (SPACE != (code = aplscan(&s,cpend))) s = cp; /* s == 1st nonblank */ else if (s == cpend) aplerr = 58; /* syntax error - no file name */ } if (aplerr) return(NULL); if (NULL != (fp = fopen(s,mode))) return(fp); /* File successfully opened. */ errinit(); /* Clear error indicators. */ aplerr = 102; /* can't open file */ return(NULL); }