#include "bbs.h"

extern int gnsflag,MaxDirs,DirScan,StartDir;

/***************************************************************************\
*                                                                           *
*                        int GetDirSpan(char pass[40])                      *
*                                                                           *
\***************************************************************************/

int GetDirSpan(char *pass)
{
char str[200];
int mystat;

 if(pass[0]=='\0') {
	    sprintf(str,"Directories: (1-%d), (All), (Upload), (Enter)=none? ",MaxDirs);
 	AEPutStr(str);
	    mystat=LineInput("",str,8,KEYBOARD_TIMEOUT);
	    if(mystat<0) { return(NO_CARRIER); }
	    if(strlen(str)==0) {
		    AEPutStr("\r\n");
		    return(FAILURE);
		}
	} else
	    strcpy(str,pass);

 gnsflag=CheckForNS(str);             /* check for Non-Stop */

 if((str[0]=='U')||(str[0]=='u')) {   /* Scan only upload directory */
	    DirScan=MaxDirs;
	    StartDir=DirScan;
	    goto MNCont;
	}
 if((str[0]=='A')||(str[0]=='a')) {                /* scan all dirs */
	    DirScan=MaxDirs;
	    StartDir=1;
	    goto MNCont;
	}
 if((str[0]=='L')||(str[0]=='l')) {
         DirScan=0;
         StartDir=0;
         goto MNCont;
     }
 if((str[0]=='H'||str[0]=='h')&&User.Sec_Status>200) {
	    DirScan=-1;
	    StartDir=-1;
	    goto MNCont;
	}
 //strcat(str," ");
 DirScan=atoi(str);
 //sscanf(str,"%d",&DirScan);
 if(DirScan>MaxDirs||DirScan<1) {
	    AEPutStr("No such directory.\r\n\r\n");
	    return(FAILURE);
	}
 StartDir=DirScan;

 MNCont:
 gnsflag=CheckForNS(str);
 return(SUCCESS);
}
