curses 1.4.0 → 1.4.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/windows.yml +3 -6
- data/History.md +7 -0
- data/README.md +11 -46
- data/curses.gemspec +1 -1
- data/ext/curses/curses.c +55 -37
- metadata +3 -5
- data/.travis.yml +0 -16
- data/appveyor.yml +0 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 857d0a003f909b9e148855feb1d7b5eca2487aab1d22c544e0fdf560a92293b5
|
4
|
+
data.tar.gz: 49329a8c35c0e157c5cba591eb317bf9acf2672af16c8e826aa22ab0ada59cda
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7330fdebb60f3871c10d74685ea5c7ed0194ba7630d0def5cd65de72a3e32e48df343b290ed7e718a116eae1eeab52b5f32d58a4e16e64db6210da9fea19d99e
|
7
|
+
data.tar.gz: 77d3c8bcc7183642917311d0cbde1d14f55771b133adb2b7953a052a02672053a5bdc3dd0fc0ab78963383d1e114c9b4534df643be05cb17c2adfdcfca8d7c1a
|
@@ -7,19 +7,16 @@ jobs:
|
|
7
7
|
runs-on: windows-latest
|
8
8
|
strategy:
|
9
9
|
matrix:
|
10
|
-
ruby: [ '2.7
|
10
|
+
ruby: [ 'mingw', 'mswin', '2.7', '2.6', '2.5' ]
|
11
11
|
steps:
|
12
12
|
- uses: actions/checkout@v2
|
13
13
|
with:
|
14
14
|
submodules: true
|
15
15
|
- name: Set up Ruby
|
16
|
-
uses:
|
16
|
+
uses: ruby/setup-ruby@v1
|
17
17
|
with:
|
18
18
|
ruby-version: ${{ matrix.ruby }}
|
19
|
-
|
20
|
-
run: |
|
21
|
-
gem install bundler --no-document
|
22
|
-
bundle install
|
19
|
+
bundler-cache: true
|
23
20
|
- name: Build package
|
24
21
|
run: bundle exec rake build
|
25
22
|
- name: Install package
|
data/History.md
CHANGED
data/README.md
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
# curses
|
2
2
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/curses.svg)](https://badge.fury.io/rb/curses)
|
4
|
-
[![
|
5
|
-
[![
|
4
|
+
[![ubuntu](https://github.com/ruby/curses/workflows/ubuntu/badge.svg)](https://github.com/ruby/curses/actions?query=workflow%3Aubuntu)
|
5
|
+
[![windows](https://github.com/ruby/curses/workflows/windows/badge.svg)](https://github.com/ruby/curses/actions?query=workflow%3Awindows)
|
6
|
+
[![macos](https://github.com/ruby/curses/workflows/macos/badge.svg)](https://github.com/ruby/curses/actions?query=workflow%3Amacos)
|
6
7
|
|
7
8
|
* https://github.com/ruby/curses
|
8
9
|
* https://github.com/ruby/curses/issues
|
@@ -28,8 +29,13 @@ Or
|
|
28
29
|
|
29
30
|
$ apt install libncursesw5-dev
|
30
31
|
|
31
|
-
On
|
32
|
+
On Windows, `gem install curses` will build bundled PDCurses, so you
|
32
33
|
don't need to install extra libraries.
|
34
|
+
However, if you prefer ncurses to PDCurses, specify the following option:
|
35
|
+
|
36
|
+
> gem install curses -- --use-system-libraries
|
37
|
+
|
38
|
+
On mingw, you need DevKit to compile the extension library.
|
33
39
|
|
34
40
|
## Documentation
|
35
41
|
|
@@ -42,57 +48,16 @@ After checking out the repo, run `bundle install` to install dependencies.
|
|
42
48
|
To compile the extension library, run `bundle exec rake compile`.
|
43
49
|
|
44
50
|
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `curses.gemspec`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
45
|
-
|
46
|
-
### Cross compilation for Windows on Debian GNU/Linux based platforms
|
47
|
-
|
48
|
-
1. Install development environment fo 32- and 64-bit Windows.
|
49
|
-
|
50
|
-
```
|
51
|
-
$ sudo apt-get install mingw-w64
|
52
|
-
```
|
53
|
-
|
54
|
-
2. Install rake-compiler.
|
55
|
-
|
56
|
-
```
|
57
|
-
$ gem install rake-compiler
|
58
|
-
```
|
59
|
-
|
60
|
-
3. Compile multiple versions of Ruby.
|
61
|
-
|
62
|
-
```
|
63
|
-
$ rake-compiler cross-ruby HOST=i686-w64-mingw32 VERSION=2.2.6
|
64
|
-
$ rake-compiler cross-ruby HOST=i686-w64-mingw32 VERSION=2.3.3
|
65
|
-
$ rake-compiler cross-ruby HOST=i686-w64-mingw32 VERSION=2.4.0
|
66
|
-
$ rake-compiler cross-ruby HOST=x86_64-w64-mingw32 VERSION=2.2.6
|
67
|
-
$ rake-compiler cross-ruby HOST=x86_64-w64-mingw32 VERSION=2.3.3
|
68
|
-
$ rake-compiler cross-ruby HOST=x86_64-w64-mingw32 VERSION=2.4.0
|
69
|
-
```
|
70
|
-
|
71
|
-
3. Compile PDCurses.
|
72
|
-
|
73
|
-
```
|
74
|
-
$ rake build:pdcurses
|
75
|
-
```
|
76
|
-
|
77
|
-
5. Compile curses.gem.
|
78
|
-
|
79
|
-
```
|
80
|
-
$ rake RUBY_CC_VERSION=2.3.3:2.4.0 cross clean compile native gem
|
81
|
-
```
|
82
|
-
|
83
|
-
Binary gems are generated in pkg/.
|
84
|
-
|
85
51
|
## License
|
86
52
|
|
87
53
|
curses is released under the Ruby and 2-clause BSD licenses. See COPYING for
|
88
54
|
details.
|
89
55
|
|
90
|
-
|
91
|
-
the public domain:
|
56
|
+
It includes a forked version of PDCurses, which is in the public domain:
|
92
57
|
|
93
58
|
https://github.com/Bill-Gray/PDCurses
|
94
59
|
|
95
|
-
The version for Win32 console mode in the
|
60
|
+
The version for Win32 console mode in the wincon subdirectory is used.
|
96
61
|
|
97
62
|
[1]: https://bugs.ruby-lang.org/issues/8584
|
98
63
|
[2]: https://github.com/ruby/ruby/commit/9c5b2fd8aa0fd343ad094d47a638cfd3f6ae0a81
|
data/curses.gemspec
CHANGED
data/ext/curses/curses.c
CHANGED
@@ -82,8 +82,19 @@
|
|
82
82
|
# define USE_MOUSE 1
|
83
83
|
#endif
|
84
84
|
|
85
|
-
#define
|
86
|
-
|
85
|
+
#define OBJ2CHTYPE rb_obj2chtype_inline
|
86
|
+
|
87
|
+
static inline chtype
|
88
|
+
rb_obj2chtype_inline(VALUE x)
|
89
|
+
{
|
90
|
+
if (RB_TYPE_P(x, RUBY_T_STRING)) {
|
91
|
+
ID id_ord;
|
92
|
+
|
93
|
+
CONST_ID(id_ord, "ord");
|
94
|
+
x = rb_funcall(x, id_ord, 0);
|
95
|
+
}
|
96
|
+
return NUM2CHTYPE(x);
|
97
|
+
}
|
87
98
|
|
88
99
|
static VALUE mCurses;
|
89
100
|
static VALUE mKey;
|
@@ -291,7 +302,7 @@ static void curses_finalize(VALUE);
|
|
291
302
|
* see also Curses.stdscr
|
292
303
|
*/
|
293
304
|
static VALUE
|
294
|
-
curses_init_screen(
|
305
|
+
curses_init_screen(VALUE self)
|
295
306
|
{
|
296
307
|
if (rb_stdscr) return rb_stdscr;
|
297
308
|
initscr();
|
@@ -314,7 +325,7 @@ curses_init_screen(void)
|
|
314
325
|
*
|
315
326
|
* Many curses functions use this window.
|
316
327
|
*/
|
317
|
-
#define curses_stdscr curses_init_screen
|
328
|
+
#define curses_stdscr() curses_init_screen(Qnil)
|
318
329
|
|
319
330
|
/*
|
320
331
|
* Document-method: Curses.close_screen
|
@@ -330,7 +341,7 @@ curses_init_screen(void)
|
|
330
341
|
*
|
331
342
|
*/
|
332
343
|
static VALUE
|
333
|
-
curses_close_screen(
|
344
|
+
curses_close_screen(VALUE self)
|
334
345
|
{
|
335
346
|
curses_stdscr();
|
336
347
|
#ifdef HAVE_ISENDWIN
|
@@ -370,7 +381,7 @@ curses_finalize(VALUE dummy)
|
|
370
381
|
* returns +false+ otherwise.
|
371
382
|
*/
|
372
383
|
static VALUE
|
373
|
-
curses_closed(
|
384
|
+
curses_closed(VALUE self)
|
374
385
|
{
|
375
386
|
curses_stdscr();
|
376
387
|
if (isendwin()) {
|
@@ -420,7 +431,7 @@ curses_erase(VALUE obj)
|
|
420
431
|
* Clears to the end of line, that the cursor is currently on.
|
421
432
|
*/
|
422
433
|
static VALUE
|
423
|
-
curses_clrtoeol(
|
434
|
+
curses_clrtoeol(VALUE self)
|
424
435
|
{
|
425
436
|
curses_stdscr();
|
426
437
|
clrtoeol();
|
@@ -747,7 +758,7 @@ static VALUE
|
|
747
758
|
curses_inch(VALUE obj)
|
748
759
|
{
|
749
760
|
curses_stdscr();
|
750
|
-
return
|
761
|
+
return CHTYPE2NUM(inch());
|
751
762
|
}
|
752
763
|
|
753
764
|
/*
|
@@ -762,7 +773,7 @@ static VALUE
|
|
762
773
|
curses_addch(VALUE obj, VALUE ch)
|
763
774
|
{
|
764
775
|
curses_stdscr();
|
765
|
-
addch(
|
776
|
+
addch(OBJ2CHTYPE(ch));
|
766
777
|
return Qnil;
|
767
778
|
}
|
768
779
|
|
@@ -777,7 +788,7 @@ static VALUE
|
|
777
788
|
curses_insch(VALUE obj, VALUE ch)
|
778
789
|
{
|
779
790
|
curses_stdscr();
|
780
|
-
insch(
|
791
|
+
insch(OBJ2CHTYPE(ch));
|
781
792
|
return Qnil;
|
782
793
|
}
|
783
794
|
|
@@ -949,7 +960,7 @@ curses_keyname(VALUE obj, VALUE c)
|
|
949
960
|
* Returns the number of lines on the screen
|
950
961
|
*/
|
951
962
|
static VALUE
|
952
|
-
curses_lines(
|
963
|
+
curses_lines(VALUE self)
|
953
964
|
{
|
954
965
|
return INT2FIX(LINES);
|
955
966
|
}
|
@@ -960,7 +971,7 @@ curses_lines(void)
|
|
960
971
|
* Returns the number of columns on the screen
|
961
972
|
*/
|
962
973
|
static VALUE
|
963
|
-
curses_cols(
|
974
|
+
curses_cols(VALUE self)
|
964
975
|
{
|
965
976
|
return INT2FIX(COLS);
|
966
977
|
}
|
@@ -1106,7 +1117,7 @@ curses_bkgdset(VALUE obj, VALUE ch)
|
|
1106
1117
|
{
|
1107
1118
|
#ifdef HAVE_BKGDSET
|
1108
1119
|
curses_stdscr();
|
1109
|
-
bkgdset(
|
1120
|
+
bkgdset(OBJ2CHTYPE(ch));
|
1110
1121
|
#endif
|
1111
1122
|
return Qnil;
|
1112
1123
|
}
|
@@ -1127,7 +1138,7 @@ curses_bkgd(VALUE obj, VALUE ch)
|
|
1127
1138
|
{
|
1128
1139
|
#ifdef HAVE_BKGD
|
1129
1140
|
curses_stdscr();
|
1130
|
-
return (bkgd(
|
1141
|
+
return (bkgd(OBJ2CHTYPE(ch)) == OK) ? Qtrue : Qfalse;
|
1131
1142
|
#else
|
1132
1143
|
return Qfalse;
|
1133
1144
|
#endif
|
@@ -1548,7 +1559,7 @@ static VALUE
|
|
1548
1559
|
curses_mousemask(VALUE obj, VALUE mask)
|
1549
1560
|
{
|
1550
1561
|
curses_stdscr();
|
1551
|
-
return
|
1562
|
+
return ULONG2NUM(mousemask(NUM2UINT(mask),NULL));
|
1552
1563
|
}
|
1553
1564
|
|
1554
1565
|
#define DEFINE_MOUSE_GET_MEMBER(func_name,mem) \
|
@@ -1589,7 +1600,12 @@ DEFINE_MOUSE_GET_MEMBER(curs_mouse_z, z)
|
|
1589
1600
|
* Returns the current mouse's button state. Use this with the button state
|
1590
1601
|
* constants to determine which buttons were pressed.
|
1591
1602
|
*/
|
1592
|
-
|
1603
|
+
static VALUE curs_mouse_bstate(VALUE mouse)
|
1604
|
+
{
|
1605
|
+
struct mousedata *mdata;
|
1606
|
+
GetMOUSE(mouse, mdata);
|
1607
|
+
return ULONG2NUM(mdata->mevent->bstate);
|
1608
|
+
}
|
1593
1609
|
#undef define_curs_mouse_member
|
1594
1610
|
#endif /* USE_MOUSE */
|
1595
1611
|
|
@@ -1681,7 +1697,7 @@ window_initialize(VALUE obj, VALUE h, VALUE w, VALUE top, VALUE left)
|
|
1681
1697
|
struct windata *winp;
|
1682
1698
|
WINDOW *window;
|
1683
1699
|
|
1684
|
-
curses_init_screen();
|
1700
|
+
curses_init_screen(Qnil);
|
1685
1701
|
TypedData_Get_Struct(obj, struct windata, &windata_type, winp);
|
1686
1702
|
if (winp->window) delwin(winp->window);
|
1687
1703
|
window = newwin(NUM2INT(h), NUM2INT(w), NUM2INT(top), NUM2INT(left));
|
@@ -2178,7 +2194,7 @@ window_begx(VALUE obj)
|
|
2178
2194
|
|
2179
2195
|
/*
|
2180
2196
|
* Document-method: Curses::Window.box
|
2181
|
-
* call-seq: box(vert, hor)
|
2197
|
+
* call-seq: box(vert = nil, hor = nil, corn = nil)
|
2182
2198
|
*
|
2183
2199
|
* set the characters to frame the window in.
|
2184
2200
|
* The vertical +vert+ and horizontal +hor+ character.
|
@@ -2193,16 +2209,18 @@ window_box(int argc, VALUE *argv, VALUE self)
|
|
2193
2209
|
struct windata *winp;
|
2194
2210
|
VALUE vert, hor, corn;
|
2195
2211
|
|
2196
|
-
rb_scan_args(argc, argv, "
|
2212
|
+
rb_scan_args(argc, argv, "03", &vert, &hor, &corn);
|
2197
2213
|
|
2198
2214
|
GetWINDOW(self, winp);
|
2199
|
-
box(winp->window,
|
2215
|
+
box(winp->window,
|
2216
|
+
NIL_P(vert) ? 0 : OBJ2CHTYPE(vert),
|
2217
|
+
NIL_P(hor) ? 0 : OBJ2CHTYPE(hor));
|
2200
2218
|
|
2201
2219
|
if (!NIL_P(corn)) {
|
2202
2220
|
int cur_x, cur_y, x, y;
|
2203
2221
|
chtype c;
|
2204
2222
|
|
2205
|
-
c =
|
2223
|
+
c = OBJ2CHTYPE(corn);
|
2206
2224
|
getyx(winp->window, cur_y, cur_x);
|
2207
2225
|
x = NUM2INT(window_maxx(self)) - 1;
|
2208
2226
|
y = NUM2INT(window_maxy(self)) - 1;
|
@@ -2269,7 +2287,7 @@ window_inch(VALUE obj)
|
|
2269
2287
|
struct windata *winp;
|
2270
2288
|
|
2271
2289
|
GetWINDOW(obj, winp);
|
2272
|
-
return
|
2290
|
+
return CHTYPE2NUM(winch(winp->window));
|
2273
2291
|
}
|
2274
2292
|
|
2275
2293
|
/*
|
@@ -2286,7 +2304,7 @@ window_addch(VALUE obj, VALUE ch)
|
|
2286
2304
|
struct windata *winp;
|
2287
2305
|
|
2288
2306
|
GetWINDOW(obj, winp);
|
2289
|
-
waddch(winp->window,
|
2307
|
+
waddch(winp->window, OBJ2CHTYPE(ch));
|
2290
2308
|
|
2291
2309
|
return Qnil;
|
2292
2310
|
}
|
@@ -2304,7 +2322,7 @@ window_insch(VALUE obj, VALUE ch)
|
|
2304
2322
|
struct windata *winp;
|
2305
2323
|
|
2306
2324
|
GetWINDOW(obj, winp);
|
2307
|
-
winsch(winp->window,
|
2325
|
+
winsch(winp->window, OBJ2CHTYPE(ch));
|
2308
2326
|
|
2309
2327
|
return Qnil;
|
2310
2328
|
}
|
@@ -2732,7 +2750,7 @@ window_bkgdset(VALUE obj, VALUE ch)
|
|
2732
2750
|
struct windata *winp;
|
2733
2751
|
|
2734
2752
|
GetWINDOW(obj,winp);
|
2735
|
-
wbkgdset(winp->window,
|
2753
|
+
wbkgdset(winp->window, OBJ2CHTYPE(ch));
|
2736
2754
|
#endif
|
2737
2755
|
return Qnil;
|
2738
2756
|
}
|
@@ -2753,7 +2771,7 @@ window_bkgd(VALUE obj, VALUE ch)
|
|
2753
2771
|
struct windata *winp;
|
2754
2772
|
|
2755
2773
|
GetWINDOW(obj,winp);
|
2756
|
-
return (wbkgd(winp->window,
|
2774
|
+
return (wbkgd(winp->window, OBJ2CHTYPE(ch)) == OK) ? Qtrue : Qfalse;
|
2757
2775
|
#else
|
2758
2776
|
return Qfalse;
|
2759
2777
|
#endif
|
@@ -2921,7 +2939,7 @@ pad_initialize(VALUE obj, VALUE h, VALUE w)
|
|
2921
2939
|
struct windata *padp;
|
2922
2940
|
WINDOW *window;
|
2923
2941
|
|
2924
|
-
curses_init_screen();
|
2942
|
+
curses_init_screen(Qnil);
|
2925
2943
|
TypedData_Get_Struct(obj, struct windata, &windata_type, padp);
|
2926
2944
|
if (padp->window) delwin(padp->window);
|
2927
2945
|
window = newpad(NUM2INT(h), NUM2INT(w));
|
@@ -3092,7 +3110,7 @@ item_initialize(VALUE obj, VALUE name, VALUE description)
|
|
3092
3110
|
{
|
3093
3111
|
struct itemdata *itemp;
|
3094
3112
|
|
3095
|
-
curses_init_screen();
|
3113
|
+
curses_init_screen(Qnil);
|
3096
3114
|
TypedData_Get_Struct(obj, struct itemdata, &itemdata_type, itemp);
|
3097
3115
|
if (itemp->item) {
|
3098
3116
|
rb_raise(rb_eRuntimeError, "already initialized item");
|
@@ -3305,7 +3323,7 @@ menu_initialize(VALUE obj, VALUE items)
|
|
3305
3323
|
ID id_new;
|
3306
3324
|
|
3307
3325
|
Check_Type(items, T_ARRAY);
|
3308
|
-
curses_init_screen();
|
3326
|
+
curses_init_screen(Qnil);
|
3309
3327
|
TypedData_Get_Struct(obj, struct menudata, &menudata_type, menup);
|
3310
3328
|
if (menup->menu) {
|
3311
3329
|
rb_raise(rb_eRuntimeError, "already initialized menu");
|
@@ -3761,7 +3779,7 @@ field_initialize(VALUE obj, VALUE height, VALUE width,
|
|
3761
3779
|
{
|
3762
3780
|
struct fielddata *fieldp;
|
3763
3781
|
|
3764
|
-
curses_init_screen();
|
3782
|
+
curses_init_screen(Qnil);
|
3765
3783
|
TypedData_Get_Struct(obj, struct fielddata, &fielddata_type, fieldp);
|
3766
3784
|
if (fieldp->field) {
|
3767
3785
|
rb_raise(rb_eRuntimeError, "already initialized field");
|
@@ -4219,7 +4237,7 @@ form_initialize(VALUE obj, VALUE fields)
|
|
4219
4237
|
int i;
|
4220
4238
|
|
4221
4239
|
Check_Type(fields, T_ARRAY);
|
4222
|
-
curses_init_screen();
|
4240
|
+
curses_init_screen(Qnil);
|
4223
4241
|
TypedData_Get_Struct(obj, struct formdata, &formdata_type, formp);
|
4224
4242
|
if (formp->form) {
|
4225
4243
|
rb_raise(rb_eRuntimeError, "already initialized form");
|
@@ -4719,7 +4737,7 @@ Init_curses(void)
|
|
4719
4737
|
rb_define_module_function(mCurses, "init_screen", curses_init_screen, 0);
|
4720
4738
|
rb_define_module_function(mCurses, "close_screen", curses_close_screen, 0);
|
4721
4739
|
rb_define_module_function(mCurses, "closed?", curses_closed, 0);
|
4722
|
-
rb_define_module_function(mCurses, "stdscr",
|
4740
|
+
rb_define_module_function(mCurses, "stdscr", curses_init_screen, 0);
|
4723
4741
|
rb_define_module_function(mCurses, "refresh", curses_refresh, 0);
|
4724
4742
|
rb_define_module_function(mCurses, "doupdate", curses_doupdate, 0);
|
4725
4743
|
rb_define_module_function(mCurses, "clear", curses_clear, 0);
|
@@ -4859,7 +4877,7 @@ Init_curses(void)
|
|
4859
4877
|
* win.close
|
4860
4878
|
*
|
4861
4879
|
*/
|
4862
|
-
cWindow = rb_define_class_under(mCurses, "Window",
|
4880
|
+
cWindow = rb_define_class_under(mCurses, "Window", rb_cObject);
|
4863
4881
|
rb_define_alloc_func(cWindow, window_s_allocate);
|
4864
4882
|
rb_define_method(cWindow, "initialize", window_initialize, 4);
|
4865
4883
|
rb_define_method(cWindow, "subwin", window_subwin, 4);
|
@@ -4943,7 +4961,7 @@ Init_curses(void)
|
|
4943
4961
|
#endif
|
4944
4962
|
|
4945
4963
|
#ifdef HAVE_MENU
|
4946
|
-
cItem = rb_define_class_under(mCurses, "Item",
|
4964
|
+
cItem = rb_define_class_under(mCurses, "Item", rb_cObject);
|
4947
4965
|
rb_define_alloc_func(cItem, item_s_allocate);
|
4948
4966
|
rb_define_method(cItem, "initialize", item_initialize, 2);
|
4949
4967
|
rb_define_method(cItem, "==", item_eq, 1);
|
@@ -4954,7 +4972,7 @@ Init_curses(void)
|
|
4954
4972
|
rb_define_method(cItem, "opts_off", item_opts_off_m, 1);
|
4955
4973
|
rb_define_method(cItem, "opts", item_opts_m, 0);
|
4956
4974
|
|
4957
|
-
cMenu = rb_define_class_under(mCurses, "Menu",
|
4975
|
+
cMenu = rb_define_class_under(mCurses, "Menu", rb_cObject);
|
4958
4976
|
rb_define_alloc_func(cMenu, menu_s_allocate);
|
4959
4977
|
rb_define_method(cMenu, "initialize", menu_initialize, 1);
|
4960
4978
|
rb_define_method(cMenu, "post", menu_post, 0);
|
@@ -4977,7 +4995,7 @@ Init_curses(void)
|
|
4977
4995
|
#endif
|
4978
4996
|
|
4979
4997
|
#ifdef HAVE_FORM
|
4980
|
-
cField = rb_define_class_under(mCurses, "Field",
|
4998
|
+
cField = rb_define_class_under(mCurses, "Field", rb_cObject);
|
4981
4999
|
rb_define_alloc_func(cField, field_s_allocate);
|
4982
5000
|
rb_define_method(cField, "initialize", field_initialize, 6);
|
4983
5001
|
rb_define_method(cField, "set_buffer", field_set_buffer, 2);
|
@@ -5004,7 +5022,7 @@ Init_curses(void)
|
|
5004
5022
|
rb_define_method(cField, "max=", field_set_max, 1);
|
5005
5023
|
rb_define_method(cField, "set_type", field_set_type, -1);
|
5006
5024
|
|
5007
|
-
cForm = rb_define_class_under(mCurses, "Form",
|
5025
|
+
cForm = rb_define_class_under(mCurses, "Form", rb_cObject);
|
5008
5026
|
rb_define_alloc_func(cForm, form_s_allocate);
|
5009
5027
|
rb_define_method(cForm, "initialize", form_initialize, 1);
|
5010
5028
|
rb_define_method(cForm, "post", form_post, 0);
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: curses
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.
|
4
|
+
version: 1.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shugo Maeda
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-05-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -53,14 +53,12 @@ files:
|
|
53
53
|
- ".github/workflows/windows.yml"
|
54
54
|
- ".gitignore"
|
55
55
|
- ".gitmodules"
|
56
|
-
- ".travis.yml"
|
57
56
|
- BSDL
|
58
57
|
- COPYING
|
59
58
|
- Gemfile
|
60
59
|
- History.md
|
61
60
|
- README.md
|
62
61
|
- Rakefile
|
63
|
-
- appveyor.yml
|
64
62
|
- curses.gemspec
|
65
63
|
- ext/curses/curses.c
|
66
64
|
- ext/curses/depend
|
@@ -337,7 +335,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
337
335
|
- !ruby/object:Gem::Version
|
338
336
|
version: '0'
|
339
337
|
requirements: []
|
340
|
-
rubygems_version: 3.
|
338
|
+
rubygems_version: 3.3.0.dev
|
341
339
|
signing_key:
|
342
340
|
specification_version: 4
|
343
341
|
summary: A Ruby binding for curses, ncurses, and PDCurses. curses is an extension
|
data/.travis.yml
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
---
|
2
|
-
language: ruby
|
3
|
-
notifications:
|
4
|
-
email:
|
5
|
-
recipients:
|
6
|
-
- drbrain@segment7.net
|
7
|
-
- shugo@ruby-lang.org
|
8
|
-
rvm:
|
9
|
-
- 2.2.10
|
10
|
-
- 2.3.8
|
11
|
-
- 2.4.5
|
12
|
-
- 2.5.3
|
13
|
-
- 2.6.1
|
14
|
-
- ruby-head
|
15
|
-
before_install: gem install bundler -v '<2'
|
16
|
-
script: rake compile
|
data/appveyor.yml
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
---
|
2
|
-
clone_depth: 10
|
3
|
-
install:
|
4
|
-
- SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
|
5
|
-
- appveyor DownloadFile http://dl.bintray.com/oneclick/OpenKnapsack/x64/pdcurses-3.4-x64-windows.tar.lzma
|
6
|
-
- 7z e pdcurses-3.4-x64-windows.tar.lzma
|
7
|
-
- 7z x -y -oC:\Ruby%ruby_version% pdcurses-3.4-x64-windows.tar
|
8
|
-
- bundle install
|
9
|
-
build_script:
|
10
|
-
- rake -rdevkit compile -- --with-curses-dir=C:\Ruby%ruby_version%
|
11
|
-
test: off
|
12
|
-
deploy: off
|
13
|
-
environment:
|
14
|
-
matrix:
|
15
|
-
- ruby_version: "22-x64"
|
16
|
-
- ruby_version: "23-x64"
|