fep - patch #2

Kazumasa Utashiro utashiro at sran84.sra.JUNET
Fri Jan 6 12:38:01 AEST 1989


Description:

	* Added through mode
	* Added ignore-short-line
	* Added multiple command aliasing

*** /tmp/,RCSt1009139	Sun Aug 28 20:13:39 1988
--- fep_funcs.c	Sun Aug 28 14:36:37 1988
***************
*** 2,8
  
  #ifndef lint
  static char rcsid[]=
! "$Header: fep_funcs.c,v 4.2 88/08/16 18:24:00 utashiro Exp $ (SRA)";
  #endif lint
  
  #include <stdio.h>

--- 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>
***************
*** 92,98
  	 "Terminate fep"},
  	{suspend,			"suspend",
  	 "Suspend fep"},
! 	{toggle_transparency,		"toggle-transparency",
  	 "Change transparency mode"},
  	{fix_transparency,		"fix-transparency",
  	 "Check tty and change transparency mode"},

--- 92,98 -----
  	 "Terminate fep"},
  	{suspend,			"suspend",
  	 "Suspend fep"},
! 	{toggle_through,		"toggle-through",
  	 "Change transparency mode"},
  	{fix_transparency,		"fix-transparency",
  	 "Check tty and change transparency mode"},
*** /tmp/,RCSt1009149	Sun Aug 28 20:13:44 1988
--- fep_set.c	Sun Aug 28 19:15:14 1988
***************
*** 2,8
  
  #ifndef lint
  static char rcsid[]=
! "$Header: fep_set.c,v 4.1 88/08/08 19:24:30 utashiro Exp $ (SRA)";
  #endif lint
  
  #include <stdio.h>

--- 2,8 -----
  
  #ifndef lint
  static char rcsid[]=
! "$Header: fep_set.c,v 4.2 88/08/28 19:15:12 utashiro Exp $ (SRA)";
  #endif lint
  
  #include <stdio.h>
***************
*** 58,63
  	 "Repaint screen when restarting",	(VAR*)0},
  	{"clear-repaint",	"",
  	 "Clear screen before repaint",		(VAR*)0},
  	{NULL,			NULL,
  	 NULL,					(VAR*)0}
  };

--- 58,65 -----
  	 "Repaint screen when restarting",	(VAR*)0},
  	{"clear-repaint",	"",
  	 "Clear screen before repaint",		(VAR*)0},
+ 	{"ignore-short-line",	"3",
+ 	"Don't put short line to history",	(VAR*)0},
  	{NULL,			NULL,
  	 NULL,					(VAR*)0}
  };
*** /tmp/,RCSt1009159	Sun Aug 28 20:13:49 1988
--- fep_vi.c	Sun Aug 28 14:36:58 1988
***************
*** 2,8
  
  #ifndef lint
  static char rcsid[]=
! "$Header: fep_vi.c,v 4.2 88/08/16 18:24:05 utashiro Exp $ (SRA)";
  #endif lint
  
  #include <stdio.h>

--- 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>
***************
*** 94,100
  	/* ^P      */	{"\\^P",	previous_history},
  	/* ^N      */	{"\\^N",	next_history},
  	/* ^R      */	{"\\^R",	reprint},
! 	/* ^^      */	{"\\^^",	toggle_transparency},
  	/* ^X-^B   */	{"\\^X\\^B",	show_bindings},
  	/* ^X-B	   */	{"\\^XB",	show_bindings},
  	/* ^X-b	   */	{"\\^Xb",	show_bindings},

--- 94,100 -----
  	/* ^P      */	{"\\^P",	previous_history},
  	/* ^N      */	{"\\^N",	next_history},
  	/* ^R      */	{"\\^R",	reprint},
! 	/* ^^      */	{"\\^^",	toggle_through},
  	/* ^X-^B   */	{"\\^X\\^B",	show_bindings},
  	/* ^X-B	   */	{"\\^XB",	show_bindings},
  	/* ^X-b	   */	{"\\^Xb",	show_bindings},
***************
*** 126,132
  	/* ^N      */	{"\\^N",	next_history},
  	/* ESC     */	{"\\^[",	vi_ins_edit},
  	/* ^E      */	{"\\^E",	expand_file_name},
