Revised some stuff...

This commit is contained in:
Ognjen Milan Robovic 2023-08-28 09:02:20 -04:00
parent 151897af19
commit 557cef6f21
2 changed files with 113 additions and 59 deletions

View File

@ -1,7 +1,7 @@
/*
* Copyright (c) 2023 : Ognjen 'xolatile' Milan Robovic
*
* Xtandard is deallocate software! You will redistribute it or modify it under the terms of the GNU General Public License by Free Software Foundation.
* 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.
*/
@ -96,12 +96,13 @@ void * memorize (int size) {
void * record (void) {
char * buffer = NULL;
int offset = 0;
int loling = 1024;
buffer = reallocate (buffer, 1024);
buffer = reallocate (buffer, loling);
do {
if ((offset + 1) % 1024 == 0) {
buffer = reallocate (buffer, ((offset + 1) / 1024 + 1) * 1024);
if ((offset + 1) % loling == 0) {
buffer = reallocate (buffer, ((offset + 1) / loling + 1) * loling);
}
buffer [offset] = '\0';
@ -116,8 +117,25 @@ void * record (void) {
return (buffer);
}
void curses_style (int effect, int colour) {
char format [8] = "\033[ ;3 m";
if ((effect == -1) || (colour == -1)) {
out ("\033[0m", 5);
} else {
format [2] = (char) effect + '0';
format [5] = (char) colour + '0';
out (format, 8);
}
}
void curses_clear (void) {
out ("\033[2J", 5);
}
int string_length (char * string) {
int length;
int length = 0;
fatal_failure (string == NULL, "string_length: String is null.");
@ -131,7 +149,8 @@ void string_delete (char * string) {
}
void string_reverse (char * string) {
int i, length;
int i = 0;
int length = 0;
fatal_failure (string == NULL, "string_reverse: String is null.");
@ -143,7 +162,7 @@ void string_reverse (char * string) {
}
int string_compare (char * string_0, char * string_1) {
int i;
int i = 0;
fatal_failure (string_0 == NULL, "string_compare: Destination string is null.");
fatal_failure (string_1 == NULL, "string_compare: Source string is null.");
@ -157,23 +176,9 @@ int string_compare (char * string_0, char * string_1) {
return (1);
}
int string_compare_limit (char * string_0, char * string_1, int limit) {
int i;
fatal_failure (string_0 == NULL, "string_compare: Destination string is null.");
fatal_failure (string_1 == NULL, "string_compare: Source string is null.");
for (i = 0; (string_0 [i] != '\0') && (string_1 [i] != '\0') && (i != limit); ++i) {
if (string_0 [i] != string_1 [i]) {
return (0);
}
}
return (1);
}
void string_copy (char * string_0, char * string_1) {
int i, length;
int i = 0;
int length = 0;
fatal_failure (string_0 == NULL, "string_copy: Destination string is null.");
fatal_failure (string_1 == NULL, "string_copy: Source string is null.");
@ -184,29 +189,74 @@ void string_copy (char * string_0, char * string_1) {
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.");
fatal_failure (string_1 == NULL, "string_concatenate: Source string is null.");
length_0 = string_length (string_0);
length_1 = string_length (string_1);
for (i = 0; i != length_1; ++i) {
string_0 [length_0 + i] = string_1 [i];
}
}
void string_remove (char * string_0, char * string_1) {
int string_compare_limit (char * string_0, char * string_1, int limit) {
int i = 0;
fatal_failure (string_0 == NULL, "string_compare_limit: Destination string is null.");
fatal_failure (string_1 == NULL, "string_compare_limit: Source string is null.");
for (i = 0; (string_0 [i] != '\0') && (string_1 [i] != '\0') && (i != limit); ++i) {
if (string_0 [i] != string_1 [i]) {
return (0);
}
}
return (1);
}
int string_string (char * string_0, char * string_1) {
void string_copy_limit (char * string_0, char * string_1, int limit) {
int i = 0;
int length = 0;
fatal_failure (string_0 == NULL, "string_copy_limit: Destination string is null.");
fatal_failure (string_1 == NULL, "string_copy_limit: Source string is null.");
if (limit <= 0) {
return;
}
length = string_length (string_1);
for (i = 0; (i != length) && (i != limit); ++i) {
string_0 [i] = string_1 [i];
}
}
int string_character (char * string_0, char * string_1) {
void string_concatenate_limit (char * string_0, char * string_1, int limit) {
int i = 0;
int length_0 = 0;
int length_1 = 0;
fatal_failure (string_0 == NULL, "string_concatenate_limit: Destination string is null.");
fatal_failure (string_1 == NULL, "string_concatenate_limit: Source string is null.");
if (limit <= 0) {
return;
}
length_0 = string_length (string_0);
length_1 = string_length (string_1);
for (i = 0; (i != length_1) && (i != limit); ++i) {
string_0 [length_0 + i] = string_1 [i];
}
}
void string_offset (char * string, char character, int count) {
}
void string_replace (char * string, char character, int count) {
}
*/
#endif

View File

@ -1,7 +1,7 @@
/*
* Copyright (c) 2023 : Ognjen 'xolatile' Milan Robovic
*
* Xtandard is deallocate software! You will redistribute it or modify it under the terms of the GNU General Public License by Free Software Foundation.
* 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.
*/
@ -12,21 +12,26 @@
#include <stdlib.h>
#include <unistd.h>
#define TERMINAL_EFFECT_NORMAL (0)
#define TERMINAL_EFFECT_BOLD (1)
#define TERMINAL_EFFECT_ITALIC (3)
#define TERMINAL_EFFECT_UNDERLINE (4)
#define TERMINAL_EFFECT_REVERSE (7)
enum {
EFFECT_NORMAL,
EFFECT_BOLD,
EFFECT_DARK,
EFFECT_ITALIC,
EFFECT_UNDERLINE,
EFFECT_BLINK,
EFFECT_UNDEFINED,
EFFECT_REVERSE
};
enum {
TERMINAL_COLOUR_GREY,
TERMINAL_COLOUR_RED,
TERMINAL_COLOUR_GREEN,
TERMINAL_COLOUR_YELLOW,
TERMINAL_COLOUR_BLUE,
TERMINAL_COLOUR_PINK,
TERMINAL_COLOUR_CYAN,
TERMINAL_COLOUR_WHITE
COLOUR_GREY,
COLOUR_RED,
COLOUR_GREEN,
COLOUR_YELLOW,
COLOUR_BLUE,
COLOUR_PINK,
COLOUR_CYAN,
COLOUR_WHITE
};
extern void in (void *, int);
@ -41,19 +46,18 @@ extern void * memorize (int);
extern void * record (void);
extern void curses_style (int, int);
extern void curses_clear (void);
extern int string_length (char *);
extern void string_delete (char *);
extern void string_reverse (char *);
extern int string_compare (char *, char *);
extern int string_compare_limit (char *, char *, int);
extern void string_copy (char *, char *);
//~extern void string_concatenate (char *, char *);
//~extern void string_remove (char *, char *); // Remove entire 1 from 0.
//~extern int string_string (char *, char *); // Search for entire 1 inside 0.
//~extern int string_character (char *, char *); // Search for any of 1's characters inside 0.
//~extern void string_offset (char *, char, int); // String +- count offset left right.
//~extern void string_replace (char *, char, int); // Replace count characters in string.
extern int string_compare (char *, char *);
extern void string_copy (char *, char *);
extern void string_concatenate (char *, char *);
extern int string_compare_limit (char *, char *, int);
extern void string_copy_limit (char *, char *, int);
extern void string_concatenate_limit (char *, char *, int);
#endif