diff options
Diffstat (limited to 'package')
-rwxr-xr-x | package/confuse/Makefile | 25 | ||||
-rw-r--r-- | package/forked-daapd/Makefile | 36 | ||||
-rw-r--r-- | package/forked-daapd/files/forked-daapd.conf | 54 | ||||
-rw-r--r-- | package/forked-daapd/files/forked-daapd.init | 28 | ||||
-rw-r--r-- | package/forked-daapd/files/forked-daapd.postinst | 7 | ||||
-rw-r--r-- | package/forked-daapd/patches/patch-config_h_in | 10 | ||||
-rwxr-xr-x | package/libantlr3c/Makefile | 24 | ||||
-rw-r--r-- | package/libantlr3c/patches/patch-antlr3config_h | 11 | ||||
-rw-r--r-- | package/libantlr3c/patches/patch-configure | 20 | ||||
-rwxr-xr-x | package/libavl/Makefile | 28 | ||||
-rw-r--r-- | package/libavl/patches/patch-GNUmakefile | 28 | ||||
-rw-r--r-- | package/libavl/patches/patch-GNUmakefile.orig | 26 | ||||
-rwxr-xr-x | package/libunistring/Makefile | 23 | ||||
-rwxr-xr-x | package/mxml/Makefile | 27 | ||||
-rw-r--r-- | package/mxml/patches/patch-Makefile_in | 103 | ||||
-rw-r--r-- | package/mxml/patches/patch-Makefile_in.orig | 91 | ||||
-rw-r--r-- | package/mxml/patches/patch-configure | 30 | ||||
-rw-r--r-- | package/mxml/patches/patch-doc_reference_html | 1638 | ||||
-rw-r--r-- | package/mxml/patches/patch-mxmldoc_c | 11 |
19 files changed, 2220 insertions, 0 deletions
diff --git a/package/confuse/Makefile b/package/confuse/Makefile new file mode 100755 index 000000000..289bc0d0c --- /dev/null +++ b/package/confuse/Makefile @@ -0,0 +1,25 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include ${TOPDIR}/rules.mk + +PKG_NAME:= confuse +PKG_VERSION:= 2.7 +PKG_RELEASE:= 1 +PKG_MD5SUM:= 45932fdeeccbb9ef4228f1c1a25e9c8f +PKG_DESCR:= a configuration file parser library +PKG_SECTION:= libs +PKG_URL:= http://www.nongnu.org/confuse/ +PKG_SITES:= http://savannah.nongnu.org/download/confuse/ + +PKG_SUBPKGS:= LIBCONFUSE + +include ${TOPDIR}/mk/package.mk + +$(eval $(call PKG_template,LIBCONFUSE,libconfuse,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) + +libconfuse-install: + ${INSTALL_DIR} ${IDIR_LIBCONFUSE}/usr/lib + ${CP} ${WRKINST}/usr/lib/libconfuse.so* ${IDIR_LIBCONFUSE}/usr/lib + +include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/forked-daapd/Makefile b/package/forked-daapd/Makefile new file mode 100644 index 000000000..7b11a7523 --- /dev/null +++ b/package/forked-daapd/Makefile @@ -0,0 +1,36 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(TOPDIR)/rules.mk + +PKG_NAME:= forked-daapd +PKG_VERSION:= 0.16 +PKG_RELEASE:= 1 +PKG_MD5SUM:= cc35619babefea35db9ee22e6f1d036b +PKG_DESCR:= DAAPD server +PKG_SECTION:= multimedia +PKG_DEPENDS:= libunistring zlib libconfuse sqlite ffmpeg libgcrypt +PKG_DEPENDS+= libavahi libmxml libevent libavl libantlr3c alsa-lib +PKG_DEPENDS+= libsqlite libintl dbus +PKG_BUILDDEP:= libunistring zlib confuse avahi sqlite ffmpeg dbus +PKG_BUILDDEP+= mxml libevent libavl libantlr3c alsa-lib libgcrypt +PKG_SITES:= http://alioth.debian.org/~jblache/forked-daapd/ + +PKG_CFLINE_FORKED_DAAPD:= select ADK_KERNEL_INOTIFY_USER + +include $(TOPDIR)/mk/package.mk + +$(eval $(call PKG_template,FORKED_DAAPD,forked-daapd,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) + +forked-daapd-install: + $(INSTALL_DIR) $(IDIR_FORKED_DAAPD)/etc + $(CP) ./files/forked-daapd.conf \ + $(IDIR_FORKED_DAAPD)/etc + $(INSTALL_DIR) $(IDIR_FORKED_DAAPD)/usr/lib/forked-daapd + $(CP) $(WRKINST)/usr/lib/forked-daapd/*.so \ + $(IDIR_FORKED_DAAPD)/usr/lib/forked-daapd + $(INSTALL_DIR) $(IDIR_FORKED_DAAPD)/usr/sbin + $(INSTALL_BIN) $(WRKINST)/usr/sbin/forked-daapd \ + $(IDIR_FORKED_DAAPD)/usr/sbin + +include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/forked-daapd/files/forked-daapd.conf b/package/forked-daapd/files/forked-daapd.conf new file mode 100644 index 000000000..d684ec32a --- /dev/null +++ b/package/forked-daapd/files/forked-daapd.conf @@ -0,0 +1,54 @@ + +general { + # Username + uid = "daapd" + logfile = "/var/log/forked-daapd.log" + # Database location + db_path = "/srv/music/.forked-daapd/songs3.db" + # Available levels: fatal, log, warning, info, debug, spam + loglevel = log + # Admin password for the non-existent web interface + admin_password = "unused" + # Enable/disable IPv6 + ipv6 = no +} + +# Library configuration +library { + # Name of the library as displayed by the clients + # %h: hostname, %v: version + name = "My Music on %h" + # TCP port to listen on. Default port is 3689 (daap) + port = 3689 + # Password for the library. Optional. +# password = "" + + # Directories to index + directories = { "/srv/music" } + # Directories containing compilations + # Matches anywhere in the path (not a regexp, though) +# compilations = { "/compilations/" } + + # Should iTunes metadata override ours? +# itunes_overrides = true + + # Formats: mp4a, mp4v, mpeg, alac, flac, mpc, ogg, wma, wmal, wmav, aif, wav + # Formats that should never be transcoded +# no_transcode = { "alac", "mp4a" } + # Formats that should always be transcoded +# force_transcode = { "ogg", "flac" } +} + +# Local audio output +audio { + # AirTunes name - used in the speaker list in Remote + nickname = "Computer" + # Audio device name for local audio output +# card = "default" +} + +# Airport Express device +#apex "ApEx" { + # AirTunes password +# password = "s1kr3t" +#} diff --git a/package/forked-daapd/files/forked-daapd.init b/package/forked-daapd/files/forked-daapd.init new file mode 100644 index 000000000..5b4139ea6 --- /dev/null +++ b/package/forked-daapd/files/forked-daapd.init @@ -0,0 +1,28 @@ +#!/bin/sh +#PKG forked-daapd +#INIT 85 + +. /etc/rc.conf + +case $1 in +autostop) ;; +autostart) + test x"${forked_daapd:-NO}" = x"NO" && exit 0 + exec sh $0 start + ;; +start) + /usr/sbin/forked-daapd + ;; +stop) + kill $(pgrep -f /usr/sbin/forked-daapd) + ;; +restart) + sh $0 stop + sh $0 start + ;; +*) + echo "Usage: $0 {start | stop | restart}" + exit 1 + ;; +esac +exit $? diff --git a/package/forked-daapd/files/forked-daapd.postinst b/package/forked-daapd/files/forked-daapd.postinst new file mode 100644 index 000000000..74a3b43bf --- /dev/null +++ b/package/forked-daapd/files/forked-daapd.postinst @@ -0,0 +1,7 @@ +#!/bin/sh +. $IPKG_INSTROOT/etc/functions.sh +gid=$(get_next_gid) +add_group daapd $gid +add_user daapd $(get_next_uid) $gid +add_rcconf forked_daapd forked_daapd NO + diff --git a/package/forked-daapd/patches/patch-config_h_in b/package/forked-daapd/patches/patch-config_h_in new file mode 100644 index 000000000..9088c47da --- /dev/null +++ b/package/forked-daapd/patches/patch-config_h_in @@ -0,0 +1,10 @@ +--- forked-daapd-0.16.orig/config.h.in 2011-04-30 11:43:23.000000000 +0200 ++++ forked-daapd-0.16/config.h.in 2011-05-10 14:39:41.000000000 +0200 +@@ -1,5 +1,7 @@ + /* config.h.in. Generated from configure.in by autoheader. */ + ++#define pipe2(a,b) pipe(a) ++ + /* Define to 1 if you have the <dirent.h> header file. */ + #undef HAVE_DIRENT_H + diff --git a/package/libantlr3c/Makefile b/package/libantlr3c/Makefile new file mode 100755 index 000000000..cb5d58571 --- /dev/null +++ b/package/libantlr3c/Makefile @@ -0,0 +1,24 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include ${TOPDIR}/rules.mk + +PKG_NAME:= libantlr3c +PKG_VERSION:= 3.2 +PKG_RELEASE:= 1 +PKG_MD5SUM:= 674646e1d1bf5c6015435480cead725a +PKG_DESCR:= ANother Tool for Language Recognition +PKG_SECTION:= libs +PKG_SITES:= http://www.antlr.org/download/C/ + +include ${TOPDIR}/mk/package.mk + +$(eval $(call PKG_template,LIBANTLR3C,libantlr3c,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) + +CONFIGURE_ENV+= OPTIMFLAGS="$(TARGET_CFLAGS)" + +libantlr3c-install: + ${INSTALL_DIR} ${IDIR_LIBANTLR3C}/usr/lib + ${CP} ${WRKINST}/usr/lib/libantlr3c.so* ${IDIR_LIBANTLR3C}/usr/lib + +include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/libantlr3c/patches/patch-antlr3config_h b/package/libantlr3c/patches/patch-antlr3config_h new file mode 100644 index 000000000..bf860a508 --- /dev/null +++ b/package/libantlr3c/patches/patch-antlr3config_h @@ -0,0 +1,11 @@ +--- libantlr3c-3.2.orig/antlr3config.h 2009-09-23 22:50:45.000000000 +0200 ++++ libantlr3c-3.2/antlr3config.h 2011-05-10 14:06:43.000000000 +0200 +@@ -5,7 +5,7 @@ + /* #undef ANTLR3_NODEBUGGER */ + + /* Define if 64 bit mode required */ +-#define ANTLR3_USE_64BIT 1 ++/* #undef ANTLR3_USE_64BIT */ + + /* Define to 1 if you have the `accept' function. */ + #define HAVE_ACCEPT 1 diff --git a/package/libantlr3c/patches/patch-configure b/package/libantlr3c/patches/patch-configure new file mode 100644 index 000000000..4fd248902 --- /dev/null +++ b/package/libantlr3c/patches/patch-configure @@ -0,0 +1,20 @@ +--- libantlr3c-3.2.orig/configure 2009-12-11 23:55:07.000000000 +0100 ++++ libantlr3c-3.2/configure 2011-05-10 14:08:20.000000000 +0200 +@@ -19533,7 +19533,7 @@ sparc*-*solaris*) + *) + CPPCMNTFLAGS= + CCFLAGS64= +- OPTIMFLAGS="-O" ++ OPTIMFLAGS="" + if test x"$enable_debuginfo" = xyes; then + DEBUGFLAGS='-g' + fi +@@ -19543,7 +19543,7 @@ esac + ;; + esac + +-CFLAGS="$CCFLAGS64 $CPPCMNTFLAGS $OPTIMFLAGS $DEBUGFLAGS $WARNFLAGS" ++CFLAGS="$CFLAGS $CCFLAGS64 $CPPCMNTFLAGS $OPTIMFLAGS $DEBUGFLAGS $WARNFLAGS" + { $as_echo "$as_me:$LINENO: result: $CFLAGS" >&5 + $as_echo "$CFLAGS" >&6; } + diff --git a/package/libavl/Makefile b/package/libavl/Makefile new file mode 100755 index 000000000..9ab1910c8 --- /dev/null +++ b/package/libavl/Makefile @@ -0,0 +1,28 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include ${TOPDIR}/rules.mk + +PKG_NAME:= libavl +PKG_VERSION:= 0.3.5 +PKG_RELEASE:= 1 +PKG_MD5SUM:= 882c68ea7f71876ca110f3b84d7ab12d +PKG_DESCR:= AVL library +PKG_SECTION:= libs +PKG_SITES:= http://libavl.sourcearchive.com/downloads/0.3.5/ + +DISTFILES:= $(PKG_NAME)_$(PKG_VERSION).orig.tar.gz +WRKDIST= $(WRKDIR)/avl-$(PKG_VERSION) + +include ${TOPDIR}/mk/package.mk + +$(eval $(call PKG_template,LIBAVL,libavl,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) + +MAKE_FILE:= GNUmakefile +CONFIG_STYLE:= manual + +libavl-install: + ${INSTALL_DIR} ${IDIR_LIBAVL}/usr/lib + ${CP} ${WRKINST}/usr/lib/libavl.so* ${IDIR_LIBAVL}/usr/lib + +include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/libavl/patches/patch-GNUmakefile b/package/libavl/patches/patch-GNUmakefile new file mode 100644 index 000000000..f967ed68c --- /dev/null +++ b/package/libavl/patches/patch-GNUmakefile @@ -0,0 +1,28 @@ +--- avl-0.3.5.orig/GNUmakefile 2002-11-15 19:57:48.000000000 +0100 ++++ avl-0.3.5/GNUmakefile 2011-05-10 13:52:58.000000000 +0200 +@@ -15,7 +15,7 @@ CFLAGS ?= -O2 -fomit-frame-pointer -pipe + #CFLAGS = -g -pg -a -pipe -march=i686 -Wall + #LDFLAGS = -s + +-prefix ?= /usr/local ++prefix ?= /usr + libdir ?= $(prefix)/lib + includedir ?= $(prefix)/include + includedir ?= /usr/include +@@ -41,13 +41,13 @@ clean: + + install: all + $(INSTALL) -d $(DESTDIR)$(libdir) ++ $(INSTALL) -d $(DESTDIR)$(includedir) + $(INSTALL) avl.h $(DESTDIR)$(includedir) +- $(INSTALL) $(LIBRARIES) $(DESTDIR)$(libdir) +- for i in $(LIBRARIES); do\ ++ $(INSTALL) $(LIBRARY) $(DESTDIR)$(libdir) ++ for i in $(LIBRARY); do\ + $(LN) -sf $$i $(DESTDIR)$(libdir)/$${i%.*};\ + $(LN) -sf $${i%.*} $(DESTDIR)$(libdir)/$${i%.*.*};\ + done +- -$(LDCONFIG) + + .PHONY: clean install all + .PRECIOUS: %.h %.c diff --git a/package/libavl/patches/patch-GNUmakefile.orig b/package/libavl/patches/patch-GNUmakefile.orig new file mode 100644 index 000000000..88ca6044b --- /dev/null +++ b/package/libavl/patches/patch-GNUmakefile.orig @@ -0,0 +1,26 @@ +--- avl-0.3.5.orig/GNUmakefile 2002-11-15 19:57:48.000000000 +0100 ++++ avl-0.3.5/GNUmakefile 2011-05-10 13:51:44.000000000 +0200 +@@ -15,7 +15,7 @@ CFLAGS ?= -O2 -fomit-frame-pointer -pipe + #CFLAGS = -g -pg -a -pipe -march=i686 -Wall + #LDFLAGS = -s + +-prefix ?= /usr/local ++prefix ?= /usr + libdir ?= $(prefix)/lib + includedir ?= $(prefix)/include + includedir ?= /usr/include +@@ -41,13 +41,13 @@ clean: + + install: all + $(INSTALL) -d $(DESTDIR)$(libdir) ++ $(INSTALL) -d $(DESTDIR)$(includedir) + $(INSTALL) avl.h $(DESTDIR)$(includedir) + $(INSTALL) $(LIBRARIES) $(DESTDIR)$(libdir) + for i in $(LIBRARIES); do\ + $(LN) -sf $$i $(DESTDIR)$(libdir)/$${i%.*};\ + $(LN) -sf $${i%.*} $(DESTDIR)$(libdir)/$${i%.*.*};\ + done +- -$(LDCONFIG) + + .PHONY: clean install all + .PRECIOUS: %.h %.c diff --git a/package/libunistring/Makefile b/package/libunistring/Makefile new file mode 100755 index 000000000..908d2b614 --- /dev/null +++ b/package/libunistring/Makefile @@ -0,0 +1,23 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include ${TOPDIR}/rules.mk + +PKG_NAME:= libunistring +PKG_VERSION:= 0.9.3 +PKG_RELEASE:= 1 +PKG_MD5SUM:= db8eca3b64163abadf8c40e5cecc261f +PKG_DESCR:= functions for manipulating Unicode strings +PKG_SECTION:= libs +PKG_URL:= http://www.gnu.org/software/libunistring/ +PKG_SITES:= ${MASTER_SITE_GNU:=libunistring/} + +include ${TOPDIR}/mk/package.mk + +$(eval $(call PKG_template,LIBUNISTRING,libunistring,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) + +libunistring-install: + ${INSTALL_DIR} ${IDIR_LIBUNISTRING}/usr/lib + ${CP} ${WRKINST}/usr/lib/libunistring.so* ${IDIR_LIBUNISTRING}/usr/lib + +include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/mxml/Makefile b/package/mxml/Makefile new file mode 100755 index 000000000..c64a58f73 --- /dev/null +++ b/package/mxml/Makefile @@ -0,0 +1,27 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include ${TOPDIR}/rules.mk + +PKG_NAME:= mxml +PKG_VERSION:= 2.6 +PKG_RELEASE:= 1 +PKG_MD5SUM:= 68977789ae64985dddbd1a1a1652642e +PKG_DESCR:= lightweight XML library +PKG_SECTION:= libs +PKG_URL:= http://www.minixml.org/ +PKG_SITES:= http://ftp.easysw.com/pub/mxml/2.6/ + +PKG_SUBPKGS:= LIBMXML + +include ${TOPDIR}/mk/package.mk + +$(eval $(call PKG_template,LIBMXML,libmxml,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) + +FAKE_FLAGS+= BUILDROOT=${WRKINST} + +libmxml-install: + ${INSTALL_DIR} ${IDIR_LIBMXML}/usr/lib + ${CP} ${WRKINST}/usr/lib/libmxml.so* ${IDIR_LIBMXML}/usr/lib + +include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/mxml/patches/patch-Makefile_in b/package/mxml/patches/patch-Makefile_in new file mode 100644 index 000000000..5ed9231f1 --- /dev/null +++ b/package/mxml/patches/patch-Makefile_in @@ -0,0 +1,103 @@ +--- mxml-2.6.orig/Makefile.in 2008-12-06 05:20:38.000000000 +0100 ++++ mxml-2.6/Makefile.in 2011-05-10 13:06:25.000000000 +0200 +@@ -88,7 +88,7 @@ PUBLIBOBJS = mxml-attr.o mxml-entity.o m + mxml-node.o mxml-search.o mxml-set.o + LIBOBJS = $(PUBLIBOBJS) mxml-private.o mxml-string.o + OBJS = mxmldoc.o testmxml.o $(LIBOBJS) +-TARGETS = $(LIBMXML) mxmldoc testmxml mxml.xml doc/mxml.man ++TARGETS = $(LIBMXML) + + + # +@@ -133,21 +133,21 @@ clang: + # Install everything... + # + +-install: $(TARGETS) install-$(LIBMXML) install-libmxml.a ++install: $(TARGETS) install-$(LIBMXML) + $(INSTALL_DIR) $(BUILDROOT)$(bindir) +- $(INSTALL_BIN) mxmldoc $(BUILDROOT)$(bindir) +- $(INSTALL_DIR) $(BUILDROOT)$(docdir) +- for file in $(DOCFILES); do \ +- $(INSTALL_MAN) $$file $(BUILDROOT)$(docdir); \ +- done ++ #$(INSTALL_BIN) mxmldoc $(BUILDROOT)$(bindir) ++ #$(INSTALL_DIR) $(BUILDROOT)$(docdir) ++ #for file in $(DOCFILES); do \ ++ # $(INSTALL_MAN) $$file $(BUILDROOT)$(docdir); \ ++ #done + $(INSTALL_DIR) $(BUILDROOT)$(includedir) + $(INSTALL_DATA) mxml.h $(BUILDROOT)$(includedir) + $(INSTALL_DIR) $(BUILDROOT)$(libdir)/pkgconfig + $(INSTALL_DATA) mxml.pc $(BUILDROOT)$(libdir)/pkgconfig +- $(INSTALL_DIR) $(BUILDROOT)$(mandir)/man1 +- $(INSTALL_MAN) doc/mxmldoc.man $(BUILDROOT)$(mandir)/man1/mxmldoc.1 +- $(INSTALL_DIR) $(BUILDROOT)$(mandir)/man3 +- $(INSTALL_MAN) doc/mxml.man $(BUILDROOT)$(mandir)/man3/mxml.3 ++ #$(INSTALL_DIR) $(BUILDROOT)$(mandir)/man1 ++ #$(INSTALL_MAN) doc/mxmldoc.man $(BUILDROOT)$(mandir)/man1/mxmldoc.1 ++ #$(INSTALL_DIR) $(BUILDROOT)$(mandir)/man3 ++ #$(INSTALL_MAN) doc/mxml.man $(BUILDROOT)$(mandir)/man3/mxml.3 + + install-libmxml.a: + $(INSTALL_DIR) $(BUILDROOT)$(libdir) +@@ -294,7 +294,7 @@ mxmldoc: $(LIBMXML) mxmldoc.o + $(CC) -L. $(LDFLAGS) -o $@ mxmldoc.o -lmxml $(LIBS) + + mxmldoc-static: libmxml.a mxmldoc.o +- $(CC) $(LDFLAGS) -o $@ mxmldoc.o libmxml.a $(LIBS) ++ $(CC_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ mxmldoc.o libmxml.a $(LIBS) + + mxmldoc.o: mxml.h + +@@ -304,28 +304,7 @@ mxmldoc.o: mxml.h + # + + testmxml: libmxml.a testmxml.o +- $(CC) $(LDFLAGS) -o $@ testmxml.o libmxml.a $(LIBS) +- @echo Testing library... +- ./testmxml test.xml >temp1.xml 2>temp1s.xml +- ./testmxml temp1.xml >temp2.xml 2>temp2s.xml +- @if cmp temp1.xml temp2.xml; then \ +- echo Stdio file test passed!; \ +- $(RM) temp2.xml temp2s.xml; \ +- else \ +- echo Stdio file test failed!; \ +- fi +- @if cmp temp1.xml temp1s.xml; then \ +- echo String test passed!; \ +- $(RM) temp1.xml temp1s.xml; \ +- else \ +- echo String test failed!; \ +- fi +- @if cmp test.xml test.xmlfd; then \ +- echo File descriptor test passed!; \ +- $(RM) test.xmlfd; \ +- else \ +- echo File descriptor test failed!; \ +- fi ++ $(CC_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ testmxml.o libmxml.a $(LIBS) + + testmxml.o: mxml.h + +@@ -336,19 +315,7 @@ testmxml.o: mxml.h + + mxml.xml: mxmldoc-static mxml.h $(PUBLIBOBJS:.o=.c) + $(RM) mxml.xml +- ./mxmldoc-static --header doc/reference.heading mxml.xml mxml.h $(PUBLIBOBJS:.o=.c) >doc/reference.html +- if test "x`uname`" = xDarwin; then \ +- ./mxmldoc-static --docset org.minixml.docset \ +- --docversion @VERSION@ --feedname minixml.org \ +- --feedurl http://www.minixml.org/org.minixml.atom \ +- --header doc/docset.header --intro doc/docset.intro \ +- --css doc/docset.css --title "Mini-XML API Reference" \ +- mxml.xml || exit 1; \ +- /Developer/usr/bin/docsetutil package --output org.minixml.xar \ +- --atom org.minixml.atom \ +- --download-url http://www.minixml.org/org.minixml.xar \ +- org.minixml.docset || exit 1; \ +- fi ++ #./mxmldoc-static --header doc/reference.heading mxml.xml mxml.h $(PUBLIBOBJS:.o=.c) >doc/reference.html + + valgrind: mxmldoc-static + $(RM) valgrind.xml diff --git a/package/mxml/patches/patch-Makefile_in.orig b/package/mxml/patches/patch-Makefile_in.orig new file mode 100644 index 000000000..efe63f91a --- /dev/null +++ b/package/mxml/patches/patch-Makefile_in.orig @@ -0,0 +1,91 @@ +--- mxml-2.6.orig/Makefile.in 2008-12-06 05:20:38.000000000 +0100 ++++ mxml-2.6/Makefile.in 2011-05-10 13:05:50.000000000 +0200 +@@ -88,7 +88,7 @@ PUBLIBOBJS = mxml-attr.o mxml-entity.o m + mxml-node.o mxml-search.o mxml-set.o + LIBOBJS = $(PUBLIBOBJS) mxml-private.o mxml-string.o + OBJS = mxmldoc.o testmxml.o $(LIBOBJS) +-TARGETS = $(LIBMXML) mxmldoc testmxml mxml.xml doc/mxml.man ++TARGETS = $(LIBMXML) + + + # +@@ -133,13 +133,13 @@ clang: + # Install everything... + # + +-install: $(TARGETS) install-$(LIBMXML) install-libmxml.a ++install: $(TARGETS) install-$(LIBMXML) + $(INSTALL_DIR) $(BUILDROOT)$(bindir) +- $(INSTALL_BIN) mxmldoc $(BUILDROOT)$(bindir) +- $(INSTALL_DIR) $(BUILDROOT)$(docdir) +- for file in $(DOCFILES); do \ +- $(INSTALL_MAN) $$file $(BUILDROOT)$(docdir); \ +- done ++ #$(INSTALL_BIN) mxmldoc $(BUILDROOT)$(bindir) ++ #$(INSTALL_DIR) $(BUILDROOT)$(docdir) ++ #for file in $(DOCFILES); do \ ++ # $(INSTALL_MAN) $$file $(BUILDROOT)$(docdir); \ ++ #done + $(INSTALL_DIR) $(BUILDROOT)$(includedir) + $(INSTALL_DATA) mxml.h $(BUILDROOT)$(includedir) + $(INSTALL_DIR) $(BUILDROOT)$(libdir)/pkgconfig +@@ -294,7 +294,7 @@ mxmldoc: $(LIBMXML) mxmldoc.o + $(CC) -L. $(LDFLAGS) -o $@ mxmldoc.o -lmxml $(LIBS) + + mxmldoc-static: libmxml.a mxmldoc.o +- $(CC) $(LDFLAGS) -o $@ mxmldoc.o libmxml.a $(LIBS) ++ $(CC_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ mxmldoc.o libmxml.a $(LIBS) + + mxmldoc.o: mxml.h + +@@ -304,28 +304,7 @@ mxmldoc.o: mxml.h + # + + testmxml: libmxml.a testmxml.o +- $(CC) $(LDFLAGS) -o $@ testmxml.o libmxml.a $(LIBS) +- @echo Testing library... +- ./testmxml test.xml >temp1.xml 2>temp1s.xml +- ./testmxml temp1.xml >temp2.xml 2>temp2s.xml +- @if cmp temp1.xml temp2.xml; then \ +- echo Stdio file test passed!; \ +- $(RM) temp2.xml temp2s.xml; \ +- else \ +- echo Stdio file test failed!; \ +- fi +- @if cmp temp1.xml temp1s.xml; then \ +- echo String test passed!; \ +- $(RM) temp1.xml temp1s.xml; \ +- else \ +- echo String test failed!; \ +- fi +- @if cmp test.xml test.xmlfd; then \ +- echo File descriptor test passed!; \ +- $(RM) test.xmlfd; \ +- else \ +- echo File descriptor test failed!; \ +- fi ++ $(CC_FOR_BUILD) $(LDFLAGS_FOR_BUILD) -o $@ testmxml.o libmxml.a $(LIBS) + + testmxml.o: mxml.h + +@@ -336,19 +315,7 @@ testmxml.o: mxml.h + + mxml.xml: mxmldoc-static mxml.h $(PUBLIBOBJS:.o=.c) + $(RM) mxml.xml +- ./mxmldoc-static --header doc/reference.heading mxml.xml mxml.h $(PUBLIBOBJS:.o=.c) >doc/reference.html +- if test "x`uname`" = xDarwin; then \ +- ./mxmldoc-static --docset org.minixml.docset \ +- --docversion @VERSION@ --feedname minixml.org \ +- --feedurl http://www.minixml.org/org.minixml.atom \ +- --header doc/docset.header --intro doc/docset.intro \ +- --css doc/docset.css --title "Mini-XML API Reference" \ +- mxml.xml || exit 1; \ +- /Developer/usr/bin/docsetutil package --output org.minixml.xar \ +- --atom org.minixml.atom \ +- --download-url http://www.minixml.org/org.minixml.xar \ +- org.minixml.docset || exit 1; \ +- fi ++ #./mxmldoc-static --header doc/reference.heading mxml.xml mxml.h $(PUBLIBOBJS:.o=.c) >doc/reference.html + + valgrind: mxmldoc-static + $(RM) valgrind.xml diff --git a/package/mxml/patches/patch-configure b/package/mxml/patches/patch-configure new file mode 100644 index 000000000..5c8b5da9f --- /dev/null +++ b/package/mxml/patches/patch-configure @@ -0,0 +1,30 @@ +--- mxml-2.6.orig/configure 2009-04-18 19:05:52.000000000 +0200 ++++ mxml-2.6/configure 2011-05-10 12:55:05.000000000 +0200 +@@ -1778,8 +1778,8 @@ else + fi + + +-uname=`uname` +-uversion=`uname -r | sed -e '1,$s/[^0-9]//g'` ++uname=Linux ++uversion=2.6 + if test x$uname = xIRIX64; then + uname="IRIX" + fi +@@ -3479,15 +3479,7 @@ fi + + + +-case "$uname" in +- Darwin* | *BSD*) +- ARFLAGS="-rcv" +- ;; +- *) +- ARFLAGS="crvs" +- ;; +-esac +- ++ARFLAGS="crvs" + + + diff --git a/package/mxml/patches/patch-doc_reference_html b/package/mxml/patches/patch-doc_reference_html new file mode 100644 index 000000000..0fa8d3521 --- /dev/null +++ b/package/mxml/patches/patch-doc_reference_html @@ -0,0 +1,1638 @@ +--- mxml-2.6.orig/doc/reference.html 2009-03-19 06:38:52.000000000 +0100 ++++ mxml-2.6/doc/reference.html 2011-05-10 12:57:21.000000000 +0200 +@@ -1,1635 +0,0 @@ +-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +-<html> +-<head> +-<title>Documentation</title> +-<meta name="creator" content="Mini-XML v2.6"> +-<style type="text/css"><!-- +-body, p, h1, h2, h3, h4 { +- font-family: lucida grande, geneva, helvetica, arial, sans-serif; +-} +-div.body h1 { +- font-size: 250%; +- font-weight: bold; +- margin: 0; +-} +-div.body h2 { +- font-size: 250%; +- margin-top: 1.5em; +-} +-div.body h3 { +- font-size: 150%; +- margin-bottom: 0.5em; +- margin-top: 1.5em; +-} +-div.body h4 { +- font-size: 110%; +- margin-bottom: 0.5em; +- margin-top: 1.5em; +-} +-div.body h5 { +- font-size: 100%; +- margin-bottom: 0.5em; +- margin-top: 1.5em; +-} +-div.contents { +- background: #e8e8e8; +- border: solid thin black; +- padding: 10px; +-} +-div.contents h1 { +- font-size: 110%; +-} +-div.contents h2 { +- font-size: 100%; +-} +-div.contents ul.contents { +- font-size: 80%; +-} +-.class { +- border-bottom: solid 2px gray; +-} +-.constants { +-} +-.description { +- margin-top: 0.5em; +-} +-.discussion { +-} +-.enumeration { +- border-bottom: solid 2px gray; +-} +-.function { +- border-bottom: solid 2px gray; +- margin-bottom: 0; +-} +-.members { +-} +-.method { +-} +-.parameters { +-} +-.returnvalue { +-} +-.struct { +- border-bottom: solid 2px gray; +-} +-.typedef { +- border-bottom: solid 2px gray; +-} +-.union { +- border-bottom: solid 2px gray; +-} +-.variable { +-} +-code, p.code, pre, ul.code li { +- font-family: monaco, courier, monospace; +- font-size: 90%; +-} +-a:link, a:visited { +- text-decoration: none; +-} +-span.info { +- background: black; +- border: solid thin black; +- color: white; +- font-size: 80%; +- font-style: italic; +- font-weight: bold; +- white-space: nowrap; +-} +-h3 span.info, h4 span.info { +- float: right; +- font-size: 100%; +-} +-ul.code, ul.contents, ul.subcontents { +- list-style-type: none; +- margin: 0; +- padding-left: 0; +-} +-ul.code li { +- margin: 0; +-} +-ul.contents > li { +- margin-top: 1em; +-} +-ul.contents li ul.code, ul.contents li ul.subcontents { +- padding-left: 2em; +-} +-div.body dl { +- margin-top: 0; +-} +-div.body dt { +- font-style: italic; +- margin-top: 0; +-} +-div.body dd { +- margin-bottom: 0.5em; +-} +-h1.title { +-} +-h2.title { +- border-bottom: solid 2px black; +-} +-h3.title { +- border-bottom: solid 2px black; +-} +---></style> +-</head> +-<body> +-<div class='body'> +-<h1 align='right'><a name='REFERENCE'><img src="C.gif" align="right" +-hspace="10" width="100" height="100" alt="C"></a>Library +-Reference</h1> +- +-<h2 class="title">Contents</h2> +-<ul class="contents"> +-<li><a href="#FUNCTIONS">Functions</a><ul class="code"> +-<li><a href="#mxmlAdd" title="Add a node to a tree.">mxmlAdd</a></li> +-<li><a href="#mxmlDelete" title="Delete a node and all of its children.">mxmlDelete</a></li> +-<li><a href="#mxmlElementDeleteAttr" title="Delete an attribute.">mxmlElementDeleteAttr</a></li> +-<li><a href="#mxmlElementGetAttr" title="Get an attribute.">mxmlElementGetAttr</a></li> +-<li><a href="#mxmlElementSetAttr" title="Set an attribute.">mxmlElementSetAttr</a></li> +-<li><a href="#mxmlElementSetAttrf" title="Set an attribute with a formatted value.">mxmlElementSetAttrf</a></li> +-<li><a href="#mxmlEntityAddCallback" title="Add a callback to convert entities to Unicode.">mxmlEntityAddCallback</a></li> +-<li><a href="#mxmlEntityGetName" title="Get the name that corresponds to the character value.">mxmlEntityGetName</a></li> +-<li><a href="#mxmlEntityGetValue" title="Get the character corresponding to a named entity.">mxmlEntityGetValue</a></li> +-<li><a href="#mxmlEntityRemoveCallback" title="Remove a callback.">mxmlEntityRemoveCallback</a></li> +-<li><a href="#mxmlFindElement" title="Find the named element.">mxmlFindElement</a></li> +-<li><a href="#mxmlIndexDelete" title="Delete an index.">mxmlIndexDelete</a></li> +-<li><a href="#mxmlIndexEnum" title="Return the next node in the index.">mxmlIndexEnum</a></li> +-<li><a href="#mxmlIndexFind" title="Find the next matching node.">mxmlIndexFind</a></li> +-<li><a href="#mxmlIndexNew" title="Create a new index.">mxmlIndexNew</a></li> +-<li><a href="#mxmlIndexReset" title="Reset the enumeration/find pointer in the index and +-return the first node in the index.">mxmlIndexReset</a></li> +-<li><a href="#mxmlLoadFd" title="Load a file descriptor into an XML node tree.">mxmlLoadFd</a></li> +-<li><a href="#mxmlLoadFile" title="Load a file into an XML node tree.">mxmlLoadFile</a></li> +-<li><a href="#mxmlLoadString" title="Load a string into an XML node tree.">mxmlLoadString</a></li> +-<li><a href="#mxmlNewCDATA" title="Create a new CDATA node.">mxmlNewCDATA</a></li> +-<li><a href="#mxmlNewCustom" title="Create a new custom data node.">mxmlNewCustom</a></li> +-<li><a href="#mxmlNewElement" title="Create a new element node.">mxmlNewElement</a></li> +-<li><a href="#mxmlNewInteger" title="Create a new integer node.">mxmlNewInteger</a></li> +-<li><a href="#mxmlNewOpaque" title="Create a new opaque string.">mxmlNewOpaque</a></li> +-<li><a href="#mxmlNewReal" title="Create a new real number node.">mxmlNewReal</a></li> +-<li><a href="#mxmlNewText" title="Create a new text fragment node.">mxmlNewText</a></li> +-<li><a href="#mxmlNewTextf" title="Create a new formatted text fragment node.">mxmlNewTextf</a></li> +-<li><a href="#mxmlNewXML" title="Create a new XML document tree.">mxmlNewXML</a></li> +-<li><a href="#mxmlRelease" title="Release a node.">mxmlRelease</a></li> +-<li><a href="#mxmlRemove" title="Remove a node from its parent.">mxmlRemove</a></li> +-<li><a href="#mxmlRetain" title="Retain a node.">mxmlRetain</a></li> +-<li><a href="#mxmlSAXLoadFd" title="Load a file descriptor into an XML node tree +-using a SAX callback.">mxmlSAXLoadFd</a></li> +-<li><a href="#mxmlSAXLoadFile" title="Load a file into an XML node tree +-using a SAX callback.">mxmlSAXLoadFile</a></li> +-<li><a href="#mxmlSAXLoadString" title="Load a string into an XML node tree +-using a SAX callback.">mxmlSAXLoadString</a></li> +-<li><a href="#mxmlSaveAllocString" title="Save an XML node tree to an allocated string.">mxmlSaveAllocString</a></li> +-<li><a href="#mxmlSaveFd" title="Save an XML tree to a file descriptor.">mxmlSaveFd</a></li> +-<li><a href="#mxmlSaveFile" title="Save an XML tree to a file.">mxmlSaveFile</a></li> +-<li><a href="#mxmlSaveString" title="Save an XML node tree to a string.">mxmlSaveString</a></li> +-<li><a href="#mxmlSetCDATA" title="Set the element name of a CDATA node.">mxmlSetCDATA</a></li> +-<li><a href="#mxmlSetCustom" title="Set the data and destructor of a custom data node.">mxmlSetCustom</a></li> +-<li><a href="#mxmlSetCustomHandlers" title="Set the handling functions for custom data.">mxmlSetCustomHandlers</a></li> +-<li><a href="#mxmlSetElement" title="Set the name of an element node.">mxmlSetElement</a></li> +-<li><a href="#mxmlSetErrorCallback" title="Set the error message callback.">mxmlSetErrorCallback</a></li> +-<li><a href="#mxmlSetInteger" title="Set the value of an integer node.">mxmlSetInteger</a></li> +-<li><a href="#mxmlSetOpaque" title="Set the value of an opaque node.">mxmlSetOpaque</a></li> +-<li><a href="#mxmlSetReal" title="Set the value of a real number node.">mxmlSetReal</a></li> +-<li><a href="#mxmlSetText" title="Set the value of a text node.">mxmlSetText</a></li> +-<li><a href="#mxmlSetTextf" title="Set the value of a text node to a formatted string.">mxmlSetTextf</a></li> +-<li><a href="#mxmlSetWrapMargin" title="Set the the wrap margin when saving XML data.">mxmlSetWrapMargin</a></li> +-<li><a href="#mxmlWalkNext" title="Walk to the next logical node in the tree.">mxmlWalkNext</a></li> +-<li><a href="#mxmlWalkPrev" title="Walk to the previous logical node in the tree.">mxmlWalkPrev</a></li> +-</ul></li> +-<li><a href="#TYPES">Data Types</a><ul class="code"> +- <li><a href="#mxml_attr_t" title="An XML element attribute value.">mxml_attr_t</a></li> +- <li><a href="#mxml_custom_destroy_cb_t" title="Custom data destructor">mxml_custom_destroy_cb_t</a></li> +- <li><a href="#mxml_custom_load_cb_t" title="Custom data load callback function">mxml_custom_load_cb_t</a></li> +- <li><a href="#mxml_custom_save_cb_t" title="Custom data save callback function">mxml_custom_save_cb_t</a></li> +- <li><a href="#mxml_custom_t" title="An XML custom value. ">mxml_custom_t</a></li> +- <li><a href="#mxml_element_t" title="An XML element value.">mxml_element_t</a></li> +- <li><a href="#mxml_entity_cb_t" title="Entity callback function">mxml_entity_cb_t</a></li> +- <li><a href="#mxml_error_cb_t" title="Error callback function">mxml_error_cb_t</a></li> +- <li><a href="#mxml_index_t" title="An XML node index.">mxml_index_t</a></li> +- <li><a href="#mxml_load_cb_t" title="Load callback function">mxml_load_cb_t</a></li> +- <li><a href="#mxml_node_t" title="An XML node.">mxml_node_t</a></li> +- <li><a href="#mxml_save_cb_t" title="Save callback function">mxml_save_cb_t</a></li> +- <li><a href="#mxml_sax_cb_t" title="SAX callback function">mxml_sax_cb_t</a></li> +- <li><a href="#mxml_sax_event_t" title="SAX event type.">mxml_sax_event_t</a></li> +- <li><a href="#mxml_text_t" title="An XML text value.">mxml_text_t</a></li> +- <li><a href="#mxml_type_t" title="The XML node type.">mxml_type_t</a></li> +- <li><a href="#mxml_value_t" title="An XML node value.">mxml_value_t</a></li> +-</ul></li> +-<li><a href="#STRUCTURES">Structures</a><ul class="code"> +- <li><a href="#mxml_attr_s" title="An XML element attribute value.">mxml_attr_s</a></li> +- <li><a href="#mxml_custom_s" title="An XML custom value. ">mxml_custom_s</a></li> +- <li><a href="#mxml_element_s" title="An XML element value.">mxml_element_s</a></li> +- <li><a href="#mxml_index_s" title="An XML node index.">mxml_index_s</a></li> +- <li><a href="#mxml_node_s" title="An XML node.">mxml_node_s</a></li> +- <li><a href="#mxml_text_s" title="An XML text value.">mxml_text_s</a></li> +-</ul></li> +-<li><a href="#UNIONS">Unions</a><ul class="code"> +- <li><a href="#mxml_value_u" title="An XML node value.">mxml_value_u</a></li> +-</ul></li> +-<li><a href="#ENUMERATIONS">Constants</a><ul class="code"> +- <li><a href="#mxml_sax_event_e" title="SAX event type.">mxml_sax_event_e</a></li> +- <li><a href="#mxml_type_e" title="The XML node type.">mxml_type_e</a></li> +-</ul></li> +-<h2 class="title"><a name="FUNCTIONS">Functions</a></h2> +-<h3 class="function"><a name="mxmlAdd">mxmlAdd</a></h3> +-<p class="description">Add a node to a tree.</p> +-<p class="code"> +-void mxmlAdd (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *parent,<br> +- int where,<br> +- <a href="#mxml_node_t">mxml_node_t</a> *child,<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>parent</dt> +-<dd class="description">Parent node</dd> +-<dt>where</dt> +-<dd class="description">Where to add, MXML_ADD_BEFORE or MXML_ADD_AFTER</dd> +-<dt>child</dt> +-<dd class="description">Child node for where or MXML_ADD_TO_PARENT</dd> +-<dt>node</dt> +-<dd class="description">Node to add</dd> +-</dl> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">Adds the specified node to the parent. If the child argument is not +-NULL, puts the new node before or after the specified child depending +-on the value of the where argument. If the child argument is NULL, +-puts the new node at the beginning of the child list (MXML_ADD_BEFORE) +-or at the end of the child list (MXML_ADD_AFTER). The constant +-MXML_ADD_TO_PARENT can be used to specify a NULL child pointer.</p> +-<h3 class="function"><a name="mxmlDelete">mxmlDelete</a></h3> +-<p class="description">Delete a node and all of its children.</p> +-<p class="code"> +-void mxmlDelete (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Node to delete</dd> +-</dl> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">If the specified node has a parent, this function first removes the +-node from its parent using the mxmlRemove() function.</p> +-<h3 class="function"><span class="info"> Mini-XML 2.4 </span><a name="mxmlElementDeleteAttr">mxmlElementDeleteAttr</a></h3> +-<p class="description">Delete an attribute.</p> +-<p class="code"> +-void mxmlElementDeleteAttr (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- const char *name<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Element</dd> +-<dt>name</dt> +-<dd class="description">Attribute name</dd> +-</dl> +-<h3 class="function"><a name="mxmlElementGetAttr">mxmlElementGetAttr</a></h3> +-<p class="description">Get an attribute.</p> +-<p class="code"> +-const char *mxmlElementGetAttr (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- const char *name<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Element node</dd> +-<dt>name</dt> +-<dd class="description">Name of attribute</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">Attribute value or NULL</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">This function returns NULL if the node is not an element or the +-named attribute does not exist.</p> +-<h3 class="function"><a name="mxmlElementSetAttr">mxmlElementSetAttr</a></h3> +-<p class="description">Set an attribute.</p> +-<p class="code"> +-void mxmlElementSetAttr (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- const char *name,<br> +- const char *value<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Element node</dd> +-<dt>name</dt> +-<dd class="description">Name of attribute</dd> +-<dt>value</dt> +-<dd class="description">Attribute value</dd> +-</dl> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">If the named attribute already exists, the value of the attribute +-is replaced by the new string value. The string value is copied +-into the element node. This function does nothing if the node is +-not an element.</p> +-<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a name="mxmlElementSetAttrf">mxmlElementSetAttrf</a></h3> +-<p class="description">Set an attribute with a formatted value.</p> +-<p class="code"> +-void mxmlElementSetAttrf (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- const char *name,<br> +- const char *format,<br> +- ...<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Element node</dd> +-<dt>name</dt> +-<dd class="description">Name of attribute</dd> +-<dt>format</dt> +-<dd class="description">Printf-style attribute value</dd> +-<dt>...</dt> +-<dd class="description">Additional arguments as needed</dd> +-</dl> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">If the named attribute already exists, the value of the attribute +-is replaced by the new formatted string. The formatted string value is +-copied into the element node. This function does nothing if the node +-is not an element. +- +-</p> +-<h3 class="function"><a name="mxmlEntityAddCallback">mxmlEntityAddCallback</a></h3> +-<p class="description">Add a callback to convert entities to Unicode.</p> +-<p class="code"> +-int mxmlEntityAddCallback (<br> +- <a href="#mxml_entity_cb_t">mxml_entity_cb_t</a> cb<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>cb</dt> +-<dd class="description">Callback function to add</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">0 on success, -1 on failure</p> +-<h3 class="function"><a name="mxmlEntityGetName">mxmlEntityGetName</a></h3> +-<p class="description">Get the name that corresponds to the character value.</p> +-<p class="code"> +-const char *mxmlEntityGetName (<br> +- int val<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>val</dt> +-<dd class="description">Character value</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">Entity name or NULL</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">If val does not need to be represented by a named entity, NULL is returned.</p> +-<h3 class="function"><a name="mxmlEntityGetValue">mxmlEntityGetValue</a></h3> +-<p class="description">Get the character corresponding to a named entity.</p> +-<p class="code"> +-int mxmlEntityGetValue (<br> +- const char *name<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>name</dt> +-<dd class="description">Entity name</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">Character value or -1 on error</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The entity name can also be a numeric constant. -1 is returned if the +-name is not known.</p> +-<h3 class="function"><a name="mxmlEntityRemoveCallback">mxmlEntityRemoveCallback</a></h3> +-<p class="description">Remove a callback.</p> +-<p class="code"> +-void mxmlEntityRemoveCallback (<br> +- <a href="#mxml_entity_cb_t">mxml_entity_cb_t</a> cb<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>cb</dt> +-<dd class="description">Callback function to remove</dd> +-</dl> +-<h3 class="function"><a name="mxmlFindElement">mxmlFindElement</a></h3> +-<p class="description">Find the named element.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlFindElement (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- <a href="#mxml_node_t">mxml_node_t</a> *top,<br> +- const char *name,<br> +- const char *attr,<br> +- const char *value,<br> +- int descend<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Current node</dd> +-<dt>top</dt> +-<dd class="description">Top node</dd> +-<dt>name</dt> +-<dd class="description">Element name or NULL for any</dd> +-<dt>attr</dt> +-<dd class="description">Attribute name, or NULL for none</dd> +-<dt>value</dt> +-<dd class="description">Attribute value, or NULL for any</dd> +-<dt>descend</dt> +-<dd class="description">Descend into tree - MXML_DESCEND, MXML_NO_DESCEND, or MXML_DESCEND_FIRST</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">Element node or NULL</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The search is constrained by the name, attribute name, and value; any +-NULL names or values are treated as wildcards, so different kinds of +-searches can be implemented by looking for all elements of a given name +-or all elements with a specific attribute. The descend argument determines +-whether the search descends into child nodes; normally you will use +-MXML_DESCEND_FIRST for the initial search and MXML_NO_DESCEND to find +-additional direct descendents of the node. The top node argument +-constrains the search to a particular node's children.</p> +-<h3 class="function"><a name="mxmlIndexDelete">mxmlIndexDelete</a></h3> +-<p class="description">Delete an index.</p> +-<p class="code"> +-void mxmlIndexDelete (<br> +- <a href="#mxml_index_t">mxml_index_t</a> *ind<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>ind</dt> +-<dd class="description">Index to delete</dd> +-</dl> +-<h3 class="function"><a name="mxmlIndexEnum">mxmlIndexEnum</a></h3> +-<p class="description">Return the next node in the index.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlIndexEnum (<br> +- <a href="#mxml_index_t">mxml_index_t</a> *ind<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>ind</dt> +-<dd class="description">Index to enumerate</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">Next node or NULL if there is none</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">Nodes are returned in the sorted order of the index.</p> +-<h3 class="function"><a name="mxmlIndexFind">mxmlIndexFind</a></h3> +-<p class="description">Find the next matching node.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlIndexFind (<br> +- <a href="#mxml_index_t">mxml_index_t</a> *ind,<br> +- const char *element,<br> +- const char *value<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>ind</dt> +-<dd class="description">Index to search</dd> +-<dt>element</dt> +-<dd class="description">Element name to find, if any</dd> +-<dt>value</dt> +-<dd class="description">Attribute value, if any</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">Node or NULL if none found</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">You should call mxmlIndexReset() prior to using this function for +-the first time with a particular set of "element" and "value" +-strings. Passing NULL for both "element" and "value" is equivalent +-to calling mxmlIndexEnum().</p> +-<h3 class="function"><a name="mxmlIndexNew">mxmlIndexNew</a></h3> +-<p class="description">Create a new index.</p> +-<p class="code"> +-<a href="#mxml_index_t">mxml_index_t</a> *mxmlIndexNew (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- const char *element,<br> +- const char *attr<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">XML node tree</dd> +-<dt>element</dt> +-<dd class="description">Element to index or NULL for all</dd> +-<dt>attr</dt> +-<dd class="description">Attribute to index or NULL for none</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">New index</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The index will contain all nodes that contain the named element and/or +-attribute. If both "element" and "attr" are NULL, then the index will +-contain a sorted list of the elements in the node tree. Nodes are +-sorted by element name and optionally by attribute value if the "attr" +-argument is not NULL.</p> +-<h3 class="function"><a name="mxmlIndexReset">mxmlIndexReset</a></h3> +-<p class="description">Reset the enumeration/find pointer in the index and +-return the first node in the index.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlIndexReset (<br> +- <a href="#mxml_index_t">mxml_index_t</a> *ind<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>ind</dt> +-<dd class="description">Index to reset</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">First node or NULL if there is none</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">This function should be called prior to using mxmlIndexEnum() or +-mxmlIndexFind() for the first time.</p> +-<h3 class="function"><a name="mxmlLoadFd">mxmlLoadFd</a></h3> +-<p class="description">Load a file descriptor into an XML node tree.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlLoadFd (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *top,<br> +- int fd,<br> +- <a href="#mxml_load_cb_t">mxml_load_cb_t</a> cb<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>top</dt> +-<dd class="description">Top node</dd> +-<dt>fd</dt> +-<dd class="description">File descriptor to read from</dd> +-<dt>cb</dt> +-<dd class="description">Callback function or MXML_NO_CALLBACK</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">First node or NULL if the file could not be read.</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The nodes in the specified file are added to the specified top node. +-If no top node is provided, the XML file MUST be well-formed with a +-single parent node like <?xml> for the entire file. The callback +-function returns the value type that should be used for child nodes. +-If MXML_NO_CALLBACK is specified then all child nodes will be either +-MXML_ELEMENT or MXML_TEXT nodes.<br> +-<br> +-The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK, +-MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading +-child nodes of the specified type.</p> +-<h3 class="function"><a name="mxmlLoadFile">mxmlLoadFile</a></h3> +-<p class="description">Load a file into an XML node tree.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlLoadFile (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *top,<br> +- FILE *fp,<br> +- <a href="#mxml_load_cb_t">mxml_load_cb_t</a> cb<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>top</dt> +-<dd class="description">Top node</dd> +-<dt>fp</dt> +-<dd class="description">File to read from</dd> +-<dt>cb</dt> +-<dd class="description">Callback function or MXML_NO_CALLBACK</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">First node or NULL if the file could not be read.</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The nodes in the specified file are added to the specified top node. +-If no top node is provided, the XML file MUST be well-formed with a +-single parent node like <?xml> for the entire file. The callback +-function returns the value type that should be used for child nodes. +-If MXML_NO_CALLBACK is specified then all child nodes will be either +-MXML_ELEMENT or MXML_TEXT nodes.<br> +-<br> +-The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK, +-MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading +-child nodes of the specified type.</p> +-<h3 class="function"><a name="mxmlLoadString">mxmlLoadString</a></h3> +-<p class="description">Load a string into an XML node tree.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlLoadString (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *top,<br> +- const char *s,<br> +- <a href="#mxml_load_cb_t">mxml_load_cb_t</a> cb<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>top</dt> +-<dd class="description">Top node</dd> +-<dt>s</dt> +-<dd class="description">String to load</dd> +-<dt>cb</dt> +-<dd class="description">Callback function or MXML_NO_CALLBACK</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">First node or NULL if the string has errors.</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The nodes in the specified string are added to the specified top node. +-If no top node is provided, the XML string MUST be well-formed with a +-single parent node like <?xml> for the entire string. The callback +-function returns the value type that should be used for child nodes. +-If MXML_NO_CALLBACK is specified then all child nodes will be either +-MXML_ELEMENT or MXML_TEXT nodes.<br> +-<br> +-The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK, +-MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading +-child nodes of the specified type.</p> +-<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a name="mxmlNewCDATA">mxmlNewCDATA</a></h3> +-<p class="description">Create a new CDATA node.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewCDATA (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *parent,<br> +- const char *data<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>parent</dt> +-<dd class="description">Parent node or MXML_NO_PARENT</dd> +-<dt>data</dt> +-<dd class="description">Data string</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">New node</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The new CDATA node is added to the end of the specified parent's child +-list. The constant MXML_NO_PARENT can be used to specify that the new +-CDATA node has no parent. The data string must be nul-terminated and +-is copied into the new node. CDATA nodes use the MXML_ELEMENT type. +- +-</p> +-<h3 class="function"><span class="info"> Mini-XML 2.1 </span><a name="mxmlNewCustom">mxmlNewCustom</a></h3> +-<p class="description">Create a new custom data node.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewCustom (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *parent,<br> +- void *data,<br> +- <a href="#mxml_custom_destroy_cb_t">mxml_custom_destroy_cb_t</a> destroy<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>parent</dt> +-<dd class="description">Parent node or MXML_NO_PARENT</dd> +-<dt>data</dt> +-<dd class="description">Pointer to data</dd> +-<dt>destroy</dt> +-<dd class="description">Function to destroy data</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">New node</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The new custom node is added to the end of the specified parent's child +-list. The constant MXML_NO_PARENT can be used to specify that the new +-element node has no parent. NULL can be passed when the data in the +-node is not dynamically allocated or is separately managed. +- +-</p> +-<h3 class="function"><a name="mxmlNewElement">mxmlNewElement</a></h3> +-<p class="description">Create a new element node.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewElement (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *parent,<br> +- const char *name<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>parent</dt> +-<dd class="description">Parent node or MXML_NO_PARENT</dd> +-<dt>name</dt> +-<dd class="description">Name of element</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">New node</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The new element node is added to the end of the specified parent's child +-list. The constant MXML_NO_PARENT can be used to specify that the new +-element node has no parent.</p> +-<h3 class="function"><a name="mxmlNewInteger">mxmlNewInteger</a></h3> +-<p class="description">Create a new integer node.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewInteger (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *parent,<br> +- int integer<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>parent</dt> +-<dd class="description">Parent node or MXML_NO_PARENT</dd> +-<dt>integer</dt> +-<dd class="description">Integer value</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">New node</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The new integer node is added to the end of the specified parent's child +-list. The constant MXML_NO_PARENT can be used to specify that the new +-integer node has no parent.</p> +-<h3 class="function"><a name="mxmlNewOpaque">mxmlNewOpaque</a></h3> +-<p class="description">Create a new opaque string.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewOpaque (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *parent,<br> +- const char *opaque<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>parent</dt> +-<dd class="description">Parent node or MXML_NO_PARENT</dd> +-<dt>opaque</dt> +-<dd class="description">Opaque string</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">New node</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The new opaque node is added to the end of the specified parent's child +-list. The constant MXML_NO_PARENT can be used to specify that the new +-opaque node has no parent. The opaque string must be nul-terminated and +-is copied into the new node.</p> +-<h3 class="function"><a name="mxmlNewReal">mxmlNewReal</a></h3> +-<p class="description">Create a new real number node.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewReal (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *parent,<br> +- double real<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>parent</dt> +-<dd class="description">Parent node or MXML_NO_PARENT</dd> +-<dt>real</dt> +-<dd class="description">Real number value</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">New node</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The new real number node is added to the end of the specified parent's +-child list. The constant MXML_NO_PARENT can be used to specify that +-the new real number node has no parent.</p> +-<h3 class="function"><a name="mxmlNewText">mxmlNewText</a></h3> +-<p class="description">Create a new text fragment node.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewText (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *parent,<br> +- int whitespace,<br> +- const char *string<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>parent</dt> +-<dd class="description">Parent node or MXML_NO_PARENT</dd> +-<dt>whitespace</dt> +-<dd class="description">1 = leading whitespace, 0 = no whitespace</dd> +-<dt>string</dt> +-<dd class="description">String</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">New node</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The new text node is added to the end of the specified parent's child +-list. The constant MXML_NO_PARENT can be used to specify that the new +-text node has no parent. The whitespace parameter is used to specify +-whether leading whitespace is present before the node. The text +-string must be nul-terminated and is copied into the new node.</p> +-<h3 class="function"><a name="mxmlNewTextf">mxmlNewTextf</a></h3> +-<p class="description">Create a new formatted text fragment node.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewTextf (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *parent,<br> +- int whitespace,<br> +- const char *format,<br> +- ...<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>parent</dt> +-<dd class="description">Parent node or MXML_NO_PARENT</dd> +-<dt>whitespace</dt> +-<dd class="description">1 = leading whitespace, 0 = no whitespace</dd> +-<dt>format</dt> +-<dd class="description">Printf-style frmat string</dd> +-<dt>...</dt> +-<dd class="description">Additional args as needed</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">New node</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The new text node is added to the end of the specified parent's child +-list. The constant MXML_NO_PARENT can be used to specify that the new +-text node has no parent. The whitespace parameter is used to specify +-whether leading whitespace is present before the node. The format +-string must be nul-terminated and is formatted into the new node.</p> +-<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a name="mxmlNewXML">mxmlNewXML</a></h3> +-<p class="description">Create a new XML document tree.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlNewXML (<br> +- const char *version<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>version</dt> +-<dd class="description">Version number to use</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">New ?xml node</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The "version" argument specifies the version number to put in the +-?xml element node. If NULL, version 1.0 is assumed. +- +-</p> +-<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a name="mxmlRelease">mxmlRelease</a></h3> +-<p class="description">Release a node.</p> +-<p class="code"> +-int mxmlRelease (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Node</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">New reference count</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">When the reference count reaches zero, the node (and any children) +-is deleted via mxmlDelete(). +- +-</p> +-<h3 class="function"><a name="mxmlRemove">mxmlRemove</a></h3> +-<p class="description">Remove a node from its parent.</p> +-<p class="code"> +-void mxmlRemove (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Node to remove</dd> +-</dl> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">Does not free memory used by the node - use mxmlDelete() for that. +-This function does nothing if the node has no parent.</p> +-<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a name="mxmlRetain">mxmlRetain</a></h3> +-<p class="description">Retain a node.</p> +-<p class="code"> +-int mxmlRetain (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Node</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">New reference count</p> +-<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a name="mxmlSAXLoadFd">mxmlSAXLoadFd</a></h3> +-<p class="description">Load a file descriptor into an XML node tree +-using a SAX callback.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlSAXLoadFd (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *top,<br> +- int fd,<br> +- <a href="#mxml_load_cb_t">mxml_load_cb_t</a> cb,<br> +- <a href="#mxml_sax_cb_t">mxml_sax_cb_t</a> sax_cb,<br> +- void *sax_data<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>top</dt> +-<dd class="description">Top node</dd> +-<dt>fd</dt> +-<dd class="description">File descriptor to read from</dd> +-<dt>cb</dt> +-<dd class="description">Callback function or MXML_NO_CALLBACK</dd> +-<dt>sax_cb</dt> +-<dd class="description">SAX callback or MXML_NO_CALLBACK</dd> +-<dt>sax_data</dt> +-<dd class="description">SAX user data</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">First node or NULL if the file could not be read.</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The nodes in the specified file are added to the specified top node. +-If no top node is provided, the XML file MUST be well-formed with a +-single parent node like <?xml> for the entire file. The callback +-function returns the value type that should be used for child nodes. +-If MXML_NO_CALLBACK is specified then all child nodes will be either +-MXML_ELEMENT or MXML_TEXT nodes.<br> +-<br> +-The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK, +-MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading +-child nodes of the specified type.<br> +-<br> +-The SAX callback must call mxmlRetain() for any nodes that need to +-be kept for later use. Otherwise, nodes are deleted when the parent +-node is closed or after each data, comment, CDATA, or directive node. +- +-</p> +-<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a name="mxmlSAXLoadFile">mxmlSAXLoadFile</a></h3> +-<p class="description">Load a file into an XML node tree +-using a SAX callback.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlSAXLoadFile (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *top,<br> +- FILE *fp,<br> +- <a href="#mxml_load_cb_t">mxml_load_cb_t</a> cb,<br> +- <a href="#mxml_sax_cb_t">mxml_sax_cb_t</a> sax_cb,<br> +- void *sax_data<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>top</dt> +-<dd class="description">Top node</dd> +-<dt>fp</dt> +-<dd class="description">File to read from</dd> +-<dt>cb</dt> +-<dd class="description">Callback function or MXML_NO_CALLBACK</dd> +-<dt>sax_cb</dt> +-<dd class="description">SAX callback or MXML_NO_CALLBACK</dd> +-<dt>sax_data</dt> +-<dd class="description">SAX user data</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">First node or NULL if the file could not be read.</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The nodes in the specified file are added to the specified top node. +-If no top node is provided, the XML file MUST be well-formed with a +-single parent node like <?xml> for the entire file. The callback +-function returns the value type that should be used for child nodes. +-If MXML_NO_CALLBACK is specified then all child nodes will be either +-MXML_ELEMENT or MXML_TEXT nodes.<br> +-<br> +-The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK, +-MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading +-child nodes of the specified type.<br> +-<br> +-The SAX callback must call mxmlRetain() for any nodes that need to +-be kept for later use. Otherwise, nodes are deleted when the parent +-node is closed or after each data, comment, CDATA, or directive node. +- +-</p> +-<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a name="mxmlSAXLoadString">mxmlSAXLoadString</a></h3> +-<p class="description">Load a string into an XML node tree +-using a SAX callback.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlSAXLoadString (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *top,<br> +- const char *s,<br> +- <a href="#mxml_load_cb_t">mxml_load_cb_t</a> cb,<br> +- <a href="#mxml_sax_cb_t">mxml_sax_cb_t</a> sax_cb,<br> +- void *sax_data<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>top</dt> +-<dd class="description">Top node</dd> +-<dt>s</dt> +-<dd class="description">String to load</dd> +-<dt>cb</dt> +-<dd class="description">Callback function or MXML_NO_CALLBACK</dd> +-<dt>sax_cb</dt> +-<dd class="description">SAX callback or MXML_NO_CALLBACK</dd> +-<dt>sax_data</dt> +-<dd class="description">SAX user data</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">First node or NULL if the string has errors.</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The nodes in the specified string are added to the specified top node. +-If no top node is provided, the XML string MUST be well-formed with a +-single parent node like <?xml> for the entire string. The callback +-function returns the value type that should be used for child nodes. +-If MXML_NO_CALLBACK is specified then all child nodes will be either +-MXML_ELEMENT or MXML_TEXT nodes.<br> +-<br> +-The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK, +-MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading +-child nodes of the specified type.<br> +-<br> +-The SAX callback must call mxmlRetain() for any nodes that need to +-be kept for later use. Otherwise, nodes are deleted when the parent +-node is closed or after each data, comment, CDATA, or directive node. +- +-</p> +-<h3 class="function"><a name="mxmlSaveAllocString">mxmlSaveAllocString</a></h3> +-<p class="description">Save an XML node tree to an allocated string.</p> +-<p class="code"> +-char *mxmlSaveAllocString (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- <a href="#mxml_save_cb_t">mxml_save_cb_t</a> cb<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Node to write</dd> +-<dt>cb</dt> +-<dd class="description">Whitespace callback or MXML_NO_CALLBACK</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">Allocated string or NULL</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">This function returns a pointer to a string containing the textual +-representation of the XML node tree. The string should be freed +-using the free() function when you are done with it. NULL is returned +-if the node would produce an empty string or if the string cannot be +-allocated.<br> +-<br> +-The callback argument specifies a function that returns a whitespace +-string or NULL before and after each element. If MXML_NO_CALLBACK +-is specified, whitespace will only be added before MXML_TEXT nodes +-with leading whitespace and before attribute names inside opening +-element tags.</p> +-<h3 class="function"><a name="mxmlSaveFd">mxmlSaveFd</a></h3> +-<p class="description">Save an XML tree to a file descriptor.</p> +-<p class="code"> +-int mxmlSaveFd (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- int fd,<br> +- <a href="#mxml_save_cb_t">mxml_save_cb_t</a> cb<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Node to write</dd> +-<dt>fd</dt> +-<dd class="description">File descriptor to write to</dd> +-<dt>cb</dt> +-<dd class="description">Whitespace callback or MXML_NO_CALLBACK</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">0 on success, -1 on error.</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The callback argument specifies a function that returns a whitespace +-string or NULL before and after each element. If MXML_NO_CALLBACK +-is specified, whitespace will only be added before MXML_TEXT nodes +-with leading whitespace and before attribute names inside opening +-element tags.</p> +-<h3 class="function"><a name="mxmlSaveFile">mxmlSaveFile</a></h3> +-<p class="description">Save an XML tree to a file.</p> +-<p class="code"> +-int mxmlSaveFile (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- FILE *fp,<br> +- <a href="#mxml_save_cb_t">mxml_save_cb_t</a> cb<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Node to write</dd> +-<dt>fp</dt> +-<dd class="description">File to write to</dd> +-<dt>cb</dt> +-<dd class="description">Whitespace callback or MXML_NO_CALLBACK</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">0 on success, -1 on error.</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The callback argument specifies a function that returns a whitespace +-string or NULL before and after each element. If MXML_NO_CALLBACK +-is specified, whitespace will only be added before MXML_TEXT nodes +-with leading whitespace and before attribute names inside opening +-element tags.</p> +-<h3 class="function"><a name="mxmlSaveString">mxmlSaveString</a></h3> +-<p class="description">Save an XML node tree to a string.</p> +-<p class="code"> +-int mxmlSaveString (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- char *buffer,<br> +- int bufsize,<br> +- <a href="#mxml_save_cb_t">mxml_save_cb_t</a> cb<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Node to write</dd> +-<dt>buffer</dt> +-<dd class="description">String buffer</dd> +-<dt>bufsize</dt> +-<dd class="description">Size of string buffer</dd> +-<dt>cb</dt> +-<dd class="description">Whitespace callback or MXML_NO_CALLBACK</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">Size of string</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">This function returns the total number of bytes that would be +-required for the string but only copies (bufsize - 1) characters +-into the specified buffer.<br> +-<br> +-The callback argument specifies a function that returns a whitespace +-string or NULL before and after each element. If MXML_NO_CALLBACK +-is specified, whitespace will only be added before MXML_TEXT nodes +-with leading whitespace and before attribute names inside opening +-element tags.</p> +-<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a name="mxmlSetCDATA">mxmlSetCDATA</a></h3> +-<p class="description">Set the element name of a CDATA node.</p> +-<p class="code"> +-int mxmlSetCDATA (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- const char *data<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Node to set</dd> +-<dt>data</dt> +-<dd class="description">New data string</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">0 on success, -1 on failure</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The node is not changed if it is not a CDATA element node. +- +-</p> +-<h3 class="function"><span class="info"> Mini-XML 2.1 </span><a name="mxmlSetCustom">mxmlSetCustom</a></h3> +-<p class="description">Set the data and destructor of a custom data node.</p> +-<p class="code"> +-int mxmlSetCustom (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- void *data,<br> +- <a href="#mxml_custom_destroy_cb_t">mxml_custom_destroy_cb_t</a> destroy<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Node to set</dd> +-<dt>data</dt> +-<dd class="description">New data pointer</dd> +-<dt>destroy</dt> +-<dd class="description">New destructor function</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">0 on success, -1 on failure</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The node is not changed if it is not a custom node. +- +-</p> +-<h3 class="function"><a name="mxmlSetCustomHandlers">mxmlSetCustomHandlers</a></h3> +-<p class="description">Set the handling functions for custom data.</p> +-<p class="code"> +-void mxmlSetCustomHandlers (<br> +- <a href="#mxml_custom_load_cb_t">mxml_custom_load_cb_t</a> load,<br> +- <a href="#mxml_custom_save_cb_t">mxml_custom_save_cb_t</a> save<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>load</dt> +-<dd class="description">Load function</dd> +-<dt>save</dt> +-<dd class="description">Save function</dd> +-</dl> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The load function accepts a node pointer and a data string and must +-return 0 on success and non-zero on error.<br> +-<br> +-The save function accepts a node pointer and must return a malloc'd +-string on success and NULL on error.</p> +-<h3 class="function"><a name="mxmlSetElement">mxmlSetElement</a></h3> +-<p class="description">Set the name of an element node.</p> +-<p class="code"> +-int mxmlSetElement (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- const char *name<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Node to set</dd> +-<dt>name</dt> +-<dd class="description">New name string</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">0 on success, -1 on failure</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The node is not changed if it is not an element node.</p> +-<h3 class="function"><a name="mxmlSetErrorCallback">mxmlSetErrorCallback</a></h3> +-<p class="description">Set the error message callback.</p> +-<p class="code"> +-void mxmlSetErrorCallback (<br> +- <a href="#mxml_error_cb_t">mxml_error_cb_t</a> cb<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>cb</dt> +-<dd class="description">Error callback function</dd> +-</dl> +-<h3 class="function"><a name="mxmlSetInteger">mxmlSetInteger</a></h3> +-<p class="description">Set the value of an integer node.</p> +-<p class="code"> +-int mxmlSetInteger (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- int integer<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Node to set</dd> +-<dt>integer</dt> +-<dd class="description">Integer value</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">0 on success, -1 on failure</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The node is not changed if it is not an integer node.</p> +-<h3 class="function"><a name="mxmlSetOpaque">mxmlSetOpaque</a></h3> +-<p class="description">Set the value of an opaque node.</p> +-<p class="code"> +-int mxmlSetOpaque (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- const char *opaque<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Node to set</dd> +-<dt>opaque</dt> +-<dd class="description">Opaque string</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">0 on success, -1 on failure</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The node is not changed if it is not an opaque node.</p> +-<h3 class="function"><a name="mxmlSetReal">mxmlSetReal</a></h3> +-<p class="description">Set the value of a real number node.</p> +-<p class="code"> +-int mxmlSetReal (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- double real<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Node to set</dd> +-<dt>real</dt> +-<dd class="description">Real number value</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">0 on success, -1 on failure</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The node is not changed if it is not a real number node.</p> +-<h3 class="function"><a name="mxmlSetText">mxmlSetText</a></h3> +-<p class="description">Set the value of a text node.</p> +-<p class="code"> +-int mxmlSetText (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- int whitespace,<br> +- const char *string<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Node to set</dd> +-<dt>whitespace</dt> +-<dd class="description">1 = leading whitespace, 0 = no whitespace</dd> +-<dt>string</dt> +-<dd class="description">String</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">0 on success, -1 on failure</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The node is not changed if it is not a text node.</p> +-<h3 class="function"><a name="mxmlSetTextf">mxmlSetTextf</a></h3> +-<p class="description">Set the value of a text node to a formatted string.</p> +-<p class="code"> +-int mxmlSetTextf (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- int whitespace,<br> +- const char *format,<br> +- ...<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Node to set</dd> +-<dt>whitespace</dt> +-<dd class="description">1 = leading whitespace, 0 = no whitespace</dd> +-<dt>format</dt> +-<dd class="description">Printf-style format string</dd> +-<dt>...</dt> +-<dd class="description">Additional arguments as needed</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">0 on success, -1 on failure</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The node is not changed if it is not a text node.</p> +-<h3 class="function"><span class="info"> Mini-XML 2.3 </span><a name="mxmlSetWrapMargin">mxmlSetWrapMargin</a></h3> +-<p class="description">Set the the wrap margin when saving XML data.</p> +-<p class="code"> +-void mxmlSetWrapMargin (<br> +- int column<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>column</dt> +-<dd class="description">Column for wrapping, 0 to disable wrapping</dd> +-</dl> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">Wrapping is disabled when "column" is 0. +- +-</p> +-<h3 class="function"><a name="mxmlWalkNext">mxmlWalkNext</a></h3> +-<p class="description">Walk to the next logical node in the tree.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlWalkNext (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- <a href="#mxml_node_t">mxml_node_t</a> *top,<br> +- int descend<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Current node</dd> +-<dt>top</dt> +-<dd class="description">Top node</dd> +-<dt>descend</dt> +-<dd class="description">Descend into tree - MXML_DESCEND, MXML_NO_DESCEND, or MXML_DESCEND_FIRST</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">Next node or NULL</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The descend argument controls whether the first child is considered +-to be the next node. The top node argument constrains the walk to +-the node's children.</p> +-<h3 class="function"><a name="mxmlWalkPrev">mxmlWalkPrev</a></h3> +-<p class="description">Walk to the previous logical node in the tree.</p> +-<p class="code"> +-<a href="#mxml_node_t">mxml_node_t</a> *mxmlWalkPrev (<br> +- <a href="#mxml_node_t">mxml_node_t</a> *node,<br> +- <a href="#mxml_node_t">mxml_node_t</a> *top,<br> +- int descend<br> +-);</p> +-<h4 class="parameters">Parameters</h4> +-<dl> +-<dt>node</dt> +-<dd class="description">Current node</dd> +-<dt>top</dt> +-<dd class="description">Top node</dd> +-<dt>descend</dt> +-<dd class="description">Descend into tree - MXML_DESCEND, MXML_NO_DESCEND, or MXML_DESCEND_FIRST</dd> +-</dl> +-<h4 class="returnvalue">Return Value</h4> +-<p class="description">Previous node or NULL</p> +-<h4 class="discussion">Discussion</h4> +-<p class="discussion">The descend argument controls whether the previous node's last child +-is considered to be the previous node. The top node argument constrains +-the walk to the node's children.</p> +-<h2 class="title"><a name="TYPES">Data Types</a></h2> +-<h3 class="typedef"><a name="mxml_attr_t">mxml_attr_t</a></h3> +-<p class="description">An XML element attribute value.</p> +-<p class="code"> +-typedef struct <a href="#mxml_attr_s">mxml_attr_s</a> mxml_attr_t; +-</p> +-<h3 class="typedef"><a name="mxml_custom_destroy_cb_t">mxml_custom_destroy_cb_t</a></h3> +-<p class="description">Custom data destructor</p> +-<p class="code"> +-typedef void (*mxml_custom_destroy_cb_t)(void *); +-</p> +-<h3 class="typedef"><a name="mxml_custom_load_cb_t">mxml_custom_load_cb_t</a></h3> +-<p class="description">Custom data load callback function</p> +-<p class="code"> +-typedef int (*mxml_custom_load_cb_t)(<a href="#mxml_node_t">mxml_node_t</a> *, const char *); +-</p> +-<h3 class="typedef"><a name="mxml_custom_save_cb_t">mxml_custom_save_cb_t</a></h3> +-<p class="description">Custom data save callback function</p> +-<p class="code"> +-typedef char *(*mxml_custom_save_cb_t)(<a href="#mxml_node_t">mxml_node_t</a> *); +-</p> +-<h3 class="typedef"><span class="info"> Mini-XML 2.1 </span><a name="mxml_custom_t">mxml_custom_t</a></h3> +-<p class="description">An XML custom value. </p> +-<p class="code"> +-typedef struct <a href="#mxml_custom_s">mxml_custom_s</a> mxml_custom_t; +-</p> +-<h3 class="typedef"><a name="mxml_element_t">mxml_element_t</a></h3> +-<p class="description">An XML element value.</p> +-<p class="code"> +-typedef struct <a href="#mxml_element_s">mxml_element_s</a> mxml_element_t; +-</p> +-<h3 class="typedef"><a name="mxml_entity_cb_t">mxml_entity_cb_t</a></h3> +-<p class="description">Entity callback function</p> +-<p class="code"> +-typedef int (*mxml_entity_cb_t)(const char *); +-</p> +-<h3 class="typedef"><a name="mxml_error_cb_t">mxml_error_cb_t</a></h3> +-<p class="description">Error callback function</p> +-<p class="code"> +-typedef void (*mxml_error_cb_t)(const char *); +-</p> +-<h3 class="typedef"><a name="mxml_index_t">mxml_index_t</a></h3> +-<p class="description">An XML node index.</p> +-<p class="code"> +-typedef struct <a href="#mxml_index_s">mxml_index_s</a> mxml_index_t; +-</p> +-<h3 class="typedef"><a name="mxml_load_cb_t">mxml_load_cb_t</a></h3> +-<p class="description">Load callback function</p> +-<p class="code"> +-typedef <a href="#mxml_type_t">mxml_type_t</a> (*mxml_load_cb_t)(<a href="#mxml_node_t">mxml_node_t</a> *); +-</p> +-<h3 class="typedef"><a name="mxml_node_t">mxml_node_t</a></h3> +-<p class="description">An XML node.</p> +-<p class="code"> +-typedef struct <a href="#mxml_node_s">mxml_node_s</a> mxml_node_t; +-</p> +-<h3 class="typedef"><a name="mxml_save_cb_t">mxml_save_cb_t</a></h3> +-<p class="description">Save callback function</p> +-<p class="code"> +-typedef const char *(*mxml_save_cb_t)(<a href="#mxml_node_t">mxml_node_t</a> *, int); +-</p> +-<h3 class="typedef"><a name="mxml_sax_cb_t">mxml_sax_cb_t</a></h3> +-<p class="description">SAX callback function</p> +-<p class="code"> +-typedef void (*mxml_sax_cb_t)(<a href="#mxml_node_t">mxml_node_t</a> *, mxml_sax_event_t, void *); +-</p> +-<h3 class="typedef"><a name="mxml_sax_event_t">mxml_sax_event_t</a></h3> +-<p class="description">SAX event type.</p> +-<p class="code"> +-typedef enum <a href="#mxml_sax_event_e">mxml_sax_event_e</a> mxml_sax_event_t; +-</p> +-<h3 class="typedef"><a name="mxml_text_t">mxml_text_t</a></h3> +-<p class="description">An XML text value.</p> +-<p class="code"> +-typedef struct <a href="#mxml_text_s">mxml_text_s</a> mxml_text_t; +-</p> +-<h3 class="typedef"><a name="mxml_type_t">mxml_type_t</a></h3> +-<p class="description">The XML node type.</p> +-<p class="code"> +-typedef enum <a href="#mxml_type_e">mxml_type_e</a> mxml_type_t; +-</p> +-<h3 class="typedef"><a name="mxml_value_t">mxml_value_t</a></h3> +-<p class="description">An XML node value.</p> +-<p class="code"> +-typedef union <a href="#mxml_value_u">mxml_value_u</a> mxml_value_t; +-</p> +-<h2 class="title"><a name="STRUCTURES">Structures</a></h2> +-<h3 class="struct"><a name="mxml_attr_s">mxml_attr_s</a></h3> +-<p class="description">An XML element attribute value.</p> +-<p class="code">struct mxml_attr_s {<br> +- char *name;<br> +- char *value;<br> +-};</p> +-<h4 class="members">Members</h4> +-<dl> +-<dt>name </dt> +-<dd class="description">Attribute name</dd> +-<dt>value </dt> +-<dd class="description">Attribute value</dd> +-</dl> +-<h3 class="struct"><span class="info"> Mini-XML 2.1 </span><a name="mxml_custom_s">mxml_custom_s</a></h3> +-<p class="description">An XML custom value. </p> +-<p class="code">struct mxml_custom_s {<br> +- void *data;<br> +- <a href="#mxml_custom_destroy_cb_t">mxml_custom_destroy_cb_t</a> destroy;<br> +-};</p> +-<h4 class="members">Members</h4> +-<dl> +-<dt>data </dt> +-<dd class="description">Pointer to (allocated) custom data</dd> +-<dt>destroy </dt> +-<dd class="description">Pointer to destructor function</dd> +-</dl> +-<h3 class="struct"><a name="mxml_element_s">mxml_element_s</a></h3> +-<p class="description">An XML element value.</p> +-<p class="code">struct mxml_element_s {<br> +- <a href="#mxml_attr_t">mxml_attr_t</a> *attrs;<br> +- char *name;<br> +- int num_attrs;<br> +-};</p> +-<h4 class="members">Members</h4> +-<dl> +-<dt>attrs </dt> +-<dd class="description">Attributes</dd> +-<dt>name </dt> +-<dd class="description">Name of element</dd> +-<dt>num_attrs </dt> +-<dd class="description">Number of attributes</dd> +-</dl> +-<h3 class="struct"><a name="mxml_index_s">mxml_index_s</a></h3> +-<p class="description">An XML node index.</p> +-<p class="code">struct mxml_index_s {<br> +- int alloc_nodes;<br> +- char *attr;<br> +- int cur_node;<br> +- <a href="#mxml_node_t">mxml_node_t</a> **nodes;<br> +- int num_nodes;<br> +-};</p> +-<h4 class="members">Members</h4> +-<dl> +-<dt>alloc_nodes </dt> +-<dd class="description">Allocated nodes in index</dd> +-<dt>attr </dt> +-<dd class="description">Attribute used for indexing or NULL</dd> +-<dt>cur_node </dt> +-<dd class="description">Current node</dd> +-<dt>nodes </dt> +-<dd class="description">Node array</dd> +-<dt>num_nodes </dt> +-<dd class="description">Number of nodes in index</dd> +-</dl> +-<h3 class="struct"><a name="mxml_node_s">mxml_node_s</a></h3> +-<p class="description">An XML node.</p> +-<p class="code">struct mxml_node_s {<br> +- struct <a href="#mxml_node_s">mxml_node_s</a> *child;<br> +- struct <a href="#mxml_node_s">mxml_node_s</a> *last_child;<br> +- struct <a href="#mxml_node_s">mxml_node_s</a> *next;<br> +- struct <a href="#mxml_node_s">mxml_node_s</a> *parent;<br> +- struct <a href="#mxml_node_s">mxml_node_s</a> *prev;<br> +- int ref_count;<br> +- <a href="#mxml_type_t">mxml_type_t</a> type;<br> +- void *user_data;<br> +- <a href="#mxml_value_t">mxml_value_t</a> value;<br> +-};</p> +-<h4 class="members">Members</h4> +-<dl> +-<dt>child </dt> +-<dd class="description">First child node</dd> +-<dt>last_child </dt> +-<dd class="description">Last child node</dd> +-<dt>next </dt> +-<dd class="description">Next node under same parent</dd> +-<dt>parent </dt> +-<dd class="description">Parent node</dd> +-<dt>prev </dt> +-<dd class="description">Previous node under same parent</dd> +-<dt>ref_count </dt> +-<dd class="description">Use count</dd> +-<dt>type </dt> +-<dd class="description">Node type</dd> +-<dt>user_data </dt> +-<dd class="description">User data</dd> +-<dt>value </dt> +-<dd class="description">Node value</dd> +-</dl> +-<h3 class="struct"><a name="mxml_text_s">mxml_text_s</a></h3> +-<p class="description">An XML text value.</p> +-<p class="code">struct mxml_text_s {<br> +- char *string;<br> +- int whitespace;<br> +-};</p> +-<h4 class="members">Members</h4> +-<dl> +-<dt>string </dt> +-<dd class="description">Fragment string</dd> +-<dt>whitespace </dt> +-<dd class="description">Leading whitespace?</dd> +-</dl> +-<h2 class="title"><a name="UNIONS">Unions</a></h2> +-<h3 class="union"><a name="mxml_value_u">mxml_value_u</a></h3> +-<p class="description">An XML node value.</p> +-<p class="code">union mxml_value_u {<br> +- <a href="#mxml_custom_t">mxml_custom_t</a> custom;<br> +- <a href="#mxml_element_t">mxml_element_t</a> element;<br> +- int integer;<br> +- char *opaque;<br> +- double real;<br> +- <a href="#mxml_text_t">mxml_text_t</a> text;<br> +-};</p> +-<h4 class="members">Members</h4> +-<dl> +-<dt>custom <span class="info"> Mini-XML 2.1 </span></dt> +-<dd class="description">Custom data </dd> +-<dt>element </dt> +-<dd class="description">Element</dd> +-<dt>integer </dt> +-<dd class="description">Integer number</dd> +-<dt>opaque </dt> +-<dd class="description">Opaque string</dd> +-<dt>real </dt> +-<dd class="description">Real number</dd> +-<dt>text </dt> +-<dd class="description">Text fragment</dd> +-</dl> +-<h2 class="title"><a name="ENUMERATIONS">Constants</a></h2> +-<h3 class="enumeration"><a name="mxml_sax_event_e">mxml_sax_event_e</a></h3> +-<p class="description">SAX event type.</p> +-<h4 class="constants">Constants</h4> +-<dl> +-<dt>MXML_SAX_CDATA </dt> +-<dd class="description">CDATA node</dd> +-<dt>MXML_SAX_COMMENT </dt> +-<dd class="description">Comment node</dd> +-<dt>MXML_SAX_DATA </dt> +-<dd class="description">Data node</dd> +-<dt>MXML_SAX_DIRECTIVE </dt> +-<dd class="description">Processing directive node</dd> +-<dt>MXML_SAX_ELEMENT_CLOSE </dt> +-<dd class="description">Element closed</dd> +-<dt>MXML_SAX_ELEMENT_OPEN </dt> +-<dd class="description">Element opened</dd> +-</dl> +-<h3 class="enumeration"><a name="mxml_type_e">mxml_type_e</a></h3> +-<p class="description">The XML node type.</p> +-<h4 class="constants">Constants</h4> +-<dl> +-<dt>MXML_CUSTOM <span class="info"> Mini-XML 2.1 </span></dt> +-<dd class="description">Custom data </dd> +-<dt>MXML_ELEMENT </dt> +-<dd class="description">XML element with attributes</dd> +-<dt>MXML_IGNORE <span class="info"> Mini-XML 2.3 </span></dt> +-<dd class="description">Ignore/throw away node </dd> +-<dt>MXML_INTEGER </dt> +-<dd class="description">Integer value</dd> +-<dt>MXML_OPAQUE </dt> +-<dd class="description">Opaque string</dd> +-<dt>MXML_REAL </dt> +-<dd class="description">Real value</dd> +-<dt>MXML_TEXT </dt> +-<dd class="description">Text fragment</dd> +-</dl> +-</div> +-</body> +-</html> diff --git a/package/mxml/patches/patch-mxmldoc_c b/package/mxml/patches/patch-mxmldoc_c new file mode 100644 index 000000000..15d520b05 --- /dev/null +++ b/package/mxml/patches/patch-mxmldoc_c @@ -0,0 +1,11 @@ +--- mxml-2.6.orig/mxmldoc.c 2009-05-05 15:38:00.000000000 +0200 ++++ mxml-2.6/mxmldoc.c 2011-05-10 12:52:35.000000000 +0200 +@@ -57,7 +57,7 @@ + #ifndef WIN32 + # include <dirent.h> + # include <unistd.h> +-# include <spawn.h> ++//# include <spawn.h> + # include <sys/wait.h> + extern char **environ; + #endif /* !WIN32 */ |