mirror of
				https://gitlab.gnome.org/GNOME/libxml2.git
				synced 2025-10-24 13:33:01 +03:00 
			
		
		
		
	Makefile.am:
* Don't use @VAR@, use $(VAR). Autoconf's AC_SUBST provides us the Make
   variable, it allows overriding the value at the command line, and
   (notably) it avoids a Make parse error in the libxml2_la_LDFLAGS
   assignment when @MODULE_PLATFORM_LIBS@ is empty
* Changed how the THREADS_W32 mechanism switches the build between
   testThreads.c and testThreadsWin32.c as appropriate; using AM_CONDITIONAL
   allows this to work cleanly and plays well with dependencies
* testapi.c should be specified as BUILT_SOURCES
* Create symlinks to the test/ and result/ subdirs so that the runtests
   target is usable in out-of-source-tree builds
* Don't do MAKEFLAGS+=--silent as this is not portable to non-GNU Makes
* Fixed incorrect find(1) syntax in the "cleanup" rule, and doing "rm -f"
   instead of just "rm" is good form
* (DIST)CLEANFILES needed a bit more coverage to allow "make distcheck" to
   pass
configure.in:
* Need AC_PROG_LN_S to create test/ and result/ symlinks in Makefile.am
* AC_LIBTOOL_WIN32_DLL and AM_PROG_LIBTOOL are obsolete; these have been
   superceded by LT_INIT
* Don't rebuild docs by default, as this requires GNU Make (as
   implemented)
* Check for uint32_t as some platforms don't provide it
* Check for some more functions, and undefine HAVE_MMAP if we don't also
   HAVE_MUNMAP (one system I tested on actually needed this)
* Changed THREADS_W32 from a filename insert into an Automake conditional
* The "Copyright" file will not be in the current directory if builddir !=
   srcdir
doc/Makefile.am:
* EXTRA_DIST cannot use wildcards when they refer to generated files; this
   breaks dependencies. What I did was define EXTRA_DIST_wc, which uses GNU
   Make $(wildcard) directives to build up a list of files, and EXTRA_DIST,
   as a literal expansion of EXTRA_DIST_wc. I also added a new rule,
   "check-extra-dist", to simplify checking that the two variables are
   equivalent. (Note that this works only when builddir == srcdir)
   (I can implement this differently if desired; this is just one way of
   doing it)
