girara
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
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 
80 char* girara_file_read_line(FILE* file);
81 
88 char* girara_file_read(const char* path);
89 
96 char* girara_file_read2(FILE* file);
97 
103 void girara_clean_line(char* line);
104 
113 void* girara_safe_realloc(void** ptr, size_t size) GIRARA_ALLOC_SIZE(2);
114 
119 #define girara_debug(...) _girara_debug(__FUNCTION__, __LINE__, GIRARA_DEBUG, __VA_ARGS__)
120 
124 #define girara_info(...) _girara_debug(__FUNCTION__, __LINE__, GIRARA_INFO, __VA_ARGS__)
125 
129 #define girara_warning(...) _girara_debug(__FUNCTION__, __LINE__, GIRARA_WARNING, __VA_ARGS__)
130 
134 #define girara_error(...) _girara_debug(__FUNCTION__, __LINE__, GIRARA_ERROR, __VA_ARGS__)
135 
144 void _girara_debug(const char* function, int line, girara_debug_level_t level,
145  const char* format, ...) GIRARA_PRINTF(4, 5);
146 
152 
159 
165 char* girara_escape_string(const char* value);
166 
177 char* girara_replace_substring(const char* string, const char* old, const char* new);
178 
186 bool girara_exec_with_argument_list(girara_session_t* session, girara_list_t* argument_list);
187 
188 #endif
void * girara_safe_realloc(void **ptr, size_t size) GIRARA_ALLOC_SIZE(2)
Definition: utils.c:382
girara_debug_level_t
Definition: types.h:58
char * girara_file_read2(FILE *file)
Definition: utils.c:312
char * girara_get_xdg_path(girara_xdg_path_t path)
Definition: utils.c:131
void girara_set_debug_level(girara_debug_level_t level)
Definition: debug.c:48
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)
Definition: utils.c:91
char * girara_escape_string(const char *value)
Definition: utils.c:425
void girara_debug_level_t girara_get_debug_level()
Definition: debug.c:42
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)
Definition: utils.c:188
bool girara_xdg_open(const char *uri)
Definition: utils.c:67
void girara_clean_line(char *line)
Definition: utils.c:354
bool girara_exec_with_argument_list(girara_session_t *session, girara_list_t *argument_list)
Definition: utils.c:489
char * girara_replace_substring(const char *string, const char *old, const char *new)
Definition: utils.c:444
char * girara_file_read(const char *path)
Definition: utils.c:295
#define GIRARA_PRINTF(format_idx, arg_idx)
Definition: macros.h:11
char * girara_file_read_line(FILE *file)
Definition: utils.c:273
girara_list_t * girara_split_path_array(const char *patharray)
Definition: utils.c:171
char * girara_fix_path(const char *path)
Definition: utils.c:30