girara
utils.h
Go to the documentation of this file.
1 /* See LICENSE file for license and copyright information */
2 
3 #ifndef GIRARA_UTILS_H
4 #define GIRARA_UTILS_H
5 
6 #include <stdio.h>
7 #include "types.h"
8 #include "macros.h"
9 
13 typedef enum {
20 
29 char* girara_get_home_directory(const char* user);
30 
39 
46 bool girara_xdg_open(const char* uri);
47 
54 girara_list_t* girara_split_path_array(const char* patharray);
55 
63 char* girara_fix_path(const char* path);
64 
72 FILE* girara_file_open(const char* path, const char* mode);
73 
81 char* girara_file_read_line(FILE* file);
82 
89 char* girara_file_read(const char* path);
90 
97 char* girara_file_read2(FILE* file);
98 
104 void girara_clean_line(char* line);
105 
114 void* girara_safe_realloc(void** ptr, size_t size) GIRARA_ALLOC_SIZE(2);
115 
120 #define girara_debug(...) _girara_debug(__FUNCTION__, __LINE__, GIRARA_DEBUG, __VA_ARGS__)
121 
125 #define girara_info(...) _girara_debug(__FUNCTION__, __LINE__, GIRARA_INFO, __VA_ARGS__)
126 
130 #define girara_warning(...) _girara_debug(__FUNCTION__, __LINE__, GIRARA_WARNING, __VA_ARGS__)
131 
135 #define girara_error(...) _girara_debug(__FUNCTION__, __LINE__, GIRARA_ERROR, __VA_ARGS__)
136 
145 void _girara_debug(const char* function, int line, girara_debug_level_t level,
146  const char* format, ...) GIRARA_PRINTF(4, 5);
147 
153 
160 
166 char* girara_escape_string(const char* value);
167 
178 char* girara_replace_substring(const char* string, const char* old, const char* new);
179 
187 bool girara_exec_with_argument_list(girara_session_t* session, girara_list_t* argument_list);
188 
189 #endif
void * girara_safe_realloc(void **ptr, size_t size) GIRARA_ALLOC_SIZE(2)
girara_debug_level_t
Definition: types.h:58
char * girara_file_read2(FILE *file)
char * girara_get_xdg_path(girara_xdg_path_t path)
void girara_set_debug_level(girara_debug_level_t level)
girara_xdg_path_t
Definition: utils.h:13
#define GIRARA_ALLOC_SIZE(x)
Definition: macros.h:49
char * girara_get_home_directory(const char *user)
char * girara_escape_string(const char *value)
void girara_debug_level_t girara_get_debug_level()
Definition: utils.h:15
void _girara_debug(const char *function, int line, girara_debug_level_t level, const char *format,...) GIRARA_PRINTF(4
FILE * girara_file_open(const char *path, const char *mode)
bool girara_xdg_open(const char *uri)
void girara_clean_line(char *line)
bool girara_exec_with_argument_list(girara_session_t *session, girara_list_t *argument_list)
char * girara_replace_substring(const char *string, const char *old, const char *new)
char * girara_file_read(const char *path)
#define GIRARA_PRINTF(format_idx, arg_idx)
Definition: macros.h:11
char * girara_file_read_line(FILE *file)
struct girara_list_s girara_list_t
Definition: types.h:10
girara_list_t * girara_split_path_array(const char *patharray)
char * girara_fix_path(const char *path)