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

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

version 1.5, 2009/07/30 17:46:12 version 1.6, 2009/09/07 18:50:45
Line 48 
Line 48 
 {  {
         struct cmd_buffer_data  *data = self->data;          struct cmd_buffer_data  *data = self->data;
         struct session          *s;          struct session          *s;
         struct stat             statbuf;          struct stat              sb;
         FILE                    *f;          FILE                    *f;
         char                    *buf;          u_char                  *buf;
         u_int                   limit;          u_int                    limit;
   
         if ((s = cmd_find_session(ctx, data->target)) == NULL)          if ((s = cmd_find_session(ctx, data->target)) == NULL)
                 return (-1);                  return (-1);
   
         if (stat(data->arg, &statbuf) < 0) {          if (stat(data->arg, &sb) < 0) {
                 ctx->error(ctx, "%s: %s", data->arg, strerror(errno));                  ctx->error(ctx, "%s: %s", data->arg, strerror(errno));
                 return (-1);                  return (-1);
         }          }
Line 70 
Line 70 
          * We don't want to die due to memory exhaustion, hence xmalloc can't           * We don't want to die due to memory exhaustion, hence xmalloc can't
          * be used here.           * be used here.
          */           */
         if ((buf = malloc(statbuf.st_size + 1)) == NULL) {          if ((buf = malloc(sb.st_size + 1)) == NULL) {
                 ctx->error(ctx, "malloc error: %s", strerror(errno));                  ctx->error(ctx, "malloc error: %s", strerror(errno));
                 fclose(f);                  fclose(f);
                 return (-1);                  return (-1);
         }          }
   
         if (fread(buf, 1, statbuf.st_size, f) != (size_t) statbuf.st_size) {          if (fread(buf, 1, sb.st_size, f) != (size_t) sb.st_size) {
                 ctx->error(ctx, "%s: fread error", data->arg);                  ctx->error(ctx, "%s: fread error", data->arg);
                 xfree(buf);                  xfree(buf);
                 fclose(f);                  fclose(f);
                 return (-1);                  return (-1);
         }          }
   
         buf[statbuf.st_size] = '\0';  
         fclose(f);          fclose(f);
   
         limit = options_get_number(&s->options, "buffer-limit");          limit = options_get_number(&s->options, "buffer-limit");
         if (data->buffer == -1) {          if (data->buffer == -1) {
                 paste_add(&s->buffers, buf, limit);                  paste_add(&s->buffers, buf, sb.st_size, limit);
                 return (0);                  return (0);
         }          }
         if (paste_replace(&s->buffers, data->buffer, buf) != 0) {          if (paste_replace(&s->buffers, data->buffer, buf, sb.st_size) != 0) {
                 ctx->error(ctx, "no buffer %d", data->buffer);                  ctx->error(ctx, "no buffer %d", data->buffer);
                 xfree(buf);                  xfree(buf);
                 return (-1);                  return (-1);

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