mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	Give each item on queue a name for better logging.
This commit is contained in:
		
							
								
								
									
										18
									
								
								cmd-queue.c
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								cmd-queue.c
									
									
									
									
									
								
							@@ -112,6 +112,8 @@ cmdq_remove(struct cmdq_item *item)
 | 
			
		||||
		cmd_list_free(item->cmdlist);
 | 
			
		||||
 | 
			
		||||
	TAILQ_REMOVE(item->queue, item, entry);
 | 
			
		||||
 | 
			
		||||
	free((void *)item->name);
 | 
			
		||||
	free(item);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -147,10 +149,15 @@ cmdq_get_command(struct cmd_list *cmdlist, struct cmd_find_state *current,
 | 
			
		||||
	struct cmdq_item	*item, *first = NULL, *last = NULL;
 | 
			
		||||
	struct cmd		*cmd;
 | 
			
		||||
	u_int			 group = cmdq_next_group();
 | 
			
		||||
	char			*tmp;
 | 
			
		||||
 | 
			
		||||
	TAILQ_FOREACH(cmd, &cmdlist->list, qentry) {
 | 
			
		||||
		xasprintf(&tmp, "command[%s]", cmd->entry->name);
 | 
			
		||||
 | 
			
		||||
		item = xcalloc(1, sizeof *item);
 | 
			
		||||
		item->name = tmp;
 | 
			
		||||
		item->type = CMDQ_COMMAND;
 | 
			
		||||
 | 
			
		||||
		item->group = group;
 | 
			
		||||
		item->flags = flags;
 | 
			
		||||
 | 
			
		||||
@@ -220,12 +227,17 @@ out:
 | 
			
		||||
 | 
			
		||||
/* Get a callback for the command queue. */
 | 
			
		||||
struct cmdq_item *
 | 
			
		||||
cmdq_get_callback(cmdq_cb cb, void *data)
 | 
			
		||||
cmdq_get_callback1(const char *name, cmdq_cb cb, void *data)
 | 
			
		||||
{
 | 
			
		||||
	struct cmdq_item	*item;
 | 
			
		||||
	char			*tmp;
 | 
			
		||||
 | 
			
		||||
	xasprintf(&tmp, "callback[%s]", name);
 | 
			
		||||
 | 
			
		||||
	item = xcalloc(1, sizeof *item);
 | 
			
		||||
	item->name = tmp;
 | 
			
		||||
	item->type = CMDQ_CALLBACK;
 | 
			
		||||
 | 
			
		||||
	item->group = 0;
 | 
			
		||||
	item->flags = 0;
 | 
			
		||||
 | 
			
		||||
@@ -289,8 +301,8 @@ cmdq_next(struct client *c)
 | 
			
		||||
		item = TAILQ_FIRST(queue);
 | 
			
		||||
		if (item == NULL)
 | 
			
		||||
			break;
 | 
			
		||||
		log_debug("%s %s: type %d, flags %x", __func__, name,
 | 
			
		||||
		    item->type, item->flags);
 | 
			
		||||
		log_debug("%s %s: %s (%d), flags %x", __func__, name,
 | 
			
		||||
		    item->name, item->type, item->flags);
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		 * Any item with the waiting flag set waits until an external
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								tmux.h
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								tmux.h
									
									
									
									
									
								
							@@ -1239,6 +1239,7 @@ enum cmdq_type {
 | 
			
		||||
/* Command queue item. */
 | 
			
		||||
typedef enum cmd_retval (*cmdq_cb) (struct cmdq_item *, void *);
 | 
			
		||||
struct cmdq_item {
 | 
			
		||||
	const char		*name;
 | 
			
		||||
	struct cmdq_list	*queue;
 | 
			
		||||
	struct cmdq_item	*next;
 | 
			
		||||
 | 
			
		||||
@@ -1779,7 +1780,8 @@ char		*cmd_list_print(struct cmd_list *);
 | 
			
		||||
/* cmd-queue.c */
 | 
			
		||||
struct cmdq_item *cmdq_get_command(struct cmd_list *, struct cmd_find_state *,
 | 
			
		||||
		     struct mouse_event *, int);
 | 
			
		||||
struct cmdq_item *cmdq_get_callback(cmdq_cb, void *);
 | 
			
		||||
#define cmdq_get_callback(cb, data) cmdq_get_callback1(#cb, cb, data)
 | 
			
		||||
struct cmdq_item *cmdq_get_callback1(const char *, cmdq_cb, void *);
 | 
			
		||||
void		 cmdq_insert_after(struct cmdq_item *, struct cmdq_item *);
 | 
			
		||||
void		 cmdq_append(struct client *, struct cmdq_item *);
 | 
			
		||||
void printflike(3, 4) cmdq_format(struct cmdq_item *, const char *,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user