[BACK]Return to cli.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/Attic/cli.c between version 1.2 and 1.2.2.1

version 1.2, 2000/10/16 09:38:44 version 1.2.2.1, 2001/02/16 20:12:58
Line 2 
Line 2 
 RCSID("$OpenBSD$");  RCSID("$OpenBSD$");
   
 #include "xmalloc.h"  #include "xmalloc.h"
 #include "ssh.h"  #include "log.h"
   #include "cli.h"
   
 #include <vis.h>  #include <vis.h>
   
 static int cli_input = -1;  static int cli_input = -1;
Line 32 
Line 34 
                 cli_input = STDIN_FILENO;                  cli_input = STDIN_FILENO;
                 cli_output = STDERR_FILENO;                  cli_output = STDERR_FILENO;
         } else {          } else {
                 cli_input = cli_output = open("/dev/tty", O_RDWR);                  cli_input = cli_output = open(_PATH_TTY, O_RDWR);
                 if (cli_input < 0)                  if (cli_input < 0)
                         fatal("You have no controlling tty.  Cannot read passphrase.");                          fatal("You have no controlling tty.  Cannot read passphrase.");
         }          }
Line 43 
Line 45 
 }  }
   
 static void  static void
 cli_close()  cli_close(void)
 {  {
         if (!cli_from_stdin && cli_input >= 0)          if (!cli_from_stdin && cli_input >= 0)
                 close(cli_input);                  close(cli_input);
Line 54 
Line 56 
 }  }
   
 void  void
 intrcatch()  intrcatch(int sig)
 {  {
         intr = 1;          intr = 1;
 }  }
   
 static void  static void
 cli_echo_disable()  cli_echo_disable(void)
 {  {
         sigemptyset(&nset);          sigemptyset(&nset);
         sigaddset(&nset, SIGTSTP);          sigaddset(&nset, SIGTSTP);
Line 83 
Line 85 
 }  }
   
 static void  static void
 cli_echo_restore()  cli_echo_restore(void)
 {  {
         if (echo_modified != 0) {          if (echo_modified != 0) {
                 tcsetattr(cli_input, TCSANOW, &otio);                  tcsetattr(cli_input, TCSANOW, &otio);
Line 137 
Line 139 
   
         output = xmalloc(4*size);          output = xmalloc(4*size);
         for (p = output, i = 0; i < size; i++) {          for (p = output, i = 0; i < size; i++) {
                 if (buf[i] == '\n')                  if (buf[i] == '\n' || buf[i] == '\r')
                         *p++ = buf[i];                          *p++ = buf[i];
                 else                  else
                         p = vis(p, buf[i], 0, 0);                          p = vis(p, buf[i], 0, 0);
         }          }
         len = p - output;          len = p - output;
   
         for (pos = 0; pos < len; pos += ret) {          for (pos = 0; pos < len; pos += ret) {
                 ret = write(cli_output, output + pos, len - pos);                  ret = write(cli_output, output + pos, len - pos);
                 if (ret == -1)                  if (ret == -1) {
                           xfree(output);
                         return -1;                          return -1;
                   }
         }          }
           xfree(output);
         return 0;          return 0;
 }  }
   

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