kdb: drop newline in unknown command output
authorRandy Dunlap <rdunlap@infradead.org>
Fri, 8 Dec 2017 18:19:23 +0000 (10:19 -0800)
committerJason Wessel <jason.wessel@windriver.com>
Thu, 25 Jan 2018 14:41:14 +0000 (08:41 -0600)
When an unknown command is entered, kdb prints "Unknown kdb command:"
and then the unknown text, including the newline character. This
causes the ending single-quote mark to be printed on the next line
by itself, so just change the ending newline character to a null
character (end of string) so that it won't be "printed."

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Jason Wessel <jason.wessel@windriver.com>
Cc: kgdb-bugreport@lists.sourceforge.net
Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
kernel/debug/kdb/kdb_main.c

index ff6047d3b73f3c67ce7faf4d87d50e2e9cb59980..6055231544a09e0c4c0aa135228d7ec182bc2e17 100644 (file)
@@ -1150,6 +1150,16 @@ void kdb_set_current_task(struct task_struct *p)
        kdb_current_regs = NULL;
 }
 
+static void drop_newline(char *buf)
+{
+       size_t len = strlen(buf);
+
+       if (len == 0)
+               return;
+       if (*(buf + len - 1) == '\n')
+               *(buf + len - 1) = '\0';
+}
+
 /*
  * kdb_local - The main code for kdb.  This routine is invoked on a
  *     specific processor, it is not global.  The main kdb() routine
@@ -1327,6 +1337,7 @@ do_full_getstr:
                cmdptr = cmd_head;
                diag = kdb_parse(cmdbuf);
                if (diag == KDB_NOTFOUND) {
+                       drop_newline(cmdbuf);
                        kdb_printf("Unknown kdb command: '%s'\n", cmdbuf);
                        diag = 0;
                }