added qse_sed_setexechook()
added qse_strfnmat() and related functions
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: str.h 556 2011-08-31 15:43:46Z hyunghwan.chung $
|
||||
* $Id: str.h 576 2011-09-23 14:52:22Z hyunghwan.chung $
|
||||
*
|
||||
Copyright 2006-2011 Chung, Hyung-Hwan.
|
||||
This file is part of QSE.
|
||||
@ -317,6 +317,34 @@ enum qse_wcstrmx_op_t
|
||||
# define QSE_STRTRMX_RIGHT QSE_WCSTRMX_RIGHT
|
||||
#endif
|
||||
|
||||
enum qse_mbsfnmat_flag_t
|
||||
{
|
||||
QSE_MBSFNMAT_PATHNAME = (1 << 0),
|
||||
QSE_MBSFNMAT_NOESCAPE = (1 << 1),
|
||||
QSE_MBSFNMAT_PERIOD = (1 << 2),
|
||||
QSE_MBSFNMAT_IGNORECASE = (1 << 3)
|
||||
};
|
||||
|
||||
enum qse_wcsfnmat_flag_t
|
||||
{
|
||||
QSE_WCSFNMAT_PATHNAME = (1 << 0),
|
||||
QSE_WCSFNMAT_NOESCAPE = (1 << 1),
|
||||
QSE_WCSFNMAT_PERIOD = (1 << 2),
|
||||
QSE_WCSFNMAT_IGNORECASE = (1 << 3)
|
||||
};
|
||||
|
||||
#ifdef QSE_CHAR_IS_MCHAR
|
||||
# define QSE_STRFNMAT_PATHNAME QSE_MBSFNMAT_PATHNAME
|
||||
# define QSE_STRFNMAT_NOESCAPE QSE_MBSFNMAT_NOESCAPE
|
||||
# define QSE_STRFNMAT_PERIOD QSE_MBSFNMAT_PERIOD
|
||||
# define QSE_STRFNMAT_IGNORECASE QSE_MBSFNMAT_IGNORECASE
|
||||
#else
|
||||
# define QSE_STRFNMAT_PATHNAME QSE_WCSFNMAT_PATHNAME
|
||||
# define QSE_STRFNMAT_NOESCAPE QSE_WCSFNMAT_NOESCAPE
|
||||
# define QSE_STRFNMAT_PERIOD QSE_WCSFNMAT_PERIOD
|
||||
# define QSE_STRFNMAT_IGNORECASE QSE_WCSFNMAT_IGNORECASE
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@ -1489,6 +1517,23 @@ qse_mchar_t* qse_mbspbrk (
|
||||
const qse_mchar_t* str2
|
||||
);
|
||||
|
||||
qse_mchar_t* qse_mbsxpbrk (
|
||||
const qse_mchar_t* str1,
|
||||
qse_size_t len,
|
||||
const qse_mchar_t* str2
|
||||
);
|
||||
|
||||
qse_mchar_t* qse_mbsrpbrk (
|
||||
const qse_mchar_t* str1,
|
||||
const qse_mchar_t* str2
|
||||
);
|
||||
|
||||
qse_mchar_t* qse_mbsxrpbrk (
|
||||
const qse_mchar_t* str1,
|
||||
qse_size_t len,
|
||||
const qse_mchar_t* str2
|
||||
);
|
||||
|
||||
/*
|
||||
* The qse_wcspbrk() function searches @a str1 for the first occurrence of
|
||||
* a character in @a str2.
|
||||
@ -1500,10 +1545,33 @@ qse_wchar_t* qse_wcspbrk (
|
||||
const qse_wchar_t* str2
|
||||
);
|
||||
|
||||
qse_wchar_t* qse_wcsxpbrk (
|
||||
const qse_wchar_t* str1,
|
||||
qse_size_t len,
|
||||
const qse_wchar_t* str2
|
||||
);
|
||||
|
||||
qse_wchar_t* qse_wcsrpbrk (
|
||||
const qse_wchar_t* str1,
|
||||
const qse_wchar_t* str2
|
||||
);
|
||||
|
||||
qse_wchar_t* qse_wcsxrpbrk (
|
||||
const qse_wchar_t* str1,
|
||||
qse_size_t len,
|
||||
const qse_wchar_t* str2
|
||||
);
|
||||
|
||||
#ifdef QSE_CHAR_IS_MCHAR
|
||||
# define qse_strpbrk(str1,str2) qse_mbspbrk(str1,str2)
|
||||
# define qse_strpbrk(str1,str2) qse_mbspbrk(str1,str2)
|
||||
# define qse_strxpbrk(str1,len,str2) qse_mbsxpbrk(str1,len,str2)
|
||||
# define qse_strrpbrk(str1,str2) qse_mbsrpbrk(str1,str2)
|
||||
# define qse_strxrpbrk(str1,len,str2) qse_mbsxrpbrk(str1,len,str2)
|
||||
#else
|
||||
# define qse_strpbrk(str1,str2) qse_wcspbrk(str1,str2)
|
||||
# define qse_strpbrk(str1,str2) qse_wcspbrk(str1,str2)
|
||||
# define qse_strxpbrk(str1,len,str2) qse_wcsxpbrk(str1,len,str2)
|
||||
# define qse_strrpbrk(str1,str2) qse_wcsrpbrk(str1,str2)
|
||||
# define qse_strxrpbrk(str1,len,str2) qse_wcsxrpbrk(str1,len,str2)
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -2101,6 +2169,74 @@ qse_size_t qse_wcsxpac (
|
||||
# define qse_strxpac(str,len) qse_wcsxpac(str,len)
|
||||
#endif
|
||||
|
||||
int qse_mbsfnmat (
|
||||
const qse_mchar_t* str,
|
||||
const qse_mchar_t* ptn,
|
||||
int flags
|
||||
);
|
||||
|
||||
int qse_mbsxfnmat (
|
||||
const qse_mchar_t* str,
|
||||
qse_size_t slen,
|
||||
const qse_mchar_t* ptn,
|
||||
int flags
|
||||
);
|
||||
|
||||
int qse_mbsnfnmat (
|
||||
const qse_mchar_t* str,
|
||||
const qse_mchar_t* ptn,
|
||||
qse_size_t plen,
|
||||
int flags
|
||||
);
|
||||
|
||||
int qse_mbsxnfnmat (
|
||||
const qse_mchar_t* str,
|
||||
qse_size_t slen,
|
||||
const qse_mchar_t* ptn,
|
||||
qse_size_t plen,
|
||||
int flags
|
||||
);
|
||||
|
||||
int qse_wcsfnmat (
|
||||
const qse_wchar_t* str,
|
||||
const qse_wchar_t* ptn,
|
||||
int flags
|
||||
);
|
||||
|
||||
int qse_wcsxfnmat (
|
||||
const qse_wchar_t* str,
|
||||
qse_size_t slen,
|
||||
const qse_wchar_t* ptn,
|
||||
int flags
|
||||
);
|
||||
|
||||
int qse_wcsnfnmat (
|
||||
const qse_wchar_t* str,
|
||||
const qse_wchar_t* ptn,
|
||||
qse_size_t plen,
|
||||
int flags
|
||||
);
|
||||
|
||||
int qse_wcsxnfnmat (
|
||||
const qse_wchar_t* str,
|
||||
qse_size_t slen,
|
||||
const qse_wchar_t* ptn,
|
||||
qse_size_t plen,
|
||||
int flags
|
||||
);
|
||||
|
||||
#ifdef QSE_CHAR_IS_MCHAR
|
||||
# define qse_strfnmat(str,ptn,flags) qse_mbsfnmat(str,ptn,flags)
|
||||
# define qse_strxfnmat(str,slen,ptn,flags) qse_mbsxfnmat(str,slen,ptn,flags)
|
||||
# define qse_strnfnmat(str,ptn,plen,flags) qse_mbsnfnmat(str,ptn,plen,flags)
|
||||
# define qse_strxnfnmat(str,slen,ptn,plen,flags) qse_mbsxnfnmat(str,slen,ptn,plen,flags)
|
||||
#else
|
||||
# define qse_strfnmat(str,ptn,flags) qse_wcsfnmat(str,ptn,flags)
|
||||
# define qse_strxfnmat(str,slen,ptn,flags) qse_wcsxfnmat(str,slen,ptn,flags)
|
||||
# define qse_strnfnmat(str,ptn,plen,flags) qse_wcsnfnmat(str,ptn,plen,flags)
|
||||
# define qse_strxnfnmat(str,slen,ptn,plen,flags) qse_wcsxnfnmat(str,slen,ptn,plen,flags)
|
||||
#endif
|
||||
|
||||
/**
|
||||
* The qse_mbstowcslen() function scans a null-terminated multibyte string
|
||||
* to calculate the number of wide characters it can be converted to.
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* $Id: sed.h 570 2011-09-20 04:40:45Z hyunghwan.chung $
|
||||
* $Id: sed.h 576 2011-09-23 14:52:22Z hyunghwan.chung $
|
||||
*
|
||||
Copyright 2006-2011 Chung, Hyung-Hwan.
|
||||
This file is part of QSE.
|
||||
@ -65,6 +65,8 @@
|
||||
*/
|
||||
typedef struct qse_sed_t qse_sed_t;
|
||||
|
||||
typedef struct qse_sed_cmd_t qse_sed_cmd_t;
|
||||
|
||||
/**
|
||||
* The qse_sed_loc_t defines a structure to store location information.
|
||||
*/
|
||||
@ -193,6 +195,21 @@ typedef int (*qse_sed_lformatter_t) (
|
||||
int (*cwriter) (qse_sed_t*, qse_char_t)
|
||||
);
|
||||
|
||||
enum qse_sed_exec_op_t
|
||||
{
|
||||
QSE_SED_EXEC_READ,
|
||||
QSE_SED_EXEC_WRITE,
|
||||
QSE_SED_EXEC_MATCH,
|
||||
QSE_SED_EXEC_EXEC
|
||||
};
|
||||
typedef enum qse_sed_exec_op_t qse_sed_exec_op_t;
|
||||
|
||||
typedef void (*qse_sed_exec_hook_t) (
|
||||
qse_sed_t* sed,
|
||||
qse_sed_exec_op_t op,
|
||||
const qse_sed_cmd_t* cmd
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@ -415,6 +432,15 @@ void qse_sed_setlinnum (
|
||||
qse_size_t num /**< a line number */
|
||||
);
|
||||
|
||||
qse_sed_exec_hook_t qse_sed_getexechook (
|
||||
qse_sed_t* sed
|
||||
);
|
||||
|
||||
void qse_sed_setexechook (
|
||||
qse_sed_t* sed,
|
||||
qse_sed_exec_hook_t hook
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user