summaryrefslogtreecommitdiff
path: root/src/utils.c
diff options
context:
space:
mode:
authorÁkos Kőrösi <korakos99@gmail.com>2026-05-21 21:16:56 +0200
committerÁkos Kőrösi <korakos99@gmail.com>2026-05-21 21:16:56 +0200
commit6a04328f732522d20b10138fc804ac8c7ab9a9d3 (patch)
tree71b9122292cc02caa080e38cd4ad2ab97a50473b /src/utils.c
parent3c283f1e2f4ef6b89481480c43fbc4408cd71a51 (diff)
set up dealiasing
Diffstat (limited to 'src/utils.c')
-rw-r--r--src/utils.c25
1 files changed, 20 insertions, 5 deletions
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;
+}
+
+
+