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

Diff for /src/usr.bin/tmux/cmd-set-buffer.c between version 1.20 and 1.21

version 1.20, 2014/10/20 22:29:25 version 1.21, 2015/08/29 09:25:00
Line 42 
Line 42 
 {  {
         struct args             *args = self->args;          struct args             *args = self->args;
         struct paste_buffer     *pb;          struct paste_buffer     *pb;
         char                    *pdata, *cause;          char                    *bufdata, *cause;
         const char              *bufname;          const char              *bufname, *olddata;
         size_t                   psize, newsize;          size_t                   bufsize, newsize;
   
         bufname = NULL;          bufname = NULL;
   
Line 58 
Line 58 
                         bufname = args_get(args, 'b');                          bufname = args_get(args, 'b');
   
                 if (bufname == NULL) {                  if (bufname == NULL) {
                         pb = paste_get_top();                          pb = paste_get_top(&bufname);
                         if (pb == NULL) {                          if (pb == NULL) {
                                 cmdq_error(cmdq, "no buffer");                                  cmdq_error(cmdq, "no buffer");
                                 return (CMD_RETURN_ERROR);                                  return (CMD_RETURN_ERROR);
                         }                          }
                         bufname = pb->name;  
                 }                  }
   
                 if (paste_rename(bufname, args_get(args, 'n'), &cause) != 0) {                  if (paste_rename(bufname, args_get(args, 'n'), &cause) != 0) {
Line 79 
Line 78 
                 cmdq_error(cmdq, "no data specified");                  cmdq_error(cmdq, "no data specified");
                 return (CMD_RETURN_ERROR);                  return (CMD_RETURN_ERROR);
         }          }
   
         psize = 0;  
         pdata = NULL;  
   
         pb = NULL;          pb = NULL;
   
           bufsize = 0;
           bufdata = NULL;
   
         if ((newsize = strlen(args->argv[0])) == 0)          if ((newsize = strlen(args->argv[0])) == 0)
                 return (CMD_RETURN_NORMAL);                  return (CMD_RETURN_NORMAL);
   
         if (args_has(args, 'b')) {          if (args_has(args, 'b')) {
                 bufname = args_get(args, 'b');                  bufname = args_get(args, 'b');
                 pb = paste_get_name(bufname);                  pb = paste_get_name(bufname);
         } else if (args_has(args, 'a')) {          } else if (args_has(args, 'a'))
                 pb = paste_get_top();                  pb = paste_get_top(&bufname);
                 if (pb != NULL)  
                         bufname = pb->name;  
         }  
   
         if (args_has(args, 'a') && pb != NULL) {          if (args_has(args, 'a') && pb != NULL) {
                 psize = pb->size;                  olddata = paste_buffer_data(pb, &bufsize);
                 pdata = xmalloc(psize);                  bufdata = xmalloc(bufsize);
                 memcpy(pdata, pb->data, psize);                  memcpy(bufdata, olddata, bufsize);
         }          }
   
         pdata = xrealloc(pdata, psize + newsize);          bufdata = xrealloc(bufdata, bufsize + newsize);
         memcpy(pdata + psize, args->argv[0], newsize);          memcpy(bufdata + bufsize, args->argv[0], newsize);
         psize += newsize;          bufsize += newsize;
   
         if (paste_set(pdata, psize, bufname, &cause) != 0) {          if (paste_set(bufdata, bufsize, bufname, &cause) != 0) {
                 cmdq_error(cmdq, "%s", cause);                  cmdq_error(cmdq, "%s", cause);
                 free(pdata);                  free(bufdata);
                 free(cause);                  free(cause);
                 return (CMD_RETURN_ERROR);                  return (CMD_RETURN_ERROR);
         }          }

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.21