home *** CD-ROM | disk | FTP | other *** search
- %
- % Recall previous commands in MiniBuffer
- %
-
- !if (is_defined("Mini_Previous_Lines"))
- {
- variable Mini_Previous_Lines, Mini_Last_Line, Mini_Next_Line, Mini_First_Line;
- Mini_Previous_Lines = create_array('s', 12, 1);
- _for(0, 11, 1)
- {
- =$1;
- Mini_Previous_Lines[$1] = Null_String;
- }
- }
- Mini_Last_Line = 0;
- Mini_First_Line = 0;
- Mini_Next_Line = 0;
-
- define mini_use_this_line()
- {
- erase_buffer();
- insert(Mini_Previous_Lines[Mini_Next_Line]);
- }
-
-
- define next_mini_command()
- {
- variable line;
-
- if (Mini_Next_Line == Mini_Last_Line)
- {
- error ("End of list!");
- }
- Mini_Next_Line++;
- if (Mini_Next_Line == 12) Mini_Next_Line = 0;
- mini_use_this_line();
- }
-
- define prev_mini_command()
- {
- variable line;
-
- line = Mini_Next_Line;
- if (Mini_First_Line == Mini_Next_Line)
- {
- Mini_Next_Line = line;
- error ("Top of list!");
- }
- Mini_Next_Line--;
- if (Mini_Next_Line < 0) Mini_Next_Line = 11;
- mini_use_this_line();
- }
-
- define mini_exit_minibuffer()
- {
- bol(); skip_white();
- !if (eolp())
- {
- bol(); push_mark(); eol();
- Mini_Previous_Lines[Mini_Last_Line] = bufsubstr();
- Mini_Last_Line++;
- if (Mini_Last_Line == 12) Mini_Last_Line = 0;
- if (Mini_Last_Line == Mini_First_Line)
- {
- Mini_First_Line++;
- if (Mini_First_Line == 12) Mini_First_Line = 0;
- }
- }
- Mini_Next_Line = Mini_Last_Line;
- Mini_Previous_Lines[Mini_Last_Line] = Null_String;
- call("exit_mini");
- }
-