separated slmb from mbwc

This commit is contained in:
2012-01-03 14:41:15 +00:00
parent dd02292cc4
commit 42431d2642
39 changed files with 890 additions and 331 deletions

View File

@ -21,6 +21,12 @@
#include <qse/awk/StdAwk.hpp>
#include <qse/cmn/stdio.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
#endif
static void print_error (
const QSE::StdAwk::loc_t& loc, const QSE::StdAwk::char_t* msg)
@ -76,5 +82,23 @@ static int awk_main (int argc, qse_char_t* argv[])
int qse_main (int argc, qse_achar_t* argv[])
{
#if defined(_WIN32)
char locale[100];
UINT codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgr (qse_utf8cmgr);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_slmbcmgr);
#endif
return qse_runmain (argc,argv,awk_main);
}

View File

@ -21,6 +21,12 @@
#include <qse/awk/StdAwk.hpp>
#include <qse/cmn/stdio.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
#endif
static void print_error (
const QSE::StdAwk::loc_t& loc, const QSE::StdAwk::char_t* msg)
@ -103,5 +109,23 @@ static int awk_main (int argc, qse_char_t* argv[])
int qse_main (int argc, qse_achar_t* argv[])
{
#if defined(_WIN32)
char locale[100];
UINT codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgr (qse_utf8cmgr);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_slmbcmgr);
#endif
return qse_runmain (argc,argv,awk_main);
}

View File

@ -21,6 +21,13 @@
#include <qse/awk/StdAwk.hpp>
#include <qse/cmn/stdio.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
#endif
static void print_error (
const QSE::StdAwk::loc_t& loc, const QSE::StdAwk::char_t* msg)
@ -147,5 +154,23 @@ static int awk_main (int argc, qse_char_t* argv[])
int qse_main (int argc, qse_achar_t* argv[])
{
#if defined(_WIN32)
char locale[100];
UINT codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgr (qse_utf8cmgr);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_slmbcmgr);
#endif
return qse_runmain (argc,argv,awk_main);
}

View File

@ -21,9 +21,12 @@
#include <qse/awk/StdAwk.hpp>
#include <qse/cmn/opt.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/stdio.h>
#include <cstring>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
#elif defined(__OS2__)

View File

@ -7,46 +7,70 @@ AM_CPPFLAGS = \
bin_PROGRAMS = \
xma fma pma chr \
chr01 \
env \
dll \
fio01 \
fio02 \
fma \
fmt01 \
fmt02 \
fs01 \
htb \
lda \
main01 \
main02 \
mbwc01 \
mbwc02 \
oht \
path01 \
pio \
pma \
rex01 \
rbt \
sio01 \
sio02 \
sio03 \
sll \
slmb01 \
str01 \
mbwc01 mbwc02 \
sll dll lda oht htb rbt fio01 fio02 pio \
sio01 sio02 sio03 \
time main main2 rex01 env path01 tre01 \
fmt01 fmt02 fs01
time \
tre01 \
xma
LDFLAGS = -L../../lib/cmn
LDADD = -lqsecmn
xma_SOURCES = xma.c
fma_SOURCES = fma.c
pma_SOURCES = pma.c
chr_SOURCES = chr.c
str01_SOURCES = str01.c
mbwc01_SOURCES = mbwc01.c
mbwc02_SOURCES = mbwc02.c
sll_SOURCES = sll.c
chr01_SOURCES = chr01.c
env_SOURCES = env.c
dll_SOURCES = dll.c
lda_SOURCES = lda.c
oht_SOURCES = oht.c
htb_SOURCES = htb.c
rbt_SOURCES = rbt.c
fio01_SOURCES = fio01.c
fio02_SOURCES = fio02.c
pio_SOURCES = pio.c
sio01_SOURCES = sio01.c
sio02_SOURCES = sio02.c
sio03_SOURCES = sio03.c
time_SOURCES = time.c
main_SOURCES = main.c
main2_SOURCES = main2.c
rex01_SOURCES = rex01.c
env_SOURCES = env.c
path01_SOURCES = path01.c
tre01_SOURCES = tre01.c
fma_SOURCES = fma.c
fmt01_SOURCES = fmt01.c
fmt02_SOURCES = fmt02.c
fs01_SOURCES = fs01.c
htb_SOURCES = htb.c
lda_SOURCES = lda.c
main01_SOURCES = main01.c
main02_SOURCES = main02.c
mbwc01_SOURCES = mbwc01.c
mbwc02_SOURCES = mbwc02.c
oht_SOURCES = oht.c
path01_SOURCES = path01.c
pio_SOURCES = pio.c
pma_SOURCES = pma.c
rex01_SOURCES = rex01.c
rbt_SOURCES = rbt.c
sio01_SOURCES = sio01.c
sio02_SOURCES = sio02.c
sio03_SOURCES = sio03.c
sll_SOURCES = sll.c
slmb01_SOURCES = slmb01.c
str01_SOURCES = str01.c
time_SOURCES = time.c
tre01_SOURCES = tre01.c
xma_SOURCES = xma.c
if ENABLE_CXX