* Don't define an "all" target; this steps on Automake's toes
* Fixed up the "libxml2-api.xml ..." rule by using $(wildcard) for
   dependencies (as Make doesn't process the wildcards otherwise) and
   qualifying appropriate files with $(srcdir)
   (Note that $(srcdir) is not needed in the dependencies, thanks to VPATH,
   which we can count on as this is GNU-Make-only code anyway)
doc/devhelp/Makefile.am:
* Qualified appropriate files with $(srcdir)
* Added an "uninstall-local" rule so that "make distcheck" passes
doc/examples/Makefile.am:
* Rather than use a wildcard that doesn't work, use a substitution that
   most Make programs can handle
doc/examples/index.py:
* Do the same here
include/libxml/nanoftp.h:
* Some platforms (e.g. MSVC 6) already #define INVALID_SOCKET:
     user@host:/cygdrive/c/Program Files/Microsoft Visual Studio/VC98/\
     Include$ grep -R INVALID_SOCKET .
     ./WINSOCK.H:#define INVALID_SOCKET  (SOCKET)(~0)
     ./WINSOCK2.H:#define INVALID_SOCKET  (SOCKET)(~0)
include/libxml/xmlversion.h.in:
* Support ancient GCCs (I was actually able to build the library with 2.5
   but for this bit)
python/Makefile.am:
* Expanded CLEANFILES to allow "make distcheck" to pass
python/tests/Makefile.am:
* Define CLEANFILES instead of a "clean" rule, and added tmp.xml to allow
   "make distcheck" to pass
testRelax.c:
* Use HAVE_MMAP instead of the less explicit HAVE_SYS_MMAN_H (as some
   systems have the header but not the function)
testSchemas.c:
* Use HAVE_MMAP instead of the less explicit HAVE_SYS_MMAN_H
testapi.c:
* Don't use putenv() if it's not available
threads.c:
* This fixes the following build error on Solaris 8:
     libtool: compile:  cc -DHAVE_CONFIG_H -I. -I./include -I./include \
     -D_REENTRANT -D__EXTENSIONS__ -D_REENTRANT -Dsparc -Xa -mt -v \
     -xarch=v9 -xcrossfile -xO5 -c threads.c  -KPIC -DPIC -o threads.o
     "threads.c", line 442: controlling expressions must have scalar type
     "threads.c", line 512: controlling expressions must have scalar type
     cc: acomp failed for threads.c
     *** Error code 1
trio.c:
* Define isascii() if the system doesn't provide it
trio.h:
* The trio library's HAVE_CONFIG_H header is not the same as LibXML2's
   HAVE_CONFIG_H header; this change is needed to avoid a double-inclusion
win32/configure.js:
* Added support for the LZMA compression option
win32/Makefile.{bcb,mingw,msvc}:
* Added appropriate bits to support WITH_LZMA=1
* Install the header files under $(INCPREFIX)\libxml2\libxml instead of
   $(INCPREFIX)\libxml, to mirror the install location on Unix+Autotools
xml2-config.in:
* @MODULE_PLATFORM_LIBS@ (usually "-ldl") needs to be in there in order for
   `xml2-config --libs` to provide a complete set of dependencies
xmllint.c:
* Use HAVE_MMAP instead of the less-explicit HAVE_SYS_MMAN_H
		
	
		
			
				
	
	
		
			217 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			217 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*************************************************************************
 | |
|  *
 | |
|  * $Id$
 | |
|  *
 | |
|  * Copyright (C) 1998 Bjorn Reese and Daniel Stenberg.
 | |
|  *
 | |
|  * Permission to use, copy, modify, and distribute this software for any
 | |
|  * purpose with or without fee is hereby granted, provided that the above
 | |
|  * copyright notice and this permission notice appear in all copies.
 | |
|  *
 | |
|  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
 | |
|  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
 | |
|  * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
 | |
|  * CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
 | |
|  *
 | |
|  *************************************************************************
 | |
|  *
 | |
|  * http://ctrio.sourceforge.net/
 | |
|  *
 | |
|  ************************************************************************/
 | |
| 
 | |
| #ifndef TRIO_TRIO_H
 | |
| #define TRIO_TRIO_H
 | |
| 
 | |
| #if !defined(WITHOUT_TRIO)
 | |
| 
 | |
| /*
 | |
|  * Use autoconf defines if present. Packages using trio must define
 | |
|  * HAVE_CONFIG_H as a compiler option themselves.
 | |
|  */
 | |
| #if defined(TRIO_HAVE_CONFIG_H)
 | |
| # include "config.h"
 | |
| #endif
 | |
| 
 | |
| #include "triodef.h"
 | |
| 
 | |
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| #if defined(TRIO_COMPILER_ANCIENT)
 | |
| # include <varargs.h>
 | |
| #else
 | |
| # include <stdarg.h>
 | |
| #endif
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /*
 | |
|  * Error codes.
 | |
|  *
 | |
|  * Remember to add a textual description to trio_strerror.
 | |
|  */
 | |
| enum {
 | |
|   TRIO_EOF      = 1,
 | |
|   TRIO_EINVAL   = 2,
 | |
|   TRIO_ETOOMANY = 3,
 | |
|   TRIO_EDBLREF  = 4,
 | |
|   TRIO_EGAP     = 5,
 | |
|   TRIO_ENOMEM   = 6,
 | |
|   TRIO_ERANGE   = 7,
 | |
|   TRIO_ERRNO    = 8,
 | |
|   TRIO_ECUSTOM  = 9
 | |
| };
 | |
| 
 | |
| /* Error macros */
 | |
| #define TRIO_ERROR_CODE(x) ((-(x)) & 0x00FF)
 | |
| #define TRIO_ERROR_POSITION(x) ((-(x)) >> 8)
 | |
| #define TRIO_ERROR_NAME(x) trio_strerror(x)
 | |
| 
 | |
| typedef int (*trio_outstream_t) TRIO_PROTO((trio_pointer_t, int));
 | |
| typedef int (*trio_instream_t) TRIO_PROTO((trio_pointer_t));
 | |
| 
 | |
| TRIO_CONST char *trio_strerror TRIO_PROTO((int));
 | |
| 
 | |
| /*************************************************************************
 | |
|  * Print Functions
 | |
|  */
 | |
| 
 | |
| int trio_printf TRIO_PROTO((TRIO_CONST char *format, ...));
 | |
| int trio_vprintf TRIO_PROTO((TRIO_CONST char *format, va_list args));
 | |
| int trio_printfv TRIO_PROTO((TRIO_CONST char *format, void **args));
 | |
| 
 | |
| int trio_fprintf TRIO_PROTO((FILE *file, TRIO_CONST char *format, ...));
 | |
| int trio_vfprintf TRIO_PROTO((FILE *file, TRIO_CONST char *format, va_list args));
 | |
| int trio_fprintfv TRIO_PROTO((FILE *file, TRIO_CONST char *format, void **args));
 | |
| 
 | |
| int trio_dprintf TRIO_PROTO((int fd, TRIO_CONST char *format, ...));
 | |
| int trio_vdprintf TRIO_PROTO((int fd, TRIO_CONST char *format, va_list args));
 | |
| int trio_dprintfv TRIO_PROTO((int fd, TRIO_CONST char *format, void **args));
 | |
| 
 | |
| int trio_cprintf TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure,
 | |
| 			     TRIO_CONST char *format, ...));
 | |
