mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	Add a current_file format for the config file being parsed. Originally
suggested by kn@, also GitHub issue 2638.
This commit is contained in:
		
							
								
								
									
										20
									
								
								cfg.c
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								cfg.c
									
									
									
									
									
								
							@@ -103,6 +103,7 @@ load_cfg(const char *path, struct client *c, struct cmdq_item *item, int flags,
 | 
			
		||||
	struct cmd_parse_input	 pi;
 | 
			
		||||
	struct cmd_parse_result	*pr;
 | 
			
		||||
	struct cmdq_item	*new_item0;
 | 
			
		||||
	struct cmdq_state	*state;
 | 
			
		||||
 | 
			
		||||
	if (new_item != NULL)
 | 
			
		||||
		*new_item = NULL;
 | 
			
		||||
@@ -136,12 +137,19 @@ load_cfg(const char *path, struct client *c, struct cmdq_item *item, int flags,
 | 
			
		||||
		return (0);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	new_item0 = cmdq_get_command(pr->cmdlist, NULL);
 | 
			
		||||
	if (item != NULL)
 | 
			
		||||
		state = cmdq_copy_state(cmdq_get_state(item));
 | 
			
		||||
	else
 | 
			
		||||
		state = cmdq_new_state(NULL, NULL, 0);
 | 
			
		||||
	cmdq_add_format(state, "current_file", "%s", pi.file);
 | 
			
		||||
 | 
			
		||||
	new_item0 = cmdq_get_command(pr->cmdlist, state);
 | 
			
		||||
	if (item != NULL)
 | 
			
		||||
		new_item0 = cmdq_insert_after(item, new_item0);
 | 
			
		||||
	else
 | 
			
		||||
		new_item0 = cmdq_append(NULL, new_item0);
 | 
			
		||||
	cmd_list_free(pr->cmdlist);
 | 
			
		||||
	cmdq_free_state(state);
 | 
			
		||||
 | 
			
		||||
	if (new_item != NULL)
 | 
			
		||||
		*new_item = new_item0;
 | 
			
		||||
@@ -156,6 +164,7 @@ load_cfg_from_buffer(const void *buf, size_t len, const char *path,
 | 
			
		||||
	struct cmd_parse_input	 pi;
 | 
			
		||||
	struct cmd_parse_result	*pr;
 | 
			
		||||
	struct cmdq_item	*new_item0;
 | 
			
		||||
	struct cmdq_state	*state;
 | 
			
		||||
 | 
			
		||||
	if (new_item != NULL)
 | 
			
		||||
		*new_item = NULL;
 | 
			
		||||
@@ -182,12 +191,19 @@ load_cfg_from_buffer(const void *buf, size_t len, const char *path,
 | 
			
		||||
		return (0);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	new_item0 = cmdq_get_command(pr->cmdlist, NULL);
 | 
			
		||||
	if (item != NULL)
 | 
			
		||||
		state = cmdq_copy_state(cmdq_get_state(item));
 | 
			
		||||
	else
 | 
			
		||||
		state = cmdq_new_state(NULL, NULL, 0);
 | 
			
		||||
	cmdq_add_format(state, "current_file", "%s", pi.file);
 | 
			
		||||
 | 
			
		||||
	new_item0 = cmdq_get_command(pr->cmdlist, state);
 | 
			
		||||
	if (item != NULL)
 | 
			
		||||
		new_item0 = cmdq_insert_after(item, new_item0);
 | 
			
		||||
	else
 | 
			
		||||
		new_item0 = cmdq_append(NULL, new_item0);
 | 
			
		||||
	cmd_list_free(pr->cmdlist);
 | 
			
		||||
	cmdq_free_state(state);
 | 
			
		||||
 | 
			
		||||
	if (new_item != NULL)
 | 
			
		||||
		*new_item = new_item0;
 | 
			
		||||
 
 | 
			
		||||
@@ -276,7 +276,7 @@ cmdq_merge_formats(struct cmdq_item *item, struct format_tree *ft)
 | 
			
		||||
	const struct cmd_entry	*entry;
 | 
			
		||||
 | 
			
		||||
	if (item->cmd != NULL) {
 | 
			
		||||
		entry = cmd_get_entry (item->cmd);
 | 
			
		||||
		entry = cmd_get_entry(item->cmd);
 | 
			
		||||
		format_add(ft, "command", "%s", entry->name);
 | 
			
		||||
	}
 | 
			
		||||
	if (item->state->formats != NULL)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								tmux.1
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								tmux.1
									
									
									
									
									
								
							@@ -4859,6 +4859,7 @@ The following variables are available, where appropriate:
 | 
			
		||||
.It Li "copy_cursor_word" Ta "" Ta "Word under cursor in copy mode"
 | 
			
		||||
.It Li "copy_cursor_x" Ta "" Ta "Cursor X position in copy mode"
 | 
			
		||||
.It Li "copy_cursor_y" Ta "" Ta "Cursor Y position in copy mode"
 | 
			
		||||
.It Li "current_file" Ta "" Ta "Current configuration file"
 | 
			
		||||
.It Li "cursor_character" Ta "" Ta "Character at cursor in pane"
 | 
			
		||||
.It Li "cursor_flag" Ta "" Ta "Pane cursor flag"
 | 
			
		||||
.It Li "cursor_x" Ta "" Ta "Cursor X position in pane"
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user