Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fd4392e4 authored by Colin Cross's avatar Colin Cross Committed by Amit Pundir
Browse files

ANDROID: kdb: support new lines without carriage returns



kdb expects carriage returns through the serial port to terminate
commands.  Modify it to accept the first seen carriage return or
new line as a terminator, but not treat \r\n as two terminators.

Change-Id: I06166017e7703d24310eefcb71c3a7d427088db7
Signed-off-by: default avatarColin Cross <ccross@android.com>
parent 4b55137d
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -217,7 +217,7 @@ static char *kdb_read(char *buffer, size_t bufsize)
	int i;
	int diag, dtab_count;
	int key;

	static int last_crlf;

	diag = kdbgetintenv("DTABCOUNT", &dtab_count);
	if (diag)
@@ -238,6 +238,9 @@ static char *kdb_read(char *buffer, size_t bufsize)
		return buffer;
	if (key != 9)
		tab = 0;
	if (key != 10 && key != 13)
		last_crlf = 0;

	switch (key) {
	case 8: /* backspace */
		if (cp > buffer) {
@@ -255,7 +258,12 @@ static char *kdb_read(char *buffer, size_t bufsize)
			*cp = tmp;
		}
		break;
	case 13: /* enter */
	case 10: /* new line */
	case 13: /* carriage return */
		/* handle \n after \r */
		if (last_crlf && last_crlf != key)
			break;
		last_crlf = key;
		*lastchar++ = '\n';
		*lastchar++ = '\0';
		if (!KDB_STATE(KGDB_TRANS)) {