rdoc 6.4.0 → 6.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.rdoc +1 -2
  3. data/LEGAL.rdoc +1 -1
  4. data/README.rdoc +2 -2
  5. data/TODO.rdoc +1 -1
  6. data/exe/rdoc +0 -1
  7. data/lib/rdoc/alias.rb +0 -1
  8. data/lib/rdoc/anon_class.rb +0 -1
  9. data/lib/rdoc/any_method.rb +17 -2
  10. data/lib/rdoc/attr.rb +0 -1
  11. data/lib/rdoc/class_module.rb +0 -1
  12. data/lib/rdoc/code_objects.rb +1 -2
  13. data/lib/rdoc/comment.rb +20 -41
  14. data/lib/rdoc/constant.rb +0 -1
  15. data/lib/rdoc/context/section.rb +2 -1
  16. data/lib/rdoc/context.rb +1 -3
  17. data/lib/rdoc/cross_reference.rb +17 -2
  18. data/lib/rdoc/encoding.rb +1 -6
  19. data/lib/rdoc/erb_partial.rb +0 -1
  20. data/lib/rdoc/erbio.rb +2 -7
  21. data/lib/rdoc/extend.rb +0 -1
  22. data/lib/rdoc/generator/darkfish.rb +2 -6
  23. data/lib/rdoc/generator/json_index.rb +2 -2
  24. data/lib/rdoc/generator/markup.rb +1 -2
  25. data/lib/rdoc/generator/ri.rb +0 -1
  26. data/lib/rdoc/generator/template/darkfish/_head.rhtml +10 -10
  27. data/lib/rdoc/generator/template/darkfish/_sidebar_classes.rhtml +27 -3
  28. data/lib/rdoc/generator/template/darkfish/_sidebar_pages.rhtml +22 -2
  29. data/lib/rdoc/generator/template/darkfish/_sidebar_search.rhtml +1 -1
  30. data/lib/rdoc/generator/template/darkfish/_sidebar_table_of_contents.rhtml +25 -4
  31. data/lib/rdoc/generator/template/darkfish/class.rhtml +28 -20
  32. data/lib/rdoc/generator/template/darkfish/css/rdoc.css +44 -7
  33. data/lib/rdoc/generator/template/darkfish/index.rhtml +1 -1
  34. data/lib/rdoc/generator/template/darkfish/js/darkfish.js +14 -1
  35. data/lib/rdoc/generator/template/darkfish/js/search.js +4 -4
  36. data/lib/rdoc/generator/template/darkfish/table_of_contents.rhtml +7 -6
  37. data/lib/rdoc/generator/template/json_index/js/navigation.js +8 -8
  38. data/lib/rdoc/generator.rb +5 -5
  39. data/lib/rdoc/ghost_method.rb +0 -1
  40. data/lib/rdoc/i18n.rb +1 -1
  41. data/lib/rdoc/include.rb +0 -1
  42. data/lib/rdoc/known_classes.rb +5 -4
  43. data/lib/rdoc/markdown/entities.rb +0 -1
  44. data/lib/rdoc/markdown/literals.rb +98 -40
  45. data/lib/rdoc/markdown.kpeg +26 -19
  46. data/lib/rdoc/markdown.rb +326 -227
  47. data/lib/rdoc/markup/attr_changer.rb +0 -1
  48. data/lib/rdoc/markup/attr_span.rb +0 -1
  49. data/lib/rdoc/markup/attribute_manager.rb +29 -36
  50. data/lib/rdoc/markup/attributes.rb +0 -1
  51. data/lib/rdoc/markup/blank_line.rb +0 -1
  52. data/lib/rdoc/markup/block_quote.rb +0 -1
  53. data/lib/rdoc/markup/document.rb +0 -1
  54. data/lib/rdoc/markup/formatter.rb +0 -1
  55. data/lib/rdoc/markup/hard_break.rb +0 -1
  56. data/lib/rdoc/markup/heading.rb +0 -1
  57. data/lib/rdoc/markup/include.rb +0 -1
  58. data/lib/rdoc/markup/indented_paragraph.rb +0 -1
  59. data/lib/rdoc/markup/list.rb +0 -1
  60. data/lib/rdoc/markup/list_item.rb +0 -1
  61. data/lib/rdoc/markup/paragraph.rb +0 -1
  62. data/lib/rdoc/markup/parser.rb +12 -6
  63. data/lib/rdoc/markup/raw.rb +0 -1
  64. data/lib/rdoc/markup/regexp_handling.rb +0 -1
  65. data/lib/rdoc/markup/rule.rb +0 -1
  66. data/lib/rdoc/markup/to_ansi.rb +0 -1
  67. data/lib/rdoc/markup/to_html.rb +21 -16
  68. data/lib/rdoc/markup/to_html_crossref.rb +0 -1
  69. data/lib/rdoc/markup/to_html_snippet.rb +0 -1
  70. data/lib/rdoc/markup/to_joined_paragraph.rb +2 -3
  71. data/lib/rdoc/markup/to_label.rb +1 -2
  72. data/lib/rdoc/markup/to_markdown.rb +0 -1
  73. data/lib/rdoc/markup/to_rdoc.rb +3 -21
  74. data/lib/rdoc/markup/to_table_of_contents.rb +0 -1
  75. data/lib/rdoc/markup/to_test.rb +0 -1
  76. data/lib/rdoc/markup/to_tt_only.rb +0 -1
  77. data/lib/rdoc/markup/verbatim.rb +0 -1
  78. data/lib/rdoc/markup.rb +35 -667
  79. data/lib/rdoc/meta_method.rb +0 -1
  80. data/lib/rdoc/method_attr.rb +1 -2
  81. data/lib/rdoc/mixin.rb +0 -1
  82. data/lib/rdoc/normal_class.rb +1 -2
  83. data/lib/rdoc/normal_module.rb +1 -2
  84. data/lib/rdoc/options.rb +36 -20
  85. data/lib/rdoc/parser/c.rb +89 -101
  86. data/lib/rdoc/parser/changelog.rb +0 -1
  87. data/lib/rdoc/parser/markdown.rb +0 -2
  88. data/lib/rdoc/parser/rd.rb +0 -1
  89. data/lib/rdoc/parser/ripper_state_lex.rb +1 -1
  90. data/lib/rdoc/parser/ruby.rb +29 -14
  91. data/lib/rdoc/parser/ruby_tools.rb +0 -2
  92. data/lib/rdoc/parser/text.rb +0 -1
  93. data/lib/rdoc/parser.rb +19 -2
  94. data/lib/rdoc/rd/block_parser.rb +666 -12
  95. data/lib/rdoc/rd/block_parser.ry +13 -9
  96. data/lib/rdoc/rd/inline.rb +0 -1
  97. data/lib/rdoc/rd/inline_parser.rb +3 -1
  98. data/lib/rdoc/rd.rb +3 -4
  99. data/lib/rdoc/rdoc.rb +19 -7
  100. data/lib/rdoc/require.rb +0 -1
  101. data/lib/rdoc/ri/driver.rb +20 -86
  102. data/lib/rdoc/ri/store.rb +0 -1
  103. data/lib/rdoc/ri.rb +4 -5
  104. data/lib/rdoc/rubygems_hook.rb +1 -1
  105. data/lib/rdoc/servlet.rb +1 -1
  106. data/lib/rdoc/single_class.rb +5 -1
  107. data/lib/rdoc/stats/quiet.rb +0 -1
  108. data/lib/rdoc/stats/verbose.rb +0 -2
  109. data/lib/rdoc/stats.rb +3 -4
  110. data/lib/rdoc/store.rb +4 -4
  111. data/lib/rdoc/task.rb +31 -5
  112. data/lib/rdoc/token_stream.rb +0 -1
  113. data/lib/rdoc/top_level.rb +0 -1
  114. data/lib/rdoc/version.rb +3 -1
  115. data/lib/rdoc.rb +46 -46
  116. metadata +9 -11
  117. data/Gemfile +0 -12
  118. data/Rakefile +0 -107
  119. data/bin/console +0 -7
  120. data/bin/setup +0 -6
  121. data/rdoc.gemspec +0 -249
