reline 0.1.9 → 0.1.10
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 +4 -4
- data/lib/reline.rb +17 -3
- data/lib/reline/ansi.rb +44 -3
- data/lib/reline/config.rb +1 -0
- data/lib/reline/key_actor/emacs.rb +1 -1
- data/lib/reline/kill_ring.rb +12 -0
- data/lib/reline/line_editor.rb +364 -172
- data/lib/reline/line_editor.rb.orig +2606 -0
- data/lib/reline/version.rb +1 -1
- data/lib/reline/windows.rb +8 -1
- metadata +4 -3
data/lib/reline/version.rb
CHANGED
data/lib/reline/windows.rb
CHANGED
@@ -233,7 +233,9 @@ class Reline::Windows
|
|
233
233
|
|
234
234
|
def self.move_cursor_up(val)
|
235
235
|
if val > 0
|
236
|
-
|
236
|
+
y = cursor_pos.y - val
|
237
|
+
y = 0 if y < 0
|
238
|
+
@@SetConsoleCursorPosition.call(@@hConsoleHandle, y * 65536 + cursor_pos.x)
|
237
239
|
elsif val < 0
|
238
240
|
move_cursor_down(-val)
|
239
241
|
end
|
@@ -241,6 +243,9 @@ class Reline::Windows
|
|
241
243
|
|
242
244
|
def self.move_cursor_down(val)
|
243
245
|
if val > 0
|
246
|
+
screen_height = get_screen_size.first
|
247
|
+
y = cursor_pos.y + val
|
248
|
+
y = screen_height - 1 if y > (screen_height - 1)
|
244
249
|
@@SetConsoleCursorPosition.call(@@hConsoleHandle, (cursor_pos.y + val) * 65536 + cursor_pos.x)
|
245
250
|
elsif val < 0
|
246
251
|
move_cursor_up(-val)
|
@@ -257,6 +262,8 @@ class Reline::Windows
|
|
257
262
|
|
258
263
|
def self.scroll_down(val)
|
259
264
|
return if val.zero?
|
265
|
+
screen_height = get_screen_size.first
|
266
|
+
val = screen_height - 1 if val > (screen_height - 1)
|
260
267
|
scroll_rectangle = [0, val, get_screen_size.last, get_screen_size.first].pack('s4')
|
261
268
|
destination_origin = 0 # y * 65536 + x
|
262
269
|
fill = [' '.ord, 0].pack('SS')
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reline
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- aycabta
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: io-console
|
@@ -103,6 +103,7 @@ files:
|
|
103
103
|
- lib/reline/key_stroke.rb
|
104
104
|
- lib/reline/kill_ring.rb
|
105
105
|
- lib/reline/line_editor.rb
|
106
|
+
- lib/reline/line_editor.rb.orig
|
106
107
|
- lib/reline/sibori.rb
|
107
108
|
- lib/reline/unicode.rb
|
108
109
|
- lib/reline/unicode/east_asian_width.rb
|
@@ -127,7 +128,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
127
128
|
- !ruby/object:Gem::Version
|
128
129
|
version: '0'
|
129
130
|
requirements: []
|
130
|
-
rubygems_version: 3.1.
|
131
|
+
rubygems_version: 3.1.4
|
131
132
|
signing_key:
|
132
133
|
specification_version: 4
|
133
134
|
summary: Alternative GNU Readline or Editline implementation by pure Ruby.
|