curses 1.4.0 → 1.4.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 +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
|
[](https://badge.fury.io/rb/curses)
|
4
|
-
[](https://github.com/ruby/curses/actions?query=workflow%3Aubuntu)
|
5
|
+
[](https://github.com/ruby/curses/actions?query=workflow%3Awindows)
|
6
|
+
[](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"
|