summaryrefslogtreecommitdiff
path: root/lib9p_util
diff options
context:
space:
mode:
authorLuke T. Shumaker <lukeshu@lukeshu.com>2025-01-12 23:08:14 -0700
committerLuke T. Shumaker <lukeshu@lukeshu.com>2025-01-19 15:43:29 -0700
commitcd9667d6be072a9c736e49c679b55852f7b30a6c (patch)
treec99c10d4c0caea96cc5a5420532eccaa60efe976 /lib9p_util
parent6381e08fd03e322d7d95973ca00c5605afb67707 (diff)
lib9p: Don't nul-terminate strings, add some string utils
Diffstat (limited to 'lib9p_util')
-rw-r--r--lib9p_util/static.c29
1 files changed, 13 insertions, 16 deletions
diff --git a/lib9p_util/static.c b/lib9p_util/static.c
index 62cb147..7851714 100644
--- a/lib9p_util/static.c
+++ b/lib9p_util/static.c
@@ -10,9 +10,6 @@
#include <util9p/static.h>
-#define p9_str(cstr) ((struct lib9p_s){ .len = strlen(cstr), .utf8 = cstr })
-#define p9_nulstr ((struct lib9p_s){ .len = 0, .utf8 = NULL })
-
/* common *********************************************************************/
static implements_lib9p_srv_file *util9p_static_common_clone(implements_lib9p_srv_file *_self, struct lib9p_srv_ctx *ctx) {
@@ -75,11 +72,11 @@ static struct lib9p_stat util9p_static_dir_stat(implements_lib9p_srv_file *_self
.file_atime = self->atime,
.file_mtime = self->mtime,
.file_size = 0,
- .file_name = p9_str(self->name),
- .file_owner_uid = p9_str(self->u_name),
- .file_owner_gid = p9_str(self->g_name),
- .file_last_modified_uid = p9_str(self->m_name),
- .file_extension = p9_nulstr,
+ .file_name = lib9p_str(self->name),
+ .file_owner_uid = lib9p_str(self->u_name),
+ .file_owner_gid = lib9p_str(self->g_name),
+ .file_last_modified_uid = lib9p_str(self->m_name),
+ .file_extension = lib9p_str(NULL),
.file_owner_n_uid = self->u_num,
.file_owner_n_gid = self->g_num,
.file_last_modified_n_uid = self->m_num,
@@ -87,7 +84,7 @@ static struct lib9p_stat util9p_static_dir_stat(implements_lib9p_srv_file *_self
}
static implements_lib9p_srv_file *util9p_static_dir_dopen(implements_lib9p_srv_file *_self, struct lib9p_srv_ctx *ctx,
- char *childname) {
+ struct lib9p_s childname) {
struct util9p_static_dir *self = VCALL_SELF(struct util9p_static_dir, implements_lib9p_srv_file, _self);
assert(self);
assert(ctx);
@@ -98,7 +95,7 @@ static implements_lib9p_srv_file *util9p_static_dir_dopen(implements_lib9p_srv_f
if (lib9p_ctx_has_error(&ctx->basectx))
break;
lib9p_stat_assert(stat);
- if (strcmp(stat.file_name.utf8, childname) == 0)
+ if (lib9p_str_eq(stat.file_name, childname))
return filep;
}
lib9p_error(&ctx->basectx,
@@ -107,7 +104,7 @@ static implements_lib9p_srv_file *util9p_static_dir_dopen(implements_lib9p_srv_f
}
static implements_lib9p_srv_file *util9p_static_dir_dcreate(implements_lib9p_srv_file *_self, struct lib9p_srv_ctx *ctx,
- char *LM_UNUSED(childname),
+ struct lib9p_s LM_UNUSED(childname),
lib9p_dm_t LM_UNUSED(perm), lib9p_o_t LM_UNUSED(flags)) {
struct util9p_static_dir *self = VCALL_SELF(struct util9p_static_dir, implements_lib9p_srv_file, _self);
assert(self);
@@ -192,11 +189,11 @@ static struct lib9p_stat util9p_static_file_stat(implements_lib9p_srv_file *_sel
.file_atime = self->atime,
.file_mtime = self->mtime,
.file_size = (uint64_t)util9p_static_file_size(self),
- .file_name = p9_str(self->name),
- .file_owner_uid = p9_str(self->u_name),
- .file_owner_gid = p9_str(self->g_name),
- .file_last_modified_uid = p9_str(self->m_name),
- .file_extension = p9_nulstr,
+ .file_name = lib9p_str(self->name),
+ .file_owner_uid = lib9p_str(self->u_name),
+ .file_owner_gid = lib9p_str(self->g_name),
+ .file_last_modified_uid = lib9p_str(self->m_name),
+ .file_extension = lib9p_str(NULL),
.file_owner_n_uid = self->u_num,
.file_owner_n_gid = self->g_num,
.file_last_modified_n_uid = self->m_num,