aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDouglas B. Rumbaugh <doug@douglasrumbaugh.com>2025-11-01 14:53:14 -0400
committerDouglas B. Rumbaugh <doug@douglasrumbaugh.com>2025-11-01 14:53:14 -0400
commitddcf611815c145b1fadca042e65648a7a81cc497 (patch)
tree9e11e5a372f2df528d162d17050eada50ad1db56 /include
parent406889ed5c780f0e28703b143c72bbf035280b25 (diff)
downloadhush-ddcf611815c145b1fadca042e65648a7a81cc497.tar.gz
Added variable support
Diffstat (limited to 'include')
-rw-r--r--include/command.h8
-rw-r--r--include/variables.h29
2 files changed, 33 insertions, 4 deletions
diff --git a/include/command.h b/include/command.h
index f44c103..2948aca 100644
--- a/include/command.h
+++ b/include/command.h
@@ -11,16 +11,16 @@
#include "config.h"
typedef struct command {
- char *command;
- char *infile;
- char *outfile;
+ const char *command;
+ const char *infile;
+ const char *outfile;
struct command *next;
struct command *prev;
pid_t pid;
int pipe[2];
- char *args[MAX_ARGUMENT_CNT + 2];
+ const char *args[MAX_ARGUMENT_CNT + 2];
} command;
diff --git a/include/variables.h b/include/variables.h
new file mode 100644
index 0000000..7511690
--- /dev/null
+++ b/include/variables.h
@@ -0,0 +1,29 @@
+/*
+ *
+ */
+#ifndef H_HUSH_VARIABLES
+#define H_HUSH_VARIABLES
+
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "strmap.h"
+#include "hashfuncs.h"
+
+static inline bool is_variable(const char *token) {
+ return (token) ? token[0] == '$' : false;
+}
+
+bool init_variable_store(void);
+
+bool add_variable(const char *key, const char *val);
+
+const char *get_variable(const char *key);
+
+bool promote_variable_to_env(const char *key);
+
+void destroy_variable_store();
+
+
+#endif