1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/lib/rdoc/markup/attr_span.rb
aycabta 61e1cf23ac [ruby/rdoc] Treat emphasis tags as excluding other notations
And exclusive notations don't exclude other exclusive notations.

https://github.com/ruby/rdoc/commit/b8baa9a435
2021-04-03 01:21:50 +09:00

36 lines
672 B
Ruby

# frozen_string_literal: true
##
# An array of attributes which parallels the characters in a string.
class RDoc::Markup::AttrSpan
##
# Creates a new AttrSpan for +length+ characters
def initialize(length, exclusive)
@attrs = Array.new(length, 0)
@exclusive = exclusive
end
##
# Toggles +bits+ from +start+ to +length+
def set_attrs(start, length, bits)
updated = false
for i in start ... (start+length)
if (@exclusive & @attrs[i]) == 0 || (@exclusive & bits) != 0
@attrs[i] |= bits
updated = true
end
end
updated
end
##
# Accesses flags for character +n+
def [](n)
@attrs[n]
end
end