diff options
Diffstat (limited to 'src/tool_progress.c')
-rw-r--r-- | src/tool_progress.c | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/src/tool_progress.c b/src/tool_progress.c deleted file mode 100644 index e892ff3d2..000000000 --- a/src/tool_progress.c +++ /dev/null @@ -1,142 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al. - * - * This software is licensed as described in the file COPYING, which - * you should have received as part of this distribution. The terms - * are also available at http://curl.haxx.se/docs/copyright.html. - * - * You may opt to use, copy, modify, merge, publish, distribute and/or sell - * copies of the Software, and permit persons to whom the Software is - * furnished to do so, under the terms of the COPYING file. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ***************************************************************************/ -#include "setup.h" - -#include <curl/curl.h> - -#define ENABLE_CURLX_PRINTF -/* use our own printf() functions */ -#include "curlx.h" - -#include "tool_cfgable.h" -#include "tool_progress.h" - -#include "memdebug.h" /* keep this as LAST include */ - -int my_progress(void *clientp, - double dltotal, double dlnow, - double ultotal, double ulnow) -{ - /* The original progress-bar source code was written for curl by Lars Aas, - and this new edition inherits some of his concepts. */ - - char line[256]; - char outline[256]; - char format[40]; - double frac; - double percent; - int barwidth; - int num; - int i; - - struct ProgressData *bar = (struct ProgressData *)clientp; - - /* expected transfer size */ - curl_off_t total = (curl_off_t)dltotal + (curl_off_t)ultotal + - bar->initial_size; - - /* we've come this far */ - curl_off_t point = (curl_off_t)dlnow + (curl_off_t)ulnow + - bar->initial_size; - - if(point > total) - /* we have got more than the expected total! */ - total = point; - - /* simply count invokes */ - bar->calls++; - - if(total < 1) { - curl_off_t prevblock = bar->prev / 1024; - curl_off_t thisblock = point / 1024; - while(thisblock > prevblock) { - fprintf(bar->out, "#"); - prevblock++; - } - } - else { - frac = (double)point / (double)total; - percent = frac * 100.0f; - barwidth = bar->width - 7; - num = (int) (((double)barwidth) * frac); - for(i = 0; i < num; i++) - line[i] = '#'; - line[i] = '\0'; - snprintf(format, sizeof(format), "%%-%ds %%5.1f%%%%", barwidth); - snprintf(outline, sizeof(outline), format, line, percent); - fprintf(bar->out, "\r%s", outline); - } - fflush(bar->out); - bar->prev = point; - - return 0; -} - -void progressbarinit(struct ProgressData *bar, - struct Configurable *config) -{ -#ifdef __EMX__ - /* 20000318 mgs */ - int scr_size[2]; -#endif - char *colp; - - memset(bar, 0, sizeof(struct ProgressData)); - - /* pass this through to progress function so - * it can display progress towards total file - * not just the part that's left. (21-may-03, dbyron) */ - if(config->use_resume) - bar->initial_size = config->resume_from; - -/* TODO: get terminal width through ansi escapes or something similar. - try to update width when xterm is resized... - 19990617 larsa */ -#ifndef __EMX__ - /* 20000318 mgs - * OS/2 users most likely won't have this env var set, and besides that - * we're using our own way to determine screen width */ - colp = curlx_getenv("COLUMNS"); - if(colp) { - char *endptr; - long num = strtol(colp, &endptr, 10); - if((endptr != colp) && (endptr == colp + strlen(colp)) && (num > 0)) - bar->width = (int)num; - else - bar->width = 79; - curl_free(colp); - } - else - bar->width = 79; -#else - /* 20000318 mgs - * We use this emx library call to get the screen width, and subtract - * one from what we got in order to avoid a problem with the cursor - * advancing to the next line if we print a string that is as long as - * the screen is wide. */ - - _scrsize(scr_size); - bar->width = scr_size[0] - 1; -#endif - - bar->out = config->errors; -} - |