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

Diff for /src/usr.bin/ftp/Attic/progressmeter.c between version 1.4 and 1.5

version 1.4, 2019/05/14 18:51:07 version 1.5, 2019/05/15 13:42:40
Line 98 
Line 98 
                 i++;                  i++;
                 bytes = (bytes + 512) / 1024;                  bytes = (bytes + 512) / 1024;
         }          }
         snprintf(buf, size, "%3lld.%1lld%c%s",          snprintf(buf, size, "%lld.%02lld %c%s",
             (long long) (bytes + 5) / 100,              (long long) (bytes + 5) / 100,
             (long long) (bytes + 5) / 10 % 10,              (long long) (bytes + 5) / 10 % 10,
             unit[i],              unit[i],
Line 272 
Line 272 
 }  }
   
 void  void
 start_progress_meter(const char *fn, const char *t, off_t filesize, off_t *ctr)  init_stats(off_t filesize, off_t *ctr)
 {  {
         start = last_update = monotime();          start = last_update = monotime();
         start_pos = *ctr;          start_pos = *ctr;
Line 282 
Line 282 
         counter = ctr;          counter = ctr;
         stalled = 0;          stalled = 0;
         bytes_per_second = 0;          bytes_per_second = 0;
   
           if (filesize > 0)
                   end_pos = filesize;
   }
   
   void
   start_progress_meter(const char *fn, const char *t)
   {
         filename = fn;          filename = fn;
         title = t;          title = t;
   
Line 289 
Line 297 
          * Suppress progressmeter if filesize isn't known when           * Suppress progressmeter if filesize isn't known when
          * Content-Length header has bogus values.           * Content-Length header has bogus values.
          */           */
         if (filesize <= 0)  
           if (end_pos == 0)
                 return;                  return;
   
         end_pos = filesize;  
         setscreensize();          setscreensize();
         refresh_progress_meter();          refresh_progress_meter();
   
Line 304 
Line 312 
 void  void
 stop_progress_meter(void)  stop_progress_meter(void)
 {  {
         char    rate_str[32];  
         double  elapsed;  
   
         alarm(0);          alarm(0);
   
         /* Ensure we complete the progress */          /* Ensure we complete the progress */
Line 315 
Line 320 
   
         if (end_pos)          if (end_pos)
                 fprintf(stderr, "\n");                  fprintf(stderr, "\n");
   }
   
   void
   finish_stats(void)
   {
           char    rate_str[32];
           double  elapsed;
   
         if (!verbose)          if (!verbose)
                 return;                  return;
   
         elapsed = monotime() - start;          elapsed = monotime() - start;
         if (end_pos == 0) {  
                 if (elapsed != 0)  
                         bytes_per_second = *counter / elapsed;  
                 else  
                         bytes_per_second = *counter;  
         }  
   
           if (elapsed != 0)
                   bytes_per_second = *counter / elapsed;
           else
                   bytes_per_second = *counter;
   
         format_rate(rate_str, sizeof rate_str, bytes_per_second);          format_rate(rate_str, sizeof rate_str, bytes_per_second);
         log_info("%lld bytes received in %.2f seconds (%s/s)\n",          log_info("%lld byte%s received in %.2f seconds (%s/s)\n",
             (end_pos) ? cur_pos - offset : *counter, elapsed, rate_str);              *counter, *counter != 1 ? "s" : "", elapsed, rate_str);
 }  }
   
 static void  static void

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