summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/bookmark.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/apps/bookmark.c b/apps/bookmark.c
index 2c9b3d5..029a564 100644
--- a/apps/bookmark.c
+++ b/apps/bookmark.c
@@ -942,9 +942,15 @@ static const char* skip_token(const char* s)
return s;
}
+static const char* int_token(const char* s, int* dest)
+{
+ *dest = atoi(s);
+ return skip_token(s);
+}
+
static const char* long_token(const char* s, long* dest)
{
- *dest = atoi(s); /* Should be atol, but we don't have it. */
+ *dest = atoi(s); /* Should be atol, but we don't have it. */
return skip_token(s);
}
@@ -958,7 +964,8 @@ static bool parse_bookmark(const char *bookmark, const bool parse_filenames)
const char* s = bookmark;
const char* end;
-#define GET_INT_TOKEN(var) s = long_token(s, (long *)&var)
+#define GET_INT_TOKEN(var) s = int_token(s, &var)
+#define GET_LONG_TOKEN(var) s = long_token(s, &var)
#define GET_BOOL_TOKEN(var) var = (atoi(s)!=0); s = skip_token(s)
/* if new format bookmark, extract the optional content flags,
@@ -973,11 +980,11 @@ static bool parse_bookmark(const char *bookmark, const bool parse_filenames)
/* extract all original bookmark tokens */
GET_INT_TOKEN(bm.resume_index);
- GET_INT_TOKEN(bm.resume_offset);
+ GET_LONG_TOKEN(bm.resume_offset);
GET_INT_TOKEN(bm.resume_seed);
if (!new_format) /* skip deprecated token */
s = skip_token(s);
- GET_INT_TOKEN(bm.resume_time);
+ GET_LONG_TOKEN(bm.resume_time);
GET_INT_TOKEN(bm.repeat_mode);
GET_BOOL_TOKEN(bm.shuffle);