[#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:

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

From: nobu.nokada@...
Date: 2005-02-11 23:18:07 UTC
List: ruby-core #4426
Hi,

At Sat, 12 Feb 2005 01:50:47 +0900,
noreply@rubyforge.org wrote in [ruby-core:04422]:
> 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:

It doesn't check enum membership -- rather, it's impossible
unless parsing header files.

  have_enum_member('int', 'NULL', 'stdio.h') => yes

Note that enum members are just const int in C, and actually it
doesn't matter if it is a macro or an enum.  So I think
have_const is good enough.  And you already can use have_type
to check if a type is defined.


Index: lib/mkmf.rb
===================================================================
RCS file: /cvs/ruby/src/ruby/lib/mkmf.rb,v
retrieving revision 1.162.2.22
diff -U2 -p -r1.162.2.22 mkmf.rb
--- lib/mkmf.rb	6 Feb 2005 17:03:35 -0000	1.162.2.22
+++ lib/mkmf.rb	11 Feb 2005 23:15:50 -0000
@@ -615,4 +615,21 @@ SRC
 end
 
+def have_const(const, header = nil, opt = "", &b)
+  checking_for type do
+    header = cpp_include(header)
+    if try_compile(<<"SRC", opt, &b)
+#{COMMON_HEADERS}
+#{header}
+/*top*/
+static int t = #{const};
+SRC
+      $defs.push(format("-DHAVE_CONST_%s", type.strip.upcase.tr_s("^A-Z0-9_", "_")))
+      true
+    else
+      false
+    end
+  end
+end
+
 def check_sizeof(type, header = nil, &b)
   expr = "sizeof(#{type})"


-- 
Nobu Nakada

In This Thread