more: fix tabs handling
function old new delta more_main 837 829 -8 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
bff5f3f2b4
commit
82e785cf8c
@ -113,9 +113,12 @@ int more_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
loop_top:
|
loop_top:
|
||||||
if (input != 'r' && please_display_more_prompt) {
|
if (input != 'r' && please_display_more_prompt) {
|
||||||
len = printf("--More-- ");
|
len = printf("--More-- ");
|
||||||
if (st.st_size > 0) {
|
if (st.st_size != 0) {
|
||||||
|
uoff_t d = (uoff_t)st.st_size / 100;
|
||||||
|
if (d == 0)
|
||||||
|
d = 1;
|
||||||
len += printf("(%u%% of %"OFF_FMT"u bytes)",
|
len += printf("(%u%% of %"OFF_FMT"u bytes)",
|
||||||
(int) (ftello(file)*100 / st.st_size),
|
(int) ((uoff_t)ftello(file) / d),
|
||||||
st.st_size);
|
st.st_size);
|
||||||
}
|
}
|
||||||
fflush_all();
|
fflush_all();
|
||||||
@ -159,7 +162,7 @@ int more_main(int argc UNUSED_PARAM, char **argv)
|
|||||||
/* Crudely convert tabs into spaces, which are
|
/* Crudely convert tabs into spaces, which are
|
||||||
* a bajillion times easier to deal with. */
|
* a bajillion times easier to deal with. */
|
||||||
if (c == '\t') {
|
if (c == '\t') {
|
||||||
spaces = CONVERTED_TAB_SIZE - 1;
|
spaces = ((unsigned)~len) % CONVERTED_TAB_SIZE;
|
||||||
c = ' ';
|
c = ' ';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user