From 8cde95e1704915ca0f9ae3a7b9cb82ea29b610af Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Fri, 17 Jul 2015 19:38:22 +0000 Subject: [PATCH] Using the proper type (off_t) for the size of a file, and avoiding warnings about too large bit shifts. Patch by Mike Frysinger. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5303 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 4 ++++ src/browser.c | 11 ++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index fd9adb39..e5acf355 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2015-07-17 Mike Frysinger + * src/browser.c (browser_refresh): Use the proper type (off_t) for + the size of a file, and avoid warnings about too large bit shifts. + 2015-07-15 Benno Schulenberg * src/nano.c, src/rcfile.c, doc/nanorc.sample.in, doc/man/nano.1, doc/man/nanorc.5, doc/texinfo/nano.texi, doc/syntax/nanorc.nanorc: diff --git a/src/browser.c b/src/browser.c index 3191e557..faba2a17 100644 --- a/src/browser.c +++ b/src/browser.c @@ -24,6 +24,7 @@ #include "proto.h" +#include #include #include #include @@ -637,7 +638,7 @@ void browser_refresh(void) } else foo = mallocstrcpy(NULL, _("(dir)")); } else { - unsigned long result = st.st_size; + off_t result = st.st_size; char modifier; foo = charalloc(foomaxlen + 1); @@ -655,10 +656,10 @@ void browser_refresh(void) modifier = 'G'; /* gigabytes */ } - /* If less than a terabyte, or if numbers can't even go - * that high, show the size, otherwise show "(huge)". */ - if (st.st_size < (1 << 40) || (1 << 40) == 0) - sprintf(foo, "%4lu %cB", result, modifier); + /* Show the size if less than a terabyte, + * otherwise show "(huge)". */ + if (result < (1 << 10)) + sprintf(foo, "%4ju %cB", (intmax_t)result, modifier); else /* TRANSLATORS: Try to keep this at most 7 characters. * If necessary, you can leave out the parentheses. */ -- 2.39.5