home *** CD-ROM | disk | FTP | other *** search
- # history-match
- # This is basically an attempt to emulate the behavior of tcsh's ESC-p
- # eg.. /partcom^Xp looks for the completion to the command in the
- # command history
- # and /command partword^Xp finds the match to the partial word in the
- # command history.. Try it twice as it may miss it the first time
- # The other feature is that if there are several matches in the history
- # you can hit ^Xp several times to move through the choices.. if you
- # modify the pattern or hit return it will reset the search to something
- # new..
-
- @ RCS.ircIId = [$$Header: /splode/u/mrg/src/ircii-2.5/script/RCS/history-match,v 1.1 1994/07/30 18:15:56 mrg Stab $$]
-
- bind meta2-p parse history.expn $L
-
- # clearing out a null pattern is tough.. so I do it any time a line is
- # sent
- on #-input 765 * @ history.pat = [xxnomatchxx]
-
- alias history.expn {
- if ([$0] != history.key)
- {
- # again, trying to get rid of a 'short' or null pattern
- @ history.pat = [xxnomatchxx]
- @ history.key = [$0]
- }
- if (history.nomatch == []) {@ history.nomatch = 1}
- if (!match($(history.pat)* $1)) {@ history.pat = [$1]}
- @ history.found = 0
- while (!history.found)
- {
- if ((history.search = [$(!$(0)!)]) != [])
- {
- if (match($(history.pat)* $word(1 $history.search)))
- {
- parsekey erase_to_beg_of_line
- xtype -literal $history.search
- @ history.found = 1
- @ history.nomatch = 0
- }
- }
- {
- # we hit the top of the history.. drop out of the while loop
- @ history.found = 1
- @ history.nomatch = 1
- }
- }
- }
-