にゃごすwiki

DS開発/2008-6-30

 Devkitpro r23b

いつの間にやら出てたんですなぁ。
rename問題も解消したいみたいね。

 libfat20080530

いつの間にやら、こっちもアップデートされてたのでアップデートしてみた。
バイナリないところをみると、wiiのためのリリースなんだな。libndsをCVSから落とさないと、argv関連でコンパイルできない。
そろそろ、libndsリリースしてほしいなぁ。
で、コンパイルしてみたところ、ディレクトリの取得でフリーズしてしまう現象が。少し前にCVSから落としたやつで同じ状態だったんだけど、どうせライブラリのバグなんだろうと放置してた。ほかの人には特に問題なってないということは、おいらのソースの問題なのかと目をこらして見直してみたところ、やっとわかった。
dirnext()の第2パラメータファイル名が入るんだけど、utf-8対応でサイズが256バイトから3倍の768バイトに拡張されてた。長いファイル名のファイルなんてないから問題ないだろうとチェックしてなかったのが、いけなかったか。
というか、MAX_FILENAME_LENGTHがfat.hに定義されてないのがそもそも、、、、
なんか前にもこんなことがあった様な気もするなぁ。

void printdir( char * path ){
	char fname[768];    ←256から変更
	struct stat st;
	DIR_ITER * dir;

	dir = diropen( path );
	if( dir != NULL ){
		while( dirnext(dir, fname, &st)==0 ){
			iprintf( "%s\n", fname );
		}
		dirclose(dir);
		iprintf( "--------------\n");
	}else{
		iprintf( "diropen error!! %s\n", path );
	}
}