added qse_awk_rtx_getrefvaltype()/qse_awk_rtx_getrefval()

finished asort() in awk
added qse_sortx()
This commit is contained in:
2019-05-07 07:22:55 +00:00
parent c3e30eaae4
commit 2ac2ad8200
6 changed files with 412 additions and 121 deletions

View File

@ -2958,6 +2958,21 @@ QSE_EXPORT qse_awk_int_t qse_awk_rtx_hashval (
qse_awk_val_t* v
);
/**
* The qse_awk_rtx_getrefvaltype() function returns the type of the value
* that the given reference points to.
*/
QSE_EXPORT qse_awk_val_type_t qse_awk_rtx_getrefvaltype (
qse_awk_rtx_t* rtx,
qse_awk_val_ref_t* ref
);
QSE_EXPORT qse_awk_val_t* qse_awk_rtx_getrefval (
qse_awk_rtx_t* rtx,
qse_awk_val_ref_t* ref
);
/**
* The qse_awk_rtx_setrefval() function changes the value
* of a variable referenced in \a ref.

View File

@ -55,10 +55,23 @@ typedef int (*qse_search_comper_t) (
void* ctx
);
/**
* The qse_search_comperx_t type defines a search callback function.
* It should return 0 on success and -1 on failure. the comparsion
* result must be put back into the variable pointed to by \a cv.
*/
typedef int (*qse_search_comperx_t) (
const void* ptr1,
const void* ptr2,
void* ctx,
int * cv
);
/**
* The qse_sort_comper_t type defines a sort callback function.
*/
typedef qse_search_comper_t qse_sort_comper_t;
typedef qse_search_comperx_t qse_sort_comperx_t;
#if defined(__cplusplus)
extern "C" {
@ -134,6 +147,14 @@ QSE_EXPORT void qse_qsort (
void* ctx
);
QSE_EXPORT int qse_qsortx (
void* base,
qse_size_t nmemb,
qse_size_t size,
qse_sort_comperx_t comper,
void* ctx
);
/**
* The qse_rand31() function implements Park-Miller's minimal standard