curses 1.2.0-x64-mingw32 → 1.2.1-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 04d04686d090e2a3913983232742be67966d9fbd
4
- data.tar.gz: 8843bf19009918d55b4e3bc7d7284aa47c4c5785
3
+ metadata.gz: 82231897ac848825d5081e63cfcea69dcf011eec
4
+ data.tar.gz: ae9ccc6ea7cb7e7d5d4ccad71bb104efbcfd1674
5
5
  SHA512:
6
- metadata.gz: 56acbf3928bb3c762a57759f8caca3e03cbe4c148ef8878054ee4d4554ccc13b5e24b8541644a9249bf4cf40e898077f4c6536500d3f51f83b740d79d23bde6e
7
- data.tar.gz: f34c4f2341d67915db884a7252113120d8fb08204800af5fddf223dfaf92142f03cb9a4b228fae88d62a9633ed6e8adf8b297137e233d9c5558bd4acca8c9165
6
+ metadata.gz: 9b58bdf24bedf166f9bdde909a7954caff481f3efcbf20a7928de6e7443d97b50917dea52f7c0e545c43dd7f66ddee3eee29cd447dc73d0e8055c9b9cd6268ed
7
+ data.tar.gz: 16eafd28f2e89ac9128b03d082ed644b52899568186d5e69e75b9076d09c370d31b5f2a9400067bf3c0bad35e43a20ecfe226a9899e2d32fd5ba4799c0fb5832
data/.gitignore CHANGED
@@ -10,4 +10,5 @@
10
10
  /Gemfile.lock
11
11
  /vendor/x86-mingw32
12
12
  /vendor/x64-mingw32
13
+ /ext/curses/Makefile
13
14
  .ruby-version
data/History.md CHANGED
@@ -1,3 +1,14 @@
1
+ ### 1.2.1 / 2017-03-27
2
+
3
+ New features:
4
+
5
+ * Add touch, untouch, touched?, touch_line, and line_touched?.
6
+
7
+ Bug fixes:
8
+
9
+ * Fix Pad#subpad to use subpad(3). (Issue #23)
10
+ * Fix build issues on macOS. Pull requests #24, #25, #26, #27 and #28 by nobu.
11
+
1
12
  ### 1.2.0 / 2017-02-19
2
13
 
3
14
  New features:
