rcurses 4.8 → 4.8.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3315a5ab0bf9cc3f4db94b09c87de6f06319f34138e3ed5d6b71410202ccecdf
4
- data.tar.gz: 6e7ef74687339050e3eb2f8e74ccfc42c90d9d1c9aa2a5cdb3d24554d3e8e1d4
3
+ metadata.gz: f123fdc7761b5229b89890546447495b8096d3f67a64d304631926fc295eb43e
4
+ data.tar.gz: 9a2385d358bf235272a30689b8dc9dd443f956865c723911c356278aeeade0bd
5
5
  SHA512:
6
- metadata.gz: 20d838d608ac34060d0bb9a8a39f791ec02a302745dbed150bd0cd65ef1ed008803b4c6bb5ea41dbb7da25782ea4f7c6115eb9a6ee4d887208db38c419ee214c
7
- data.tar.gz: 1dffaed1371b88950bb579dc2173f076b4646cdd69dd9690d6e89ad8d3da954a532c929ce91f1dccada6fa8f670912066364b32b11c8395962d4305d3e6e8196
6
+ metadata.gz: 7624e84a82c461a0ec03dfe1f972e4b55c928993ec1d6d1e729ae00e99f739b009e1fb5cdbb4ff37c1d05c1e7476ee7fe966a98b36c7169f8db5ab8cb0d4792f
7
+ data.tar.gz: ef00d32f5f4909589519816b2adb859f4a5b4063c796191d5cad582f6fcb0a6c57a5a4f0b4efaa1f9dd2571b36490453c33ed8456f16381b7eadf55249cf0aaf
data/lib/rcurses/pane.rb CHANGED
@@ -221,11 +221,11 @@ module Rcurses
221
221
  hl = pl / 2
222
222
  case @align
223
223
  when "l"
224
- line_str = @txt[l].c(fmt) + " ".c(fmt) * pl
224
+ line_str = @txt[l].pure.c(fmt) + " ".c(fmt) * pl
225
225
  when "r"
226
- line_str = " ".c(fmt) * pl + @txt[l].c(fmt)
226
+ line_str = " ".c(fmt) * pl + @txt[l].pure.c(fmt)
227
227
  when "c"
228
- line_str = " ".c(fmt) * hl + @txt[l].c(fmt) + " ".c(fmt) * (pl - hl)
228
+ line_str = " ".c(fmt) * hl + @txt[l].pure.c(fmt) + " ".c(fmt) * (pl - hl)
229
229
  end
230
230
  else
231
231
  line_str = " ".c(fmt) * @w
data/lib/rcurses.rb CHANGED
@@ -5,7 +5,7 @@
5
5
  # Web_site: http://isene.com/
6
6
  # Github: https://github.com/isene/rcurses
7
7
  # License: Public domain
8
- # Version: 4.8: Bugfix: Removed stray ansi codes
8
+ # Version: 4.8.1: Bugfix: Fixed ANSI nesting bug
9
9
 
10
10
  require 'io/console' # Basic gem for rcurses
11
11
  require 'io/wait' # stdin handling
@@ -98,7 +98,15 @@ class String
98
98
 
99
99
  # Remove stray leading/trailing reset if the string has no other styling
100
100
  def clean_ansi
101
- gsub(/\A(?:\e\[0m)+/, '').gsub(/\e\[0m\z/, '')
101
+ # If we have opening ANSI codes without proper closing, just use pure
102
+ # to avoid unbalanced sequences that can corrupt terminal display
103
+ temp = gsub(/\A(?:\e\[0m)+/, '').gsub(/\e\[0m\z/, '')
104
+ # Check if we have unbalanced ANSI sequences (opening codes without closing)
105
+ if temp =~ /\e\[[\d;]+m/ && temp !~ /\e\[0m\z/
106
+ pure
107
+ else
108
+ temp
109
+ end
102
110
  end
103
111
 
104
112
  # Truncate the *visible* length to n, but preserve embedded ANSI
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: '4.8'
4
+ version: 4.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geir Isene
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-06-01 00:00:00.000000000 Z
11
+ date: 2025-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clipboard
@@ -30,7 +30,7 @@ description: 'Create curses applications for the terminal easier than ever. Crea
30
30
  color, blink and in any 256 terminal colors for foreground and background. Use a
31
31
  simple editor to let users edit text in panes. Left, right or center align text
32
32
  in panes. Cursor movement around the terminal. New in 3.8: Fixed border fragments
33
- upon utf-8 characters. 4.8: Bugfix: Removed stray ansi codes.'
33
+ upon utf-8 characters. 4.8.1: Bugfix: Fixed ANSI nesting bug.'
34
34
  email: g@isene.com
35
35
  executables: []
36
36
  extensions: []