mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 09:26:05 +00:00 
			
		
		
		
	Move struct paste_buffer out of tmux.h.
This commit is contained in:
		@@ -42,9 +42,9 @@ cmd_set_buffer_exec(struct cmd *self, struct cmd_q *cmdq)
 | 
			
		||||
{
 | 
			
		||||
	struct args		*args = self->args;
 | 
			
		||||
	struct paste_buffer	*pb;
 | 
			
		||||
	char			*pdata, *cause;
 | 
			
		||||
	const char		*bufname;
 | 
			
		||||
	size_t			 psize, newsize;
 | 
			
		||||
	char			*bufdata, *cause;
 | 
			
		||||
	const char		*bufname, *olddata;
 | 
			
		||||
	size_t			 bufsize, newsize;
 | 
			
		||||
 | 
			
		||||
	bufname = NULL;
 | 
			
		||||
 | 
			
		||||
@@ -58,12 +58,11 @@ cmd_set_buffer_exec(struct cmd *self, struct cmd_q *cmdq)
 | 
			
		||||
			bufname = args_get(args, 'b');
 | 
			
		||||
 | 
			
		||||
		if (bufname == NULL) {
 | 
			
		||||
			pb = paste_get_top();
 | 
			
		||||
			pb = paste_get_top(&bufname);
 | 
			
		||||
			if (pb == NULL) {
 | 
			
		||||
				cmdq_error(cmdq, "no buffer");
 | 
			
		||||
				return (CMD_RETURN_ERROR);
 | 
			
		||||
			}
 | 
			
		||||
			bufname = pb->name;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (paste_rename(bufname, args_get(args, 'n'), &cause) != 0) {
 | 
			
		||||
@@ -79,37 +78,33 @@ cmd_set_buffer_exec(struct cmd *self, struct cmd_q *cmdq)
 | 
			
		||||
		cmdq_error(cmdq, "no data specified");
 | 
			
		||||
		return (CMD_RETURN_ERROR);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	psize = 0;
 | 
			
		||||
	pdata = NULL;
 | 
			
		||||
 | 
			
		||||
	pb = NULL;
 | 
			
		||||
 | 
			
		||||
	bufsize = 0;
 | 
			
		||||
	bufdata = NULL;
 | 
			
		||||
 | 
			
		||||
	if ((newsize = strlen(args->argv[0])) == 0)
 | 
			
		||||
		return (CMD_RETURN_NORMAL);
 | 
			
		||||
 | 
			
		||||
	if (args_has(args, 'b')) {
 | 
			
		||||
		bufname = args_get(args, 'b');
 | 
			
		||||
		pb = paste_get_name(bufname);
 | 
			
		||||
	} else if (args_has(args, 'a')) {
 | 
			
		||||
		pb = paste_get_top();
 | 
			
		||||
		if (pb != NULL)
 | 
			
		||||
			bufname = pb->name;
 | 
			
		||||
	}
 | 
			
		||||
	} else if (args_has(args, 'a'))
 | 
			
		||||
		pb = paste_get_top(&bufname);
 | 
			
		||||
 | 
			
		||||
	if (args_has(args, 'a') && pb != NULL) {
 | 
			
		||||
		psize = pb->size;
 | 
			
		||||
		pdata = xmalloc(psize);
 | 
			
		||||
		memcpy(pdata, pb->data, psize);
 | 
			
		||||
		olddata = paste_buffer_data(pb, &bufsize);
 | 
			
		||||
		bufdata = xmalloc(bufsize);
 | 
			
		||||
		memcpy(bufdata, olddata, bufsize);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	pdata = xrealloc(pdata, psize + newsize);
 | 
			
		||||
	memcpy(pdata + psize, args->argv[0], newsize);
 | 
			
		||||
	psize += newsize;
 | 
			
		||||
	bufdata = xrealloc(bufdata, bufsize + newsize);
 | 
			
		||||
	memcpy(bufdata + bufsize, args->argv[0], newsize);
 | 
			
		||||
	bufsize += newsize;
 | 
			
		||||
 | 
			
		||||
	if (paste_set(pdata, psize, bufname, &cause) != 0) {
 | 
			
		||||
	if (paste_set(bufdata, bufsize, bufname, &cause) != 0) {
 | 
			
		||||
		cmdq_error(cmdq, "%s", cause);
 | 
			
		||||
		free(pdata);
 | 
			
		||||
		free(bufdata);
 | 
			
		||||
		free(cause);
 | 
			
		||||
		return (CMD_RETURN_ERROR);
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user