readline-ext 0.1.0.pre.1 → 0.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.
- checksums.yaml +4 -4
- data/.github/workflows/test.yml +34 -0
- data/.gitignore +1 -0
- data/README.md +24 -4
- data/Rakefile +11 -1
- data/ext/readline/depend-gem +4 -0
- data/ext/readline/extconf.rb +0 -1
- data/ext/readline/readline.c +16 -13
- data/readline-ext.gemspec +8 -3
- metadata +56 -12
- data/.travis.yml +0 -7
- data/ext/readline/depend +0 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e7ef47bdc0570592b4225202723bac94a77a8e9241788a653feb88342e53e47e
|
4
|
+
data.tar.gz: a5cb072d9541e2e89e241a7730a52ec7a308150913d1afb525ef5f6cd0f76593
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8508983cb9d56dbd7ba0c97e252d4f12b72aa3a2b274b74059fcf63cfdbf4cf155499b3d588d4a630db3a1aea88c4ef9456af797e1f3eb86b53e8ecbd79acc8
|
7
|
+
data.tar.gz: a801951ab7067e4e218ef4b3fe478abef45909ef6168c08137ad722542c1865e8131dc8da2cc485055d2865b6f886d88751a79d8e190fe58f81025f2e50df7b5
|
@@ -0,0 +1,34 @@
|
|
1
|
+
name: build
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
name: build (${{ matrix.ruby }} / ${{ matrix.os }})
|
8
|
+
strategy:
|
9
|
+
matrix:
|
10
|
+
ruby: [ '3.0', 2.7, 2.6, 2.5, head ]
|
11
|
+
os: [ ubuntu-latest, macos-latest ]
|
12
|
+
runs-on: ${{ matrix.os }}
|
13
|
+
steps:
|
14
|
+
- uses: actions/checkout@v2
|
15
|
+
- name: Install libedit
|
16
|
+
run: sudo apt-get install -q libedit-dev libedit2
|
17
|
+
if: startsWith(matrix.os, 'ubuntu')
|
18
|
+
- name: Install libedit
|
19
|
+
run: brew install libedit
|
20
|
+
if: startsWith(matrix.os, 'macos')
|
21
|
+
- name: Set up Ruby
|
22
|
+
uses: ruby/setup-ruby@v1
|
23
|
+
with:
|
24
|
+
ruby-version: ${{ matrix.ruby }}
|
25
|
+
- name: Install dependencies
|
26
|
+
run: |
|
27
|
+
bundle install
|
28
|
+
gem install reline --pre
|
29
|
+
- name: Run test
|
30
|
+
run: rake compile test
|
31
|
+
- name: Run test with libedit enabled
|
32
|
+
run: rake clobber compile test -- --enable-libedit
|
33
|
+
- name: Run test with libedit disabled
|
34
|
+
run: rake clobber compile test -- --disable-libedit
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,15 @@
|
|
1
1
|
# Readline
|
2
2
|
|
3
|
-
|
3
|
+
The Readline module provides interface for GNU Readline.
|
4
|
+
This module defines a number of methods to facilitate completion
|
5
|
+
and accesses input history from the Ruby interpreter.
|
6
|
+
This module supported Edit Line(libedit) too.
|
7
|
+
libedit is compatible with GNU Readline.
|
4
8
|
|
5
|
-
|
9
|
+
- [GNU Readline](http://www.gnu.org/directory/readline.html)
|
10
|
+
- [libedit](http://www.thrysoee.dk/editline/)
|
11
|
+
|
12
|
+
See RDoc for Readline module.
|
6
13
|
|
7
14
|
## Installation
|
8
15
|
|
@@ -22,7 +29,20 @@ Or install it yourself as:
|
|
22
29
|
|
23
30
|
## Usage
|
24
31
|
|
25
|
-
|
32
|
+
```ruby
|
33
|
+
require "readline"
|
34
|
+
while buf = Readline.readline("> ", true)
|
35
|
+
p buf
|
36
|
+
end
|
37
|
+
```
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
require "readline"
|
41
|
+
while buf = Readline.readline("> ", true)
|
42
|
+
p Readline::HISTORY.to_a
|
43
|
+
print("-> ", buf, "\n")
|
44
|
+
end
|
45
|
+
```
|
26
46
|
|
27
47
|
## Development
|
28
48
|
|
@@ -32,4 +52,4 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
32
52
|
|
33
53
|
## Contributing
|
34
54
|
|
35
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
55
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/ruby/readline-ext.
|
data/Rakefile
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
2
|
require "rake/testtask"
|
3
|
+
require "rake/extensiontask"
|
4
|
+
require "fileutils"
|
3
5
|
|
4
6
|
Rake::TestTask.new(:test) do |t|
|
5
7
|
t.libs << "test"
|
@@ -7,4 +9,12 @@ Rake::TestTask.new(:test) do |t|
|
|
7
9
|
t.test_files = FileList["test/**/test_*.rb"]
|
8
10
|
end
|
9
11
|
|
10
|
-
|
12
|
+
Rake::ExtensionTask.new("readline")
|
13
|
+
|
14
|
+
task :default => [:compile, :test]
|
15
|
+
|
16
|
+
task :build => :make_gem_depend
|
17
|
+
|
18
|
+
task :make_gem_depend do
|
19
|
+
FileUtils.copy_file("ext/readline/depend-gem", "ext/readline/depend")
|
20
|
+
end
|
data/ext/readline/extconf.rb
CHANGED
data/ext/readline/readline.c
CHANGED
@@ -78,7 +78,7 @@ static ID id_special_prefixes;
|
|
78
78
|
#ifndef HAVE_RL_USERNAME_COMPLETION_FUNCTION
|
79
79
|
# define rl_username_completion_function username_completion_function
|
80
80
|
#else
|
81
|
-
char *rl_username_completion_function(const char *, int);
|
81
|
+
RUBY_EXTERN char *rl_username_completion_function(const char *, int);
|
82
82
|
#endif
|
83
83
|
#ifndef HAVE_RL_COMPLETION_MATCHES
|
84
84
|
# define rl_completion_matches completion_matches
|
@@ -95,7 +95,6 @@ static char **readline_attempted_completion_function(const char *text,
|
|
95
95
|
|
96
96
|
#define OutputStringValue(str) do {\
|
97
97
|
StringValueCStr(str);\
|
98
|
-
rb_check_safe_obj(str);\
|
99
98
|
(str) = rb_str_conv_enc((str), rb_enc_get(str), rb_locale_encoding());\
|
100
99
|
} while (0)\
|
101
100
|
|
@@ -690,7 +689,7 @@ readline_s_insert_text(VALUE self, VALUE str)
|
|
690
689
|
#endif
|
691
690
|
|
692
691
|
#if defined(HAVE_RL_DELETE_TEXT)
|
693
|
-
int rl_delete_text(int, int);
|
692
|
+
RUBY_EXTERN int rl_delete_text(int, int);
|
694
693
|
static const char *
|
695
694
|
str_subpos(const char *ptr, const char *end, long beg, long *sublen, rb_encoding *enc)
|
696
695
|
{
|
@@ -1149,7 +1148,7 @@ readline_s_get_screen_size(VALUE self)
|
|
1149
1148
|
#endif
|
1150
1149
|
|
1151
1150
|
#ifdef HAVE_RL_VI_EDITING_MODE
|
1152
|
-
int rl_vi_editing_mode(int, int);
|
1151
|
+
RUBY_EXTERN int rl_vi_editing_mode(int, int);
|
1153
1152
|
/*
|
1154
1153
|
* call-seq:
|
1155
1154
|
* Readline.vi_editing_mode -> nil
|
@@ -1188,7 +1187,7 @@ readline_s_vi_editing_mode_p(VALUE self)
|
|
1188
1187
|
#endif
|
1189
1188
|
|
1190
1189
|
#ifdef HAVE_RL_EMACS_EDITING_MODE
|
1191
|
-
int rl_emacs_editing_mode(int, int);
|
1190
|
+
RUBY_EXTERN int rl_emacs_editing_mode(int, int);
|
1192
1191
|
/*
|
1193
1192
|
* call-seq:
|
1194
1193
|
* Readline.emacs_editing_mode -> nil
|
@@ -1382,7 +1381,7 @@ readline_s_set_basic_word_break_characters(VALUE self, VALUE str)
|
|
1382
1381
|
* Raises NotImplementedError if the using readline library does not support.
|
1383
1382
|
*/
|
1384
1383
|
static VALUE
|
1385
|
-
readline_s_get_basic_word_break_characters(VALUE self
|
1384
|
+
readline_s_get_basic_word_break_characters(VALUE self)
|
1386
1385
|
{
|
1387
1386
|
if (rl_basic_word_break_characters == NULL)
|
1388
1387
|
return Qnil;
|
@@ -1437,7 +1436,7 @@ readline_s_set_completer_word_break_characters(VALUE self, VALUE str)
|
|
1437
1436
|
* Raises NotImplementedError if the using readline library does not support.
|
1438
1437
|
*/
|
1439
1438
|
static VALUE
|
1440
|
-
readline_s_get_completer_word_break_characters(VALUE self
|
1439
|
+
readline_s_get_completer_word_break_characters(VALUE self)
|
1441
1440
|
{
|
1442
1441
|
if (rl_completer_word_break_characters == NULL)
|
1443
1442
|
return Qnil;
|
@@ -1552,7 +1551,7 @@ readline_s_set_basic_quote_characters(VALUE self, VALUE str)
|
|
1552
1551
|
* Raises NotImplementedError if the using readline library does not support.
|
1553
1552
|
*/
|
1554
1553
|
static VALUE
|
1555
|
-
readline_s_get_basic_quote_characters(VALUE self
|
1554
|
+
readline_s_get_basic_quote_characters(VALUE self)
|
1556
1555
|
{
|
1557
1556
|
if (rl_basic_quote_characters == NULL)
|
1558
1557
|
return Qnil;
|
@@ -1608,7 +1607,7 @@ readline_s_set_completer_quote_characters(VALUE self, VALUE str)
|
|
1608
1607
|
* Raises NotImplementedError if the using readline library does not support.
|
1609
1608
|
*/
|
1610
1609
|
static VALUE
|
1611
|
-
readline_s_get_completer_quote_characters(VALUE self
|
1610
|
+
readline_s_get_completer_quote_characters(VALUE self)
|
1612
1611
|
{
|
1613
1612
|
if (rl_completer_quote_characters == NULL)
|
1614
1613
|
return Qnil;
|
@@ -1662,7 +1661,7 @@ readline_s_set_filename_quote_characters(VALUE self, VALUE str)
|
|
1662
1661
|
* Raises NotImplementedError if the using readline library does not support.
|
1663
1662
|
*/
|
1664
1663
|
static VALUE
|
1665
|
-
readline_s_get_filename_quote_characters(VALUE self
|
1664
|
+
readline_s_get_filename_quote_characters(VALUE self)
|
1666
1665
|
{
|
1667
1666
|
if (rl_filename_quote_characters == NULL)
|
1668
1667
|
return Qnil;
|
@@ -1673,7 +1672,7 @@ readline_s_get_filename_quote_characters(VALUE self, VALUE str)
|
|
1673
1672
|
#endif
|
1674
1673
|
|
1675
1674
|
#ifdef HAVE_RL_REFRESH_LINE
|
1676
|
-
int rl_refresh_line(int, int);
|
1675
|
+
RUBY_EXTERN int rl_refresh_line(int, int);
|
1677
1676
|
/*
|
1678
1677
|
* call-seq:
|
1679
1678
|
* Readline.refresh_line -> nil
|
@@ -1919,8 +1918,11 @@ username_completion_proc_call(VALUE self, VALUE str)
|
|
1919
1918
|
return result;
|
1920
1919
|
}
|
1921
1920
|
|
1921
|
+
#ifdef HAVE_RL_CATCH_SIGNALS
|
1922
|
+
RUBY_EXTERN int rl_catch_signals;
|
1923
|
+
#endif
|
1922
1924
|
#ifdef HAVE_RL_CLEAR_SIGNALS
|
1923
|
-
int rl_clear_signals(void);
|
1925
|
+
RUBY_EXTERN int rl_clear_signals(void);
|
1924
1926
|
#endif
|
1925
1927
|
|
1926
1928
|
#undef rb_intern
|
@@ -2061,7 +2063,7 @@ Init_readline(void)
|
|
2061
2063
|
* The history buffer. It extends Enumerable module, so it behaves
|
2062
2064
|
* just like an array.
|
2063
2065
|
* For example, gets the fifth content that the user input by
|
2064
|
-
* HISTORY[4]
|
2066
|
+
* <code>HISTORY[4]</code>.
|
2065
2067
|
*/
|
2066
2068
|
rb_define_const(mReadline, "HISTORY", history);
|
2067
2069
|
|
@@ -2089,6 +2091,7 @@ Init_readline(void)
|
|
2089
2091
|
#if defined HAVE_CLEAR_HISTORY || defined HAVE_REMOVE_HISTORY
|
2090
2092
|
if (strncmp(rl_library_version, EDIT_LINE_LIBRARY_VERSION,
|
2091
2093
|
strlen(EDIT_LINE_LIBRARY_VERSION)) == 0) {
|
2094
|
+
prepare_readline();
|
2092
2095
|
add_history("1");
|
2093
2096
|
if (history_get(history_get_offset_func(0)) == NULL) {
|
2094
2097
|
history_get_offset_func = history_get_offset_0;
|
data/readline-ext.gemspec
CHANGED
@@ -1,21 +1,26 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "readline-ext"
|
3
|
-
spec.version = "0.1.
|
3
|
+
spec.version = "0.1.3"
|
4
4
|
spec.authors = ["Yukihiro Matsumoto"]
|
5
5
|
spec.email = ["matz@ruby-lang.org"]
|
6
6
|
|
7
7
|
spec.summary = %q{Provides an interface for GNU Readline and Edit Line (libedit).}
|
8
8
|
spec.description = %q{Provides an interface for GNU Readline and Edit Line (libedit).}
|
9
9
|
spec.homepage = "https://github.com/ruby/readline-ext"
|
10
|
-
spec.
|
10
|
+
spec.licenses = ["Ruby", "BSD-2-Clause"]
|
11
|
+
spec.extensions = %w[ext/readline/extconf.rb]
|
11
12
|
|
12
13
|
spec.metadata["homepage_uri"] = spec.homepage
|
13
14
|
spec.metadata["source_code_uri"] = spec.homepage
|
14
15
|
|
15
16
|
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
16
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
+
`git ls-files -z 2>/dev/null`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
18
|
end
|
18
19
|
spec.bindir = "exe"
|
19
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
21
|
spec.require_paths = ["lib"]
|
22
|
+
|
23
|
+
spec.add_development_dependency "bundler"
|
24
|
+
spec.add_development_dependency "rake"
|
25
|
+
spec.add_development_dependency "rake-compiler"
|
21
26
|
end
|
metadata
CHANGED
@@ -1,24 +1,67 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: readline-ext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yukihiro Matsumoto
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
11
|
+
date: 2021-10-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake-compiler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
13
55
|
description: Provides an interface for GNU Readline and Edit Line (libedit).
|
14
56
|
email:
|
15
57
|
- matz@ruby-lang.org
|
16
58
|
executables: []
|
17
|
-
extensions:
|
59
|
+
extensions:
|
60
|
+
- ext/readline/extconf.rb
|
18
61
|
extra_rdoc_files: []
|
19
62
|
files:
|
63
|
+
- ".github/workflows/test.yml"
|
20
64
|
- ".gitignore"
|
21
|
-
- ".travis.yml"
|
22
65
|
- Gemfile
|
23
66
|
- LICENSE.txt
|
24
67
|
- README.md
|
@@ -28,17 +71,18 @@ files:
|
|
28
71
|
- ext/readline/.gitignore
|
29
72
|
- ext/readline/README
|
30
73
|
- ext/readline/README.ja
|
31
|
-
- ext/readline/depend
|
74
|
+
- ext/readline/depend-gem
|
32
75
|
- ext/readline/extconf.rb
|
33
76
|
- ext/readline/readline.c
|
34
77
|
- readline-ext.gemspec
|
35
78
|
homepage: https://github.com/ruby/readline-ext
|
36
79
|
licenses:
|
80
|
+
- Ruby
|
37
81
|
- BSD-2-Clause
|
38
82
|
metadata:
|
39
83
|
homepage_uri: https://github.com/ruby/readline-ext
|
40
84
|
source_code_uri: https://github.com/ruby/readline-ext
|
41
|
-
post_install_message:
|
85
|
+
post_install_message:
|
42
86
|
rdoc_options: []
|
43
87
|
require_paths:
|
44
88
|
- lib
|
@@ -49,12 +93,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
49
93
|
version: '0'
|
50
94
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
51
95
|
requirements:
|
52
|
-
- - "
|
96
|
+
- - ">="
|
53
97
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
98
|
+
version: '0'
|
55
99
|
requirements: []
|
56
|
-
rubygems_version: 3.0.
|
57
|
-
signing_key:
|
100
|
+
rubygems_version: 3.3.0.dev
|
101
|
+
signing_key:
|
58
102
|
specification_version: 4
|
59
103
|
summary: Provides an interface for GNU Readline and Edit Line (libedit).
|
60
104
|
test_files: []
|
data/.travis.yml
DELETED
data/ext/readline/depend
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
# AUTOGENERATED DEPENDENCIES START
|
2
|
-
readline.o: $(RUBY_EXTCONF_H)
|
3
|
-
readline.o: $(arch_hdrdir)/ruby/config.h
|
4
|
-
readline.o: $(hdrdir)/ruby.h
|
5
|
-
readline.o: $(hdrdir)/ruby/assert.h
|
6
|
-
readline.o: $(hdrdir)/ruby/backward.h
|
7
|
-
readline.o: $(hdrdir)/ruby/defines.h
|
8
|
-
readline.o: $(hdrdir)/ruby/encoding.h
|
9
|
-
readline.o: $(hdrdir)/ruby/intern.h
|
10
|
-
readline.o: $(hdrdir)/ruby/io.h
|
11
|
-
readline.o: $(hdrdir)/ruby/missing.h
|
12
|
-
readline.o: $(hdrdir)/ruby/onigmo.h
|
13
|
-
readline.o: $(hdrdir)/ruby/oniguruma.h
|
14
|
-
readline.o: $(hdrdir)/ruby/ruby.h
|
15
|
-
readline.o: $(hdrdir)/ruby/st.h
|
16
|
-
readline.o: $(hdrdir)/ruby/subst.h
|
17
|
-
readline.o: $(hdrdir)/ruby/thread.h
|
18
|
-
readline.o: readline.c
|
19
|
-
# AUTOGENERATED DEPENDENCIES END
|