@@ -20,4 +20,3 @@ class RDoc::Markup::AttrChanger
20
20
  end
21
21
 
22
22
  end
23
-
@@ -33,4 +33,3 @@ class RDoc::Markup::AttrSpan
33
33
  end
34
34
 
35
35
  end
36
-
@@ -1,8 +1,19 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  ##
3
4
  # Manages changes of attributes in a block of text
4
5
 
5
6
  class RDoc::Markup::AttributeManager
7
+ unless ::MatchData.method_defined?(:match_length)
8
+ using ::Module.new {
9
+ refine(::MatchData) {
10
+ def match_length(nth) # :nodoc:
11
+ b, e = offset(nth)
12
+ e - b if b
13
+ end
14
+ }
15
+ }
16
+ end
6
17
 
7
18
  ##
8
19
  # The NUL character
@@ -147,27 +158,23 @@ class RDoc::Markup::AttributeManager
147
158
  def convert_attrs_matching_word_pairs(str, attrs, exclusive)
148
159
  # first do matching ones
149
160
  tags = @matching_word_pairs.select { |start, bitmap|
150
- if exclusive && exclusive?(bitmap)
151
- true
152
- elsif !exclusive && !exclusive?(bitmap)
153
- true
154
- else
155
- false
156
- end
161
+ exclusive == exclusive?(bitmap)
157
162
  }.keys
