Diff for /embedaddon/sudo/common/term.c between versions 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2012/02/21 16:23:02 version 1.1.1.2, 2012/05/29 12:26:49
Line 39 Line 39
 #include <termios.h>  #include <termios.h>
   
 #include "missing.h"  #include "missing.h"
   #include "sudo_debug.h"
   
 #ifndef TCSASOFT  #ifndef TCSASOFT
 # define TCSASOFT       0  # define TCSASOFT       0
Line 69  int term_kill; Line 70  int term_kill;
 int  int
 term_restore(int fd, int flush)  term_restore(int fd, int flush)
 {  {
       debug_decl(term_restore, SUDO_DEBUG_UTIL)
   
     if (changed) {      if (changed) {
         int flags = TCSASOFT;          int flags = TCSASOFT;
         flags |= flush ? TCSAFLUSH : TCSADRAIN;          flags |= flush ? TCSAFLUSH : TCSADRAIN;
         if (tcsetattr(fd, flags, &oterm) != 0)          if (tcsetattr(fd, flags, &oterm) != 0)
            return 0;            debug_return_int(0);
         changed = 0;          changed = 0;
     }      }
    return 1;    debug_return_int(1);
 }  }
   
 int  int
 term_noecho(int fd)  term_noecho(int fd)
 {  {
       debug_decl(term_noecho, SUDO_DEBUG_UTIL)
   
     if (!changed && tcgetattr(fd, &oterm) != 0)      if (!changed && tcgetattr(fd, &oterm) != 0)
        return 0;        debug_return_int(0);
     (void) memcpy(&term, &oterm, sizeof(term));      (void) memcpy(&term, &oterm, sizeof(term));
     CLR(term.c_lflag, ECHO|ECHONL);      CLR(term.c_lflag, ECHO|ECHONL);
 #ifdef VSTATUS  #ifdef VSTATUS
Line 91  term_noecho(int fd) Line 96  term_noecho(int fd)
 #endif  #endif
     if (tcsetattr(fd, TCSADRAIN|TCSASOFT, &term) == 0) {      if (tcsetattr(fd, TCSADRAIN|TCSASOFT, &term) == 0) {
         changed = 1;          changed = 1;
        return 1;        debug_return_int(1);
     }      }
    return 0;    debug_return_int(0);
 }  }
   
 int  int
 term_raw(int fd, int isig)  term_raw(int fd, int isig)
 {  {
     struct termios term;      struct termios term;
       debug_decl(term_raw, SUDO_DEBUG_UTIL)
   
     if (!changed && tcgetattr(fd, &oterm) != 0)      if (!changed && tcgetattr(fd, &oterm) != 0)
         return 0;          return 0;
Line 114  term_raw(int fd, int isig) Line 120  term_raw(int fd, int isig)
         SET(term.c_lflag, ISIG);          SET(term.c_lflag, ISIG);
     if (tcsetattr(fd, TCSADRAIN|TCSASOFT, &term) == 0) {      if (tcsetattr(fd, TCSADRAIN|TCSASOFT, &term) == 0) {
         changed = 1;          changed = 1;
        return 1;        debug_return_int(1);
     }      }
    return 0;    debug_return_int(0);
 }  }
   
 int  int
 term_cbreak(int fd)  term_cbreak(int fd)
 {  {
       debug_decl(term_cbreak, SUDO_DEBUG_UTIL)
   
     if (!changed && tcgetattr(fd, &oterm) != 0)      if (!changed && tcgetattr(fd, &oterm) != 0)
         return 0;          return 0;
     (void) memcpy(&term, &oterm, sizeof(term));      (void) memcpy(&term, &oterm, sizeof(term));
Line 137  term_cbreak(int fd) Line 145  term_cbreak(int fd)
         term_erase = term.c_cc[VERASE];          term_erase = term.c_cc[VERASE];
         term_kill = term.c_cc[VKILL];          term_kill = term.c_cc[VKILL];
         changed = 1;          changed = 1;
        return 1;        debug_return_int(1);
     }      }
    return 0;    debug_return_int(0);
 }  }
   
 int  int
 term_copy(int src, int dst)  term_copy(int src, int dst)
 {  {
     struct termios tt;      struct termios tt;
       debug_decl(term_copy, SUDO_DEBUG_UTIL)
   
     if (tcgetattr(src, &tt) != 0)      if (tcgetattr(src, &tt) != 0)
        return 0;        debug_return_int(0);
     if (tcsetattr(dst, TCSANOW|TCSASOFT, &tt) != 0)      if (tcsetattr(dst, TCSANOW|TCSASOFT, &tt) != 0)
        return 0;        debug_return_int(0);
    return 1;    debug_return_int(1);
 }  }

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2


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