]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Fix line endings per .gitattributes
authorTravis Cross <tc@traviscross.com>
Tue, 12 Aug 2014 20:00:54 +0000 (20:00 +0000)
committerTravis Cross <tc@traviscross.com>
Tue, 12 Aug 2014 20:00:54 +0000 (20:00 +0000)
12 files changed:
libs/win32/celt/config.h
libs/win32/celt/float_cast.h
libs/win32/libshout/compat.h
libs/win32/libshout/shout/shout.h
libs/win32/openssl/buildinf.h
libs/win32/openssl/opensslconf.h
libs/xmlrpc-c/Windows/ReadMeOld.txt
libs/xmlrpc-c/Windows/UsingCURLinWin32.txt
libs/xmlrpc-c/Windows/UsingProxyDSP.txt
libs/xmlrpc-c/src/test/http-req-simple.txt
src/mod/applications/mod_expr/license.txt
src/mod/applications/mod_expr/readme.txt

index adc0f6bc40ce5e16fbbbdd990aca73e34e25f1a7..8f354870f88c57ac4b6630b921c4a5f43e94a12e 100644 (file)
@@ -1,35 +1,35 @@
-/* This is a build of CELT */\r
-#define CELT_BUILD \r
-\r
-/* Version extra */\r
-#define CELT_EXTRA_VERSION "-1"\r
-\r
-/* Version major */\r
-#define CELT_MAJOR_VERSION 0\r
-\r
-/* Version micro */\r
-#define CELT_MICRO_VERSION 0\r
-\r
-/* Version minor */\r
-#define CELT_MINOR_VERSION 7\r
-\r
-/* Complete version string */\r
-#define CELT_VERSION "0.7.0-1"\r
-\r
-/* Compile as fixed-point */\r
-/* #undef FIXED_POINT */\r
-\r
-/* Compile as floating-point */\r
-#define FLOATING_POINT \r
-\r
-/* Make use of alloca */\r
-/* #undef USE_ALLOCA */\r
-#define USE_ALLOCA 1 /* disable this when using SSE */\r
-\r
-/* Define to equivalent of C99 restrict keyword, or to nothing if this is not\r
-   supported. Do not define if restrict is supported directly. */\r
-#define restrict /* __restrict */\r
-\r
-// Microsoft version of 'inline'\r
-#define inline __inline\r
-\r
+/* This is a build of CELT */
+#define CELT_BUILD 
+
+/* Version extra */
+#define CELT_EXTRA_VERSION "-1"
+
+/* Version major */
+#define CELT_MAJOR_VERSION 0
+
+/* Version micro */
+#define CELT_MICRO_VERSION 0
+
+/* Version minor */
+#define CELT_MINOR_VERSION 7
+
+/* Complete version string */
+#define CELT_VERSION "0.7.0-1"
+
+/* Compile as fixed-point */
+/* #undef FIXED_POINT */
+
+/* Compile as floating-point */
+#define FLOATING_POINT 
+
+/* Make use of alloca */
+/* #undef USE_ALLOCA */
+#define USE_ALLOCA 1 /* disable this when using SSE */
+
+/* Define to equivalent of C99 restrict keyword, or to nothing if this is not
+   supported. Do not define if restrict is supported directly. */
+#define restrict /* __restrict */
+
+// Microsoft version of 'inline'
+#define inline __inline
+
index a8c1eaab88d5d99c061f4ceffa9aaca59c9c2515..483082e5933d599d814f87f6a9975e56129d2ede 100644 (file)
@@ -92,9 +92,9 @@
                        
                return intgr ;
        }
-#else               \r
-#define float2int   \r
-#endif            \r
+#else               
+#define float2int   
+#endif            
   
 
 #else
