added hio_byte_to_ucstr(), hio_copy_ucstr_to_uchars(), hio_copy_bcstr_to_bchars()
This commit is contained in:
parent
0680e69746
commit
12482d8a34
@ -13,6 +13,10 @@ EXTRA_DIST = \
|
|||||||
utl-str.c.m4 \
|
utl-str.c.m4 \
|
||||||
utl-str.m4
|
utl-str.m4
|
||||||
|
|
||||||
|
BUILT_SOURCES = \
|
||||||
|
hio-utl.h \
|
||||||
|
utl-str.c
|
||||||
|
|
||||||
##################################################
|
##################################################
|
||||||
# MAIN LIBRARY
|
# MAIN LIBRARY
|
||||||
##################################################
|
##################################################
|
||||||
@ -140,10 +144,9 @@ install-data-hook:
|
|||||||
uninstall-hook:
|
uninstall-hook:
|
||||||
@rm -f "$(DESTDIR)$(includedir)/hio-cfg.h"
|
@rm -f "$(DESTDIR)$(includedir)/hio-cfg.h"
|
||||||
|
|
||||||
$(srcdir)/hio-utl.h: utl-str.m4 hio-utl.h.m4
|
hio-utl.h: utl-str.m4 hio-utl.h.m4
|
||||||
m4 -I$(srcdir) $(srcdir)/hio-utl.h.m4 > $(srcdir)/hio-utl.h
|
m4 -I$(srcdir) $(srcdir)/hio-utl.h.m4 > $(srcdir)/hio-utl.h
|
||||||
|
|
||||||
# do NOT put $(srcdir) before utl-str.c
|
|
||||||
utl-str.c: utl-str.m4 utl-str.c.m4
|
utl-str.c: utl-str.m4 utl-str.c.m4
|
||||||
m4 -I$(srcdir) $(srcdir)/utl-str.c.m4 > $(srcdir)/utl-str.c
|
m4 -I$(srcdir) $(srcdir)/utl-str.c.m4 > $(srcdir)/utl-str.c
|
||||||
|
|
||||||
|
@ -434,6 +434,10 @@ EXTRA_DIST = \
|
|||||||
utl-str.c.m4 \
|
utl-str.c.m4 \
|
||||||
utl-str.m4
|
utl-str.m4
|
||||||
|
|
||||||
|
BUILT_SOURCES = \
|
||||||
|
hio-utl.h \
|
||||||
|
utl-str.c
|
||||||
|
|
||||||
|
|
||||||
##################################################
|
##################################################
|
||||||
# MAIN LIBRARY
|
# MAIN LIBRARY
|
||||||
@ -471,7 +475,7 @@ libhio_la_CFLAGS = $(CFLAGS_LIB_COMMON) $(am__append_3)
|
|||||||
libhio_la_LDFLAGS = $(LDFLAGS_LIB_COMMON) $(am__append_4)
|
libhio_la_LDFLAGS = $(LDFLAGS_LIB_COMMON) $(am__append_4)
|
||||||
libhio_la_LIBADD = $(LIBADD_LIB_COMMON) $(SSL_LIBS) $(SOCKET_LIBS) \
|
libhio_la_LIBADD = $(LIBADD_LIB_COMMON) $(SSL_LIBS) $(SOCKET_LIBS) \
|
||||||
$(SENDFILE_LIBS) $(am__append_5) $(am__append_6)
|
$(SENDFILE_LIBS) $(am__append_5) $(am__append_6)
|
||||||
all: hio-cfg.h
|
all: $(BUILT_SOURCES) hio-cfg.h
|
||||||
$(MAKE) $(AM_MAKEFLAGS) all-am
|
$(MAKE) $(AM_MAKEFLAGS) all-am
|
||||||
|
|
||||||
.SUFFIXES:
|
.SUFFIXES:
|
||||||
@ -1053,13 +1057,15 @@ distdir-am: $(DISTFILES)
|
|||||||
fi; \
|
fi; \
|
||||||
done
|
done
|
||||||
check-am: all-am
|
check-am: all-am
|
||||||
check: check-am
|
check: $(BUILT_SOURCES)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) check-am
|
||||||
all-am: Makefile $(LTLIBRARIES) $(HEADERS) hio-cfg.h
|
all-am: Makefile $(LTLIBRARIES) $(HEADERS) hio-cfg.h
|
||||||
installdirs:
|
installdirs:
|
||||||
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \
|
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(includedir)"; do \
|
||||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||||
done
|
done
|
||||||
install: install-am
|
install: $(BUILT_SOURCES)
|
||||||
|
$(MAKE) $(AM_MAKEFLAGS) install-am
|
||||||
install-exec: install-exec-am
|
install-exec: install-exec-am
|
||||||
install-data: install-data-am
|
install-data: install-data-am
|
||||||
uninstall: uninstall-am
|
uninstall: uninstall-am
|
||||||
@ -1089,6 +1095,7 @@ distclean-generic:
|
|||||||
maintainer-clean-generic:
|
maintainer-clean-generic:
|
||||||
@echo "This command is intended for maintainers to use"
|
@echo "This command is intended for maintainers to use"
|
||||||
@echo "it deletes files that may require special tools to rebuild."
|
@echo "it deletes files that may require special tools to rebuild."
|
||||||
|
-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
|
||||||
clean: clean-am
|
clean: clean-am
|
||||||
|
|
||||||
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
|
clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
|
||||||
@ -1246,7 +1253,8 @@ ps-am:
|
|||||||
uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES
|
uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES
|
||||||
@$(NORMAL_INSTALL)
|
@$(NORMAL_INSTALL)
|
||||||
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
|
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
|
||||||
.MAKE: all install-am install-data-am install-strip uninstall-am
|
.MAKE: all check install install-am install-data-am install-strip \
|
||||||
|
uninstall-am
|
||||||
|
|
||||||
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
|
.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \
|
||||||
clean-generic clean-libLTLIBRARIES clean-libtool cscopelist-am \
|
clean-generic clean-libLTLIBRARIES clean-libtool cscopelist-am \
|
||||||
@ -1278,10 +1286,9 @@ install-data-hook:
|
|||||||
uninstall-hook:
|
uninstall-hook:
|
||||||
@rm -f "$(DESTDIR)$(includedir)/hio-cfg.h"
|
@rm -f "$(DESTDIR)$(includedir)/hio-cfg.h"
|
||||||
|
|
||||||
$(srcdir)/hio-utl.h: utl-str.m4 hio-utl.h.m4
|
hio-utl.h: utl-str.m4 hio-utl.h.m4
|
||||||
m4 -I$(srcdir) $(srcdir)/hio-utl.h.m4 > $(srcdir)/hio-utl.h
|
m4 -I$(srcdir) $(srcdir)/hio-utl.h.m4 > $(srcdir)/hio-utl.h
|
||||||
|
|
||||||
# do NOT put $(srcdir) before utl-str.c
|
|
||||||
utl-str.c: utl-str.m4 utl-str.c.m4
|
utl-str.c: utl-str.m4 utl-str.c.m4
|
||||||
m4 -I$(srcdir) $(srcdir)/utl-str.c.m4 > $(srcdir)/utl-str.c
|
m4 -I$(srcdir) $(srcdir)/utl-str.c.m4 > $(srcdir)/utl-str.c
|
||||||
|
|
||||||
|
@ -412,6 +412,18 @@ HIO_EXPORT hio_oow_t hio_copy_bchars_to_bcstr_unlimited (
|
|||||||
hio_oow_t len
|
hio_oow_t len
|
||||||
);
|
);
|
||||||
|
|
||||||
|
HIO_EXPORT hio_oow_t hio_copy_ucstr_to_uchars (
|
||||||
|
hio_uch_t* dst,
|
||||||
|
hio_oow_t dlen,
|
||||||
|
const hio_uch_t* src
|
||||||
|
);
|
||||||
|
|
||||||
|
HIO_EXPORT hio_oow_t hio_copy_bcstr_to_bchars (
|
||||||
|
hio_bch_t* dst,
|
||||||
|
hio_oow_t dlen,
|
||||||
|
const hio_bch_t* src
|
||||||
|
);
|
||||||
|
|
||||||
HIO_EXPORT hio_oow_t hio_copy_ucstr (
|
HIO_EXPORT hio_oow_t hio_copy_ucstr (
|
||||||
hio_uch_t* dst,
|
hio_uch_t* dst,
|
||||||
hio_oow_t len,
|
hio_oow_t len,
|
||||||
@ -647,6 +659,17 @@ HIO_EXPORT hio_oow_t hio_byte_to_bcstr (
|
|||||||
hio_bch_t fill
|
hio_bch_t fill
|
||||||
);
|
);
|
||||||
|
|
||||||
|
#define HIO_BYTE_TO_UCSTR_RADIXMASK (0xFF)
|
||||||
|
#define HIO_BYTE_TO_UCSTR_LOWERCASE (1 << 8)
|
||||||
|
|
||||||
|
HIO_EXPORT hio_oow_t hio_byte_to_ucstr (
|
||||||
|
hio_uint8_t byte,
|
||||||
|
hio_uch_t* buf,
|
||||||
|
hio_oow_t size,
|
||||||
|
int flagged_radix,
|
||||||
|
hio_uch_t fill
|
||||||
|
);
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
#define HIO_CHARS_TO_INT_MAKE_OPTION(e,ltrim,rtrim,base) (((!!(e)) << 0) | ((!!(ltrim)) << 2) | ((!!(rtrim)) << 3) | ((base) << 8))
|
#define HIO_CHARS_TO_INT_MAKE_OPTION(e,ltrim,rtrim,base) (((!!(e)) << 0) | ((!!(ltrim)) << 2) | ((!!(rtrim)) << 3) | ((base) << 8))
|
||||||
#define HIO_CHARS_TO_INT_GET_OPTION_E(option) ((option) & 1)
|
#define HIO_CHARS_TO_INT_GET_OPTION_E(option) ((option) & 1)
|
||||||
|
@ -413,6 +413,18 @@ HIO_EXPORT hio_oow_t hio_copy_bchars_to_bcstr_unlimited (
|
|||||||
hio_oow_t len
|
hio_oow_t len
|
||||||
);
|
);
|
||||||
|
|
||||||
|
HIO_EXPORT hio_oow_t hio_copy_ucstr_to_uchars (
|
||||||
|
hio_uch_t* dst,
|
||||||
|
hio_oow_t dlen,
|
||||||
|
const hio_uch_t* src
|
||||||
|
);
|
||||||
|
|
||||||
|
HIO_EXPORT hio_oow_t hio_copy_bcstr_to_bchars (
|
||||||
|
hio_bch_t* dst,
|
||||||
|
hio_oow_t dlen,
|
||||||
|
const hio_bch_t* src
|
||||||
|
);
|
||||||
|
|
||||||
HIO_EXPORT hio_oow_t hio_copy_ucstr (
|
HIO_EXPORT hio_oow_t hio_copy_ucstr (
|
||||||
hio_uch_t* dst,
|
hio_uch_t* dst,
|
||||||
hio_oow_t len,
|
hio_oow_t len,
|
||||||
@ -648,6 +660,17 @@ HIO_EXPORT hio_oow_t hio_byte_to_bcstr (
|
|||||||
hio_bch_t fill
|
hio_bch_t fill
|
||||||
);
|
);
|
||||||
|
|
||||||
|
#define HIO_BYTE_TO_UCSTR_RADIXMASK (0xFF)
|
||||||
|
#define HIO_BYTE_TO_UCSTR_LOWERCASE (1 << 8)
|
||||||
|
|
||||||
|
HIO_EXPORT hio_oow_t hio_byte_to_ucstr (
|
||||||
|
hio_uint8_t byte,
|
||||||
|
hio_uch_t* buf,
|
||||||
|
hio_oow_t size,
|
||||||
|
int flagged_radix,
|
||||||
|
hio_uch_t fill
|
||||||
|
);
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------- */
|
/* ------------------------------------------------------------------------- */
|
||||||
#define HIO_CHARS_TO_INT_MAKE_OPTION(e,ltrim,rtrim,base) (((!!(e)) << 0) | ((!!(ltrim)) << 2) | ((!!(rtrim)) << 3) | ((base) << 8))
|
#define HIO_CHARS_TO_INT_MAKE_OPTION(e,ltrim,rtrim,base) (((!!(e)) << 0) | ((!!(ltrim)) << 2) | ((!!(rtrim)) << 3) | ((base) << 8))
|
||||||
#define HIO_CHARS_TO_INT_GET_OPTION_E(option) ((option) & 1)
|
#define HIO_CHARS_TO_INT_GET_OPTION_E(option) ((option) & 1)
|
||||||
|
@ -417,6 +417,38 @@ hio_oow_t hio_copy_bchars_to_bcstr_unlimited (hio_bch_t* dst, const hio_bch_t* s
|
|||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hio_oow_t hio_copy_ucstr_to_uchars (hio_uch_t* dst, hio_oow_t len, const hio_uch_t* src)
|
||||||
|
{
|
||||||
|
/* no null termination */
|
||||||
|
hio_uch_t* p, * p2;
|
||||||
|
|
||||||
|
p = dst; p2 = dst + len - 1;
|
||||||
|
|
||||||
|
while (p < p2)
|
||||||
|
{
|
||||||
|
if (*src == '\0') break;
|
||||||
|
*p++ = *src++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return p - dst;
|
||||||
|
}
|
||||||
|
|
||||||
|
hio_oow_t hio_copy_bcstr_to_bchars (hio_bch_t* dst, hio_oow_t len, const hio_bch_t* src)
|
||||||
|
{
|
||||||
|
/* no null termination */
|
||||||
|
hio_bch_t* p, * p2;
|
||||||
|
|
||||||
|
p = dst; p2 = dst + len - 1;
|
||||||
|
|
||||||
|
while (p < p2)
|
||||||
|
{
|
||||||
|
if (*src == '\0') break;
|
||||||
|
*p++ = *src++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return p - dst;
|
||||||
|
}
|
||||||
|
|
||||||
hio_oow_t hio_copy_ucstr (hio_uch_t* dst, hio_oow_t len, const hio_uch_t* src)
|
hio_oow_t hio_copy_ucstr (hio_uch_t* dst, hio_oow_t len, const hio_uch_t* src)
|
||||||
{
|
{
|
||||||
hio_uch_t* p, * p2;
|
hio_uch_t* p, * p2;
|
||||||
|
@ -63,6 +63,9 @@ dnl --
|
|||||||
fn_copy_chars_to_cstr_unlimited(hio_copy_uchars_to_ucstr_unlimited, hio_uch_t)
|
fn_copy_chars_to_cstr_unlimited(hio_copy_uchars_to_ucstr_unlimited, hio_uch_t)
|
||||||
fn_copy_chars_to_cstr_unlimited(hio_copy_bchars_to_bcstr_unlimited, hio_bch_t)
|
fn_copy_chars_to_cstr_unlimited(hio_copy_bchars_to_bcstr_unlimited, hio_bch_t)
|
||||||
dnl --
|
dnl --
|
||||||
|
fn_copy_cstr_to_chars(hio_copy_ucstr_to_uchars, hio_uch_t)
|
||||||
|
fn_copy_cstr_to_chars(hio_copy_bcstr_to_bchars, hio_bch_t)
|
||||||
|
dnl --
|
||||||
fn_copy_cstr(hio_copy_ucstr, hio_uch_t)
|
fn_copy_cstr(hio_copy_ucstr, hio_uch_t)
|
||||||
fn_copy_cstr(hio_copy_bcstr, hio_bch_t)
|
fn_copy_cstr(hio_copy_bcstr, hio_bch_t)
|
||||||
dnl --
|
dnl --
|
||||||
|
@ -221,6 +221,25 @@ hio_oow_t _fn_name_ (_char_type_* dst, const _char_type_* src, hio_oow_t len)
|
|||||||
popdef([[_fn_name_]])popdef([[_char_type_]])dnl
|
popdef([[_fn_name_]])popdef([[_char_type_]])dnl
|
||||||
]])dnl
|
]])dnl
|
||||||
dnl ---------------------------------------------------------------------------
|
dnl ---------------------------------------------------------------------------
|
||||||
|
define([[fn_copy_cstr_to_chars]], [[pushdef([[_fn_name_]], $1)pushdef([[_char_type_]], $2)dnl
|
||||||
|
hio_oow_t _fn_name_ (_char_type_* dst, hio_oow_t len, const _char_type_* src)
|
||||||
|
{
|
||||||
|
/* no null termination */
|
||||||
|
_char_type_* p, * p2;
|
||||||
|
|
||||||
|
p = dst; p2 = dst + len - 1;
|
||||||
|
|
||||||
|
while (p < p2)
|
||||||
|
{
|
||||||
|
if (*src == '\0') break;
|
||||||
|
*p++ = *src++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return p - dst;
|
||||||
|
}
|
||||||
|
popdef([[_fn_name_]])popdef([[_char_type_]])dnl
|
||||||
|
]])dnl
|
||||||
|
dnl ---------------------------------------------------------------------------
|
||||||
define([[fn_copy_cstr]], [[pushdef([[_fn_name_]], $1)pushdef([[_char_type_]], $2)dnl
|
define([[fn_copy_cstr]], [[pushdef([[_fn_name_]], $1)pushdef([[_char_type_]], $2)dnl
|
||||||
hio_oow_t _fn_name_ (_char_type_* dst, hio_oow_t len, const _char_type_* src)
|
hio_oow_t _fn_name_ (_char_type_* dst, hio_oow_t len, const _char_type_* src)
|
||||||
{
|
{
|
||||||
|
@ -180,6 +180,40 @@ const hio_uch_t* hio_find_ucstr_word_in_ucstr (const hio_uch_t* str, const hio_u
|
|||||||
|
|
||||||
/* ========================================================================= */
|
/* ========================================================================= */
|
||||||
|
|
||||||
|
hio_oow_t hio_byte_to_ucstr (hio_oob_t byte, hio_uch_t* buf, hio_oow_t size, int flagged_radix, hio_uch_t fill)
|
||||||
|
{
|
||||||
|
hio_uch_t tmp[(HIO_SIZEOF(hio_oob_t) * HIO_BITS_PER_BYTE)];
|
||||||
|
hio_uch_t* p = tmp, * bp = buf, * be = buf + size - 1;
|
||||||
|
int radix;
|
||||||
|
hio_uch_t radix_char;
|
||||||
|
|
||||||
|
radix = (flagged_radix & HIO_BYTE_TO_UCSTR_RADIXMASK);
|
||||||
|
radix_char = (flagged_radix & HIO_BYTE_TO_UCSTR_LOWERCASE)? 'a': 'A';
|
||||||
|
if (radix < 2 || radix > 36 || size <= 0) return 0;
|
||||||
|
|
||||||
|
do
|
||||||
|
{
|
||||||
|
hio_uint8_t digit = byte % radix;
|
||||||
|
if (digit < 10) *p++ = digit + '0';
|
||||||
|
else *p++ = digit + radix_char - 10;
|
||||||
|
byte /= radix;
|
||||||
|
}
|
||||||
|
while (byte > 0);
|
||||||
|
|
||||||
|
if (fill != '\0')
|
||||||
|
{
|
||||||
|
while (size - 1 > p - tmp)
|
||||||
|
{
|
||||||
|
*bp++ = fill;
|
||||||
|
size--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while (p > tmp && bp < be) *bp++ = *--p;
|
||||||
|
*bp = '\0';
|
||||||
|
return bp - buf;
|
||||||
|
}
|
||||||
|
|
||||||
hio_oow_t hio_byte_to_bcstr (hio_uint8_t byte, hio_bch_t* buf, hio_oow_t size, int flagged_radix, hio_bch_t fill)
|
hio_oow_t hio_byte_to_bcstr (hio_uint8_t byte, hio_bch_t* buf, hio_oow_t size, int flagged_radix, hio_bch_t fill)
|
||||||
{
|
{
|
||||||
hio_bch_t tmp[(HIO_SIZEOF(hio_uint8_t) * HIO_BITS_PER_BYTE)];
|
hio_bch_t tmp[(HIO_SIZEOF(hio_uint8_t) * HIO_BITS_PER_BYTE)];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user