[#4479] Requesting addition to IRB (configurable standard output) — Sascha Ebach <se@...>

Hello,

13 messages 2005/02/24
[#4482] Re: Requesting addition to IRB (configurable standard output) — Sam Roberts <sroberts@...> 2005/02/25

Quoting se@digitale-wertschoepfung.de, on Fri, Feb 25, 2005 at 01:22:34AM +0900:

[#4483] Re: Requesting addition to IRB (configurable standard output) — Eric Hodel <drbrain@...7.net> 2005/02/25

On 24 Feb 2005, at 19:51, Sam Roberts wrote:

[#4488] Re: Requesting addition to IRB (configurable standard output) — Sam Roberts <sroberts@...> 2005/02/26

Quoting drbrain@segment7.net, on Sat, Feb 26, 2005 at 02:43:31AM +0900:

[#4489] Re: Requesting addition to IRB (configurable standard output) — Eric Hodel <drbrain@...7.net> 2005/02/26

On 25 Feb 2005, at 16:03, Sam Roberts wrote:

[ ruby-Patches-1486 ] have_enum_member for mkmf.rb

From: noreply@...
Date: 2005-02-11 16:50:47 UTC
List: ruby-core #4422
Patches item #1486, was opened at 2005-02-11 09:47
You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=1700&aid=1486&group_id=426

Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Daniel Berger (djberg96)
Assigned to: Nobody (None)
Summary: have_enum_member for mkmf.rb

Initial Comment:
Certain headers, such as signal.h, use enum values instead of preprocessor constants.  However, these values are not necessarily supported across platforms.  For example, the idtype_t enum in signal.h on Solaris 9 has a P_PROJID member that is only defined on Solaris 8 or later.

To allow programmers to check for the presence of certain enum members, I propose a "have_enum_member" method as follows:

--- mkmf.bak    Fri Feb 11 08:30:47 2005
+++ mkmf.rb     Fri Feb 11 09:33:47 2005
@@ -552,6 +552,23 @@
   end
 end
 
+def have_enum_member(type, member, header = nil, &b)
+  checking_for "#{type}.#{member}" do
+    if try_compile(<<"SRC", &b)
+#{COMMON_HEADERS}
+#{cpp_include(header)}
+/*top*/
+static #{type} t;
+int s = #{member};
+SRC
+      $defs.push(format("-DHAVE_ENUM_%s", member.upcase))
+      true
+    else
+      false
+    end
+  end
+end
+
 def have_type(type, header = nil, opt = "", &b)
   checking_for type do
     header = cpp_include(header)

This would then create a HAVE_ENUM_XXX preprocessor constant programmers could use within their extensions.

Regards,

Dan

----------------------------------------------------------------------

You can respond by visiting: 
http://rubyforge.org/tracker/?func=detail&atid=1700&aid=1486&group_id=426

In This Thread

Prev Next