changed qse_setdflcmgrbyid() and qse_setdflcmgr() to return the cmgr object set.
changed the default cmgr to either SLMB or UTF8 depending on the availability of underlying library functions
This commit is contained in:
		| @ -50,7 +50,15 @@ static qse_cmgr_t builtin_cmgr[] = | ||||
| #endif | ||||
| }; | ||||
|  | ||||
| static qse_cmgr_t* dfl_cmgr = &builtin_cmgr[QSE_CMGR_SLMB]; | ||||
| #if defined(_WIN32) && defined(HAVE_WCRTOMB) | ||||
| 	/* read the comment at the bottom of qse_slwcrtoslmb() in slmb.c  | ||||
| 	 * for the condition above. */ | ||||
| #	define DEFAULT_CMGR QSE_CMGR_SLMB | ||||
| #else | ||||
| #	define DEFAULT_CMGR QSE_CMGR_UTF8 | ||||
| #endif | ||||
|  | ||||
| static qse_cmgr_t* dfl_cmgr = &builtin_cmgr[DEFAULT_CMGR]; | ||||
| static qse_cmgr_finder_t cmgr_finder = QSE_NULL; | ||||
|  | ||||
| qse_cmgr_t* qse_getdflcmgr (void) | ||||
| @ -58,15 +66,17 @@ qse_cmgr_t* qse_getdflcmgr (void) | ||||
| 	return dfl_cmgr; | ||||
| } | ||||
|  | ||||
| void qse_setdflcmgr (qse_cmgr_t* cmgr) | ||||
| qse_cmgr_t* qse_setdflcmgr (qse_cmgr_t* cmgr) | ||||
| { | ||||
| 	dfl_cmgr = (cmgr? cmgr: &builtin_cmgr[QSE_CMGR_SLMB]); | ||||
| 	dfl_cmgr = (cmgr? cmgr: &builtin_cmgr[DEFAULT_CMGR]); | ||||
| 	return dfl_cmgr; | ||||
| } | ||||
|  | ||||
| void qse_setdflcmgrbyid (qse_cmgr_id_t id) | ||||
| qse_cmgr_t* qse_setdflcmgrbyid (qse_cmgr_id_t id) | ||||
| { | ||||
| 	qse_cmgr_t* cmgr = qse_findcmgrbyid (id); | ||||
| 	dfl_cmgr = (cmgr? cmgr: &builtin_cmgr[QSE_CMGR_SLMB]); | ||||
| 	dfl_cmgr = (cmgr? cmgr: &builtin_cmgr[DEFAULT_CMGR]); | ||||
| 	return dfl_cmgr; | ||||
| } | ||||
|  | ||||
| qse_cmgr_t* qse_findcmgrbyid (qse_cmgr_id_t id) | ||||
|  | ||||
| @ -815,15 +815,16 @@ static qse_ssize_t file_output ( | ||||
|  | ||||
| static qse_sio_t* sio_stdout = QSE_NULL; | ||||
| static qse_sio_t* sio_stderr = QSE_NULL; | ||||
| /* TODO: add sio_stdin, qse_getmbs, etc */ | ||||
|  | ||||
| int qse_openstdsios (void) | ||||
| { | ||||
| 	if (sio_stdout == QSE_NULL) | ||||
| 	{	 | ||||
| 	{ | ||||
| 		sio_stdout = qse_sio_openstd (QSE_MMGR_GETDFL(), 0, QSE_SIO_STDOUT, QSE_SIO_LINEBREAK); | ||||
| 	} | ||||
| 	if (sio_stderr == QSE_NULL) | ||||
| 	{	 | ||||
| 	{ | ||||
| 		sio_stderr = qse_sio_openstd (QSE_MMGR_GETDFL(), 0, QSE_SIO_STDERR, QSE_SIO_LINEBREAK); | ||||
| 	} | ||||
|  | ||||
|  | ||||
| @ -104,6 +104,9 @@ qse_size_t qse_slwcrtoslmb ( | ||||
|  | ||||
| #else | ||||
| 	/* not supported */ | ||||
|  | ||||
| 	/* make sure to update the precessor condition to set DEFAULT_CMGR | ||||
| 	 * in mbwc.c when you have different implementation here */ | ||||
| 	return 0; | ||||
| #endif | ||||
| } | ||||
|  | ||||
| @ -708,7 +708,7 @@ qse_ssize_t qse_tio_writewcs ( | ||||
| 				/* flush the full buffer regardless of conversion | ||||
| 				 * result. */ | ||||
| 				if (qse_tio_flush (tio) <= -1) return -1; | ||||
| 				nl = 0;		   | ||||
| 				nl = 0; | ||||
| 			} | ||||
|  | ||||
| 			if (n <= -1) | ||||
|  | ||||
		Reference in New Issue
	
	Block a user