X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=tfc_misc.c;h=57e6b2f67861e7cbd63d0f9c8383c22bebeba161;hb=10fd1044fc86d4537fdc6b05320f5a3d3996727d;hp=e6af46ada39ca1b324649aa927c75c4c92411369;hpb=2da8baf01e863c80eccdeb5f428f16e1cf3a0473;p=tfcrypt.git diff --git a/tfc_misc.c b/tfc_misc.c index e6af46a..57e6b2f 100644 --- a/tfc_misc.c +++ b/tfc_misc.c @@ -2,7 +2,7 @@ * tfcrypt -- high security Threefish encryption tool. * * tfcrypt is copyrighted: - * Copyright (C) 2012-2018 Andrey Rys. All rights reserved. + * Copyright (C) 2012-2019 Andrey Rys. All rights reserved. * * tfcrypt is licensed to you under the terms of std. MIT/X11 license: * @@ -94,6 +94,28 @@ void tfc_getcurtime(tfc_useconds *tx) memset(&t, 0, sizeof(t)); } +char *tfc_format_time(tfc_useconds t) +{ + tfc_useconds secs, dsecs; + unsigned days, hours, minutes, seconds; + static char r[128]; + + secs = (tfc_useconds)TFC_UTODSECS(t); + dsecs = (tfc_useconds)(t - (secs * 1000000)); + + days = secs / 86400; + hours = (secs / 3600) % 24; + minutes = (secs / 60) % 60; + seconds = secs % 60; + + if (days > 0) sprintf(r, "%ud,%02u:%02u:%02u.%03u", days, hours, minutes, seconds, (unsigned)(dsecs / 1000)); + else if (hours > 0) sprintf(r, "%02u:%02u:%02u.%03u", hours, minutes, seconds, (unsigned)(dsecs / 1000)); + else if (minutes > 0) sprintf(r, "%02u:%02u.%03u", minutes, seconds, (unsigned)(dsecs / 1000)); + else sprintf(r, "%02u.%03u", seconds, (unsigned)(dsecs / 1000)); + + return r; +} + tfc_fsize tfc_fdsize(int fd) { off_t l, cur; @@ -113,7 +135,7 @@ tfc_fsize tfc_fdgetpos(int fd) off_t t; t = lseek(fd, 0L, SEEK_CUR); - if (t == -1) return NOFSIZE; + if (t == (off_t)-1) return NOFSIZE; return (tfc_fsize)t; }