| int trio_vcprintf TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure,
 | |
| 			      TRIO_CONST char *format, va_list args));
 | |
| int trio_cprintfv TRIO_PROTO((trio_outstream_t stream, trio_pointer_t closure,
 | |
| 			      TRIO_CONST char *format, void **args));
 | |
| 
 | |
| int trio_sprintf TRIO_PROTO((char *buffer, TRIO_CONST char *format, ...));
 | |
| int trio_vsprintf TRIO_PROTO((char *buffer, TRIO_CONST char *format, va_list args));
 | |
| int trio_sprintfv TRIO_PROTO((char *buffer, TRIO_CONST char *format, void **args));
 | |
| 
 | |
| int trio_snprintf TRIO_PROTO((char *buffer, size_t max, TRIO_CONST char *format, ...));
 | |
| int trio_vsnprintf TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format,
 | |
| 		   va_list args));
 | |
| int trio_snprintfv TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format,
 | |
| 		   void **args));
 | |
| 
 | |
| int trio_snprintfcat TRIO_PROTO((char *buffer, size_t max, TRIO_CONST char *format, ...));
 | |
| int trio_vsnprintfcat TRIO_PROTO((char *buffer, size_t bufferSize, TRIO_CONST char *format,
 | |
|                       va_list args));
 | |
| 
 | |
| char *trio_aprintf TRIO_PROTO((TRIO_CONST char *format, ...));
 | |
| char *trio_vaprintf TRIO_PROTO((TRIO_CONST char *format, va_list args));
 | |
| 
 | |
| int trio_asprintf TRIO_PROTO((char **ret, TRIO_CONST char *format, ...));
 | |
| int trio_vasprintf TRIO_PROTO((char **ret, TRIO_CONST char *format, va_list args));
 | |
| 
 | |
| /*************************************************************************
 | |
|  * Scan Functions
 | |
|  */
 | |
| int trio_scanf TRIO_PROTO((TRIO_CONST char *format, ...));
 | |
| int trio_vscanf TRIO_PROTO((TRIO_CONST char *format, va_list args));
 | |
| int trio_scanfv TRIO_PROTO((TRIO_CONST char *format, void **args));
 | |
| 
 | |
| int trio_fscanf TRIO_PROTO((FILE *file, TRIO_CONST char *format, ...));
 | |
| int trio_vfscanf TRIO_PROTO((FILE *file, TRIO_CONST char *format, va_list args));
 | |
| int trio_fscanfv TRIO_PROTO((FILE *file, TRIO_CONST char *format, void **args));
 | |