index 6a694ad701ec0d5d795236051597004ef5dedef6..d0d814ebbac387aa996325bb66acc1fdf5731d17 100644 (file)
@@ -1 +1 @@
-#include <os.h>\r
+#include <os.h>
index 208f55535af459440342ca3b15ebaf6d8dd12b8e..84c56423c74df9ce9bda7a4891669962a8bea304 100644 (file)
-/*  shout.h\r
- *\r
- *  API for libshout, the streaming library for icecast\r
- *\r
- *  Copyright (C) 2002-2003 the Icecast team <team@icecast.org>\r
- *\r
- *  This library is free software; you can redistribute it and/or\r
- *  modify it under the terms of the GNU Library General Public\r
- *  License as published by the Free Software Foundation; either\r
- *  version 2 of the License, or (at your option) any later version.\r
- *\r
- *  This library is distributed in the hope that it will be useful,\r
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of\r
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\r
- *  Library General Public License for more details.\r
- *\r
- *  You should have received a copy of the GNU Library General Public\r
- *  License along with this library; if not, write to the Free\r
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
- */\r
-#ifndef __LIBSHOUT_SHOUT_H__\r
-#define __LIBSHOUT_SHOUT_H__\r
-\r
-#include <sys/types.h>\r
-#ifdef WIN32\r
-#include <os.h>\r
-# ifdef _MSC_VER\r
-#  undef inline\r
-#  define inline __inline\r
-#if (_MSC_VER >= 1400)                 // VC8+\r
-#ifndef _CRT_SECURE_NO_DEPRECATE\r
-#define _CRT_SECURE_NO_DEPRECATE\r
-#endif\r
-#ifndef _CRT_NONSTDC_NO_DEPRECATE\r
-#define _CRT_NONSTDC_NO_DEPRECATE\r
-#endif\r
-#endif // VC8+\r
-# endif\r
-#ifndef __MINGW32__\r
-#define va_copy(ap1, ap2) memcpy(&ap1, &ap2, sizeof(va_list))\r
-#endif\r
-\r
-#endif\r
-\r
-#define SHOUTERR_SUCCESS       (0)\r
-#define SHOUTERR_INSANE                (-1)\r
-#define SHOUTERR_NOCONNECT     (-2)\r
-#define SHOUTERR_NOLOGIN       (-3)\r
-#define SHOUTERR_SOCKET                (-4)\r
-#define SHOUTERR_MALLOC                (-5)\r
-#define SHOUTERR_METADATA      (-6)\r
-#define SHOUTERR_CONNECTED     (-7)\r
-#define SHOUTERR_UNCONNECTED   (-8)\r
-#define SHOUTERR_UNSUPPORTED   (-9)\r
-\r
-#define SHOUTERR_BUSY          (-10)\r
-\r
-#define SHOUT_FORMAT_OGG       (0)\r
-#define SHOUT_FORMAT_MP3       (1)\r
-/* backward-compatibility alias */\r
-#define SHOUT_FORMAT_VORBIS    SHOUT_FORMAT_OGG\r
-\r
-#define SHOUT_PROTOCOL_HTTP            (0)\r
-#define SHOUT_PROTOCOL_XAUDIOCAST      (1)\r
-#define SHOUT_PROTOCOL_ICY             (2)\r
-\r
-#define SHOUT_AI_BITRATE       "bitrate"\r
-#define SHOUT_AI_SAMPLERATE    "samplerate"\r
-#define SHOUT_AI_CHANNELS      "channels"\r
-#define SHOUT_AI_QUALITY       "quality"\r
-\r
-typedef struct shout shout_t;\r
-typedef struct _util_dict shout_metadata_t;\r
-\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-\r
-/* initializes the shout library. Must be called before anything else */\r
-void shout_init(void);\r
-\r
-/* shuts down the shout library, deallocating any global storage. Don't call\r
- * anything afterwards */\r
-void shout_shutdown(void);\r
-\r
-/* returns a static version string.  Non-null parameters will be set to the\r
- * value of the library major, minor, and patch levels, respectively */\r
-const char *shout_version(int *major, int *minor, int *patch);\r
-\r
-/* Allocates and sets up a new shout_t.  Returns NULL if it can't get enough\r
- * memory.  The returns shout_t must be disposed of with shout_free. */\r
-shout_t *shout_new(void);\r
-\r
-/* Free all memory allocated by a shout_t */\r
-void shout_free(shout_t *self);\r
-\r
-/* Returns a statically allocated string describing the last shout error\r
- * to occur.  Only valid until the next libshout call on this shout_t */\r
-const char *shout_get_error(shout_t *self);\r
-\r
-/* Return the error code (e.g. SHOUTERR_SOCKET) for this shout instance */\r
-int shout_get_errno(shout_t *self);\r
-\r
-/* returns SHOUTERR_CONNECTED or SHOUTERR_UNCONNECTED */\r
-int shout_get_connected(shout_t *self);\r
-\r
-/* Parameter manipulation functions.  libshout makes copies of all parameters,\r
- * the caller may free its copies after giving them to libshout.  May return\r
- * SHOUTERR_MALLOC */\r
-\r
-int shout_set_host(shout_t *self, const char *host);\r
-const char *shout_get_host(shout_t *self);\r
-\r
-int shout_set_port(shout_t *self, unsigned short port);\r
-unsigned short shout_get_port(shout_t *self);\r
-\r
-int shout_set_password(shout_t *, const char *password);\r
-const char *shout_get_password(shout_t *self);\r
-\r
-int shout_set_mount(shout_t *self, const char *mount);\r
-const char *shout_get_mount(shout_t *self);\r
-\r
-int shout_set_name(shout_t *self, const char *name);\r
-const char *shout_get_name(shout_t *self);\r
-\r
-int shout_set_url(shout_t *self, const char *url);\r
-const char *shout_get_url(shout_t *self);\r
-\r
-int shout_set_genre(shout_t *self, const char *genre);\r
-const char *shout_get_genre(shout_t *self);\r
-\r
-int shout_set_user(shout_t *self, const char *username);\r
-const char *shout_get_user(shout_t *self);\r
-\r
-int shout_set_agent(shout_t *self, const char *username);\r
-const char *shout_get_agent(shout_t *self);\r
-\r
-int shout_set_description(shout_t *self, const char *description);\r
-const char *shout_get_description(shout_t *self);\r
-\r
-int shout_set_dumpfile(shout_t *self, const char *dumpfile);\r
-const char *shout_get_dumpfile(shout_t *self);\r
-\r
-int shout_set_audio_info(shout_t *self, const char *name, const char *value);\r
-const char *shout_get_audio_info(shout_t *self, const char *name);\r
-\r
-int shout_set_public(shout_t *self, unsigned int make_public);\r
-unsigned int shout_get_public(shout_t *self);\r
-\r
-/* takes a SHOUT_FORMAT_xxxx argument */\r
-int shout_set_format(shout_t *self, unsigned int format);\r
-unsigned int shout_get_format(shout_t *self);\r
-\r
-/* takes a SHOUT_PROTOCOL_xxxxx argument */\r
-int shout_set_protocol(shout_t *self, unsigned int protocol);\r
-unsigned int shout_get_protocol(shout_t *self);\r
-\r
-/* Instructs libshout to use nonblocking I/O. Must be called before\r
- * shout_open (no switching back and forth midstream at the moment). */\r
-int shout_set_nonblocking(shout_t* self, unsigned int nonblocking);\r
-unsigned int shout_get_nonblocking(shout_t *self);\r
-\r
-/* Opens a connection to the server.  All parameters must already be set */\r
-int shout_open(shout_t *self);\r
-\r
-/* Closes a connection to the server */\r
-int shout_close(shout_t *self);\r
-\r
-/* Send data to the server, parsing it for format specific timing info */\r
-int shout_send(shout_t *self, const unsigned char *data, size_t len);\r
-\r
-/* Send unparsed data to the server.  Do not use this unless you know\r
- * what you are doing. \r
- * Returns the number of bytes written, or < 0 on error.\r
- */\r
-ssize_t shout_send_raw(shout_t *self, const unsigned char *data, size_t len);\r
-\r
-/* return the number of bytes currently on the write queue (only makes sense in\r
- * nonblocking mode). */\r
-ssize_t shout_queuelen(shout_t *self);\r
-  \r
-/* Puts caller to sleep until it is time to send more data to the server */\r
-void shout_sync(shout_t *self);\r
-\r
-/* Amount of time in ms caller should wait before sending again */\r
-int shout_delay(shout_t *self);\r
-\r
-/* Sets MP3 metadata.\r
- * Returns:\r
- *   SHOUTERR_SUCCESS\r
- *   SHOUTERR_UNSUPPORTED if format isn't MP3\r
- *   SHOUTERR_MALLOC\r
- *   SHOUTERR_INSANE\r
- *   SHOUTERR_NOCONNECT\r
- *   SHOUTERR_SOCKET\r
- */\r
-int shout_set_metadata(shout_t *self, shout_metadata_t *metadata);\r
-\r
-/* Allocates a new metadata structure.  Must be freed by shout_metadata_free. */\r
-shout_metadata_t *shout_metadata_new(void);\r
-\r
-/* Free resources allocated by shout_metadata_t */\r
-void shout_metadata_free(shout_metadata_t *self);\r
-\r
-/* Add a parameter to the metadata structure.\r
- * Returns:\r
- *   SHOUTERR_SUCCESS on success\r
- *   SHOUTERR_INSANE if self isn't a valid shout_metadata_t* or name is null\r
- *   SHOUTERR_MALLOC if memory can't be allocated */\r
-int shout_metadata_add(shout_metadata_t *self, const char *name, const char *value);\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-/* --- Compiled features --- */\r
-\r
-#define SHOUT_THREADSAFE @SHOUT_THREADSAFE@\r
-\r
-#endif /* __LIBSHOUT_SHOUT_H__ */\r
+/*  shout.h
+ *
+ *  API for libshout, the streaming library for icecast
+ *
+ *  Copyright (C) 2002-2003 the Icecast team <team@icecast.org>
+ *
+ *  This library is free software; you can redistribute it and/or
+ *  modify it under the terms of the GNU Library General Public
+ *  License as published by the Free Software Foundation; either
+ *  version 2 of the License, or (at your option) any later version.
+ *
+ *  This library is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ *  Library General Public License for more details.
+ *
+ *  You should have received a copy of the GNU Library General Public
+ *  License along with this library; if not, write to the Free
+ *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+#ifndef __LIBSHOUT_SHOUT_H__
+#define __LIBSHOUT_SHOUT_H__
+
+#include <sys/types.h>
+#ifdef WIN32
+#include <os.h>
+# ifdef _MSC_VER
+#  undef inline
+#  define inline __inline
+#if (_MSC_VER >= 1400)                 // VC8+
+#ifndef _CRT_SECURE_NO_DEPRECATE
+#define _CRT_SECURE_NO_DEPRECATE
+#endif
+#ifndef _CRT_NONSTDC_NO_DEPRECATE
+#define _CRT_NONSTDC_NO_DEPRECATE
+#endif
+#endif // VC8+
+# endif
+#ifndef __MINGW32__
+#define va_copy(ap1, ap2) memcpy(&ap1, &ap2, sizeof(va_list))
+#endif
+
+#endif
+
+#define SHOUTERR_SUCCESS       (0)
+#define SHOUTERR_INSANE                (-1)
+#define SHOUTERR_NOCONNECT     (-2)
+#define SHOUTERR_NOLOGIN       (-3)
+#define SHOUTERR_SOCKET                (-4)
+#define SHOUTERR_MALLOC                (-5)
+#define SHOUTERR_METADATA      (-6)
+#define SHOUTERR_CONNECTED     (-7)
+#define SHOUTERR_UNCONNECTED   (-8)
+#define SHOUTERR_UNSUPPORTED   (-9)
+
+#define SHOUTERR_BUSY          (-10)
+
+#define SHOUT_FORMAT_OGG       (0)
+#define SHOUT_FORMAT_MP3       (1)
+/* backward-compatibility alias */
+#define SHOUT_FORMAT_VORBIS    SHOUT_FORMAT_OGG
+
+#define SHOUT_PROTOCOL_HTTP            (0)
+#define SHOUT_PROTOCOL_XAUDIOCAST      (1)
+#define SHOUT_PROTOCOL_ICY             (2)
+
+#define SHOUT_AI_BITRATE       "bitrate"
+#define SHOUT_AI_SAMPLERATE    "samplerate"
+#define SHOUT_AI_CHANNELS      "channels"
+#define SHOUT_AI_QUALITY       "quality"
+
+typedef struct shout shout_t;
+typedef struct _util_dict shout_metadata_t;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* initializes the shout library. Must be called before anything else */
+void shout_init(void);
+
+/* shuts down the shout library, deallocating any global storage. Don't call
+ * anything afterwards */
+void shout_shutdown(void);
+
+/* returns a static version string.  Non-null parameters will be set to the
+ * value of the library major, minor, and patch levels, respectively */
+const char *shout_version(int *major, int *minor, int *patch);
+
+/* Allocates and sets up a new shout_t.  Returns NULL if it can't get enough
+ * memory.  The returns shout_t must be disposed of with shout_free. */
+shout_t *shout_new(void);
+
+/* Free all memory allocated by a shout_t */
+void shout_free(shout_t *self);
+
+/* Returns a statically allocated string describing the last shout error
+ * to occur.  Only valid until the next libshout call on this shout_t */
+const char *shout_get_error(shout_t *self);
+
+/* Return the error code (e.g. SHOUTERR_SOCKET) for this shout instance */
+int shout_get_errno(shout_t *self);
+
+/* returns SHOUTERR_CONNECTED or SHOUTERR_UNCONNECTED */
+int shout_get_connected(shout_t *self);
+
+/* Parameter manipulation functions.  libshout makes copies of all parameters,
+ * the caller may free its copies after giving them to libshout.  May return
+ * SHOUTERR_MALLOC */
+
+int shout_set_host(shout_t *self, const char *host);
+const char *shout_get_host(shout_t *self);
+
+int shout_set_port(shout_t *self, unsigned short port);
+unsigned short shout_get_port(shout_t *self);
+
+int shout_set_password(shout_t *, const char *password);
+const char *shout_get_password(shout_t *self);
+
+int shout_set_mount(shout_t *self, const char *mount);
+const char *shout_get_mount(shout_t *self);
+
+int shout_set_name(shout_t *self, const char *name);
+const char *shout_get_name(shout_t *self);
+
+int shout_set_url(shout_t *self, const char *url);
+const char *shout_get_url(shout_t *self);
+
+int shout_set_genre(shout_t *self, const char *genre);
+const char *shout_get_genre(shout_t *self);
+
+int shout_set_user(shout_t *self, const char *username);
+const char *shout_get_user(shout_t *self);
+
+int shout_set_agent(shout_t *self, const char *username);
+const char *shout_get_agent(shout_t *self);
+
+int shout_set_description(shout_t *self, const char *description);
+const char *shout_get_description(shout_t *self);
+
+int shout_set_dumpfile(shout_t *self, const char *dumpfile);
+const char *shout_get_dumpfile(shout_t *self);
+
+int shout_set_audio_info(shout_t *self, const char *name, const char *value);
+const char *shout_get_audio_info(shout_t *self, const char *name);
+
+int shout_set_public(shout_t *self, unsigned int make_public);
+unsigned int shout_get_public(shout_t *self);
+
+/* takes a SHOUT_FORMAT_xxxx argument */
+int shout_set_format(shout_t *self, unsigned int format);
+unsigned int shout_get_format(shout_t *self);
+
+/* takes a SHOUT_PROTOCOL_xxxxx argument */
+int shout_set_protocol(shout_t *self, unsigned int protocol);
+unsigned int shout_get_protocol(shout_t *self);
+
+/* Instructs libshout to use nonblocking I/O. Must be called before
+ * shout_open (no switching back and forth midstream at the moment). */
+int shout_set_nonblocking(shout_t* self, unsigned int nonblocking);
+unsigned int shout_get_nonblocking(shout_t *self);
+
+/* Opens a connection to the server.  All parameters must already be set */
+int shout_open(shout_t *self);
+
+/* Closes a connection to the server */
+int shout_close(shout_t *self);
+
+/* Send data to the server, parsing it for format specific timing info */
+int shout_send(shout_t *self, const unsigned char *data, size_t len);
+
+/* Send unparsed data to the server.  Do not use this unless you know
+ * what you are doing. 
+ * Returns the number of bytes written, or < 0 on error.
+ */
+ssize_t shout_send_raw(shout_t *self, const unsigned char *data, size_t len);
+
+/* return the number of bytes currently on the write queue (only makes sense in
+ * nonblocking mode). */
+ssize_t shout_queuelen(shout_t *self);
+  
+/* Puts caller to sleep until it is time to send more data to the server */
+void shout_sync(shout_t *self);
+
+/* Amount of time in ms caller should wait before sending again */
+int shout_delay(shout_t *self);
+
+/* Sets MP3 metadata.
+ * Returns:
+ *   SHOUTERR_SUCCESS
+ *   SHOUTERR_UNSUPPORTED if format isn't MP3
+ *   SHOUTERR_MALLOC
+ *   SHOUTERR_INSANE
+ *   SHOUTERR_NOCONNECT
+ *   SHOUTERR_SOCKET
+ */
+int shout_set_metadata(shout_t *self, shout_metadata_t *metadata);
+
+/* Allocates a new metadata structure.  Must be freed by shout_metadata_free. */
+shout_metadata_t *shout_metadata_new(void);
+
+/* Free resources allocated by shout_metadata_t */
+void shout_metadata_free(shout_metadata_t *self);
+
+/* Add a parameter to the metadata structure.
+ * Returns:
+ *   SHOUTERR_SUCCESS on success
+ *   SHOUTERR_INSANE if self isn't a valid shout_metadata_t* or name is null
+ *   SHOUTERR_MALLOC if memory can't be allocated */
+int shout_metadata_add(shout_metadata_t *self, const char *name, const char *value);
+
+#ifdef __cplusplus
+}
+#endif
+
+/* --- Compiled features --- */
+
+#define SHOUT_THREADSAFE @SHOUT_THREADSAFE@
+
+#endif /* __LIBSHOUT_SHOUT_H__ */
index fce8d9e8a75cf9eeceadb8f47f150aa7ac69d6e5..40b0d2fe76918afcc5c647e032d39f61154585ad 100644 (file)
@@ -1,13 +1,13 @@
-#ifndef MK1MF_BUILD\r
-  /* auto-generated by Configure for crypto/cversion.c:\r
-   * for Unix builds, crypto/Makefile.ssl generates functional definitions;\r
-   * Windows builds (and other mk1mf builds) compile cversion.c with\r
-   * -DMK1MF_BUILD and use definitions added to this file by util/mk1mf.pl. */\r
-  #error "Windows builds (PLATFORM=VC-WIN32) use mk1mf.pl-created Makefiles"\r
-#endif\r
-#ifdef MK1MF_PLATFORM_VC_WIN32\r
-  /* auto-generated/updated by util/mk1mf.pl for crypto/cversion.c */\r
-  #define CFLAGS "cl  /MD /Ox /O2 /Ob2 -DOPENSSL_THREADS  -DDSO_WIN32 -W3 -WX -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -DOPENSSL_USE_APPLINK -I. /Fdout32dll -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAKE -DOPENSSL_NO_STATIC_ENGINE    "\r
-  #define PLATFORM "VC-WIN32"\r
-  #define DATE "Sun Jun  6 23:40:23 2010"\r
-#endif\r
+#ifndef MK1MF_BUILD
+  /* auto-generated by Configure for crypto/cversion.c:
+   * for Unix builds, crypto/Makefile.ssl generates functional definitions;
+   * Windows builds (and other mk1mf builds) compile cversion.c with
+   * -DMK1MF_BUILD and use definitions added to this file by util/mk1mf.pl. */
+  #error "Windows builds (PLATFORM=VC-WIN32) use mk1mf.pl-created Makefiles"
+#endif
+#ifdef MK1MF_PLATFORM_VC_WIN32
+  /* auto-generated/updated by util/mk1mf.pl for crypto/cversion.c */
+  #define CFLAGS "cl  /MD /Ox /O2 /Ob2 -DOPENSSL_THREADS  -DDSO_WIN32 -W3 -WX -Gs0 -GF -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -DOPENSSL_USE_APPLINK -I. /Fdout32dll -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_JPAKE -DOPENSSL_NO_STATIC_ENGINE    "
+  #define PLATFORM "VC-WIN32"
+  #define DATE "Sun Jun  6 23:40:23 2010"
+#endif
index 1ebd3efe4ed12c91ac704aacf661a1753a77d980..9a4d26baa81b056479d245f2335b385f5ee95543 100644 (file)
-/* opensslconf.h */\r
-/* WARNING: Generated automatically from opensslconf.h.in by Configure. */\r
-\r
-/* OpenSSL was configured with the following options: */\r
-#ifndef OPENSSL_SYSNAME_WIN32\r
-# define OPENSSL_SYSNAME_WIN32\r
-#endif\r
-#ifndef OPENSSL_DOING_MAKEDEPEND\r
-\r
-\r
-#ifndef OPENSSL_NO_GMP\r
-# define OPENSSL_NO_GMP\r
-#endif\r
-#ifndef OPENSSL_NO_JPAKE\r
-# define OPENSSL_NO_JPAKE\r
-#endif\r
-#ifndef OPENSSL_NO_KRB5\r
-# define OPENSSL_NO_KRB5\r
-#endif\r
-#ifndef OPENSSL_NO_MD2\r
-# define OPENSSL_NO_MD2\r
-#endif\r
-#ifndef OPENSSL_NO_RC5\r
-# define OPENSSL_NO_RC5\r
-#endif\r
-#ifndef OPENSSL_NO_RFC3779\r
-# define OPENSSL_NO_RFC3779\r
-#endif\r
-#ifndef OPENSSL_NO_STORE\r
-# define OPENSSL_NO_STORE\r
-#endif\r
-\r
-#endif /* OPENSSL_DOING_MAKEDEPEND */\r
-\r
-#ifndef OPENSSL_THREADS\r
-# define OPENSSL_THREADS\r
-#endif\r
-#ifndef OPENSSL_NO_ASM\r
-# define OPENSSL_NO_ASM\r
-#endif\r
-\r
-/* The OPENSSL_NO_* macros are also defined as NO_* if the application\r
-   asks for it.  This is a transient feature that is provided for those\r
-   who haven't had the time to do the appropriate changes in their\r
-   applications.  */\r
-#ifdef OPENSSL_ALGORITHM_DEFINES\r
-# if defined(OPENSSL_NO_GMP) && !defined(NO_GMP)\r
-#  define NO_GMP\r
-# endif\r
-# if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE)\r
-#  define NO_JPAKE\r
-# endif\r
-# if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5)\r
-#  define NO_KRB5\r
-# endif\r
-# if defined(OPENSSL_NO_MD2) && !defined(NO_MD2)\r
-#  define NO_MD2\r
-# endif\r
-# if defined(OPENSSL_NO_RC5) && !defined(NO_RC5)\r
-#  define NO_RC5\r
-# endif\r
-# if defined(OPENSSL_NO_RFC3779) && !defined(NO_RFC3779)\r
-#  define NO_RFC3779\r
-# endif\r
-# if defined(OPENSSL_NO_STORE) && !defined(NO_STORE)\r
-#  define NO_STORE\r
-# endif\r
-#endif\r
-\r
-/* crypto/opensslconf.h.in */\r
-\r
-/* Generate 80386 code? */\r
-#undef I386_ONLY\r
-\r
-#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */\r
-#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)\r
-#define ENGINESDIR "/usr/local/ssl/lib/engines"\r
-#define OPENSSLDIR "/usr/local/ssl"\r
-#endif\r
-#endif\r
-\r
-#undef OPENSSL_UNISTD\r
-#define OPENSSL_UNISTD <unistd.h>\r
-\r
-#undef OPENSSL_EXPORT_VAR_AS_FUNCTION\r
-#define OPENSSL_EXPORT_VAR_AS_FUNCTION\r
-\r
-#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)\r
-#define IDEA_INT unsigned int\r
-#endif\r
-\r
-#if defined(HEADER_MD2_H) && !defined(MD2_INT)\r
-#define MD2_INT unsigned int\r
-#endif\r
-\r
-#if defined(HEADER_RC2_H) && !defined(RC2_INT)\r
-/* I need to put in a mod for the alpha - eay */\r
-#define RC2_INT unsigned int\r
-#endif\r
-\r
-#if defined(HEADER_RC4_H)\r
-#if !defined(RC4_INT)\r
-/* using int types make the structure larger but make the code faster\r
- * on most boxes I have tested - up to %20 faster. */\r
-/*\r
- * I don't know what does "most" mean, but declaring "int" is a must on:\r
- * - Intel P6 because partial register stalls are very expensive;\r
- * - elder Alpha because it lacks byte load/store instructions;\r
- */\r
-#define RC4_INT unsigned int\r
-#endif\r
-#if !defined(RC4_CHUNK)\r
-/*\r
- * This enables code handling data aligned at natural CPU word\r
- * boundary. See crypto/rc4/rc4_enc.c for further details.\r
- */\r
-#undef RC4_CHUNK\r
-#endif\r
-#endif\r
-\r
-#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)\r
-/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a\r
- * %20 speed up (longs are 8 bytes, int's are 4). */\r
-#ifndef DES_LONG\r
-#define DES_LONG unsigned long\r
-#endif\r
-#endif\r
-\r
-#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)\r
-#define CONFIG_HEADER_BN_H\r
-#define BN_LLONG\r
-\r
-/* Should we define BN_DIV2W here? */\r
-\r
-/* Only one for the following should be defined */\r
-#undef SIXTY_FOUR_BIT_LONG\r
-#undef SIXTY_FOUR_BIT\r
-#define THIRTY_TWO_BIT\r
-#endif\r
-\r
-#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)\r
-#define CONFIG_HEADER_RC4_LOCL_H\r
-/* if this is defined data[i] is used instead of *data, this is a %20\r
- * speedup on x86 */\r
-#define RC4_INDEX\r
-#endif\r
-\r
-#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)\r
-#define CONFIG_HEADER_BF_LOCL_H\r
-#undef BF_PTR\r
-#endif /* HEADER_BF_LOCL_H */\r
-\r
-#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)\r
-#define CONFIG_HEADER_DES_LOCL_H\r
-#ifndef DES_DEFAULT_OPTIONS\r
-/* the following is tweaked from a config script, that is why it is a\r
- * protected undef/define */\r
-#ifndef DES_PTR\r
-#undef DES_PTR\r
-#endif\r
-\r
-/* This helps C compiler generate the correct code for multiple functional\r
- * units.  It reduces register dependancies at the expense of 2 more\r
- * registers */\r
-#ifndef DES_RISC1\r
-#undef DES_RISC1\r
-#endif\r
-\r
-#ifndef DES_RISC2\r
-#undef DES_RISC2\r
-#endif\r
-\r
-#if defined(DES_RISC1) && defined(DES_RISC2)\r
-YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!\r
-#endif\r
-\r
-/* Unroll the inner loop, this sometimes helps, sometimes hinders.\r
- * Very mucy CPU dependant */\r
-#ifndef DES_UNROLL\r
-#undef DES_UNROLL\r
-#endif\r
-\r
-/* These default values were supplied by\r
- * Peter Gutman <pgut001@cs.auckland.ac.nz>\r
- * They are only used if nothing else has been defined */\r
-#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)\r
-/* Special defines which change the way the code is built depending on the\r
-   CPU and OS.  For SGI machines you can use _MIPS_SZLONG (32 or 64) to find\r
-   even newer MIPS CPU's, but at the moment one size fits all for\r
-   optimization options.  Older Sparc's work better with only UNROLL, but\r
-   there's no way to tell at compile time what it is you're running on */\r
\r
-#if defined( sun )             /* Newer Sparc's */\r
-#  define DES_PTR\r
-#  define DES_RISC1\r
-#  define DES_UNROLL\r
-#elif defined( __ultrix )      /* Older MIPS */\r
-#  define DES_PTR\r
-#  define DES_RISC2\r
-#  define DES_UNROLL\r
-#elif defined( __osf1__ )      /* Alpha */\r
-#  define DES_PTR\r
-#  define DES_RISC2\r
-#elif defined ( _AIX )         /* RS6000 */\r
-  /* Unknown */\r
-#elif defined( __hpux )                /* HP-PA */\r
-  /* Unknown */\r
-#elif defined( __aux )         /* 68K */\r
-  /* Unknown */\r
-#elif defined( __dgux )                /* 88K (but P6 in latest boxes) */\r
-#  define DES_UNROLL\r
-#elif defined( __sgi )         /* Newer MIPS */\r
-#  define DES_PTR\r
-#  define DES_RISC2\r
-#  define DES_UNROLL\r
-#elif defined(i386) || defined(__i386__)       /* x86 boxes, should be gcc */\r
-#  define DES_PTR\r
-#  define DES_RISC1\r
-#  define DES_UNROLL\r
-#endif /* Systems-specific speed defines */\r
-#endif\r
-\r
-#endif /* DES_DEFAULT_OPTIONS */\r
-#endif /* HEADER_DES_LOCL_H */\r
+/* opensslconf.h */
+/* WARNING: Generated automatically from opensslconf.h.in by Configure. */
+
+/* OpenSSL was configured with the following options: */
+#ifndef OPENSSL_SYSNAME_WIN32
+# define OPENSSL_SYSNAME_WIN32
+#endif
+#ifndef OPENSSL_DOING_MAKEDEPEND
+
+
+#ifndef OPENSSL_NO_GMP
+# define OPENSSL_NO_GMP
+#endif
+#ifndef OPENSSL_NO_JPAKE
+# define OPENSSL_NO_JPAKE
+#endif
+#ifndef OPENSSL_NO_KRB5
+# define OPENSSL_NO_KRB5
+#endif
+#ifndef OPENSSL_NO_MD2
+# define OPENSSL_NO_MD2
+#endif
+#ifndef OPENSSL_NO_RC5
+# define OPENSSL_NO_RC5
+#endif
+#ifndef OPENSSL_NO_RFC3779
+# define OPENSSL_NO_RFC3779
+#endif
+#ifndef OPENSSL_NO_STORE
+# define OPENSSL_NO_STORE
+#endif
+
+#endif /* OPENSSL_DOING_MAKEDEPEND */
+
+#ifndef OPENSSL_THREADS
+# define OPENSSL_THREADS
+#endif
+#ifndef OPENSSL_NO_ASM
+# define OPENSSL_NO_ASM
+#endif
+
+/* The OPENSSL_NO_* macros are also defined as NO_* if the application
+   asks for it.  This is a transient feature that is provided for those
+   who haven't had the time to do the appropriate changes in their
+   applications.  */
+#ifdef OPENSSL_ALGORITHM_DEFINES
+# if defined(OPENSSL_NO_GMP) && !defined(NO_GMP)
+#  define NO_GMP
+# endif
+# if defined(OPENSSL_NO_JPAKE) && !defined(NO_JPAKE)
+#  define NO_JPAKE
+# endif
+# if defined(OPENSSL_NO_KRB5) && !defined(NO_KRB5)
+#  define NO_KRB5
+# endif
+# if defined(OPENSSL_NO_MD2) && !defined(NO_MD2)
+#  define NO_MD2
+# endif
+# if defined(OPENSSL_NO_RC5) && !defined(NO_RC5)
+#  define NO_RC5
+# endif
+# if defined(OPENSSL_NO_RFC3779) && !defined(NO_RFC3779)
+#  define NO_RFC3779
+# endif
+# if defined(OPENSSL_NO_STORE) && !defined(NO_STORE)
+#  define NO_STORE
+# endif
+#endif
+
+/* crypto/opensslconf.h.in */
+
+/* Generate 80386 code? */
+#undef I386_ONLY
+
+#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
+#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
+#define ENGINESDIR "/usr/local/ssl/lib/engines"
+#define OPENSSLDIR "/usr/local/ssl"
+#endif
+#endif
+
+#undef OPENSSL_UNISTD
+#define OPENSSL_UNISTD <unistd.h>
+
+#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
+#define OPENSSL_EXPORT_VAR_AS_FUNCTION
+
+#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
+#define IDEA_INT unsigned int
+#endif
+
+#if defined(HEADER_MD2_H) && !defined(MD2_INT)
+#define MD2_INT unsigned int
+#endif
+
+#if defined(HEADER_RC2_H) && !defined(RC2_INT)
+/* I need to put in a mod for the alpha - eay */
+#define RC2_INT unsigned int
+#endif
+
+#if defined(HEADER_RC4_H)
+#if !defined(RC4_INT)
+/* using int types make the structure larger but make the code faster
+ * on most boxes I have tested - up to %20 faster. */
+/*
+ * I don't know what does "most" mean, but declaring "int" is a must on:
+ * - Intel P6 because partial register stalls are very expensive;
+ * - elder Alpha because it lacks byte load/store instructions;
+ */
+#define RC4_INT unsigned int
+#endif
+#if !defined(RC4_CHUNK)
+/*
+ * This enables code handling data aligned at natural CPU word
+ * boundary. See crypto/rc4/rc4_enc.c for further details.
+ */
+#undef RC4_CHUNK
+#endif
+#endif
+
+#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
+/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
+ * %20 speed up (longs are 8 bytes, int's are 4). */
+#ifndef DES_LONG
+#define DES_LONG unsigned long
+#endif
+#endif
+
+#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
+#define CONFIG_HEADER_BN_H
+#define BN_LLONG
+
+/* Should we define BN_DIV2W here? */
+
+/* Only one for the following should be defined */
+#undef SIXTY_FOUR_BIT_LONG
+#undef SIXTY_FOUR_BIT
+#define THIRTY_TWO_BIT
+#endif
+
+#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)
+#define CONFIG_HEADER_RC4_LOCL_H
+/* if this is defined data[i] is used instead of *data, this is a %20
+ * speedup on x86 */
+#define RC4_INDEX
+#endif
+
+#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
+#define CONFIG_HEADER_BF_LOCL_H
+#undef BF_PTR
+#endif /* HEADER_BF_LOCL_H */
+
+#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
+#define CONFIG_HEADER_DES_LOCL_H
+#ifndef DES_DEFAULT_OPTIONS
+/* the following is tweaked from a config script, that is why it is a
+ * protected undef/define */
+#ifndef DES_PTR
+#undef DES_PTR
+#endif
+
+/* This helps C compiler generate the correct code for multiple functional
+ * units.  It reduces register dependancies at the expense of 2 more
+ * registers */
+#ifndef DES_RISC1
+#undef DES_RISC1
+#endif
+
+#ifndef DES_RISC2
+#undef DES_RISC2
+#endif
+
+#if defined(DES_RISC1) && defined(DES_RISC2)
+YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
+#endif
+
+/* Unroll the inner loop, this sometimes helps, sometimes hinders.
+ * Very mucy CPU dependant */
+#ifndef DES_UNROLL
+#undef DES_UNROLL
+#endif
+
+/* These default values were supplied by
+ * Peter Gutman <pgut001@cs.auckland.ac.nz>
+ * They are only used if nothing else has been defined */
+#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
+/* Special defines which change the way the code is built depending on the
+   CPU and OS.  For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
+   even newer MIPS CPU's, but at the moment one size fits all for
+   optimization options.  Older Sparc's work better with only UNROLL, but
+   there's no way to tell at compile time what it is you're running on */
+#if defined( sun )             /* Newer Sparc's */
+#  define DES_PTR
+#  define DES_RISC1
+#  define DES_UNROLL
+#elif defined( __ultrix )      /* Older MIPS */
+#  define DES_PTR
+#  define DES_RISC2
+#  define DES_UNROLL
+#elif defined( __osf1__ )      /* Alpha */
+#  define DES_PTR
+#  define DES_RISC2
+#elif defined ( _AIX )         /* RS6000 */
+  /* Unknown */
+#elif defined( __hpux )                /* HP-PA */
+  /* Unknown */
+#elif defined( __aux )         /* 68K */
+  /* Unknown */
+#elif defined( __dgux )                /* 88K (but P6 in latest boxes) */
+#  define DES_UNROLL
+#elif defined( __sgi )         /* Newer MIPS */
+#  define DES_PTR
+#  define DES_RISC2
+#  define DES_UNROLL
+#elif defined(i386) || defined(__i386__)       /* x86 boxes, should be gcc */
+#  define DES_PTR
+#  define DES_RISC1
+#  define DES_UNROLL
+#endif /* Systems-specific speed defines */
+#endif
+
+#endif /* DES_DEFAULT_OPTIONS */
+#endif /* HEADER_DES_LOCL_H */
index 6808215c43b23a21f2c2641b204d5f0add27624d..b976b2a734514f5512409ceac7e01a1df1502fc4 100644 (file)
-Current information is in ReadMeWin32.txt.\r
-\r
-What follows is previous contents of that file.\r
-\r
-\r
-\r
-Markus Hoffrogge:\r
-\r
-Compilation for WIN32 is possible now again for version 1.6.10 - non\r
-CPP parts only.  Project files have been tested under VicualStudio\r
-6.0.  Build project all - this will build all other projects.  CPP\r
-code is not compiled and adopted right now.\r
-\r
-This release excludes the option to compile an "http.sys" version of\r
-an XML-RPC server. If you do wish to build in the http.sys server, set\r
-the MUST_BUILD_HTTP_SYS_SERVER to 1 in the transport_config_win32.h\r
-and/or the transport_config.h file.  Successful conpilation requires\r
-installation of the Microsoft Platform SDK for Windows XP SP2 (or\r
-later) to get the latest header and link libraries required to support\r
-this functionality.  After installation, be sure to properly register\r
-the directories as documented in the Platform SDK help file topic\r
-"Installing the Platform SDK with Visual Studio".  Download the\r
-Platform SDK from:\r
-http://www.microsoft.com/msdownload/platformsdk/sdkupdate/\r
-\r
-To create the three headers required for Win32 WinInet compilation,\r
-run the ConfigureWin32.bat found in the Windows directory.  If you\r
-wish to alter the transports that are built to include curl or libwww,\r
-adjust the preprocessor definitions at the top of the\r
-transport_config_win32.h and/or the transport_config.h files.  See the\r
-file UsingCURLinWin32.txt for more information on using the curl\r
-transport.\r
-\r
-To compile, open the xmlrpc.dsw file in Visual Studio 6 or greater.\r
-The project will convert and work fine in Visual Studio 2003 as well -\r
-other versions of Visual Studio were not tested.\r
-\r
-NOTE: If you get an error while opening or converting the project\r
-files, it is likely due to using WinRar or similar to decompress the\r
-distribution tarball.  You can use WinZip or another utility to\r
-correctly decompress the .tgz file.\r
-\r
-Suggested testing for evaluation of the library involves a few\r
-projects.  Here is a quick getting started guide:\r
-\r
-1) Set the Active Project to query_meerkat and build it in release or\r
-   debug modes.  The dependent projects will be built automatically.\r
-   In the project settings dialog, add the argument for what you wish\r
-   to query meerkat for - "Windows" is a good query.  Run the project.\r
-   This will query the meerkat server for articles related to windows\r
-   and output the results to the console.\r
-\r
-2) Set the Active Project to xmlrpc_sample_add_server and build it in\r
-   release or debug modes.  The dependent projects will be built\r
-   automatically.  In the project settings dialog, add the argument\r
-   for the port to 8080.  This will run the server sample which adds\r
-   two numbers and returns a result.  You should run this from a\r
-   command prompt instead of through Visual Studio so you may run the\r
-   sample client as well.\r
-\r
-3) Set the Active Project to xmlrpc_sample_add_sync_client or\r
-   xmlrpc_sample_add_async_client and build it in release or debug\r
-   modes.  The dependent projects will be built automatically.  This\r
-   will run the client sample which submits two numbers to be added to\r
-   the server application as described above and displays the result.\r
-   Note that the client example comes in the sync and async varieties.\r
-\r
-Steven Bone\r
-July 27, 2005\r
-sbone@pobox.com\r
-\r
-WIN32 CHANGES\r
-\r
-Changes from the 1.02 release for Win32:\r
-\r
-1) Option to easily disable the http.sys server for those who do not\r
-   need it or wish to download the Platform SDK.\r
-\r
-Changes from the 1.01 -> 1.02 release for Win32:\r
-\r
-1) Project files for gennmtab, xmlparse, and xmltok updated to include the\r
-   path to the xmlrpc_config.h file.\r
-\r
-2) Bugfix for WinInet authentication.\r
-\r
-3) Supports xmlrpc_xportparms, xmlrpc_wininet_xportparms added\r
-   *potential breaking change* - now by default we fail on invalid\r
-   SSL certs, use the xmlrpc_wininet_xportparms option to enable old\r
-   behavior.\r
-\r
-4) Added project file for xmlrpc_sample_auth_client\r
-\r
-5) Added project and src for a http.sys based xmlrpc-c server.  See comments\r
-   in the source files.  This supports Windows XP SP2 and Windows Server\r
-   2003 and allows other http.sys based applications to bind to the same\r
-   port.  In Server 2003, IIS uses http.sys and thus the XML-RPC server\r
-   can be run on the standard port 80 along with IIS.  The sample also\r
-   supports https and basic authentication.  It tested OK with\r
-   http://validator.xmlrpc.com/  Note that the Platform SDK headers and\r
-   link libraries for Windows XP SP2 or newer are required to compile\r
-   xmlrpc-c for this module.  If you are not using this server, it is\r
-   safe to exclude the xmlrpc_server_w32httpsys.c file from the xmlrpc\r
-   project and these dependencies will not be required.  You can get the\r
-   latest platform SDK at\r
-   http://www.microsoft.com/msdownload/platformsdk/sdkupdate/\r
-   Be sure after installation to choose the program to "register the PSDK\r
-   directories with Visual Studio" so the newer headers are found.\r
-\r
-6) Better support for libcurl.  Updated project files,\r
-   transport_config_win32.h, added documentation UsingCURLinWin32.txt.\r
-\r
-Changes from the 1.00 -> 1.01 release for Win32:\r
-\r
-1) Project files now reflect static linking for the expat XML library.\r
-\r
-2) Example projects were created/updated to keep them in sync with the\r
-   distribution.  The project files were moved into the Windows\r
-   directory\r
-\r
-3) Projects for the rpc and cpp tests were created.  The\r
-   xmlrpc_win32_config.h defines the directory for the test files relative\r
-   to the output directory\r
-\r
-4) Major refactoring of the Wininet Transport.\r
-\r
+Current information is in ReadMeWin32.txt.
+
+What follows is previous contents of that file.
+
+
+
+Markus Hoffrogge:
+
+Compilation for WIN32 is possible now again for version 1.6.10 - non
+CPP parts only.  Project files have been tested under VicualStudio
+6.0.  Build project all - this will build all other projects.  CPP
+code is not compiled and adopted right now.
+
+This release excludes the option to compile an "http.sys" version of
+an XML-RPC server. If you do wish to build in the http.sys server, set
+the MUST_BUILD_HTTP_SYS_SERVER to 1 in the transport_config_win32.h
+and/or the transport_config.h file.  Successful conpilation requires
+installation of the Microsoft Platform SDK for Windows XP SP2 (or
+later) to get the latest header and link libraries required to support
+this functionality.  After installation, be sure to properly register
+the directories as documented in the Platform SDK help file topic
+"Installing the Platform SDK with Visual Studio".  Download the
+Platform SDK from:
+http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
+
+To create the three headers required for Win32 WinInet compilation,
+run the ConfigureWin32.bat found in the Windows directory.  If you
+wish to alter the transports that are built to include curl or libwww,
+adjust the preprocessor definitions at the top of the
+transport_config_win32.h and/or the transport_config.h files.  See the
+file UsingCURLinWin32.txt for more information on using the curl
+transport.
+
+To compile, open the xmlrpc.dsw file in Visual Studio 6 or greater.
+The project will convert and work fine in Visual Studio 2003 as well -
+other versions of Visual Studio were not tested.
+
+NOTE: If you get an error while opening or converting the project
+files, it is likely due to using WinRar or similar to decompress the
+distribution tarball.  You can use WinZip or another utility to
+correctly decompress the .tgz file.
+
+Suggested testing for evaluation of the library involves a few
+projects.  Here is a quick getting started guide:
+
+1) Set the Active Project to query_meerkat and build it in release or
+   debug modes.  The dependent projects will be built automatically.
+   In the project settings dialog, add the argument for what you wish
+   to query meerkat for - "Windows" is a good query.  Run the project.
+   This will query the meerkat server for articles related to windows
+   and output the results to the console.
+
+2) Set the Active Project to xmlrpc_sample_add_server and build it in
+   release or debug modes.  The dependent projects will be built
+   automatically.  In the project settings dialog, add the argument
+   for the port to 8080.  This will run the server sample which adds
+   two numbers and returns a result.  You should run this from a
+   command prompt instead of through Visual Studio so you may run the
+   sample client as well.
+
+3) Set the Active Project to xmlrpc_sample_add_sync_client or
+   xmlrpc_sample_add_async_client and build it in release or debug
+   modes.  The dependent projects will be built automatically.  This
+   will run the client sample which submits two numbers to be added to
+   the server application as described above and displays the result.
+   Note that the client example comes in the sync and async varieties.
+
+Steven Bone
+July 27, 2005
+sbone@pobox.com
+
+WIN32 CHANGES
+
+Changes from the 1.02 release for Win32:
+
+1) Option to easily disable the http.sys server for those who do not
+   need it or wish to download the Platform SDK.
+
+Changes from the 1.01 -> 1.02 release for Win32:
+
+1) Project files for gennmtab, xmlparse, and xmltok updated to include the
+   path to the xmlrpc_config.h file.
+
+2) Bugfix for WinInet authentication.
+
+3) Supports xmlrpc_xportparms, xmlrpc_wininet_xportparms added
+   *potential breaking change* - now by default we fail on invalid
+   SSL certs, use the xmlrpc_wininet_xportparms option to enable old
+   behavior.
+
+4) Added project file for xmlrpc_sample_auth_client
+
+5) Added project and src for a http.sys based xmlrpc-c server.  See comments
+   in the source files.  This supports Windows XP SP2 and Windows Server
+   2003 and allows other http.sys based applications to bind to the same
+   port.  In Server 2003, IIS uses http.sys and thus the XML-RPC server
+   can be run on the standard port 80 along with IIS.  The sample also
+   supports https and basic authentication.  It tested OK with
+   http://validator.xmlrpc.com/  Note that the Platform SDK headers and
+   link libraries for Windows XP SP2 or newer are required to compile
+   xmlrpc-c for this module.  If you are not using this server, it is
+   safe to exclude the xmlrpc_server_w32httpsys.c file from the xmlrpc
+   project and these dependencies will not be required.  You can get the
+   latest platform SDK at
+   http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
+   Be sure after installation to choose the program to "register the PSDK
+   directories with Visual Studio" so the newer headers are found.
+
+6) Better support for libcurl.  Updated project files,
+   transport_config_win32.h, added documentation UsingCURLinWin32.txt.
+
+Changes from the 1.00 -> 1.01 release for Win32:
+
+1) Project files now reflect static linking for the expat XML library.
+
+2) Example projects were created/updated to keep them in sync with the
+   distribution.  The project files were moved into the Windows
+   directory
+
+3) Projects for the rpc and cpp tests were created.  The
+   xmlrpc_win32_config.h defines the directory for the test files relative
+   to the output directory
+
+4) Major refactoring of the Wininet Transport.
+
index 4ee1259f41a9246a4791af7c33a5a24155882965..4c1c47af6d6aa0f676d09f77bad3f13d603ee681 100644 (file)
-Background:\r
-\r
-Let\92s say you need to have a Xmlrpc-c client running as a service.\r
-In this situation you cannot use WinInet.  Details of the restriction\r
-can be found on the libcurl website or various Microsoft KB articles.\r
-The alternative is to use libcurl.  This document describes the steps\r
-required to use libcurl as your client XML transport mechanism.\r
-\r
-Overview:\r
-\r
-The default projects in Xmlrpc-c create standalone executables that do\r
-not require other DLL\92s (release mode).  While the case can be made\r
-for this behavior pro and con, it is beyond this document to justify\r
-it.  Therefore, we need to create static link libraries for libcurl\r
-that mimics this behavior.  Once the link libraries are created, we\r
-can then add them (plus the requisite curl headers) into the Xmlrpc-c\r
-project.  Finally, we enable the compilation of the curl transport\r
-file and tell Xmlrpc-c that we will be using curl.  Lastly, we build\r
-and test the project.\r
-\r
-Steps to use CURL with Win32 Xmlrpc-c:\r
-\r
-1. Download the CURL source.  In the \93include\94 folder of the\r
-CURL distribution, copy the curl directory to the \93lib\94\r
-directory of xmlrpc-c.  When you are done with this step, you should\r
-have a curl.h file located in the directory xmlrpc-c\lib\curl\.  The\r
-xmlrpc project looks in this relative path for the necessary headers.\r
-\r
-2. In the CURL distribution, lib directory, is a file called\r
-Makefile.vc6.  Edit this file.  The line starting with CCNODBG should\r
-be changed to:\r
-\r
-CCNODBG    = cl.exe /MT /O2 /DNDEBUG\r
-\r
-The /MT option links with the Multithreaded non-dll version of the c\r
-runtime.  If this change is not made, the project will not link, as\r
-this is the default setting for the Xmlrpc-c projects.\r
-\r
-3. Open a command prompt window and run the vcvars32.bat file in your\r
-Visual C++ distribution.  If you are using Studio 2002 or 2003, use\r
-the \93Visual Studio Command Prompt\94 from the Start menu to open\r
-the console.\r
-\r
-4. Compile release and debug mode libraries.  For the purposes of this\r
-tutorial, we are going to build only the curl library without ssl or\r
-zlib compression capability.  In the command prompt, navigate to the\r
-curl\lib directory and execute the following commands:\r
-\r
-nmake -f Makefile.vc6 CFG=debug RTLIBCFG=static\r
-nmake -f Makefile.vc6 CFG=release RTLIBCFG=static\r
-\r
-5. The above step should have generated two static link libraries in\r
-the curl\lib directory: libcurl.lib and libcurld.lib.  Copy these\r
-files into the root of the xmlrpc-c\lib\ directory.  This step ends\r
-our involvement with the actual CURL distribution.  The remainder of\r
-the steps are for Xmlrpc-c.\r
-\r
-6. Open the Xmlrpc-c Visual Studio workspace (Instructions for VC++ 6,\r
-other versions are slightly different).  In File View, expand the\r
-xmlrpc project.  Under "Source Files" there is an entry for\r
-xmlrpc_curl_transport.c This is not included in any build paths by\r
-default.  To enable it for compilation, right click the file to change\r
-the settings.  In the dropdown, select "All Configurations."  Pick the\r
-General tab and uncheck the "Exclude File From Build" setting.  Press\r
-OK to save your changes to the project.\r
-\r
-7.  In the "Header Files" section of the xmlrpc project is a file\r
-called "transport_config.h".  Edit this file to set the\r
-MUST_BUILD_CURL_CLIENT to 1, and if you wish to change the default\r
-transport to curl, change the XMLRPC_DEFAULT_TRANSPORT to "curl".\r
-\r
-8. Compile and test one or more of the sample client projects.\r
-\r
-USING MSVC8 - 2007/11/25\r
-========================\r
-\r
-This is for MSVC8, but most will apply to all version of Microsoft\r
-Visual Studio.\r
-\r
-Download the CURL source. Run the buildconf.bat to generate some\r
-additional files. This builds a 'dummy' hugehelp.c, but it can also\r
-be built using the src\mkhelp.pl Perl script. You may have to build\r
-you own VCPROJ file for CURL, if you want to use MSVC. It does\r
-provide a Makefile.vc6 as mentioned above.\r
-\r
-To build all the CURL library variations, use\r
-> nmake /nologo vc-all \r
-but note this will use the /MD[d] DLL runtime. Only by adding\r
-RTCFGLIB=static to each of the makefile commands will /MT[d] be\r
-used.\r
-\r
-Essentially, for building the static Debug or Release CURL libraries,\r
-it is all the sources in the curl\lib folder. Make sure you choose /MT\r
-and /MTd for the runtime, and build both using say the name libcurl.lib.\r
-\r
-When you have Debug\libcurl.lib and Release\libcurl.lib built, you\r
-are ready to build and link them with Xmlrpc-c.\r
-\r
-After running xmlrpc-c\Windows\configurewin32.bat, loading xmlrpc.dsw\r
-will convert all the projects to VCPROJ files. In the File View, in\r
-the xmlrpc project, in the properties of xmlrpc_curl_transport.c,\r
-change 'Exclude file from build' from 'yes' to 'no', for Debug\r
-and Release.\r
-\r
-In the 'Header Files' section, open the "transport_config.h" file,\r
-and change MUST_BUILD_CURL_CLIENT to 1, and the XMLRPC_DEFAULT_TRANSPORT\r
-to "curl", if desired.\r
-\r
-As usual, for each of the 'client' projects, and rpctest, in the properties,\r
-Linker section, you can add the library libcurl.lib on the Input tab, and\r
-the relative path to the library in the General tab to something like -\r
-..\..\curl\Debug and ..\..\curl\Release, or where ever you built or\r
-copied these static libraries too.\r
-\r
-Or you can adjust the Windows/curlink.h, to directly point to your\r
-respective Debug and Release static CURL libraries, either where you\r
-built them, or where you copied them too.\r
-\r
-Now, Xmlrpc-c should build using the CURL transport.\r
-\r
-Note, for the final linking, all RUNTIME libraries MUST be the SAME.\r
-A mixture of /MD and /MT will give big linkage problems. Any one project\r
-built with the alterate RUNTIME will show many items defined more than\r
-once. And of course, you can also NOT mix Debug with Release. That is\r
-/MDd with /MD, nor /MTd with /MT, or else there will be unresolved\r
-debug items.\r
-\r
-EOF\r
+Background:
+
+Let\92s say you need to have a Xmlrpc-c client running as a service.
+In this situation you cannot use WinInet.  Details of the restriction
+can be found on the libcurl website or various Microsoft KB articles.
+The alternative is to use libcurl.  This document describes the steps
+required to use libcurl as your client XML transport mechanism.
+
+Overview:
+
+The default projects in Xmlrpc-c create standalone executables that do
+not require other DLL\92s (release mode).  While the case can be made
+for this behavior pro and con, it is beyond this document to justify
+it.  Therefore, we need to create static link libraries for libcurl
+that mimics this behavior.  Once the link libraries are created, we
+can then add them (plus the requisite curl headers) into the Xmlrpc-c
+project.  Finally, we enable the compilation of the curl transport
+file and tell Xmlrpc-c that we will be using curl.  Lastly, we build
+and test the project.
+
+Steps to use CURL with Win32 Xmlrpc-c:
+
+1. Download the CURL source.  In the \93include\94 folder of the
+CURL distribution, copy the curl directory to the \93lib\94
+directory of xmlrpc-c.  When you are done with this step, you should
+have a curl.h file located in the directory xmlrpc-c\lib\curl\.  The
+xmlrpc project looks in this relative path for the necessary headers.
+
+2. In the CURL distribution, lib directory, is a file called
+Makefile.vc6.  Edit this file.  The line starting with CCNODBG should
+be changed to:
+
+CCNODBG    = cl.exe /MT /O2 /DNDEBUG
+
+The /MT option links with the Multithreaded non-dll version of the c
+runtime.  If this change is not made, the project will not link, as
+this is the default setting for the Xmlrpc-c projects.
+
+3. Open a command prompt window and run the vcvars32.bat file in your
+Visual C++ distribution.  If you are using Studio 2002 or 2003, use
+the \93Visual Studio Command Prompt\94 from the Start menu to open
+the console.
+
+4. Compile release and debug mode libraries.  For the purposes of this
+tutorial, we are going to build only the curl library without ssl or
+zlib compression capability.  In the command prompt, navigate to the
+curl\lib directory and execute the following commands:
+
+nmake -f Makefile.vc6 CFG=debug RTLIBCFG=static
+nmake -f Makefile.vc6 CFG=release RTLIBCFG=static
+
+5. The above step should have generated two static link libraries in
+the curl\lib directory: libcurl.lib and libcurld.lib.  Copy these
+files into the root of the xmlrpc-c\lib\ directory.  This step ends
+our involvement with the actual CURL distribution.  The remainder of
+the steps are for Xmlrpc-c.
+
+6. Open the Xmlrpc-c Visual Studio workspace (Instructions for VC++ 6,
+other versions are slightly different).  In File View, expand the
+xmlrpc project.  Under "Source Files" there is an entry for
+xmlrpc_curl_transport.c This is not included in any build paths by
+default.  To enable it for compilation, right click the file to change
+the settings.  In the dropdown, select "All Configurations."  Pick the
+General tab and uncheck the "Exclude File From Build" setting.  Press
+OK to save your changes to the project.
+
+7.  In the "Header Files" section of the xmlrpc project is a file
+called "transport_config.h".  Edit this file to set the
+MUST_BUILD_CURL_CLIENT to 1, and if you wish to change the default
+transport to curl, change the XMLRPC_DEFAULT_TRANSPORT to "curl".
+
+8. Compile and test one or more of the sample client projects.
+
+USING MSVC8 - 2007/11/25
+========================
+
+This is for MSVC8, but most will apply to all version of Microsoft
+Visual Studio.
+
+Download the CURL source. Run the buildconf.bat to generate some
+additional files. This builds a 'dummy' hugehelp.c, but it can also
+be built using the src\mkhelp.pl Perl script. You may have to build
+you own VCPROJ file for CURL, if you want to use MSVC. It does
+provide a Makefile.vc6 as mentioned above.
+
+To build all the CURL library variations, use
+> nmake /nologo vc-all 
+but note this will use the /MD[d] DLL runtime. Only by adding
+RTCFGLIB=static to each of the makefile commands will /MT[d] be
+used.
+
+Essentially, for building the static Debug or Release CURL libraries,
+it is all the sources in the curl\lib folder. Make sure you choose /MT
+and /MTd for the runtime, and build both using say the name libcurl.lib.
+
+When you have Debug\libcurl.lib and Release\libcurl.lib built, you
+are ready to build and link them with Xmlrpc-c.
+
+After running xmlrpc-c\Windows\configurewin32.bat, loading xmlrpc.dsw
+will convert all the projects to VCPROJ files. In the File View, in
+the xmlrpc project, in the properties of xmlrpc_curl_transport.c,
+change 'Exclude file from build' from 'yes' to 'no', for Debug
+and Release.
+
+In the 'Header Files' section, open the "transport_config.h" file,
+and change MUST_BUILD_CURL_CLIENT to 1, and the XMLRPC_DEFAULT_TRANSPORT
+to "curl", if desired.
+
+As usual, for each of the 'client' projects, and rpctest, in the properties,
+Linker section, you can add the library libcurl.lib on the Input tab, and
+the relative path to the library in the General tab to something like -
+..\..\curl\Debug and ..\..\curl\Release, or where ever you built or
+copied these static libraries too.
+
+Or you can adjust the Windows/curlink.h, to directly point to your
+respective Debug and Release static CURL libraries, either where you
+built them, or where you copied them too.
+
+Now, Xmlrpc-c should build using the CURL transport.
+
+Note, for the final linking, all RUNTIME libraries MUST be the SAME.
+A mixture of /MD and /MT will give big linkage problems. Any one project
+built with the alterate RUNTIME will show many items defined more than
+once. And of course, you can also NOT mix Debug with Release. That is
+/MDd with /MD, nor /MTd with /MT, or else there will be unresolved
+debug items.
+
+EOF
index 515f73d1d6c3f2f77ca80fcf971d8bc0d9e3e344..25e93ef811db11dd863785cff97d4676d8e1e810 100644 (file)
@@ -1,51 +1,51 @@
-\r
-Using xmlrpc_cpp_proxy.dsp\r
-\r
-While not included in the main xmlrpc.dsw file, this\r
-xmlrpc_cpp_proxy.dsp, if added as a project to the xmlrpc solution,\r
-will build bin\xmlrpc_cpp_proxy.exe and xmlrpc_cpp_proxyD.exe, for\r
-testing using the default WinINET transport.\r
-\r
-After you have loaded the xmlrpc_cpp_proxy.dsp, which adds an \r
-xmlrpc_cpp_proxy project, it is necessary to ADD a dependance on\r
-the xmlrpc library, to complete the link.\r
-\r
-To do this in say MSVC8, select the xmlrpc_cpp_proxy project, and right\r
-mouse click, and in the context menu, select 'Project Dependancies...'.\r
-And in the Project Dependancies dialog, check the xmlrpc proejct,\r
-then [Ok] ...\r
-\r
-To test your xmlrpc_cpp_proxy[D].exe -\r
-\r
-\r
-1. In a console start the server, like -\r
-\r
-bin/xmlrpc_sample_add_serverD 8080\r
-\r
-Note, since this server opens a socket, you may have to enable it on some\r
-anti-virus software that detects the socket being established, and\r
-'Unblock' it in the Windows Security Alert system dialog that appears.\r
-\r
-You can later remove this program from the Firewall exceptions, through\r
-Control Panel -> Windows Firewall, selecting the 'Exceptions' tab, where\r
-you can also disable this 'blocking' notification, but not recommended.\r
-\r
-The server should start, and report -\r
-Running XML-RPC server...\r
-\r
-\r
-2. In another console run the cpp proxy client, with say -\r
-\r
-bin>xmlrpc_cpp_proxyD http://localhost:8080/RPC2 null null\r
-\r
-The client should connect to the server, and output a 'null' header,\r
-and implementation file. If this functions, for a bigger example, try -\r
-\r
-bin>xmlrpc_cpp_proxyD http://localhost:8080/RPC2 system systemProxy\r
-\r
-and you should see a better example of a class header, and the \r
-implementation code ...\r
-\r
-20 December, 2007\r
-\r
-EOF\r
+
+Using xmlrpc_cpp_proxy.dsp
+
+While not included in the main xmlrpc.dsw file, this
+xmlrpc_cpp_proxy.dsp, if added as a project to the xmlrpc solution,
+will build bin\xmlrpc_cpp_proxy.exe and xmlrpc_cpp_proxyD.exe, for
+testing using the default WinINET transport.
+
+After you have loaded the xmlrpc_cpp_proxy.dsp, which adds an 
+xmlrpc_cpp_proxy project, it is necessary to ADD a dependance on
+the xmlrpc library, to complete the link.
+
+To do this in say MSVC8, select the xmlrpc_cpp_proxy project, and right
+mouse click, and in the context menu, select 'Project Dependancies...'.
+And in the Project Dependancies dialog, check the xmlrpc proejct,
+then [Ok] ...
+
+To test your xmlrpc_cpp_proxy[D].exe -
+
+
+1. In a console start the server, like -
+
+bin/xmlrpc_sample_add_serverD 8080
+
+Note, since this server opens a socket, you may have to enable it on some
+anti-virus software that detects the socket being established, and
+'Unblock' it in the Windows Security Alert system dialog that appears.
+
+You can later remove this program from the Firewall exceptions, through
+Control Panel -> Windows Firewall, selecting the 'Exceptions' tab, where
+you can also disable this 'blocking' notification, but not recommended.
+
+The server should start, and report -
+Running XML-RPC server...
+
+
+2. In another console run the cpp proxy client, with say -
+
+bin>xmlrpc_cpp_proxyD http://localhost:8080/RPC2 null null
+
+The client should connect to the server, and output a 'null' header,
+and implementation file. If this functions, for a bigger example, try -
+
+bin>xmlrpc_cpp_proxyD http://localhost:8080/RPC2 system systemProxy
+
+and you should see a better example of a class header, and the 
+implementation code ...
+
+20 December, 2007
+
+EOF
index 00db6a0a0e1d67061a804ab0578b7b03fd879824..4a287e542dc125a17327858c0ac2163c16d0e8ee 100644 (file)
@@ -1,11 +1,11 @@
-POST /cgi-bin/sample-cgi.cgi 1.0\r
-Host: localhost\r
-Content-Type: text/xml\r
-Content-Length: 141\r
-\r
-<?xml version="1.0" encoding="UTF-8"?>\r
-<methodCall>\r
-  <methodName>system.listMethods</methodName>\r
-  <params>\r
-  </params>\r
-</methodCall>\r
+POST /cgi-bin/sample-cgi.cgi 1.0
+Host: localhost
+Content-Type: text/xml
+Content-Length: 141
+
+<?xml version="1.0" encoding="UTF-8"?>
+<methodCall>
+  <methodName>system.listMethods</methodName>
+  <params>
+  </params>
+</methodCall>
index a7298108dfd24d7893723d54a195771f86550048..4d73d07018a7dda05e63f8461a210d52b0c9244f 100644 (file)
@@ -1,21 +1,21 @@
-ExprEval - Expression Evaluation Library\r
-Version 2.0\r
-\r
-Copyright (C) 2004 Brian Allen Vanderburg II\r
-\r
-This software is provided 'as-is', without any express or implied\r
-warranty.  In no event will the authors be held liable for any damages\r
-arising from the use of this software.\r
-\r
-Permission is granted to anyone to use this software for any purpose,\r
-including commercial applications, and to alter it and redistribute it\r
-freely, subject to the following restrictions:\r
-\r
-1. The origin of this software must not be misrepresented; you must not\r
-   claim that you wrote the original software. If you use this software\r
-   in a product, an acknowledgment in the product documentation would be\r
-   appreciated but is not required.\r
-2. Altered source versions must be plainly marked as such, and must not be\r
-   misrepresented as being the original software.\r
-3. This notice may not be removed or altered from any source distribution.\r
-\r
+ExprEval - Expression Evaluation Library
+Version 2.0
+
+Copyright (C) 2004 Brian Allen Vanderburg II
+
+This software is provided 'as-is', without any express or implied
+warranty.  In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+   claim that you wrote the original software. If you use this software
+   in a product, an acknowledgment in the product documentation would be
+   appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
+
index 8aefb3574680df8ec4a2b40515f6d343e0d004aa..50047e7643e5c3739ce97e6669e59bb59eeaa324 100644 (file)
-ExprEval - A C/C++ based expression evaluation library\r
-Written by: Brian Allen Vanderburg II\r
-Licensed under the ExprEval License\r
-------------------------------------------------------\r
-ExprEval is a mostly a C based expression evaluation\r
-library.  The only C++ part is the C++ Wrapper which\r
-encapsulates the complexity of the library usage.\r
-\r
-ExprEval supports the parsing of multiple expressions\r
-in a single expression string.  Each sub-expression\r
-must end with a semicolon.  It also supports the use\r
-of variables, constants, and functions.  Functions\r
-can take multiple arguments.  These arguments can\r
-also be expressions.\r
-\r
-ExprEval is very fast.  It first parses the expression\r
-string into a tree of actions to take.  After it has\r
-been parsed, an expression can be evaluated many times\r
-over an over.\r
-\r
-Functions, variables, and constants are stored in\r
-their own seperate lists.  This makes is where the\r
-lists can be shared among multiple expression objects.\r
-A function list can add all the functions needed, and\r
-then be added to each expression object, instead of\r
-added each needed function to each object.  The same\r
-goes for constant lists.  Variable lists make it where\r
-one expression can depend on a variable set in another.\r
-\r
-\r
-Saturday, July 1, 2006\r
-----------------------\r
-Version 2.6\r
-\r
-* Added a new value list function 'exprValListGetNext' that can be used to\r
-  enumerate the items in a value list.  Any of the items not needed (name,\r
-  value, or address) can be NULL.  For example:\r
-  \r
-  char *name;\r
-  EXPRTYPE val;\r
-  void *cookie;\r
-  \r
-  cookie = exprValListGetNext(vlist, &name, &value, NULL, NULL);\r
-  while(cookie)\r
-    {\r
-    /* Do something with name and value */\r
-    cookie = exprValListGetNext(vlist, &name, &value, NULL, cookie);\r
-    }\r
-    \r
-  You must make sure not to actually edit the returned name, because it is a\r
-  pointer into the value list to the name.  This can also be used to have one\r
-  value list store globals.  Global variables can be added to a value list, then\r
-  additional lists can be created, and before any variables are added\r
-  or the expression is parsed, the global list can be enumerated for name and\r
-  address and the exprValListAddAddress can be used to add them.  This way,\r
-  expressions can have their own private list, but some variables may be shared\r
-  on each expression through the global list.  This is useful especially if the\r
-  globals are not known at compile time, but can be adjusted by the user.\r
-  For example:\r
-  \r
-  exprValList *globals;\r
-  exprValList *v1;\r
-  exprValList *v2;\r
-  char *name;\r
-  EXPRTYPE *addr;\r
-  void *cookie;\r
-  \r
-  exprValListCreate(&globals);\r
-  /* Add variables to the list, perhaps read from a user file or something */\r
-  \r
-  exprValListCreate(&v1);\r
-  cookie = exprValListGetNext(globals, &name, NULL, &addr, NULL);\r
-  while(cookie)\r
-    {\r
-    exprValListAddAddress(v1, name, addr);\r
-    cookie = exprValListGetNext(globals, &name, NULL, &addr, cookie);\r
-    }\r
-  \r
-\r
-Friday, June 30, 2006\r
----------------------\r
-Version 2.5\r
-\r
-* Added a new value list function 'exprValListAddAddress'.  This function adds\r
-  a named value to the list, but uses the addresss of a stack variable.  The\r
-  stack variable is then used to set/get the value instead of the internal list\r
-  value.  You must ensure that the stack variable exists as long as it is used\r
-  by the expression.  This can permit, for example, a value name to be shared\r
-  with two different value lists like such:\r
-  \r
-  EXPRTYPE global_value;\r
-  exprValListAddAddress(vlist, "global", &global_value);\r
-  exprValListAddAddress(vlist2, "global", &global_value);\r
-  \r
-  Like this, the value can be directly accessed by the application, and each\r
-  value list will share it.  This can also be used to replace code from this:\r
-  \r
-  EXPRTYPE *a;\r
-  exprValListAdd(vlist, "var", 0.0);\r
-  exprValListGetAddress(vlist, "var", &a);\r
-  \r
-  To look like this:\r
-  \r
-  EXPRTYPE a;\r
-  exprValListAddAddress(vlist, "var", &a);\r
-* Added a value list function exprValListSet to set the value of a variable\r
-  (using the slow search method).  This is because the add functions now return\r
-  and error if the item (function/value) already exists instead of setting the\r
-  value of the item.  You can still use the fast direct access method.\r
-* Changed internal lists for function and value lists from binary trees to\r
-  linked lists.\r
-  \r
-  \r
-\r
-\r
-Thursday, May 4, 2006\r
----------------------\r
-Version 2.0\r
-\r
-* All internal functions are evaluated directly in the exprEvalNode call.\r
-  This gives some speed increase.\r
-* Removed parameter and reference count macros as well as functin creation\r
-  macro.  Parameter and reference count information can be set when adding\r
-  a function solver.\r
-* Removed exprMsgFuncType, since it is unused by the library.\r
-* Changed much of the internal names from one-letter variable names to\r
-  more meaningful names.\r
-\r
-Thursday, December 1, 2005\r
---------------------------\r
-Version 1.8\r
-\r
-* Added support for the ^ operator to raise to a power.\r
-  The pow function can still be used.\r
-* Moved basic math code (add,subtract,multiply,divide,negate,exponent)\r
-  and multiple expression support from function solvers to the exprEvalNode\r
-  function.\r
-\r
-Tuesday, November 22, 2005\r
---------------------------\r
-I still haven't been keeping up with history much.\r
-\r
-* Removed < and > as comments.  Instead use # as a \r
-  comment to the end of the line\r
-* Added function exprGetErrorPosition to get start and\r
-  end position of parse error.\r
-\r
-Monday, May 3, 2004:  Version 1.0\r
----------------------------------\r
-This is a pretty bad time to start the history part since\r
-ExprEval is pretty much up and running and very operational.\r
-\r
-* Added macro EXPR_MAJORVERSION\r
-* Added macro EXPR_MINORVERSION\r
-* Added function exprGetVersion\r
-* Added macro to make declaring functions easy:\r
-  EXPR_FUNCTIONSOLVER(func_name)\r
-* Added support for passing variable references to functions\r
-  with the ampersand.  Example: minmax(1,2,3,&min,&max)\r
-* Added macros for reference support:\r
-  EXPR_REQUIREREFCOUNT\r
-  EXPR_REQUIREREFCOUNTMIN\r
-  EXPR_REQUIREREFCOUNTMAX\r
-  EXPR_REQUIREREFCOUNTRANGE\r
-* Added feature to disable assigning to a variable with the\r
-  same name as a constant.\r
-* Added feature to enable applications to change the value of\r
-  a constant while the expression can not.  You must add\r
-  any constants to the constant list BEFORE you parse the\r
-  expression.\r
+ExprEval - A C/C++ based expression evaluation library
+Written by: Brian Allen Vanderburg II
+Licensed under the ExprEval License
+------------------------------------------------------
+ExprEval is a mostly a C based expression evaluation
+library.  The only C++ part is the C++ Wrapper which
+encapsulates the complexity of the library usage.
+
+ExprEval supports the parsing of multiple expressions
+in a single expression string.  Each sub-expression
+must end with a semicolon.  It also supports the use
+of variables, constants, and functions.  Functions
+can take multiple arguments.  These arguments can
+also be expressions.
+
+ExprEval is very fast.  It first parses the expression
+string into a tree of actions to take.  After it has
+been parsed, an expression can be evaluated many times
+over an over.
+
+Functions, variables, and constants are stored in
+their own seperate lists.  This makes is where the
+lists can be shared among multiple expression objects.
+A function list can add all the functions needed, and
+then be added to each expression object, instead of
+added each needed function to each object.  The same
+goes for constant lists.  Variable lists make it where
+one expression can depend on a variable set in another.
+
+
+Saturday, July 1, 2006
+----------------------
+Version 2.6
+
+* Added a new value list function 'exprValListGetNext' that can be used to
+  enumerate the items in a value list.  Any of the items not needed (name,
+  value, or address) can be NULL.  For example:
+  
+  char *name;
+  EXPRTYPE val;
+  void *cookie;
+  
+  cookie = exprValListGetNext(vlist, &name, &value, NULL, NULL);
+  while(cookie)
+    {
+    /* Do something with name and value */
+    cookie = exprValListGetNext(vlist, &name, &value, NULL, cookie);
+    }
+    
+  You must make sure not to actually edit the returned name, because it is a
+  pointer into the value list to the name.  This can also be used to have one
+  value list store globals.  Global variables can be added to a value list, then
+  additional lists can be created, and before any variables are added
+  or the expression is parsed, the global list can be enumerated for name and
+  address and the exprValListAddAddress can be used to add them.  This way,
+  expressions can have their own private list, but some variables may be shared
+  on each expression through the global list.  This is useful especially if the
+  globals are not known at compile time, but can be adjusted by the user.
+  For example:
+  
+  exprValList *globals;
+  exprValList *v1;
+  exprValList *v2;
+  char *name;
+  EXPRTYPE *addr;
+  void *cookie;
+  
+  exprValListCreate(&globals);
+  /* Add variables to the list, perhaps read from a user file or something */
+  
+  exprValListCreate(&v1);
+  cookie = exprValListGetNext(globals, &name, NULL, &addr, NULL);
+  while(cookie)
+    {
+    exprValListAddAddress(v1, name, addr);
+    cookie = exprValListGetNext(globals, &name, NULL, &addr, cookie);
+    }
+  
+
+Friday, June 30, 2006
+---------------------
+Version 2.5
+
+* Added a new value list function 'exprValListAddAddress'.  This function adds
+  a named value to the list, but uses the addresss of a stack variable.  The
+  stack variable is then used to set/get the value instead of the internal list
+  value.  You must ensure that the stack variable exists as long as it is used
+  by the expression.  This can permit, for example, a value name to be shared
+  with two different value lists like such:
+  
+  EXPRTYPE global_value;
+  exprValListAddAddress(vlist, "global", &global_value);
+  exprValListAddAddress(vlist2, "global", &global_value);
+  
+  Like this, the value can be directly accessed by the application, and each
+  value list will share it.  This can also be used to replace code from this:
+  
+  EXPRTYPE *a;
+  exprValListAdd(vlist, "var", 0.0);
+  exprValListGetAddress(vlist, "var", &a);
+  
+  To look like this:
+  
+  EXPRTYPE a;
+  exprValListAddAddress(vlist, "var", &a);
+* Added a value list function exprValListSet to set the value of a variable
+  (using the slow search method).  This is because the add functions now return
+  and error if the item (function/value) already exists instead of setting the
+  value of the item.  You can still use the fast direct access method.
+* Changed internal lists for function and value lists from binary trees to
+  linked lists.
+  
+  
+
+
+Thursday, May 4, 2006
+---------------------
+Version 2.0
+
+* All internal functions are evaluated directly in the exprEvalNode call.
+  This gives some speed increase.
+* Removed parameter and reference count macros as well as functin creation
+  macro.  Parameter and reference count information can be set when adding
+  a function solver.
+* Removed exprMsgFuncType, since it is unused by the library.
+* Changed much of the internal names from one-letter variable names to
+  more meaningful names.
+
+Thursday, December 1, 2005
+--------------------------
+Version 1.8
+
+* Added support for the ^ operator to raise to a power.
+  The pow function can still be used.
+* Moved basic math code (add,subtract,multiply,divide,negate,exponent)
+  and multiple expression support from function solvers to the exprEvalNode
+  function.
+
+Tuesday, November 22, 2005
+--------------------------
+I still haven't been keeping up with history much.
+
+* Removed < and > as comments.  Instead use # as a 
+  comment to the end of the line
+* Added function exprGetErrorPosition to get start and
+  end position of parse error.
+
+Monday, May 3, 2004:  Version 1.0
+---------------------------------
+This is a pretty bad time to start the history part since
+ExprEval is pretty much up and running and very operational.
+
+* Added macro EXPR_MAJORVERSION
+* Added macro EXPR_MINORVERSION
+* Added function exprGetVersion
+* Added macro to make declaring functions easy:
+  EXPR_FUNCTIONSOLVER(func_name)
+* Added support for passing variable references to functions
+  with the ampersand.  Example: minmax(1,2,3,&min,&max)
+* Added macros for reference support:
+  EXPR_REQUIREREFCOUNT
+  EXPR_REQUIREREFCOUNTMIN
+  EXPR_REQUIREREFCOUNTMAX
+  EXPR_REQUIREREFCOUNTRANGE
+* Added feature to disable assigning to a variable with the
+  same name as a constant.
+* Added feature to enable applications to change the value of
+  a constant while the expression can not.  You must add
+  any constants to the constant list BEFORE you parse the
+  expression.