! 	/* ^^      */	{"\\^^",	toggle_transparency},
  	/* ^X-^B   */	{"\\^X\\^B",	show_bindings},
  	/* ^X-B	   */	{"\\^XB",	show_bindings},
  	/* ^X-b	   */	{"\\^Xb",	show_bindings},

--- 126,132 -----
  	/* ^N      */	{"\\^N",	next_history},
  	/* ESC     */	{"\\^[",	vi_ins_edit},
  	/* ^E      */	{"\\^E",	expand_file_name},
! 	/* ^^      */	{"\\^^",	toggle_through},
  	/* ^X-^B   */	{"\\^X\\^B",	show_bindings},
  	/* ^X-B	   */	{"\\^XB",	show_bindings},
  	/* ^X-b	   */	{"\\^Xb",	show_bindings},
*** /tmp/,RCSt1009169	Sun Aug 28 20:13:55 1988
--- fep_util.c	Sun Aug 28 18:57:44 1988
***************
*** 2,8
  
  #ifndef lint
  static char rcsid[]=
! "$Header: fep_util.c,v 4.0 88/08/05 20:22:24 utashiro Rel $ (SRA)";
  #endif lint
  
  #ifndef MKARGDEBUG

--- 2,8 -----
  
  #ifndef lint
  static char rcsid[]=
! "$Header: fep_util.c,v 4.1 88/08/28 18:57:41 utashiro Exp $ (SRA)";
  #endif lint
  
  #ifndef MKARGDEBUG
***************
*** 341,346
  
      for (len = strlen (from); len >= 0; len--)
  	*(to + len) = *(from + len);
  }
  
  #ifdef KANJI

--- 341,376 -----
  
      for (len = strlen (from); len >= 0; len--)
  	*(to + len) = *(from + len);
+ }
+ 
+ char *search_string (s, lookup)
+     char *s, *lookup;
+ {
+     int len = strlen (lookup);
+     enum {SQUOTE, DQUOTE, NORMAL} status = NORMAL;
+ 
+     while (*s) {
+ 	switch (*s) {
+ 	case '\'':
+ 	    if (status == DQUOTE) break;
+ 	    status = (status == SQUOTE) ? NORMAL : SQUOTE;
+ 	    break;
+ 
+ 	case '\"':
+ 	    if (status == SQUOTE) break;
+ 	    status = (status == DQUOTE) ? NORMAL : DQUOTE;
+ 	    break;
+ 
+ 	case '\\':
+ 	    ++s;
+ 	    break;
+ 	}
+ 	if (!*s) break;
+ 	if (status == NORMAL && strncmp (s, lookup, len) == 0)
+ 	    return s;
+ 	++s;
+     }
+     return ((char*) 0);
  }
  
  #ifdef KANJI
*** /tmp/,RCSt1009179	Sun Aug 28 20:14:03 1988
--- fep_alias.c	Sun Aug 28 18:57:21 1988
***************
*** 2,8
  
  #ifndef lint
  static char rcsid[]=
! "$Header: fep_alias.c,v 4.0 88/08/05 20:22:00 utashiro Rel $ (SRA)";
  #endif lint
  
  #include <stdio.h>

--- 2,8 -----
  
  #ifndef lint
  static char rcsid[]=
! "$Header: fep_alias.c,v 4.1 88/08/28 18:57:17 utashiro Exp $ (SRA)";
  #endif lint
  
  #include <stdio.h>
