diff --git a/xtandard.c b/xtandard.c index d70ee95..f707de5 100644 --- a/xtandard.c +++ b/xtandard.c @@ -47,6 +47,16 @@ void echo (char * data) { out (data, string_length (data)); } +void echo_new_line (void) { + out ("\n", 1); +} + +void echo_byte (int byte) { + out ("0123456789ABCDEF" + (byte % 256) / 16, 1); + out ("0123456789ABCDEF" + (byte % 256) % 16, 1); + out (" ", 1); +} + void fatal_failure (int condition, char * message) { if (condition != 0) { echo ("\033[1;31m[!]\033[0m "); @@ -426,6 +436,12 @@ int character_is_underscore (char character) { return ((int) (character == '_')); } +int character_is_hexadecimal (char character) { + char * hexadecimals = "0123456789ABCDEF"; + + return (character_compare_array (character, hexadecimals, string_length (hexadecimals))); +} + int character_compare_array (char character, char * character_array, int count) { int i = 0; @@ -664,4 +680,21 @@ void terminal_show_cursor (int show) { } } +int encode_byte (char * byte) { + int encode = 0; + + fatal_failure (character_is_hexadecimal (byte [0]) == 0, "encode_byte: Upper byte character is not hexadecimal digit."); + fatal_failure (character_is_hexadecimal (byte [1]) == 0, "encode_byte: Lower byte character is not hexadecimal digit."); + + encode = ((byte [0] - (character_is_digit (byte [0]) ? ('0') : ('A' - 10))) << 4) | (byte [1] - (character_is_digit (byte [1]) ? ('0') : ('A' - 10))); + + return (encode); +} + +char * decode_byte (int byte) { + static char * decode = " "; + + return (decode); +} + #endif diff --git a/xtandard.h b/xtandard.h index 7736b43..a1d4c0a 100644 --- a/xtandard.h +++ b/xtandard.h @@ -74,7 +74,9 @@ extern char * * file_list_data; extern void in (void *, int); extern void out (void *, int); -extern void echo (char *); +extern void echo (char *); +extern void echo_new_line (void); +extern void echo_byte (int); extern void fatal_failure (int, char *); @@ -103,16 +105,17 @@ extern void file_list_import (char *); extern void file_list_export (char *); extern void file_list_delete (void); -extern int character_is_uppercase (char); -extern int character_is_lowercase (char); -extern int character_is_digit (char); -extern int character_is_blank (char); -extern int character_is_alpha (char); -extern int character_is_symbol (char); -extern int character_is_visible (char); -extern int character_is_invisible (char); -extern int character_is_escape (char); -extern int character_is_underscore (char); +extern int character_is_uppercase (char); +extern int character_is_lowercase (char); +extern int character_is_digit (char); +extern int character_is_blank (char); +extern int character_is_alpha (char); +extern int character_is_symbol (char); +extern int character_is_visible (char); +extern int character_is_invisible (char); +extern int character_is_escape (char); +extern int character_is_underscore (char); +extern int character_is_hexadecimal (char); extern int character_compare_array (char, char *, int); @@ -140,4 +143,7 @@ extern void terminal_clear (void); extern void terminal_style (int, int); extern void terminal_show_cursor (int); +extern int encode_byte (char *); +extern char * decode_byte (int); + #endif