mirror of
				https://github.com/tmux/tmux.git
				synced 2025-10-26 12:27:15 +00:00 
			
		
		
		
	Change so that assignments may be specified alone - a command isn't
required. GitHub issue 2062.
This commit is contained in:
		
							
								
								
									
										34
									
								
								cmd-parse.y
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								cmd-parse.y
									
									
									
									
									
								
							| @@ -133,7 +133,12 @@ statements	: statement '\n' | ||||
| 			free($2); | ||||
| 		} | ||||
|  | ||||
| statement	: condition | ||||
| statement	: /* empty */ | ||||
| 		{ | ||||
| 			$$ = xmalloc (sizeof *$$); | ||||
| 			TAILQ_INIT($$); | ||||
| 		} | ||||
| 		| condition | ||||
| 		{ | ||||
| 			struct cmd_parse_state	*ps = &parse_state; | ||||
|  | ||||
| @@ -144,11 +149,6 @@ statement	: condition | ||||
| 				cmd_parse_free_commands($1); | ||||
| 			} | ||||
| 		} | ||||
| 		| assignment | ||||
| 		{ | ||||
| 			$$ = xmalloc (sizeof *$$); | ||||
| 			TAILQ_INIT($$); | ||||
| 		} | ||||
| 		| commands | ||||
| 		{ | ||||
| 			struct cmd_parse_state	*ps = &parse_state; | ||||
| @@ -194,8 +194,10 @@ expanded	: format | ||||
| 			free($1); | ||||
| 		} | ||||
|  | ||||
| assignment	: /* empty */ | ||||
| 		| EQUALS | ||||
| optional_assignment	: /* empty */ | ||||
| 			| assignment | ||||
|  | ||||
| assignment	: EQUALS | ||||
| 		{ | ||||
| 			struct cmd_parse_state	*ps = &parse_state; | ||||
| 			int			 flags = ps->input->flags; | ||||
| @@ -372,7 +374,15 @@ commands	: command | ||||
| 			$$ = $1; | ||||
| 		} | ||||
|  | ||||
| command		: assignment TOKEN | ||||
| command		: assignment | ||||
| 		{ | ||||
| 			struct cmd_parse_state	*ps = &parse_state; | ||||
|  | ||||
| 			$$ = xcalloc(1, sizeof *$$); | ||||
| 			$$->name = NULL; | ||||
| 			$$->line = ps->input->line; | ||||
| 		} | ||||
| 		| optional_assignment TOKEN | ||||
| 		{ | ||||
| 			struct cmd_parse_state	*ps = &parse_state; | ||||
|  | ||||
| @@ -381,7 +391,7 @@ command		: assignment TOKEN | ||||
| 			$$->line = ps->input->line; | ||||
|  | ||||
| 		} | ||||
| 		| assignment TOKEN arguments | ||||
| 		| optional_assignment TOKEN arguments | ||||
| 		{ | ||||
| 			struct cmd_parse_state	*ps = &parse_state; | ||||
|  | ||||
| @@ -631,6 +641,8 @@ cmd_parse_build_commands(struct cmd_parse_commands *cmds, | ||||
| 	 * command list. | ||||
| 	 */ | ||||
| 	TAILQ_FOREACH_SAFE(cmd, cmds, entry, next) { | ||||
| 		if (cmd->name == NULL) | ||||
| 			continue; | ||||
| 		alias = cmd_get_alias(cmd->name); | ||||
| 		if (alias == NULL) | ||||
| 			continue; | ||||
| @@ -676,6 +688,8 @@ cmd_parse_build_commands(struct cmd_parse_commands *cmds, | ||||
| 	 */ | ||||
| 	result = cmd_list_new(); | ||||
| 	TAILQ_FOREACH(cmd, cmds, entry) { | ||||
| 		if (cmd->name == NULL) | ||||
| 			continue; | ||||
| 		log_debug("%s: %u %s", __func__, cmd->line, cmd->name); | ||||
| 		cmd_log_argv(cmd->argc, cmd->argv, __func__); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 nicm
					nicm