%% options copyright owner = Dirk Krause copyright year = 2019-xxxx SPDX-License-Identifier: BSD-3-Clause %% header /** @file dk4pathx.h String operations for path names (wxChar). */ #ifndef DK4CONF_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "dk4conf.h" #else #include #endif #endif #ifndef DK4TYPES_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "dk4types.h" #else #include #endif #endif #ifndef DK4CONST_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "dk4const.h" #else #include #endif #endif #ifndef DK4ERROR_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "dk4error.h" #else #include #endif #endif #ifndef DK4WXCS_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "dk4wxcs.h" #else #include #endif #endif #ifndef DK4STRX_H_INCLUDED #if DK4_BUILDING_DKTOOLS4 #include "dk4strx.h" #else #include #endif #endif #ifndef WX_WXPREC_H_INCLUDED #include #define WX_WXPREC_H_INCLUDED 1 #endif #ifdef __BORLANDC__ #pragma hdrstop #endif #ifndef WX_PRECOMP #if DK4_HAVE_WX_CHARTYPE_H #ifndef WX_CHARTYPE_H_INCLUDED #include #define WX_CHARTYPE_H_INCLUDED 1 #endif #else #if DK4_HAVE_WX_WXCHAR_H #ifndef WX_WXCHAR_H_INCLUDED #include #define WX_WXCHAR_H_INCLUDED 1 #endif #else #ifndef WX_WX_H_INCLUDED #include #define WX_WX_H_INCLUDED #endif #endif #endif #endif #ifdef __cplusplus extern "C" { #endif #ifdef __cplusplus } #endif %% module #include "dk4strx.h" #ifndef DK4_SIZEOF_WXCHAR #ifndef DK4WXCS_H_INCLUDED #include "dk4wxcs.h" #endif #endif #if DK4_SIZEOF_WXCHAR > 1 #include "dk4strw.h" #include "dk4pathw.h" #else #include "dk4str8.h" #include "dk4path8.h" #endif $!trace-include int dk4strx_cpy_s(wxChar *dst, size_t sz, const wxChar *src, dk4_er_t *erp) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_cpy_s(dst, sz, src, erp)); #else return (dk4str8_cpy_s(dst, sz, src, erp)); #endif } int dk4strx_cat_s(wxChar *dst, size_t sz, const wxChar *src, dk4_er_t *erp) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_cat_s(dst, sz, src, erp)); #else return (dk4str8_cat_s(dst, sz, src, erp)); #endif } void dk4strx_cpy_to_left(wxChar *dst, const wxChar *src) { #if DK4_SIZEOF_WXCHAR > 1 dk4strw_cpy_to_left(dst, src); #else dk4str8_cpy_to_left(dst, src); #endif } size_t dk4strx_len(const wxChar *src) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_len(src)); #else return (dk4str8_len(src)); #endif } int dk4strx_cmp(const wxChar *s1, const wxChar *s2) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_cmp(s1, s2)); #else return (dk4str8_cmp(s1, s2)); #endif } int dk4strx_casecmp(const wxChar *s1, const wxChar *s2) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_casecmp(s1, s2)); #else return (dk4str8_casecmp(s1, s2)); #endif } int dk4strx_pathcmp(const wxChar *s1, const wxChar *s2) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_pathcmp(s1, s2)); #else return (dk4str8_pathcmp(s1, s2)); #endif } wxChar * dk4strx_chr(const wxChar *s, wxChar c) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_chr(s, c)); #else return (dk4str8_chr(s, c)); #endif } wxChar * dk4strx_rchr(const wxChar *s, wxChar c) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_rchr(s, c)); #else return (dk4str8_rchr(s, c)); #endif } wxChar * dk4strx_sep(wxChar **stringp, const wxChar *delim) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_sep(stringp, delim)); #else return (dk4str8_sep(stringp, delim)); #endif } wxChar * dk4strx_start(const wxChar *src, const wxChar *delim) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_start(src, delim)); #else return (dk4str8_start(src, delim)); #endif } wxChar * dk4strx_next(wxChar *src, const wxChar *delim) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_next(src, delim)); #else return (dk4str8_next(src, delim)); #endif } size_t dk4strx_tokenize( wxChar **dpp, size_t szdpp, wxChar *src, const wxChar *delim, dk4_er_t *erp ) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_tokenize(dpp, szdpp, src, delim, erp)); #else return (dk4str8_tokenize(dpp, szdpp, src, delim, erp)); #endif } void dk4strx_normalize(wxChar *src, const wxChar *delim) { #if DK4_SIZEOF_WXCHAR > 1 dk4strw_normalize(src, delim); #else dk4str8_normalize(src, delim); #endif } int dk4strx_array_index(const wxChar * const *arr, const wxChar *str, int cs) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_array_index(arr, str, cs)); #else return (dk4str8_array_index(arr, str, cs)); #endif } int dk4strx_abbr_index( const wxChar * const *arr, wxChar spec, const wxChar *str, int cs ) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_abbr_index(arr, spec, str, cs)); #else return (dk4str8_abbr_index(arr, spec, str, cs)); #endif } int dk4strx_is_abbr(const wxChar *str, const wxChar *pattern, wxChar spec, int cs) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_is_abbr(str, pattern, spec, cs)); #else return (dk4str8_is_abbr(str, pattern, spec, cs)); #endif } int dk4strx_is_bool(const wxChar *str) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_is_bool(str)); #else return (dk4str8_is_bool(str)); #endif } int dk4strx_is_on(const wxChar *str) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_is_on(str)); #else return (dk4str8_is_on(str)); #endif } #if (defined(_WIN32) && DK4_USE_WINDOWS_LOCAL_ALLOC) \ || (DK4_HAVE_MALLOC && DK4_HAVE_FREE) wxChar * dk4strx_dup(const wxChar *src, dk4_er_t *erp) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4strw_dup(src, erp)); #else return (dk4str8_dup(src, erp)); #endif } #endif /* if (defined(_WIN32) ... */ void dk4strx_rtwh(wxChar *str, const wxChar *whsp) { #if DK4_SIZEOF_WXCHAR > 1 dk4strw_rtwh(str, whsp); #else dk4str8_rtwh(str, whsp); #endif } void dk4strx_delnl(wxChar *lptr) { #if DK4_SIZEOF_WXCHAR > 1 dk4strw_delnl(lptr); #else dk4str8_delnl(lptr); #endif } wxChar const * dk4strx_get_path_suffix(wxChar const *filename, dk4_er_t *erp) { #if DK4_SIZEOF_WXCHAR > 1 return (dk4pathw_get_suffix(filename, erp)); #else return (dk4path8_get_suffix(filename, erp)); #endif }