]> granicus.if.org Git - curl/commitdiff
Gisle Vanem made curl build with djgpp on DOS.
authorDaniel Stenberg <daniel@haxx.se>
Wed, 21 May 2003 08:08:48 +0000 (08:08 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 21 May 2003 08:08:48 +0000 (08:08 +0000)
19 files changed:
CHANGES
Makefile.dist
docs/examples/Makefile.am
docs/examples/makefile.dj [new file with mode: 0644]
lib/Makefile.am
lib/config.dj [new file with mode: 0644]
lib/getpass.c
lib/makefile.dj [new file with mode: 0644]
lib/setup.h
lib/url.c
lib/urldata.h
packages/DOS/Makefile.am [new file with mode: 0644]
packages/DOS/README [new file with mode: 0644]
packages/DOS/common.dj [new file with mode: 0644]
packages/Makefile.am
src/Makefile.am
src/main.c
src/makefile.dj [new file with mode: 0644]
src/setup.h

diff --git a/CHANGES b/CHANGES
index c5bfa235524a2caeb5ccfed09152e000e0ae2795..c43d94a588bd0149001f2d722a0e710a998d4aa5 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,16 @@
 
                                   Changelog
 
+Daniel (21 May)
+- Gisle Vanem made curl build with djgpp on DOS.
+
+- Gisle Vanem improved the mkhelp.pl script to make a nicer manual that is
+  shown with curl -M.
+
+Daniel (20 May)
+- Gisle Vanem provided a fix that makes libcurl more conservative, not
+  expecting h_aliases of the hostent struct to always be non-NULL.
+
 Daniel (19 May)
 - As requested by Martin Michlmayr in Debian bug report #193630, libcurl now
   supports user name and password in the proxy environment variables. Added
index 03948ea24b64f268f4a8f90f3ecbc9254036edb5..31b8435398d6b4c84274b1e6f68ac3ee9ecfeffd 100644 (file)
@@ -59,6 +59,10 @@ vc-ssl-dll:
        cd ..\src
        nmake -f Makefile.vc6
 
+djgpp:
+       make -C lib -f Makefile.dj
+       make -C src -f Makefile.dj
+
 cygwin:
        ./configure
        make
index b2ddad40631dc60cf2540692fd44c9a9d9cbee3b..c21d00bdf95a710b4bcc3b0319007332037e9953 100644 (file)
@@ -9,7 +9,7 @@ EXTRA_DIST = README curlgtk.c sepheaders.c simple.c postit2.c           \
             multithread.c getinmemory.c ftpupload.c httpput.c          \
             simplessl.c ftpgetresp.c http-post.c post-callback.c       \
             multi-app.c multi-double.c multi-single.c multi-post.c     \
-            fopen.c simplepost.c
+            fopen.c simplepost.c makefile.dj
 
 all:
        @echo "done"
diff --git a/docs/examples/makefile.dj b/docs/examples/makefile.dj
new file mode 100644 (file)
index 0000000..6b3cb9d
--- /dev/null
@@ -0,0 +1,31 @@
+#\r
+#  Adapted for djgpp / Watt-32 / DOS by\r
+#  Gisle Vanem <giva@bgnett.no>\r
+#\r
+\r
+include ../../packages/DOS/common.dj\r
+\r
+CFLAGS += -I../../include\r
+\r
+LIBS = ../../lib/libcurl.a\r
+\r
+ifeq ($(USE_SSL),1)\r
+  LIBS += $(OPENSSL_ROOT)/lib/libssl.a $(OPENSSL_ROOT)/lib/libcrypt.a\r
+endif\r
+\r
+LIBS += $(WATT32_ROOT)/lib/libwatt.a $(ZLIB_ROOT)/libz.a\r
+\r
+PROGRAMS  = fopen.exe ftpget.exe ftpgetre.exe ftpuploa.exe getinmem.exe \\r
+            http-pos.exe httpput.exe multi-ap.exe multi-do.exe          \\r
+            multi-po.exe multi-si.exe persista.exe post-cal.exe         \\r
+            postit2.exe sepheade.exe simple.exe simpless.exe\r
+\r
+all: $(PROGRAMS)\r
+\r
+.c.exe:\r
+       $(CC) $(CFLAGS) -o $@ $^ $(LIBS)\r
+       @echo\r
+\r
+clean:\r
+       rm -f $(PROGRAMS)\r
+\r
index 342a29c46ad506c3846328d0c364d72bc0428ef6..62c5c55d90786957ed1a5876cb06469d46005636 100644 (file)
@@ -7,7 +7,8 @@ AUTOMAKE_OPTIONS = foreign nostdinc
 EXTRA_DIST = getdate.y Makefile.b32 Makefile.b32.resp Makefile.m32         \
        Makefile.vc6 Makefile.riscos libcurl.def curllib.dsp        \
        curllib.dsw config-vms.h config-win32.h config-riscos.h config-mac.h \
-       config.h.in ca-bundle.crt README.encoding README.memoryleak
+       config.h.in ca-bundle.crt README.encoding README.memoryleak \
+       makefile.dj config.dj
 
 lib_LTLIBRARIES = libcurl.la
 
diff --git a/lib/config.dj b/lib/config.dj
new file mode 100644 (file)
index 0000000..6fd92a6
--- /dev/null
@@ -0,0 +1,92 @@
+#ifndef _CURL_CONFIG_DJGPP_H\r
+#define _CURL_CONFIG_DJGPP_H\r
+\r
+#define OS       "djgpp"\r
+#define PACKAGE  "curl"\r
+\r
+#define CURL_CA_BUNDLE  "/dev/env/CURL_CA_BUNDLE"\r
+\r
+#if (DJGPP_MINOR >= 4)\r
+/* #define HAVE_DLOPEN 1 maybe not (DXE3) */\r
+#endif\r
+\r
+#if 1     /* use ioctlsocket() via fsext'ed fcntl() */\r
+  #define HAVE_O_NONBLOCK 1\r
+#else\r
+  #define HAVE_IOCTLSOCKET 1\r
+#endif\r
+\r
+#define HAVE_ALARM             1\r
+#define HAVE_ARPA_INET_H       1\r
+#define HAVE_CLOSESOCKET       1\r
+#define HAVE_FCNTL_H           1\r
+#define HAVE_GETHOSTBYADDR     1\r
+#define HAVE_GETHOSTNAME       1\r
+#define HAVE_GETPASS           1\r
+#define HAVE_GETSERVBYNAME     1\r
+#define HAVE_GETTIMEOFDAY      1\r
+#define HAVE_INET_ADDR         1\r
+#define HAVE_INET_NTOA         1\r
+#define HAVE_IO_H              1\r
+#define HAVE_MALLOC_H          1\r
+#define HAVE_MEMORY_H          1\r
+#define HAVE_NETDB_H           1\r
+#define HAVE_NETINET_IN_H      1\r
+#define HAVE_NET_IF_H          1\r
+#define HAVE_PERROR            1\r
+#define HAVE_SELECT            1\r
+#define HAVE_SETJMP_H          1\r
+#define HAVE_SETVBUF           1\r
+#define HAVE_SIGNAL            1\r
+#define HAVE_SIGACTION         1\r
+#define HAVE_SIGSETJMP         1\r
+#define HAVE_SOCKET            1\r
+#define HAVE_STRCASECMP        1\r
+#define HAVE_STRDUP            1\r
+#define HAVE_STRFTIME          1\r
+#define HAVE_STRICMP           1\r
+#define HAVE_STRSTR            1\r
+#define HAVE_SYS_SOCKET_H      1\r
+#define HAVE_SYS_STAT_H        1\r
+#define HAVE_SYS_TYPES_H       1\r
+#define HAVE_TERMIOS_H         1\r
+#define HAVE_TIME_H            1\r
+#define HAVE_UNAME             1\r
+#define HAVE_UNISTD_H          1\r
+#define HAVE_VPRINTF           1\r
+\r
+#define RETSIGTYPE             void\r
+#define SIZEOF_LONG_DOUBLE     16\r
+#define SIZEOF_LONG_LONG       8\r
+#define STDC_HEADERS           1\r
+#define TIME_WITH_SYS_TIME     1\r
+\r
+#define BSD\r
+#define USE_ZLIB\r
+\r
+/* #define MALLOCDEBUG */\r
+\r
+#ifdef HAVE_OPENSSL_ENGINE_H   /* on cmd-line */\r
+  #define HAVE_OPENSSL_X509_H    1\r
+  #define HAVE_OPENSSL_SSL_H     1\r
+  #define HAVE_OPENSSL_RSA_H     1\r
+  #define HAVE_OPENSSL_PEM_H     1\r
+  #define HAVE_OPENSSL_ERR_H     1\r
+  #define HAVE_OPENSSL_CRYPTO_H  1\r
+  #define HAVE_LIBSSL            1\r
+  #define HAVE_LIBCRYPTO         1\r
+  #define OPENSSL_NO_KRB5        1\r
+#endif\r
+\r
+#define in_addr_t  u_long\r
+#define socklen_t  int\r
+#define ssize_t    int\r
+\r
+#include <stdlib.h>\r
+#include <string.h>\r
+#include <tcp.h>    /* Watt-32 API */\r
+\r
+#undef word\r
+\r
+#endif  /* _CURL_CONFIG_DJGPP_H */\r
+\r
index 118579e6986f55192cf1e56d24a13bc426ca9dae..b6ea97805fd8254bbdd17b756e98e083071b7d47 100644 (file)
@@ -99,7 +99,7 @@ char *getpass_r(const char *prompt, char *buffer, size_t buflen)
   char infp_fclose = 0;
   FILE *outfp;
   RETSIGTYPE (*sigint)();
-#ifndef __EMX__
+#if !defined(__EMX__) && !defined(__DJGPP__)
   RETSIGTYPE (*sigtstp)();
 #endif
   size_t bytes_read;
@@ -119,7 +119,7 @@ char *getpass_r(const char *prompt, char *buffer, size_t buflen)
   sigint = signal(SIGINT, SIG_IGN);
   /* 20000318 mgs
    * this is needed by the emx system, SIGTSTP is not a supported signal */
-#ifndef __EMX__
+#if !defined(__EMX__) && !defined(__DJGPP__)
   sigtstp = signal(SIGTSTP, SIG_IGN);
 #endif
 
@@ -181,7 +181,7 @@ char *getpass_r(const char *prompt, char *buffer, size_t buflen)
 #endif
   
   signal(SIGINT, sigint);
-#ifndef __EMX__
+#if !defined(__EMX__) && !defined(__DJGPP__)
   signal(SIGTSTP, sigtstp);
 #endif
 
diff --git a/lib/makefile.dj b/lib/makefile.dj
new file mode 100644 (file)
index 0000000..d3a9dc4
--- /dev/null
@@ -0,0 +1,157 @@
+#\r
+#  Adapted for djgpp2 / Watt-32 / DOS by\r
+#  Gisle Vanem <giva@bgnett.no>\r
+#\r
+\r
+DEPEND_PREREQ = config.h getdate.c\r
+\r
+include ../packages/DOS/common.dj\r
+\r
+ifeq ($(USE_SSL),1)\r
+  CFLAGS += -I$(OPENSSL_ROOT)\r
+endif\r
+\r
+SOURCES = base64.c   connect.c  content_.c cookie.c   dict.c   \\r
+          easy.c     escape.c   file.c     formdata.c ftp.c    \\r
+          getdate.c  getenv.c   getinfo.c  getpass.c  hash.c   \\r
+          hostip.c   http.c     http_chu.c if2ip.c    krb4.c   \\r
+          ldap.c     llist.c    memdebug.c mprintf.c  multi.c  \\r
+          netrc.c    progress.c security.c sendf.c    share.c  \\r
+          speedche.c ssluse.c   strequal.c strtok.c   telnet.c \\r
+          timeval.c  transfer.c url.c      version.c\r
+\r
+OBJECTS  = $(SOURCES:.c=.o)\r
+CURL_LIB = libcurl.a\r
+\r
+all: config.h $(CURL_LIB)\r
+\r
+$(CURL_LIB): $(OBJECTS)\r
+       ar rs $@ $?\r
+\r
+config.h: config.dj\r
+       @echo '#include "./config.dj"' > $@\r
+\r
+getdate.c: getdate.y\r
+       $(YACC) -o $@ $^\r
+\r
+clean:\r
+       - rm -f $(OBJECTS) $(CURL_LIB) Makefile.bak config.h getdate.c\r
+\r
+# DO NOT DELETE THIS LINE\r
+base64.o: base64.c setup.h config.h config.dj ../include/curl/mprintf.h \\r
+  base64.h\r
+connect.o: connect.c setup.h config.h config.dj urldata.h cookie.h \\r
+  ../include/curl/curl.h ../include/curl/types.h ../include/curl/easy.h \\r
+  ../include/curl/multi.h formdata.h timeval.h http_chunks.h hostip.h \\r
+  hash.h llist.h sendf.h if2ip.h\r
+content_.o: content_.c setup.h config.h config.dj\r
+cookie.o: cookie.c setup.h config.h config.dj cookie.h \\r
+  ../include/curl/curl.h ../include/curl/types.h ../include/curl/easy.h \\r
+  ../include/curl/multi.h getdate.h strequal.h strtok.h\r
+dict.o: dict.c setup.h config.h config.dj urldata.h cookie.h \\r
+  ../include/curl/curl.h ../include/curl/types.h ../include/curl/easy.h \\r
+  ../include/curl/multi.h formdata.h timeval.h http_chunks.h hostip.h \\r
+  hash.h llist.h transfer.h sendf.h progress.h strequal.h \\r
+  ../include/curl/mprintf.h\r
+easy.o: easy.c setup.h config.h config.dj strequal.h urldata.h cookie.h \\r
+  ../include/curl/curl.h ../include/curl/types.h ../include/curl/easy.h \\r
+  ../include/curl/multi.h formdata.h timeval.h http_chunks.h hostip.h \\r
+  hash.h llist.h transfer.h ssluse.h url.h getinfo.h \\r
+  ../include/curl/mprintf.h\r
+escape.o: escape.c setup.h config.h config.dj ../include/curl/curl.h \\r
+  ../include/curl/types.h ../include/curl/easy.h ../include/curl/multi.h\r
+file.o: file.c setup.h config.h config.dj urldata.h cookie.h \\r
+  ../include/curl/curl.h ../include/curl/types.h ../include/curl/easy.h \\r
+  ../include/curl/multi.h formdata.h timeval.h http_chunks.h hostip.h \\r
+  hash.h llist.h progress.h sendf.h escape.h ../include/curl/mprintf.h\r
+formdata.o: formdata.c setup.h config.h config.dj ../include/curl/curl.h \\r
+  ../include/curl/types.h ../include/curl/easy.h ../include/curl/multi.h \\r
+  formdata.h strequal.h\r
+ftp.o: ftp.c setup.h config.h config.dj ../include/curl/curl.h \\r
+  ../include/curl/types.h ../include/curl/easy.h ../include/curl/multi.h \\r
+  urldata.h cookie.h formdata.h timeval.h http_chunks.h hostip.h hash.h \\r
+  llist.h sendf.h if2ip.h progress.h transfer.h escape.h http.h ftp.h \\r
+  strequal.h ssluse.h connect.h ../include/curl/mprintf.h\r
+getdate.o: getdate.c setup.h config.h config.dj getdate.h\r
+getenv.o: getenv.c setup.h config.h config.dj\r
+getinfo.o: getinfo.c setup.h config.h config.dj ../include/curl/curl.h \\r
+  ../include/curl/types.h ../include/curl/easy.h ../include/curl/multi.h \\r
+  urldata.h cookie.h formdata.h timeval.h http_chunks.h hostip.h hash.h \\r
+  llist.h\r
+getpass.o: getpass.c setup.h config.h config.dj\r
+hash.o: hash.c setup.h config.h config.dj hash.h llist.h\r
+hostip.o: hostip.c setup.h config.h config.dj urldata.h cookie.h \\r
+  ../include/curl/curl.h ../include/curl/types.h ../include/curl/easy.h \\r
+  ../include/curl/multi.h formdata.h timeval.h http_chunks.h hostip.h \\r
+  hash.h llist.h sendf.h share.h ../include/curl/mprintf.h\r
+http.o: http.c setup.h config.h config.dj urldata.h cookie.h \\r
+  ../include/curl/curl.h ../include/curl/types.h ../include/curl/easy.h \\r
+  ../include/curl/multi.h formdata.h timeval.h http_chunks.h hostip.h \\r
+  hash.h llist.h transfer.h sendf.h progress.h base64.h strequal.h \\r
+  ssluse.h ../include/curl/mprintf.h\r
+http_chu.o: http_chu.c setup.h config.h config.dj urldata.h cookie.h \\r
+  ../include/curl/curl.h ../include/curl/types.h ../include/curl/easy.h \\r
+  ../include/curl/multi.h formdata.h timeval.h http_chunks.h hostip.h \\r
+  hash.h llist.h sendf.h content_encoding.h ../include/curl/mprintf.h\r
+if2ip.o: if2ip.c setup.h config.h config.dj\r
+krb4.o: krb4.c setup.h config.h config.dj\r
+ldap.o: ldap.c setup.h config.h config.dj urldata.h cookie.h \\r
+  ../include/curl/curl.h ../include/curl/types.h ../include/curl/easy.h \\r
+  ../include/curl/multi.h formdata.h timeval.h http_chunks.h hostip.h \\r
+  hash.h llist.h sendf.h escape.h transfer.h ../include/curl/mprintf.h\r
+llist.o: llist.c setup.h config.h config.dj llist.h\r
+memdebug.o: memdebug.c\r
+mprintf.o: mprintf.c setup.h config.h config.dj\r
+multi.o: multi.c setup.h config.h config.dj ../include/curl/curl.h \\r
+  ../include/curl/types.h ../include/curl/easy.h ../include/curl/multi.h \\r
+  urldata.h cookie.h formdata.h timeval.h http_chunks.h hostip.h hash.h \\r
+  llist.h transfer.h url.h connect.h progress.h\r
+netrc.o: netrc.c setup.h config.h config.dj ../include/curl/curl.h \\r
+  ../include/curl/types.h ../include/curl/easy.h ../include/curl/multi.h \\r
+  strequal.h strtok.h\r
+progress.o: progress.c setup.h config.h config.dj ../include/curl/curl.h \\r
+  ../include/curl/types.h ../include/curl/easy.h ../include/curl/multi.h \\r
+  urldata.h cookie.h formdata.h timeval.h http_chunks.h hostip.h hash.h \\r
+  llist.h sendf.h progress.h ../include/curl/mprintf.h\r
+security.o: security.c setup.h config.h config.dj\r
+sendf.o: sendf.c setup.h config.h config.dj ../include/curl/curl.h \\r
+  ../include/curl/types.h ../include/curl/easy.h ../include/curl/multi.h \\r
+  urldata.h cookie.h formdata.h timeval.h http_chunks.h hostip.h hash.h \\r
+  llist.h sendf.h connect.h ../include/curl/mprintf.h\r
+share.o: share.c setup.h config.h config.dj ../include/curl/curl.h \\r
+  ../include/curl/types.h ../include/curl/easy.h ../include/curl/multi.h \\r
+  urldata.h cookie.h formdata.h timeval.h http_chunks.h hostip.h hash.h \\r
+  llist.h share.h\r
+speedche.o: speedche.c setup.h config.h config.dj ../include/curl/curl.h \\r
+  ../include/curl/types.h ../include/curl/easy.h ../include/curl/multi.h \\r
+  urldata.h cookie.h formdata.h timeval.h http_chunks.h hostip.h hash.h \\r
+  llist.h sendf.h speedcheck.h\r
+ssluse.o: ssluse.c setup.h config.h config.dj urldata.h cookie.h \\r
+  ../include/curl/curl.h ../include/curl/types.h ../include/curl/easy.h \\r
+  ../include/curl/multi.h formdata.h timeval.h http_chunks.h hostip.h \\r
+  hash.h llist.h sendf.h url.h\r
+strequal.o: strequal.c setup.h config.h config.dj\r
+strtok.o: strtok.c setup.h config.h config.dj\r
+telnet.o: telnet.c setup.h config.h config.dj urldata.h cookie.h \\r
+  ../include/curl/curl.h ../include/curl/types.h ../include/curl/easy.h \\r
+  ../include/curl/multi.h formdata.h timeval.h http_chunks.h hostip.h \\r
+  hash.h llist.h transfer.h sendf.h ../include/curl/mprintf.h \\r
+  arpa_telnet.h\r
+timeval.o: timeval.c timeval.h setup.h config.h config.dj\r
+transfer.o: transfer.c setup.h config.h config.dj strequal.h urldata.h \\r
+  cookie.h ../include/curl/curl.h ../include/curl/types.h \\r
+  ../include/curl/easy.h ../include/curl/multi.h formdata.h timeval.h \\r
+  http_chunks.h hostip.h hash.h llist.h netrc.h content_encoding.h \\r
+  transfer.h sendf.h speedcheck.h getpass.h progress.h getdate.h http.h \\r
+  url.h getinfo.h ssluse.h ../include/curl/mprintf.h\r
+url.o: url.c setup.h config.h config.dj urldata.h cookie.h \\r
+  ../include/curl/curl.h ../include/curl/types.h ../include/curl/easy.h \\r
+  ../include/curl/multi.h formdata.h timeval.h http_chunks.h hostip.h \\r
+  hash.h llist.h netrc.h base64.h ssluse.h if2ip.h transfer.h sendf.h \\r
+  getpass.h progress.h strequal.h escape.h strtok.h share.h \\r
+  content_encoding.h ftp.h dict.h telnet.h http.h file.h ldap.h url.h \\r
+  connect.h ca-bundle.h ../include/curl/mprintf.h\r
+version.o: version.c setup.h config.h config.dj ../include/curl/curl.h \\r
+  ../include/curl/types.h ../include/curl/easy.h ../include/curl/multi.h \\r
+  urldata.h cookie.h formdata.h timeval.h http_chunks.h hostip.h hash.h \\r
+  llist.h\r
index a1eb9392f98714c526970aff6a867862d7cf32b7..0a109111f6df844ac22d7677e78f6c28ec8f30a0 100644 (file)
@@ -135,20 +135,33 @@ defined(HAVE_LIBSSL) && defined(HAVE_LIBCRYPTO)
 #define HAVE_ALARM
 #endif
 
-#define PATH_CHAR     ";"
 #define DIR_CHAR      "\\"
 #define DOT_CHAR      "_"
 
 #else
+
+#ifdef DJGPP
+#define sclose(x)         close_s(x)
+#define sread(x,y,z)      read_s(x,y,z)
+#define swrite(x,y,z)     write_s(x,y,z)
+#define select(n,r,w,x,t) select_s(n,r,w,x,t)
+#else
+
 #define sclose(x) close(x)
 #define sread(x,y,z) recv(x,y,z,0)
 #define swrite(x,y,z) send(x,y,z,0)
 #define HAVE_ALARM
 
-#define PATH_CHAR     ":"
+#endif
+
 #define DIR_CHAR      "/"
 #define DOT_CHAR      "."
 
+#ifdef DJGPP
+#undef DOT_CHAR
+#define DOT_CHAR      "_"
+#endif
+
 #ifdef HAVE_STRCASECMP
 /* this is for "-ansi -Wall -pedantic" to stop complaining! */
 extern int (strcasecmp)(const char *s1, const char *s2);
index 64d4c2a2df891214e9dcc57e009d2c4c8c253cfe..cc6b6474867e57f8c0329766a70d697bd45dc728 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -2149,6 +2149,33 @@ static CURLcode CreateConnection(struct SessionHandle *data,
 
         if(proxy && *proxy) {
           /* we have a proxy here to set */
+          char *ptr;
+          char user[MAX_CURL_USER_LENGTH];
+          char passwd[MAX_CURL_PASSWORD_LENGTH];
+
+          /* skip the possible protocol piece */
+          ptr=strstr(proxy, "://");
+          if(ptr)
+            ptr += 3;
+          else
+            ptr = proxy;
+
+          /* check for an @-letter */
+          ptr = strchr(ptr, '@');
+          if(ptr && (2 == sscanf(proxy, "%" MAX_CURL_USER_LENGTH_TXT"[^:]:"
+                                 "%" MAX_CURL_PASSWORD_LENGTH_TXT "[^@]",
+                                 user, passwd))) {
+            /* found user and password, rip them out */
+            strcpy(data->state.proxyuser, user);
+            strcpy(data->state.proxypasswd, passwd);
+            conn->bits.proxy_user_passwd = TRUE; /* enable it */
+
+            ptr = strdup(ptr+1);
+            free(proxy); /* free the former data */
+            proxy = ptr; /* now use this instead */
+          }
+
+
           data->change.proxy = proxy;
           data->change.proxy_alloc=TRUE; /* this needs to be freed later */
           conn->bits.httpproxy = TRUE;
index 293fee9841128c7a360ed821bdcd2cfaa05a69bc..efd73b2cff933dac38f2cb50a596e8c43d9363d7 100644 (file)
@@ -564,6 +564,8 @@ typedef enum {
  * Session-data MUST be put in the connectdata struct and here.  */
 #define MAX_CURL_USER_LENGTH 256
 #define MAX_CURL_PASSWORD_LENGTH 256
+#define MAX_CURL_USER_LENGTH_TXT "255"
+#define MAX_CURL_PASSWORD_LENGTH_TXT "255"
 
 struct UrlState {
   enum {
diff --git a/packages/DOS/Makefile.am b/packages/DOS/Makefile.am
new file mode 100644 (file)
index 0000000..70313cb
--- /dev/null
@@ -0,0 +1 @@
+EXTRA_DIST = README common.dj
diff --git a/packages/DOS/README b/packages/DOS/README
new file mode 100644 (file)
index 0000000..403c0dd
--- /dev/null
@@ -0,0 +1,4 @@
+Gisle Vanem made curl build fine on DOS (and MingW) with djgpp, OpenSSL and his
+Watt-32 stack.
+
+'make djgpp' in the root curl dir should build it fine.
diff --git a/packages/DOS/common.dj b/packages/DOS/common.dj
new file mode 100644 (file)
index 0000000..32208f6
--- /dev/null
@@ -0,0 +1,56 @@
+#\r
+# Common defines for curl (djgpp/Watt-32)\r
+#\r
+# Assumes you've unpacked cURL with short-file names\r
+# I.e use "set LFN=n" before untaring on Win9x/XP.\r
+# Requires sed, yacc, rm and the usual stuff.\r
+#\r
+\r
+.SUFFIXES: .exe .y\r
+\r
+MAKEFILE = Makefile.dj\r
+\r
+#\r
+# OpenSSL is available from www.openssl.org and builds okay\r
+# with djgpp/Watt-32. Set to 0 if you don't need https URLs\r
+# (reduces curl.exe with approx 700 kB)\r
+#\r
+USE_SSL = 1\r
+\r
+default: all\r
+\r
+#\r
+# Root directory for Waterloo tcp/ip. WATT_ROOT should be set\r
+# during Watt-32 install.\r
+#\r
+WATT32_ROOT  = $(subst \,/,$(WATT_ROOT))\r
+OPENSSL_ROOT = /net/openssl.098\r
+ZLIB_ROOT    = $(DJDIR)/contrib/zlib\r
+\r
+CC   = gcc\r
+YACC = bison -y\r
+\r
+CFLAGS = -g -O2 -I. -I../include -Wall -DHAVE_CONFIG_H\r
+\r
+ifeq ($(USE_SSL),1)\r
+  CFLAGS += -DUSE_SSLEAY -DHAVE_OPENSSL_ENGINE_H\r
+endif\r
+\r
+#\r
+# Generated dependencies; Due to some hacks in gcc 2.95+ and djgpp 2.03\r
+# we must prevent "$(DJDIR)/bin/../include/sys/version.h" from beeing\r
+# included in dependency output (or else this makefile cannot be used on\r
+# another machine). We therefore use a special 'specs' file during\r
+# pre-processing.\r
+#\r
+MM_SPECS = $(TMPDIR)/specs\r
+\r
+depend: $(DEPEND_PREREQ)\r
+       @echo Generating dependencies..\r
+       @copy $(MAKEFILE) Makefile.bak\r
+       @echo "*cpp: %(cpp_cpu) %{posix:-D_POSIX_SOURCE} -remap" > $(MM_SPECS)\r
+       sed -e "/^# DO NOT DELETE THIS LINE/,$$d" < Makefile.bak > $(MAKEFILE)\r
+       echo "# DO NOT DELETE THIS LINE"                        >> $(MAKEFILE)\r
+       $(CC) -MM -specs=$(MM_SPECS) $(CFLAGS) $(SOURCES)       >> $(MAKEFILE)\r
+       rm -f $(MM_SPECS)\r
+\r
index 7cbfb6da44af01824b8f4fc8fbed66414cf64662..44076a858794448459157d48579e73b799669b1a 100644 (file)
@@ -1,3 +1,3 @@
-SUBDIRS = Win32 Linux Solaris EPM
+SUBDIRS = Win32 Linux Solaris EPM DOS
 
 EXTRA_DIST = README
index 82433a659bcd0580ac97cae322e92496bf193f18..00c51afd61a6c14d5c040346b81d4d47d541aab7 100644 (file)
@@ -24,7 +24,7 @@ BUILT_SOURCES = hugehelp.c
 CLEANFILES = hugehelp.c
 NROFF=@NROFF@
 
-EXTRA_DIST = mkhelp.pl curlmsg.msg \
+EXTRA_DIST = mkhelp.pl curlmsg.msg makefile.dj \
        Makefile.vc6 Makefile.b32 Makefile.m32 Makefile.riscos config.h.in \
        macos/curl.mcp.xml.sit.hqx \
        macos/MACINSTALL.TXT \
index 62348df3e37172229aa8683c2fec9bf103cb3c8e..7a56882e6ffbec62c4b5a477e1e1b218de9d993f 100644 (file)
@@ -411,6 +411,9 @@ static void help(void)
        "                    Overrides -n and --netrc-optional\n"
        " -U/--proxy-user <user[:password]> Specify Proxy authentication\n"
        " -v/--verbose       Makes the operation more talkative\n"
+#ifdef DJGPP
+       "                    Also enables Watt-32 debugging\n"
+#endif
        " -V/--version       Outputs version number then quits");
   puts(" -w/--write-out [format] What to output after completion\n"
        " -x/--proxy <host[:port]>  Use proxy. (Default port is 1080)\n"
@@ -1670,6 +1673,9 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
       cleanarg(nextarg);
       break;
     case 'v':
+#ifdef DJGPP
+      dbug_init();
+#endif
       config->conf ^= CONF_VERBOSE; /* talk a lot */
       break;
     case 'V':
diff --git a/src/makefile.dj b/src/makefile.dj
new file mode 100644 (file)
index 0000000..e84ba02
--- /dev/null
@@ -0,0 +1,48 @@
+#\r
+#  Adapted for djgpp2 / Watt-32 / DOS by\r
+#  Gisle Vanem <giva@bgnett.no>\r
+#\r
+\r
+DEPEND_PREREQ = config.h\r
+\r
+include ../packages/DOS/common.dj\r
+\r
+ifeq ($(USE_SSL),1)\r
+  EX_LIBS = $(OPENSSL_ROOT)/lib/libssl.a $(OPENSSL_ROOT)/lib/libcrypt.a\r
+endif\r
+\r
+EX_LIBS += $(WATT32_ROOT)/lib/libwatt.a $(ZLIB_ROOT)/libz.a\r
+\r
+BIN     = ../curl.exe\r
+SOURCES = hugehelp.c main.c urlglob.c writeenv.c writeout.c\r
+OBJECTS = $(SOURCES:.c=.o)\r
+\r
+all: config.h $(BIN)\r
+\r
+$(BIN): $(OBJECTS) ../lib/libcurl.a\r
+       $(CC) -o $@ $^ $(EX_LIBS)\r
+\r
+config.h:\r
+       @echo '#include "../lib/config.dj"' > $@\r
+\r
+hugehelp.c: ../docs/curl.1\r
+       groff -man $^ | perl mkhelp.pl ../readme > $@\r
+\r
+clean:\r
+       - rm -f $(OBJECTS) Makefile.bak config.h\r
+\r
+vclean: clean\r
+       - rm -f $(BIN) hugehelp.c\r
+\r
+# DO NOT DELETE THIS LINE\r
+hugehelp.o: hugehelp.c\r
+main.o: main.c setup.h config.h ../lib/config.dj ../include/curl/curl.h \\r
+  ../include/curl/types.h ../include/curl/easy.h ../include/curl/multi.h \\r
+  ../include/curl/mprintf.h urlglob.h writeout.h version.h\r
+urlglob.o: urlglob.c setup.h config.h ../lib/config.dj \\r
+  ../include/curl/curl.h ../include/curl/types.h ../include/curl/easy.h \\r
+  ../include/curl/multi.h urlglob.h\r
+writeenv.o: writeenv.c setup.h config.h ../lib/config.dj\r
+writeout.o: writeout.c setup.h config.h ../lib/config.dj \\r
+  ../include/curl/curl.h ../include/curl/types.h ../include/curl/easy.h \\r
+  ../include/curl/multi.h ../include/curl/mprintf.h writeout.h\r
index 65eef4b4a3b04cdb6fa75ea4a6a0d4dc0907756a..c5ab80ed9ea4c7fb3fae36fb2e8604b7cb86717c 100644 (file)
@@ -66,7 +66,6 @@ int fileno( FILE *stream);
 #endif
 
 #ifdef WIN32
-#define PATH_CHAR     ";"
 #define DIR_CHAR      "\\"
 #define DOT_CHAR      "_"
 #else
@@ -74,17 +73,21 @@ int fileno( FILE *stream);
 /* 20000318 mgs
  * OS/2 supports leading dots in filenames if the volume is formatted
  * with JFS or HPFS. */
-#define PATH_CHAR     ";"
 #define DIR_CHAR      "\\"
 #define DOT_CHAR      "."
 #else
 
-#define PATH_CHAR     ":"
+#ifdef DJGPP
+#define DIR_CHAR      "/"
+#define DOT_CHAR      "_"
+#else
+
 #define DIR_CHAR      "/"
 #define DOT_CHAR      "."
 
-#endif
-#endif
+#endif /* !DJGPP */
+#endif /* !__EMX__ */
+#endif /* !WIN32 */
 
 #ifdef __riscos__
 #define USE_ENVIRONMENT