255: def finish_endtag(tag)
256: if tag == ''
257: found = @stack.length - 1
258: if found < 0
259: unknown_endtag(tag)
260: return
261: end
262: else
263: unless @stack.include? tag
264: method = 'end_' + tag
265: unless self.respond_to?(method)
266: unknown_endtag(tag)
267: end
268: return
269: end
270: found = @stack.index(tag)
271: end
272: while @stack.length > found
273: tag = @stack[-1]
274: method = 'end_' + tag
275: if respond_to?(method)
276: handle_endtag(tag, method)
277: else
278: unknown_endtag(tag)
279: end
280: @stack.pop
281: end
282: end