]> granicus.if.org Git - curl/commitdiff
djgpp isn't the only possible DOS target.
authorGisle Vanem <gvanem@broadpark.no>
Tue, 3 Apr 2007 10:55:01 +0000 (10:55 +0000)
committerGisle Vanem <gvanem@broadpark.no>
Tue, 3 Apr 2007 10:55:01 +0000 (10:55 +0000)
Use the more traditional DJGPP define.
Added basename() for non-djgpp targets.

src/main.c

index 612e5c26b593f3c116ea128ae0493df59c49d02a..1d9a8dc01cec71264f037eec961369206b0a0161 100644 (file)
   #define SET_BINMODE(file)   ((void)0)
 #endif
 
-#ifdef __DJGPP__
+#ifdef MSDOS
 #include <dos.h>
 
 const char *msdosify(const char *);
 char *rename_if_dos_device_name(char *);
 
+#ifdef DJGPP
 /* we want to glob our own argv[] */
 char **__crt0_glob_function (char *arg)
 {
@@ -135,6 +136,7 @@ char **__crt0_glob_function (char *arg)
   return (char**)0;
 }
 #endif /* __DJGPP__ */
+#endif /* MSDOS */
 
 #define CURL_PROGRESS_STATS 0 /* default progress display */
 #define CURL_PROGRESS_BAR   1
@@ -520,7 +522,7 @@ static void warnf(struct Configurable *config, const char *fmt, ...)
  */
 static CURLcode main_init(void)
 {
-#ifdef __DJGPP__
+#ifdef DJGPP
   /* stop stat() wasting time */
   _djstat_flags |= _STAT_INODE | _STAT_EXEC_MAGIC | _STAT_DIRSIZE;
 #endif
@@ -705,7 +707,7 @@ static void help(void)
     " -U/--proxy-user <user[:password]> Set proxy user and password",
     " -v/--verbose       Make the operation more talkative",
     " -V/--version       Show version number and quit",
-#ifdef __DJGPP__
+#ifdef MSDOS
     "    --wdebug        Turn on Watt-32 debugging under DJGPP",
 #endif
     " -w/--write-out [format] What to output after completion",
@@ -1455,7 +1457,7 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
     {"*m", "ntlm",       FALSE},
     {"*n", "basic",      FALSE},
     {"*o", "anyauth",    FALSE},
-#ifdef __DJGPP__
+#ifdef MSDOS
     {"*p", "wdebug",     FALSE},
 #endif
     {"*q", "ftp-create-dirs", FALSE},
@@ -1750,7 +1752,7 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
         config->authtype = CURLAUTH_ANY;
         break;
 
-#ifdef __DJGPP__
+#ifdef MSDOS
       case 'p': /* --wdebug */
         dbug_init();
         break;
@@ -3831,7 +3833,7 @@ operate(struct Configurable *config, int argc, char *argv[])
               free(url);
               break;
             }
-#if defined(__DJGPP__)
+#if defined(MSDOS)
             {
               /* This is for DOS, and then we do some major replacing of
                  bad characters in the file name before using it */
@@ -3841,7 +3843,7 @@ operate(struct Configurable *config, int argc, char *argv[])
               free (outfile);
               outfile = strdup (rename_if_dos_device_name(file1));
             }
-#endif /* __DJGPP__ */
+#endif /* MSDOS */
           }
           else if(urls) {
             /* fill '#1' ... '#9' terms from URL pattern */
@@ -4756,7 +4758,34 @@ static int create_dir_hierarchy(const char *outfile)
   return result; /* 0 is fine, -1 is badness */
 }
 
-#ifdef __DJGPP__
+#ifdef MSDOS
+
+#ifndef HAVE_BASENAME
+/* basename() returns a pointer to the last component of a pathname.
+ * Ripped from lib/formdata.c.
+ */
+static char *basename(char *path)
+{
+  /* Ignore all the details above for now and make a quick and simple
+     implementaion here */
+  char *s1;
+  char *s2;
+
+  s1=strrchr(path, '/');
+  s2=strrchr(path, '\\');
+
+  if(s1 && s2) {
+    path = (s1 > s2? s1 : s2)+1;
+  }
+  else if(s1)
+    path = s1 + 1;
+  else if(s2)
+    path = s2 + 1;
+
+  return path;
+}
+#endif /* HAVE_BASENAME */
+
 /* The following functions are taken with modification from the DJGPP
  * port of tar 1.12. They use algorithms originally from DJTAR. */
 
@@ -4773,9 +4802,11 @@ msdosify (const char *file_name)
   size_t len = sizeof (illegal_chars_dos) - 1;
   int lfn = 0;
 
-  /* Support for Windows 9X VFAT systems, when available.  */
+#ifdef DJGPP
+  /* Support for Windows 9X VFAT systems, when available (djgpp only). */
   if (_use_lfn (file_name))
     lfn = 1;
+#endif
   if (lfn) {
     illegal_aliens = illegal_chars_w95;
     len -= (illegal_chars_w95 - illegal_chars_dos);
@@ -4870,5 +4901,4 @@ rename_if_dos_device_name (char *file_name)
   }
   return file_name;
 }
-
-#endif /* __DJGPP__ */
+#endif /* MSDOS */