RetroArch
|
#include <stdio.h>
#include <stdint.h>
#include <stddef.h>
#include <sys/types.h>
#include <retro_common_api.h>
#include <boolean.h>
Go to the source code of this file.
Macros | |
#define | path_contains_compressed_file(path) (path_get_archive_delim((path)) != NULL) |
#define | path_char_is_slash(c) ((c) == '/') |
#define | path_default_slash() "/" |
#define | path_default_slash_c() '/' |
Enumerations | |
enum | { RARCH_FILETYPE_UNSET, RARCH_PLAIN_FILE, RARCH_COMPRESSED_FILE_IN_ARCHIVE, RARCH_COMPRESSED_ARCHIVE, RARCH_DIRECTORY, RARCH_FILE_UNSUPPORTED } |
path_char_is_slash: : character
Checks if character () is a slash.
Returns: true (1) if character is a slash, otherwise false (0).
#define path_contains_compressed_file | ( | path | ) | (path_get_archive_delim((path)) != NULL) |
path_contains_compressed_file: : path
Checks if path contains a compressed file.
Currently we only check for hash symbol (#) inside the pathname. If path is ever expanded to a general URI, we should check for that here.
Example: Somewhere in the path there might be a compressed file E.g.: /path/to/file.7z::mygame.img
Returns: true (1) if path contains compressed file, otherwise false (0).
#define path_default_slash | ( | ) | "/" |
path_default_slash and path_default_slash_c:
Gets the default slash separator.
Returns: default slash separator.
#define path_default_slash_c | ( | ) | '/' |
anonymous enum |
fill_dated_filename: : output filename : extension of output filename : buffer size of output filename
Creates a 'dated' filename prefixed by 'RetroArch', and concatenates extension () to it.
E.g.: out_filename = "RetroArch-{month}{day}-{Hours}{Minutes}.{@ext}"
fill_pathname: : output path : input path : what to replace : buffer size of output path
FIXME: Verify
Replaces filename extension with 'replace' and outputs result to out_path. The extension here is considered to be the string from the last '.' to the end.
Only '.'s after the last slash are considered as extensions. If no '.' is present, in_path and replace will simply be concatenated. 'size' is buffer size of 'out_path'. E.g.: in_path = "/foo/bar/baz/boo.c", replace = ".asm" => out_path = "/foo/bar/baz/boo.asm" E.g.: in_path = "/foo/bar/baz/boo.c", replace = "" => out_path = "/foo/bar/baz/boo"
fill_pathname_base: : output path : input path : size of output path
Copies basename of into .
fill_pathname_basedir: : output directory : input path : size of output directory
Copies base directory of into . If in_path is a path without any slashes (relative current directory), will get path "./".
void fill_pathname_dir | ( | char * | in_dir, |
const char * | in_basename, | ||
const char * | replace, | ||
size_t | size | ||
) |
fill_pathname_dir: : input directory path : input basename to be appended to : replacement to be appended to : size of buffer
Appends basename of 'in_basename', to 'in_dir', along with 'replace'. Basename of in_basename is the string after the last '/' or '\', i.e the filename without directories.
If in_basename has no '/' or '\', the whole 'in_basename' will be used. 'size' is buffer size of 'in_dir'.
E.g..: in_dir = "/tmp/some_dir", in_basename = "/some_content/foo.c", replace = ".asm" => in_dir = "/tmp/some_dir/foo.c.asm"
void fill_pathname_join_concat | ( | char * | out_path, |
const char * | dir, | ||
const char * | path, | ||
const char * | concat, | ||
size_t | size | ||
) |
void fill_pathname_join_concat_noext | ( | char * | out_path, |
const char * | dir, | ||
const char * | path, | ||
const char * | concat, | ||
size_t | size | ||
) |
void fill_pathname_join_delim | ( | char * | out_path, |
const char * | dir, | ||
const char * | path, | ||
const char | delim, | ||
size_t | size | ||
) |
void fill_pathname_join_delim_concat | ( | char * | out_path, |
const char * | dir, | ||
const char * | path, | ||
const char | delim, | ||
const char * | concat, | ||
size_t | size | ||
) |
void fill_pathname_join_special_ext | ( | char * | out_path, |
const char * | dir, | ||
const char * | path, | ||
const char * | last, | ||
const char * | ext, | ||
size_t | size | ||
) |
void fill_pathname_noext | ( | char * | out_path, |
const char * | in_path, | ||
const char * | replace, | ||
size_t | size | ||
) |
fill_pathname_noext: : output path : input path : what to replace : buffer size of output path
Appends a filename extension 'replace' to 'in_path', and outputs result in 'out_path'.
Assumes in_path has no extension. If an extension is still present in 'in_path', it will be ignored.
fill_pathname_parent_dir: : output directory : input directory : size of output directory
Copies parent directory of into . Assumes is a directory. Keeps trailing '/'.
fill_pathname_parent_dir_name: : output directory : input directory : size of output directory
Copies only the parent directory name of into . The two buffers must not overlap. Removes trailing '/'. Returns true on success, false if a slash was not found in the path.
void fill_pathname_resolve_relative | ( | char * | out_path, |
const char * | in_refpath, | ||
const char * | in_path, | ||
size_t | size | ||
) |
fill_pathname_resolve_relative: : output path : input reference path : input path : size of
Joins basedir of together with . If is an absolute path, out_path = in_path. E.g.: in_refpath = "/foo/bar/baz.a", in_path = "foobar.cg", out_path = "/foo/bar/foobar.cg".
void fill_pathname_slash | ( | char * | path, |
size_t | size | ||
) |
fill_pathname_slash: : path : size of path
Assumes path is a directory. Appends a slash if not already there.
fill_short_pathname_representation: : output representation : input path : size of output representation
Generates a short representation of path. It should only be used for displaying the result; the output representation is not binding in any meaningful way (for a normal path, this is the same as basename) In case of more complex URLs, this should cut everything except for the main image file.
E.g.: "/path/to/game.img" -> game.img "/path/to/myarchive.7z#folder/to/game.img" -> game.img
void fill_str_dated_filename | ( | char * | out_filename, |
const char * | in_str, | ||
const char * | ext, | ||
size_t | size | ||
) |
fill_str_dated_filename: : output filename : input string : extension of output filename : buffer size of output filename
Creates a 'dated' filename prefixed by the string , and concatenates extension () to it.
E.g.: out_filename = "RetroArch-{year}{month}{day}-{Hour}{Minute}{Second}.{@ext}"
char* find_last_slash | ( | const char * | str | ) |
find_last_slash: : input path
Gets a pointer to the last slash in the input path.
Returns: a pointer to the last slash in the input path.
void path_basedir | ( | char * | path | ) |
path_basedir: : path
Extracts base directory by mutating path. Keeps trailing '/'.
void path_basedir_wrapper | ( | char * | path | ) |
path_basedir: : path
Extracts base directory by mutating path. Keeps trailing '/'.
path_basename: : path
Get basename from .
Returns: basename from path.
path_get_archive_delim: : path
Gets delimiter of an archive file. Only the first '#' after a compression extension is considered.
Returns: pointer to the delimiter in the path if it contains a compressed file, otherwise NULL.
path_get_archive_delim: : path
Find delimiter of an archive file. Only the first '#' after a compression extension is considered.
Returns: pointer to the delimiter in the path if it contains a path inside a compressed file, otherwise NULL.
path_get_extension: : path
Gets extension of file. Only '.'s after the last slash are considered.
Returns: extension part from the path.
path_is_absolute: : path
Checks if is an absolute path or a relative path.
Returns: true if path is absolute, false if path is relative.
path_is_compressed_file: : path
Checks if path is a compressed file.
Returns: true (1) if path is a compressed file, otherwise false (0).
path_is_directory: : path
Checks if path is a directory.
Returns: true (1) if path is a directory, otherwise false (0).
void path_parent_dir | ( | char * | path | ) |
path_parent_dir: : path
Extracts parent directory by mutating path. Assumes that path is a directory. Keeps trailing '/'.
char* path_remove_extension | ( | char * | path | ) |
path_remove_extension: : path
Mutates path by removing its extension. Removes all text after and including the last '.'. Only '.'s after the last slash are considered.
Returns: 1) If path has an extension, returns path with the extension removed. 2) If there is no extension, returns NULL. 3) If path is empty or NULL, returns NULL
void path_resolve_realpath | ( | char * | buf, |
size_t | size | ||
) |
path_resolve_realpath: : buffer for path : size of buffer
Turns relative paths into absolute path. If relative, rebases on current working dir.