158
163
  return if tags.empty?
159
- all_tags = @matching_word_pairs.keys
164
+ tags = "[#{tags.join("")}](?!#{PROTECT_ATTR})"
165
+ all_tags = "[#{@matching_word_pairs.keys.join("")}](?!#{PROTECT_ATTR})"
160
166
 
161
- re = /(^|\W|[#{all_tags.join("")}])([#{tags.join("")}])(\2*[#\\]?[\w:.\/\[\]-]+?\S?)\2(?!\2)([#{all_tags.join("")}]|\W|$)/
167
+ re = /(?:^|\W|#{all_tags})\K(#{tags})(\1*[#\\]?[\w:#{PROTECT_ATTR}.\/\[\]-]+?\S?)\1(?!\1)(?=#{all_tags}|\W|$)/
162
168
 
163
169
  1 while str.gsub!(re) { |orig|
164
- attr = @matching_word_pairs[$2]
165
- attr_updated = attrs.set_attrs($`.length + $1.length + $2.length, $3.length, attr)
166
- if attr_updated
167
- $1 + NULL * $2.length + $3 + NULL * $2.length + $4
170
+ a, w = (m = $~).values_at(1, 2)
171
+ attr = @matching_word_pairs[a]
172
+ if attrs.set_attrs(m.begin(2), w.length, attr)
173
+ a = NULL * a.length
168
174
  else
169
- $1 + NON_PRINTING_START + $2 + NON_PRINTING_END + $3 + NON_PRINTING_START + $2 + NON_PRINTING_END + $4
175
+ a = NON_PRINTING_START + a + NON_PRINTING_END
170
176
  end
177
+ a + w + a
171
178
  }
172
179
  str.delete!(NON_PRINTING_START + NON_PRINTING_END)
173
180
  end
@@ -176,15 +183,12 @@ class RDoc::Markup::AttributeManager
176
183
  # then non-matching
177
184
  unless @word_pair_map.empty? then
178
185
  @word_pair_map.each do |regexp, attr|
179
- if !exclusive
180
- next if exclusive?(attr)
181
- else
182
- next if !exclusive?(attr)
183
- end
186
+ next unless exclusive == exclusive?(attr)
184
187
  1 while str.gsub!(regexp) { |orig|
185
- updated = attrs.set_attrs($`.length + $1.length, $2.length, attr)
188
+ w = (m = ($~))[2]
189
+ updated = attrs.set_attrs(m.begin(2), w.length, attr)
186
190
  if updated
187
- NULL * $1.length + $2 + NULL * $3.length
191
+ NULL * m.match_length(1) + w + NULL * m.match_length(3)
188
192
  else
189
193
  orig
190
194
  end
@@ -198,20 +202,14 @@ class RDoc::Markup::AttributeManager
198
202
 
199
203
  def convert_html(str, attrs, exclusive = false)
200
204
  tags = @html_tags.select { |start, bitmap|
201
- if exclusive && exclusive?(bitmap)
202
- true
203
- elsif !exclusive && !exclusive?(bitmap)
204
- true
205
- else
206
- false
207
- end
205
+ exclusive == exclusive?(bitmap)
208
206
  }.keys.join '|'
209
207
 
210
208
  1 while str.gsub!(/<(#{tags})>(.*?)<\/\1>/i) { |orig|
211
209
  attr = @html_tags[$1.downcase]
212
- html_length = $1.length + 2
210
+ html_length = $~.match_length(1) + 2 # "<>".length
213
211
  seq = NULL * html_length
214
- attrs.set_attrs($`.length + html_length, $2.length, attr)
212
+ attrs.set_attrs($~.begin(2), $~.match_length(2), attr)
215
213
  seq + $2 + seq + NULL
216
214
  }
217
215
  end
@@ -221,11 +219,7 @@ class RDoc::Markup::AttributeManager
221
219
 
222
220
  def convert_regexp_handlings str, attrs, exclusive = false
223
221
  @regexp_handlings.each do |regexp, attribute|
224
- if exclusive
225
- next if !exclusive?(attribute)
226
- else
227
- next if exclusive?(attribute)
228
- end
222
+ next unless exclusive == exclusive?(attribute)
229
223
  str.scan(regexp) do
230
224
  capture = $~.size == 1 ? 0 : 1
231
225
 
@@ -406,4 +400,3 @@ class RDoc::Markup::AttributeManager
406
400
  end
407
401
 
408
402
  end
409
-
@@ -68,4 +68,3 @@ class RDoc::Markup::Attributes
68
68
  end
69
69
 
70
70
  end
71
-
@@ -25,4 +25,3 @@ class RDoc::Markup::BlankLine
25
25
  end
26
26
 
27
27
  end
28
-
@@ -12,4 +12,3 @@ class RDoc::Markup::BlockQuote < RDoc::Markup::Raw
12
12
  end
13
13
 
14
14
  end
15
-
@@ -162,4 +162,3 @@ class RDoc::Markup::Document
162
162
  end
163
163
 
164
164
  end
165
-
@@ -263,4 +263,3 @@ class RDoc::Markup::Formatter
263
263
  end
264
264
 
265
265
  end
266
-
@@ -29,4 +29,3 @@ class RDoc::Markup::HardBreak
29
29
  end
30
30
 
31
31
  end
32
-
@@ -76,4 +76,3 @@ RDoc::Markup::Heading =
76
76
  end
77
77
 
78
78
  end
79
-
@@ -40,4 +40,3 @@ class RDoc::Markup::Include
40
40
  end
41
41
 
42
42
  end
43
-
@@ -45,4 +45,3 @@ class RDoc::Markup::IndentedParagraph < RDoc::Markup::Raw
45
45
  end
46
46
 
47
47
  end
48
-
@@ -99,4 +99,3 @@ class RDoc::Markup::List
99
99
  end
100
100
 
101
101
  end
102
-
@@ -97,4 +97,3 @@ class RDoc::Markup::ListItem
97
97
  end
98
98
 
99
99
  end
100
-
@@ -26,4 +26,3 @@ class RDoc::Markup::Paragraph < RDoc::Markup::Raw
26
26
  end
27
27
 
28
28
  end
29
-
@@ -287,6 +287,12 @@ class RDoc::Markup::Parser
287
287
  line << ' ' * indent
288
288
  when :BREAK, :TEXT then
289
289
  line << data
290
+ when :BLOCKQUOTE then
291
+ line << '>>>'
292
+ peek_type, _, peek_column = peek_token
293
+ if peek_type != :NEWLINE and peek_column
294
+ line << ' ' * (peek_column - column - 3)
295
+ end
290
296
  else # *LIST_TOKENS
291
297
  list_marker = case type
292
298
  when :BULLET then data
@@ -372,11 +378,8 @@ class RDoc::Markup::Parser
372
378
  unget
373
379
  parse_text parent, indent
374
380
  when :BLOCKQUOTE then
375
- type, _, column = get
376
- if type == :NEWLINE
377
- type, _, column = get
378
- end
379
- unget if type
381
+ nil while (type, = get; type) and type != :NEWLINE
382
+ _, _, column, = peek_token
380
383
  bq = RDoc::Markup::BlockQuote.new
381
384
  p :blockquote_start => [data, column] if @debug
382
385
  parse bq, column
@@ -544,7 +547,10 @@ class RDoc::Markup::Parser
544
547
  [:NOTE, @s[1], *pos]
545
548
  # >>> followed by end of line => :BLOCKQUOTE
546
549
  when @s.scan(/>>> *(\w+)?$/) then
547
- [:BLOCKQUOTE, @s[1], *pos]
550
+ if word = @s[1]
551
+ @s.unscan(word)
552
+ end
553
+ [:BLOCKQUOTE, word, *pos]
548
554
  # anything else: :TEXT
549
555
  else
550
556
  @s.scan(/(.*?)( )?\r?$/)
@@ -67,4 +67,3 @@ class RDoc::Markup::Raw
67
67
  end
68
68
 
69
69
  end
70
-
@@ -38,4 +38,3 @@ class RDoc::Markup::RegexpHandling
38
38
  end
39
39
 
40
40
  end
41
-
@@ -18,4 +18,3 @@ class RDoc::Markup::Rule < Struct.new :weight
18
18
  end
19
19
 
20
20
  end
21
-
@@ -91,4 +91,3 @@ class RDoc::Markup::ToAnsi < RDoc::Markup::ToRdoc
91
91
  end
92
92
 
93
93
  end
94
-
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
- require 'cgi'
2
+ require 'cgi/util'
3
3
 
4
4
  ##
5
5
  # Outputs RDoc markup as HTML.
@@ -61,12 +61,14 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
61
61
  #
62
62
  # These methods are used by regexp handling markup added by RDoc::Markup#add_regexp_handling.
63
63
 
64
+ URL_CHARACTERS_REGEXP_STR = /[A-Za-z0-9\-._~:\/\?#\[\]@!$&'\(\)*+,;%=]/.source
65
+
64
66
  ##
65
67
  # Adds regexp handlings.
66
68
 
67
69
  def init_regexp_handlings
68
70
  # external links
69
- @markup.add_regexp_handling(/(?:link:|https?:|mailto:|ftp:|irc:|www\.)\S+\w/,
71
+ @markup.add_regexp_handling(/(?:link:|https?:|mailto:|ftp:|irc:|www\.)#{URL_CHARACTERS_REGEXP_STR}+\w/,
70
72
  :HYPERLINK)
71
73
  init_link_notation_regexp_handlings
72
74
  end
@@ -82,7 +84,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
82
84
  def handle_RDOCLINK url # :nodoc:
83
85
  case url
84
86
  when /^rdoc-ref:/
85
- $'
87
+ CGI.escapeHTML($')
86
88
  when /^rdoc-label:/
87
89
  text = $'
88
90
 
@@ -93,13 +95,11 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
93
95
  else text
94
96
  end
95
97
 
96
- gen_url url, text
98
+ gen_url CGI.escapeHTML(url), CGI.escapeHTML(text)
97
99
  when /^rdoc-image:/
98
- "<img src=\"#{$'}\">"
99
- else
100
- url =~ /\Ardoc-[a-z]+:/
101
-
102
- $'
100
+ %[<img src=\"#{CGI.escapeHTML($')}\">]
101
+ when /\Ardoc-[a-z]+:/
102
+ CGI.escapeHTML($')
103
103
  end
104
104
  end
105
105
 
@@ -123,7 +123,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
123
123
  # Reference to a local file relative to the output directory.
124
124
 
125
125
  def handle_regexp_HYPERLINK(target)
126
- url = target.text
126
+ url = CGI.escapeHTML(target.text)
127
127
 
128
128
  gen_url url, url
129
129
  end
@@ -152,9 +152,13 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
152
152
  text =~ /^\{(.*)\}\[(.*?)\]$/ or text =~ /^(\S+)\[(.*?)\]$/
153
153
 
154
154
  label = $1
155
- url = $2
155
+ url = CGI.escapeHTML($2)
156
156
 
157
- label = handle_RDOCLINK label if /^rdoc-image:/ =~ label
157
+ if /^rdoc-image:/ =~ label
158
+ label = handle_RDOCLINK(label)
159
+ else
160
+ label = CGI.escapeHTML(label)
161
+ end
158
162
 
159
163
  gen_url url, label
160
164
  end
@@ -322,7 +326,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
322
326
  header.zip(aligns) do |text, align|
323
327
  @res << '<th'
324
328
  @res << ' align="' << align << '"' if align
325
- @res << '>' << CGI.escapeHTML(text) << "</th>\n"
329
+ @res << '>' << to_html(text) << "</th>\n"
326
330
  end
327
331
  @res << "</tr>\n</thead>\n<tbody>\n"
328
332
  body.each do |row|
@@ -330,7 +334,7 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
330
334
  row.zip(aligns) do |text, align|
331
335
  @res << '<td'
332
336
  @res << ' align="' << align << '"' if align
333
- @res << '>' << CGI.escapeHTML(text) << "</td>\n"
337
+ @res << '>' << to_html(text) << "</td>\n"
334
338
  end
335
339
  @res << "</tr>\n"
336
340
  end
@@ -426,7 +430,9 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
426
430
 
427
431
  def parseable? text
428
432
  verbose, $VERBOSE = $VERBOSE, nil
429
- eval("BEGIN {return true}\n#{text}")
433
+ catch(:valid) do
434
+ eval("BEGIN { throw :valid, true }\n#{text}")
435
+ end
430
436
  rescue SyntaxError
431
437
  false
432
438
  ensure
@@ -441,4 +447,3 @@ class RDoc::Markup::ToHtml < RDoc::Markup::Formatter
441
447
  end
442
448
 
443
449
  end
444
-
@@ -173,4 +173,3 @@ class RDoc::Markup::ToHtmlCrossref < RDoc::Markup::ToHtml
173
173
  end
174
174
 
175
175
  end
176
-
@@ -282,4 +282,3 @@ class RDoc::Markup::ToHtmlSnippet < RDoc::Markup::ToHtml
282
282
  end
283
283
 
284
284
  end
285
-
@@ -25,9 +25,9 @@ class RDoc::Markup::ToJoinedParagraph < RDoc::Markup::Formatter
25
25
  def accept_paragraph paragraph
26
26
  parts = paragraph.parts.chunk do |part|
27
27
  String === part
28
- end.map do |string, chunk|
28
+ end.flat_map do |string, chunk|
29
29
  string ? chunk.join.rstrip : chunk
30
- end.flatten
30
+ end
31
31
 
32
32
  paragraph.parts.replace parts
33
33
  end
@@ -44,4 +44,3 @@ class RDoc::Markup::ToJoinedParagraph < RDoc::Markup::Formatter
44
44
  alias accept_table ignore
45
45
 
46
46
  end
47
-
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
- require 'cgi'
2
+ require 'cgi/util'
3
3
 
4
4
  ##
5
5
  # Creates HTML-safe labels suitable for use in id attributes. Tidylinks are
@@ -72,4 +72,3 @@ class RDoc::Markup::ToLabel < RDoc::Markup::Formatter
72
72
  alias start_accepting ignore
73
73
 
74
74
  end
75
-
@@ -189,4 +189,3 @@ class RDoc::Markup::ToMarkdown < RDoc::Markup::ToRdoc
189
189
  end
190
190
 
191
191
  end
192
-
@@ -330,33 +330,15 @@ class RDoc::Markup::ToRdoc < RDoc::Markup::Formatter
330
330
 
331
331
  text_len = 20 if text_len < 20
332
332
 
333
- re = /^(.{0,#{text_len}})[ \n]/
334
333
  next_prefix = ' ' * @indent
335
334
 
336
335
  prefix = @prefix || next_prefix
337
336
  @prefix = nil
338
337
 
339
- @res << prefix
340
-
341
- while text.length > text_len
342
- if text =~ re then
343
- @res << $1
344
- text.slice!(0, $&.length)
345
- else
346
- @res << text.slice!(0, text_len)
347
- end
348
-
349
- @res << "\n" << next_prefix
350
- end
351
-
352
- if text.empty? then
353
- @res.pop
354
- @res.pop
355
- else
356
- @res << text
357
- @res << "\n"
338
+ text.scan(/\G(?:([^ \n]{#{text_len}})(?=[^ \n])|(.{1,#{text_len}})(?:[ \n]|\z))/) do
339
+ @res << prefix << ($1 || $2) << "\n"
340
+ prefix = next_prefix
358
341
  end
359
342
  end
360
343
 
361
344
  end
362
-
@@ -86,4 +86,3 @@ class RDoc::Markup::ToTableOfContents < RDoc::Markup::Formatter
86
86
  # :startdoc:
87
87
 
88
88
  end
89
-
@@ -67,4 +67,3 @@ class RDoc::Markup::ToTest < RDoc::Markup::Formatter
67
67
  # :startdoc:
68
68
 
69
69
  end
70
-
@@ -118,4 +118,3 @@ class RDoc::Markup::ToTtOnly < RDoc::Markup::Formatter
118
118
  end
119
119
 
120
120
  end
121
-
@@ -81,4 +81,3 @@ class RDoc::Markup::Verbatim < RDoc::Markup::Raw
81
81
  end
82
82
 
83
83
  end
84
-