hmp: Allow help on preconfig commands
Allow the 'help' command in preconfig state but make it only list the preconfig commands. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Peter Xu <peterx@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Message-Id: <20180620153947.30834-3-dgilbert@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
		
							parent
							
								
									c3120f715d
								
							
						
					
					
						commit
						31785f1b03
					
				@ -15,6 +15,7 @@ ETEXI
 | 
				
			|||||||
        .params     = "[cmd]",
 | 
					        .params     = "[cmd]",
 | 
				
			||||||
        .help       = "show the help",
 | 
					        .help       = "show the help",
 | 
				
			||||||
        .cmd        = do_help_cmd,
 | 
					        .cmd        = do_help_cmd,
 | 
				
			||||||
 | 
					        .flags      = "p",
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
STEXI
 | 
					STEXI
 | 
				
			||||||
 | 
				
			|||||||
@ -979,6 +979,10 @@ static void help_cmd_dump_one(Monitor *mon,
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    int i;
 | 
					    int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (runstate_check(RUN_STATE_PRECONFIG) && !cmd_can_preconfig(cmd)) {
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (i = 0; i < prefix_args_nb; i++) {
 | 
					    for (i = 0; i < prefix_args_nb; i++) {
 | 
				
			||||||
        monitor_printf(mon, "%s ", prefix_args[i]);
 | 
					        monitor_printf(mon, "%s ", prefix_args[i]);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -1001,7 +1005,9 @@ static void help_cmd_dump(Monitor *mon, const mon_cmd_t *cmds,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    /* Find one entry to dump */
 | 
					    /* Find one entry to dump */
 | 
				
			||||||
    for (cmd = cmds; cmd->name != NULL; cmd++) {
 | 
					    for (cmd = cmds; cmd->name != NULL; cmd++) {
 | 
				
			||||||
        if (compare_cmd(args[arg_index], cmd->name)) {
 | 
					        if (compare_cmd(args[arg_index], cmd->name) &&
 | 
				
			||||||
 | 
					            ((!runstate_check(RUN_STATE_PRECONFIG) ||
 | 
				
			||||||
 | 
					                cmd_can_preconfig(cmd)))) {
 | 
				
			||||||
            if (cmd->sub_table) {
 | 
					            if (cmd->sub_table) {
 | 
				
			||||||
                /* continue with next arg */
 | 
					                /* continue with next arg */
 | 
				
			||||||
                help_cmd_dump(mon, cmd->sub_table,
 | 
					                help_cmd_dump(mon, cmd->sub_table,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user