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

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

From: Florian Gro<florgro@...>
Date: 2005-01-16 10:53:07 UTC
List: ruby-core #4252
nobu.nokada@softhome.net wrote:

> Moin,

Moin.

>>3) Line is longer than 399 characters and contains at least one ASCII 
>>control character (code < 32 and not carriage return or newline).
> 
> What's about TAB?

Good point. The Regexp now matches control characters as code < 32 and 
not carriage return, newline, tab, vertical tab or form feed.

I think technically there could also occur end of transmission and 
substitute markers in Ruby source code. (Both seem to be treated as end 
of file markers by Ruby.)

Attachments (1)

tracer-binary.patch (1.03 KB, text/x-diff)
--- tracer.rb.original	2005-01-15 11:44:28.000000000 +0100
+++ tracer.rb	2005-01-16 10:58:28.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-\x08\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