File:  [RetroPC.NET] / np2 / win9x / np2arg.cpp
Revision 1.1: download - view: text, annotated - select for diffs
Fri Oct 17 02:58:42 2003 JST (22 years ago) by yui
Branches: MAIN
CVS tags: HEAD
Initial revision

#include	"compiler.h"
#include	"dosio.h"
#include	"np2arg.h"

												// ver0.26 np2arg.cpp append
// コマンドラインの解析

// OS依存しそうなので 切り分けます。


#define	MAXARG		32
#define	ARG_BASE	0				// win32のlpszCmdLineの場合
									// 実行ファイル名無し

	NP2ARG_T	np2arg = {{NULL, NULL, NULL, NULL},
							NULL, FALSE};

// ---------------------------------------------------------------------

// win32の場合 コマンドラインが stringが返ってくる・・・

static char argstrtmp[1024];

void np2arg_analize(char *argstr) {

	int		np2argc;
	char	*np2argv[MAXARG];
	int		i;
	int		drv = 0;
	char	c;
const char	*p;

	milstr_ncpy(argstrtmp, argstr, sizeof(argstrtmp));
	np2argc = milstr_getarg(argstrtmp, np2argv, sizeof(argstrtmp));

	for (i=ARG_BASE; i<np2argc; i++) {
		c = np2argv[i][0];
		if ((c == '/') || (c == '-')) {
			switch(np2argv[i][1]) {
				case 'F':
				case 'f':
					np2arg.fullscreen = TRUE;
					break;
				case 'I':
				case 'i':
					if (!np2arg.ini) {
						np2arg.ini = np2argv[i];
					}
					break;
			}
		}
		else {														// ver0.29
			p = file_getext(np2argv[i]);
			if (!file_cmpname(p, "INI")) {
				if (!np2arg.ini) {
					np2arg.ini = np2argv[i];
				}
			}
			else {
				if (drv < 4) {
					np2arg.disk[drv++] = np2argv[i];
				}
			}
		}
	}
}


RetroPC.NET-CVS <cvs@retropc.net>