/*Copyright (C) 1992, 1996 by Thomas Glen Smith. All Rights Reserved.*/ /* aplparfn APL2 V1.0.0 ************************************************ * Called from aplsave and aplloae to parse a file name. * ***********************************************************************/ #define INCLUDES APLMEM+APLCHDEF #include "includes.h" char *aplparfn(cp,cpend) char *cp; /* Pointer to start to string containing file name */ char *cpend; /* Pointer to end of string */ { Aplscan; char *r,*s,*t,*u; int code,i; if (cp == cpend) return(NULL); /* no file name supplied */ s = cp; /* save possible pointer to 1st nonblank */ if (SPACE != (code = aplscan(&s,cpend))) s = cp; /* s == 1st nonblank */ else if (s == cpend) return(NULL); /* no file name supplied */ for ( u = t = s ; u < cpend ; u = t ) code = aplscan(&t,cpend); if (SPACE == code) t = u; /* u == end of filename */ if (NULL == (r = u = malloc(5 + (i = t - s)))) return(NULL); /* out of memory */ while(i--) *u++ = *s++; /* copy file name */ *u++ = '.'; *u++ = 'a'; *u++ = 'p'; *u++ = 'l'; *u = '\0'; /* delimiter */ return(r); /* return pointer to file name string */ }