Fix Ruby 2.2 compatibility.
This commit is contained in:
parent
c69e485703
commit
4fa3d5e3dc
|
@ -0,0 +1,57 @@
|
||||||
|
From 809e549408bfdf7cab4b98a73f6e78dd3ad81d86 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gaute Hope <eg@gaute.vetsj.com>
|
||||||
|
Date: Wed, 1 May 2013 15:10:26 +0200
|
||||||
|
Subject: [PATCH] ncurses_wrap.c: use new rb_thread_fd_select avoiding
|
||||||
|
deprecated functions
|
||||||
|
|
||||||
|
---
|
||||||
|
ncurses_wrap.c | 36 ++++++++++++++++++++++--------------
|
||||||
|
1 file changed, 22 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/ncurses_wrap.c b/ncurses_wrap.c
|
||||||
|
index 7793fcb..ba1e921 100755
|
||||||
|
--- a/ncurses_wrap.c
|
||||||
|
+++ b/ncurses_wrap.c
|
||||||
|
@@ -836,20 +836,28 @@ static int rbncurshelper_nonblocking_wgetch(WINDOW *c_win) {
|
||||||
|
c_win->_delay = 0;
|
||||||
|
#endif
|
||||||
|
while (doupdate() /* detects resize */, (result = wgetch(c_win)) == ERR) {
|
||||||
|
- gettimeofday(&tv, &tz);
|
||||||
|
- nowtime = tv.tv_sec + tv.tv_usec * 1e-6;
|
||||||
|
- delay = finishtime - nowtime;
|
||||||
|
- if (delay <= 0) break;
|
||||||
|
-
|
||||||
|
- /* Check for terminal size change every resize_delay seconds */
|
||||||
|
- if (resize_delay > delay) resize_delay = delay;
|
||||||
|
- tv.tv_sec = (time_t)resize_delay;
|
||||||
|
- tv.tv_usec = (unsigned)( (resize_delay - tv.tv_sec) * 1e6 );
|
||||||
|
-
|
||||||
|
- /* sleep on infd until input is available or tv reaches timeout */
|
||||||
|
- FD_ZERO(&in_fds);
|
||||||
|
- FD_SET(infd, &in_fds);
|
||||||
|
- rb_thread_select(infd + 1, &in_fds, NULL, NULL, &tv);
|
||||||
|
+ rb_fdset_t fdsets[3];
|
||||||
|
+ rb_fdset_t *rfds = NULL;
|
||||||
|
+ gettimeofday(&tv, &tz);
|
||||||
|
+ nowtime = tv.tv_sec + tv.tv_usec * 1e-6;
|
||||||
|
+ delay = finishtime - nowtime;
|
||||||
|
+ if (delay <= 0) break;
|
||||||
|
+
|
||||||
|
+ /* Check for terminal size change every resize_delay seconds */
|
||||||
|
+ if (resize_delay > delay) resize_delay = delay;
|
||||||
|
+ tv.tv_sec = (time_t)resize_delay;
|
||||||
|
+ tv.tv_usec = (unsigned)( (resize_delay - tv.tv_sec) * 1e6 );
|
||||||
|
+
|
||||||
|
+ /* sleep on infd until input is available or tv reaches timeout */
|
||||||
|
+ FD_ZERO(&in_fds);
|
||||||
|
+ FD_SET(infd, &in_fds);
|
||||||
|
+ //rb_thread_fd_select(infd + 1, &in_fds, NULL, NULL, &tv);
|
||||||
|
+
|
||||||
|
+ rfds = &fdsets[0];
|
||||||
|
+ rb_fd_init(rfds);
|
||||||
|
+ rb_fd_copy(rfds, &in_fds, infd +1);
|
||||||
|
+
|
||||||
|
+ rb_thread_fd_select(infd + 1, rfds, NULL, NULL, &tv);
|
||||||
|
}
|
||||||
|
#ifdef NCURSES_VERSION
|
||||||
|
c_win->_delay = windelay;
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
Name: %distname
|
Name: %distname
|
||||||
Version: 1.3.1
|
Version: 1.3.1
|
||||||
Release: 15%{?dist}
|
Release: 16%{?dist}
|
||||||
Summary: A module for ruby applications for using ncurses interfaces
|
Summary: A module for ruby applications for using ncurses interfaces
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
|
@ -14,6 +14,10 @@ Patch1: 0002-Werror-format-security.patch
|
||||||
# Fixes "ncurses_wrap.c:827:12: error: variable 'tz' has initializer but incomplete type"
|
# Fixes "ncurses_wrap.c:827:12: error: variable 'tz' has initializer but incomplete type"
|
||||||
# https://github.com/eclubb/ncurses-ruby/commit/0f7decd5e5a205444c9d31f19b0599a7e42b0fd8
|
# https://github.com/eclubb/ncurses-ruby/commit/0f7decd5e5a205444c9d31f19b0599a7e42b0fd8
|
||||||
Patch2: ruby-ncurses-fix-missing-tz-prototypes.patch
|
Patch2: ruby-ncurses-fix-missing-tz-prototypes.patch
|
||||||
|
# rb_thread_select was removed from Ruby 2.2.
|
||||||
|
# https://bugs.ruby-lang.org/issues/9502#change-45212
|
||||||
|
# https://github.com/sup-heliotrope/ncursesw-ruby/commit/809e549408bfdf7cab4b98a73f6e78dd3ad81d86
|
||||||
|
Patch3: ruby-ncurses-1.3.1-use-new-rb_thread_fd_select-avoiding-deprecated-functions.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
BuildRequires: ruby(release)
|
BuildRequires: ruby(release)
|
||||||
BuildRequires: ruby
|
BuildRequires: ruby
|
||||||
|
@ -32,6 +36,7 @@ of the C library ncurses accessible from the Ruby programming language.
|
||||||
%patch0 -p1 -b .p
|
%patch0 -p1 -b .p
|
||||||
%patch1 -p1 -b .format
|
%patch1 -p1 -b .format
|
||||||
%patch2 -p1 -b .systime
|
%patch2 -p1 -b .systime
|
||||||
|
%patch3 -p1 -b .ruby22
|
||||||
%{__chmod} 0644 ncurses_wrap.c
|
%{__chmod} 0644 ncurses_wrap.c
|
||||||
find examples/ -type f | xargs %{__chmod} 0644
|
find examples/ -type f | xargs %{__chmod} 0644
|
||||||
|
|
||||||
|
@ -57,6 +62,9 @@ ruby extconf.rb --vendor
|
||||||
%{ruby_vendorlibdir}/ncurses_sugar.rb
|
%{ruby_vendorlibdir}/ncurses_sugar.rb
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Sep 02 2015 Vít Ondruch <vondruch@redhat.com> - 1.3.1-16
|
||||||
|
- Fix Ruby 2.2 compatibility.
|
||||||
|
|
||||||
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.1-15
|
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.1-15
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue