home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 35 Internet
/
35-Internet.zip
/
ircii30.zip
/
script
/
history-match
< prev
next >
Wrap
Text File
|
1994-07-30
|
2KB
|
49 lines
# 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: /local/cvs/ircii/script/history-match,v 1.1 1994/07/30 18:15:56 mrg stable $$]
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
}
}
}