Fix reducing bar length crashes on smaller screens

The "Copying at..." string can be > reduced length
This commit is contained in:
Arun Prakash Jana
2020-12-06 22:34:29 +05:30
parent a7d942a2ef
commit fa08fed46e

View File

@@ -1,6 +1,6 @@
diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
--- coreutils-8.32/src/copy.c 2020-01-01 19:43:12.000000000 +0530 --- coreutils-8.32/src/copy.c 2020-01-01 19:43:12.000000000 +0530
+++ coreutils-8.32-patched/src/copy.c 2020-10-26 19:27:59.398765746 +0530 +++ coreutils-8.32-patched/src/copy.c 2020-12-06 22:25:53.076852462 +0530
@@ -129,6 +129,72 @@ @@ -129,6 +129,72 @@
dev_t dev; dev_t dev;
}; };
@@ -222,7 +222,7 @@ diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
goto fail; goto fail;
dest_pos = ext_start + n_read; dest_pos = ext_start + n_read;
@@ -1305,6 +1467,70 @@ @@ -1305,6 +1467,71 @@
buf_alloc = xmalloc (buf_size + buf_alignment); buf_alloc = xmalloc (buf_size + buf_alignment);
buf = ptr_align (buf_alloc, buf_alignment); buf = ptr_align (buf_alloc, buf_alignment);
@@ -233,6 +233,7 @@ diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
+ int iBarLength = 80; + int iBarLength = 80;
+ struct winsize win; + struct winsize win;
+ if ( ioctl (STDOUT_FILENO, TIOCGWINSZ, (char *) &win) == 0 && win.ws_col > 0 ) + if ( ioctl (STDOUT_FILENO, TIOCGWINSZ, (char *) &win) == 0 && win.ws_col > 0 )
+ if (win.ws_col > iBarLength) /* String printed may be longer on smaller screens */
+ iBarLength = win.ws_col; + iBarLength = win.ws_col;
+ /* create rows */ + /* create rows */
+ int it; + int it;
@@ -293,7 +294,7 @@ diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
if (sparse_src) if (sparse_src)
{ {
bool normal_copy_required; bool normal_copy_required;
@@ -1316,7 +1542,9 @@ @@ -1316,7 +1543,9 @@
if (extent_copy (source_desc, dest_desc, buf, buf_size, hole_size, if (extent_copy (source_desc, dest_desc, buf, buf_size, hole_size,
src_open_sb.st_size, src_open_sb.st_size,
make_holes ? x->sparse_mode : SPARSE_NEVER, make_holes ? x->sparse_mode : SPARSE_NEVER,
@@ -304,7 +305,7 @@ diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
goto preserve_metadata; goto preserve_metadata;
if (! normal_copy_required) if (! normal_copy_required)
@@ -1328,11 +1556,12 @@ @@ -1328,11 +1557,12 @@
off_t n_read; off_t n_read;
bool wrote_hole_at_eof; bool wrote_hole_at_eof;
@@ -320,7 +321,7 @@ diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
{ {
return_val = false; return_val = false;
goto close_src_and_dst_desc; goto close_src_and_dst_desc;
@@ -1343,6 +1572,14 @@ @@ -1343,6 +1573,14 @@
return_val = false; return_val = false;
goto close_src_and_dst_desc; goto close_src_and_dst_desc;
} }
@@ -337,7 +338,7 @@ diff -aur coreutils-8.32/src/copy.c coreutils-8.32-patched/src/copy.c
preserve_metadata: preserve_metadata:
diff -aur coreutils-8.32/src/copy.h coreutils-8.32-patched/src/copy.h diff -aur coreutils-8.32/src/copy.h coreutils-8.32-patched/src/copy.h
--- coreutils-8.32/src/copy.h 2020-01-01 19:43:12.000000000 +0530 --- coreutils-8.32/src/copy.h 2020-01-01 19:43:12.000000000 +0530
+++ coreutils-8.32-patched/src/copy.h 2020-10-26 19:27:11.298040234 +0530 +++ coreutils-8.32-patched/src/copy.h 2020-12-06 22:24:03.488405684 +0530
@@ -234,6 +234,9 @@ @@ -234,6 +234,9 @@
Create destination directories as usual. */ Create destination directories as usual. */
bool symbolic_link; bool symbolic_link;
@@ -366,7 +367,7 @@ diff -aur coreutils-8.32/src/copy.h coreutils-8.32-patched/src/copy.h
#endif #endif
diff -aur coreutils-8.32/src/cp.c coreutils-8.32-patched/src/cp.c diff -aur coreutils-8.32/src/cp.c coreutils-8.32-patched/src/cp.c
--- coreutils-8.32/src/cp.c 2020-01-01 19:43:12.000000000 +0530 --- coreutils-8.32/src/cp.c 2020-01-01 19:43:12.000000000 +0530
+++ coreutils-8.32-patched/src/cp.c 2020-10-26 19:27:11.298040234 +0530 +++ coreutils-8.32-patched/src/cp.c 2020-12-06 22:24:03.488405684 +0530
@@ -131,6 +131,7 @@ @@ -131,6 +131,7 @@
{"symbolic-link", no_argument, NULL, 's'}, {"symbolic-link", no_argument, NULL, 's'},
{"target-directory", required_argument, NULL, 't'}, {"target-directory", required_argument, NULL, 't'},
@@ -531,7 +532,7 @@ diff -aur coreutils-8.32/src/cp.c coreutils-8.32-patched/src/cp.c
break; break;
diff -aur coreutils-8.32/src/mv.c coreutils-8.32-patched/src/mv.c diff -aur coreutils-8.32/src/mv.c coreutils-8.32-patched/src/mv.c
--- coreutils-8.32/src/mv.c 2020-01-01 19:43:12.000000000 +0530 --- coreutils-8.32/src/mv.c 2020-01-01 19:43:12.000000000 +0530
+++ coreutils-8.32-patched/src/mv.c 2020-10-26 19:27:11.298040234 +0530 +++ coreutils-8.32-patched/src/mv.c 2020-12-06 22:24:03.488405684 +0530
@@ -66,6 +66,7 @@ @@ -66,6 +66,7 @@
{"target-directory", required_argument, NULL, 't'}, {"target-directory", required_argument, NULL, 't'},
{"update", no_argument, NULL, 'u'}, {"update", no_argument, NULL, 'u'},