diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/spm.h | 45 |
1 files changed, 42 insertions, 3 deletions
diff --git a/include/spm.h b/include/spm.h index a8a4ab7..ad30b9d 100644 --- a/include/spm.h +++ b/include/spm.h @@ -29,13 +29,33 @@ // spm.c #define SYSERROR stderr, "%s:%s:%d: %s\n", basename(__FILE__), __FUNCTION__, __LINE__, strerror(errno) #define DIRSEP_WIN32 '\\' +#define DIRSEPS_WIN32 "\\" +#define PATHSEP_WIN32 ';' +#define PATHSEPS_WIN32 ";" #define DIRSEP_UNIX '/' +#define DIRSEPS_UNIX "/" +#define PATHSEP_UNIX ';' +#define PATHSEPS_UNIX ";" #if defined(_WIN32) #define DIRSEP DIRSEP_WIN32 +#define DIRSEPS DIRSEPS_WIN32 #define NOT_DIRSEP DIRSEP_UNIX +#define NOT_DIRSEPS DIRSEPS_UNIX + +#define PATHSEP PATHSEP_WIN32 +#define PATHSEPS PATHSEPS_WIN32 +#define NOT_PATHSEP PATHSEP_UNIX +#define NOT_PATHSEPS PATHSEPS_UNIX #else #define DIRSEP DIRSEP_UNIX +#define DIRSEPS DIRSEPS_UNIX #define NOT_DIRSEP DIRSEP_WIN32 +#define NOT_DIRSEPS DIRSEPS_WIN32 + +#define PATHSEP PATHSEP_UNIX +#define PATHSEPS PATHSEPS_UNIX +#define NOT_PATHSEP PATHSEP_WIN32 +#define NOT_PATHSEPS PATHSEPS_WIN32 #endif #define SPM_META_DEPENDS ".SPM_DEPENDS" @@ -128,6 +148,20 @@ typedef struct { char *charset; } Mime; +typedef struct { + size_t num_alloc; + size_t num_inuse; + char **env; +} RuntimeEnv; + +typedef struct { + char *binpath; + char *includepath; + char *libpath; + char *datapath; + char *manpath; +} SPM_Hierarchy; + // GLOBALS spm_vars SPM_GLOBAL; @@ -262,8 +296,13 @@ int file_is_binexec(const char *filename); int internal_cmd(int argc, char **argv); // environment.c -char **runtime_copy(char **env); -void runtime_export(char **env); -void runtime_free(char **env); +ssize_t runtime_contains(RuntimeEnv *env, const char *key); +RuntimeEnv *runtime_copy(char **env); +char *runtime_get(RuntimeEnv *env, const char *key); +void runtime_set(RuntimeEnv *env, const char *_key, const char *_value); +char *runtime_expand_var(RuntimeEnv *env, const char *input); +void runtime_export(RuntimeEnv *env, char **keys); +void runtime_apply(RuntimeEnv *env); +void runtime_free(RuntimeEnv *env); #endif //SPM_SPM_H |