[BACK]Return to cmd-save-buffer.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/cmd-save-buffer.c between version 1.6 and 1.7

version 1.6, 2009/11/13 19:53:29 version 1.7, 2010/06/28 22:10:42
Line 48 
Line 48 
         struct session          *s;          struct session          *s;
         struct paste_buffer     *pb;          struct paste_buffer     *pb;
         mode_t                  mask;          mode_t                  mask;
         FILE                    *f;          FILE                    *f, *close_f;
   
         if ((s = cmd_find_session(ctx, data->target)) == NULL)          if ((s = cmd_find_session(ctx, data->target)) == NULL)
                 return (-1);                  return (-1);
Line 65 
Line 65 
                 }                  }
         }          }
   
         mask = umask(S_IRWXG | S_IRWXO);          if (strcmp(data->arg, "-") == 0) {
         if (cmd_check_flag(data->chflags, 'a'))                  if (ctx->cmdclient == NULL) {
                 f = fopen(data->arg, "ab");                          ctx->error(ctx, "%s: can't write to stdout", data->arg);
         else                          return (-1);
                 f = fopen(data->arg, "wb");                  }
         umask(mask);                  f = ctx->cmdclient->stdout_file;
         if (f == NULL) {                  close_f = NULL;
                 ctx->error(ctx, "%s: %s", data->arg, strerror(errno));          } else {
                 return (-1);                  mask = umask(S_IRWXG | S_IRWXO);
                   if (cmd_check_flag(data->chflags, 'a'))
                           f = fopen(data->arg, "ab");
                   else
                           f = fopen(data->arg, "wb");
                   umask(mask);
                   if (f == NULL) {
                           ctx->error(ctx, "%s: %s", data->arg, strerror(errno));
                           return (-1);
                   }
                   close_f = f;
         }          }
   
         if (fwrite(pb->data, 1, pb->size, f) != pb->size) {          if (fwrite(pb->data, 1, pb->size, f) != pb->size) {
Line 82 
Line 92 
                 return (-1);                  return (-1);
         }          }
   
         fclose(f);          if (close_f != NULL)
                   fclose(close_f);
   
         return (0);          return (0);
 }  }

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7