View File

@ -34,14 +34,14 @@ PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
bin_PROGRAMS = xma$(EXEEXT) fma$(EXEEXT) pma$(EXEEXT) chr$(EXEEXT) \
str01$(EXEEXT) mbwc01$(EXEEXT) mbwc02$(EXEEXT) sll$(EXEEXT) \
dll$(EXEEXT) lda$(EXEEXT) oht$(EXEEXT) htb$(EXEEXT) \
rbt$(EXEEXT) fio01$(EXEEXT) fio02$(EXEEXT) pio$(EXEEXT) \
sio01$(EXEEXT) sio02$(EXEEXT) sio03$(EXEEXT) time$(EXEEXT) \
main$(EXEEXT) main2$(EXEEXT) rex01$(EXEEXT) env$(EXEEXT) \
path01$(EXEEXT) tre01$(EXEEXT) fmt01$(EXEEXT) fmt02$(EXEEXT) \
fs01$(EXEEXT)
bin_PROGRAMS = chr01$(EXEEXT) env$(EXEEXT) dll$(EXEEXT) fio01$(EXEEXT) \
fio02$(EXEEXT) fma$(EXEEXT) fmt01$(EXEEXT) fmt02$(EXEEXT) \
fs01$(EXEEXT) htb$(EXEEXT) lda$(EXEEXT) main01$(EXEEXT) \
main02$(EXEEXT) mbwc01$(EXEEXT) mbwc02$(EXEEXT) oht$(EXEEXT) \
path01$(EXEEXT) pio$(EXEEXT) pma$(EXEEXT) rex01$(EXEEXT) \
rbt$(EXEEXT) sio01$(EXEEXT) sio02$(EXEEXT) sio03$(EXEEXT) \
sll$(EXEEXT) slmb01$(EXEEXT) str01$(EXEEXT) time$(EXEEXT) \
tre01$(EXEEXT) xma$(EXEEXT)
subdir = samples/cmn
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@ -58,10 +58,10 @@ CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
am__installdirs = "$(DESTDIR)$(bindir)"
PROGRAMS = $(bin_PROGRAMS)
am_chr_OBJECTS = chr.$(OBJEXT)
chr_OBJECTS = $(am_chr_OBJECTS)
chr_LDADD = $(LDADD)
chr_DEPENDENCIES =
am_chr01_OBJECTS = chr01.$(OBJEXT)
chr01_OBJECTS = $(am_chr01_OBJECTS)
chr01_LDADD = $(LDADD)
chr01_DEPENDENCIES =
am_dll_OBJECTS = dll.$(OBJEXT)
dll_OBJECTS = $(am_dll_OBJECTS)
dll_LDADD = $(LDADD)
@ -102,14 +102,14 @@ am_lda_OBJECTS = lda.$(OBJEXT)
lda_OBJECTS = $(am_lda_OBJECTS)
lda_LDADD = $(LDADD)
lda_DEPENDENCIES =
am_main_OBJECTS = main.$(OBJEXT)
main_OBJECTS = $(am_main_OBJECTS)
main_LDADD = $(LDADD)
main_DEPENDENCIES =
am_main2_OBJECTS = main2.$(OBJEXT)
main2_OBJECTS = $(am_main2_OBJECTS)
main2_LDADD = $(LDADD)
main2_DEPENDENCIES =
am_main01_OBJECTS = main01.$(OBJEXT)
main01_OBJECTS = $(am_main01_OBJECTS)
main01_LDADD = $(LDADD)
main01_DEPENDENCIES =
am_main02_OBJECTS = main02.$(OBJEXT)
main02_OBJECTS = $(am_main02_OBJECTS)
main02_LDADD = $(LDADD)
main02_DEPENDENCIES =
am_mbwc01_OBJECTS = mbwc01.$(OBJEXT)
mbwc01_OBJECTS = $(am_mbwc01_OBJECTS)
mbwc01_LDADD = $(LDADD)
@ -158,6 +158,10 @@ am_sll_OBJECTS = sll.$(OBJEXT)
sll_OBJECTS = $(am_sll_OBJECTS)
sll_LDADD = $(LDADD)
sll_DEPENDENCIES =
am_slmb01_OBJECTS = slmb01.$(OBJEXT)
slmb01_OBJECTS = $(am_slmb01_OBJECTS)
slmb01_LDADD = $(LDADD)
slmb01_DEPENDENCIES =
am_str01_OBJECTS = str01.$(OBJEXT)
str01_OBJECTS = $(am_str01_OBJECTS)
str01_LDADD = $(LDADD)
@ -187,24 +191,26 @@ CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
SOURCES = $(chr_SOURCES) $(dll_SOURCES) $(env_SOURCES) \
SOURCES = $(chr01_SOURCES) $(dll_SOURCES) $(env_SOURCES) \
$(fio01_SOURCES) $(fio02_SOURCES) $(fma_SOURCES) \
$(fmt01_SOURCES) $(fmt02_SOURCES) $(fs01_SOURCES) \
$(htb_SOURCES) $(lda_SOURCES) $(main_SOURCES) $(main2_SOURCES) \
$(mbwc01_SOURCES) $(mbwc02_SOURCES) $(oht_SOURCES) \
$(path01_SOURCES) $(pio_SOURCES) $(pma_SOURCES) $(rbt_SOURCES) \
$(rex01_SOURCES) $(sio01_SOURCES) $(sio02_SOURCES) \
$(sio03_SOURCES) $(sll_SOURCES) $(str01_SOURCES) \
$(time_SOURCES) $(tre01_SOURCES) $(xma_SOURCES)
DIST_SOURCES = $(chr_SOURCES) $(dll_SOURCES) $(env_SOURCES) \
$(htb_SOURCES) $(lda_SOURCES) $(main01_SOURCES) \
$(main02_SOURCES) $(mbwc01_SOURCES) $(mbwc02_SOURCES) \
$(oht_SOURCES) $(path01_SOURCES) $(pio_SOURCES) $(pma_SOURCES) \
$(rbt_SOURCES) $(rex01_SOURCES) $(sio01_SOURCES) \
$(sio02_SOURCES) $(sio03_SOURCES) $(sll_SOURCES) \
$(slmb01_SOURCES) $(str01_SOURCES) $(time_SOURCES) \
$(tre01_SOURCES) $(xma_SOURCES)
DIST_SOURCES = $(chr01_SOURCES) $(dll_SOURCES) $(env_SOURCES) \
$(fio01_SOURCES) $(fio02_SOURCES) $(fma_SOURCES) \
$(fmt01_SOURCES) $(fmt02_SOURCES) $(fs01_SOURCES) \
$(htb_SOURCES) $(lda_SOURCES) $(main_SOURCES) $(main2_SOURCES) \
$(mbwc01_SOURCES) $(mbwc02_SOURCES) $(oht_SOURCES) \
$(path01_SOURCES) $(pio_SOURCES) $(pma_SOURCES) $(rbt_SOURCES) \
$(rex01_SOURCES) $(sio01_SOURCES) $(sio02_SOURCES) \
$(sio03_SOURCES) $(sll_SOURCES) $(str01_SOURCES) \
$(time_SOURCES) $(tre01_SOURCES) $(xma_SOURCES)
$(htb_SOURCES) $(lda_SOURCES) $(main01_SOURCES) \
$(main02_SOURCES) $(mbwc01_SOURCES) $(mbwc02_SOURCES) \
$(oht_SOURCES) $(path01_SOURCES) $(pio_SOURCES) $(pma_SOURCES) \
$(rbt_SOURCES) $(rex01_SOURCES) $(sio01_SOURCES) \
$(sio02_SOURCES) $(sio03_SOURCES) $(sll_SOURCES) \
$(slmb01_SOURCES) $(str01_SOURCES) $(time_SOURCES) \
$(tre01_SOURCES) $(xma_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@ -356,35 +362,36 @@ AM_CPPFLAGS = \
-I$(includedir)
LDADD = -lqsecmn
xma_SOURCES = xma.c
fma_SOURCES = fma.c
pma_SOURCES = pma.c
chr_SOURCES = chr.c
str01_SOURCES = str01.c
mbwc01_SOURCES = mbwc01.c
mbwc02_SOURCES = mbwc02.c
sll_SOURCES = sll.c
chr01_SOURCES = chr01.c
env_SOURCES = env.c
dll_SOURCES = dll.c
lda_SOURCES = lda.c
oht_SOURCES = oht.c
htb_SOURCES = htb.c
rbt_SOURCES = rbt.c
fio01_SOURCES = fio01.c
fio02_SOURCES = fio02.c
pio_SOURCES = pio.c
sio01_SOURCES = sio01.c
sio02_SOURCES = sio02.c
sio03_SOURCES = sio03.c
time_SOURCES = time.c
main_SOURCES = main.c
main2_SOURCES = main2.c
rex01_SOURCES = rex01.c
env_SOURCES = env.c
path01_SOURCES = path01.c
tre01_SOURCES = tre01.c
fma_SOURCES = fma.c
fmt01_SOURCES = fmt01.c
fmt02_SOURCES = fmt02.c
fs01_SOURCES = fs01.c
htb_SOURCES = htb.c
lda_SOURCES = lda.c
main01_SOURCES = main01.c
main02_SOURCES = main02.c
mbwc01_SOURCES = mbwc01.c
mbwc02_SOURCES = mbwc02.c
oht_SOURCES = oht.c
path01_SOURCES = path01.c
pio_SOURCES = pio.c
pma_SOURCES = pma.c
rex01_SOURCES = rex01.c
rbt_SOURCES = rbt.c
sio01_SOURCES = sio01.c
sio02_SOURCES = sio02.c
sio03_SOURCES = sio03.c
sll_SOURCES = sll.c
slmb01_SOURCES = slmb01.c
str01_SOURCES = str01.c
time_SOURCES = time.c
tre01_SOURCES = tre01.c
xma_SOURCES = xma.c
all: all-am
.SUFFIXES:
@ -462,9 +469,9 @@ clean-binPROGRAMS:
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
chr$(EXEEXT): $(chr_OBJECTS) $(chr_DEPENDENCIES)
@rm -f chr$(EXEEXT)
$(LINK) $(chr_OBJECTS) $(chr_LDADD) $(LIBS)
chr01$(EXEEXT): $(chr01_OBJECTS) $(chr01_DEPENDENCIES)
@rm -f chr01$(EXEEXT)
$(LINK) $(chr01_OBJECTS) $(chr01_LDADD) $(LIBS)
dll$(EXEEXT): $(dll_OBJECTS) $(dll_DEPENDENCIES)
@rm -f dll$(EXEEXT)
$(LINK) $(dll_OBJECTS) $(dll_LDADD) $(LIBS)
@ -495,12 +502,12 @@ htb$(EXEEXT): $(htb_OBJECTS) $(htb_DEPENDENCIES)
lda$(EXEEXT): $(lda_OBJECTS) $(lda_DEPENDENCIES)
@rm -f lda$(EXEEXT)
$(LINK) $(lda_OBJECTS) $(lda_LDADD) $(LIBS)
main$(EXEEXT): $(main_OBJECTS) $(main_DEPENDENCIES)
@rm -f main$(EXEEXT)
$(LINK) $(main_OBJECTS) $(main_LDADD) $(LIBS)
main2$(EXEEXT): $(main2_OBJECTS) $(main2_DEPENDENCIES)
@rm -f main2$(EXEEXT)
$(LINK) $(main2_OBJECTS) $(main2_LDADD) $(LIBS)
main01$(EXEEXT): $(main01_OBJECTS) $(main01_DEPENDENCIES)
@rm -f main01$(EXEEXT)
$(LINK) $(main01_OBJECTS) $(main01_LDADD) $(LIBS)
main02$(EXEEXT): $(main02_OBJECTS) $(main02_DEPENDENCIES)
@rm -f main02$(EXEEXT)
$(LINK) $(main02_OBJECTS) $(main02_LDADD) $(LIBS)
mbwc01$(EXEEXT): $(mbwc01_OBJECTS) $(mbwc01_DEPENDENCIES)
@rm -f mbwc01$(EXEEXT)
$(LINK) $(mbwc01_OBJECTS) $(mbwc01_LDADD) $(LIBS)
@ -537,6 +544,9 @@ sio03$(EXEEXT): $(sio03_OBJECTS) $(sio03_DEPENDENCIES)
sll$(EXEEXT): $(sll_OBJECTS) $(sll_DEPENDENCIES)
@rm -f sll$(EXEEXT)
$(LINK) $(sll_OBJECTS) $(sll_LDADD) $(LIBS)
slmb01$(EXEEXT): $(slmb01_OBJECTS) $(slmb01_DEPENDENCIES)
@rm -f slmb01$(EXEEXT)
$(LINK) $(slmb01_OBJECTS) $(slmb01_LDADD) $(LIBS)
str01$(EXEEXT): $(str01_OBJECTS) $(str01_DEPENDENCIES)
@rm -f str01$(EXEEXT)
$(LINK) $(str01_OBJECTS) $(str01_LDADD) $(LIBS)
@ -556,7 +566,7 @@ mostlyclean-compile:
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chr01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dll.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/env.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fio01.Po@am__quote@
@ -567,8 +577,8 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fs01.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@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main2.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main02.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbwc01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbwc02.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/oht.Po@am__quote@
@ -581,6 +591,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sio02.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sio03.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sll.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slmb01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/str01.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/time.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tre01.Po@am__quote@

53
qse/samples/cmn/chr01.c Normal file
View File

@ -0,0 +1,53 @@
#include <qse/cmn/chr.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/stdio.h>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
#endif
#define R(f) \
do { \
qse_printf (QSE_T("== %s ==\n"), QSE_T(#f)); \
if (f() == -1) return -1; \
} while (0)
static int test1 (void)
{
qse_char_t c;
for (c = QSE_T('a'); c <= QSE_T('z'); c++)
{
qse_printf (QSE_T("%c => %c\n"), c, QSE_TOUPPER(c));
}
return 0;
}
int main ()
{
#if defined(_WIN32)
char locale[100];
UINT codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgr (qse_utf8cmgr);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_slmbcmgr);
#endif
R (test1);
return 0;
}

View File

@ -1,7 +1,13 @@
#include <qse/cmn/fmt.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/stdio.h>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
#endif
static int test_main (int argc, qse_char_t* argv[], qse_char_t* envp[])
{
qse_char_t buf[19];
@ -50,6 +56,24 @@ static int test_main (int argc, qse_char_t* argv[], qse_char_t* envp[])
int qse_main (int argc, qse_achar_t* argv[], qse_achar_t* envp[])
{
#if defined(_WIN32)
char locale[100];
UINT codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgr (qse_utf8cmgr);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_slmbcmgr);
#endif
return qse_runmainwithenv (argc, argv, envp, test_main);
}

View File

@ -1,7 +1,14 @@
#include <qse/cmn/fmt.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/stdio.h>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
#endif
static int test_main (int argc, qse_char_t* argv[], qse_char_t* envp[])
{
qse_char_t buf[129];
@ -69,6 +76,24 @@ static int test_main (int argc, qse_char_t* argv[], qse_char_t* envp[])
int qse_main (int argc, qse_achar_t* argv[], qse_achar_t* envp[])
{
#if defined(_WIN32)
char locale[100];
UINT codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgr (qse_utf8cmgr);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_slmbcmgr);
#endif
return qse_runmainwithenv (argc, argv, envp, test_main);
}

View File

@ -1,7 +1,14 @@
#include <qse/cmn/fs.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/stdio.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/stdio.h>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
#endif
static void list (qse_fs_t* fs, const qse_char_t* name)
{
@ -68,6 +75,24 @@ int fs_main (int argc, qse_char_t* argv[])
int qse_main (int argc, qse_achar_t* argv[])
{
#if defined(_WIN32)
char locale[100];
UINT codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgr (qse_utf8cmgr);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_slmbcmgr);
#endif
return qse_runmain (argc, argv, fs_main);
}

View File

@ -1,20 +0,0 @@
#include <qse/cmn/main.h>
#include <qse/cmn/stdio.h>
static int test_main (int argc, qse_char_t* argv[])
{
int i;
for (i = 0; i < argc; i++)
{
qse_printf (QSE_T("%d => [%s]\n"), i, argv[i]);
}
return 0;
}
int qse_main (int argc, qse_achar_t* argv[])
{
return qse_runmain (argc, argv, test_main);
}

47
qse/samples/cmn/main01.c Normal file
View File

@ -0,0 +1,47 @@
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/stdio.h>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
#endif
static int test_main (int argc, qse_char_t* argv[])
{
int i;
for (i = 0; i < argc; i++)
{
qse_printf (QSE_T("%d => [%s]\n"), i, argv[i]);
}
return 0;
}
int qse_main (int argc, qse_achar_t* argv[])
{
#if defined(_WIN32)
char locale[100];
UINT codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgr (qse_utf8cmgr);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_slmbcmgr);
#endif
return qse_runmain (argc, argv, test_main);
}

51
qse/samples/cmn/main02.c Normal file
View File

@ -0,0 +1,51 @@
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/stdio.h>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
#endif
static int test_main (int argc, qse_char_t* argv[], qse_char_t* envp[])
{
int i;
for (i = 0; i < argc; i++)
{
qse_printf (QSE_T("ARG %d => [%s]\n"), i, argv[i]);
}
for (i = 0; envp[i]; i++)
{
qse_printf (QSE_T("ENV %d => [%s]\n"), i, envp[i]);
}
return 0;
}
int qse_main (int argc, qse_achar_t* argv[], qse_achar_t* envp[])
{
#if defined(_WIN32)
char locale[100];
UINT codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgr (qse_utf8cmgr);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_slmbcmgr);
#endif
return qse_runmainwithenv (argc, argv, envp, test_main);
}

