staging: speakup: reuse native kernel functions
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 28 Mar 2013 09:02:43 +0000 (11:02 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 29 Mar 2013 15:41:15 +0000 (08:41 -0700)
We have simple_strtoul and simple_strtol. Don't repeat their functionality
here.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/speakup/kobjects.c
drivers/staging/speakup/main.c
drivers/staging/speakup/speakup.h
drivers/staging/speakup/varhandlers.c

index 35f647c..d0f660b 100644 (file)
@@ -617,7 +617,7 @@ ssize_t spk_var_store(struct kobject *kobj, struct kobj_attribute *attr,
                        len = E_INC;
                else
                        len = E_SET;
-               speakup_s2i(cp, &value);
+               value = simple_strtol(cp, NULL, 10);
                ret = spk_set_num_var(value, param, len);
                if (ret == E_RANGE) {
                        var_data = param->data;
index 9916e94..6c7b55c 100644 (file)
@@ -1892,7 +1892,7 @@ oops:
                spk_special_handler = NULL;
                return 1;
        }
-       cp = speakup_s2i(goto_buf, &go_pos);
+       go_pos = simple_strtol(goto_buf, &cp, 10);
        goto_pos = (u_long) go_pos;
        if (*cp == 'x') {
                if (*goto_buf < '0')
index 22f0fbb..1e5691c 100644 (file)
@@ -58,7 +58,6 @@ void spk_reset_index_count(int sc);
 void spk_get_index_count(int *linecount, int *sentcount);
 extern int spk_set_key_info(const u_char *key_info, u_char *k_buffer);
 extern char *spk_strlwr(char *s);
-extern char *speakup_s2i(char *start, int *dest);
 extern char *spk_s2uchar(char *start, char *dest);
 extern char *spk_xlate(char *s);
 extern int speakup_kobj_init(void);
index f8c1e45..0a237da 100644 (file)
@@ -319,38 +319,10 @@ char *spk_strlwr(char *s)
        return s;
 }
 
-char *speakup_s2i(char *start, int *dest)
-{
-       int val;
-       char ch = *start;
-       if (ch == '-' || ch == '+')
-               start++;
-       if (*start < '0' || *start > '9')
-               return start;
-       val = (*start) - '0';
-       start++;
-       while (*start >= '0' && *start <= '9') {
-               val *= 10;
-               val += (*start) - '0';
-               start++;
-       }
-       if (ch == '-')
-               *dest = -val;
-       else
-               *dest = val;
-       return start;
-}
-
 char *spk_s2uchar(char *start, char *dest)
 {
        int val = 0;
-       while (*start && *start <= SPACE)
-               start++;
-       while (*start >= '0' && *start <= '9') {
-               val *= 10;
-               val += (*start) - '0';
-               start++;
-       }
+       val = simple_strtoul(skip_spaces(start), &start, 10);
        if (*start == ',')
                start++;
        *dest = (u_char)val;