rtfm-filemanager 8.1.1 → 8.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/bin/rtfm +18 -21
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 65a65b423798385788eb367824c259a5c06afe6fdb758236c1251392d25a3a9c
4
- data.tar.gz: 85ffe85ecc519a3ed161895a1c3acbb75abca292a406a91006867beb2094aca0
3
+ metadata.gz: e58685e75cad90ce6073efe92abe1fe018bf0371060e652dd86ccf6e7e41d252
4
+ data.tar.gz: 6fd3b54ac0729a9111aedad4c48b3e50c6b9467547d62e49c14bc22015c58d13
5
5
  SHA512:
6
- metadata.gz: 42e385ba69a21ab5f4460c83033c1fa78f18fd0bbf2cbd9efb08288481ea3a11ea6cd79211e5299b2a09acf0c35b19c8d1ed661c354c3c28651e99063e5b66a7
7
- data.tar.gz: e3d90244aa51ec34abbfabf044eb5cb51326ee3c264884dc9effbfbe4cc2d4ac99cc0f6174824600c55e02dc3173f2ec229c23889b5e39fd74578abd2a922399
6
+ metadata.gz: 26cb3b44a3b43f90c326050c18c0809b4d689be8610a38c9c591c5bc0519cb197988fd6b63305d0620ab7dddd3f00ae848ed2f5716b166c31d2dd8eab0237719
7
+ data.tar.gz: 76a5d98f72158d0cad178cf5b7c0d71e5ea7bea5bc51d06d2e23c2cbe3342e81e22508681f614f80f247e26394d299bf87765539e35b31461c27131c92a587db
data/CHANGELOG.md CHANGED
@@ -5,6 +5,16 @@ All notable changes to RTFM will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [8.1.3] - 2026-03-13
9
+
10
+ ### Fixed
11
+ - **Terminal state corruption after interactive programs** - Fixed input echoing to top bar after exiting programs like hyperlist. Re-added `self.update = true` in `say` override (now safe with rcurses 6.2.2 fix)
12
+
13
+ ## [8.1.2] - 2026-03-13
14
+
15
+ ### Fixed
16
+ - **Redraw loop on terminal resize** - SIGWINCH handler now only sets a flag; the actual resize and redraw is handled once per main loop iteration. Fixes infinite redraw cascade on macOS/mlterm when dragging to resize the terminal window (#11)
17
+
8
18
  ## [8.1.1] - 2026-03-12
9
19
 
10
20
  ### Fixed
data/bin/rtfm CHANGED
@@ -3393,7 +3393,6 @@ def open_remote_shell # {{{3
3393
3393
  system('stty raw -echo isig < /dev/tty')
3394
3394
  $stdin.raw!
3395
3395
  $stdin.echo = false
3396
- Rcurses.init! # Reinitialize rcurses to fix input handling
3397
3396
  Cursor.hide
3398
3397
  Rcurses.clear_screen
3399
3398
 
@@ -6665,6 +6664,7 @@ def marks_info # SHOW MARKS IN RIGHT WINDOW {{{2
6665
6664
  end
6666
6665
  info << "\n" + "Press " + "'" + " + letter to jump".fg(240)
6667
6666
  end
6667
+ @pR.update = true
6668
6668
  @pR.say(info)
6669
6669
  end
6670
6670
 
@@ -6774,26 +6774,10 @@ end
6774
6774
  setborder
6775
6775
 
6776
6776
  ## Catch change in terminal resize, redraw {{{2
6777
- Signal.trap('WINCH') do
6778
- # Don't refresh/render if an external interactive program is running
6779
- # This prevents RTFM from painting over programs like HyperList when
6780
- # switching terminals in window managers like i3-wm
6781
- unless @external_program_running
6782
- begin
6783
- new_h, new_w = IO.console.winsize
6784
- # Validate terminal size (minimum 10x20 to be usable)
6785
- if new_h && new_w && new_h >= 10 && new_w >= 20
6786
- @h, @w = new_h, new_w
6787
- @pT.update = @pL.update = @pR.update = @pB.update = true
6788
- refresh
6789
- render
6790
- end
6791
- rescue => e
6792
- # Silently ignore resize errors to prevent crashes
6793
- # User can manually refresh with 'r' key if needed
6794
- end
6795
- end
6796
- end
6777
+ # Signal handler only sets a flag (no I/O, signal-safe).
6778
+ # Rapid-fire SIGWINCH from live-resizing collapses into one redraw per loop.
6779
+ @winch_pending = false
6780
+ Signal.trap('WINCH') { @winch_pending = true }
6797
6781
 
6798
6782
 
6799
6783
  ## One-time flush {{{2
@@ -6816,6 +6800,19 @@ loop do
6816
6800
  @pB.update = false
6817
6801
  end
6818
6802
 
6803
+ # Handle pending terminal resize (debounced from SIGWINCH)
6804
+ if @winch_pending && !@external_program_running
6805
+ @winch_pending = false
6806
+ begin
6807
+ new_h, new_w = IO.console.winsize
6808
+ if new_h && new_w && new_h >= 10 && new_w >= 20
6809
+ @h, @w = new_h, new_w
6810
+ @pT.update = @pL.update = @pR.update = @pB.update = true
6811
+ refresh
6812
+ end
6813
+ rescue; end
6814
+ end
6815
+
6819
6816
  # redraw, but ignore TTY‐focus errors
6820
6817
  begin
6821
6818
  render
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rtfm-filemanager
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.1.1
4
+ version: 8.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geir Isene
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-03-12 00:00:00.000000000 Z
11
+ date: 2026-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rcurses