marvi 0.1.1 → 0.1.2

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: 41854d878cdc8137d35b7c54ff30ffb13b90206869828a6db31bd53b8d279f1b
4
- data.tar.gz: 396301e10a2d99ffd4c27526b1e792495c286450ae3e4c213ace369ea2b96706
3
+ metadata.gz: 0dd503447b94d15e62154562c11505be76de5f380abf17c735aa5f9879ac0ce8
4
+ data.tar.gz: 234f6152a1797777ad5129307246dd19ad8c564539d060ae5015c8d5afc2284f
5
5
  SHA512:
6
- metadata.gz: f7493dd561c802f8db70acf7f87fdc62f49aec9b74f9681197598e4781885598ce5a5ccf1acfad2975ab22a669556ada2282363b9d4342047ece848334686072
7
- data.tar.gz: 2c3e48d560413d982c451a9c3a562c102ac06da98900cf1441f73c05077f9dfa8682c6d6d4ea3e44a43ef7387cbeefe67d949b651a9e1d65808a5634348ff17d
6
+ metadata.gz: d042ca2e2863425922de5ffc43cef959c0dded6a8a63c901d0073ce2d12813f11ddbf3f53bfa402da92bb9df82ae2cb9894124d7333c3b9f5cd62358b45bbfc0
7
+ data.tar.gz: eb80372539222159afffd907a92b37dff0af63be65b72364cbc1e46449b05fd8dbf0490e9c64438a493400a2afefc51dbf01d4c39f07e0dac52298d0cc3876e6
@@ -24,7 +24,7 @@ module Marvi
24
24
  @lines = ASTWalker.new.walk(markdown)
25
25
  @scroll = 0
26
26
 
27
- ::Curses.init_screen
27
+ with_safe_term { ::Curses.init_screen }
28
28
  ::Curses.start_color
29
29
  ::Curses.use_default_colors
30
30
  ::Curses.noecho
@@ -42,6 +42,16 @@ module Marvi
42
42
 
43
43
  private
44
44
 
45
+ # xterm-ghostty's `rep` capability mishandles long runs of identical glyphs,
46
+ # so swap to xterm-256color around initscr to disable that ncurses optimization.
47
+ def with_safe_term
48
+ original = ENV["TERM"]
49
+ ENV["TERM"] = "xterm-256color" if original == "xterm-ghostty"
50
+ yield
51
+ ensure
52
+ ENV["TERM"] = original
53
+ end
54
+
45
55
  def setup_colors
46
56
  ::Curses.init_pair(COLOR_PAIRS[:cyan], ::Curses::COLOR_CYAN, -1)
47
57
  ::Curses.init_pair(COLOR_PAIRS[:green], ::Curses::COLOR_GREEN, -1)
@@ -86,7 +96,7 @@ module Marvi
86
96
  end
87
97
 
88
98
  def reinit_curses
89
- ::Curses.init_screen
99
+ with_safe_term { ::Curses.init_screen }
90
100
  ::Curses.start_color
91
101
  ::Curses.use_default_colors
92
102
  ::Curses.noecho
data/lib/marvi/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Marvi
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.2"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marvi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mitsutaka Mimura