From 38b245b46a51be82a5a5f798255cbbbbc0186f78 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 29 Dec 2010 12:00:30 +0100 Subject: Move files copied from maildrop to a separate hierarchy. Signed-off-by: Thomas Schwinge --- contrib/notmuch-deliver/maildrop/numlib/strsize.c | 62 +++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 contrib/notmuch-deliver/maildrop/numlib/strsize.c (limited to 'contrib/notmuch-deliver/maildrop/numlib/strsize.c') diff --git a/contrib/notmuch-deliver/maildrop/numlib/strsize.c b/contrib/notmuch-deliver/maildrop/numlib/strsize.c new file mode 100644 index 00000000..0a7dcaa8 --- /dev/null +++ b/contrib/notmuch-deliver/maildrop/numlib/strsize.c @@ -0,0 +1,62 @@ +/* +** Copyright 2001 Double Precision, Inc. +** See COPYING for distribution information. +*/ + +#if HAVE_CONFIG_H +#include "config.h" +#endif +#include "numlib.h" +#include + +static const char rcsid[]="$Id: strsize.c,v 1.2 2003/01/05 04:01:17 mrsam Exp $"; + +static void cat_n(char *buf, unsigned long n) +{ +char bb[NUMBUFSIZE+1]; +char *p=bb+sizeof(bb)-1; + + *p=0; + do + { + *--p = "0123456789"[n % 10]; + n=n/10; + } while (n); + strcat(buf, p); +} + +char *libmail_str_sizekb(unsigned long n, char *sizebuf) +{ + /* If size is less than 1K bytes, display it as 0.xK */ + + if (n < 1024) + { + strcpy(sizebuf, "0."); + cat_n(sizebuf, (int)(10 * n / 1024 )); + strcat(sizebuf, "K"); + } + /* If size is less than 1 meg, display is as xK */ + + else if (n < 1024 * 1024) + { + *sizebuf=0; + cat_n(sizebuf, (unsigned long)(n+512)/1024); + strcat(sizebuf, "K"); + } + + /* Otherwise, display in megabytes */ + + else + { + unsigned long nm=(double)n / (1024.0 * 1024.0) * 10; + + *sizebuf=0; + cat_n( sizebuf, nm / 10); + strcat(sizebuf, "."); + cat_n( sizebuf, nm % 10); + strcat(sizebuf, "M"); + } + + return (sizebuf); +} + -- cgit v1.2.3