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 {
19 
28 char* girara_get_home_directory(const char* user);
29 
38 
45 bool girara_xdg_open(const char* uri);
46 
53 girara_list_t* girara_split_path_array(const char* patharray);
54 
62 char* girara_fix_path(const char* path);
63 
71 FILE* girara_file_open(const char* path, const char* mode);
72 
79 char* girara_file_read_line(FILE* file);
80 
87 char* girara_file_read(const char* path);
88 
95 char* girara_file_read2(FILE* file);
96 
102 void girara_clean_line(char* line);
103 
112 void* girara_safe_realloc(void** ptr, size_t size);
113 
117 #define girara_debug(...) _girara_debug(__FUNCTION__, __LINE__, GIRARA_DEBUG, __VA_ARGS__)
118 #define girara_info(...) _girara_debug(__FUNCTION__, __LINE__, GIRARA_INFO, __VA_ARGS__)
119 #define girara_warning(...) _girara_debug(__FUNCTION__, __LINE__, GIRARA_WARNING, __VA_ARGS__)
120 #define girara_error(...) _girara_debug(__FUNCTION__, __LINE__, GIRARA_ERROR, __VA_ARGS__)
121 
122 void _girara_debug(const char* function, int line, girara_debug_level_t level,
123  const char* format, ...) GIRARA_PRINTF(4, 5);
124 
130 
137 
138 #endif