mirror of
https://github.com/michaelrsweet/mxml.git
synced 2024-11-14 15:55:30 +00:00
Fix loading of text values with MXML_NO_CALLBACK or MXML_TEXT_CALLBACK (Bug #502)
Update unit test program to validate fix and cleanup output so that we can get proper error messages.
This commit is contained in:
parent
17f3dfcc27
commit
21f436f36c
11
ANNOUNCEMENT
11
ANNOUNCEMENT
@ -4,9 +4,8 @@ Mini-XML 2.8 is now available for download from:
|
|||||||
|
|
||||||
Mini-XML 2.8 fixes some minor platform and XML issues. Changes include:
|
Mini-XML 2.8 fixes some minor platform and XML issues. Changes include:
|
||||||
|
|
||||||
- Now call docsetutil using xcrun on OS X (Bug #458)
|
- Now call docsetutil using xcrun on OS X (Bug #458)
|
||||||
- mxmldoc did not escape special HTML characters inside @code foo@
|
- mxmldoc did not escape special HTML characters inside @code foo@ comments.
|
||||||
comments.
|
- Fixed a memory leak in mxmlElementDeleteAttr (Bug #452)
|
||||||
- Fixed a memory leak in mxmlElementDeleteAttr (Bug #452)
|
- Added MXML_MAJOR/MINOR_VERSION definitions to mxml.h (Bug $461)
|
||||||
- Added MXML_MAJOR/MINOR_VERSION definitions to mxml.h (Bug $461)
|
- Fixed a bug reading UTF-16 characters from a file (Bug #454)
|
||||||
- Fixed a bug reading UTF-16 characters from a file (Bug #454)
|
|
||||||
|
8
CHANGES
8
CHANGES
@ -1,6 +1,12 @@
|
|||||||
CHANGES - 2014-01-04
|
CHANGES - 2014-10-19
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
|
CHANGES IN Mini-XML 2.9
|
||||||
|
|
||||||
|
- mxmlLoad* did not correctly load value nodes with MXML_NO_CALLBACK
|
||||||
|
or MXML_TEXT_CALLBACK (Bug #502)
|
||||||
|
|
||||||
|
|
||||||
CHANGES IN Mini-XML 2.8
|
CHANGES IN Mini-XML 2.8
|
||||||
|
|
||||||
- Now call docsetutil using xcrun on OS X (Bug #458)
|
- Now call docsetutil using xcrun on OS X (Bug #458)
|
||||||
|
@ -352,8 +352,8 @@ testmxml: libmxml.a testmxml.o
|
|||||||
echo Linking $@...
|
echo Linking $@...
|
||||||
$(CC) $(LDFLAGS) -o $@ testmxml.o libmxml.a $(LIBS)
|
$(CC) $(LDFLAGS) -o $@ testmxml.o libmxml.a $(LIBS)
|
||||||
@echo Testing library...
|
@echo Testing library...
|
||||||
./testmxml test.xml >temp1.xml 2>temp1s.xml
|
./testmxml test.xml temp1s.xml >temp1.xml
|
||||||
./testmxml temp1.xml >temp2.xml 2>temp2s.xml
|
./testmxml temp1.xml temp2s.xml >temp2.xml
|
||||||
@if cmp temp1.xml temp2.xml; then \
|
@if cmp temp1.xml temp2.xml; then \
|
||||||
echo Stdio file test passed!; \
|
echo Stdio file test passed!; \
|
||||||
$(RM) temp2.xml temp2s.xml; \
|
$(RM) temp2.xml temp2s.xml; \
|
||||||
|
211
configure
vendored
211
configure
vendored
@ -1,11 +1,9 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.68.
|
# Generated by GNU Autoconf 2.69.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
|
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
|
||||||
# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
|
|
||||||
# Foundation, Inc.
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# This configure script is free software; the Free Software Foundation
|
# This configure script is free software; the Free Software Foundation
|
||||||
@ -134,6 +132,31 @@ export LANGUAGE
|
|||||||
# CDPATH.
|
# CDPATH.
|
||||||
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
|
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
|
||||||
|
|
||||||
|
# Use a proper internal environment variable to ensure we don't fall
|
||||||
|
# into an infinite loop, continuously re-executing ourselves.
|
||||||
|
if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
|
||||||
|
_as_can_reexec=no; export _as_can_reexec;
|
||||||
|
# We cannot yet assume a decent shell, so we have to provide a
|
||||||
|
# neutralization value for shells without unset; and this also
|
||||||
|
# works around shells that cannot unset nonexistent variables.
|
||||||
|
# Preserve -v and -x to the replacement shell.
|
||||||
|
BASH_ENV=/dev/null
|
||||||
|
ENV=/dev/null
|
||||||
|
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
|
||||||
|
case $- in # ((((
|
||||||
|
*v*x* | *x*v* ) as_opts=-vx ;;
|
||||||
|
*v* ) as_opts=-v ;;
|
||||||
|
*x* ) as_opts=-x ;;
|
||||||
|
* ) as_opts= ;;
|
||||||
|
esac
|
||||||
|
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
|
||||||
|
# Admittedly, this is quite paranoid, since all the known shells bail
|
||||||
|
# out after a failed `exec'.
|
||||||
|
$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
|
||||||
|
as_fn_exit 255
|
||||||
|
fi
|
||||||
|
# We don't want this to propagate to other subprocesses.
|
||||||
|
{ _as_can_reexec=; unset _as_can_reexec;}
|
||||||
if test "x$CONFIG_SHELL" = x; then
|
if test "x$CONFIG_SHELL" = x; then
|
||||||
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
|
as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
|
||||||
emulate sh
|
emulate sh
|
||||||
@ -167,7 +190,8 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
|
|||||||
else
|
else
|
||||||
exitcode=1; echo positional parameters were not saved.
|
exitcode=1; echo positional parameters were not saved.
|
||||||
fi
|
fi
|
||||||
test x\$exitcode = x0 || exit 1"
|
test x\$exitcode = x0 || exit 1
|
||||||
|
test -x / || exit 1"
|
||||||
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
|
as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
|
||||||
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
|
as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
|
||||||
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
|
eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
|
||||||
@ -212,21 +236,25 @@ IFS=$as_save_IFS
|
|||||||
|
|
||||||
|
|
||||||
if test "x$CONFIG_SHELL" != x; then :
|
if test "x$CONFIG_SHELL" != x; then :
|
||||||
# We cannot yet assume a decent shell, so we have to provide a
|
export CONFIG_SHELL
|
||||||
# neutralization value for shells without unset; and this also
|
# We cannot yet assume a decent shell, so we have to provide a
|
||||||
# works around shells that cannot unset nonexistent variables.
|
# neutralization value for shells without unset; and this also
|
||||||
# Preserve -v and -x to the replacement shell.
|
# works around shells that cannot unset nonexistent variables.
|
||||||
BASH_ENV=/dev/null
|
# Preserve -v and -x to the replacement shell.
|
||||||
ENV=/dev/null
|
BASH_ENV=/dev/null
|
||||||
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
|
ENV=/dev/null
|
||||||
export CONFIG_SHELL
|
(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
|
||||||
case $- in # ((((
|
case $- in # ((((
|
||||||
*v*x* | *x*v* ) as_opts=-vx ;;
|
*v*x* | *x*v* ) as_opts=-vx ;;
|
||||||
*v* ) as_opts=-v ;;
|
*v* ) as_opts=-v ;;
|
||||||
*x* ) as_opts=-x ;;
|
*x* ) as_opts=-x ;;
|
||||||
* ) as_opts= ;;
|
* ) as_opts= ;;
|
||||||
esac
|
esac
|
||||||
exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
|
exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
|
||||||
|
# Admittedly, this is quite paranoid, since all the known shells bail
|
||||||
|
# out after a failed `exec'.
|
||||||
|
$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
|
||||||
|
exit 255
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test x$as_have_required = xno; then :
|
if test x$as_have_required = xno; then :
|
||||||
@ -328,6 +356,14 @@ $as_echo X"$as_dir" |
|
|||||||
|
|
||||||
|
|
||||||
} # as_fn_mkdir_p
|
} # as_fn_mkdir_p
|
||||||
|
|
||||||
|
# as_fn_executable_p FILE
|
||||||
|
# -----------------------
|
||||||
|
# Test if FILE is an executable regular file.
|
||||||
|
as_fn_executable_p ()
|
||||||
|
{
|
||||||
|
test -f "$1" && test -x "$1"
|
||||||
|
} # as_fn_executable_p
|
||||||
# as_fn_append VAR VALUE
|
# as_fn_append VAR VALUE
|
||||||
# ----------------------
|
# ----------------------
|
||||||
# Append the text in VALUE to the end of the definition contained in VAR. Take
|
# Append the text in VALUE to the end of the definition contained in VAR. Take
|
||||||
@ -449,6 +485,10 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
|
|||||||
chmod +x "$as_me.lineno" ||
|
chmod +x "$as_me.lineno" ||
|
||||||
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
|
{ $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
|
||||||
|
|
||||||
|
# If we had to re-execute with $CONFIG_SHELL, we're ensured to have
|
||||||
|
# already done that, so ensure we don't try to do so again and fall
|
||||||
|
# in an infinite loop. This has already happened in practice.
|
||||||
|
_as_can_reexec=no; export _as_can_reexec
|
||||||
# Don't try to exec as it changes $[0], causing all sort of problems
|
# Don't try to exec as it changes $[0], causing all sort of problems
|
||||||
# (the dirname of $[0] is not the place where we might find the
|
# (the dirname of $[0] is not the place where we might find the
|
||||||
# original and so on. Autoconf is especially sensitive to this).
|
# original and so on. Autoconf is especially sensitive to this).
|
||||||
@ -483,16 +523,16 @@ if (echo >conf$$.file) 2>/dev/null; then
|
|||||||
# ... but there are two gotchas:
|
# ... but there are two gotchas:
|
||||||
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
|
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
|
||||||
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
|
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
|
||||||
# In both cases, we have to default to `cp -p'.
|
# In both cases, we have to default to `cp -pR'.
|
||||||
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
|
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
|
||||||
as_ln_s='cp -p'
|
as_ln_s='cp -pR'
|
||||||
elif ln conf$$.file conf$$ 2>/dev/null; then
|
elif ln conf$$.file conf$$ 2>/dev/null; then
|
||||||
as_ln_s=ln
|
as_ln_s=ln
|
||||||
else
|
else
|
||||||
as_ln_s='cp -p'
|
as_ln_s='cp -pR'
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
as_ln_s='cp -p'
|
as_ln_s='cp -pR'
|
||||||
fi
|
fi
|
||||||
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
|
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
|
||||||
rmdir conf$$.dir 2>/dev/null
|
rmdir conf$$.dir 2>/dev/null
|
||||||
@ -504,28 +544,8 @@ else
|
|||||||
as_mkdir_p=false
|
as_mkdir_p=false
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -x / >/dev/null 2>&1; then
|
as_test_x='test -x'
|
||||||
as_test_x='test -x'
|
as_executable_p=as_fn_executable_p
|
||||||
else
|
|
||||||
if ls -dL / >/dev/null 2>&1; then
|
|
||||||
as_ls_L_option=L
|
|
||||||
else
|
|
||||||
as_ls_L_option=
|
|
||||||
fi
|
|
||||||
as_test_x='
|
|
||||||
eval sh -c '\''
|
|
||||||
if test -d "$1"; then
|
|
||||||
test -d "$1/.";
|
|
||||||
else
|
|
||||||
case $1 in #(
|
|
||||||
-*)set "./$1";;
|
|
||||||
esac;
|
|
||||||
case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
|
|
||||||
???[sx]*):;;*)false;;esac;fi
|
|
||||||
'\'' sh
|
|
||||||
'
|
|
||||||
fi
|
|
||||||
as_executable_p=$as_test_x
|
|
||||||
|
|
||||||
# Sed expression to map a string onto a valid CPP name.
|
# Sed expression to map a string onto a valid CPP name.
|
||||||
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
|
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
|
||||||
@ -1151,8 +1171,6 @@ target=$target_alias
|
|||||||
if test "x$host_alias" != x; then
|
if test "x$host_alias" != x; then
|
||||||
if test "x$build_alias" = x; then
|
if test "x$build_alias" = x; then
|
||||||
cross_compiling=maybe
|
cross_compiling=maybe
|
||||||
$as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
|
|
||||||
If a cross compiler is detected then cross compile mode will be used" >&2
|
|
||||||
elif test "x$build_alias" != "x$host_alias"; then
|
elif test "x$build_alias" != "x$host_alias"; then
|
||||||
cross_compiling=yes
|
cross_compiling=yes
|
||||||
fi
|
fi
|
||||||
@ -1396,9 +1414,9 @@ test -n "$ac_init_help" && exit $ac_status
|
|||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
configure
|
configure
|
||||||
generated by GNU Autoconf 2.68
|
generated by GNU Autoconf 2.69
|
||||||
|
|
||||||
Copyright (C) 2010 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
This configure script is free software; the Free Software Foundation
|
This configure script is free software; the Free Software Foundation
|
||||||
gives unlimited permission to copy, distribute and modify it.
|
gives unlimited permission to copy, distribute and modify it.
|
||||||
_ACEOF
|
_ACEOF
|
||||||
@ -1512,7 +1530,7 @@ $as_echo "$ac_try_echo"; } >&5
|
|||||||
test ! -s conftest.err
|
test ! -s conftest.err
|
||||||
} && test -s conftest$ac_exeext && {
|
} && test -s conftest$ac_exeext && {
|
||||||
test "$cross_compiling" = yes ||
|
test "$cross_compiling" = yes ||
|
||||||
$as_test_x conftest$ac_exeext
|
test -x conftest$ac_exeext
|
||||||
}; then :
|
}; then :
|
||||||
ac_retval=0
|
ac_retval=0
|
||||||
else
|
else
|
||||||
@ -1799,7 +1817,7 @@ This file contains any messages produced by compilers while
|
|||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by $as_me, which was
|
It was created by $as_me, which was
|
||||||
generated by GNU Autoconf 2.68. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
|
|
||||||
@ -2150,7 +2168,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
|||||||
ac_config_headers="$ac_config_headers config.h"
|
ac_config_headers="$ac_config_headers config.h"
|
||||||
|
|
||||||
|
|
||||||
VERSION=2.8
|
VERSION=2.9
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
#define MXML_VERSION "Mini-XML v$VERSION"
|
#define MXML_VERSION "Mini-XML v$VERSION"
|
||||||
@ -2239,7 +2257,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_CC="${ac_tool_prefix}gcc"
|
ac_cv_prog_CC="${ac_tool_prefix}gcc"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -2279,7 +2297,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_CC="gcc"
|
ac_cv_prog_ac_ct_CC="gcc"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -2332,7 +2350,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_CC="${ac_tool_prefix}cc"
|
ac_cv_prog_CC="${ac_tool_prefix}cc"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -2373,7 +2391,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
|
if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
|
||||||
ac_prog_rejected=yes
|
ac_prog_rejected=yes
|
||||||
continue
|
continue
|
||||||
@ -2431,7 +2449,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
|
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -2475,7 +2493,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_CC="$ac_prog"
|
ac_cv_prog_ac_ct_CC="$ac_prog"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -2921,8 +2939,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|||||||
/* end confdefs.h. */
|
/* end confdefs.h. */
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/types.h>
|
struct stat;
|
||||||
#include <sys/stat.h>
|
|
||||||
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
|
/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
|
||||||
struct buf { int x; };
|
struct buf { int x; };
|
||||||
FILE * (*rcsopen) (struct buf *, struct stat *, int);
|
FILE * (*rcsopen) (struct buf *, struct stat *, int);
|
||||||
@ -3035,7 +3052,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
|
ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -3079,7 +3096,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_CXX="$ac_prog"
|
ac_cv_prog_ac_ct_CXX="$ac_prog"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -3330,7 +3347,7 @@ case $as_dir/ in #((
|
|||||||
# by default.
|
# by default.
|
||||||
for ac_prog in ginstall scoinst install; do
|
for ac_prog in ginstall scoinst install; do
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
|
||||||
if test $ac_prog = install &&
|
if test $ac_prog = install &&
|
||||||
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
|
grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
|
||||||
# AIX install. It has an incompatible calling convention.
|
# AIX install. It has an incompatible calling convention.
|
||||||
@ -3407,7 +3424,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
|
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -3447,7 +3464,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_prog_ac_ct_RANLIB="ranlib"
|
ac_cv_prog_ac_ct_RANLIB="ranlib"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -3500,7 +3517,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext"
|
ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -3540,7 +3557,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext"
|
ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -3580,7 +3597,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_path_LN="$as_dir/$ac_word$ac_exec_ext"
|
ac_cv_path_LN="$as_dir/$ac_word$ac_exec_ext"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -3620,7 +3637,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_path_MKDIR="$as_dir/$ac_word$ac_exec_ext"
|
ac_cv_path_MKDIR="$as_dir/$ac_word$ac_exec_ext"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -3660,7 +3677,7 @@ do
|
|||||||
IFS=$as_save_IFS
|
IFS=$as_save_IFS
|
||||||
test -z "$as_dir" && as_dir=.
|
test -z "$as_dir" && as_dir=.
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
|
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||||
ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext"
|
ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext"
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||||
break 2
|
break 2
|
||||||
@ -3967,7 +3984,7 @@ do
|
|||||||
for ac_prog in grep ggrep; do
|
for ac_prog in grep ggrep; do
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
|
ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
|
||||||
{ test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
|
as_fn_executable_p "$ac_path_GREP" || continue
|
||||||
# Check for GNU ac_path_GREP and select it if it is found.
|
# Check for GNU ac_path_GREP and select it if it is found.
|
||||||
# Check for GNU $ac_path_GREP
|
# Check for GNU $ac_path_GREP
|
||||||
case `"$ac_path_GREP" --version 2>&1` in
|
case `"$ac_path_GREP" --version 2>&1` in
|
||||||
@ -4033,7 +4050,7 @@ do
|
|||||||
for ac_prog in egrep; do
|
for ac_prog in egrep; do
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
for ac_exec_ext in '' $ac_executable_extensions; do
|
||||||
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
|
ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
|
||||||
{ test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
|
as_fn_executable_p "$ac_path_EGREP" || continue
|
||||||
# Check for GNU ac_path_EGREP and select it if it is found.
|
# Check for GNU ac_path_EGREP and select it if it is found.
|
||||||
# Check for GNU $ac_path_EGREP
|
# Check for GNU $ac_path_EGREP
|
||||||
case `"$ac_path_EGREP" --version 2>&1` in
|
case `"$ac_path_EGREP" --version 2>&1` in
|
||||||
@ -4849,16 +4866,16 @@ if (echo >conf$$.file) 2>/dev/null; then
|
|||||||
# ... but there are two gotchas:
|
# ... but there are two gotchas:
|
||||||
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
|
# 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
|
||||||
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
|
# 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
|
||||||
# In both cases, we have to default to `cp -p'.
|
# In both cases, we have to default to `cp -pR'.
|
||||||
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
|
ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
|
||||||
as_ln_s='cp -p'
|
as_ln_s='cp -pR'
|
||||||
elif ln conf$$.file conf$$ 2>/dev/null; then
|
elif ln conf$$.file conf$$ 2>/dev/null; then
|
||||||
as_ln_s=ln
|
as_ln_s=ln
|
||||||
else
|
else
|
||||||
as_ln_s='cp -p'
|
as_ln_s='cp -pR'
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
as_ln_s='cp -p'
|
as_ln_s='cp -pR'
|
||||||
fi
|
fi
|
||||||
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
|
rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
|
||||||
rmdir conf$$.dir 2>/dev/null
|
rmdir conf$$.dir 2>/dev/null
|
||||||
@ -4918,28 +4935,16 @@ else
|
|||||||
as_mkdir_p=false
|
as_mkdir_p=false
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test -x / >/dev/null 2>&1; then
|
|
||||||
as_test_x='test -x'
|
# as_fn_executable_p FILE
|
||||||
else
|
# -----------------------
|
||||||
if ls -dL / >/dev/null 2>&1; then
|
# Test if FILE is an executable regular file.
|
||||||
as_ls_L_option=L
|
as_fn_executable_p ()
|
||||||
else
|
{
|
||||||
as_ls_L_option=
|
test -f "$1" && test -x "$1"
|
||||||
fi
|
} # as_fn_executable_p
|
||||||
as_test_x='
|
as_test_x='test -x'
|
||||||
eval sh -c '\''
|
as_executable_p=as_fn_executable_p
|
||||||
if test -d "$1"; then
|
|
||||||
test -d "$1/.";
|
|
||||||
else
|
|
||||||
case $1 in #(
|
|
||||||
-*)set "./$1";;
|
|
||||||
esac;
|
|
||||||
case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
|
|
||||||
???[sx]*):;;*)false;;esac;fi
|
|
||||||
'\'' sh
|
|
||||||
'
|
|
||||||
fi
|
|
||||||
as_executable_p=$as_test_x
|
|
||||||
|
|
||||||
# Sed expression to map a string onto a valid CPP name.
|
# Sed expression to map a string onto a valid CPP name.
|
||||||
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
|
as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
|
||||||
@ -4961,7 +4966,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by $as_me, which was
|
This file was extended by $as_me, which was
|
||||||
generated by GNU Autoconf 2.68. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
CONFIG_HEADERS = $CONFIG_HEADERS
|
CONFIG_HEADERS = $CONFIG_HEADERS
|
||||||
@ -5023,10 +5028,10 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
|||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
config.status
|
config.status
|
||||||
configured by $0, generated by GNU Autoconf 2.68,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
Copyright (C) 2010 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
This config.status script is free software; the Free Software Foundation
|
This config.status script is free software; the Free Software Foundation
|
||||||
gives unlimited permission to copy, distribute and modify it."
|
gives unlimited permission to copy, distribute and modify it."
|
||||||
|
|
||||||
@ -5115,7 +5120,7 @@ fi
|
|||||||
_ACEOF
|
_ACEOF
|
||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
if \$ac_cs_recheck; then
|
if \$ac_cs_recheck; then
|
||||||
set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
|
set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
|
||||||
shift
|
shift
|
||||||
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
|
\$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
|
||||||
CONFIG_SHELL='$SHELL'
|
CONFIG_SHELL='$SHELL'
|
||||||
|
@ -21,7 +21,7 @@ dnl Set the name of the config header file...
|
|||||||
AC_CONFIG_HEADER(config.h)
|
AC_CONFIG_HEADER(config.h)
|
||||||
|
|
||||||
dnl Version number...
|
dnl Version number...
|
||||||
VERSION=2.8
|
VERSION=2.9
|
||||||
AC_SUBST(VERSION)
|
AC_SUBST(VERSION)
|
||||||
AC_DEFINE_UNQUOTED(MXML_VERSION, "Mini-XML v$VERSION")
|
AC_DEFINE_UNQUOTED(MXML_VERSION, "Mini-XML v$VERSION")
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<title>Documentation </title>
|
<title>Documentation </title>
|
||||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
|
||||||
<meta name="creator" content="Mini-XML v2.8">
|
<meta name="creator" content="Mini-XML v2.9">
|
||||||
<style type="text/css"><!--
|
<style type="text/css"><!--
|
||||||
body, p, h1, h2, h3, h4 {
|
body, p, h1, h2, h3, h4 {
|
||||||
font-family: "lucida grande", geneva, helvetica, arial, sans-serif;
|
font-family: "lucida grande", geneva, helvetica, arial, sans-serif;
|
||||||
|
@ -1798,6 +1798,8 @@ mxml_load_data(
|
|||||||
|
|
||||||
if (cb)
|
if (cb)
|
||||||
type = (*cb)(parent);
|
type = (*cb)(parent);
|
||||||
|
else
|
||||||
|
type = MXML_TEXT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1884,6 +1886,8 @@ mxml_load_data(
|
|||||||
|
|
||||||
if (cb)
|
if (cb)
|
||||||
type = (*cb)(parent);
|
type = (*cb)(parent);
|
||||||
|
else
|
||||||
|
type = MXML_TEXT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
80
testmxml.c
80
testmxml.c
@ -3,6 +3,11 @@
|
|||||||
*
|
*
|
||||||
* Test program for Mini-XML, a small XML-like file parsing library.
|
* Test program for Mini-XML, a small XML-like file parsing library.
|
||||||
*
|
*
|
||||||
|
* Usage:
|
||||||
|
*
|
||||||
|
* ./testmxml input.xml [string-output.xml] >stdio-output.xml
|
||||||
|
* ./testmxml "<?xml ..." [string-output.xml] >stdio-output.xml
|
||||||
|
*
|
||||||
* Copyright 2003-2014 by Michael R Sweet.
|
* Copyright 2003-2014 by Michael R Sweet.
|
||||||
*
|
*
|
||||||
* These coded instructions, statements, and computer programs are the
|
* These coded instructions, statements, and computer programs are the
|
||||||
@ -74,9 +79,9 @@ main(int argc, /* I - Number of command-line args */
|
|||||||
* Check arguments...
|
* Check arguments...
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (argc != 2)
|
if (argc != 2 && argc != 3)
|
||||||
{
|
{
|
||||||
fputs("Usage: testmxml filename.xml\n", stderr);
|
fputs("Usage: testmxml filename.xml [string-output.xml]\n", stderr);
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -445,6 +450,68 @@ main(int argc, /* I - Number of command-line args */
|
|||||||
|
|
||||||
mxmlDelete(tree);
|
mxmlDelete(tree);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Open the file/string using the default (MXML_NO_CALLBACK) callback...
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (argv[1][0] == '<')
|
||||||
|
tree = mxmlLoadString(NULL, argv[1], MXML_NO_CALLBACK);
|
||||||
|
else if ((fp = fopen(argv[1], "rb")) == NULL)
|
||||||
|
{
|
||||||
|
perror(argv[1]);
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Read the file...
|
||||||
|
*/
|
||||||
|
|
||||||
|
tree = mxmlLoadFile(NULL, fp, MXML_NO_CALLBACK);
|
||||||
|
|
||||||
|
fclose(fp);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!tree)
|
||||||
|
{
|
||||||
|
fputs("Unable to read XML file with default callback!\n", stderr);
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!strcmp(argv[1], "test.xml"))
|
||||||
|
{
|
||||||
|
const char *text; /* Text value */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Verify that mxmlFindElement() and indirectly mxmlWalkNext() work
|
||||||
|
* properly...
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ((node = mxmlFindPath(tree, "group/option/keyword")) == NULL)
|
||||||
|
{
|
||||||
|
fputs("Unable to find group/option/keyword element in XML tree!\n", stderr);
|
||||||
|
mxmlDelete(tree);
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (node->type != MXML_TEXT)
|
||||||
|
{
|
||||||
|
fputs("No child node of group/option/keyword!\n", stderr);
|
||||||
|
mxmlSaveFile(tree, stderr, MXML_NO_CALLBACK);
|
||||||
|
mxmlDelete(tree);
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((text = mxmlGetText(node, NULL)) == NULL || strcmp(text, "InputSlot"))
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Child node of group/option/value has value \"%s\" instead of \"InputSlot\"!\n", text ? text : "(null)");
|
||||||
|
mxmlDelete(tree);
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mxmlDelete(tree);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Open the file...
|
* Open the file...
|
||||||
*/
|
*/
|
||||||
@ -507,7 +574,14 @@ main(int argc, /* I - Number of command-line args */
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
if (mxmlSaveString(tree, buffer, sizeof(buffer), whitespace_cb) > 0)
|
if (mxmlSaveString(tree, buffer, sizeof(buffer), whitespace_cb) > 0)
|
||||||
fputs(buffer, stderr);
|
{
|
||||||
|
if (argc == 3)
|
||||||
|
{
|
||||||
|
fp = fopen(argv[2], "w");
|
||||||
|
fputs(buffer, fp);
|
||||||
|
fclose(fp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Delete the tree...
|
* Delete the tree...
|
||||||
|
Loading…
Reference in New Issue
Block a user