added qse_awk_rtx_valtostrdupwithcmgr()/qse_awk_rtx_getvalstrwithcmgr()

enhanced str::frommbs()/str::tombs() to support the encoding name as the second parameter
This commit is contained in:
2019-06-18 10:51:26 +00:00
parent a04c9b6125
commit 00d0dc786f
3 changed files with 57 additions and 49 deletions

View File

@ -2846,25 +2846,41 @@ QSE_EXPORT int qse_awk_rtx_valtostr (
* \return character pointer to a string converted on success,
* #QSE_NULL on failure
*/
QSE_EXPORT qse_char_t* qse_awk_rtx_valtostrdup (
#if 0
QSE_EXPORT qse_char_t* qse_awk_rtx_valtostrdupwithcmgr (
qse_awk_rtx_t* rtx, /**< runtime context */
const qse_awk_val_t* val, /**< value to convert */
qse_size_t* len /**< result length */
qse_size_t* len, /**< result length */
qse_cmgr_t* cmgr
);
#endif
QSE_EXPORT qse_mchar_t* qse_awk_rtx_valtombsdup (
qse_awk_rtx_t* rtx, /**< runtime context */
const qse_awk_val_t* val, /**< value to convert */
qse_size_t* len /**< result length */
qse_size_t* len, /**< result length */
qse_cmgr_t* cmgr
);
QSE_EXPORT qse_wchar_t* qse_awk_rtx_valtowcsdup (
qse_awk_rtx_t* rtx, /**< runtime context */
const qse_awk_val_t* val, /**< value to convert */
qse_size_t* len /**< result length */
qse_size_t* len, /**< result length */
qse_cmgr_t* cmgr
);
#define qse_awk_rtx_valtombsdup(rtx, val, len) qse_awk_rtx_valtombsdupwithcmgr(rtx, val, len, qse_awk_rtx_getcmgr(rtx))
#define qse_awk_rtx_valtowcsdup(rtx, val, len) qse_awk_rtx_valtowcsdupwithcmgr(rtx, val, len, qse_awk_rtx_getcmgr(rtx))
#if defined(QSE_CHAR_IS_MCHAR)
# define qse_awk_rtx_valtostrdupwithcmgr(rtx, val, len, cmgr) qse_awk_rtx_valtombsdup(rtx, val, len, cmgr)
# define qse_awk_rtx_valtostrdup(rtx, val, len) qse_awk_rtx_valtombsdup(rtx, val, len)
#else
# define qse_awk_rtx_valtostrdupwithcmgr(rtx, val, len, cmgr) qse_awk_rtx_valtowcsdupwithcmgr(rtx, val, len, cmgr)
# define qse_awk_rtx_valtostrdup(rtx, val, len) qse_awk_rtx_valtowcsdup(rtx, val, len)
#endif
/**
* The qse_awk_rtx_getvalstr() function returns a string
* pointer converted from a value \a val. If the value
@ -2873,12 +2889,15 @@ QSE_EXPORT qse_wchar_t* qse_awk_rtx_valtowcsdup (
* qse_awk_rtx_valtostrdup(). The length of the returned
* string is stored into the location pointed to by \a len.
*/
QSE_EXPORT qse_char_t* qse_awk_rtx_getvalstr (
QSE_EXPORT qse_char_t* qse_awk_rtx_getvalstrwithcmgr (
qse_awk_rtx_t* rtx, /**< runtime context */
const qse_awk_val_t* val, /**< value to convert */
qse_size_t* len /**< result length */
qse_size_t* len, /**< result length */
qse_cmgr_t* cmgr
);
#define qse_awk_rtx_getvalstr(rtx,val,len) qse_awk_rtx_getvalstrwithcmgr(rtx, val, len, qse_awk_rtx_getcmgr(rtx))
/**
* The qse_awk_rtx_freevalstr() function frees the memory pointed
* to by \a str if \a val is not of the #QSE_AWK_VAL_STR type.
@ -2899,7 +2918,7 @@ QSE_EXPORT qse_mchar_t* qse_awk_rtx_getvalmbswithcmgr (
qse_cmgr_t* cmgr
);
#define qse_awk_rtx_getvalmbs(rtx,val,len) qse_awk_rtx_getvalmbswithcmgr(rtx, val, len, qse_awk_rtx_getcmgr(rtx))
#define qse_awk_rtx_getvalmbs(rtx, val, len) qse_awk_rtx_getvalmbswithcmgr(rtx, val, len, qse_awk_rtx_getcmgr(rtx))
QSE_EXPORT void qse_awk_rtx_freevalmbs (
qse_awk_rtx_t* rtx, /**< runtime context */