View File

@ -1,25 +0,0 @@
#include <qse/cmn/main.h>
#include <qse/cmn/stdio.h>
static int test_main (int argc, qse_char_t* argv[], qse_char_t* envp[])
{
int i;
for (i = 0; i < argc; i++)
{
qse_printf (QSE_T("ARG %d => [%s]\n"), i, argv[i]);
}
for (i = 0; envp[i]; i++)
{
qse_printf (QSE_T("ENV %d => [%s]\n"), i, envp[i]);
}
return 0;
}
int qse_main (int argc, qse_achar_t* argv[], qse_achar_t* envp[])
{
return qse_runmainwithenv (argc, argv, envp, test_main);
}

View File

@ -1,10 +1,15 @@
#include <qse/cmn/path.h>
#include <qse/cmn/stdio.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/str.h>
#include <qse/cmn/mem.h>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
#endif
int path_main (int argc, qse_char_t* argv[])
{
qse_char_t* canon;
@ -60,6 +65,24 @@ int path_main (int argc, qse_char_t* argv[])
int qse_main (int argc, qse_achar_t* argv[])
{
#if defined(_WIN32)
char locale[100];
UINT codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgr (qse_utf8cmgr);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_slmbcmgr);
#endif
return qse_runmain (argc, argv, path_main);
}

