| Index: xz/debug/hex2bin.c
|
| ===================================================================
|
| --- xz/debug/hex2bin.c (revision 0)
|
| +++ xz/debug/hex2bin.c (revision 0)
|
| @@ -0,0 +1,53 @@
|
| +///////////////////////////////////////////////////////////////////////////////
|
| +//
|
| +/// \file hex2bin.c
|
| +/// \brief Converts hexadecimal input strings to binary
|
| +//
|
| +// Author: Lasse Collin
|
| +//
|
| +// This file has been put into the public domain.
|
| +// You can do whatever you want with this file.
|
| +//
|
| +///////////////////////////////////////////////////////////////////////////////
|
| +
|
| +#include "sysdefs.h"
|
| +#include <stdio.h>
|
| +#include <ctype.h>
|
| +
|
| +
|
| +static int
|
| +getbin(int x)
|
| +{
|
| + if (x >= '0' && x <= '9')
|
| + return x - '0';
|
| +
|
| + if (x >= 'A' && x <= 'F')
|
| + return x - 'A' + 10;
|
| +
|
| + return x - 'a' + 10;
|
| +}
|
| +
|
| +
|
| +int
|
| +main(void)
|
| +{
|
| + while (true) {
|
| + int byte = getchar();
|
| + if (byte == EOF)
|
| + return 0;
|
| + if (!isxdigit(byte))
|
| + continue;
|
| +
|
| + const int digit = getchar();
|
| + if (digit == EOF || !isxdigit(digit)) {
|
| + fprintf(stderr, "Invalid input\n");
|
| + return 1;
|
| + }
|
| +
|
| + byte = (getbin(byte) << 4) | getbin(digit);
|
| + if (putchar(byte) == EOF) {
|
| + perror(NULL);
|
| + return 1;
|
| + }
|
| + }
|
| +}
|
|
|
| Property changes on: xz/debug/hex2bin.c
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|