rcurses 6.2.2 → 6.2.4

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/lib/rcurses/pane.rb +4 -11
  3. data/lib/rcurses.rb +8 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eb17c84b97853669cbe02b9abaa12f779f724d3c4444fb8e51ec67b390db9344
4
- data.tar.gz: 8dc9eb91e22ae86060f2291ae2a2474751687ed2cb7b8e3f05d3be280da9f631
3
+ metadata.gz: 16222a062a9490a2ad8382125fe23fd935a975eff70d0b9eea64529ca2b537b6
4
+ data.tar.gz: 98ed3f36f055cc8219dabf1560101ba1f4b44acd9c4606ddb760a40e84237a2a
5
5
  SHA512:
6
- metadata.gz: 2c1bebbbda8d009e509e5615b0530445dabe5788492fac8315b4813931ff341c2d0640d4fb2dc4187ce60cdec9d7267163cff31da31ed24b82bd17b0b11b997f
7
- data.tar.gz: 3ad6dea2292e330474caa5a707cde814f1b09189c087c3e1baec01bafc771b343139a34e6585d479b4675a00ac518f577defd3c3a1d13d39de8ec2807ec9a459
6
+ metadata.gz: 570af805bb2c612fcf116732eeef3721d97dd7b5ea5925890927f34e368c392db088b9e10469de6c181b0947e7427233820bf016d7a1ac912a9f8feca921cfda
7
+ data.tar.gz: 23fd4c4d019c983c3edb48d0c1794a9710f650f07e14fd41cea333f13926a56efeb4ee5e13b8f65b81cf8e0fd915959597ad5be5e80ee35558fd77217ffa0100
data/lib/rcurses/pane.rb CHANGED
@@ -225,16 +225,9 @@ module Rcurses
225
225
  @y = [[1, @y].max, @max_h - @h + 1].min
226
226
  end
227
227
 
228
- begin
229
- o_row, o_col = pos
230
- rescue => e
231
- # Fallback cursor position
232
- o_row, o_col = 1, 1
233
- end
234
-
228
+ # Save cursor with ANSI save (no stdin read needed)
235
229
  # Hide cursor, disable auto-wrap, reset all SGR and scroll margins
236
- # (so stray underline, scroll regions, etc. can’t leak out)
237
- STDOUT.print "\e[?25l\e[?7l\e[0m\e[r"
230
+ STDOUT.print "\e7\e[?25l\e[?7l\e[0m\e[r"
238
231
 
239
232
  fmt = [@fg.to_s, @bg.to_s].join(',')
240
233
 
@@ -363,8 +356,8 @@ module Rcurses
363
356
  end
364
357
  end
365
358
 
366
- # restore wrap, then also reset SGR and scroll-region one more time
367
- diff_buf << "\e[#{o_row};#{o_col}H\e[?7h\e[0m\e[r"
359
+ # Restore cursor, re-enable wrap, reset SGR and scroll-region
360
+ diff_buf << "\e8\e[?7h\e[0m\e[r"
368
361
  begin
369
362
  print diff_buf
370
363
  rescue => e
data/lib/rcurses.rb CHANGED
@@ -69,6 +69,10 @@ module Rcurses
69
69
  trap(sig) { cleanup!; exit }
70
70
  end
71
71
 
72
+ # Switch to alternate screen buffer (like vim, mutt, less, htop).
73
+ # This isolates the TUI from stray output by other processes.
74
+ print "\e[?1049h"
75
+
72
76
  # Flush any pending stdin data (terminal position responses, etc.)
73
77
  # This prevents cursor query responses from blocking the first getchr
74
78
  $stdin.getc while $stdin.wait_readable(0)
@@ -107,6 +111,9 @@ module Rcurses
107
111
  system("stty sane 2>/dev/null")
108
112
  end
109
113
 
114
+ # Restore main screen buffer (leave alternate screen)
115
+ print "\e[?1049l"
116
+
110
117
  # Only clear screen if there's no error to display
111
118
  # This preserves the error context on screen
112
119
  if @error_to_display.nil?
@@ -116,7 +123,7 @@ module Rcurses
116
123
  print "\e[999;1H" # Move to bottom-left
117
124
  print "\e[K" # Clear current line
118
125
  end
119
-
126
+
120
127
  Cursor.show
121
128
 
122
129
  @cleaned_up = true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rcurses
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.2.2
4
+ version: 6.2.4
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-13 00:00:00.000000000 Z
11
+ date: 2026-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clipboard