From 6a04328f732522d20b10138fc804ac8c7ab9a9d3 Mon Sep 17 00:00:00 2001 From: Ákos Kőrösi Date: Thu, 21 May 2026 21:16:56 +0200 Subject: set up dealiasing --- src/utils.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) (limited to 'src/utils.c') diff --git a/src/utils.c b/src/utils.c index 1f08445..1110194 100644 --- a/src/utils.c +++ b/src/utils.c @@ -23,22 +23,24 @@ char* inner(String* str) { } -void set_map_pair(KeyValMap* map, char* key, char* val) { -for (int i = 0; i < map->count; i++) { +void set_map_pair(KeyValMap* map, StrPair pair) { + for (int i = 0; i < map->count; i++) { char* key_i = get_from_KeyValMap(map, i)->key; if (key_i == NULL) continue; - if (strcmp(key_i, key) == 0) { + if (strcmp(key_i, pair.key) == 0) { // TODO: maybe copy instead strcpy( map->blocks[i / map->block_size][i % map->block_size].val, - val + pair.val ); - break; + return; } } + push_to_KeyValMap(map, pair); } MaybeStr get_map_value(KeyValMap* map, char* key) { + printf("%d\n", map->count); for (int i = 0; i < map->count; i++) { char* key_i = get_from_KeyValMap(map, i)->key; if (key_i == NULL) continue; @@ -69,3 +71,16 @@ char* get_var(char* varname, ShellState* shstate) { if (maybe_varval.some == true) return maybe_varval.value; return getenv(varname); } + + +bool is_identifier(char* str) { + if (str == NULL) return false; + if (!isalpha(str[0]) && str[0] != '_') return false; +for (int i = 1; str[i] != '\0'; i++) { + if (!isalnum(str[i]) && str[i] != '_') return false; + } + return true; +} + + + -- cgit v1.2.3