


//#include  <stdio.h>
//#include  <stdlib.h>
//#include  <string.h>

#include  "tools++.h"


using namespace jbxl;




/////////////////////////////////////////////////////////////////////////////////////////////
//
// MAGADBG 対応 デバック用メッセージ表示関数 for Windows VC++
//

/**
MAGADBG 使用時の相違．
	MAGADBG（VC++のMFC用）の場合は必ず改行が入る．
	MAGADBGを使用しない場合（標準エラー出力の場合）でも改行が入るように調整してある．


使用できる関数．

_DEBUG が定義されない場合，コードが削除されるエラーメッセージ関数．
	DEBUG_INFO(char* fmt, ...);
	DEBUG_WARN(char* fmt, ...);
	DEBUG_ERR(char* fmt, ...);     
    void  DEBUG_MESGLN(char* fmt, ...);

常に出力される．
	void  jbxl::print_messageln(char* fmt, ...);　　

*/



/**
  汎用のメッセージ出力関数，MAGADBG（VC++のMFC用）対応
*/
void  jbxl::print_messageln(char* fmt, ...)
{
#ifndef  MAGADBG
	char* nfmt;
	int   len;
#else 
	char  buf[LMESG];
	int   n;
#endif

	va_list args;
	va_start(args, fmt);

#ifndef  MAGADBG
	len  = (int)strlen(fmt) + 3;		// +1
	nfmt = (char*)malloc(len);
	if (nfmt==NULL) return;
	strncpy(nfmt, fmt, len-3);			// -1
	nfmt[len-3] = '\\';	//
	nfmt[len-2] = 'n';	//
	nfmt[len-1] = '\0';

	vfprintf(stderr, nfmt, args); 
	fflush(stderr);
	free(nfmt);
#else
	n = vsnprintf(buf, LMESG-1, fmt, args);
	DBG_Black.printf(buf);
#endif

	va_end(args);

	return;
}



