/* インダイレクションファイルから引数を得る準備をする関数 */

#include <stdio.h>
#include <io.h>
#include "defines.h"
#include "abuff.h"
#include "aparam.h"

int IndirectGet(unchar *fname,unchar *(*work),unchar *argv[],int mode,int max)
{
FILE *fp;
#define	LMAX	256
unchar line[LMAX],*work2;
int len;
	// インダイレクションファイルオープン
	fp=fopen(fname,"rt");
	if (fp==NULL) return(-1);
	// インダイレクション用ワークエリア確保
	if ((
		*work=newmalloc(filelength(fileno(fp)))
		)==NULL) return(-2);
	// インダイレクション読み込み
	work2=*work;
	while (fgets(work2,LMAX,fp)!=NULL) {
		len=strlen(work2);
		if (work2[len-1]=='\n') work2[len-1]=' ';
		work2+=len;
	}
	// ファイルクローズ
	fclose(fp);
	// 要素分割
	return(line_option0(*work,1,argv,mode,max));
}

#if 0
main()
{
int argc,i;
unchar *argv[64];
unchar *work;
	argc=IndirectGet("test",&work,argv,1,64);
	printf("argc=%d\n",argc);
	for (i=1;i<argc;i++) {
		printf("argv[%d]=%s\n",i,argv[i]);
	}
	free(work);
}
/* testの内容
/a /b
a: b: c:
test
; comment
comment2 ;こめんと？
/c"〜"
/@,＝＝
/;
/@,;
/s";"
*/
#endif
