[BACK]Return to fep_main.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / fep

Diff for /OpenXM_contrib2/fep/fep_main.c between version 1.2 and 1.5

version 1.2, 2002/09/09 12:11:51 version 1.5, 2005/01/18 14:20:19
Line 10  static char rcsid[]=
Line 10  static char rcsid[]=
 #include <sys/types.h>  #include <sys/types.h>
 #include <sys/stat.h>  #include <sys/stat.h>
 #include <sys/ioctl.h>  #include <sys/ioctl.h>
   #if defined(sun)
   #include <sys/fcntl.h>
   #include <sys/ttold.h>
   #endif
 #ifdef TERMIOS  #ifdef TERMIOS
 #include <termios.h>  #include <termios.h>
 #if defined(__linux__) || defined(__CYGWIN__)  #if defined(__linux__) || defined(__CYGWIN__)
Line 57  int histlen = -1;   /* history length */
Line 61  int histlen = -1;   /* history length */
 int     debug = OFF;                    /* debug switch */  int     debug = OFF;                    /* debug switch */
 int     auto_tty_fix = ON;              /* fix tty mode automaticaly */  int     auto_tty_fix = ON;              /* fix tty mode automaticaly */
 FILE    *script_fp = NULL;              /* script file pointer */  FILE    *script_fp = NULL;              /* script file pointer */
   #if defined(sun)
   void    catchsig (int);         /* function take care SIGCHILD */
   #else
 void    catchsig __P((int));            /* function take care SIGCHILD */  void    catchsig __P((int));            /* function take care SIGCHILD */
   #endif
   
 #ifdef TERMIOS  #ifdef TERMIOS
 #define ttystruct termios  #define ttystruct termios
Line 72  int lines;    /* terminal line size */
Line 80  int lines;    /* terminal line size */
 int     columns;                        /* terminal coulumn size */  int     columns;                        /* terminal coulumn size */
 char    *term_clear;                    /* terminal clear code */  char    *term_clear;                    /* terminal clear code */
   
   #if defined(sun)
   void    (*sighup)(int), (*sigchld)(int), (*sigtstp)(int);
   #else
 void    (*sighup) __P((int)), (*sigchld) __P((int)), (*sigtstp) __P((int));  void    (*sighup) __P((int)), (*sigchld) __P((int)), (*sigtstp) __P((int));
   #endif
                                         /* function buffer for signal */                                          /* function buffer for signal */
   
 #ifdef TIOCSETN  #ifdef TIOCSETN
Line 245  DEFAULT:
Line 257  DEFAULT:
     commandv = &argv[1];      commandv = &argv[1];
   
     if (! isatty (0)) {      if (! isatty (0)) {
   #if defined(__INTERIX)
           execvp (*commandv, commandv);
   #else
         execvp (*commandv, commandv, 0);          execvp (*commandv, commandv, 0);
   #endif
         perror (*commandv);          perror (*commandv);
         exit (1);          exit (1);
     }      }
Line 296  DEFAULT:
Line 312  DEFAULT:
 fix_signal ()  fix_signal ()
 {  {
 #ifdef SIGWINCH  #ifdef SIGWINCH
   #if defined(sun)
       void sigwinch (int);
   #else
     void sigwinch __P((int));      void sigwinch __P((int));
 #endif  #endif
   #endif
   
     sighup = signal (SIGHUP, terminate);      sighup = signal (SIGHUP, terminate);
     sigchld = signal (SIGCHLD, catchsig);      sigchld = signal (SIGCHLD, catchsig);
Line 657  swallow_output()
Line 677  swallow_output()
 #include <sys/m_wait.h>  #include <sys/m_wait.h>
 #endif  #endif
   
   #if defined(__INTERIX)
   #define wait3(s,opt,rp)   (waitpid((-1),(s),(opt)))
   #endif
   
 void  void
 catchsig(n)  catchsig(n)
     int n;      int n;
Line 686  exec_to_command(argv)
Line 710  exec_to_command(argv)
      */       */
     t = open ("/dev/tty", 2);      t = open ("/dev/tty", 2);
     if (t >= 0) {      if (t >= 0) {
 #ifndef __CYGWIN32__  #if !defined(__CYGWIN32__) && !defined(__INTERIX)
         ioctl (t, TIOCNOTTY, (char *) 0);          ioctl (t, TIOCNOTTY, (char *) 0);
 #endif  #endif
         (void) close (t);          (void) close (t);
Line 705  exec_to_command(argv)
Line 729  exec_to_command(argv)
 #elif defined(TIOCSETN)  #elif defined(TIOCSETN)
     ioctl (0, TIOCSETN, (char *) & slave_ttymode);      ioctl (0, TIOCSETN, (char *) & slave_ttymode);
 #endif  #endif
   #if defined(__INTERIX)
       execvp (*argv, argv);
   #else
     execvp (*argv, argv, 0);      execvp (*argv, argv, 0);
   #endif
     perror (*argv);      perror (*argv);
     exit (1);      exit (1);
 }  }
Line 965  recover_tty()
Line 993  recover_tty()
 suspend()  suspend()
 {  {
     long        pid;      long        pid;
   #if defined(sun)
       void        (*func) (int);
   #else
     void        (*func) __P((int));      void        (*func) __P((int));
   #endif
 #ifndef __CYGWIN32__  #ifndef __CYGWIN32__
     int         omask;      int         omask;
 #endif  #endif
Line 977  suspend()
Line 1009  suspend()
     signal (SIGTSTP, SIG_DFL);      signal (SIGTSTP, SIG_DFL);
     recover_tty();      recover_tty();
 #define mask(s) (1 << ((s)-1))  #define mask(s) (1 << ((s)-1))
 #ifndef __CYGWIN32__  #if !defined(__CYGWIN32__) && !defined(sun)
     omask = sigsetmask (sigblock (0) & ~mask (SIGTSTP));      omask = sigsetmask (sigblock (0) & ~mask (SIGTSTP));
 #endif  #endif
     kill (0, SIGTSTP);      kill (0, SIGTSTP);
Line 990  suspend()
Line 1022  suspend()
     kill (0, SIGCONT);      kill (0, SIGCONT);
     signal (SIGCHLD, func);      signal (SIGCHLD, func);
     signal (SIGTSTP, SIG_IGN);      signal (SIGTSTP, SIG_IGN);
 #ifndef __CYGWIN32__  #if !defined(__CYGWIN32__) && !defined(sun)
     sigblock (mask (SIGTSTP));      sigblock (mask (SIGTSTP));
 #endif  #endif
     fix_tty ();      fix_tty ();
Line 1029  usageAndExit()
Line 1061  usageAndExit()
 /*  /*
  * Propagate window size changes to the slave tty.   * Propagate window size changes to the slave tty.
  */   */
 sigwinch()  void sigwinch(int dummy)
 {  {
 #ifdef TIOCGWINSZ                       /* 4.3BSD */  #ifdef TIOCGWINSZ                       /* 4.3BSD */
     struct winsize win;      struct winsize win;

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.5

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>