girara
utils.h
Go to the documentation of this file.
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
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines