libwww suggested patch under win32

Fabrice Popineau <[email protected]>
Newsgroups gmane.comp.lib.libwww
Message-ID <[email protected]>
Attached is a small patch  to make libwww compile cleanly under the
fastcall calling convention provided with the /Gr of the microsoft
compiler.

Thanks for commenting about it and the possible integration into the
main source tree.

-- 
Fabrice Popineau
------------------------
e-mail:       [email protected]  |  The difference between theory 
voice-mail:   +33 (0) 387764715            |  and practice, is that
surface-mail: Supelec, 2 rue E. Belin,     |  theoretically,
	      F-57070 Metz 	           |  there is no difference !
libwww-1.diff (text/x-patch, 6.8 KB)
diff -ruN e:\TeXLive\Build\source.development\TeX\libs\libwww/HTArray.h libwww/HTArray.h
--- e:\TeXLive\Build\source.development\TeX\libs\libwww/HTArray.h	Wed Jun 12 11:31:21 2002
+++ libwww/HTArray.h	Sun Aug 04 23:57:06 2002
@@ -113,7 +113,7 @@
 
 */
 
-typedef int HTComparer (const void * a, const void * b);
+typedef int CDECL HTComparer (const void * a, const void * b);
 
 /*
 
diff -ruN e:\TeXLive\Build\source.development\TeX\libs\libwww/HTDir.c libwww/HTDir.c
--- e:\TeXLive\Build\source.development\TeX\libs\libwww/HTDir.c	Tue Jun 27 12:07:00 2000
+++ libwww/HTDir.c	Tue Feb 12 16:14:16 2002
@@ -447,7 +447,7 @@
     return YES;
 }
 
-PRIVATE int DirSort (const void *a, const void *b)
+PRIVATE int CDECL DirSort (const void *a, const void *b)
 {
 #if 0
     HTDirNode *aa = *(HTDirNode **) a;
@@ -459,7 +459,7 @@
 #endif
 }
 
-PRIVATE int DirCaseSort (const void *a, const void *b)
+PRIVATE int CDECL DirCaseSort (const void *a, const void *b)
 {
 #if 0
     HTDirNode *aa = *(HTDirNode **) a;
diff -ruN e:\TeXLive\Build\source.development\TeX\libs\libwww/HTMulti.c libwww/HTMulti.c
--- e:\TeXLive\Build\source.development\TeX\libs\libwww/HTMulti.c	Thu Jan 06 10:48:51 2000
+++ libwww/HTMulti.c	Tue Feb 12 16:15:22 2002
@@ -39,7 +39,7 @@
 /*
 **  Sort the q values in descending order
 */
-PRIVATE int VariantSort (const void * a, const void * b)
+PRIVATE int CDECL VariantSort (const void * a, const void * b)
 {
     HTContentDescription * aa = *(HTContentDescription **) a;
     HTContentDescription * bb = *(HTContentDescription **) b;
diff -ruN e:\TeXLive\Build\source.development\TeX\libs\libwww/HTNDir.c libwww/HTNDir.c
--- e:\TeXLive\Build\source.development\TeX\libs\libwww/HTNDir.c	Mon Feb 22 22:10:12 1999
+++ libwww/HTNDir.c	Wed Feb 13 09:12:26 2002
@@ -717,35 +717,35 @@
     }
 }
 
-PRIVATE int NDirIndexSort (const void *a, const void *b)
+PRIVATE int CDECL NDirIndexSort (const void *a, const void *b)
 {
     int aa = (*((HTNewsNode **)a))->index;
     int bb = (*((HTNewsNode **)b))->index;
     return aa-bb;
 }
 
-PRIVATE int NDirSubjectSort (const void *a, const void *b)
+PRIVATE int CDECL NDirSubjectSort (const void *a, const void *b)
 {
     char *aa = (*((HTNewsNode **)a))->subject;
     char *bb = (*((HTNewsNode **)b))->subject;
     return strcasecomp(aa?aa:"", bb?bb:"");
 }
 
-PRIVATE int NDirFromSort (const void *a, const void *b)
+PRIVATE int CDECL NDirFromSort (const void *a, const void *b)
 {
     char *aa = (*((HTNewsNode **)a))->from;
     char *bb = (*((HTNewsNode **)b))->from;
     return strcasecomp(aa?aa:"", bb?bb:"");
 }
 
-PRIVATE int NDirDateSort (const void *a, const void *b)
+PRIVATE int CDECL NDirDateSort (const void *a, const void *b)
 {
     time_t aa = (*((HTNewsNode **)a))->date;
     time_t bb = (*((HTNewsNode **)b))->date;
     return bb-aa;
 }
 
-PRIVATE int NDirGroupSort (const void *a, const void *b)
+PRIVATE int CDECL NDirGroupSort (const void *a, const void *b)
 {
     char *aa = (*((HTNewsNode **)a))->name;
     char *bb = (*((HTNewsNode **)b))->name;
@@ -755,7 +755,7 @@
 }
 
 /* Added by MP. */
