[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] xl: wrap help output if command name is too long



# HG changeset patch
# User Ian Campbell <ian.campbell@xxxxxxxxxx>
# Date 1317917918 -3600
# Node ID 1344d4476c5263652a403d1f851eb6f314145df1
# Parent  abd34aba46a3784b176db26af2721ed7277c9c49
xl: wrap help output if command name is too long

Without this in the "xl help" line for pci-list-assignable-devices the command
name merges with the first word of the help. Since the bash completion support
parses "xl help" this leads to "pci-list-assignable-devicesList" being
presented as an option instead of the correct command name.

We also need to filter out lines which start with more than one space in the
bash completion support to stop "List" appearing as a possible command name
after the change to wrap it.

Doesn't address the fact that some help text overflows 80 columns.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Acked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Committed-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---


diff -r abd34aba46a3 -r 1344d4476c52 tools/libxl/bash-completion
--- a/tools/libxl/bash-completion       Thu Oct 06 16:19:46 2011 +0100
+++ b/tools/libxl/bash-completion       Thu Oct 06 17:18:38 2011 +0100
@@ -11,7 +11,7 @@
        xl=xl
 
        if [[ $COMP_CWORD == 1 ]] ; then
-               opts=`${xl} help 2>/dev/null | sed '1,4d' | awk '{print $1}' | 
sed 's/$/ ,/g'` && COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
+               opts=`${xl} help 2>/dev/null | sed '1,4d' | awk '/^ [^ ]/ 
{print $1}' | sed 's/$/ ,/g'` && COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
                return 0
        fi
 
diff -r abd34aba46a3 -r 1344d4476c52 tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c  Thu Oct 06 16:19:46 2011 +0100
+++ b/tools/libxl/xl_cmdimpl.c  Thu Oct 06 17:18:38 2011 +0100
@@ -1728,9 +1728,12 @@
     if (!command || !strcmp(command, "help")) {
         printf("Usage xl [-vN] <subcommand> [args]\n\n");
         printf("xl full list of subcommands:\n\n");
-        for (i = 0; i < cmdtable_len; i++)
-            printf(" %-20s%s\n",
-                   cmd_table[i].cmd_name, cmd_table[i].cmd_desc);
+        for (i = 0; i < cmdtable_len; i++) {
+            printf(" %-19s ", cmd_table[i].cmd_name);
+            if (strlen(cmd_table[i].cmd_name) > 19)
+                printf("\n %-19s ", "");
+            printf("%s\n", cmd_table[i].cmd_desc);
+        }
     } else {
         cmd = cmdtable_lookup(command);
         if (cmd) {

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.