fep - patch #5
Kazumasa Utashiro
utashiro at sran84.sra.JUNET
Fri Jan 6 13:24:21 AEST 1989
Description:
* CTRL -> ctrl for ansi style compiler
* fixed longjmp parameter mismatch
* check the tty control character has positive value
* default bindings averride tty control characters
thanks to cudcv at warwick.ac.uk (Rob McMahon)
* Change to terminate when received HUP signal
thanks to <quiroz at cs.rochester.edu>
*** /tmp/,RCSt1015680 Fri Jan 6 12:13:56 1989
--- fep_vi.c Fri Jan 6 10:48:22 1989
***************
*** 2,8
#ifndef lint
static char rcsid[]=
! "$Header: fep_vi.c,v 4.3 88/08/28 14:36:55 utashiro Exp $ (SRA)";
#endif lint
#include <stdio.h>
--- 2,8 -----
#ifndef lint
static char rcsid[]=
! "$Header: fep_vi.c,v 4.5 89/01/06 10:48:17 utashiro Exp $ (SRA)";
#endif lint
#include <stdio.h>
***************
*** 159,170
for (i = 0; i < 256; i++)
cft[i] = self_insert;
! for (ftp = viComBindings; ftp->bt_s; ftp++) {
! bind_key (aft, ftp->bt_func, ftp->bt_s, abort);
! }
! for (ftp = viInsertBindings; ftp->bt_s; ftp++) {
! bind_key (cft, ftp->bt_func, ftp->bt_s, abort);
! }
/* Now, using cbreak mode
cft[(int) tchars_buf.t_startx] = ignore;
--- 159,165 -----
for (i = 0; i < 256; i++)
cft[i] = self_insert;
! #define import(table,key,fn) if((int)key>0)table[(int)key]=fn
/* Now, using cbreak mode
import (cft, tchars_buf.t_startx, ignore);
***************
*** 167,174
}
/* Now, using cbreak mode
! cft[(int) tchars_buf.t_startx] = ignore;
! cft[(int) tchars_buf.t_stopc] = ignore;
*/
cft[(int) tchars_buf.t_intrc] = insert_and_flush;
aft[(int) tchars_buf.t_intrc] = insert_and_flush;
--- 162,169 -----
#define import(table,key,fn) if((int)key>0)table[(int)key]=fn
/* Now, using cbreak mode
! import (cft, tchars_buf.t_startx, ignore);
! import (cft, tchars_buf.t_stopc, ignore);
*/
import (cft, tchars_buf.t_intrc, insert_and_flush);
import (aft, tchars_buf.t_intrc, insert_and_flush);
***************
*** 170,188
cft[(int) tchars_buf.t_startx] = ignore;
cft[(int) tchars_buf.t_stopc] = ignore;
*/
! cft[(int) tchars_buf.t_intrc] = insert_and_flush;
! aft[(int) tchars_buf.t_intrc] = insert_and_flush;
! cft[(int) tchars_buf.t_quitc] = insert_and_flush;
! cft[(int) tchars_buf.t_eofc] = send_eof;
! cft[(int) tchars_buf.t_brkc] = insert_and_flush;
! cft[(int) ltchars_buf.t_suspc] = insert_and_flush;
! cft[(int) ltchars_buf.t_dsuspc] = self_insert;
! cft[(int) ltchars_buf.t_rprntc] = reprint;
! cft[(int) ltchars_buf.t_flushc] = self_insert;
! cft[(int) ltchars_buf.t_werasc] = delete_previous_word;
! cft[(int) ltchars_buf.t_lnextc] = literal_next;
! cft[(int) initial_ttymode.sg_erase] = delete_previous_character;
! cft[(int) initial_ttymode.sg_kill] = delete_line;
viInsTable = cft;
viComTable = aft;
--- 165,183 -----
import (cft, tchars_buf.t_startx, ignore);
import (cft, tchars_buf.t_stopc, ignore);
*/
! import (cft, tchars_buf.t_intrc, insert_and_flush);
! import (aft, tchars_buf.t_intrc, insert_and_flush);
! import (cft, tchars_buf.t_quitc, insert_and_flush);
! import (cft, tchars_buf.t_eofc, send_eof);
! import (cft, tchars_buf.t_brkc, insert_and_flush);
! import (cft, ltchars_buf.t_suspc, insert_and_flush);
! import (cft, ltchars_buf.t_dsuspc, self_insert);
! import (cft, ltchars_buf.t_rprntc, reprint);
! import (cft, ltchars_buf.t_flushc, self_insert);
! import (cft, ltchars_buf.t_werasc, delete_previous_word);
! import (cft, ltchars_buf.t_lnextc, literal_next);
! import (cft, initial_ttymode.sg_erase, delete_previous_character);
! import (cft, initial_ttymode.sg_kill, delete_line);
#undef import
***************
*** 184,189
cft[(int) initial_ttymode.sg_erase] = delete_previous_character;
cft[(int) initial_ttymode.sg_kill] = delete_line;
viInsTable = cft;
viComTable = aft;
vi_mode = INSERTMODE;
--- 179,191 -----
import (cft, initial_ttymode.sg_erase, delete_previous_character);
import (cft, initial_ttymode.sg_kill, delete_line);
+ #undef import
+
+ for (ftp = viComBindings; ftp->bt_s; ftp++)
+ bind_key (aft, ftp->bt_func, ftp->bt_s, abort);
+ for (ftp = viInsertBindings; ftp->bt_s; ftp++)
+ bind_key (cft, ftp->bt_func, ftp->bt_s, abort);
+
viInsTable = cft;
viComTable = aft;
vi_mode = INSERTMODE;
***************
*** 265,271
(void) backward_character ();
break;
! case CTRL(U):
(void) delete_line (c);
(void) altenateEditmode ();
break;
--- 267,273 -----
(void) backward_character ();
break;
! case ctrl('U'):
(void) delete_line (c);
(void) altenateEditmode ();
break;
***************
*** 489,495
{
switch (c) {
! case CTRL(H):
(void) delete_previous_character (c);
break;
--- 491,497 -----
{
switch (c) {
! case ctrl('H'):
(void) delete_previous_character (c);
break;
***************
*** 493,499
(void) delete_previous_character (c);
break;
! case CTRL(W):
(void) delete_previous_word (c);
break;
--- 495,501 -----
(void) delete_previous_character (c);
break;
! case ctrl('W'):
(void) delete_previous_word (c);
break;
***************
*** 497,503
(void) delete_previous_word (c);
break;
! case CTRL(U):
(void) delete_line (c);
break;
--- 499,505 -----
(void) delete_previous_word (c);
break;
! case ctrl('U'):
(void) delete_line (c);
break;
***************
*** 501,507
(void) delete_line (c);
break;
! case CTRL(V):
(void) literal_next (c);
break;
--- 503,509 -----
(void) delete_line (c);
break;
! case ctrl('V'):
(void) literal_next (c);
break;
*** /tmp/,RCSt1015702 Fri Jan 6 12:14:08 1989
--- fep_com.c Fri Jan 6 10:07:28 1989
***************
*** 2,8
#ifndef lint
static char rcsid[]=
! "$Header: fep_com.c,v 4.7 88/11/13 15:51:24 utashiro Exp $ (SRA)";
#endif lint
#include <stdio.h>
--- 2,8 -----
#ifndef lint
static char rcsid[]=
! "$Header: fep_com.c,v 4.8 89/01/06 10:07:12 utashiro Exp $ (SRA)";
#endif lint
#include <stdio.h>
***************
*** 660,666
--mp->cur_line;
break;
! case 'd': case CTRL(D):
mp->cur_line /= 2;
break;
--- 660,666 -----
--mp->cur_line;
break;
! case 'd': case ctrl('D'):
mp->cur_line /= 2;
break;
***************
*** 664,670
mp->cur_line /= 2;
break;
! case 'q': case 'Q': case CTRL(C):
DELMORE;
return (0);
--- 664,670 -----
mp->cur_line /= 2;
break;
! case 'q': case 'Q': case ctrl('C'):
DELMORE;
return (0);
*** /tmp/,RCSt1015712 Fri Jan 6 12:14:17 1989
--- fep_edit.c Fri Jan 6 10:48:16 1989
***************
*** 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>
--- 2,8 -----
#ifndef lint
static char rcsid[]=
! "$Header: fep_edit.c,v 4.8 89/01/06 10:45:20 utashiro Exp $ (SRA)";
#endif lint
#include <stdio.h>
***************
*** 189,197
for (i = 0; i < 256; i++)
cft[i] = self_insert;
- for (ftp = emacsBindings; ftp->bt_s; ftp++) {
- bind_key (cft, ftp->bt_func, ftp->bt_s, abort);
- }
/* Now, using cbreak mode
cft[(int) tchars_buf.t_startc] = ignore;
--- 189,194 -----
for (i = 0; i < 256; i++)
cft[i] = self_insert;
#define import(table,key,fn) if((int)key>0)table[(int)key]=fn
***************
*** 193,198
bind_key (cft, ftp->bt_func, ftp->bt_s, abort);
}
/* Now, using cbreak mode
cft[(int) tchars_buf.t_startc] = ignore;
cft[(int) tchars_buf.t_stopc] = ignore;
--- 190,197 -----
for (i = 0; i < 256; i++)
cft[i] = self_insert;
+ #define import(table,key,fn) if((int)key>0)table[(int)key]=fn
+
/* Now, using cbreak mode
import (cft, tchars_buf.t_startc, ignore);
import (cft, tchars_buf.t_stopc, ignore);
***************
*** 194,201
}
/* Now, using cbreak mode
! cft[(int) tchars_buf.t_startc] = ignore;
! cft[(int) tchars_buf.t_stopc] = ignore;
*/
cft[(int) tchars_buf.t_intrc] = insert_and_flush;
cft[(int) tchars_buf.t_quitc] = insert_and_flush;
--- 193,200 -----
#define import(table,key,fn) if((int)key>0)table[(int)key]=fn
/* Now, using cbreak mode
! import (cft, tchars_buf.t_startc, ignore);
! import (cft, tchars_buf.t_stopc, ignore);
*/
import (cft, tchars_buf.t_intrc, insert_and_flush);
import (cft, tchars_buf.t_quitc, insert_and_flush);
***************
*** 197,204
cft[(int) tchars_buf.t_startc] = ignore;
cft[(int) tchars_buf.t_stopc] = ignore;
*/
! cft[(int) tchars_buf.t_intrc] = insert_and_flush;
! cft[(int) tchars_buf.t_quitc] = insert_and_flush;
/* Now, EOF will be sent on empty line.
cft[(int) tchars_buf.t_eofc] = send_eof;
*/
--- 196,203 -----
import (cft, tchars_buf.t_startc, ignore);
import (cft, tchars_buf.t_stopc, ignore);
*/
! import (cft, tchars_buf.t_intrc, insert_and_flush);
! import (cft, tchars_buf.t_quitc, insert_and_flush);
/* Now, EOF will be sent on empty line.
import (cft, tchars_buf.t_eofc, send_eof);
*/
***************
*** 200,206
cft[(int) tchars_buf.t_intrc] = insert_and_flush;
cft[(int) tchars_buf.t_quitc] = insert_and_flush;
/* Now, EOF will be sent on empty line.
! cft[(int) tchars_buf.t_eofc] = send_eof;
*/
cft[(int) tchars_buf.t_brkc] = insert_and_flush;
cft[(int) ltchars_buf.t_suspc] = insert_and_flush;
--- 199,205 -----
import (cft, tchars_buf.t_intrc, insert_and_flush);
import (cft, tchars_buf.t_quitc, insert_and_flush);
/* Now, EOF will be sent on empty line.
! import (cft, tchars_buf.t_eofc, send_eof);
*/
import (cft, tchars_buf.t_brkc, insert_and_flush);
import (cft, ltchars_buf.t_suspc, insert_and_flush);
***************
*** 202,209
/* Now, EOF will be sent on empty line.
cft[(int) tchars_buf.t_eofc] = send_eof;
*/
! cft[(int) tchars_buf.t_brkc] = insert_and_flush;
! cft[(int) ltchars_buf.t_suspc] = insert_and_flush;
/* ^Y is used for yank-from-kill-buffer
cft[(int) ltchars_buf.t_dsuspc] = self_insert;
*/
--- 201,208 -----
/* Now, EOF will be sent on empty line.
import (cft, tchars_buf.t_eofc, send_eof);
*/
! import (cft, tchars_buf.t_brkc, insert_and_flush);
! import (cft, ltchars_buf.t_suspc, insert_and_flush);
/* ^Y is used for yank-from-kill-buffer
import (cft, ltchars_buf.t_dsuspc, self_insert);
*/
***************
*** 205,211
cft[(int) tchars_buf.t_brkc] = insert_and_flush;
cft[(int) ltchars_buf.t_suspc] = insert_and_flush;
/* ^Y is used for yank-from-kill-buffer
! cft[(int) ltchars_buf.t_dsuspc] = self_insert;
*/
cft[(int) ltchars_buf.t_rprntc] = reprint;
cft[(int) ltchars_buf.t_flushc] = self_insert;
--- 204,210 -----
import (cft, tchars_buf.t_brkc, insert_and_flush);
import (cft, ltchars_buf.t_suspc, insert_and_flush);
/* ^Y is used for yank-from-kill-buffer
! import (cft, ltchars_buf.t_dsuspc, self_insert);
*/
import (cft, ltchars_buf.t_rprntc, reprint);
import (cft, ltchars_buf.t_flushc, self_insert);
***************
*** 207,218
/* ^Y is used for yank-from-kill-buffer
cft[(int) ltchars_buf.t_dsuspc] = self_insert;
*/
! cft[(int) ltchars_buf.t_rprntc] = reprint;
! cft[(int) ltchars_buf.t_flushc] = self_insert;
! cft[(int) ltchars_buf.t_werasc] = delete_previous_word;
! cft[(int) ltchars_buf.t_lnextc] = literal_next;
! cft[(int) initial_ttymode.sg_erase] = delete_previous_character;
! cft[(int) initial_ttymode.sg_kill] = delete_line;
}
/*
--- 206,226 -----
/* ^Y is used for yank-from-kill-buffer
import (cft, ltchars_buf.t_dsuspc, self_insert);
*/
! import (cft, ltchars_buf.t_rprntc, reprint);
! import (cft, ltchars_buf.t_flushc, self_insert);
! import (cft, ltchars_buf.t_werasc, delete_previous_word);
! import (cft, ltchars_buf.t_lnextc, literal_next);
! import (cft, initial_ttymode.sg_erase, delete_previous_character);
! import (cft, initial_ttymode.sg_kill, delete_line);
!
! #undef import
!
! /*
! * Set default bindings
! */
! for (ftp = emacsBindings; ftp->bt_s; ftp++) {
! bind_key (cft, ftp->bt_func, ftp->bt_s, abort);
! }
}
/*
***************
*** 236,242
NeedSave = 0;
editstatus = EDITING;
processed = 0;
! setjmp (jbuf);
/*
* If there is file pointer for I/O redirection,
--- 244,250 -----
NeedSave = 0;
editstatus = EDITING;
processed = 0;
! (void) setjmp (jbuf);
/*
* If there is file pointer for I/O redirection,
***************
*** 1737,1743
fputs ("\r\n", stdout);
perror ("alloca:");
reprint ();
! longjmp (jbuf);
}
strcpy (fcp, dp->d_name);
fileList [i++] = fcp;
--- 1745,1751 -----
fputs ("\r\n", stdout);
perror ("alloca:");
reprint ();
! longjmp (jbuf, 1);
}
strcpy (fcp, dp->d_name);
fileList [i++] = fcp;
***************
*** 1928,1934
fputs ("\r\n", stdout);
perror ("alloca:");
reprint ();
! longjmp (jbuf);
}
strcpy (fcp, dp->d_name);
fileList [i++] = fcp;
--- 1936,1942 -----
fputs ("\r\n", stdout);
perror ("alloca:");
reprint ();
! longjmp (jbuf, 1);
}
strcpy (fcp, dp->d_name);
fileList [i++] = fcp;
*** /tmp/,RCSt1015722 Fri Jan 6 12:14:33 1989
--- fep_defs.h Fri Jan 6 10:07:32 1989
***************
*** 2,8
#ifndef lint
# define FEP_DEFS \
! "$Header: fep_defs.h,v 4.2 88/08/16 18:22:13 utashiro Exp $ (SRA)"
#endif lint
#define MAXCOMLEN 512 /* maximum command length */
--- 2,8 -----
#ifndef lint
# define FEP_DEFS \
! "$Header: fep_defs.h,v 4.3 89/01/06 10:07:29 utashiro Exp $ (SRA)"
#endif lint
#define MAXCOMLEN 512 /* maximum command length */
***************
*** 38,43
#endif KANJI
#define unctl(c) (((c)=='\177') ? '?' : ((c) >= 040) ? (c) : (c)|0100)
#define toctrl(c) ((c)&~0100)
#define INDIRECTED (1<<(sizeof(char*)*8-1))
/* this is actually 0x80000000 on 32 bit machine,
--- 38,44 -----
#endif KANJI
#define unctl(c) (((c)=='\177') ? '?' : ((c) >= 040) ? (c) : (c)|0100)
#define toctrl(c) ((c)&~0100)
+ #define ctrl(c) ((c)&037)
#define INDIRECTED (1<<(sizeof(char*)*8-1))
/* this is actually 0x80000000 on 32 bit machine,
*** /tmp/,RCSt1015744 Fri Jan 6 12:14:41 1989
--- fep_main.c Fri Jan 6 12:11:02 1989
***************
*** 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>
--- 2,8 -----
#ifndef lint
static char rcsid[]=
! "$Header: fep_main.c,v 4.5 89/01/06 12:10:30 utashiro Exp $ (SRA)";
#endif lint
#include <stdio.h>
***************
*** 275,281
fix_signal ()
{
! sighup = signal (SIGHUP, catchsig);
sigchld = signal (SIGCHLD, catchsig);
sigtstp = signal (SIGTSTP, SIG_IGN);
}
--- 275,281 -----
fix_signal ()
{
! sighup = signal (SIGHUP, terminate);
sigchld = signal (SIGCHLD, catchsig);
sigtstp = signal (SIGTSTP, SIG_IGN);
}
More information about the Comp.sources.bugs
mailing list