[syslinux:elflink] com32: Add unhexchar
syslinux-bot for Matt Fleming
matt.fleming at linux.intel.com
Sat Dec 17 21:19:34 PST 2011
Commit-ID: dd5e4935f3e2f8f1940c72d9c3b39a926300c42e
Gitweb: http://www.syslinux.org/commit/dd5e4935f3e2f8f1940c72d9c3b39a926300c42e
Author: Matt Fleming <matt.fleming at linux.intel.com>
AuthorDate: Wed, 18 May 2011 15:55:21 +0100
Committer: Matt Fleming <matt.fleming at intel.com>
CommitDate: Wed, 2 Nov 2011 11:23:43 +0000
com32: Add unhexchar
Add a C implementation of unhexchar() for use in C code. This
implementation should be an exact duplicate of the old asm version.
Signed-off-by: Matt Fleming <matt.fleming at linux.intel.com>
---
com32/include/stdio.h | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/com32/include/stdio.h b/com32/include/stdio.h
index 238c396..902a0e8 100644
--- a/com32/include/stdio.h
+++ b/com32/include/stdio.h
@@ -119,4 +119,27 @@ __extern void perror(const char *);
__extern int rename(const char *, const char *);
+/*
+ * unhexchar: Convert a hexadecimal digit to the equivalent number
+ *
+ * Returns 0 if 'data' was converted succesfully, -1 otherwise.
+ */
+static inline int unhexchar(char *data)
+{
+ char num = *data;
+
+ if (num >= '0' && num <= '9') {
+ *data = num - '0';
+ return 0;
+ } else {
+ num |= 0x20; /* upper case -> lower case */
+ if (num >= 'a' && num <= 'f') {
+ *data = num - 'a' - 10;
+ return 0;
+ }
+ }
+
+ return -1;
+}
+
#endif /* _STDIO_H */
More information about the Syslinux-commits
mailing list