diff options
author | Canop <cano.petrole@gmail.com> | 2021-02-01 14:59:26 +0100 |
---|---|---|
committer | Canop <cano.petrole@gmail.com> | 2021-02-01 14:59:26 +0100 |
commit | 7f2246ac48845c12fe14b74e004da7e6d1999c38 (patch) | |
tree | 95ce75aece8da7a8bfda877d796801dfd5bfa684 | |
parent | 46cfd1db5339613d2edf0207c4a0fc77dff01c0c (diff) |
fix crash on page-down when last line of text preview is selected
Fix #339
-rw-r--r-- | Cargo.lock | 115 | ||||
-rw-r--r-- | Cargo.toml | 16 | ||||
-rw-r--r-- | src/syntactic/syntactic_view.rs | 8 | ||||
-rw-r--r-- | website/docs/css/extra.css | 3 |
4 files changed, 44 insertions, 98 deletions
@@ -115,7 +115,7 @@ dependencies = [ [[package]] name = "broot" -version = "1.2.1" +version = "1.2.2-dev" dependencies = [ "ansi_colours", "base64 0.13.0", @@ -352,26 +352,16 @@ dependencies = [ [[package]] name = "crossbeam" -version = "0.7.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69323bff1fb41c635347b8ead484a5ca6c3f11914d784170b158d8449ab07f8e" +checksum = "fd01a6eb3daaafa260f6fc94c3a6c36390abc2080e38e3e34ced87393fb77d80" dependencies = [ - "cfg-if 0.1.10", - "crossbeam-channel 0.4.4", - "crossbeam-deque 0.7.3", - "crossbeam-epoch 0.8.2", + "cfg-if 1.0.0", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", "crossbeam-queue", - "crossbeam-utils 0.7.2", -] - -[[package]] -name = "crossbeam-channel" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" -dependencies = [ - "crossbeam-utils 0.7.2", - "maybe-uninit", + "crossbeam-utils", ] [[package]] @@ -381,18 +371,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775" dependencies = [ "cfg-if 1.0.0", - "crossbeam-utils 0.8.1", -] - -[[package]] -name = "crossbeam-deque" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" -dependencies = [ - "crossbeam-epoch 0.8.2", - "crossbeam-utils 0.7.2", - "maybe-uninit", + "crossbeam-utils", ] [[package]] @@ -402,23 +381,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" dependencies = [ "cfg-if 1.0.0", - "crossbeam-epoch 0.9.1", - "crossbeam-utils 0.8.1", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" -dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", - "lazy_static", - "maybe-uninit", - "memoffset 0.5.6", - "scopeguard", + "crossbeam-epoch", + "crossbeam-utils", ] [[package]] @@ -429,32 +393,20 @@ checksum = "a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d" dependencies = [ "cfg-if 1.0.0", "const_fn", - "crossbeam-utils 0.8.1", + "crossbeam-utils", "lazy_static", - "memoffset 0.6.1", + "memoffset", "scopeguard", ] [[package]] name = "crossbeam-queue" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" -dependencies = [ - "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", - "maybe-uninit", -] - -[[package]] -name = "crossbeam-utils" -version = "0.7.2" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" +checksum = "0f6cb3c7f5b8e51bc3ebb73a2327ad4abdbd119dc13223f14f961d2f38486756" dependencies = [ - "autocfg", - "cfg-if 0.1.10", - "lazy_static", + "cfg-if 1.0.0", + "crossbeam-utils", ] [[package]] @@ -871,12 +823,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" [[package]] -name = "maybe-uninit" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" - -[[package]] name = "memchr" version = "2.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -894,15 +840,6 @@ dependencies = [ [[package]] name = "memoffset" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memoffset" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87" @@ -912,9 +849,7 @@ dependencies = [ [[package]] name = "minimad" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24fe6f533320d060be6644ff3967df0ddb2e3061164ab4976c9157995702e887" +version = "0.6.9" dependencies = [ "lazy_static", ] @@ -1270,7 +1205,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674" dependencies = [ "autocfg", - "crossbeam-deque 0.8.0", + "crossbeam-deque", "either", "rayon-core", ] @@ -1281,9 +1216,9 @@ version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a" dependencies = [ - "crossbeam-channel 0.5.0", - "crossbeam-deque 0.8.0", - "crossbeam-utils 0.8.1", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", "lazy_static", "num_cpus", ] @@ -1350,7 +1285,7 @@ dependencies = [ "base64 0.13.0", "blake2b_simd", "constant_time_eq", - "crossbeam-utils 0.8.1", + "crossbeam-utils", ] [[package]] @@ -1573,9 +1508,7 @@ dependencies = [ [[package]] name = "termimad" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4fae9923b92f150e76725c2b25d07767154baa597825870cc1e418ce9262dab" +version = "0.9.5" dependencies = [ "crossbeam", "crossterm", @@ -1,6 +1,6 @@ [package] name = "broot" -version = "1.2.1" +version = "1.2.2-dev" authors = ["dystroy <denys.seguret@gmail.com>"] repository = "https://github.com/Canop/broot" documentation = "https://dystroy.org/broot" @@ -26,7 +26,7 @@ char_reader = "0.1" clap = { version="2.33", default-features=false, features=["suggestions"] } cli-log = "0.1" chrono = "0.4" -crossbeam = "0.7" +crossbeam = "0.8" crossterm = "0.17.7" custom_error = "1.6" deser-hjson = "0.1.7" @@ -41,12 +41,12 @@ lazy-regex = "0.1.3" lazy_static = "1.4" libc = "0.2" log = "0.4" -minimad = "=0.6.7" +minimad = "=0.6.9" open = "1.4" memmap = "0.7" pathdiff = "0.1.0" phf = { version = "0.8", features = ["macros"] } -rayon = "1.4" +rayon = "1.5" regex = "1.3" secular = "0.2" serde = { version = "1.0", features = ["derive"] } @@ -54,7 +54,7 @@ splitty = "0.1" strict = "0.1.4" syntect = "4.2" tempfile = "3.1" -termimad = "0.9.2" +termimad = "0.9.4" terminal-clipboard = { version = "0.1.1", optional = true } toml = "0.5" umask = "1.0" @@ -74,7 +74,11 @@ is_executable = "0.1" [build-dependencies] clap = "2.33" +[profile.dev] +debug = false + [profile.release] +debug = false lto = true # link time optimization - roughly halves the size of the exec codegen-units = 1 # this removes a few hundred bytes from the final exec size @@ -92,7 +96,7 @@ harness = false # minimad = { path = "../minimad" } # termimad = { path = "../termimad" } # crossterm = { path = "../crossterm-rs/crossterm" } -#deser-hjson = { path = "../deser-hjson" } +# deser-hjson = { path = "../deser-hjson" } # umask = { path = "../umask" } # secular = { path = "../secular" } # strict = { path = "../strict" } diff --git a/src/syntactic/syntactic_view.rs b/src/syntactic/syntactic_view.rs index 60fb81b..f9c6b27 100644 --- a/src/syntactic/syntactic_view.rs +++ b/src/syntactic/syntactic_view.rs @@ -278,7 +278,13 @@ impl SyntacticView { self.scroll = cmd.apply(self.scroll, self.lines.len(), self.page_height); if let Some(idx) = self.selection_idx { if self.scroll != old_scroll && idx >= old_scroll && idx < old_scroll + self.page_height { - self.selection_idx = Some(idx + self.scroll - old_scroll); + if idx + self.scroll < old_scroll { + self.selection_idx = Some(0); + } else if idx + self.scroll - old_scroll >= self.lines.len() { + self.selection_idx = Some(self.lines.len() - 1); + } else { + self.selection_idx = Some(idx + self.scroll - old_scroll); + } } } self.scroll != old_scroll diff --git a/website/docs/css/extra.css b/website/docs/css/extra.css index d73ec16..326fe15 100644 --- a/website/docs/css/extra.css +++ b/website/docs/css/extra.css @@ -47,6 +47,9 @@ kbd.b { padding: 0 5px; } +.col-md-9 { + max-width: 1000px; +} .col-md-9 img { max-width: 100%; display: inline-block; |