xtandard/xtandard.h

166 lines
7.6 KiB
C
Raw Normal View History

2023-08-25 16:57:12 -04:00
/*
Copyright (c) 2023 : Ognjen 'xolatile' Milan Robovic
Xtandard is free software! You will redistribute it or modify it under the terms of the GNU General Public License by Free Software Foundation.
And when you do redistribute it or modify it, it will use either version 3 of the License, or (at yours truly opinion) any later version.
It is distributed in the hope that it will be useful or harmful, it really depends... But no warranty what so ever, seriously. See GNU/GPLv3.
*/
2023-08-25 16:57:12 -04:00
#ifndef XTANDARD_HEADER
#define XTANDARD_HEADER
#define SIGNAL_DELETE (0X7F)
#define SIGNAL_ARROW_UP (0X415B1B)
#define SIGNAL_ARROW_DOWN (0X425B1B)
#define SIGNAL_ARROW_RIGHT (0X435B1B)
#define SIGNAL_ARROW_LEFT (0X445B1B)
#define SIGNAL_CONTROL (0X1000000)
#define SIGNAL_SHIFT (0X2000000)
#define SIGNAL_ALTERNATE (0X4000000)
#define SIGNAL_SYSTEM (0X8000000)
2023-10-07 02:45:08 -04:00
2023-08-28 09:02:20 -04:00
enum {
2023-10-01 06:06:40 -04:00
LOG_SUCCESS, LOG_WARNING, LOG_FAILURE, LOG_COMMENT,
LOG_COUNT
2023-08-28 09:02:20 -04:00
};
2023-08-25 16:57:12 -04:00
enum {
2023-10-01 06:06:40 -04:00
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
2023-08-25 16:57:12 -04:00
};
2023-09-17 14:28:03 -04:00
enum {
2023-10-07 02:45:08 -04:00
EFFECT_NORMAL, EFFECT_BOLD, EFFECT_ITALIC, EFFECT_UNDERLINE, EFFECT_BLINK, EFFECT_REVERSE,
2023-10-01 06:06:40 -04:00
EFFECT_COUNT
};
enum {
COLOUR_GREY, COLOUR_RED, COLOUR_GREEN, COLOUR_YELLOW, COLOUR_BLUE, COLOUR_PINK, COLOUR_CYAN, COLOUR_WHITE,
COLOUR_COUNT
2023-09-17 14:28:03 -04:00
};
2023-10-02 16:25:11 -04:00
enum {
CHARACTER_NULL, CHARACTER_START_HEADER, CHARACTER_START_TEXT, CHARACTER_END_TEXT,
CHARACTER_END_TRANSMISSION, CHARACTER_ENQUIRY, CHARACTER_ACKNOWLEDGE, CHARACTER_BELL,
CHARACTER_BACKSPACE, CHARACTER_TAB_HORIZONTAL, CHARACTER_LINE_FEED, CHARACTER_TAB_VERTICAL,
CHARACTER_FORM_FEED, CHARACTER_CARRIAGE_RETURN, CHARACTER_SHIFT_OUT, CHARACTER_SHIFT_IN,
CHARACTER_DATA_LINK_ESCAPE, CHARACTER_DEVICE_CONTROL_1, CHARACTER_DEVICE_CONTROL_2, CHARACTER_DEVICE_CONTROL_3,
CHARACTER_DEVICE_CONTROL_4, CHARACTER_NOT_ACKNOWLEDGE, CHARACTER_SYNCHRONOUS_IDLE, CHARACTER_END_TRANSMISSION_BLOCK,
CHARACTER_CANCEL, CHARACTER_END_MEDIUM, CHARACTER_SUBSTITUTE, CHARACTER_ESCAPE,
CHARACTER_FILE_SEPARATOR, CHARACTER_GROUP_SEPARATOR, CHARACTER_RECORD_SEPARATOR, CHARACTER_UNIT_SEPARATOR,
CHARACTER_COUNT
};
enum {
2023-10-02 16:25:11 -04:00
SIGNAL_NONE,
SIGNAL_ANY,
2023-10-02 16:25:11 -04:00
SIGNAL_A, SIGNAL_B, SIGNAL_C, SIGNAL_D, SIGNAL_E, SIGNAL_F, SIGNAL_G, SIGNAL_H,
SIGNAL_I, SIGNAL_J, SIGNAL_K, SIGNAL_L, SIGNAL_M, SIGNAL_N, SIGNAL_O, SIGNAL_P,
SIGNAL_Q, SIGNAL_R, SIGNAL_S, SIGNAL_T, SIGNAL_U, SIGNAL_V, SIGNAL_W, SIGNAL_X,
SIGNAL_Y, SIGNAL_Z, SIGNAL_0, SIGNAL_1, SIGNAL_2, SIGNAL_3, SIGNAL_4, SIGNAL_5,
2023-10-07 02:45:08 -04:00
SIGNAL_6, SIGNAL_7, SIGNAL_8, SIGNAL_9, SIGNAL_ESCAPE, SIGNAL_TABULATOR, SIGNAL_RETURN, SIGNAL_NEW_LINE,
SIGNAL_SLASH, SIGNAL_BACKSLASH, SIGNAL_QUOTE, SIGNAL_BACKQUOTE, SIGNAL_SPACE, SIGNAL_BACKSPACE, SIGNAL_DOT, SIGNAL_COMMA,
SIGNAL_CITE, SIGNAL_CAPS_LOCK, SIGNAL_L_BRACKET, SIGNAL_R_BRACKET, SIGNAL_MINUS, SIGNAL_EQUAL,
2023-10-02 16:25:11 -04:00
SIGNAL_COUNT
};
extern void in (void * data, int size);
extern void out (void * data, int size);
2023-08-25 16:57:12 -04:00
extern void log_in (int type, int flag, char * data);
extern void log_out (char * name);
2023-10-04 15:11:46 -04:00
extern void echo (char * data);
extern void dump (char * name, char * data);
2023-10-01 06:06:40 -04:00
extern void echo_byte (int byte);
2023-09-05 12:29:48 -04:00
extern void fatal_failure (int condition, char * message);
2023-08-25 16:57:12 -04:00
extern void limit (int * value, int minimum, int maximum);
2023-09-20 07:45:17 -04:00
extern void * allocate (int size);
extern void * reallocate (void * data, int size);
extern void * deallocate (void * data);
extern void * memorize (int size);
2023-08-25 16:57:12 -04:00
extern void * record (void);
extern void argument_define (char * nick, char * name, void (* function) (void));
extern void argument_select (int count, char * * array);
2023-09-05 12:29:48 -04:00
extern void argument_delete (void);
extern int file_open (char * name, int mode);
extern int file_close (int file);
extern void file_read (int file, void * data, int size);
extern void file_write (int file, void * data, int size);
extern int file_seek (int file, int whence);
extern int file_size (char * name);
extern int file_type (char * name);
extern void * file_record (char * name);
extern char * file_import (char * name);
extern void file_export (char * name, void * data);
2023-10-31 07:06:25 -04:00
extern void file_list_import (char * name);
extern void file_list_export (char * name);
extern void file_list_insert_character (char character, int position);
extern void file_list_remove_character (int position);
extern void file_list_delete (void);
2023-09-05 14:22:23 -04:00
extern int character_is_uppercase (char character);
extern int character_is_lowercase (char character);
extern int character_is_digit (char character);
extern int character_is_blank (char character);
extern int character_is_alpha (char character);
extern int character_is_symbol (char character);
extern int character_is_visible (char character);
extern int character_is_invisible (char character);
extern int character_is_escape (char character);
extern int character_is_underscore (char character);
extern int character_is_hexadecimal (char character);
extern int character_compare_array (char character, char * character_array);
2023-11-03 08:25:15 -04:00
extern int character_count (char * string, char this, int from, int to, char stop);
2023-10-31 07:06:25 -04:00
extern int string_length (char * string);
2023-08-25 16:57:12 -04:00
2023-10-19 17:10:50 -04:00
extern char * string_reverse_limit (char * string, int limit);
extern char * string_reverse (char * string);
2023-09-05 14:22:23 -04:00
2023-10-19 17:10:50 -04:00
extern char * string_delete (char * string, int length);
2023-08-28 18:53:13 -04:00
2023-10-19 17:10:50 -04:00
extern int string_compare (char * string_0, char * string_1);
extern char * string_copy (char * string_0, char * string_1);
extern char * string_concatenate (char * string_0, char * string_1);
extern int string_compare_limit (char * string_0, char * string_1, int limit);
extern char * string_copy_limit (char * string_0, char * string_1, int limit);
extern char * string_concatenate_limit (char * string_0, char * string_1, int limit);
2023-08-25 16:57:12 -04:00
extern int string_split_space (char * string);
2023-09-10 14:42:06 -04:00
2023-10-29 06:57:18 -04:00
extern char * string_realign (char * string, int amount, char character);
extern void memory_delete (void * memory, int length);
2023-09-12 10:15:13 -04:00
extern int memory_compare (void * memory, void * source, int length);
extern void memory_copy (void * memory, void * source, int length);
2023-09-12 10:15:13 -04:00
extern void terminal_clear (void);
extern void terminal_colour (int colour, int effect);
2023-09-20 06:27:59 -04:00
extern void terminal_cancel (void);
extern void terminal_show_cursor (int show);
extern int encode_byte (char * byte);
2023-10-19 17:10:50 -04:00
extern char * decode_byte (int byte);
extern char * number_to_string (int number);
2023-09-18 15:36:50 -04:00
extern char * format_to_string (int number, int sign, int base, int amount, char character);
2023-08-25 16:57:12 -04:00
#endif