mirror of
https://github.com/darlinghq/darling-libxml2.git
synced 2025-01-27 05:23:51 +00:00
trio upgrade and integration
This commit is contained in:
parent
34b1b3a81e
commit
70a9da54eb
15
ChangeLog
15
ChangeLog
@ -1,3 +1,18 @@
|
||||
Sat Apr 21 18:27:51 CEST 2001 Bjorn Reese <breese@users.sourceforge.net>
|
||||
|
||||
* libxml.h: new header used only for the compilation of libxml
|
||||
* HTMLparser.c HTMLtree.c SAX.c debugXML.c encoding.c entities.c
|
||||
error.c hash.c list.c nanoftp.c nanohttp.c parser.c
|
||||
parserInternals.c testHTML.c testSAX.c testURI.c testXPath.c
|
||||
tree.c uri.c valid.c xinclude.c xlink.c xmlIO.c xmllint.c
|
||||
xmlmemory.c xpath.c xpointer.c: libxml.h integration
|
||||
* trio.[ch] triop.h strio.[ch]: upgraded to the latest trio
|
||||
baseline (version 1.2 plus a single patch).
|
||||
* xpath.c result/XPath/expr/floats test/XPath/expr/floats: parses
|
||||
scientific notation for numbers. Tests added.
|
||||
* xpath.c: formatting of numbers changed to use sprintf
|
||||
(contribution from William Brack)
|
||||
|
||||
Sat Apr 21 16:12:59 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
|
||||
|
||||
* valid.c: cleanup, more useful debugging
|
||||
|
10
HTMLparser.c
10
HTMLparser.c
@ -6,15 +6,9 @@
|
||||
* Daniel.Veillard@w3.org
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <libxml/xmlversion.h>
|
||||
#include "libxml.h"
|
||||
#ifdef LIBXML_HTML_ENABLED
|
||||
#include <stdio.h>
|
||||
|
||||
#include <string.h>
|
||||
#ifdef HAVE_CTYPE_H
|
||||
#include <ctype.h>
|
||||
|
@ -7,16 +7,9 @@
|
||||
*/
|
||||
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <libxml/xmlversion.h>
|
||||
#include "libxml.h"
|
||||
#ifdef LIBXML_HTML_ENABLED
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h> /* for memset() only ! */
|
||||
|
||||
#ifdef HAVE_CTYPE_H
|
||||
|
7
SAX.c
7
SAX.c
@ -7,12 +7,7 @@
|
||||
*/
|
||||
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include "libxml.h"
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <libxml/xmlmemory.h>
|
||||
|
@ -7,16 +7,9 @@
|
||||
* Daniel Veillard <Daniel.Veillard@w3.org>
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <libxml/xmlversion.h>
|
||||
#include "libxml.h"
|
||||
#ifdef LIBXML_DEBUG_ENABLED
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#ifdef HAVE_STDLIB_H
|
||||
#include <stdlib.h>
|
||||
|
@ -20,13 +20,8 @@
|
||||
* Daniel.Veillard@w3.org
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
#include "libxml.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef HAVE_CTYPE_H
|
||||
@ -35,7 +30,6 @@
|
||||
#ifdef HAVE_STDLIB_H
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
#include <libxml/xmlversion.h>
|
||||
#ifdef LIBXML_ICONV_ENABLED
|
||||
#ifdef HAVE_ERRNO_H
|
||||
#include <errno.h>
|
||||
|
@ -6,13 +6,8 @@
|
||||
* Daniel.Veillard@w3.org
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
#include "libxml.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#ifdef HAVE_STDLIB_H
|
||||
#include <stdlib.h>
|
||||
|
7
error.c
7
error.c
@ -6,13 +6,8 @@
|
||||
* Daniel Veillard <Daniel.Veillard@w3.org>
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
#include "libxml.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <libxml/parser.h>
|
||||
#include <libxml/xmlerror.h>
|
||||
|
8
hash.c
8
hash.c
@ -14,14 +14,10 @@
|
||||
* MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND
|
||||
* CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.
|
||||
*
|
||||
* Author: bjorn.reese@systematic.dk
|
||||
* Author: breese@users.sourceforge.net
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
#include "libxml.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <libxml/hash.h>
|
||||
|
27
libxml.h
Normal file
27
libxml.h
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* libxml.h: internal header only used during the compilation of libxml
|
||||
*
|
||||
* See COPYRIGHT for the status of this software
|
||||
*
|
||||
* Author: breese@users.sourceforge.net
|
||||
*/
|
||||
|
||||
#ifndef __XML_LIBXML_H__
|
||||
#define __XML_LIBXML_H__
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <libxml/xmlversion.h>
|
||||
|
||||
#ifdef WITHOUT_TRIO
|
||||
#include <stdio.h>
|
||||
#else
|
||||
#define TRIO_REPLACE_STDIO
|
||||
#include "trio.h"
|
||||
#endif
|
||||
|
||||
#endif /* ! __XML_LIBXML_H__ */
|
6
list.c
6
list.c
@ -15,11 +15,7 @@
|
||||
* Author: Gary.Pennington@uk.sun.com
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
#include "libxml.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
14
nanoftp.c
14
nanoftp.c
@ -12,19 +12,19 @@
|
||||
#define HAVE_NETINET_IN_H
|
||||
#define HAVE_NETDB_H
|
||||
#define HAVE_SYS_TIME_H
|
||||
#else /* STANDALONE */
|
||||
#ifdef WIN32
|
||||
#define INCLUDE_WINSOCK
|
||||
#include "win32config.h"
|
||||
#include <libxml/xmlversion.h>
|
||||
#ifdef WITHOUT_TRIO
|
||||
#include <stdio.h>
|
||||
#else
|
||||
#include "config.h"
|
||||
#define TRIO_REPLACE_STDIO
|
||||
#include "trio.h"
|
||||
#endif
|
||||
#else /* STANDALONE */
|
||||
#include "libxml.h"
|
||||
#endif /* STANDALONE */
|
||||
|
||||
#include <libxml/xmlversion.h>
|
||||
|
||||
#ifdef LIBXML_FTP_ENABLED
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef HAVE_STDLIB_H
|
||||
|
10
nanohttp.c
10
nanohttp.c
@ -14,17 +14,9 @@
|
||||
/* TODO add compression support, Send the Accept- , and decompress on the
|
||||
fly with ZLIB if found at compile-time */
|
||||
|
||||
#ifdef WIN32
|
||||
#define INCLUDE_WINSOCK
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <libxml/xmlversion.h>
|
||||
#include "libxml.h"
|
||||
|
||||
#ifdef LIBXML_HTTP_ENABLED
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef HAVE_STDLIB_H
|
||||
|
5
parser.c
5
parser.c
@ -33,15 +33,14 @@
|
||||
* and xmlDoValidityCheckingDefaultValue for VMS
|
||||
*/
|
||||
|
||||
#include "libxml.h"
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#define XML_DIR_SEP '\\'
|
||||
#else
|
||||
#include "config.h"
|
||||
#define XML_DIR_SEP '/'
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <libxml/xmlmemory.h>
|
||||
|
@ -7,15 +7,14 @@
|
||||
* Daniel.Veillard@w3.org
|
||||
*/
|
||||
|
||||
#include "libxml.h"
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#define XML_DIR_SEP '\\'
|
||||
#else
|
||||
#include "config.h"
|
||||
#define XML_DIR_SEP '/'
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#ifdef HAVE_CTYPE_H
|
||||
#include <ctype.h>
|
||||
|
@ -15,6 +15,14 @@ Object is a number : 1.23
|
||||
Expression: 0.123
|
||||
Object is a number : 0.123
|
||||
|
||||
========================
|
||||
Expression: 1.23e3
|
||||
Object is a number : 1230
|
||||
|
||||
========================
|
||||
Expression: 1.23e-3
|
||||
Object is a number : 0.00123
|
||||
|
||||
========================
|
||||
Expression: 1 div 0
|
||||
Object is a number : inf
|
||||
|
16
strio.c
16
strio.c
@ -15,12 +15,9 @@
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
/* DV for libxml */
|
||||
#include <libxml/xmlversion.h>
|
||||
#ifdef WITH_TRIO
|
||||
|
||||
/* FIXME
|
||||
* StrToLongDouble
|
||||
/*
|
||||
* TODO
|
||||
* - StrToLongDouble
|
||||
*/
|
||||
|
||||
static const char rcsid[] = "@(#)$Id$";
|
||||
@ -389,9 +386,9 @@ char *StrSubstringMax(const char *string, size_t max, const char *find)
|
||||
assert(VALID(find));
|
||||
|
||||
size = StrLength(find);
|
||||
if (size >= max)
|
||||
if (size <= max)
|
||||
{
|
||||
for (count = 0; count > max - size; count++)
|
||||
for (count = 0; count <= max - size; count++)
|
||||
{
|
||||
if (StrEqualMax(find, size, &string[count]))
|
||||
{
|
||||
@ -563,6 +560,3 @@ int StrToUpper(char *target)
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
/* DV for libxml */
|
||||
#endif /* WITH_TRIO */
|
||||
|
13
strio.h
13
strio.h
@ -15,13 +15,16 @@
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
#ifndef H_STRIO
|
||||
#define H_STRIO
|
||||
#ifndef TRIO_STRIO_H
|
||||
#define TRIO_STRIO_H
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include "assert.h"
|
||||
#ifndef DEBUG
|
||||
# define NDEBUG
|
||||
#endif
|
||||
#include <assert.h>
|
||||
|
||||
/*
|
||||
* StrAppend(target, source)
|
||||
@ -122,7 +125,7 @@
|
||||
enum {
|
||||
STRIO_HASH_NONE = 0,
|
||||
STRIO_HASH_PLAIN,
|
||||
STRIO_HASH_TWOSIGNED
|
||||
STRIO_HASH_TWOSIGNED,
|
||||
};
|
||||
|
||||
#if !defined(DEBUG) || defined(__DECC)
|
||||
@ -213,4 +216,4 @@ float StrToFloat(const char *source, const char **target);
|
||||
double StrToDouble(const char *source, const char **target);
|
||||
int StrToUpper(char *target);
|
||||
|
||||
#endif /* H_STRIO */
|
||||
#endif /* TRIO_STRIO_H */
|
||||
|
@ -2,6 +2,8 @@
|
||||
123
|
||||
1.23
|
||||
0.123
|
||||
1.23e3
|
||||
1.23e-3
|
||||
1 div 0
|
||||
-1 div 0
|
||||
0 div 0
|
||||
|
13
testHTML.c
13
testHTML.c
@ -6,17 +6,14 @@
|
||||
* Daniel.Veillard@w3.org
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#undef LIBXML_DLL_IMPORT
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
#include "libxml.h"
|
||||
|
||||
#include <libxml/xmlversion.h>
|
||||
#ifdef LIBXML_HTML_ENABLED
|
||||
|
||||
#include <stdio.h>
|
||||
#ifdef WIN32
|
||||
#undef LIBXML_DLL_IMPORT
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
|
@ -6,14 +6,12 @@
|
||||
* Daniel.Veillard@w3.org
|
||||
*/
|
||||
|
||||
#include "libxml.h"
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#undef LIBXML_DLL_IMPORT
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
|
@ -6,18 +6,12 @@
|
||||
* Daniel.Veillard@w3.org
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
#include "libxml.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include <libxml/xmlversion.h>
|
||||
#include <libxml/xmlmemory.h>
|
||||
#include <libxml/uri.h>
|
||||
|
||||
|
@ -6,16 +6,9 @@
|
||||
* Daniel.Veillard@w3.org
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <libxml/xmlversion.h>
|
||||
#include "libxml.h"
|
||||
#if defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_DEBUG_ENABLED)
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef HAVE_SYS_TYPES_H
|
||||
|
7
tree.c
7
tree.c
@ -11,13 +11,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
#include "libxml.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h> /* for memset() only ! */
|
||||
|
||||
#ifdef HAVE_CTYPE_H
|
||||
|
132
trio.h
132
trio.h
@ -15,13 +15,23 @@
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
#ifndef H_TRIO
|
||||
#define H_TRIO
|
||||
#ifndef TRIO_TRIO_H
|
||||
#define TRIO_TRIO_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
/*
|
||||
* Use autoconf defines if present. Packages using trio must define
|
||||
* HAVE_CONFIG_H as a compiler option themselves.
|
||||
*/
|
||||
#if defined(HAVE_CONFIG_H)
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#if !defined(WITHOUT_TRIO)
|
||||
|
||||
/*
|
||||
* Error codes.
|
||||
*
|
||||
@ -34,7 +44,7 @@ enum {
|
||||
TRIO_EDBLREF = 4,
|
||||
TRIO_EGAP = 5,
|
||||
TRIO_ENOMEM = 6,
|
||||
TRIO_ERANGE = 7
|
||||
TRIO_ERANGE = 7,
|
||||
};
|
||||
|
||||
/* Error macros */
|
||||
@ -42,61 +52,117 @@ enum {
|
||||
#define TRIO_ERROR_POSITION(x) ((-(x)) >> 8)
|
||||
#define TRIO_ERROR_NAME(x) trio_strerror(x)
|
||||
|
||||
/*
|
||||
* trio_sprintf(target, format, ...)
|
||||
const char *trio_strerror(int);
|
||||
|
||||
/*************************************************************************
|
||||
* Print Functions
|
||||
*/
|
||||
|
||||
int trio_printf(const char *format, ...);
|
||||
int trio_vprintf(const char *format, va_list args);
|
||||
int trio_printfv(const char *format, void **args);
|
||||
|
||||
int trio_fprintf(FILE *file, const char *format, ...);
|
||||
int trio_vfprintf(FILE *file, const char *format, va_list args);
|
||||
int trio_fprintfv(FILE *file, const char *format, void **args);
|
||||
|
||||
int trio_dprintf(int fd, const char *format, ...);
|
||||
int trio_vdprintf(int fd, const char *format, va_list args);
|
||||
int trio_dprintfv(int fd, const char *format, void **args);
|
||||
|
||||
/* trio_sprintf(target, format, ...)
|
||||
* trio_snprintf(target, maxsize, format, ...)
|
||||
*
|
||||
* Build 'target' according to 'format' and succesive
|
||||
* arguments. This is equal to the sprintf() and
|
||||
* snprintf() functions.
|
||||
*/
|
||||
|
||||
int trio_printf(const char *format, ...);
|
||||
int trio_vprintf(const char *format, va_list args);
|
||||
int trio_fprintf(FILE *file, const char *format, ...);
|
||||
int trio_vfprintf(FILE *file, const char *format, va_list args);
|
||||
int trio_dprintf(int fd, const char *format, ...);
|
||||
int trio_vdprintf(int fd, const char *format, va_list args);
|
||||
int trio_sprintf(char *buffer, const char *format, ...);
|
||||
int trio_snprintf(char *buffer, size_t max, const char *format, ...);
|
||||
int trio_snprintfcat(char *buffer, size_t max, const char *format, ...);
|
||||
int trio_vsprintf(char *buffer, const char *format, va_list args);
|
||||
int trio_sprintfv(char *buffer, const char *format, void **args);
|
||||
|
||||
int trio_snprintf(char *buffer, size_t max, const char *format, ...);
|
||||
int trio_vsnprintf(char *buffer, size_t bufferSize, const char *format,
|
||||
va_list args);
|
||||
int trio_snprintfv(char *buffer, size_t bufferSize, const char *format,
|
||||
void **args);
|
||||
|
||||
int trio_snprintfcat(char *buffer, size_t max, const char *format, ...);
|
||||
int trio_vsnprintfcat(char *buffer, size_t bufferSize, const char *format,
|
||||
va_list args);
|
||||
|
||||
char *trio_aprintf(const char *format, ...);
|
||||
char *trio_vaprintf(const char *format, va_list args);
|
||||
|
||||
int trio_asprintf(char **ret, const char *format, ...);
|
||||
int trio_vasprintf(char **ret, const char *format, va_list args);
|
||||
|
||||
/*************************************************************************
|
||||
* Scan Functions
|
||||
*/
|
||||
int trio_scanf(const char *format, ...);
|
||||
int trio_vscanf(const char *format, va_list args);
|
||||
int trio_scanfv(const char *format, void **args);
|
||||
|
||||
int trio_fscanf(FILE *file, const char *format, ...);
|
||||
int trio_vfscanf(FILE *file, const char *format, va_list args);
|
||||
int trio_fscanfv(FILE *file, const char *format, void **args);
|
||||
|
||||
int trio_dscanf(int fd, const char *format, ...);
|
||||
int trio_vdscanf(int fd, const char *format, va_list args);
|
||||
int trio_dscanfv(int fd, const char *format, void **args);
|
||||
|
||||
int trio_sscanf(const char *buffer, const char *format, ...);
|
||||
int trio_vsscanf(const char *buffer, const char *format, va_list args);
|
||||
int trio_sscanfv(const char *buffer, const char *format, void **args);
|
||||
|
||||
const char *trio_strerror(int);
|
||||
|
||||
/*************************************************************************
|
||||
* Renaming
|
||||
*/
|
||||
#ifdef TRIO_REPLACE_STDIO
|
||||
/* Replace the <stdio.h> functions */
|
||||
#define printf trio_printf
|
||||
#define vprintf trio_vprintf
|
||||
#define fprintf trio_fprintf
|
||||
#define vfprintf trio_vfprintf
|
||||
#define sprintf trio_sprintf
|
||||
#define vsprintf trio_vsprintf
|
||||
#define snprintf trio_snprintf
|
||||
#define vsnprintf trio_vsnprintf
|
||||
#define scanf trio_scanf
|
||||
#define vscanf trio_vscanf
|
||||
#define fscanf trio_fscanf
|
||||
#define vfscanf trio_vfscanf
|
||||
#define sscanf trio_sscanf
|
||||
#define vsscanf trio_vsscanf
|
||||
#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
|
||||
@ -109,10 +175,12 @@ const char *trio_strerror(int);
|
||||
#endif
|
||||
|
||||
/* strio compatible names */
|
||||
#define StrScan sscanf /* FIXME: must be trio_sscanf */
|
||||
#define StrScan trio_sscanf
|
||||
#define StrFormat trio_sprintf
|
||||
#define StrFormatMax trio_snprintf
|
||||
#define StrFormatAlloc trio_aprintf
|
||||
#define StrFormatAppendMax trio_snprintfcat
|
||||
|
||||
#endif /* H_TRIO */
|
||||
#endif /* TRIO_IGNORE */
|
||||
|
||||
#endif /* TRIO_TRIO_H */
|
||||
|
101
triop.h
Normal file
101
triop.h
Normal file
@ -0,0 +1,101 @@
|
||||
/*************************************************************************
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* Copyright (C) 2000 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.
|
||||
*
|
||||
************************************************************************
|
||||
*
|
||||
* Private functions, types, etc. used for callback functions.
|
||||
*
|
||||
* The ref pointer is an opaque type and should remain as such.
|
||||
* Private data must only be accessible through the getter and
|
||||
* setter functions.
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
#ifndef TRIO_TRIOP_H
|
||||
#define TRIO_TRIOP_H
|
||||
|
||||
#if defined(__STDC__) && (__STDC_VERSION__ >= 199901L)
|
||||
# define TRIO_C99
|
||||
#endif
|
||||
#define TRIO_BSD
|
||||
#define TRIO_GNU
|
||||
#define TRIO_MISC
|
||||
#define TRIO_UNIX98
|
||||
#define TRIO_EXTENSION
|
||||
#define TRIO_ERRORS
|
||||
|
||||
|
||||
typedef int (*trio_callback_t)(void *ref);
|
||||
|
||||
void *trio_register(trio_callback_t callback, const char *name);
|
||||
void trio_unregister(void *handle);
|
||||
|
||||
const char *trio_get_format(void *ref);
|
||||
void *trio_get_argument(void *ref);
|
||||
|
||||
/* Modifiers */
|
||||
int trio_get_width(void *ref);
|
||||
void trio_set_width(void *ref, int width);
|
||||
int trio_get_precision(void *ref);
|
||||
void trio_set_precision(void *ref, int precision);
|
||||
int trio_get_base(void *ref);
|
||||
void trio_set_base(void *ref, int base);
|
||||
int trio_get_padding(void *ref);
|
||||
void trio_set_padding(void *ref, int is_padding);
|
||||
int trio_get_short(void *ref); /* h */
|
||||
void trio_set_shortshort(void *ref, int is_shortshort);
|
||||
int trio_get_shortshort(void *ref); /* hh */
|
||||
void trio_set_short(void *ref, int is_short);
|
||||
int trio_get_long(void *ref); /* l */
|
||||
void trio_set_long(void *ref, int is_long);
|
||||
int trio_get_longlong(void *ref); /* ll */
|
||||
void trio_set_longlong(void *ref, int is_longlong);
|
||||
int trio_get_longdouble(void *ref); /* L */
|
||||
void trio_set_longdouble(void *ref, int is_longdouble);
|
||||
int trio_get_alternative(void *ref); /* # */
|
||||
void trio_set_alternative(void *ref, int is_alternative);
|
||||
int trio_get_alignment(void *ref); /* - */
|
||||
void trio_set_alignment(void *ref, int is_leftaligned);
|
||||
int trio_get_spacing(void *ref); /* (space) */
|
||||
void trio_set_spacing(void *ref, int is_space);
|
||||
int trio_get_sign(void *ref); /* + */
|
||||
void trio_set_sign(void *ref, int is_showsign);
|
||||
int trio_get_quote(void *ref); /* ' */
|
||||
void trio_set_quote(void *ref, int is_quote);
|
||||
int trio_get_upper(void *ref);
|
||||
void trio_set_upper(void *ref, int is_upper);
|
||||
#if defined(TRIO_C99)
|
||||
int trio_get_largest(void *ref); /* j */
|
||||
void trio_set_largest(void *ref, int is_largest);
|
||||
int trio_get_ptrdiff(void *ref); /* t */
|
||||
void trio_set_ptrdiff(void *ref, int is_ptrdiff);
|
||||
int trio_get_size(void *ref); /* z / Z */
|
||||
void trio_set_size(void *ref, int is_size);
|
||||
#endif
|
||||
|
||||
/* Printing */
|
||||
int trio_print_ref(void *ref, const char *format, ...);
|
||||
int trio_vprint_ref(void *ref, const char *format, va_list args);
|
||||
int trio_printv_ref(void *ref, const char *format, void **args);
|
||||
|
||||
void trio_print_int(void *ref, int number);
|
||||
void trio_print_uint(void *ref, unsigned int number);
|
||||
/* void trio_print_long(void *ref, long number); */
|
||||
/* void trio_print_ulong(void *ref, unsigned long number); */
|
||||
void trio_print_double(void *ref, double number);
|
||||
void trio_print_string(void *ref, char *string);
|
||||
void trio_print_pointer(void *ref, void *pointer);
|
||||
|
||||
#endif /* TRIO_TRIOP_H */
|
6
uri.c
6
uri.c
@ -8,14 +8,12 @@
|
||||
* Daniel.Veillard@w3.org
|
||||
*/
|
||||
|
||||
#include "libxml.h"
|
||||
|
||||
#ifdef WIN32
|
||||
#define INCLUDE_WINSOCK
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <libxml/xmlmemory.h>
|
||||
|
7
valid.c
7
valid.c
@ -7,13 +7,8 @@
|
||||
* Daniel.Veillard@w3.org
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
#include "libxml.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef HAVE_STDLIB_H
|
||||
|
@ -13,13 +13,8 @@
|
||||
* TODO: compute XPointers nodesets
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
#include "libxml.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <libxml/xmlmemory.h>
|
||||
#include <libxml/tree.h>
|
||||
|
7
xlink.c
7
xlink.c
@ -8,13 +8,8 @@
|
||||
*/
|
||||
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
#include "libxml.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h> /* for memset() only */
|
||||
#ifdef HAVE_CTYPE_H
|
||||
#include <ctype.h>
|
||||
|
7
xmlIO.c
7
xmlIO.c
@ -8,13 +8,8 @@
|
||||
* 14 Nov 2000 ht - for VMS, truncated name of long functions to under 32 char
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
#include "libxml.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
|
@ -6,15 +6,9 @@
|
||||
* Daniel.Veillard@w3.org
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
#include "libxml.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#ifdef _WIN32
|
||||
#ifdef _MSC_VER
|
||||
|
@ -4,13 +4,8 @@
|
||||
* Daniel.Veillard@w3.org
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
#include "libxml.h"
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef HAVE_SYS_TYPES_H
|
||||
|
191
xpath.c
191
xpath.c
@ -16,16 +16,9 @@
|
||||
* for VMS
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include <libxml/xmlversion.h>
|
||||
#include "libxml.h"
|
||||
#ifdef LIBXML_XPATH_ENABLED
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef HAVE_SYS_TYPES_H
|
||||
@ -935,112 +928,57 @@ xmlXPathFormatNumber(double number, char buffer[], int buffersize)
|
||||
if (buffersize > (int)sizeof("NaN"))
|
||||
sprintf(buffer, "NaN");
|
||||
} else {
|
||||
char work[INTEGER_DIGITS + FRACTION_DIGITS + EXPONENT_DIGITS + 1];
|
||||
char *pointer;
|
||||
char *start;
|
||||
int i;
|
||||
int digits;
|
||||
int is_negative;
|
||||
int use_scientific;
|
||||
int exponent;
|
||||
int indx;
|
||||
int count;
|
||||
double n;
|
||||
/* 3 is sign, decimal point, and terminating zero */
|
||||
char work[DBL_DIG + EXPONENT_DIGITS + 3];
|
||||
int integer_place, fraction_place;
|
||||
char *ptr;
|
||||
char *after_fraction;
|
||||
double absolute_value;
|
||||
int size;
|
||||
|
||||
i = digits = 0;
|
||||
is_negative = (number < 0.0);
|
||||
if (is_negative)
|
||||
number = -number;
|
||||
absolute_value = fabs(number);
|
||||
|
||||
/* Scale number */
|
||||
n = log10(number);
|
||||
exponent = (isinf(n) == -1) ? 0 : (int)n;
|
||||
use_scientific = (((number <= LOWER_DOUBLE) ||
|
||||
(number > UPPER_DOUBLE)) &&
|
||||
(number != 0));
|
||||
if (use_scientific) {
|
||||
number /= pow(10.0, (double)exponent);
|
||||
while (number < 1.0) {
|
||||
number *= 10.0;
|
||||
exponent--;
|
||||
}
|
||||
/*
|
||||
* First choose format - scientific or regular floating point.
|
||||
* In either case, result is in work, and after_fraction points
|
||||
* just past the fractional part.
|
||||
*/
|
||||
if ( ((absolute_value > UPPER_DOUBLE) ||
|
||||
(absolute_value < LOWER_DOUBLE)) &&
|
||||
(absolute_value != 0.0) ) {
|
||||
/* Use scientific notation */
|
||||
integer_place = DBL_DIG + EXPONENT_DIGITS + 1;
|
||||
fraction_place = DBL_DIG - 1;
|
||||
snprintf(work, sizeof(work),"%*.*e",
|
||||
integer_place, fraction_place, number);
|
||||
after_fraction = strchr(work + DBL_DIG, 'e');
|
||||
}
|
||||
|
||||
/* Integer part is build from back */
|
||||
pointer = &work[INTEGER_DIGITS + 1];
|
||||
if (number < 1.0) {
|
||||
*(--pointer) = '0';
|
||||
digits++;
|
||||
} else {
|
||||
n = number;
|
||||
for (i = 1; i < INTEGER_DIGITS - 1; i++) {
|
||||
indx = (int)n % 10;
|
||||
*(--pointer) = "0123456789"[indx];
|
||||
n /= 10.0;
|
||||
if (n < 1.0)
|
||||
break;
|
||||
}
|
||||
digits += i;
|
||||
}
|
||||
if (is_negative) {
|
||||
*(--pointer) = '-';
|
||||
digits++;
|
||||
}
|
||||
start = pointer;
|
||||
|
||||
/* Fraction part is build from front */
|
||||
i = 0;
|
||||
pointer = &work[INTEGER_DIGITS + 1];
|
||||
if (number - floor(number) > DBL_EPSILON) {
|
||||
*(pointer++) = '.';
|
||||
i++;
|
||||
n = number;
|
||||
count = 0;
|
||||
while (i < FRACTION_DIGITS) {
|
||||
n -= floor(n);
|
||||
n *= 10.0;
|
||||
indx = (int)n % 10;
|
||||
*(pointer++) = "0123456789"[indx];
|
||||
i++;
|
||||
if ((indx != 0) || (count > 0))
|
||||
count++;
|
||||
if ((n > 10.0) || (count > FRACTION_DIGITS / 2))
|
||||
break;
|
||||
}
|
||||
}
|
||||
/* Remove trailing zeroes */
|
||||
while ((pointer[-1] == '0') && (i > 0)) {
|
||||
pointer--;
|
||||
i--;
|
||||
}
|
||||
digits += i;
|
||||
|
||||
if (use_scientific) {
|
||||
*(pointer++) = 'e';
|
||||
digits++;
|
||||
if (exponent < 0) {
|
||||
*(pointer++) = '-';
|
||||
exponent = -exponent;
|
||||
} else {
|
||||
*(pointer++) = '+';
|
||||
}
|
||||
digits++;
|
||||
if (exponent >= 100)
|
||||
pointer += 2;
|
||||
else if (exponent >= 10)
|
||||
pointer += 1;
|
||||
while (exponent >= 1) {
|
||||
*(pointer--) = "0123456789"[exponent % 10];
|
||||
exponent /= 10;
|
||||
digits++;
|
||||
}
|
||||
else {
|
||||
/* Use regular notation */
|
||||
integer_place = 1 + (int)log10(absolute_value);
|
||||
fraction_place = (integer_place > 0)
|
||||
? DBL_DIG - integer_place
|
||||
: DBL_DIG;
|
||||
size = snprintf(work, sizeof(work), "%0.*f",
|
||||
fraction_place, number);
|
||||
after_fraction = work + size;
|
||||
}
|
||||
|
||||
if (digits >= buffersize)
|
||||
digits = buffersize - 1;
|
||||
|
||||
memcpy(buffer, start, digits);
|
||||
buffer[digits] = 0;
|
||||
/* Remove fractional trailing zeroes */
|
||||
ptr = after_fraction;
|
||||
while (*(--ptr) == '0')
|
||||
;
|
||||
if (*ptr != '.')
|
||||
ptr++;
|
||||
strcpy(ptr, after_fraction);
|
||||
|
||||
/* Finally copy result back to caller */
|
||||
size = strlen(work) + 1;
|
||||
if (size > buffersize) {
|
||||
work[buffersize - 1] = 0;
|
||||
size = buffersize;
|
||||
}
|
||||
memcpy(buffer, work, size);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -5200,6 +5138,8 @@ xmlXPathParseName(xmlXPathParserContextPtr ctxt) {
|
||||
* xmlXPathStringEvalNumber:
|
||||
* @str: A string to scan
|
||||
*
|
||||
* [30a] Float ::= Number ('e' Digits?)?
|
||||
*
|
||||
* [30] Number ::= Digits ('.' Digits?)?
|
||||
* | '.' Digits
|
||||
* [31] Digits ::= [0-9]+
|
||||
@ -5217,7 +5157,9 @@ xmlXPathStringEvalNumber(const xmlChar *str) {
|
||||
double mult = 1;
|
||||
int ok = 0;
|
||||
int isneg = 0;
|
||||
|
||||
int exponent = 0;
|
||||
int is_exponent_negative = 0;
|
||||
|
||||
while (IS_BLANK(*cur)) cur++;
|
||||
if ((*cur != '.') && ((*cur < '0') || (*cur > '9')) && (*cur != '-')) {
|
||||
return(xmlXPathNAN);
|
||||
@ -5242,9 +5184,22 @@ xmlXPathStringEvalNumber(const xmlChar *str) {
|
||||
cur++;
|
||||
}
|
||||
}
|
||||
if ((*cur == 'e') || (*cur == 'E')) {
|
||||
cur++;
|
||||
if (*cur == '-') {
|
||||
is_exponent_negative = 1;
|
||||
cur++;
|
||||
}
|
||||
while ((*cur >= '0') && (*cur <= '9')) {
|
||||
exponent = exponent * 10 + (*cur - '0');
|
||||
cur++;
|
||||
}
|
||||
}
|
||||
while (IS_BLANK(*cur)) cur++;
|
||||
if (*cur != 0) return(xmlXPathNAN);
|
||||
if (isneg) ret = -ret;
|
||||
if (is_exponent_negative) exponent = -exponent;
|
||||
ret *= pow(10.0, (double)exponent);
|
||||
return(ret);
|
||||
}
|
||||
|
||||
@ -5264,6 +5219,8 @@ xmlXPathCompNumber(xmlXPathParserContextPtr ctxt) {
|
||||
double ret = 0.0;
|
||||
double mult = 1;
|
||||
int ok = 0;
|
||||
int exponent = 0;
|
||||
int is_exponent_negative = 0;
|
||||
|
||||
CHECK_ERROR;
|
||||
if ((CUR != '.') && ((CUR < '0') || (CUR > '9'))) {
|
||||
@ -5285,6 +5242,20 @@ xmlXPathCompNumber(xmlXPathParserContextPtr ctxt) {
|
||||
NEXT;
|
||||
}
|
||||
}
|
||||
if ((CUR == 'e') || (CUR == 'E')) {
|
||||
NEXT;
|
||||
if (CUR == '-') {
|
||||
is_exponent_negative = 1;
|
||||
NEXT;
|
||||
}
|
||||
while ((CUR >= '0') && (CUR <= '9')) {
|
||||
exponent = exponent * 10 + (CUR - '0');
|
||||
NEXT;
|
||||
}
|
||||
}
|
||||
if (is_exponent_negative)
|
||||
exponent = -exponent;
|
||||
ret *= pow(10.0, (double)exponent);
|
||||
PUSH_LONG_EXPR(XPATH_OP_VALUE, XPATH_NUMBER, 0, 0,
|
||||
xmlXPathNewFloat(ret), NULL);
|
||||
}
|
||||
|
@ -9,11 +9,7 @@
|
||||
* Daniel.Veillard@w3.org
|
||||
*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include "win32config.h"
|
||||
#else
|
||||
#include "config.h"
|
||||
#endif
|
||||
#include "libxml.h"
|
||||
|
||||
/**
|
||||
* TODO: better handling of error cases, the full expression should
|
||||
@ -23,7 +19,6 @@
|
||||
* parent is the endity declaration, not the ref.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <libxml/xpointer.h>
|
||||
#include <libxml/xmlmemory.h>
|
||||
|
Loading…
x
Reference in New Issue
Block a user