diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-04-10 05:57:37 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2000-04-10 05:57:37 +0000 |
commit | 4a67017698cc23f510d0c76fadc4104b141f4512 (patch) | |
tree | fe70f9b37266db4cf2ca14d397c58b6a00f2c5a8 /ext/tk/lib/tktext.rb | |
parent | 7194267b3bdf68ad75bd6bee8e7c6377f7b0ea2f (diff) |
2000-04-10
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tk/lib/tktext.rb')
-rw-r--r-- | ext/tk/lib/tktext.rb | 102 |
1 files changed, 57 insertions, 45 deletions
diff --git a/ext/tk/lib/tktext.rb b/ext/tk/lib/tktext.rb index 2dea68980c..e1939af5fe 100644 --- a/ext/tk/lib/tktext.rb +++ b/ext/tk/lib/tktext.rb @@ -428,8 +428,16 @@ class TkText<TkTextWin rsearch_with_length(pat,start,stop)[0] end - def _dump(type, *index) - str = tk_send('dump', type, *index) + def dump(type_info, *index) + args = type_info.collect{|inf| + if inf.kind_of? Array + inf[0] = '-' + inf[0] + inf + else + '-' + inf + end + }.flatten + str = tk_send('dump', *(args + index)) result = [] sel = nil i = 0 @@ -501,24 +509,64 @@ class TkText<TkTextWin end kvis # result is [[key1, value1, index1], [key2, value2, index2], ...] end - private :_dump + + def _retrieve_braced_text(str, i) + cnt = 0 + idx = i + while idx < str.size + case str[idx] + when ?{ + cnt += 1 + when ?} + cnt -= 1 + if cnt == 0 + break + end + end + idx += 1 + end + return str[i+1..idx-1], idx + 2 + end + private :_retrieve_braced_text + + def _retrieve_backslashed_text(str, i) + j = i + idx = nil + loop { + idx = str.index(/ /, j) + if str[idx-1] == ?\\ + j += 1 + else + break + end + } + val = str[i..(idx-1)] + val.gsub!(/\\( |\{|\})/, '\1') + return val, idx + 1 + end + private :_retrieve_backslashed_text def dump_all(*index) - _dump('-all', *index) + dump(['all'], *index) + end + def dump_command(cmd, *index) + dump([['command', cmd]], *index) end def dump_mark(*index) - _dump('-mark', *index) + dump(['mark'], *index) end def dump_tag(*index) - _dump('-tag', *index) + dump(['tag'], *index) end def dump_text(*index) - _dump('-text', *index) + dump(['text'], *index) end def dump_window(*index) - _dump('-window', *index) + dump(['window'], *index) + end + def dump_image(*index) + dump(['image'], *index) end - end class TkTextTag<TkObject @@ -831,42 +879,6 @@ class TkTextWindow<TkObject end end - def _retrieve_braced_text(str, i) - cnt = 0 - idx = i - while idx < str.size - case str[idx] - when ?{ - cnt += 1 - when ?} - cnt -= 1 - if cnt == 0 - break - end - end - idx += 1 - end - return str[i+1..idx-1], idx + 2 - end - private :_retrieve_braced_text - - def _retrieve_backslashed_text(str, i) - j = i - idx = nil - loop { - idx = str.index(/ /, j) - if str[idx-1] == ?\\ - j += 1 - else - break - end - } - val = str[i..(idx-1)] - val.gsub!(/\\( |\{|\})/, '\1') - return val, idx + 1 - end - private :_retrieve_backslashed_text - end class TkTextImage<TkObject |