-PRIVATE int NDirRefThreadSort (const void* a, const void* b)
+PRIVATE int CDECL NDirRefThreadSort (const void* a, const void* b)
 {
     HTNewsNode* aa = *((HTNewsNode**)a);
     HTNewsNode* bb = *((HTNewsNode**)b);
diff -ruN e:\TeXLive\Build\source.development\TeX\libs\libwww/HTNet.c libwww/HTNet.c
--- e:\TeXLive\Build\source.development\TeX\libs\libwww/HTNet.c	Tue Jul 04 17:26:26 2000
+++ libwww/HTNet.c	Sun Aug 04 23:30:10 2002
@@ -81,12 +81,12 @@
 /*		   GENERIC BEFORE and AFTER filter Management		     */
 /* ------------------------------------------------------------------------- */
 
-PRIVATE int HTBeforeOrder (const void * a, const void * b)
+PRIVATE int CDECL HTBeforeOrder (const void * a, const void * b)
 {
     return ((BeforeFilter *) b)->order - ((BeforeFilter *) a)->order;
 }
 
-PRIVATE int HTAfterOrder (const void * a, const void * b)
+PRIVATE int CDECL HTAfterOrder (const void * a, const void * b)
 {
     return ((AfterFilter *) b)->order - ((AfterFilter *) a)->order;
 }
diff -ruN e:\TeXLive\Build\source.development\TeX\libs\libwww/HTString.c libwww/HTString.c
--- e:\TeXLive\Build\source.development\TeX\libs\libwww/HTString.c	Fri Sep 10 02:44:32 1999
+++ libwww/HTString.c	Sun Aug 04 23:32:27 2002
@@ -140,7 +140,7 @@
   return *dest;
 }
 
-PUBLIC char * StrAllocMCopy (char ** dest, ...)
+PUBLIC char * CDECL StrAllocMCopy (char ** dest, ...)
 {
     va_list pArgs;
     char * p, * argp;
@@ -171,7 +171,7 @@
     return *dest;
 }
 
-PUBLIC char * StrAllocMCat (char ** dest, ...)
+PUBLIC char * CDECL StrAllocMCat (char ** dest, ...)
 {
     va_list pArgs;
     char * p, * argp;
diff -ruN e:\TeXLive\Build\source.development\TeX\libs\libwww/HTString.h libwww/HTString.h
--- e:\TeXLive\Build\source.development\TeX\libs\libwww/HTString.h	Wed Dec 20 11:00:08 2000
+++ libwww/HTString.h	Sun Aug 04 23:57:09 2002
@@ -55,8 +55,8 @@
 a real dynamic sprintf().
 */
 
-extern char * StrAllocMCopy (char ** dest, ...);
-extern char * StrAllocMCat (char ** dest, ...);
+extern char * CDECL StrAllocMCopy (char ** dest, ...);
+extern char * CDECL StrAllocMCat (char ** dest, ...);
 
 /*
 
diff -ruN e:\TeXLive\Build\source.development\TeX\libs\libwww/HTTee.c libwww/HTTee.c
--- e:\TeXLive\Build\source.development\TeX\libs\libwww/HTTee.c	Mon Feb 22 22:10:13 1999
+++ libwww/HTTee.c	Wed Feb 13 09:13:17 2002
@@ -32,7 +32,7 @@
 /*
 **	Algorithm produced by H&kon
 */
-PRIVATE int default_resolver (const void *a, const void *b)
+PRIVATE int CDECL default_resolver (const void *a, const void *b)
 {
     if (*(int *) a < 0)
         return *(int *) a;
diff -ruN e:\TeXLive\Build\source.development\TeX\libs\libwww/HTUtils.h libwww/HTUtils.h
--- e:\TeXLive\Build\source.development\TeX\libs\libwww/HTUtils.h	Wed Jun 12 11:31:22 2002
+++ libwww/HTUtils.h	Tue Oct 29 17:33:01 2002
@@ -250,7 +250,9 @@
 libwww style guide.
 */
 
-#define PUBLIC			/* Accessible outside this module     */
+#ifndef PUBLIC
+# define PUBLIC			/* Accessible outside this module     */
+#endif
 #define PRIVATE static		/* Accessible only within this module */
 
 /*
diff -ruN e:\TeXLive\Build\source.development\TeX\libs\libwww/wwwsys.h libwww/wwwsys.h
--- e:\TeXLive\Build\source.development\TeX\libs\libwww/wwwsys.h	Wed Jun 12 11:31:21 2002
+++ libwww/wwwsys.h	Fri Nov 15 16:36:07 2002
@@ -161,8 +161,20 @@
 #include <process.h>
 #include <winsock.h>
 
+#define getcwd _getcwd
+#define stat _stat
+#define access _access
+#define mkdir _mkdir
+#define daylight _daylight
+#define timezone _timezone
+#define S_IFMT _S_IFMT
+#define S_IFDIR _S_IFDIR
+
 #include "windows/config.h"
 
+#undef CDECL
+#define CDECL __cdecl
+
 #define NETREAD(s,b,l)  recv((s),(b),(l),0)
 #define NETWRITE(s,b,l) send((s),(b),(l),0)
 #define NETCLOSE(s)     closesocket(s)
@@ -1568,6 +1580,10 @@
 */
 
 typedef unsigned long ms_t;
+
+#ifndef CDECL
+#define CDECL
+#endif
 
 /*
 */
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.