/*Copyright (C) 1992, 1996 by Thomas Glen Smith. All Rights Reserved.*/ /* apldrop APL2 V1.0.0 ************************************************* * Called from aplwksp to do )DROP. * ***********************************************************************/ #define INCLUDES APLDOS+APLCB #include "includes.h" void apldrop(rite,cp,cpend) Aplcb rite; /* aplcb for command text */ char *cp; /* Pointer to first char of filename */ char *cpend; /* Pointer to end of command text */ { #define MAXNAME 80 char *q,*work,filename[MAXNAME+4]; #if APL_DOS static char *qual=".APL"; #else extern int errno; static char *qual=".apl"; #endif int i,j; if (0 >= (j = cpend-cp)) return; /* get out if no name supplied */ j = (j > MAXNAME) ? MAXNAME : j; /* allow only MAXNAME chars */ for (i = 0, work = filename; i < j; i++) *work++ = *(cp+i); q = qual; while('\0' != (*work++ = *q++)); #if APL_DOS bdosx(0x41,filename,0x00); /* delete file */ i = errno; /* save error, if any */ #else i = unlink(filename); #endif errno = 0; /* reset error, if any */ if (i) execmsg(cp,j,j,"not deleted"); else execmsg(cp,j,j,"deleted"); }