RFA: parse 'target remote' device special cases first

Jim Blandy
2006-03-09T00:12:36Z

Without this change, if the command supplied after 'target remote |'
contained a colon, the portion of the command ahead of that colon
would be mistaken for a hostname. But the syntax isn't actually
ambiguous, since hostnames don't start with '|'.

Tested on x86_64-pc-linux-gnu.

src/gdb/ChangeLog:
2006-03-08 Jim Blandy <jimb@red-bean.com>

* serial.c (serial_open): Check for special cases at the front of
the "device" name before scanning for the ':' that would indicate
an IP-based connection.

Index: src/gdb/serial.c
===================================================================
--- src.orig/gdb/serial.c
+++ src/gdb/serial.c
@@ -184,8 +184,6 @@ serial_open (const char *name)

if (strcmp (name, "pc") == 0)
ops = serial_interface_lookup ("pc");
- else if (strchr (name, ':'))
- ops = serial_interface_lookup ("tcp");
else if (strncmp (name, "lpt", 3) == 0)
ops = serial_interface_lookup ("parallel");
else if (strncmp (name, "|", 1) == 0)
@@ -193,6 +191,8 @@ serial_open (const char *name)
ops = serial_interface_lookup ("pipe");
open_name = name + 1; /* discard ``|'' */
}
+ else if (strchr (name, ':'))
+ ops = serial_interface_lookup ("tcp");
else
ops = serial_interface_lookup ("hardwire");