From 69aaf390a470a1778bf524970b1c9a3c18de987c Mon Sep 17 00:00:00 2001 From: "Thomas \"Cakeisalie5\" Touhey" Date: Thu, 6 Apr 2017 18:54:18 +0200 Subject: [PATCH] Using p7_makesettings now. --- src/p7/args.c | 58 +++++++++------------------------------------------ 1 file changed, 10 insertions(+), 48 deletions(-) diff --git a/src/p7/args.c b/src/p7/args.c index 0eca83c..1ff09af 100644 --- a/src/p7/args.c +++ b/src/p7/args.c @@ -177,52 +177,6 @@ FOOT; return (0); \ } -/** - * make_settings: - * Make settings from a string. - * - * @arg fmt the format string. - * @arg settings the settings to set. - * @return if there was an error (0 if ok). - */ - -static int make_settings(const char *argname, - const char *fmt, p7_streamsettings_t *settings) -{ - /* extract data from the string */ - unsigned int speed; char par; int stop; - if (sscanf(fmt, "%u%c%d", &speed, &par, &stop) < 3 - || (par != 'N' && par != 'E' && par != 'O') - || (stop != 1 && stop != 2)) { - log("%s: invalid format, expected , e.g. " - "9600N2 or 115200O1!\n", argname); - return (1); - } - - /* get the speed */ - switch (speed) { - case 9600: speed = P7_B9600; break; - case 19200: speed = P7_B19200; break; - case 38400: speed = P7_B38400; break; - case 57600: speed = P7_B57600; break; - case 115200: speed = P7_B115200; break; - default: - log("%s: %u is not a valid speed!\n", argname, speed); - return (1); - } - - /* set the settings */ - p7_initcomm(settings); - settings->speed = speed; - settings->flags &= ~(P7_TWOSTOPBITS | P7_PARMASK); - settings->flags |= --stop ? P7_TWOSTOPBITS : P7_ONESTOPBIT; - settings->flags |= par == 'N' ? P7_PARDIS : - par == 'E' ? P7_PARENB | P7_PAREVEN : P7_PARENB | P7_PARODD; - - /* no error! */ - return (0); -} - /** * parse_args: * Args parsing main function. @@ -415,8 +369,12 @@ int parse_args(int ac, char **av, args_t *args) /* use serial settings */ if (s_use) { if (args->com) args->use = &args->_use; - if (make_settings("--use", s_use, &args->_use)) + if (p7_makesettings(&args->_use, s_use)) { + log("--use: invalid format!\n"); + log("--use: expected , " + "e.g. 9600N2 or 115200E1!\n"); return (0); + } } /* set serial settings */ @@ -425,8 +383,12 @@ int parse_args(int ac, char **av, args_t *args) else if (s_set) { args->do_the_set = 1; if (args->com) args->set = &args->_set; - if (make_settings("--set", s_set, &args->_set)) + if (p7_makesettings(&args->_set, s_set)) { + log("--set: invalid format!\n"); + log("--set: expected , " + "e.g. 9600N2 or 115200E1!\n"); return (0); + } } /* check local path */