[BACK]Return to fetch.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ftp

Diff for /src/usr.bin/ftp/fetch.c between version 1.3 and 1.4

version 1.3, 1997/02/05 04:55:16 version 1.4, 1997/03/14 04:32:14
Line 1 
Line 1 
 /*      $OpenBSD$       */  /*      $OpenBSD$       */
 /*      $NetBSD: fetch.c,v 1.2 1997/02/01 10:45:00 lukem Exp $  */  /*      $NetBSD: fetch.c,v 1.3 1997/03/13 06:23:15 lukem Exp $  */
   
 /*-  /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.   * Copyright (c) 1997 The NetBSD Foundation, Inc.
Line 202 
Line 202 
         for (i = 0, buflen = sizeof(buf), cp = buf; i < buflen; cp++, i++) {          for (i = 0, buflen = sizeof(buf), cp = buf; i < buflen; cp++, i++) {
                 if (read(s, cp, 1) != 1)                  if (read(s, cp, 1) != 1)
                         goto improper;                          goto improper;
                   if (*cp == '\r')
                           continue;
                 if (*cp == '\n')                  if (*cp == '\n')
                         break;                          break;
         }          }
Line 224 
Line 226 
         for (i = 0, buflen = sizeof(buf), cp = buf; i < buflen; cp++, i++) {          for (i = 0, buflen = sizeof(buf), cp = buf; i < buflen; cp++, i++) {
                 if (read(s, cp, 1) != 1)                  if (read(s, cp, 1) != 1)
                         goto improper;                          goto improper;
                   if (*cp == '\r')
                           continue;
                 if (*cp == '\n' && c == '\n')                  if (*cp == '\n' && c == '\n')
                         break;                          break;
                 c = *cp;                  c = *cp;
Line 331 
Line 335 
 {  {
   
         alarmtimer(0);          alarmtimer(0);
         puts("\nhttp fetch aborted");          puts("\nhttp fetch aborted.");
         (void)fflush(stdout);          (void)fflush(stdout);
         longjmp(httpabort, 1);          longjmp(httpabort, 1);
 }  }
Line 359 
Line 363 
         char *xargv[5];          char *xargv[5];
         char *cp, *line, *host, *dir, *file, *portnum;          char *cp, *line, *host, *dir, *file, *portnum;
         int rval, xargc, argpos;          int rval, xargc, argpos;
           int dirhasglob, filehasglob;
           char rempath[MAXPATHLEN];
   
         argpos = 0;          argpos = 0;
   
Line 476 
Line 482 
                         }                          }
                 }                  }
   
                   dirhasglob = filehasglob = 0;
                   if (doglob) {
                           if (! EMPTYSTRING(dir) &&
                               strpbrk(dir, "*?[]{}") != NULL)
                                   dirhasglob = 1;
                           if (! EMPTYSTRING(file) &&
                               strpbrk(file, "*?[]{}") != NULL)
                                   filehasglob = 1;
                   }
   
                 /* Change directories, if necessary. */                  /* Change directories, if necessary. */
                 if (! EMPTYSTRING(dir)) {                  if (! EMPTYSTRING(dir) && !dirhasglob) {
                         xargv[0] = "cd";                          xargv[0] = "cd";
                         xargv[1] = dir;                          xargv[1] = dir;
                         xargv[2] = NULL;                          xargv[2] = NULL;
Line 496 
Line 512 
                 if (!verbose)                  if (!verbose)
                         printf("Retrieving %s/%s\n", dir ? dir : "", file);                          printf("Retrieving %s/%s\n", dir ? dir : "", file);
   
                 /* Fetch the file. */                  if (dirhasglob) {
                           snprintf(rempath, sizeof(rempath), "%s/%s", dir, file);
                           file = rempath;
                   }
   
                   /* Fetch the file(s). */
                 xargv[0] = "get";                  xargv[0] = "get";
                 xargv[1] = file;                  xargv[1] = file;
                 xargv[2] = NULL;                  xargv[2] = NULL;
                 get(2, xargv);                  if (dirhasglob || filehasglob) {
                           int ointeractive;
   
                 if ((code / 100) != COMPLETE)   /* XXX: is this valid? */                          ointeractive = interactive;
                           interactive = 0;
                           xargv[0] = "mget";
                           mget(2, xargv);
                           interactive = 1;
                   } else
                           get(2, xargv);
   
                   if ((code / 100) != COMPLETE)
                         rval = argpos + 1;                          rval = argpos + 1;
         }          }
         if (connected && rval != -1)          if (connected && rval != -1)

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4