girara
Enumerations | Functions
utils.h File Reference
#include <stdio.h>
#include "types.h"
#include "macros.h"
#include "log.h"

Go to the source code of this file.

Enumerations

enum  girara_xdg_path_t {
  XDG_CONFIG , XDG_DATA , XDG_CONFIG_DIRS , XDG_DATA_DIRS ,
  XDG_CACHE
}
 

Functions

char * girara_get_home_directory (const char *user) GIRARA_VISIBLE
 
char * girara_get_xdg_path (girara_xdg_path_t path) GIRARA_VISIBLE
 
bool girara_xdg_open (const char *uri) GIRARA_VISIBLE
 
bool girara_xdg_open_with_working_directory (const char *uri, const char *working_directory) GIRARA_VISIBLE
 
girara_list_tgirara_split_path_array (const char *patharray) GIRARA_VISIBLE
 
char * girara_fix_path (const char *path) GIRARA_VISIBLE
 
FILE * girara_file_open (const char *path, const char *mode) GIRARA_VISIBLE
 
char * girara_file_read_line (FILE *file) GIRARA_VISIBLE
 
char * girara_file_read (const char *path) GIRARA_VISIBLE
 
char * girara_file_read2 (FILE *file) GIRARA_VISIBLE
 
void girara_clean_line (char *line) GIRARA_VISIBLE
 
void * girara_safe_realloc (void **ptr, size_t size) GIRARA_ALLOC_SIZE(2) GIRARA_VISIBLE GIRARA_DEPRECATED_
 
char * girara_escape_string (const char *value) GIRARA_VISIBLE
 
char * girara_replace_substring (const char *string, const char *old, const char *new) GIRARA_VISIBLE
 
bool girara_exec_with_argument_list (girara_session_t *session, girara_list_t *argument_list) GIRARA_VISIBLE
 
const char * girara_version (void) GIRARA_VISIBLE
 

Enumeration Type Documentation

◆ girara_xdg_path_t

Enum for directories specified in the XDG specification.

Enumerator
XDG_CONFIG 

XDG_CONFIG_HOME

XDG_DATA 

XDG_DATA_HOME

XDG_CONFIG_DIRS 

XDG_CONFIG_DIRS

XDG_DATA_DIRS 

XDG_DATA_DIRS

XDG_CACHE 

XDG_CACHE_HOME

Definition at line 15 of file utils.h.

Function Documentation

◆ girara_clean_line()

void girara_clean_line ( char *  line)

Trims and cleans a line from multiple whitespaces

Parameters
line

◆ girara_escape_string()

char * girara_escape_string ( const char *  value)

Escape \, \t, ", ' and spaces in strings.

Parameters
valueThe string to be escaped.
Returns
The escaped string. Needs to be freed with g_free.

◆ girara_exec_with_argument_list()

bool girara_exec_with_argument_list ( girara_session_t *  session,
girara_list_t argument_list 
)

Execute command from argument list

Parameters
sessionThe used girara session
argument_listThe argument list
Returns
true if no error occurred

◆ girara_file_open()

FILE * girara_file_open ( const char *  path,
const char *  mode 
)

Open a file in a safe way

Parameters
pathPath of the file
modeMode that the file should be opened
Returns
NULL if an error occurred

◆ girara_file_read()

char * girara_file_read ( const char *  path)

Reads the whole content from a file. Returned string has to be freed.

Parameters
pathPath to the file
Returns
Read file or NULL if an error occurred

◆ girara_file_read2()

char * girara_file_read2 ( FILE *  file)

Reads the whole content from a file. Returned string has to be freed.

Parameters
filefile to read
Returns
Read file or NULL if an error occurred

◆ girara_file_read_line()

char * girara_file_read_line ( FILE *  file)

Reads a line from the file. The returned string has to be released with g_free.

Parameters
fileThe file stream
Returns
Read line or NULL if an error occurred

◆ girara_fix_path()

char * girara_fix_path ( const char *  path)

Returns a "fixed" version of path. Which means, it will be an absolute path and fully expanded. ~ and ~user will be replaced by the current user's home directory (user's home directory respectively).

Parameters
paththe path to "fix".
Returns
the "fixed" path (needs to be freed with g_free).

◆ girara_get_home_directory()

char * girara_get_home_directory ( const char *  user)

Returns the home directory for the given user. $HOME is preferred over the value from g_get_home_dir.

Parameters
usera username or NULL to get home directory of the current user.
Returns
a string containing the path to the user's home directory (needs to be freed with g_free) or NULL if the user doesn't exist.

◆ girara_get_xdg_path()

char * girara_get_xdg_path ( girara_xdg_path_t  path)

Returns a specific path specified in the XDG specification. ~ in paths will not be expanded.

Parameters
pathwhich path to get
Returns
a string containing the requested patch (needs to be freed with g_free) or NULL for invalid values.

◆ girara_replace_substring()

char * girara_replace_substring ( const char *  string,
const char *  old,
const char *  new 
)

Replaces all occurrences of old in string with new and returns a new allocated string

Parameters
stringThe original string
oldString to replace
newReplacement string
Returns
new allocated string, needs to be freed with g_free

◆ girara_safe_realloc()

void * girara_safe_realloc ( void **  ptr,
size_t  size 
)

Changes the size of the memory block by wrapping a realloc function call In addition it frees the old memory block if realloc fails.

Parameters
ptrMemory space
sizeNumber of bytes
Returns
Pointer to the allocated memory block or NULL

◆ girara_split_path_array()

girara_list_t * girara_split_path_array ( const char *  patharray)

Splits paths separated by : (as in $PATH) into a list.

Parameters
patharrayString like $PATH to split
Returns
a list of paths and NULL on failure.

◆ girara_version()

const char * girara_version ( void  )

Return version of girara.

Returns
version string

◆ girara_xdg_open()

bool girara_xdg_open ( const char *  uri)

Opens a URI with xdg-open. If xdg-open is not available, it falls back to the equivalent of gio open.

Parameters
urithe URI to be opened.
Returns
true on success, false otherwise

◆ girara_xdg_open_with_working_directory()

bool girara_xdg_open_with_working_directory ( const char *  uri,
const char *  working_directory 
)

Opens a URI with xdg-open in a different working directory. If xdg-open is not available, it falls back to the equivalent of gio open.

Parameters
urithe URI to be opened.
working_directoryworking directory
Returns
true on success, false otherwise