***************
*** 50,55
  
      if (av = look_alias (argv[0])) {
  	int len = strlen (argv[0]);
  
  	strcpy (aliased_line, av);
  	strcat (aliased_line, comline + len);

--- 50,57 -----
  
      if (av = look_alias (argv[0])) {
  	int len = strlen (argv[0]);
+ 	char *cp;
+ 	CHAR *ap;
  
  	*aliased_line = '\0';
  	ap = aliased_line;
***************
*** 51,58
      if (av = look_alias (argv[0])) {
  	int len = strlen (argv[0]);
  
! 	strcpy (aliased_line, av);
! 	strcat (aliased_line, comline + len);
  	return (aliased_line);
      }
      else

--- 53,103 -----
  	char *cp;
  	CHAR *ap;
  
! 	*aliased_line = '\0';
! 	ap = aliased_line;
! 	cp = av;
! 	for (; *cp; ++cp) {
! 
! 	    if (*cp != '!')
! 		*ap++ = *cp;
! 	    else {
! 		switch (*(cp + 1)) {
! 		case '^':
! 		    if (argc > 1) {
! 			strcpy (ap, argv[1]);
! 			ap += strlen (argv[1]);
! 		    }
! 		    break;
! 
! 		case '$':
! 		    if (argc > 1) {
! 			strcpy (ap, argv[argc-1]);
! 			ap += strlen (argv[argc - 1]);
! 		    }
! 		    break;
! 
! 		case '*':
! 		{
! 		    int j;
! 
! 		    for (j = 1; j < argc; j++) {
! 			strcpy (ap, " ");
! 			strcat (ap, argv[j]);
! 			ap += strlen (argv[j]) + 1;
! 		    }
! 		    break;
! 		}
! 
! 		default:
! 		    *ap = *cp;
! 		    *++ap = *(cp + 1);
! 		    break;
! 		}
! 		cp++;
! 	    }
! 	}
! 	*ap = '\0';
! 		    
  	return (aliased_line);
      }
      else
***************
*** 142,148
  {
      ALIAS *vp, *last = (ALIAS *)0;
  
!     for (vp = alias_list->al_next, last = alias_list; vp; last = vp, vp = vp->al_next) {
  	int r;
  
  	r = strcmp (name, vp->al_name);

--- 187,194 -----
  {
      ALIAS *vp, *last = (ALIAS *)0;
  
!     for (vp = alias_list->al_next, last = alias_list;
! 	 vp; last = vp, vp = vp->al_next) {
  	int r;
  
  	r = strcmp (name, vp->al_name);
*** /tmp/,RCSt1009189	Sun Aug 28 20:14:07 1988
--- fep_hist.c	Sun Aug 28 19:15:10 1988
***************
*** 2,8
  
  #ifndef lint
  static char rcsid[]=
! "$Header: fep_hist.c,v 4.1 88/08/08 19:24:14 utashiro Exp $ (SRA)";
  #endif lint
  
  #include <stdio.h>

--- 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>
***************
*** 57,62
  {
      char *allocAndCopyThere();
      char *prev;
  
      if (HistorySize <= 0)
  	return;

--- 57,63 -----
  {
      char *allocAndCopyThere();
      char *prev;
+     int slen;
  
      if (HistorySize <= 0)
  	return;
***************
*** 64,70
      CurrentHist = TailOfHist;
      prev = getYoungestHistory ();
      if (look_var ("ignore-same-line") && prev && !strcmp (string, prev))
! 	    return;
  
      if (TailOfHist-HistorySize >= TopOfHist) {
  	if (HistoryTable[TopOfHist % HistorySize])

--- 65,73 -----
      CurrentHist = TailOfHist;
      prev = getYoungestHistory ();
      if (look_var ("ignore-same-line") && prev && !strcmp (string, prev))
! 	return;
!     if ((slen = lookd_var ("ignore-short-line"))>0 && strlen (string) <= slen)
! 	return;
  
      if (TailOfHist-HistorySize >= TopOfHist) {
  	if (HistoryTable[TopOfHist % HistorySize])
*** /tmp/,RCSt1009199	Sun Aug 28 20:14:13 1988
--- fep_com.c	Sun Aug 28 18:57:30 1988
***************
*** 2,8
  
  #ifndef lint
  static char rcsid[]=
! "$Header: fep_com.c,v 4.4 88/08/23 01:28:55 utashiro Exp $ (SRA)";
  #endif lint
  
  #include <stdio.h>

--- 2,8 -----
  
  #ifndef lint
  static char rcsid[]=
! "$Header: fep_com.c,v 4.6 88/08/28 18:57:22 utashiro Exp $ (SRA)";
  #endif lint
  
  #include <stdio.h>
***************
*** 27,34
  /*
   * Check command line if it call built-in function or not and execute it
   */
! executeBuiltInFunction (line)
!     char *line;
  {
      register FunctionTableEnt *ftp;
      int argc;

--- 27,34 -----
  /*
   * Check command line if it call built-in function or not and execute it
   */
! executeBuiltInFunction (comline, more)
!     char *comline, **more;
  {
      register FunctionTableEnt *ftp;
      char linebuf[MAXCOMLEN], *line;
***************
*** 31,36
      char *line;
  {
      register FunctionTableEnt *ftp;
      int argc;
  
      /*

--- 31,38 -----
      char *comline, **more;
  {
      register FunctionTableEnt *ftp;
+     char linebuf[MAXCOMLEN], *line;
+     char *search_string();
      int argc;
  
      /*
***************
*** 36,43
      /*
       * Skip white space.
       */
!     while (isspace (*line))
! 	line++;
      /*
       * Skip comment and blank line
       */

--- 38,59 -----
      /*
       * Skip white space.
       */
!     while (isspace (*comline))
! 	comline++;
! 
!     line = linebuf;
!     strcpy (line, comline);
! 
!     if (more) {
! 	if (*more = search_string (comline, ";;")) {
! 	    *(line + (*more - comline)) = '\0';
! 	    *more += 2;
! 	}
! 	else {
! 	    *more = (char*) 0;
! 	}
!     }
! 
      /*
       * Skip comment and blank line
       */
***************
*** 333,338
  }
  
  extern	int Transparency;
  extern	struct sgttyb slave_ttymode;
  extern	struct sgttyb master_ttymode;
  extern	int master, slave;

--- 349,355 -----
  }
  
  extern	int Transparency;
+ extern	int Through;
  extern	struct sgttyb slave_ttymode;
  extern	struct sgttyb master_ttymode;
  extern	int master, slave;
***************
*** 345,351
   * But this Transparency is set automaticaly by getcharacter() routine,
   * if the variable auto-tty-fix is ON.
   */
! toggle_transparency()
  {
      int r;
      int slave_fd;

--- 362,368 -----
   * But this Transparency is set automaticaly by getcharacter() routine,
   * if the variable auto-tty-fix is ON.
   */
! toggle_through()
  {
      int r;
      int slave_fd;
***************
*** 351,357
      int slave_fd;
      struct sgttyb s;
  
!     if (Transparency == OFF) {
  
  	slave_fd = open (slave_tty, O_WRONLY);
  	if (slave_fd < 0) {

--- 368,374 -----
      int slave_fd;
      struct sgttyb s;
  
!     if (Through == OFF) {
  
  	slave_fd = open (slave_tty, O_WRONLY);
  	if (slave_fd < 0) {
***************
*** 382,388
  	return;
      }
  
!     Transparency = !Transparency;
  }
  
  /*

--- 399,405 -----
  	return;
      }
  
!     Through = !Through;
  }
  
  /*
***************
*** 393,398
      int r;
      struct sgttyb s;
  
      if (slave < 0)
  	return;
  

--- 410,418 -----
      int r;
      struct sgttyb s;
  
+     if (Through)
+ 	return;
+ 
      if (slave < 0)
  	return;
  
***************
*** 711,717
  	perror (argv[1]);
  	return;
      }
-     printf ("Working directory has been changed to \"%s\"\n", argv[1]);
  }
  
  fep_pwd (line)

--- 731,736 -----
  	perror (argv[1]);
  	return;
      }
  }
  
  fep_pwd (line)
***************
*** 851,857
  
      while (fgets (line, 256, fp)) {
  	i++;
! 	if (executeBuiltInFunction (line) == NOT_PROCESSED) {
  	    char *cp = line;
  
  	    while (isspace (*cp))

--- 870,876 -----
  
      while (fgets (line, 256, fp)) {
  	i++;
! 	if (executeBuiltInFunction (line, 0) == NOT_PROCESSED) {
  	    char *cp = line;
  
  	    while (isspace (*cp))
***************
*** 858,864
  		cp++;
  	    strcpy (line2, "fep-");
  	    strcat (line2, cp);
! 	    if (executeBuiltInFunction (line2) == NOT_PROCESSED) {
  		printf ("\"%s\", line %d: cannot be executed\n", file, i);
  		printf (">>> %s", line);
  	    }

--- 877,883 -----
  		cp++;
  	    strcpy (line2, "fep-");
  	    strcat (line2, cp);
! 	    if (executeBuiltInFunction (line2, 0) == NOT_PROCESSED) {
  		printf ("\"%s\", line %d: cannot be executed\n", file, i);
  		printf (">>> %s", line);
  	    }
*** /tmp/,RCSt1009209	Sun Aug 28 20:14:24 1988
--- fep_edit.c	Sun Aug 28 18:57:40 1988
***************
*** 2,8
  
  #ifndef lint
  static char rcsid[]=
! "$Header: fep_edit.c,v 4.2 88/08/16 18:23:46 utashiro Exp $ (SRA)";
  #endif lint
  
  #include <stdio.h>

--- 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>
***************
*** 29,34
  int	NeedNewLine;			/* add new line flag */
  int	NeedSave;			/* need to save to history */
  int	Transparency = OFF;		/* transparent flag */
  int	eof_occured = 0;		/* eof has been occured */
  jmp_buf	jbuf;				/* jump buffer */
  

--- 29,35 -----
  int	NeedNewLine;			/* add new line flag */
  int	NeedSave;			/* need to save to history */
  int	Transparency = OFF;		/* transparent flag */
+ int	Through = OFF;			/* through flag */
  int	eof_occured = 0;		/* eof has been occured */
  jmp_buf	jbuf;				/* jump buffer */
  
***************
*** 54,60
  	/* ^P		*/	{"\\^P",	previous_history},
  	/* ^T		*/	{"\\^T",	previous_history},
  	/* ^Y		*/	{"\\^Y",	yank_from_kill_buffer},
! 	/* ^^		*/	{"\\^^",	toggle_transparency},
  	/* esc-b	*/	{"\\^[b",	backward_word},
  	/* esc-B	*/	{"\\^[B",	backward_Word},
  	/* esc-d	*/	{"\\^[d",	delete_next_word},

--- 55,61 -----
  	/* ^P		*/	{"\\^P",	previous_history},
  	/* ^T		*/	{"\\^T",	previous_history},
  	/* ^Y		*/	{"\\^Y",	yank_from_kill_buffer},
! 	/* ^^		*/	{"\\^^",	toggle_through},
  	/* esc-b	*/	{"\\^[b",	backward_word},
  	/* esc-B	*/	{"\\^[B",	backward_Word},
  	/* esc-d	*/	{"\\^[d",	delete_next_word},
***************
*** 66,72
  	/* esc-l	*/	{"\\^[l",	list_file_name},
  	/* esc-L	*/	{"\\^[L",	list_file_name},
      	/* esc-esc	*/	{"\\^[\\^[",	expand_file_name},
! 	/* esc-"-"	*/	{"\\^[-",	toggle_transparency},
  	/* esc-_	*/	{"\\^[_",	invoke_shell},
  	/* esc-<	*/	{"\\^[<",	search_reverse},
  	/* esc->	*/	{"\\^[>",	search_forward},

--- 67,73 -----
  	/* esc-l	*/	{"\\^[l",	list_file_name},
  	/* esc-L	*/	{"\\^[L",	list_file_name},
      	/* esc-esc	*/	{"\\^[\\^[",	expand_file_name},
! 	/* esc-"-"	*/	{"\\^[-",	toggle_through},
  	/* esc-_	*/	{"\\^[_",	invoke_shell},
  	/* esc-<	*/	{"\\^[<",	search_reverse},
  	/* esc->	*/	{"\\^[>",	search_forward},
***************
*** 217,222
  {
      int c;
      CHAR *execute_command, *check_alias();
  
      (void) strcpy (CommandLine, "");
      CurrentPosition = 0;

--- 218,225 -----
  {
      int c;
      CHAR *execute_command, *check_alias();
+     char *remained;
+     int processed;
  
      (void) strcpy (CommandLine, "");
      CurrentPosition = 0;
***************
*** 227,232
      NeedNewLine = 0;
      NeedSave = 0;
      editstatus = EDITING;
      setjmp (jbuf);
  
      /*

--- 230,236 -----
      NeedNewLine = 0;
      NeedSave = 0;
      editstatus = EDITING;
+     processed = 0;
      setjmp (jbuf);
  
      /*
***************
*** 265,272
  	/*
  	 * In transparet mode
  	 */
! 	if (Transparency == ON) {
! 	    if (*curFuncTab[(int) c] == toggle_transparency ||
  	        *curFuncTab[(int) c] == fix_transparency) {
  		(*curFuncTab[(int) c])();
  		goto RETRY;

--- 269,276 -----
  	/*
  	 * In transparet mode
  	 */
! 	if (Through == ON || Transparency == ON) {
! 	    if (*curFuncTab[(int) c] == toggle_through ||
  	        *curFuncTab[(int) c] == fix_transparency) {
  		(*curFuncTab[(int) c])();
  		goto RETRY;
***************
*** 309,314
      }
      editstatus = NOTEDITING;
  
      /*
       * Check command line refer history or not
       */

--- 313,320 -----
      }
      editstatus = NOTEDITING;
  
+  REPROCESS:
+ 
      /*
       * Check command line refer history or not
       */
***************
*** 318,324
      /*
       * Check alias list
       */
!     if (!look_var ("noalias")
  	&& (execute_command = check_alias (CommandLine))
      ) {
  	if (look_var ("verbose"))

--- 324,330 -----
      /*
       * Check alias list
       */
!     if (!processed && !look_var ("noalias")
  	&& (execute_command = check_alias (CommandLine))
      ) {
  	if (look_var ("verbose"))
***************
*** 331,338
      /*
       * Check builtin function, and execute it.
       */
!     if (executeBuiltInFunction (execute_command) == PROCESSED) {
! 	addHistory (CommandLine);
  	CommandLine[0] = '\0';
  	CurrentPosition = 0;
  	if (!redirect_fp)

--- 337,345 -----
      /*
       * Check builtin function, and execute it.
       */
!     if (executeBuiltInFunction (execute_command, &remained) == PROCESSED) {
! 	if (!processed)
! 	    addHistory (CommandLine);
  	CommandLine[0] = '\0';
  	CurrentPosition = 0;
  	if (remained && *remained) {
***************
*** 335,340
  	addHistory (CommandLine);
  	CommandLine[0] = '\0';
  	CurrentPosition = 0;
  	if (!redirect_fp)
  	    fputs (prompt, stdout);
  	goto RETRY;

--- 342,352 -----
  	    addHistory (CommandLine);
  	CommandLine[0] = '\0';
  	CurrentPosition = 0;
+ 	if (remained && *remained) {
+ 	    strcpy (CommandLine, remained);
+ 	    processed = 1;
+ 	    goto REPROCESS;
+ 	}
  	if (!redirect_fp)
  	    fputs (prompt, stdout);
  	goto RETRY;
***************
*** 342,348
  
      if (NeedSave) {
  	if (!is_empty_line (CommandLine) || !look_var ("ignore-empty-line"))
! 	    addHistory (CommandLine);
  	/*
  	 * put string to buffer
  	 */

--- 354,361 -----
  
      if (NeedSave) {
  	if (!is_empty_line (CommandLine) || !look_var ("ignore-empty-line"))
! 	    if (!processed)
! 		addHistory (CommandLine);
  	/*
  	 * put string to buffer
  	 */
*** /tmp/,RCSt1009223	Sun Aug 28 20:14:33 1988
--- fep_glob.h	Sun Aug 28 14:36:43 1988
***************
*** 2,8
  
  #ifndef lint
  # define FEP_GLOB \
!     "$Header: fep_glob.h,v 4.0 88/08/05 20:21:55 utashiro Rel $ (SRA)"
  #endif lint
  
  extern FUNC	*curFuncTab;	/* function table */

--- 2,8 -----
  
  #ifndef lint
  # define FEP_GLOB \
!     "$Header: fep_glob.h,v 4.1 88/08/28 14:36:41 utashiro Exp $ (SRA)"
  #endif lint
  
  extern FUNC	*curFuncTab;	/* function table */
***************
*** 18,23
  extern int	auto_tty_fix;	/* fix tty mode automatically */
  extern int	tty_fix_bell;	/* ring bell when tty mode is changed */
  extern int	Transparency;	/* transparent flag */
  extern EDITSTATUS   editstatus;	/* edit status */
  extern BUFFER	*output_buffer;	/* output buffer */
  

--- 18,24 -----
  extern int	auto_tty_fix;	/* fix tty mode automatically */
  extern int	tty_fix_bell;	/* ring bell when tty mode is changed */
  extern int	Transparency;	/* transparent flag */
+ extern int	Through;	/* through flag */
  extern EDITSTATUS   editstatus;	/* edit status */
  extern BUFFER	*output_buffer;	/* output buffer */
  
*** /tmp/,RCSt1009233	Sun Aug 28 20:14:37 1988
--- fep_funcs.h	Sun Aug 28 14:36:40 1988
***************
*** 2,8
  
  #ifndef lint
  # define FEP_FUNCS \
!     "$Header: fep_funcs.h,v 4.2 88/08/16 18:24:03 utashiro Exp $ (SRA)"
  #endif lint
  
  /*

--- 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
  
  /*
***************
*** 48,54
  int	send_eof();
  int	show_bindings();
  int	show_history();
! int	toggle_transparency();
  int	fix_transparency();
  int	yank_from_kill_buffer();
  int	invoke_shell();

--- 48,54 -----
  int	send_eof();
  int	show_bindings();
  int	show_history();
! int	toggle_through();
  int	fix_transparency();
  int	yank_from_kill_buffer();
  int	invoke_shell();
*** /tmp/,RCSt1009247	Sun Aug 28 20:14:42 1988
--- fep_main.c	Sun Aug 28 14:36:53 1988
***************
*** 2,8
  
  #ifndef lint
  static char rcsid[]=
! "$Header: fep_main.c,v 4.2 88/08/16 18:22:25 utashiro Exp $ (SRA)";
  #endif lint
  
  #include <stdio.h>

--- 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>
***************
*** 320,326
  	/*
  	 * Write to script file.
  	 */
! 	if (Transparency == OFF && script_fp)
  	    fwrite (inputline, sizeof(CHAR), strlen (inputline), script_fp);
      }
      terminate ();

--- 320,326 -----
  	/*
  	 * Write to script file.
  	 */
! 	if (Through == OFF && Transparency == OFF && script_fp)
  	    fwrite (inputline, sizeof(CHAR), strlen (inputline), script_fp);
      }
      terminate ();
***************
*** 443,449
  	 * if character remained in FILE buffer, control goes to RETURNCHAR
  	 * label.
  	 */
!     	if (auto_tty_fix)
  	    (void) fix_transparency ();
  #endif
  

--- 443,449 -----
  	 * if character remained in FILE buffer, control goes to RETURNCHAR
  	 * label.
  	 */
!     	if (Through == OFF && auto_tty_fix)
  	    (void) fix_transparency ();
  #endif
  
*** /tmp/,RCSt1009257	Sun Aug 28 20:14:47 1988
--- Makefile	Sun Aug 28 18:56:23 1988
***************
*** 1,7
  #
  # Copyright (c) 1987, 1988 by Software Research Associates, Inc.
  #
! # $Header: Makefile,v 4.1 88/08/08 19:22:26 utashiro Exp $
  #
  # Options:
  #	KANJI:	SHIFT-JIS kanji code handling on ASCII KANJI UNIX

--- 1,7 -----
  #
  # Copyright (c) 1987, 1988 by Software Research Associates, Inc.
  #
! # $Header: Makefile,v 4.2 88/08/28 18:56:16 utashiro Exp $
  #
  # Options:
  #	KANJI:	SHIFT-JIS kanji code handling on ASCII KANJI UNIX
***************
*** 38,43
  install: $(TARGET)
  	install -s $(TARGET) $(INSTDIR)
  	install -c fep.1 /usr/man/manl/fep.l
  
  README.jis: README
  	jcat -IJ README > $@

--- 38,47 -----
  install: $(TARGET)
  	install -s $(TARGET) $(INSTDIR)
  	install -c fep.1 /usr/man/manl/fep.l
+ 
+ fep.1: fep.jman
+ 	sed -e '/^\.EG/d' -e '/^\.JP/,/^\.EJ/d' -e '/^\.\\"KS/,/^\.\\"KE/d' \
+ 	-e '/^\.\\"K/d' fep.jman > $@
  
  README.jis: README
  	jcat -IJ README > $@
*** /tmp/,RCSt1009267	Sun Aug 28 20:14:51 1988
--- fep.1	Sun Aug 28 19:14:58 1988
***************
*** 1,5
  .\" Copyright (c) 1987, 1988 by Software Research Associates, Inc.
! .\" $Header: fep.1,v 4.2 88/08/16 18:22:50 utashiro Exp $
  .TH FEP 1L "5 Aug 1988" "SRA Distribution"
  .SH NAME
  fep \(em general purpose front end processor

--- 1,6 -----
  .\" Copyright (c) 1987, 1988 by Software Research Associates, Inc.
! .\" $Header: fep.1,v 4.4 88/08/28 19:14:44 utashiro Exp $
! .\"----------------------------------------
  .TH FEP 1L "5 Aug 1988" "SRA Distribution"
  .SH NAME
  fep \(em general purpose front end processor
***************
*** 145,150
  The second form prints the alias for \fIname\fP.
  The last form set the alias for \fIname\fP to \fIstring\fP.
  .PP
  If you use
  .I fep
  without \fIauto-tty-fix\fP, following alias could be usefull.

--- 146,165 -----
  The second form prints the alias for \fIname\fP.
  The last form set the alias for \fIname\fP to \fIstring\fP.
  .PP
+ You can refer arguments in command line by !^, !$, !*; they stand for
+ first, last, all arguments correspondingly.
+ .PP
+ To specify multiple commands in one alias, command should be separated
+ by ``;;'' string.  For example, next description will allow you to
+ execute \fIfep-cd\fP then pass cd command to shell when input ``cd''
+ command.
+ .if t .sp .3v
+ .if n .sp 1
+ \h'\w'MMMMM'u'fep-alias\ cd\ 'fep-cd !$;; cd !$'
+ .if t .sp .3v
+ .if n .sp 1
+ Note: \fIFep\fP built-in functions must be defined before normal commands.
+ .PP
  If you use
  .I fep
  without \fIauto-tty-fix\fP, following alias could be usefull.
***************
*** 214,229
  Kill the sub-process and exit.
  .PP
  .IP \fBfep-suspend\fP
! Suspend
! .I fep
! itself.
! In the unlikely possibility that
! .I fep
! falls into a dead-lock in which
! the sub-processes have stopped but
! .I fep
! is still running,
! use one of these commands to escape from the situation.
  .PP
  .nf
  \fBfep-read-from-file\fP \fIfile\fP

--- 229,238 -----
  Kill the sub-process and exit.
  .PP
  .IP \fBfep-suspend\fP
! Suspend \fIfep\fP itself.  In the unlikely possibility that \fIfep\fP
! falls into a dead-lock in which the sub-processes have stopped but
! \fIfep\fP is still running, use this command to escape from
! the situation.
  .PP
  .nf
  \fBfep-read-from-file\fP \fIfile\fP
***************
*** 281,287
  Only four control structures are supported but that seems enough.
  .I Expression
  allows only the two operators "==" and "!=".
- .ce 0
  Variables can be referenced by prefixing with the "$" character.
  .RE
  .RE

--- 290,295 -----
  Only four control structures are supported but that seems enough.
  .I Expression
  allows only the two operators "==" and "!=".
  Variables can be referenced by prefixing with the "$" character.
  .RE
  .RE
***************
*** 392,397
  .IP "\fBignore-same-line\fP	default: on"
  If this variable is set,
  command lines identical to the previous command line
  are not saved to the history file.
  .\"@@@@@
  .IP "\fBnoalias\fP	default: off"

--- 400,410 -----
  .IP "\fBignore-same-line\fP	default: on"
  If this variable is set,
  command lines identical to the previous command line
+ are not saved to the history file.
+ .\"@@@@@
+ .IP "\fBignore-same-line\fP	default: on"
+ If this variable is set,
+ command lines which is shorter than this value
  are not saved to the history file.
  .\"@@@@@
  .IP "\fBnoalias\fP	default: off"
*** /tmp/,RCSt1009295	Sun Aug 28 20:15:10 1988
--- feprc.sample	Sun Aug 28 20:12:54 1988
***************
*** 1,4
  #
  # This is a sample .feprc file.
  #
  

--- 1,5 -----
  #
+ # $Header: feprc.sample,v 4.2 88/08/28 20:12:48 utashiro Exp $
  # This is a sample .feprc file.
  #
  
***************
*** 18,23
  	set delimiters=" 	\"';&<>()|^%"
  	set auto-repaint
  	set clear-repaint
  
  	if $editmode == vi
  		fep-bind list-file-name "\^D"

--- 19,26 -----
  	set delimiters=" 	\"';&<>()|^%"
  	set auto-repaint
  	set clear-repaint
+ 	alias cd 'fep-cd !$;;cd !$'
+ 	alias chdir 'fep-cd !$;;cd !$'
  
  	if $editmode == vi
  		fep-bind list-file-name "\^D"



More information about the Comp.sources.bugs mailing list