#if ENABLE_UNICODE_SUPPORT
init_unicode();
- /* libbb candidate? */
{
- wchar_t wbuf21[21];
- char *buf = xstrdup(curfile);
- unsigned len;
-
- /* trim to 20 wide chars max (sets wbuf21[20] to 0)
- * also, in case mbstowcs fails, we at least
- * dont get garbage */
- memset(wbuf21, 0, sizeof(wbuf21));
- /* convert to wide chars, no more than 20 */
- len = mbstowcs(wbuf21, curfile, 20); /* NB: may return -1 */
- /* back to multibyte; cant overflow */
- wcstombs(buf, wbuf21, INT_MAX);
- len = (len > 20) ? 0 : 20 - len;
- fprintf(stderr, "\r%s%*s%4u%% ", buf, len, "", ratio);
+ char *buf = unicode_conv_to_printable_fixedwidth(NULL, curfile, 20);
+ fprintf(stderr, "\r%s%4u%% ", buf, ratio);
free(buf);
}
#else
/* (long long helps to have working ETA even if !LFS) */
unsigned eta = (unsigned long long)to_download*elapsed/(uoff_t)transferred - elapsed;
unsigned secs = eta % 3600;
- fprintf(stderr, "%02u:%02u:%02u ETA", eta / 3600, secs / 60, secs % 60);
+ unsigned hours = eta / 3600;
+ fprintf(stderr, "%02u:%02u:%02u ETA", hours, secs / 60, secs % 60);
}
}
}