From 0c8b2f8e99fdb60ed6ac2648ee49d97b1d675557 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Fri, 13 Sep 2024 20:10:42 -0400 Subject: Rename c_string.{c,h} -> c_strings.{c,h} --- Makefile | 2 +- builtins/c_string.c | 55 ---------------------------------------------------- builtins/c_string.h | 18 ----------------- builtins/c_strings.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++ builtins/c_strings.h | 18 +++++++++++++++++ builtins/tables.c | 2 +- builtins/tomo.h | 2 +- 7 files changed, 76 insertions(+), 76 deletions(-) delete mode 100644 builtins/c_string.c delete mode 100644 builtins/c_string.h create mode 100644 builtins/c_strings.c create mode 100644 builtins/c_strings.h diff --git a/Makefile b/Makefile index b82efdb8..8cbfef32 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,7 @@ CFLAGS=$(CCONFIG) $(EXTRA) $(CWARN) $(G) $(O) $(OSFLAGS) CFLAGS_PLACEHOLDER="$$(echo -e '\033[2m\033[m')" LDLIBS=-lgc -lcord -lm -lunistring -lgmp -ldl BUILTIN_OBJS=builtins/siphash.o builtins/arrays.o builtins/bools.o builtins/channels.o builtins/nums.o builtins/integers.o \ - builtins/pointers.o builtins/memory.o builtins/text.o builtins/threads.o builtins/c_string.o builtins/tables.o \ + builtins/pointers.o builtins/memory.o builtins/text.o builtins/threads.o builtins/c_strings.o builtins/tables.o \ builtins/types.o builtins/util.o builtins/files.o builtins/ranges.o builtins/shell.o builtins/paths.o \ builtins/optionals.o builtins/patterns.o builtins/metamethods.o builtins/functiontype.o builtins/stdlib.o TESTS=$(patsubst %.tm,%.tm.testresult,$(wildcard test/*.tm)) diff --git a/builtins/c_string.c b/builtins/c_string.c deleted file mode 100644 index 392565ab..00000000 --- a/builtins/c_string.c +++ /dev/null @@ -1,55 +0,0 @@ -// Type info and methods for CString datatype (char*) -#include -#include -#include -#include -#include -#include - -#include "text.h" -#include "siphash.h" -#include "util.h" - -public Text_t CString$as_text(const char **c_string, bool colorize, const TypeInfo *info) -{ - (void)info; - if (!c_string) return Text("CString"); - Text_t text = Text$from_str(*c_string); - return Text$concat(colorize ? Text("\x1b[34mCString\x1b[m(") : Text("CString("), Text$quoted(text, colorize), Text(")")); -} - -public Text_t CString$as_text_simple(const char *str) -{ - return Text$format("%s", str); -} - -PUREFUNC public int32_t CString$compare(const char **x, const char **y) -{ - if (x == y) - return 0; - - if (!*x != !*y) - return (!*y) - (!*x); - - return strcmp(*x, *y); -} - -PUREFUNC public bool CString$equal(const char **x, const char **y) -{ - return CString$compare(x, y) == 0; -} - -PUREFUNC public uint64_t CString$hash(const char **c_str) -{ - if (!*c_str) return 0; - return siphash24((void*)*c_str, strlen(*c_str)); -} - -public const TypeInfo CString$info = { - .size=sizeof(char*), - .align=__alignof__(char*), - .tag=CStringInfo, - .CustomInfo={.as_text=(void*)CString$as_text, .compare=(void*)CString$compare, .equal=(void*)CString$equal, .hash=(void*)CString$hash}, -}; - -// vim: ts=4 sw=0 et cino=L2,l1,(0,W4,m1,\:0 diff --git a/builtins/c_string.h b/builtins/c_string.h deleted file mode 100644 index d4c1caa7..00000000 --- a/builtins/c_string.h +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once - -// Type info and methods for CString datatype, which represents C's `char*` - -#include -#include - -#include "types.h" - -Text_t CString$as_text(char **str, bool colorize, const TypeInfo *info); -Text_t CString$as_text_simple(const char *str); -PUREFUNC int CString$compare(const char **x, const char **y); -PUREFUNC bool CString$equal(const char **x, const char **y); -PUREFUNC uint64_t CString$hash(const char **str); - -extern const TypeInfo CString$info; - -// vim: ts=4 sw=0 et cino=L2,l1,(0,W4,m1,\:0 diff --git a/builtins/c_strings.c b/builtins/c_strings.c new file mode 100644 index 00000000..392565ab --- /dev/null +++ b/builtins/c_strings.c @@ -0,0 +1,55 @@ +// Type info and methods for CString datatype (char*) +#include +#include +#include +#include +#include +#include + +#include "text.h" +#include "siphash.h" +#include "util.h" + +public Text_t CString$as_text(const char **c_string, bool colorize, const TypeInfo *info) +{ + (void)info; + if (!c_string) return Text("CString"); + Text_t text = Text$from_str(*c_string); + return Text$concat(colorize ? Text("\x1b[34mCString\x1b[m(") : Text("CString("), Text$quoted(text, colorize), Text(")")); +} + +public Text_t CString$as_text_simple(const char *str) +{ + return Text$format("%s", str); +} + +PUREFUNC public int32_t CString$compare(const char **x, const char **y) +{ + if (x == y) + return 0; + + if (!*x != !*y) + return (!*y) - (!*x); + + return strcmp(*x, *y); +} + +PUREFUNC public bool CString$equal(const char **x, const char **y) +{ + return CString$compare(x, y) == 0; +} + +PUREFUNC public uint64_t CString$hash(const char **c_str) +{ + if (!*c_str) return 0; + return siphash24((void*)*c_str, strlen(*c_str)); +} + +public const TypeInfo CString$info = { + .size=sizeof(char*), + .align=__alignof__(char*), + .tag=CStringInfo, + .CustomInfo={.as_text=(void*)CString$as_text, .compare=(void*)CString$compare, .equal=(void*)CString$equal, .hash=(void*)CString$hash}, +}; + +// vim: ts=4 sw=0 et cino=L2,l1,(0,W4,m1,\:0 diff --git a/builtins/c_strings.h b/builtins/c_strings.h new file mode 100644 index 00000000..d4c1caa7 --- /dev/null +++ b/builtins/c_strings.h @@ -0,0 +1,18 @@ +#pragma once + +// Type info and methods for CString datatype, which represents C's `char*` + +#include +#include + +#include "types.h" + +Text_t CString$as_text(char **str, bool colorize, const TypeInfo *info); +Text_t CString$as_text_simple(const char *str); +PUREFUNC int CString$compare(const char **x, const char **y); +PUREFUNC bool CString$equal(const char **x, const char **y); +PUREFUNC uint64_t CString$hash(const char **str); + +extern const TypeInfo CString$info; + +// vim: ts=4 sw=0 et cino=L2,l1,(0,W4,m1,\:0 diff --git a/builtins/tables.c b/builtins/tables.c index 17e7339f..e644fd23 100644 --- a/builtins/tables.c +++ b/builtins/tables.c @@ -17,7 +17,7 @@ #include #include "arrays.h" -#include "c_string.h" +#include "c_strings.h" #include "datatypes.h" #include "memory.h" #include "metamethods.h" diff --git a/builtins/tomo.h b/builtins/tomo.h index fdd3ea0c..af644cac 100644 --- a/builtins/tomo.h +++ b/builtins/tomo.h @@ -11,7 +11,7 @@ #include "arrays.h" #include "bools.h" -#include "c_string.h" +#include "c_strings.h" #include "channels.h" #include "datatypes.h" #include "functiontype.h" -- cgit v1.2.3