function                                             old     new   delta
update_num_lines                                       -     159    +159
m_status_print                                       409     266    -143
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/1 up/down: 159/-143)           Total: 16 bytes

Signed-off-by: Ron Yorston <[email protected]>
---
 miscutils/less.c | 52 ++++++++++++++++++++++++++++------------------------
 1 file changed, 28 insertions(+), 24 deletions(-)

diff --git a/miscutils/less.c b/miscutils/less.c
index dd932c5..4787f5a 100644
--- a/miscutils/less.c
+++ b/miscutils/less.c
@@ -609,33 +609,15 @@ static int safe_lineno(int fline)
        return LINENO(flines[fline]) + 1;
 }
 
-/* Print a status line if -M was specified */
-static void m_status_print(void)
+/* count number of lines in file */
+static void update_num_lines(void)
 {
-       int first, last;
-       unsigned percent;
-
-       if (less_gets_pos >= 0) /* don't touch statusline while input is done! 
*/
-               return;
-
-       clear_line();
-       printf(HIGHLIGHT"%s", filename);
-       if (num_files > 1)
-               printf(" (file %i of %i)", current_file, num_files);
-
-       first = safe_lineno(cur_fline);
-       last = (option_mask32 & FLAG_S)
-                       ? MIN(first + max_displayed_line, max_lineno)
-                       : safe_lineno(cur_fline + max_displayed_line);
-       printf(" lines %i-%i", first, last);
+       int count, fd;
+       ssize_t len, i;
+       char buf[4096];
+       struct stat stbuf;
 
        if (num_lines == READING_FILE) {
-               int count, fd;
-               ssize_t len, i;
-               char buf[4096];
-               struct stat stbuf;
-
-               /* count number of lines in file */
                count = 0;
                fd = open(filename, O_RDONLY);
                if (fd < 0)
@@ -654,7 +636,29 @@ static void m_status_print(void)
                close(fd);
  skip: ;
        }
+}
+
+/* Print a status line if -M was specified */
+static void m_status_print(void)
+{
+       int first, last;
+       unsigned percent;
+
+       if (less_gets_pos >= 0) /* don't touch statusline while input is done! 
*/
+               return;
+
+       clear_line();
+       printf(HIGHLIGHT"%s", filename);
+       if (num_files > 1)
+               printf(" (file %i of %i)", current_file, num_files);
+
+       first = safe_lineno(cur_fline);
+       last = (option_mask32 & FLAG_S)
+                       ? MIN(first + max_displayed_line, max_lineno)
+                       : safe_lineno(cur_fline + max_displayed_line);
+       printf(" lines %i-%i", first, last);
 
+       update_num_lines();
        if (num_lines >= 0)
                printf("/%i", num_lines);
 
-- 
2.4.3

_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to