girara
|
00001 /* See LICENSE file for license and copyright information */ 00002 00003 #ifndef GIRARA_UTILS_H 00004 #define GIRARA_UTILS_H 00005 00006 #include <stdio.h> 00007 #include "types.h" 00008 #include "macros.h" 00009 00013 typedef enum { 00014 XDG_CONFIG, 00015 XDG_DATA, 00016 XDG_CONFIG_DIRS, 00017 XDG_DATA_DIRS, 00018 } girara_xdg_path_t; 00019 00028 char* girara_get_home_directory(const char* user); 00029 00037 char* girara_get_xdg_path(girara_xdg_path_t path); 00038 00045 bool girara_xdg_open(const char* uri); 00046 00053 girara_list_t* girara_split_path_array(const char* patharray); 00054 00062 char* girara_fix_path(const char* path); 00063 00071 FILE* girara_file_open(const char* path, const char* mode); 00072 00079 char* girara_file_read_line(FILE* file); 00080 00087 char* girara_file_read(const char* path); 00088 00095 char* girara_file_read2(FILE* file); 00096 00102 void girara_clean_line(char* line); 00103 00112 void* girara_safe_realloc(void** ptr, size_t size); 00113 00117 #define girara_debug(...) _girara_debug(__FUNCTION__, __LINE__, GIRARA_DEBUG, __VA_ARGS__) 00118 #define girara_info(...) _girara_debug(__FUNCTION__, __LINE__, GIRARA_INFO, __VA_ARGS__) 00119 #define girara_warning(...) _girara_debug(__FUNCTION__, __LINE__, GIRARA_WARNING, __VA_ARGS__) 00120 #define girara_error(...) _girara_debug(__FUNCTION__, __LINE__, GIRARA_ERROR, __VA_ARGS__) 00121 00122 void _girara_debug(const char* function, int line, girara_debug_level_t level, 00123 const char* format, ...) GIRARA_PRINTF(4, 5); 00124 00129 girara_debug_level_t girara_get_debug_level(); 00130 00136 void girara_set_debug_level(girara_debug_level_t level); 00137 00138 #endif