Simplify and improve gw16012_handle_parport_command:
authorzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Fri, 12 Jun 2009 01:40:23 +0000 (01:40 +0000)
committerzwelch <zwelch@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Fri, 12 Jun 2009 01:40:23 +0000 (01:40 +0000)
- Show the port number to the user when asking for it or setting it.
- Print an error if the parport_port has already been set.
- Use parse_u16 helper to ensure the parport_port string parses correctly.

git-svn-id: svn://svn.berlios.de/openocd/trunk@2211 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/jtag/gw16012.c

index 0ea66340c465941d0cd802216a1f5725c0960c34..b5fd28814f9ff7da97a8ab0d256eb8b3e289208f 100644 (file)
@@ -571,12 +571,23 @@ static int gw16012_quit(void)
 
 static int gw16012_handle_parport_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
 {
-       if (argc == 0)
-               return ERROR_OK;
+       if (argc == 1)
+       {
+               /* only if the port wasn't overwritten by cmdline */
+               if (gw16012_port == 0)
+               {
+                       int retval = parse_u16(args[0], &gw16012_port);
+                       if (ERROR_OK != retval)
+                               return retval;
+               }
+               else
+               {
+                       LOG_ERROR("The parport port was already configured!");
+                       return ERROR_FAIL;
+               }
+       }
 
-       /* only if the port wasn't overwritten by cmdline */
-       if (gw16012_port == 0)
-               gw16012_port = strtoul(args[0], NULL, 0);
+       command_print(cmd_ctx, "parport port = %u", gw16012_port);
 
        return ERROR_OK;
 }