Made %n not eat white space.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8557 a1c6a512-1295-4272-9138-f99709370657
diff --git a/firmware/common/sscanf.c b/firmware/common/sscanf.c
index a63a384..c710a10 100644
--- a/firmware/common/sscanf.c
+++ b/firmware/common/sscanf.c
@@ -82,6 +82,18 @@
     return n;
 }
 
+static int skip_spaces(int (*peek)(void *userp),
+                       void (*pop)(void *userp),
+                       void *userp)
+{
+    int n = 0;
+    while (isspace((*peek)(userp))) {
+        n++;
+        (*pop)(userp);
+    }
+    return n;
+}
+
 static int scan(int (*peek)(void *userp),
                 void (*pop)(void *userp),
                 void *userp,
@@ -103,14 +115,10 @@
         {
             ch = *fmt++;
 
-            while (isspace((*peek)(userp))) {
-                n_chars++;
-                (*pop)(userp);
-            }
-
             switch (ch)
             {
                 case 'x':
+                    n_chars += skip_spaces(peek, pop, userp);
                     if ((r = parse_hex(peek, pop, userp, &ulval)) >= 0)
                     {
                         *(va_arg(ap, unsigned int *)) = ulval;
@@ -121,6 +129,7 @@
                         return n;
                     break;
                 case 'd':
+                    n_chars += skip_spaces(peek, pop, userp);
                     if ((r = parse_dec(peek, pop, userp, &lval)) >= 0)
                     {
                         *(va_arg(ap, int *)) = lval;
@@ -135,6 +144,7 @@
                     n++;
                     break;
                 case 'l':
+                    n_chars += skip_spaces(peek, pop, userp);
                     ch = *fmt++;
                     switch (ch)
                     {
@@ -176,10 +186,7 @@
 
         if (literal)
         {
-            while (isspace((*peek)(userp))) {
-                (*pop)(userp);
-                n_chars++;
-            }
+            n_chars += skip_spaces(peek, pop, userp);
             if ((*peek)(userp) != ch)
                 return n;
             else