Changed logging system a bit...
This commit is contained in:
parent
4f7de650a5
commit
9cd81639c0
106
xtandard.c
106
xtandard.c
@ -9,17 +9,20 @@
|
||||
#ifndef XTANDARD_SOURCE
|
||||
#define XTANDARD_SOURCE
|
||||
|
||||
#include "xtandard.h"
|
||||
#include <xolatile/xtandard.h>
|
||||
|
||||
char * program_name = NULL;
|
||||
char * program_mode = NULL;
|
||||
char * program_license = NULL;
|
||||
|
||||
int argument_count = 0;
|
||||
char * * argument_nick = NULL;
|
||||
char * * argument_name = NULL;
|
||||
char * argument_input = NULL;
|
||||
char * argument_output = NULL;
|
||||
char * log_notify = NULL;
|
||||
|
||||
int argument_count = 0;
|
||||
char * * argument_nick = NULL;
|
||||
char * * argument_name = NULL;
|
||||
char * argument_input = NULL;
|
||||
char * argument_output = NULL;
|
||||
|
||||
void (* * argument_function) (void) = NULL;
|
||||
|
||||
int file_list_active = 0;
|
||||
@ -43,7 +46,42 @@ void out (void * data, int size) {
|
||||
(void) write (STDOUT_FILENO, data, (unsigned long int) size);
|
||||
}
|
||||
|
||||
void log_in (int type, int flag, char * data) {
|
||||
char * type_mark [LOG_COUNT] = {
|
||||
"[\033[0;32mSuccess\033[0m] ",
|
||||
"[\033[0;33mWarning\033[0m] ",
|
||||
"[\033[0;31mFailure\033[0m] ",
|
||||
"[\033[0;34mComment\033[0m] "
|
||||
};
|
||||
|
||||
if ((flag == 0) || (type <= -1) || (type >= LOG_COUNT)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (log_notify == NULL) {
|
||||
log_notify = allocate (string_length (type_mark [type]) + string_length (data) + 2);
|
||||
} else {
|
||||
log_notify = reallocate (log_notify, string_length (log_notify) + string_length (type_mark [type]) + string_length (data) + 2);
|
||||
|
||||
log_notify [string_length (log_notify)] = '\0';
|
||||
}
|
||||
|
||||
string_concatenate (log_notify, type_mark [type]);
|
||||
string_concatenate (log_notify, data);
|
||||
string_concatenate (log_notify, "\n");
|
||||
}
|
||||
|
||||
void log_out (void) {
|
||||
echo (log_notify);
|
||||
|
||||
log_notify = deallocate (log_notify);
|
||||
}
|
||||
|
||||
void echo (char * data) {
|
||||
if (data == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
out (data, string_length (data));
|
||||
}
|
||||
|
||||
@ -59,7 +97,7 @@ void echo_byte (int byte) {
|
||||
|
||||
void fatal_failure (int condition, char * message) {
|
||||
if (condition != 0) {
|
||||
echo ("\033[1;31m[!]\033[0m ");
|
||||
echo ("\033[1;31m[FATAL_FAILURE]\033[0m ");
|
||||
echo (message);
|
||||
echo ("\n");
|
||||
|
||||
@ -80,7 +118,9 @@ void limit (int * value, int minimum, int maximum) {
|
||||
void * allocate (int size) {
|
||||
char * data = NULL;
|
||||
|
||||
fatal_failure (size == 0, "allocate: Failed to allocate memory, size is zero.");
|
||||
if (size <= 0) {
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
data = calloc ((unsigned long int) size, sizeof (* data));
|
||||
|
||||
@ -90,7 +130,9 @@ void * allocate (int size) {
|
||||
}
|
||||
|
||||
void * reallocate (void * data, int size) {
|
||||
fatal_failure (size == 0, "reallocate: Failed to reallocate memory, size is zero.");
|
||||
if (size <= 0) {
|
||||
return (data);
|
||||
}
|
||||
|
||||
data = realloc (data, (unsigned long int) size);
|
||||
|
||||
@ -102,9 +144,9 @@ void * reallocate (void * data, int size) {
|
||||
}
|
||||
|
||||
void * deallocate (void * data) {
|
||||
fatal_failure (data == NULL, "deallocate: Failed to deallocate memory, data is null pointer.");
|
||||
|
||||
free (data);
|
||||
if (data != NULL) {
|
||||
free (data);
|
||||
}
|
||||
|
||||
return (NULL);
|
||||
}
|
||||
@ -467,7 +509,9 @@ int character_compare_array (char character, char * character_array, int count)
|
||||
int string_length (char * string) {
|
||||
int length = 0;
|
||||
|
||||
fatal_failure (string == NULL, "string_length: String is null pointer.");
|
||||
if (string == NULL) {
|
||||
return (0);
|
||||
}
|
||||
|
||||
for (length = 0; string [length] != '\0'; ++length);
|
||||
|
||||
@ -490,8 +534,9 @@ void string_reverse (char * string) {
|
||||
void string_delete (char * string, int length) {
|
||||
int i;
|
||||
|
||||
fatal_failure (string == NULL, "string_delete: String is null pointer.");
|
||||
fatal_failure (length == 0, "string_delete: String length is zero.");
|
||||
if ((string == NULL) || (length <= 0)) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (i = 0; i != length; ++i) {
|
||||
string [i] = '\0';
|
||||
@ -514,33 +559,29 @@ int string_compare (char * string_0, char * string_1) {
|
||||
}
|
||||
|
||||
void string_copy (char * string_0, char * string_1) {
|
||||
int i = 0;
|
||||
int length = 0;
|
||||
int i = 0;
|
||||
|
||||
fatal_failure (string_0 == NULL, "string_copy: Destination string is null pointer.");
|
||||
fatal_failure (string_1 == NULL, "string_copy: Source string is null pointer.");
|
||||
|
||||
length = string_length (string_1);
|
||||
|
||||
for (i = 0; i != length; ++i) {
|
||||
for (i = 0; i != string_length (string_1) + 1; ++i) {
|
||||
string_0 [i] = string_1 [i];
|
||||
}
|
||||
}
|
||||
|
||||
void string_concatenate (char * string_0, char * string_1) {
|
||||
int i = 0;
|
||||
int length_0 = 0;
|
||||
int length_1 = 0;
|
||||
|
||||
fatal_failure (string_0 == NULL, "string_concatenate: Destination string is null pointer.");
|
||||
fatal_failure (string_1 == NULL, "string_concatenate: Source string is null pointer.");
|
||||
|
||||
length_0 = string_length (string_0);
|
||||
length_1 = string_length (string_1);
|
||||
string_0 += string_length (string_0);
|
||||
|
||||
for (i = 0; i != length_1; ++i) {
|
||||
string_0 [length_0 + i] = string_1 [i];
|
||||
while (* string_1 != '\0') {
|
||||
* string_0++ = * string_1++;
|
||||
/*++string_0;
|
||||
++string_1;*/
|
||||
}
|
||||
|
||||
* string_0 = '\0';
|
||||
}
|
||||
|
||||
int string_compare_limit (char * string_0, char * string_1, int limit) {
|
||||
@ -635,7 +676,7 @@ int memory_compare (void * memory, void * source, int length) {
|
||||
fatal_failure (source == NULL, "memory_compare: Source is null pointer.");
|
||||
|
||||
if (length <= 0) {
|
||||
return;
|
||||
return (-1);
|
||||
}
|
||||
|
||||
for (i = 0; (cast_0 [i] != '\0') && (cast_1 [i] != '\0'); ++i) {
|
||||
@ -702,7 +743,12 @@ int encode_byte (char * byte) {
|
||||
}
|
||||
|
||||
char * decode_byte (int byte) {
|
||||
static char * decode = " ";
|
||||
char * decode = " ";
|
||||
|
||||
fatal_failure ((byte <= -1) || (byte >= 256), "decode_byte: Byte is out of range.");
|
||||
|
||||
decode [0] = byte / 16;
|
||||
decode [1] = byte % 16;
|
||||
|
||||
return (decode);
|
||||
}
|
||||
|
62
xtandard.h
62
xtandard.h
@ -14,54 +14,39 @@
|
||||
#include <fcntl.h>
|
||||
|
||||
enum {
|
||||
EFFECT_NORMAL,
|
||||
EFFECT_BOLD,
|
||||
EFFECT_DARK,
|
||||
EFFECT_ITALIC,
|
||||
EFFECT_UNDERLINE,
|
||||
EFFECT_BLINK,
|
||||
EFFECT_UNDEFINED,
|
||||
EFFECT_REVERSE,
|
||||
LOG_SUCCESS, LOG_WARNING, LOG_FAILURE, LOG_COMMENT,
|
||||
LOG_COUNT
|
||||
};
|
||||
|
||||
enum {
|
||||
FILE_TYPE_TEXT, FILE_TYPE_COMMON_ASSEMBLY, FILE_TYPE_FLAT_ASSEMBLY, FILE_TYPE_GNU_ASSEMBLY,
|
||||
FILE_TYPE_NETWIDE_ASSEMBLY, FILE_TYPE_YET_ANOTHER_ASSEMBLY, FILE_TYPE_C_SOURCE, FILE_TYPE_C_HEADER,
|
||||
FILE_TYPE_ADA_BODY, FILE_TYPE_ADA_SPECIFICATION, FILE_TYPE_CPP_SOURCE, FILE_TYPE_CPP_HEADER,
|
||||
FILE_TYPE_COUNT
|
||||
};
|
||||
|
||||
enum {
|
||||
EFFECT_NORMAL, EFFECT_BOLD, EFFECT_DARK, EFFECT_ITALIC, EFFECT_UNDERLINE, EFFECT_BLINK, EFFECT_UNDEFINED, EFFECT_REVERSE,
|
||||
EFFECT_COUNT
|
||||
};
|
||||
|
||||
enum {
|
||||
COLOUR_GREY,
|
||||
COLOUR_RED,
|
||||
COLOUR_GREEN,
|
||||
COLOUR_YELLOW,
|
||||
COLOUR_BLUE,
|
||||
COLOUR_PINK,
|
||||
COLOUR_CYAN,
|
||||
COLOUR_WHITE,
|
||||
COLOUR_GREY, COLOUR_RED, COLOUR_GREEN, COLOUR_YELLOW, COLOUR_BLUE, COLOUR_PINK, COLOUR_CYAN, COLOUR_WHITE,
|
||||
COLOUR_COUNT
|
||||
};
|
||||
|
||||
enum {
|
||||
FILE_TYPE_TEXT,
|
||||
FILE_TYPE_COMMON_ASSEMBLY,
|
||||
FILE_TYPE_FLAT_ASSEMBLY,
|
||||
FILE_TYPE_GNU_ASSEMBLY,
|
||||
FILE_TYPE_NETWIDE_ASSEMBLY,
|
||||
FILE_TYPE_YET_ANOTHER_ASSEMBLY,
|
||||
FILE_TYPE_C_SOURCE,
|
||||
FILE_TYPE_C_HEADER,
|
||||
FILE_TYPE_ADA_BODY,
|
||||
FILE_TYPE_ADA_SPECIFICATION,
|
||||
FILE_TYPE_CPP_SOURCE,
|
||||
FILE_TYPE_CPP_HEADER,
|
||||
FILE_TYPE_COUNT
|
||||
};
|
||||
|
||||
extern char * program_name;
|
||||
extern char * program_mode;
|
||||
extern char * program_license;
|
||||
|
||||
extern int argument_count;
|
||||
extern char * * argument_nick;
|
||||
extern char * * argument_name;
|
||||
extern char * argument_input;
|
||||
extern char * argument_output;
|
||||
extern char * log_notify;
|
||||
|
||||
extern int argument_count;
|
||||
extern char * * argument_nick;
|
||||
extern char * * argument_name;
|
||||
extern char * argument_input;
|
||||
extern char * argument_output;
|
||||
|
||||
extern void (* * argument_function) (void);
|
||||
|
||||
extern int file_list_active;
|
||||
@ -74,6 +59,9 @@ extern char * * file_list_data;
|
||||
extern void in (void *, int);
|
||||
extern void out (void *, int);
|
||||
|
||||
extern void log_in (int, int, char *);
|
||||
extern void log_out (void);
|
||||
|
||||
extern void echo (char *);
|
||||
extern void echo_new_line (void);
|
||||
extern void echo_byte (int);
|
||||
|
Loading…
Reference in New Issue
Block a user