fep - patch #4
Kazumasa Utashiro
utashiro at sran84.sra.JUNET
Fri Jan 6 12:44:57 AEST 1989
Description:
* Added history insertion
*** /tmp/,RCSt1012719 Fri Jan 6 08:50:41 1989
--- fep_funcs.c Fri Nov 25 20:52:14 1988
***************
*** 2,8
#ifndef lint
static char rcsid[]=
! "$Header: fep_funcs.c,v 4.3 88/08/28 14:36:35 utashiro Exp $ (SRA)";
#endif lint
#include <stdio.h>
--- 2,8 -----
#ifndef lint
static char rcsid[]=
! "$Header: fep_funcs.c,v 4.4 88/11/25 20:52:09 utashiro Exp $ (SRA)";
#endif lint
#include <stdio.h>
***************
*** 64,69
"Get next history"},
{previous_history, "previous-history",
"Get previous history"},
{ignore, "ignore",
"Ignore"},
{delete_line, "delete-line",
--- 64,75 -----
"Get next history"},
{previous_history, "previous-history",
"Get previous history"},
+ {insert_next_history, "insert-next-history",
+ "Insert next history"},
+ {insert_previous_history, "insert-previous-history",
+ "Insert previous history"},
+ {insert_current_history, "insert-current-history",
+ "Insert current history"},
{ignore, "ignore",
"Ignore"},
{delete_line, "delete-line",
*** /tmp/,RCSt1012745 Fri Jan 6 08:50:51 1989
--- fep_hist.c Fri Nov 25 20:45:42 1988
***************
*** 2,8
#ifndef lint
static char rcsid[]=
! "$Header: fep_hist.c,v 4.2 88/08/28 19:15:08 utashiro Exp $ (SRA)";
#endif lint
#include <stdio.h>
--- 2,8 -----
#ifndef lint
static char rcsid[]=
! "$Header: fep_hist.c,v 4.3 88/11/25 20:45:25 utashiro Exp $ (SRA)";
#endif lint
#include <stdio.h>
***************
*** 85,90
}
char *
getPreviousHistory()
{
if (HistorySize <= 0)
--- 85,111 -----
}
char *
+ getHistory(num)
+ int num;
+ {
+ if (HistorySize <= 0)
+ return (0);
+
+ if (num < TopOfHist || TailOfHist <= num) {
+ return ((char *)0);
+ }
+ else {
+ return (HistoryTable[num % HistorySize]);
+ }
+ }
+
+ char *
+ getCurrentHistory()
+ {
+ return (getHistory (CurrentHist));
+ }
+
+ char *
getPreviousHistory()
{
if (HistorySize <= 0)
***************
*** 97,103
CurrentHist = TailOfHist - 1;
else
CurrentHist--;
! return (HistoryTable[CurrentHist % HistorySize]);
}
char *
--- 118,124 -----
CurrentHist = TailOfHist - 1;
else
CurrentHist--;
! return (getCurrentHistory ());
}
char *
***************
*** 111,133
CurrentHist = TopOfHist;
else
CurrentHist++;
! return (HistoryTable[CurrentHist % HistorySize]);
! }
!
! char *
! getHistory(num)
! int num;
! {
!
! if (HistorySize <= 0)
! return (0);
!
! if (num < TopOfHist || TailOfHist <= num) {
! return ((char *)0);
! }
! else {
! return (HistoryTable[num % HistorySize]);
! }
}
getOldestHistNum()
--- 132,138 -----
CurrentHist = TopOfHist;
else
CurrentHist++;
! return (getCurrentHistory ());
}
getOldestHistNum()
*** /tmp/,RCSt1012759 Fri Jan 6 08:51:00 1989
--- fep_edit.c Wed Dec 28 21:23:39 1988
***************
*** 2,8
#ifndef lint
static char rcsid[]=
! "$Header: fep_edit.c,v 4.4 88/08/28 18:57:32 utashiro Exp $ (SRA)";
#endif lint
#include <stdio.h>
--- 2,8 -----
#ifndef lint
static char rcsid[]=
! "$Header: fep_edit.c,v 4.6 88/11/25 20:51:53 utashiro Exp $ (SRA)";
#endif lint
#include <stdio.h>
***************
*** 66,71
/* esc-H */ {"\\^[H", delete_previous_Word},
/* esc-l */ {"\\^[l", list_file_name},
/* esc-L */ {"\\^[L", list_file_name},
/* esc-esc */ {"\\^[\\^[", expand_file_name},
/* esc-"-" */ {"\\^[-", toggle_through},
/* esc-_ */ {"\\^[_", invoke_shell},
--- 66,76 -----
/* esc-H */ {"\\^[H", delete_previous_Word},
/* esc-l */ {"\\^[l", list_file_name},
/* esc-L */ {"\\^[L", list_file_name},
+ /* esc-n */ {"\\^[n", insert_next_history},
+ /* esc-N */ {"\\^[N", insert_next_history},
+ /* esc-p */ {"\\^[p", insert_previous_history},
+ /* esc-P */ {"\\^[P", insert_previous_history},
+ /* esc-. */ {"\\^[.", insert_current_history},
/* esc-esc */ {"\\^[\\^[", expand_file_name},
/* esc-"-" */ {"\\^[-", toggle_through},
/* esc-_ */ {"\\^[_", invoke_shell},
***************
*** 792,799
}
else
#endif KANJI
! if (isctlchar(CommandLine[i]))
! (void) putchar (unctl (CommandLine [i++]));
else
(void) putchar (CommandLine[i++]);
--- 797,806 -----
}
else
#endif KANJI
! if (isctlchar(CommandLine[i])) {
! (void) putchar (unctl (CommandLine [i]));
! i++;
! }
else
(void) putchar (CommandLine[i++]);
***************
*** 1494,1500
clear_screen()
{
-
if (term_clear) {
(void) clear_edit_line ();
fputs (term_clear, stdout);
--- 1501,1506 -----
clear_screen()
{
if (term_clear) {
(void) clear_edit_line ();
fputs (term_clear, stdout);
***************
*** 1506,1511
return (0);
}
/*
* Get next history entry
*/
--- 1512,1520 -----
return (0);
}
+ typedef enum {HOP_INSERT, HOP_REPLACE} HISTOP;
+ typedef enum {HDIR_PREV, HDIR_CURRENT, HDIR_NEXT} HISTDIR;
+
/*
* Get next history entry
*/
***************
*** 1511,1519
*/
next_history()
{
! register char *cp;
! char *getNextHistory ();
! int diff;
if ((cp = getNextHistory ()) == (char *)0) {
errorBell ();
--- 1520,1527 -----
*/
next_history()
{
! return (serv_history (HOP_REPLACE, HDIR_NEXT));
! }
/*
* Get next history entry
***************
*** 1515,1536
char *getNextHistory ();
int diff;
! if ((cp = getNextHistory ()) == (char *)0) {
! errorBell ();
! return (0);
! }
! diff = howlong (CommandLine, 0) - howlong (cp, 0);
! (void) beginning_of_line ();
! if (isctlchar (CommandLine[0]))
! putchar (BS);
! printS (cp);
! if (diff > 0) {
! repeat (SP, diff);
! repeat (BS, diff);
! }
! (void) strcpy (CommandLine, cp);
! CurrentPosition = strlen (CommandLine);
! return (0);
}
/*
--- 1523,1534 -----
return (serv_history (HOP_REPLACE, HDIR_NEXT));
}
! /*
! * Get next history entry
! */
! previous_history()
! {
! return (serv_history (HOP_REPLACE, HDIR_PREV));
}
/*
***************
*** 1534,1539
}
/*
* Get previous history
*/
previous_history()
--- 1532,1561 -----
}
/*
+ * Insert next history entry
+ */
+ insert_current_history()
+ {
+ return (serv_history (HOP_INSERT, HDIR_CURRENT));
+ }
+
+ /*
+ * Insert next history entry
+ */
+ insert_next_history()
+ {
+ return (serv_history (HOP_INSERT, HDIR_NEXT));
+ }
+
+ /*
+ * Insert next history entry
+ */
+ insert_previous_history()
+ {
+ return (serv_history (HOP_INSERT, HDIR_PREV));
+ }
+
+ /*
* Get previous history
*/
serv_history(op, dir)
***************
*** 1536,1542
/*
* Get previous history
*/
! previous_history()
{
register char *cp;
char *getPreviousHistory ();
--- 1558,1566 -----
/*
* Get previous history
*/
! serv_history(op, dir)
! HISTOP op;
! HISTDIR dir;
{
register char *cp;
char *getPreviousHistory (), *getNextHistory (), *getCurrentHistory ();
***************
*** 1539,1545
previous_history()
{
register char *cp;
! char *getPreviousHistory ();
int diff;
if ((cp = getPreviousHistory ()) == (char *)0) {
--- 1563,1569 -----
HISTDIR dir;
{
register char *cp;
! char *getPreviousHistory (), *getNextHistory (), *getCurrentHistory ();
int diff;
switch (dir) {
***************
*** 1542,1548
char *getPreviousHistory ();
int diff;
! if ((cp = getPreviousHistory ()) == (char *)0) {
errorBell ();
return (0);
}
--- 1566,1579 -----
char *getPreviousHistory (), *getNextHistory (), *getCurrentHistory ();
int diff;
! switch (dir) {
! case HDIR_PREV: cp = getPreviousHistory (); break;
! case HDIR_NEXT: cp = getNextHistory (); break;
! case HDIR_CURRENT: cp = getCurrentHistory (); break;
! default: cp = (char*)0;
! }
!
! if (cp == (char *)0) {
errorBell ();
return (0);
}
***************
*** 1547,1563
return (0);
}
! diff = howlong (CommandLine, 0) - howlong (cp, 0);
! (void) beginning_of_line ();
! if (isctlchar (CommandLine[0]))
! putchar (BS);
! printS (cp);
! if (diff > 0) {
! repeat (SP, diff);
! repeat (BS, diff);
! }
! (void) strcpy (CommandLine, cp);
! CurrentPosition = strlen (CommandLine);
return (0);
}
--- 1578,1586 -----
return (0);
}
! if (op == HOP_REPLACE)
! (void) delete_line ();
! (void) insert_string (cp);
return (0);
}
*** /tmp/,RCSt1012777 Fri Jan 6 08:51:15 1989
--- fep_funcs.h Fri Nov 25 20:52:17 1988
***************
*** 2,8
#ifndef lint
# define FEP_FUNCS \
! "$Header: fep_funcs.h,v 4.3 88/08/28 14:36:39 utashiro Exp $ (SRA)"
#endif lint
/*
--- 2,8 -----
#ifndef lint
# define FEP_FUNCS \
! "$Header: fep_funcs.h,v 4.4 88/11/25 20:52:15 utashiro Exp $ (SRA)"
#endif lint
/*
***************
*** 41,46
int new_line();
int next_history();
int previous_history();
int reprint();
int search_reverse();
int search_forward();
--- 41,49 -----
int new_line();
int next_history();
int previous_history();
+ int insert_next_history();
+ int insert_previous_history();
+ int insert_current_history();
int reprint();
int search_reverse();
int search_forward();
*** /tmp/,RCSt1012795 Fri Jan 6 08:51:23 1989
--- fep_main.c Thu Dec 8 15:44:02 1988
***************
*** 2,8
#ifndef lint
static char rcsid[]=
! "$Header: fep_main.c,v 4.3 88/08/28 14:36:44 utashiro Exp $ (SRA)";
#endif lint
#include <stdio.h>
--- 2,8 -----
#ifndef lint
static char rcsid[]=
! "$Header: fep_main.c,v 4.4 88/12/08 15:43:45 utashiro Exp $ (SRA)";
#endif lint
#include <stdio.h>
***************
*** 300,306
perror ("open");
while (inputline = getline ()) {
! register int nbyte = strlen (inputline);
/*
* Write to master pty
--- 300,312 -----
perror ("open");
while (inputline = getline ()) {
! /*
! * XXX: nbyte should be greater than 0 only for ^@ input in emacs.
! * This solution is very ugly.. but it will takes a half day
! * to fix this problem in more right way. I will fix this problem
! * in future release.
! */
! register int nbyte = max (strlen (inputline), 1);
/*
* Write to master pty
*** /tmp/,RCSt1012821 Fri Jan 6 08:51:34 1989
--- fep.1 Fri Nov 25 20:52:37 1988
***************
*** 1,5
.\" Copyright (c) 1987, 1988 by Software Research Associates, Inc.
! .\" $Header: fep.1,v 4.6 88/11/13 15:52:48 utashiro Exp $
.\"----------------------------------------
.TH FEP 1L "5 Aug 1988" "SRA Distribution"
.SH NAME
--- 1,5 -----
.\" Copyright (c) 1987, 1988 by Software Research Associates, Inc.
! .\" $Header: fep.1,v 4.7 88/11/25 20:51:20 utashiro Exp $
.\"----------------------------------------
.TH FEP 1L "5 Aug 1988" "SRA Distribution"
.SH NAME
***************
*** 70,75
esc-_ invoke-shell
esc-< search-reverse
esc-> search-forward
.if t .sp .3v
/* Bindings inherited from the tty driver */
.if t .sp .3v
--- 70,78 -----
esc-_ invoke-shell
esc-< search-reverse
esc-> search-forward
+ esc-p insert-previous-history
+ esc-n insert-next-history
+ esc-. insert-current-history
.if t .sp .3v
/* Bindings inherited from the tty driver */
.if t .sp .3v
***************
*** 524,529
new-line Insert newline
next-history Get next history
previous-history Get previous history
repaint Repaint screen
reprint Reprint line
search-forward Search forward last !history
--- 527,535 -----
new-line Insert newline
next-history Get next history
previous-history Get previous history
+ insert-next-history Insert next history
+ insert-previous-history Insert previous history
+ insert-current-history Insert current history
repaint Repaint screen
reprint Reprint line
search-forward Search forward last !history
More information about the Comp.sources.bugs
mailing list