added qse_fmtintmaxtombs()/qse_fmtintmaxtowcs() and related functions.
changed qse_awk_t to use these new formatting functions. redefined some primitive types
This commit is contained in:
@ -6,7 +6,7 @@ AM_CPPFLAGS = \
|
||||
-I$(includedir)
|
||||
|
||||
|
||||
bin_PROGRAMS = xma fma pma chr str sll dll lda oht htb rbt fio pio sio time main main2 rex01 env path01 tre01 fmt01
|
||||
bin_PROGRAMS = xma fma pma chr str sll dll lda oht htb rbt fio pio sio time main main2 rex01 env path01 tre01 fmt01 fmt02
|
||||
|
||||
LDFLAGS = -L../../lib/cmn
|
||||
LDADD = -lqsecmn
|
||||
@ -33,6 +33,7 @@ env_SOURCES = env.c
|
||||
path01_SOURCES = path01.c
|
||||
tre01_SOURCES = tre01.c
|
||||
fmt01_SOURCES = fmt01.c
|
||||
fmt02_SOURCES = fmt02.c
|
||||
|
||||
if ENABLE_CXX
|
||||
|
||||
|
@ -39,7 +39,7 @@ bin_PROGRAMS = xma$(EXEEXT) fma$(EXEEXT) pma$(EXEEXT) chr$(EXEEXT) \
|
||||
oht$(EXEEXT) htb$(EXEEXT) rbt$(EXEEXT) fio$(EXEEXT) \
|
||||
pio$(EXEEXT) sio$(EXEEXT) time$(EXEEXT) main$(EXEEXT) \
|
||||
main2$(EXEEXT) rex01$(EXEEXT) env$(EXEEXT) path01$(EXEEXT) \
|
||||
tre01$(EXEEXT) fmt01$(EXEEXT)
|
||||
tre01$(EXEEXT) fmt01$(EXEEXT) fmt02$(EXEEXT)
|
||||
subdir = samples/cmn
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
@ -80,6 +80,10 @@ am_fmt01_OBJECTS = fmt01.$(OBJEXT)
|
||||
fmt01_OBJECTS = $(am_fmt01_OBJECTS)
|
||||
fmt01_LDADD = $(LDADD)
|
||||
fmt01_DEPENDENCIES =
|
||||
am_fmt02_OBJECTS = fmt02.$(OBJEXT)
|
||||
fmt02_OBJECTS = $(am_fmt02_OBJECTS)
|
||||
fmt02_LDADD = $(LDADD)
|
||||
fmt02_DEPENDENCIES =
|
||||
am_htb_OBJECTS = htb.$(OBJEXT)
|
||||
htb_OBJECTS = $(am_htb_OBJECTS)
|
||||
htb_LDADD = $(LDADD)
|
||||
@ -158,17 +162,18 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
SOURCES = $(chr_SOURCES) $(dll_SOURCES) $(env_SOURCES) $(fio_SOURCES) \
|
||||
$(fma_SOURCES) $(fmt01_SOURCES) $(htb_SOURCES) $(lda_SOURCES) \
|
||||
$(main_SOURCES) $(main2_SOURCES) $(oht_SOURCES) \
|
||||
$(path01_SOURCES) $(pio_SOURCES) $(pma_SOURCES) $(rbt_SOURCES) \
|
||||
$(rex01_SOURCES) $(sio_SOURCES) $(sll_SOURCES) $(str_SOURCES) \
|
||||
$(time_SOURCES) $(tre01_SOURCES) $(xma_SOURCES)
|
||||
$(fma_SOURCES) $(fmt01_SOURCES) $(fmt02_SOURCES) \
|
||||
$(htb_SOURCES) $(lda_SOURCES) $(main_SOURCES) $(main2_SOURCES) \
|
||||
$(oht_SOURCES) $(path01_SOURCES) $(pio_SOURCES) $(pma_SOURCES) \
|
||||
$(rbt_SOURCES) $(rex01_SOURCES) $(sio_SOURCES) $(sll_SOURCES) \
|
||||
$(str_SOURCES) $(time_SOURCES) $(tre01_SOURCES) $(xma_SOURCES)
|
||||
DIST_SOURCES = $(chr_SOURCES) $(dll_SOURCES) $(env_SOURCES) \
|
||||
$(fio_SOURCES) $(fma_SOURCES) $(fmt01_SOURCES) $(htb_SOURCES) \
|
||||
$(lda_SOURCES) $(main_SOURCES) $(main2_SOURCES) $(oht_SOURCES) \
|
||||
$(path01_SOURCES) $(pio_SOURCES) $(pma_SOURCES) $(rbt_SOURCES) \
|
||||
$(rex01_SOURCES) $(sio_SOURCES) $(sll_SOURCES) $(str_SOURCES) \
|
||||
$(time_SOURCES) $(tre01_SOURCES) $(xma_SOURCES)
|
||||
$(fio_SOURCES) $(fma_SOURCES) $(fmt01_SOURCES) \
|
||||
$(fmt02_SOURCES) $(htb_SOURCES) $(lda_SOURCES) $(main_SOURCES) \
|
||||
$(main2_SOURCES) $(oht_SOURCES) $(path01_SOURCES) \
|
||||
$(pio_SOURCES) $(pma_SOURCES) $(rbt_SOURCES) $(rex01_SOURCES) \
|
||||
$(sio_SOURCES) $(sll_SOURCES) $(str_SOURCES) $(time_SOURCES) \
|
||||
$(tre01_SOURCES) $(xma_SOURCES)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
@ -342,6 +347,7 @@ env_SOURCES = env.c
|
||||
path01_SOURCES = path01.c
|
||||
tre01_SOURCES = tre01.c
|
||||
fmt01_SOURCES = fmt01.c
|
||||
fmt02_SOURCES = fmt02.c
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
@ -437,6 +443,9 @@ fma$(EXEEXT): $(fma_OBJECTS) $(fma_DEPENDENCIES)
|
||||
fmt01$(EXEEXT): $(fmt01_OBJECTS) $(fmt01_DEPENDENCIES)
|
||||
@rm -f fmt01$(EXEEXT)
|
||||
$(LINK) $(fmt01_OBJECTS) $(fmt01_LDADD) $(LIBS)
|
||||
fmt02$(EXEEXT): $(fmt02_OBJECTS) $(fmt02_DEPENDENCIES)
|
||||
@rm -f fmt02$(EXEEXT)
|
||||
$(LINK) $(fmt02_OBJECTS) $(fmt02_LDADD) $(LIBS)
|
||||
htb$(EXEEXT): $(htb_OBJECTS) $(htb_DEPENDENCIES)
|
||||
@rm -f htb$(EXEEXT)
|
||||
$(LINK) $(htb_OBJECTS) $(htb_LDADD) $(LIBS)
|
||||
@ -498,6 +507,7 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fio.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fma.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fmt01.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fmt02.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htb.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lda.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
|
||||
|
@ -3,14 +3,26 @@
|
||||
|
||||
static int test_main (int argc, qse_char_t* argv[], qse_char_t* envp[])
|
||||
{
|
||||
qse_char_t buf[50];
|
||||
qse_char_t buf[17];
|
||||
int bases[] = { 2, 8, 10, 16 };
|
||||
int flags[] =
|
||||
{
|
||||
0,
|
||||
QSE_FMTULONG_UPPERCASE,
|
||||
QSE_FMTULONG_FILLRIGHT,
|
||||
QSE_FMTULONG_UPPERCASE | QSE_FMTULONG_FILLRIGHT
|
||||
QSE_FMTINTMAX_NOTRUNC | 0,
|
||||
QSE_FMTINTMAX_NOTRUNC | QSE_FMTINTMAX_UPPERCASE,
|
||||
QSE_FMTINTMAX_NOTRUNC | QSE_FMTINTMAX_FILLRIGHT,
|
||||
QSE_FMTINTMAX_NOTRUNC | QSE_FMTINTMAX_UPPERCASE | QSE_FMTINTMAX_PLUSSIGN,
|
||||
QSE_FMTINTMAX_NOTRUNC | QSE_FMTINTMAX_UPPERCASE | QSE_FMTINTMAX_FILLRIGHT,
|
||||
QSE_FMTINTMAX_NOTRUNC | QSE_FMTINTMAX_UPPERCASE | QSE_FMTINTMAX_FILLCENTER,
|
||||
QSE_FMTINTMAX_NOTRUNC | QSE_FMTINTMAX_UPPERCASE | QSE_FMTINTMAX_FILLRIGHT | QSE_FMTINTMAX_PLUSSIGN,
|
||||
QSE_FMTINTMAX_NOTRUNC | QSE_FMTINTMAX_UPPERCASE | QSE_FMTINTMAX_FILLCENTER | QSE_FMTINTMAX_PLUSSIGN,
|
||||
QSE_FMTINTMAX_NOTRUNC | QSE_FMTINTMAX_NONULL | 0,
|
||||
QSE_FMTINTMAX_NOTRUNC | QSE_FMTINTMAX_NONULL | QSE_FMTINTMAX_UPPERCASE,
|
||||
QSE_FMTINTMAX_NOTRUNC | QSE_FMTINTMAX_NONULL | QSE_FMTINTMAX_FILLRIGHT,
|
||||
QSE_FMTINTMAX_NOTRUNC | QSE_FMTINTMAX_NONULL | QSE_FMTINTMAX_UPPERCASE | QSE_FMTINTMAX_PLUSSIGN,
|
||||
QSE_FMTINTMAX_NOTRUNC | QSE_FMTINTMAX_NONULL | QSE_FMTINTMAX_UPPERCASE | QSE_FMTINTMAX_FILLRIGHT,
|
||||
QSE_FMTINTMAX_NOTRUNC | QSE_FMTINTMAX_NONULL | QSE_FMTINTMAX_UPPERCASE | QSE_FMTINTMAX_FILLCENTER,
|
||||
QSE_FMTINTMAX_NOTRUNC | QSE_FMTINTMAX_NONULL | QSE_FMTINTMAX_UPPERCASE | QSE_FMTINTMAX_FILLRIGHT | QSE_FMTINTMAX_PLUSSIGN,
|
||||
QSE_FMTINTMAX_NOTRUNC | QSE_FMTINTMAX_NONULL | QSE_FMTINTMAX_UPPERCASE | QSE_FMTINTMAX_FILLCENTER | QSE_FMTINTMAX_PLUSSIGN
|
||||
};
|
||||
int i, j;
|
||||
int num = 0xF0F3;
|
||||
@ -19,8 +31,15 @@ static int test_main (int argc, qse_char_t* argv[], qse_char_t* envp[])
|
||||
{
|
||||
for (j = 0; j < QSE_COUNTOF(flags); j++)
|
||||
{
|
||||
qse_fmtulong (buf, QSE_COUNTOF(buf), num, bases[i] | flags[j], QSE_T('.'));
|
||||
qse_printf (QSE_T("%8X => [%4d:%04X] [%s]\n"), num, bases[i], flags[j], buf);
|
||||
int n = qse_fmtuintmax (buf, QSE_COUNTOF(buf), num, bases[i] | flags[j], QSE_T('.'));
|
||||
if (n <= -1)
|
||||
{
|
||||
qse_printf (QSE_T("%8X => [%4d:%04X] ERROR[%d]\n"), num, bases[i], flags[j], n);
|
||||
}
|
||||
else
|
||||
{
|
||||
qse_printf (QSE_T("%8X => [%4d:%04X] [%.*s][%d]\n"), num, bases[i], flags[j], n, buf, n);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
50
qse/samples/cmn/fmt02.c
Normal file
50
qse/samples/cmn/fmt02.c
Normal file
@ -0,0 +1,50 @@
|
||||
#include <qse/cmn/fmt.h>
|
||||
#include <qse/cmn/main.h>
|
||||
|
||||
static int test_main (int argc, qse_char_t* argv[], qse_char_t* envp[])
|
||||
{
|
||||
qse_char_t buf[129];
|
||||
int bases[] = { 2, 8, 10, 16 };
|
||||
int flags[] =
|
||||
{
|
||||
QSE_FMTINTMAX_PLUSSIGN,
|
||||
QSE_FMTINTMAX_FILLRIGHT | QSE_FMTINTMAX_PLUSSIGN,
|
||||
QSE_FMTINTMAX_FILLCENTER | QSE_FMTINTMAX_PLUSSIGN
|
||||
};
|
||||
int i, j, k;
|
||||
qse_intmax_t nums[] = { -12345, 12345, 0, QSE_TYPE_MAX(qse_intmax_t) };
|
||||
|
||||
/* note that nums[3] may not be printed properly with %d in printf().
|
||||
* however, the formatting result with qse_fmtintmax() should be printed
|
||||
* properly.
|
||||
*/
|
||||
|
||||
|
||||
for (k = 0; k < QSE_COUNTOF(nums) ; k++)
|
||||
{
|
||||
for (i = 0; i < QSE_COUNTOF(bases); i++)
|
||||
{
|
||||
for (j = 0; j < QSE_COUNTOF(flags); j++)
|
||||
{
|
||||
int n = qse_fmtintmax (buf, QSE_COUNTOF(buf), nums[k], bases[i] | flags[j] | QSE_FMTINTMAX_NOTRUNC, QSE_T('.'));
|
||||
if (n <= -1)
|
||||
{
|
||||
qse_printf (QSE_T("%8d => [%4d:%04X] ERROR[%d]\n"), (int)nums[k], bases[i], flags[j], n);
|
||||
}
|
||||
else
|
||||
{
|
||||
qse_printf (QSE_T("%8d => [%4d:%04X] [%s]\n"), (int)nums[k], bases[i], flags[j], buf);
|
||||
}
|
||||
}
|
||||
}
|
||||
qse_printf (QSE_T("------------------------------\n"));
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int qse_main (int argc, qse_achar_t* argv[], qse_achar_t* envp[])
|
||||
{
|
||||
return qse_runmainwithenv (argc, argv, envp, test_main);
|
||||
}
|
||||
|
Reference in New Issue
Block a user