aboutsummaryrefslogtreecommitdiff
path: root/src/rc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/rc.h')
-rw-r--r--src/rc.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/rc.h b/src/rc.h
index a22353e1..9920901c 100644
--- a/src/rc.h
+++ b/src/rc.h
@@ -164,5 +164,48 @@ typedef enum
* they wish. At this time we only support the setting of one env var. */
extern FILE *rc_environ_fd;
+/* RC utility functions.
+ Although not directly related to RC in general, they are used by RC
+ itself and the supporting applications. */
+void *rc_xcalloc (size_t n, size_t size);
+void *rc_xmalloc (size_t size);
+void *rc_xrealloc (void *ptr, size_t size);
+char *rc_xstrdup (const char *str);
+
+/* Concat paths adding '/' if needed. */
+char *rc_strcatpaths (const char *path1, const char *paths, ...) SENTINEL;
+
+bool rc_is_env (const char *variable, const char *value);
+bool rc_exists (const char *pathname);
+bool rc_is_file (const char *pathname);
+bool rc_is_link (const char *pathname);
+bool rc_is_dir (const char *pathname);
+bool rc_is_exec (const char *pathname);
+
+#define RC_LS_INITD 0x01
+char **rc_ls_dir (char **list, const char *dir, int options);
+
+bool rc_rm_dir (const char *pathname, bool top);
+
+/* Config file functions */
+char **rc_get_list (char **list, const char *file);
+char **rc_get_config (char **list, const char *file);
+char *rc_get_config_entry (char **list, const char *entry);
+
+/* Make an environment list which filters out all unwanted values
+ and loads it up with our RC config */
+char **rc_filter_env (void);
+char **rc_config_env (char **env);
+
+/* Handy functions for dealing with string arrays of char ** */
+char **rc_strlist_add (char **list, const char *item);
+char **rc_strlist_addu (char **list, const char *item);
+char **rc_strlist_addsort (char **list, const char *item);
+char **rc_strlist_addsortc (char **list, const char *item);
+char **rc_strlist_addsortu (char **list, const char *item);
+char **rc_strlist_delete (char **list, const char *item);
+char **rc_strlist_join (char **list1, char **list2);
+void rc_strlist_reverse (char **list);
+void rc_strlist_free (char **list);
#endif