#include <ctype.h>
#include <doslibm.h>
#include "deftype.h"
#include "amacro.h"
#include "astring.h"

int GetDriveParam(int cdv,unchar *line,int *edrv)
/* ドライブ間指定を得る */
/* ?-?,?-,-?,.=カレント */
{
int sdrv,c0,c1,c2;
int dv;
	sdrv=0; /* A:から */
	*edrv=CHGDRV(26+1)-1; /* 全ドライブ数（仮想も含む）*/
	if (line[0]==0) return(sdrv);
	
	/* [0][1][2]だけが有効 */
	c0=line[0];
	c1=line[1];
	c2=line[2];
	switch (c0) {
		case '.': /* ｶﾚﾝﾄ */
			sdrv=cdv;
			break;
		case '-': /* -? */
			c2=c1; /* ずらす */
			c1=c0;
			break;
		default:
			dv=fd_drv(c0);
			if (dv>=0) {
				if (dv<=*edrv) sdrv=dv;
				if (c1==0) *edrv=dv; /* ?=単一ドライブ指定 */
			}
	}
	if (c1=='-') { /* ?-? */
		if (c2=='.') *edrv=cdv;
		dv=fd_drv(c2);
		if (dv>=0) {
			if (dv<=*edrv) *edrv=dv;
		}
	}
	if (*edrv<sdrv) { /* 区間指定が逆の時は入れ替える */
		c0=sdrv;
		sdrv=*edrv;
		*edrv=c0;
	}
	return(sdrv);
}