View File

@ -2,9 +2,15 @@
#include <qse/cmn/mem.h>
#include <qse/cmn/str.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/path.h>
#include <qse/cmn/stdio.h>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
#endif
static int rex_main (int argc, qse_char_t* argv[])
{
qse_rex_t* rex;
@ -27,7 +33,7 @@ static int rex_main (int argc, qse_char_t* argv[])
return -1;
}
qse_rex_setoption (rex, QSE_REX_STRICT);
qse_rex_setoption (rex, QSE_REX_STRICT);
start = qse_rex_comp (rex, argv[1], qse_strlen(argv[1]));
if (start == QSE_NULL)
@ -64,6 +70,24 @@ qse_rex_setoption (rex, QSE_REX_STRICT);
int qse_main (int argc, qse_achar_t* argv[])
{
#if defined(_WIN32)
char locale[100];
UINT codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgr (qse_utf8cmgr);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_slmbcmgr);
#endif
return qse_runmain (argc, argv, rex_main);
}

View File

@ -157,11 +157,11 @@ int main ()
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_loccmgr);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_loccmgr);
qse_setdflcmgr (qse_slmbcmgr);
#endif
setlocale (LC_ALL, "");

View File

@ -72,6 +72,8 @@ static int test1 (void)
static int test2 (void)
{
/* this file is in utf8, the following strings may not be shown properly
* if your locale/codepage is not utf8 */
const qse_mchar_t* x[] =
{
QSE_MT("\0\0\0"),
@ -100,6 +102,8 @@ static int test2 (void)
static int test3 (void)
{
/* this file is in utf8, the following strings may not be shown properly
* if your locale/codepage is not utf8 */
const qse_mchar_t* x[] =
{
QSE_MT("\0\0\0"),
@ -141,11 +145,11 @@ int main ()
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_loccmgr);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_loccmgr);
qse_setdflcmgr (qse_slmbcmgr);
#endif
qse_printf (QSE_T("--------------------------------------------------------------------------------\n"));

View File

@ -1,10 +1,15 @@
#include <qse/cmn/slmb.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/chr.h>
#include <qse/cmn/str.h>
#include <qse/cmn/stdio.h>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
#endif
#define R(f) \
do { \
qse_printf (QSE_T("== %s ==\n"), QSE_T(#f)); \
@ -12,24 +17,12 @@
} while (0)
static int test1 (void)
{
qse_char_t c;
for (c = QSE_T('a'); c <= QSE_T('z'); c++)
{
qse_printf (QSE_T("%c => %c\n"), c, QSE_TOUPPER(c));
}
return 0;
}
static int test2 (void)
{
int i;
const qse_mchar_t* x[] =
{
"\0",
"뛰어 올라봐",
"뛰어 올라봐", /* this text is in utf8. so some conversions fail on a non-utf8 locale */
"Fly to the universe"
};
@ -44,7 +37,7 @@ static int test2 (void)
qse_printf (QSE_T("["));
while (j < k)
{
qse_size_t y = qse_mblen (&x[i][j], k-j);
qse_size_t y = qse_slmblen (&x[i][j], k-j);
if (y == 0)
{
@ -58,7 +51,7 @@ static int test2 (void)
}
else
{
qse_size_t y2 = qse_mbtowc (&x[i][j], y, &wc);
qse_size_t y2 = qse_slmbtoslwc (&x[i][j], y, &wc);
if (y2 != y)
{
qse_printf (QSE_T("***y(%d) != y2(%d). something is wrong*** "), (int)y, (int)y2);
@ -87,26 +80,44 @@ static int test2 (void)
return 0;
}
static int test3 (void)
static int test2 (void)
{
const qse_wchar_t unistr[] =
{
/*L"\uB108 \uBB50\uAC00 \uC798\uB0AC\uC5B4!",*/
0xB108,
L' ',
0xBB50,
0xAC00,
L' ',
0xC798,
0xB0AC,
0xC5B4,
L'!',
L'\0'
};
const qse_wchar_t* x[] =
{
L"\0",
L"\uB108 \uBB50\uAC00 \uC798\uB0AC\uC5B4?",
L"",
L"Fly to the universe"
};
char buf[100];
int i, j;
x[1] = unistr;
for (i = 0; i < QSE_COUNTOF(x); i++)
{
int nbytes = 0;
int len = qse_wcslen (x[i]);
if (len == 0) len++; /* for x[0] */
qse_printf (QSE_T("["));
for (j = 0; j < len; j++)
{
qse_size_t n = qse_wctomb (x[i][j], buf, sizeof(buf));
qse_size_t n = qse_slwctoslmb (x[i][j], buf, sizeof(buf) - 1);
if (n == 0)
{
@ -124,30 +135,40 @@ static int test3 (void)
}
else
{
#ifdef QSE_CHAR_IS_MCHAR
qse_printf (QSE_T("%.*s"), (int)n, buf);
#else
qse_printf (QSE_T("%.*S"), (int)n, buf);
#endif
buf[n] = QSE_MT('\0');
qse_printf (QSE_T("%hs"), buf);
}
nbytes += n;
}
}
qse_printf (QSE_T("] => %d chars\n"), (int)len);
qse_printf (QSE_T("] => %d chars, %d bytes\n"), (int)len, (int)nbytes);
}
return 0;
}
int main ()
{
setlocale (LC_ALL, "");
qse_printf (QSE_T("--------------------------------------------------------------------------------\n"));
qse_printf (QSE_T("Set the environment LANG to a Unicode locale such as UTF-8 if you see the illegal XXXXX errors. If you see such errors in Unicode locales, this program might be buggy. It is normal to see such messages in non-Unicode locales as it uses Unicode data\n"));
qse_printf (QSE_T("--------------------------------------------------------------------------------\n"));
#if defined(_WIN32)
char locale[100];
UINT codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgr (qse_utf8cmgr);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_slmbcmgr);
#endif
R (test1);
R (test2);
R (test3);
return 0;
}

View File

@ -1,10 +1,17 @@
#include <qse/cmn/main.h>
#include <qse/cmn/tre.h>
#include <qse/cmn/mem.h>
#include <qse/cmn/path.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/stdio.h>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
#endif
static int test_main (int argc, qse_char_t* argv[], qse_char_t* envp[])
{
qse_tre_t tre;
@ -70,6 +77,24 @@ oops:
int qse_main (int argc, qse_achar_t* argv[], qse_achar_t* envp[])
{
#if defined(_WIN32)
char locale[100];
UINT codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgr (qse_utf8cmgr);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_slmbcmgr);
#endif
return qse_runmainwithenv (argc, argv, envp, test_main);
}

View File

@ -20,8 +20,14 @@
#include <qse/sed/std.h>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/stdio.h>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
#endif
int sed_main (int argc, qse_char_t* argv[])
{
qse_sed_t* sed = QSE_NULL;
@ -64,6 +70,25 @@ oops:
int qse_main (int argc, qse_achar_t* argv[])
{
#if defined(_WIN32)
char locale[100];
UINT codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgr (qse_utf8cmgr);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_slmbcmgr);
#endif
return qse_runmain (argc, argv, sed_main);
}

View File

@ -20,8 +20,15 @@
#include <qse/sed/StdSed.hpp>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <iostream>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
#endif
#ifdef QSE_CHAR_IS_MCHAR
# define xcout std::cout
#else
@ -71,5 +78,23 @@ int sed_main (int argc, qse_char_t* argv[])
int qse_main (int argc, qse_achar_t* argv[])
{
#if defined(_WIN32)
char locale[100];
UINT codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgr (qse_utf8cmgr);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_slmbcmgr);
#endif
return qse_runmain (argc, argv, sed_main);
}

View File

@ -20,9 +20,16 @@
#include <qse/sed/StdSed.hpp>
#include <qse/cmn/main.h>
#include <qse/cmn/mbwc.h>
#include <qse/cmn/sio.h>
#include <iostream>
#include <locale.h>
#if defined(_WIN32)
# include <windows.h>
#endif
#ifdef QSE_CHAR_IS_MCHAR
# define xcout std::cout
#else
@ -86,5 +93,23 @@ int sed_main (int argc, qse_char_t* argv[])
int qse_main (int argc, qse_achar_t* argv[])
{
#if defined(_WIN32)
char locale[100];
UINT codepage = GetConsoleOutputCP();
if (codepage == CP_UTF8)
{
/*SetConsoleOUtputCP (CP_UTF8);*/
qse_setdflcmgr (qse_utf8cmgr);
}
else
{
sprintf (locale, ".%u", (unsigned int)codepage);
setlocale (LC_ALL, locale);
qse_setdflcmgr (qse_slmbcmgr);
}
#else
setlocale (LC_ALL, "");
qse_setdflcmgr (qse_slmbcmgr);
#endif
return qse_runmain (argc, argv, sed_main);
}