summaryrefslogtreecommitdiff
path: root/comp/lucas-standen-NEA/code2/stdlib
diff options
context:
space:
mode:
authorthing1 <thing1@seacrossedlovers.xyz>2024-10-01 08:55:32 +0100
committerthing1 <thing1@seacrossedlovers.xyz>2024-10-01 08:55:32 +0100
commitef8cf00bbf9f74eb3b6aabc1d99f5358e81741c7 (patch)
tree3479ca1b82573426151cb270c63a588af737d3c0 /comp/lucas-standen-NEA/code2/stdlib
parentdc7732b6f073d5450657d94c815ca445a1a08fbd (diff)
added some cool examples to zpy and got electronics working
Diffstat (limited to 'comp/lucas-standen-NEA/code2/stdlib')
-rw-r--r--comp/lucas-standen-NEA/code2/stdlib/String/String.c12
-rw-r--r--comp/lucas-standen-NEA/code2/stdlib/String/String.h5
2 files changed, 17 insertions, 0 deletions
diff --git a/comp/lucas-standen-NEA/code2/stdlib/String/String.c b/comp/lucas-standen-NEA/code2/stdlib/String/String.c
index 2814a1c..6f11119 100644
--- a/comp/lucas-standen-NEA/code2/stdlib/String/String.c
+++ b/comp/lucas-standen-NEA/code2/stdlib/String/String.c
@@ -11,6 +11,16 @@ void __stringfree(string *self){
free(self);
}
+void __stringprint(string *self){
+ printf("%s\n", self->_str);
+}
+
+void __stringinput(string *self, size_t len){
+ char *tmp = calloc(0, len);
+ fgets(tmp, len, stdin);
+ self->fromcstring(self, tmp);
+}
+
void __stringappendchar(string *self, char c){
self->_len++;
self->_str = realloc(self->_str, self->_len);
@@ -132,6 +142,8 @@ string *String(char *cstring){ // returns an allocated String from a C string in
str->fromcstring = &__stringfromcstring;
str->tocstring = &__stringtocstring;
str->split = &__stringsplit;
+ str->print = &__stringprint;
+ str->input = &__stringinput;
return str;
}
diff --git a/comp/lucas-standen-NEA/code2/stdlib/String/String.h b/comp/lucas-standen-NEA/code2/stdlib/String/String.h
index 865defe..b1d07f6 100644
--- a/comp/lucas-standen-NEA/code2/stdlib/String/String.h
+++ b/comp/lucas-standen-NEA/code2/stdlib/String/String.h
@@ -13,6 +13,8 @@ typedef struct string {
void (*fromcstring)(string *, char *);
char *(*tocstring)(string *);
string **(*split)(string *, char);
+ void (*print)(string *);
+ void (*input)(string *, size_t);
} string;
string *String(char *cstring);
@@ -25,3 +27,6 @@ int __stringcmp(string *str1, string *str2);
void __stringfromcstring(string *self, char *cstring);
char *__stringtocstring(string *self);
string **__stringsplit(string *self, char delim);
+void *print(string *self);
+void *input(string *self, size_t len);
+