[#4076] Ruby/DL — Jamis Buck <jamis_buck@...>

I recently used Ruby/DL to create bindings to the SQLite3 embedded

40 messages 2005/01/03
[#4096] Re: Ruby/DL — Paul Brannan <pbrannan@...> 2005/01/04

On Tue, Jan 04, 2005 at 02:53:49AM +0900, Jamis Buck wrote:

[#4099] Re: Ruby/DL — ts <decoux@...> 2005/01/04

>>>>> "P" == Paul Brannan <pbrannan@atdesk.com> writes:

[#4119] Re: Ruby/DL — Paul Brannan <pbrannan@...> 2005/01/05

On Wed, Jan 05, 2005 at 03:05:48AM +0900, ts wrote:

[#4120] Re: Ruby/DL — ts <decoux@...> 2005/01/05

>>>>> "P" == Paul Brannan <pbrannan@atdesk.com> writes:

[#4125] Re: Ruby/DL — Paul Brannan <pbrannan@...> 2005/01/05

On Thu, Jan 06, 2005 at 01:10:34AM +0900, ts wrote:

[#4116] Test::Unit::Collector::Dir won't work with code that modifies $LOAD_PATH — Eric Hodel <drbrain@...7.net>

Any test code that depends upon modifications of $: fails when used

10 messages 2005/01/05

[#4146] The face of Unicode support in the future — Charles O Nutter <headius@...>

Hello Rubyists!

47 messages 2005/01/06
[#4152] Re: The face of Unicode support in the future — Yukihiro Matsumoto <matz@...> 2005/01/07

Hi,

[#4167] Re: The face of Unicode support in the future — Christian Neukirchen <chneukirchen@...> 2005/01/09

Yukihiro Matsumoto <matz@ruby-lang.org> writes:

[#4175] Re: The face of Unicode support in the future — Yukihiro Matsumoto <matz@...> 2005/01/10

Hi,

[#4186] Re: The face of Unicode support in the future — Paul Brannan <pbrannan@...> 2005/01/11

On Mon, Jan 10, 2005 at 11:53:48PM +0900, Yukihiro Matsumoto wrote:

[#4192] Re: The face of Unicode support in the future — Yukihiro Matsumoto <matz@...> 2005/01/12

Hi,

[#4269] Re: The face of Unicode support in the future — Wes Nakamura <wknaka@...>

19 messages 2005/01/18
[#4270] Re: The face of Unicode support in the future — Yukihiro Matsumoto <matz@...> 2005/01/18

Hi,

[#4275] Re: The face of Unicode support in the future — Wes Nakamura <wknaka@...> 2005/01/19

[#4323] test/unit doesn't rescue a Exception — Tanaka Akira <akr@...17n.org>

test/unit doesn't rescue a Exception in a test method, as follows.

14 messages 2005/01/27
[#8773] Re: test/unit doesn't rescue a Exception — Tanaka Akira <akr@...> 2006/09/02

In article <87is5jb46q.fsf@serein.a02.aist.go.jp>,

[#8776] Re: test/unit doesn't rescue a Exception — "Nathaniel Talbott" <ntalbott@...> 2006/09/03

On 9/1/06, Tanaka Akira <akr@fsij.org> wrote:

[#8777] Re: test/unit doesn't rescue a Exception — Eric Hodel <drbrain@...7.net> 2006/09/03

On Sep 2, 2006, at 6:34 PM, Nathaniel Talbott wrote:

[PATCH] tracer.rb: Do not list pseudo source lines of binary extensions

From: Florian Gro<florgro@...>
Date: 2005-01-15 10:54:22 UTC
List: ruby-core #4242
Moin.

Currently tracer.rb tries to extract the source code of binary 
extensions (e.g. socket.so) and will display it to STDIN. That does not 
make much sense IMHO.

The following patch uses these mechanisms for detecting whether a line 
from a file is binary code and should be ignored:

1) File ext is .so, .o, .dll, .lib or .bundle (case insensitive) or
2) File ext is a DLEXTs defined in rbconfig (case insensitive) or
3) Line is longer than 399 characters and contains at least one ASCII 
control character (code < 32 and not carriage return or newline).

Regards,
Florian Gross

Attachments (1)

tracer-binary.patch (1.04 KB, text/x-diff)
--- tracer.rb.original	2005-01-15 11:44:28.000000000 +0100
+++ tracer.rb	2005-01-15 11:49:18.000000000 +0100
@@ -79,13 +79,26 @@
   def set_get_line_procs(file, p = proc)
     @get_line_procs[file] = p
   end
+
+  def binary_suffix?(filename)
+    exts = %w(.so .o .dll .lib .bundle)
+    require 'rbconfig'
+    Config::CONFIG.keys.grep(/^DLEXT\d+$/).each do |key|
+      exts << "." + Config::CONFIG[key].downcase
+    end
+  ensure
+    return exts.include?(File.extname(filename).downcase)
+  end
+  private :binary_suffix?
   
   def get_line(file, line)
     if p = @get_line_procs[file]
       return p.call(line)
     end
 
-    unless list = SCRIPT_LINES__[file]
+    binary_re = /[\x00-\x09\x0B\x0C\x0E-\x1F]/
+
+    if not list = SCRIPT_LINES__[file] and not binary_suffix?(file)
       begin
 	f = open(file)
 	begin 
@@ -97,7 +110,9 @@
 	SCRIPT_LINES__[file] = list = []
       end
     end
-    if l = list[line - 1]
+    if list and l = list[line - 1] and
+      (l.size < 400 or not binary_re.match(l))
+    then
       l
     else
       "-\n"

In This Thread

Prev Next