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

Diff for /src/usr.bin/mg/dired.c between version 1.13 and 1.14

version 1.13, 2003/08/16 00:24:51 version 1.14, 2004/07/22 01:25:24
Line 115 
Line 115 
 dired(int f, int n)  dired(int f, int n)
 {  {
         static int inited = 0;          static int inited = 0;
         char    dirname[NFILEN];          char    dirname[NFILEN], *bufp;
         BUFFER *bp;          BUFFER *bp;
   
         if (inited == 0) {          if (inited == 0) {
Line 124 
Line 124 
         }          }
   
         dirname[0] = '\0';          dirname[0] = '\0';
         if (eread("Dired: ", dirname, NFILEN, EFNEW | EFCR) == ABORT)          if ((bufp = eread("Dired: ", dirname, NFILEN, EFNEW | EFCR)) == NULL)
                 return ABORT;                  return ABORT;
         if ((bp = dired_(dirname)) == NULL)          if ((bp = dired_(bufp)) == NULL)
                 return FALSE;                  return FALSE;
         bp->b_modes[0] = name_mode("fundamental");          bp->b_modes[0] = name_mode("fundamental");
         bp->b_modes[1] = name_mode("dired");          bp->b_modes[1] = name_mode("dired");
Line 139 
Line 139 
 int  int
 d_otherwindow(int f, int n)  d_otherwindow(int f, int n)
 {  {
         char    dirname[NFILEN];          char    dirname[NFILEN], *bufp;
         BUFFER  *bp;          BUFFER  *bp;
         MGWIN   *wp;          MGWIN   *wp;
   
         dirname[0] = '\0';          dirname[0] = '\0';
         if (eread("Dired other window: ", dirname, NFILEN, EFNEW | EFCR)          if ((bufp = eread("Dired other window: ", dirname, NFILEN,
             == ABORT)              EFNEW | EFCR)) == NULL)
                 return ABORT;                  return ABORT;
         if ((bp = dired_(dirname)) == NULL)          if ((bp = dired_(bufp)) == NULL)
                 return FALSE;                  return FALSE;
         if ((wp = popbuf(bp)) == NULL)          if ((wp = popbuf(bp)) == NULL)
                 return FALSE;                  return FALSE;
Line 294 
Line 294 
 int  int
 d_copy(int f, int n)  d_copy(int f, int n)
 {  {
         char    frname[NFILEN], toname[NFILEN];          char    frname[NFILEN], toname[NFILEN], *bufp;
         int     stat, off;          int     stat;
           int     off;
         BUFFER *bp;          BUFFER *bp;
   
         if (d_makename(curwp->w_dotp, frname, sizeof frname) != FALSE) {          if (d_makename(curwp->w_dotp, frname, sizeof frname) != FALSE) {
Line 307 
Line 308 
                 ewprintf("too long directory name");                  ewprintf("too long directory name");
                 return (FALSE);                  return (FALSE);
         }          }
         if ((stat = eread("Copy %s to: ", toname + off, sizeof toname - off,          if ((bufp = eread("Copy %s to: ", toname + off, sizeof toname - off,
             EFNEW | EFCR, basename(frname))) != TRUE)              EFNEW | EFCR, basename(frname))) == NULL)
                 return (stat);                  return ABORT;
           else if (bufp[0] == '\0')
                   return NULL;
         stat = (copy(frname, toname) >= 0) ? TRUE : FALSE;          stat = (copy(frname, toname) >= 0) ? TRUE : FALSE;
         if (stat != TRUE)          if (stat != TRUE)
                 return (stat);                  return (stat);
Line 321 
Line 324 
 int  int
 d_rename(int f, int n)  d_rename(int f, int n)
 {  {
         char    frname[NFILEN], toname[NFILEN];          char    frname[NFILEN], toname[NFILEN], *bufp;
         int     stat, off;          int     stat, off;
         BUFFER *bp;          BUFFER *bp;
   
Line 334 
Line 337 
                 ewprintf("too long directory name");                  ewprintf("too long directory name");
                 return (FALSE);                  return (FALSE);
         }          }
         if ((stat = eread("Rename %s to: ", toname + off,          if ((bufp = eread("Rename %s to: ", toname + off,
             sizeof toname - off, EFNEW | EFCR, basename(frname))) != TRUE)              sizeof toname - off, EFNEW | EFCR, basename(frname))) == NULL)
                 return stat;                  return ABORT;
           else if (bufp[0] == '\0')
                   return FALSE;
         stat = (rename(frname, toname) >= 0) ? TRUE : FALSE;          stat = (rename(frname, toname) >= 0) ? TRUE : FALSE;
         if (stat != TRUE)          if (stat != TRUE)
                 return (stat);                  return (stat);
Line 361 
Line 366 
 int  int
 d_shell_command(int f, int n)  d_shell_command(int f, int n)
 {  {
         char command[512], fname[MAXPATHLEN], buf[BUFSIZ], *cp;          char command[512], fname[MAXPATHLEN], buf[BUFSIZ], *bufp, *cp;
         int infd, fds[2];          int infd, fds[2];
         pid_t pid;          pid_t pid;
         struct sigaction olda, newa;          struct sigaction olda, newa;
Line 379 
Line 384 
         }          }
   
         command[0] = '\0';          command[0] = '\0';
         if (eread("! on %s: ", command, sizeof command, 0,          if ((bufp = eread("! on %s: ", command, sizeof command, 0,
             basename(fname)) == ABORT)              basename(fname))) == NULL)
                 return (ABORT);                  return (ABORT);
         infd = open(fname, O_RDONLY);          infd = open(fname, O_RDONLY);
         if (infd == -1) {          if (infd == -1) {
Line 411 
Line 416 
                 dup2(infd, STDIN_FILENO);                  dup2(infd, STDIN_FILENO);
                 dup2(fds[1], STDOUT_FILENO);                  dup2(fds[1], STDOUT_FILENO);
                 dup2(fds[1], STDERR_FILENO);                  dup2(fds[1], STDERR_FILENO);
                 execl("/bin/sh", "sh", "-c", command, (char *)NULL);                  execl("/bin/sh", "sh", "-c", bufp, (char *)NULL);
                 exit(1);                  exit(1);
         default:          default:
                 close(infd);                  close(infd);
Line 448 
Line 453 
 int  int
 d_create_directory(int f, int n)  d_create_directory(int f, int n)
 {  {
         char tocreate[MAXPATHLEN], off;          char tocreate[MAXPATHLEN], *bufp;
         int stat;          ssize_t off;
         BUFFER *bp;          BUFFER *bp;
   
         off = strlcpy(tocreate, curbp->b_fname, sizeof tocreate);          off = strlcpy(tocreate, curbp->b_fname, sizeof tocreate);
         if (off >= sizeof tocreate - 1)          if (off >= sizeof tocreate - 1)
                 return (FALSE);                  return (FALSE);
         if ((stat = ereply("Create directory: ", tocreate + off,          if ((bufp = ereply("Create directory: ", tocreate + off,
             sizeof tocreate - off))              sizeof tocreate - off)) == NULL)
             != TRUE)                  return (ABORT);
                 return (stat);          else if (bufp[0] == '\0')
                   return FALSE;
         if (mkdir(tocreate, 0755) == -1) {          if (mkdir(tocreate, 0755) == -1) {
                 ewprintf("Creating directory: %s, %s", strerror(errno),                  ewprintf("Creating directory: %s, %s", strerror(errno),
                     tocreate);                      tocreate);

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.14