data/curses.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new { |s|
2
2
  s.name = "curses"
3
- s.version = "1.2.0"
3
+ s.version = "1.2.1"
4
4
  s.author = ["Shugo Maeda", 'Eric Hodel']
5
5
  s.email = ["shugo@ruby-lang.org", 'drbrain@segment7.net']
6
6
  s.homepage = "https://github.com/ruby/curses"
data/ext/curses/curses.c CHANGED
@@ -954,7 +954,7 @@ curses_bkgdset(VALUE obj, VALUE ch)
954
954
  {
955
955
  #ifdef HAVE_BKGDSET
956
956
  curses_stdscr();
957
- bkgdset(NUM2ULONG(ch));
957
+ bkgdset(NUM2CHTYPE(ch));
958
958
  #endif
959
959
  return Qnil;
960
960
  }
@@ -975,7 +975,7 @@ curses_bkgd(VALUE obj, VALUE ch)
975
975
  {
976
976
  #ifdef HAVE_BKGD
977
977
  curses_stdscr();
978
- return (bkgd(NUM2ULONG(ch)) == OK) ? Qtrue : Qfalse;
978
+ return (bkgd(NUM2CHTYPE(ch)) == OK) ? Qtrue : Qfalse;
979
979
  #else
980
980
  return Qfalse;
981
981
  #endif
@@ -1680,7 +1680,7 @@ window_noutrefresh(VALUE obj)
1680
1680
  /*
1681
1681
  * Document-method: Curses::Window.redraw
1682
1682
  *
1683
- * Dedraws the entire window.
1683
+ * Redraws the entire window.
1684
1684
  */
1685
1685
  static VALUE
1686
1686
  window_redraw(VALUE obj)
@@ -1696,6 +1696,125 @@ window_redraw(VALUE obj)
1696
1696
  #define window_redraw rb_f_notimplement
1697
1697
  #endif
1698
1698
 
1699
+ #ifdef HAVE_TOUCHWIN
1700
+ /*
1701
+ * Document-method: Curses::Window.touch
1702
+ *
1703
+ * Treat the window as if it has been modified since the last call of refresh.
1704
+ */
1705
+ static VALUE
1706
+ window_touch(VALUE obj)
1707
+ {
1708
+ struct windata *winp;
1709
+
1710
+ GetWINDOW(obj, winp);
1711
+ touchwin(winp->window);
1712
+
1713
+ return Qnil;
1714
+ }
1715
+ #else
1716
+ #define window_touch rb_f_notimplement
1717
+ #endif
1718
+
1719
+ #ifdef HAVE_UNTOUCHWIN
1720
+ /*
1721
+ * Document-method: Curses::Window.untouch
1722
+ *
1723
+ * Treat the window as if it has not been modified since the last call of
1724
+ * refresh.
1725
+ */
1726
+ static VALUE
1727
+ window_untouch(VALUE obj)
1728
+ {
1729
+ struct windata *winp;
1730
+
1731
+ GetWINDOW(obj, winp);
1732
+ untouchwin(winp->window);
1733
+
1734
+ return Qnil;
1735
+ }
1736
+ #else
1737
+ #define window_touch rb_f_notimplement
1738
+ #endif
1739
+
1740
+ #ifdef HAVE_IS_WINTOUCHED
1741
+ /*
1742
+ * Document-method: Curses::Window.touched?
1743
+ *
1744
+ * Return true if the window has been modified since the last call of refresh.
1745
+ */
1746
+ static VALUE
1747
+ window_touched(VALUE obj)
1748
+ {
1749
+ struct windata *winp;
1750
+
1751
+ GetWINDOW(obj, winp);
1752
+ return is_wintouched(winp->window) ? Qtrue : Qfalse;
1753
+ }
1754
+ #else
1755
+ #define window_touched rb_f_notimplement
1756
+ #endif
1757
+
1758
+ #ifdef HAVE_WTOUCHLN
1759
+ /*
1760
+ * Document-method: Curses::Window.touch_line
1761
+ * call-seq: touch_line(y, n, changed = true)
1762
+ *
1763
+ * Make n lines from line y look as if they have (changed = true) or have not
1764
+ * (changed = false) been modified since the last call of refresh.
1765
+ */
1766
+ static VALUE
1767
+ window_touch_line(int argc, VALUE *argv, VALUE obj)
1768
+ {
1769
+ struct windata *winp;
1770
+ VALUE y, n, changed;
1771
+ int result;
1772
+
1773
+ rb_scan_args(argc, argv, "12", &y, &n, &changed);
1774
+ if (argc < 2) {
1775
+ n = INT2NUM(1);
1776
+ }
1777
+ if (argc < 3) {
1778
+ changed = Qtrue;
1779
+ }
1780
+ GetWINDOW(obj, winp);
1781
+ result = wtouchln(winp->window, NUM2INT(y), NUM2INT(n), RTEST(changed));
1782
+ if (result == ERR) {
1783
+ rb_raise(rb_eRangeError, "Out of window");
1784
+ }
1785
+
1786
+ return Qnil;
1787
+ }
1788
+ #else
1789
+ #define window_touch_line rb_f_notimplement
1790
+ #endif
1791
+
1792
+ #ifdef HAVE_IS_LINETOUCHED
1793
+ /*
1794
+ * Document-method: Curses::Window.line_touched?
1795
+ * call-seq: line_touched?(line)
1796
+ *
1797
+ * Return true if the specified line has been modified since the last call of
1798
+ * refresh.
1799
+ */
1800
+ static VALUE
1801
+ window_line_touched(VALUE obj, VALUE line)
1802
+ {
1803
+ struct windata *winp;
1804
+ int result, n;
1805
+
1806
+ GetWINDOW(obj, winp);
1807
+ n = NUM2INT(line);
1808
+ result = is_linetouched(winp->window, n);
1809
+ if (result == ERR) {
1810
+ rb_raise(rb_eArgError, "Invalid line %d", n);
1811
+ }
1812
+ return result ? Qtrue : Qfalse;
1813
+ }
1814
+ #else
1815
+ #define window_line_touched rb_f_notimplement
1816
+ #endif
1817
+
1699
1818
  /*
1700
1819
  * Document-method: Curses::Window.move
1701
1820
  * call-seq: move(y,x)
@@ -1779,7 +1898,7 @@ window_maxy(VALUE obj)
1779
1898
  return INT2FIX(getmaxy(winp->window));
1780
1899
  #elif defined(getmaxyx)
1781
1900
  {
1782
- int x, y;
1901
+ int RB_UNUSED_VAR(x), y;
1783
1902
  getmaxyx(winp->window, y, x);
1784
1903
  return INT2FIX(y);
1785
1904
  }
@@ -1803,7 +1922,7 @@ window_maxx(VALUE obj)
1803
1922
  return INT2FIX(getmaxx(winp->window));
1804
1923
  #elif defined(getmaxyx)
1805
1924
  {
1806
- int x, y;
1925
+ int x, RB_UNUSED_VAR(y);
1807
1926
  getmaxyx(winp->window, y, x);
1808
1927
  return INT2FIX(x);
1809
1928
  }
@@ -2402,7 +2521,7 @@ window_bkgdset(VALUE obj, VALUE ch)
2402
2521
  struct windata *winp;
2403
2522
 
2404
2523
  GetWINDOW(obj,winp);
2405
- wbkgdset(winp->window, NUM2ULONG(ch));
2524
+ wbkgdset(winp->window, NUM2CHTYPE(ch));
2406
2525
  #endif
2407
2526
  return Qnil;
2408
2527
  }
@@ -2423,7 +2542,7 @@ window_bkgd(VALUE obj, VALUE ch)
2423
2542
  struct windata *winp;
2424
2543
 
2425
2544
  GetWINDOW(obj,winp);
2426
- return (wbkgd(winp->window, NUM2ULONG(ch)) == OK) ? Qtrue : Qfalse;
2545
+ return (wbkgd(winp->window, NUM2CHTYPE(ch)) == OK) ? Qtrue : Qfalse;
2427
2546
  #else
2428
2547
  return Qfalse;
2429
2548
  #endif
@@ -2601,9 +2720,6 @@ pad_initialize(VALUE obj, VALUE h, VALUE w)
2601
2720
  return obj;
2602
2721
  }
2603
2722
 
2604
- #if 1
2605
- #define pad_subpad window_subwin
2606
- #else
2607
2723
  /*
2608
2724
  * Document-method: Curses::Pad.subpad
2609
2725
  * call-seq:
@@ -2617,7 +2733,7 @@ static VALUE
2617
2733
  pad_subpad(VALUE obj, VALUE height, VALUE width, VALUE begin_x, VALUE begin_y)
2618
2734
  {
2619
2735
  struct windata *padp;
2620
- WINDOW *subpad;
2736
+ WINDOW *sub_pad;
2621
2737
  VALUE pad;
2622
2738
  int h, w, x, y;
2623
2739
 
@@ -2626,12 +2742,11 @@ pad_subpad(VALUE obj, VALUE height, VALUE width, VALUE begin_x, VALUE begin_y)
2626
2742
  x = NUM2INT(begin_x);
2627
2743
  y = NUM2INT(begin_y);
2628
2744
  GetWINDOW(obj, padp);
2629
- subpad = subwin(padp->window, h, w, x, y);
2630
- pad = prep_window(rb_obj_class(obj), subpad);
2745
+ sub_pad = subpad(padp->window, h, w, x, y);
2746
+ pad = prep_window(rb_obj_class(obj), sub_pad);
2631
2747
 
2632
2748
  return pad;
2633
2749
  }
2634
- #endif
2635
2750
 
2636
2751
  /*
2637
2752
  * Document-method: Curses::Pad.refresh
@@ -3150,6 +3265,11 @@ Init_curses(void)
3150
3265
  rb_define_method(cWindow, "refresh", window_refresh, 0);
3151
3266
  rb_define_method(cWindow, "noutrefresh", window_noutrefresh, 0);
3152
3267
  rb_define_method(cWindow, "redraw", window_redraw, 0);
3268
+ rb_define_method(cWindow, "touch", window_touch, 0);
3269
+ rb_define_method(cWindow, "untouch", window_untouch, 0);
3270
+ rb_define_method(cWindow, "touched?", window_touched, 0);
3271
+ rb_define_method(cWindow, "touch_line", window_touch_line, -1);
3272
+ rb_define_method(cWindow, "line_touched?", window_line_touched, 1);
3153
3273
  rb_define_method(cWindow, "box", window_box, -1);
3154
3274
  rb_define_method(cWindow, "move", window_move, 2);
3155
3275
  rb_define_method(cWindow, "setpos", window_setpos, 2);
@@ -60,15 +60,17 @@ if header_library
60
60
  scrl set setscrreg ungetch
61
61
  wattroff wattron wattrset wbkgd wbkgdset wdeleteln wgetnstr
62
62
  wresize wscrl wsetscrreg werase redrawwin
63
+ touchwin untouchwin wtouchln is_linetouched is_wintouched
63
64
  def_prog_mode reset_prog_mode timeout wtimeout nodelay
64
65
  init_color wcolor_set use_default_colors assume_default_colors
65
66
  newpad unget_wch get_wch wget_wch)
66
67
  have_func(f) || (have_macro(f, curses) && $defs.push(format("-DHAVE_%s", f.upcase)))
67
68
  end
69
+ convertible_int('chtype', [["#undef MOUSE_MOVED\n"]]+curses) or abort
68
70
  flag = "-D_XOPEN_SOURCE_EXTENDED"
69
- if try_static_assert("sizeof(char*)>sizeof(int)",
70
- %w[stdio.h stdlib.h]+curses,
71
- flag)
71
+ if checking_for("_XOPEN_SOURCE_EXTENDED") {
72
+ try_compile(cpp_include(%w[stdio.h stdlib.h]+curses), flag, :werror => true)
73
+ }
72
74
  $defs << flag
73
75
  end
74
76
  have_var("ESCDELAY", curses)
@@ -134,8 +136,9 @@ if header_library
134
136
  if enable_config("pdcurses-wide")
135
137
  $defs << '-DPDC_WIDE'
136
138
  end
137
-
139
+
138
140
  if RUBY_VERSION >= '2.1'
141
+ create_header
139
142
  create_makefile("curses")
140
143
  else
141
144
  # curses is part of ruby-core pre-2.1.0, so this gem is not required. But
data/lib/2.2/curses.so CHANGED
Binary file
data/lib/2.3/curses.so CHANGED
Binary file
data/lib/2.4/curses.so CHANGED
Binary file
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.2.0
4
+ version: 1.2.1
5
5
  platform: x64-mingw32
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: 2017-02-19 00:00:00.000000000 Z
12
+ date: 2017-03-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
109
  version: '0'
110
110
  requirements: []
111
111
  rubyforge_project:
112
- rubygems_version: 2.6.10
112
+ rubygems_version: 2.6.11
113
113
  signing_key:
114
114
  specification_version: 4
115
115
  summary: A Ruby binding for curses, ncurses, and PDCurses. curses is an extension