| 
 | |
| int trio_dscanf TRIO_PROTO((int fd, TRIO_CONST char *format, ...));
 | |
| int trio_vdscanf TRIO_PROTO((int fd, TRIO_CONST char *format, va_list args));
 | |
| int trio_dscanfv TRIO_PROTO((int fd, TRIO_CONST char *format, void **args));
 | |
| 
 | |
| int trio_cscanf TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure,
 | |
| 			    TRIO_CONST char *format, ...));
 | |
| int trio_vcscanf TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure,
 | |
| 			     TRIO_CONST char *format, va_list args));
 | |
| int trio_cscanfv TRIO_PROTO((trio_instream_t stream, trio_pointer_t closure,
 | |
| 			     TRIO_CONST char *format, void **args));
 | |
| 
 | |
| int trio_sscanf TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, ...));
 | |
| int trio_vsscanf TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, va_list args));
 | |
| int trio_sscanfv TRIO_PROTO((TRIO_CONST char *buffer, TRIO_CONST char *format, void **args));
 | |
| 
 | |
| /*************************************************************************
 | |
|  * Locale Functions
 | |
|  */
 | |
| void trio_locale_set_decimal_point TRIO_PROTO((char *decimalPoint));
 | |
| void trio_locale_set_thousand_separator TRIO_PROTO((char *thousandSeparator));
 | |
| void trio_locale_set_grouping TRIO_PROTO((char *grouping));
 | |
| 
 | |
| /*************************************************************************
 | |
|  * Renaming
 | |
|  */
 | |
| #ifdef TRIO_REPLACE_STDIO
 | |
| /* Replace the <stdio.h> functions */
 | |
| #ifndef HAVE_PRINTF
 | |
| # define printf trio_printf
 | |
| #endif
 | |
| #ifndef HAVE_VPRINTF
 | |
| # define vprintf trio_vprintf
 | |
| #endif
 | |
| #ifndef HAVE_FPRINTF
 | |
| # define fprintf trio_fprintf
 | |
| #endif
 | |
| #ifndef HAVE_VFPRINTF
 | |
| # define vfprintf trio_vfprintf
 | |
| #endif
 | |
| #ifndef HAVE_SPRINTF
 | |
| # define sprintf trio_sprintf
 | |
| #endif
 | |
| #ifndef HAVE_VSPRINTF
 | |
| # define vsprintf trio_vsprintf
 | |
| #endif
 | |
| #ifndef HAVE_SNPRINTF
 | |
| # define snprintf trio_snprintf
 | |
| #endif
 | |
| #ifndef HAVE_VSNPRINTF
 | |
| # define vsnprintf trio_vsnprintf
 | |
| #endif
 | |
| #ifndef HAVE_SCANF
 | |
| # define scanf trio_scanf
 | |
| #endif
 | |
| #ifndef HAVE_VSCANF
 | |
| # define vscanf trio_vscanf
 | |
| #endif
 | |
| #ifndef HAVE_FSCANF
 | |
| # define fscanf trio_fscanf
 | |
| #endif
 | |
| #ifndef HAVE_VFSCANF
 | |
| # define vfscanf trio_vfscanf
 | |
| #endif
 | |
| #ifndef HAVE_SSCANF
 | |
| # define sscanf trio_sscanf
 | |
| #endif
 | |
| #ifndef HAVE_VSSCANF
 | |
| # define vsscanf trio_vsscanf
 | |
| #endif
 | |
| /* These aren't stdio functions, but we make them look similar */
 | |
| #define dprintf trio_dprintf
 | |
| #define vdprintf trio_vdprintf
 | |
| #define aprintf trio_aprintf
 | |
| #define vaprintf trio_vaprintf
 | |
| #define asprintf trio_asprintf
 | |
| #define vasprintf trio_vasprintf
 | |
| #define dscanf trio_dscanf
 | |
| #define vdscanf trio_vdscanf
 | |
| #endif
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| } /* extern "C" */
 | |
| #endif
 | |
| 
 | |
| #endif /* WITHOUT_TRIO */
 | |
| 
 | |
| #endif /* TRIO_TRIO_H */
 |