wrote qse_xli_writeini()
This commit is contained in:
@ -56,6 +56,10 @@
|
||||
# include <errno.h>
|
||||
#endif
|
||||
|
||||
#define IO_FLAG_INI_INPUT (1 << 0)
|
||||
#define IO_FLAG_INI_OUTPUT (1 << 1)
|
||||
|
||||
static int g_io_flags = 0;
|
||||
static qse_char_t* g_input_file = QSE_NULL;
|
||||
static qse_char_t* g_output_file = QSE_NULL;
|
||||
static qse_char_t* g_lookup_key = QSE_NULL;
|
||||
@ -151,6 +155,8 @@ static void print_usage (qse_sio_t* out, int argc, qse_char_t* argv[])
|
||||
qse_fprintf (out, QSE_T(" --version show version\n"));
|
||||
qse_fprintf (out, QSE_T(" -i file specify an input file\n"));
|
||||
qse_fprintf (out, QSE_T(" -o file specify an output file\n"));
|
||||
qse_fprintf (out, QSE_T(" -I file specify an ini input file\n"));
|
||||
qse_fprintf (out, QSE_T(" -O file specify an ini output file\n"));
|
||||
qse_fprintf (out, QSE_T(" -u disallow duplicate keys\n"));
|
||||
qse_fprintf (out, QSE_T(" -a allow a key alias\n"));
|
||||
qse_fprintf (out, QSE_T(" -f keep file inclusion info\n"));
|
||||
@ -188,9 +194,9 @@ static int handle_args (int argc, qse_char_t* argv[])
|
||||
static qse_opt_t opt =
|
||||
{
|
||||
#if defined(QSE_BUILD_DEBUG)
|
||||
QSE_T("hi:o:uaftsdnlKSvm:X:"),
|
||||
QSE_T("hi:o:I:O:uaftsdnlKSvm:X:"),
|
||||
#else
|
||||
QSE_T("hi:o:uaftsdnlKSvm:"),
|
||||
QSE_T("hi:o:I:O:uaftsdnlKSvm:"),
|
||||
#endif
|
||||
lng
|
||||
};
|
||||
@ -226,10 +232,22 @@ static int handle_args (int argc, qse_char_t* argv[])
|
||||
|
||||
case QSE_T('i'):
|
||||
g_input_file = opt.arg;
|
||||
g_io_flags &= ~IO_FLAG_INI_INPUT;
|
||||
break;
|
||||
|
||||
case QSE_T('I'):
|
||||
g_input_file = opt.arg;
|
||||
g_io_flags |= IO_FLAG_INI_INPUT;
|
||||
break;
|
||||
|
||||
case QSE_T('o'):
|
||||
g_output_file = opt.arg;
|
||||
g_io_flags &= ~IO_FLAG_INI_OUTPUT;
|
||||
break;
|
||||
|
||||
case QSE_T('O'):
|
||||
g_output_file = opt.arg;
|
||||
g_io_flags |= IO_FLAG_INI_OUTPUT;
|
||||
break;
|
||||
|
||||
case QSE_T('u'):
|
||||
@ -368,7 +386,7 @@ static int xli_main (int argc, qse_char_t* argv[])
|
||||
qse_mmgr_t* mmgr = QSE_MMGR_GETDFL();
|
||||
qse_xli_t* xli = QSE_NULL;
|
||||
qse_xli_iostd_t in, out;
|
||||
int ret = -1;
|
||||
int ret = -1, n;
|
||||
|
||||
ret = handle_args (argc, argv);
|
||||
if (ret <= -1) return -1;
|
||||
@ -413,7 +431,8 @@ static int xli_main (int argc, qse_char_t* argv[])
|
||||
in.u.file.path = g_input_file;
|
||||
in.u.file.cmgr = g_infile_cmgr;
|
||||
|
||||
if (qse_xli_readinistd (xli, &in) <= -1)
|
||||
n = (g_io_flags & IO_FLAG_INI_INPUT)? qse_xli_readinistd(xli, &in): qse_xli_readstd(xli, &in);
|
||||
if (n <= -1)
|
||||
{
|
||||
const qse_xli_loc_t* errloc;
|
||||
|
||||
@ -506,7 +525,8 @@ static int xli_main (int argc, qse_char_t* argv[])
|
||||
out.type = QSE_XLI_IOSTD_FILE;
|
||||
out.u.file.path = g_output_file? g_output_file: QSE_T("-");
|
||||
out.u.file.cmgr = g_outfile_cmgr;
|
||||
ret = qse_xli_writestd (xli, &out);
|
||||
|
||||
ret = (g_io_flags & IO_FLAG_INI_OUTPUT)? qse_xli_writeinistd(xli, &out): qse_xli_writestd(xli, &out);
|
||||
|
||||
oops:
|
||||
if (xli) qse_xli_close (xli);
|
||||
|
Reference in New Issue
Block a user