diff options
author | murphy <murphy@rubychan.de> | 2006-04-16 00:42:38 +0000 |
---|---|---|
committer | murphy <murphy@rubychan.de> | 2006-04-16 00:42:38 +0000 |
commit | a2834bb05c4ab5bd32437f333a26f8286438ade4 (patch) | |
tree | 9c984ba59c66e301de4de18b46e3f76c50ead402 /lib/coderay | |
parent | ee808b400543d924286eebaee8ed1ad8a4e28ced (diff) | |
download | coderay-a2834bb05c4ab5bd32437f333a26f8286438ade4.tar.gz |
All scanners revisited not to produce errors unless in DEBUG mode. [thx@Daniel]
Fixed numerization for input not ending with \n. Added test cases in C scanner tests.
Added WoNáDo as contributer for last Ruby scanner fix.
Updated TODO.
Diffstat (limited to 'lib/coderay')
-rw-r--r-- | lib/coderay/encoders/html/numerization.rb | 14 | ||||
-rw-r--r-- | lib/coderay/scanners/c.rb | 6 | ||||
-rw-r--r-- | lib/coderay/scanners/delphi.rb | 6 | ||||
-rw-r--r-- | lib/coderay/scanners/html.rb | 2 | ||||
-rw-r--r-- | lib/coderay/scanners/ruby.rb | 6 |
5 files changed, 26 insertions, 8 deletions
diff --git a/lib/coderay/encoders/html/numerization.rb b/lib/coderay/encoders/html/numerization.rb index 19c760e..1e1f952 100644 --- a/lib/coderay/encoders/html/numerization.rb +++ b/lib/coderay/encoders/html/numerization.rb @@ -48,9 +48,6 @@ module Encoders raise ArgumentError, 'Invalid value %p for :bolding; false or Integer expected.' % bold_every
end
- line_count = count("\n")
- line_count += 1 unless self[-1] == ?\n
-
case mode
when :inline
max_width = (start + line_count).to_s.size
@@ -106,6 +103,17 @@ module Encoders self
end
+ def line_count
+ line_count = count("\n")
+ position_of_last_newline = rindex(?\n)
+ if position_of_last_newline
+ after_last_newline = self[position_of_last_newline + 1 .. -1]
+ ends_with_newline = after_last_newline[/\A(?:<\/span>)*\z/]
+ line_count += 1 if not ends_with_newline
+ end
+ line_count
+ end
+
end
end
diff --git a/lib/coderay/scanners/c.rb b/lib/coderay/scanners/c.rb index ae7ef83..ae0af73 100644 --- a/lib/coderay/scanners/c.rb +++ b/lib/coderay/scanners/c.rb @@ -135,7 +135,11 @@ module CodeRay module Scanners end
match ||= matched
- raise_inspect [match, kind], tokens if kind == :error
+ if $DEBUG and (not kind or kind == :error)
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
tokens << [match, kind]
diff --git a/lib/coderay/scanners/delphi.rb b/lib/coderay/scanners/delphi.rb index 77c3839..d02c632 100644 --- a/lib/coderay/scanners/delphi.rb +++ b/lib/coderay/scanners/delphi.rb @@ -109,7 +109,11 @@ module CodeRay module Scanners end
match ||= matched
- raise [match, kind], tokens if kind == :error
+ if $DEBUG and (not kind or kind == :error)
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
+ end
+ raise_inspect 'Empty token', tokens unless match
tokens << [match, kind]
diff --git a/lib/coderay/scanners/html.rb b/lib/coderay/scanners/html.rb index a1efa9e..e8eea61 100644 --- a/lib/coderay/scanners/html.rb +++ b/lib/coderay/scanners/html.rb @@ -145,7 +145,7 @@ module CodeRay module Scanners match ||= matched
if $DEBUG and (not kind or kind == :error)
raise_inspect 'Error token %p in line %d' %
- [[match, kind], line], tokens
+ [[match, kind], line], tokens
end
raise_inspect 'Empty token', tokens unless match
diff --git a/lib/coderay/scanners/ruby.rb b/lib/coderay/scanners/ruby.rb index 8127944..1dbcb17 100644 --- a/lib/coderay/scanners/ruby.rb +++ b/lib/coderay/scanners/ruby.rb @@ -366,9 +366,11 @@ module CodeRay module Scanners fancy_allowed = fancy_allowed == :set
last_token_dot = last_token_dot == :set
- if $DEBUG
- raise_inspect 'error token %p in line %d' % [[match, type], line], tokens if not type or type == :error
+ if $DEBUG and (not kind or kind == :error)
+ raise_inspect 'Error token %p in line %d' %
+ [[match, kind], line], tokens
end
+ raise_inspect 'Empty token', tokens unless match
tokens << [match, type]
|