Blender V2.61 - r43446
Defines | Functions

BLI_path_util.h File Reference

Go to the source code of this file.

Defines

#define BLENDER_DATAFILES   2
#define BLENDER_USER_CONFIG   31
#define BLENDER_USER_DATAFILES   32
#define BLENDER_USER_SCRIPTS   33
#define BLENDER_USER_PLUGINS   34
#define BLENDER_USER_AUTOSAVE   35
#define BLENDER_SYSTEM_DATAFILES   52
#define BLENDER_SYSTEM_SCRIPTS   53
#define BLENDER_SYSTEM_PLUGINS   54
#define BLENDER_SYSTEM_PYTHON   54
#define BLENDER_RESOURCE_PATH_USER   0
#define BLENDER_RESOURCE_PATH_LOCAL   1
#define BLENDER_RESOURCE_PATH_SYSTEM   2
#define BLENDER_STARTUP_FILE   "startup.blend"
#define BLENDER_BOOKMARK_FILE   "bookmarks.txt"
#define BLENDER_HISTORY_FILE   "recent-files.txt"
#define SEP   '/'
#define ALTSEP   '\\'
#define BLI_path_cmp   strcmp
#define BLI_path_ncmp   strncmp

Functions

const char * BLI_getDefaultDocumentFolder (void)
char * BLI_get_folder (int folder_id, const char *subfolder)
char * BLI_get_folder_create (int folder_id, const char *subfolder)
char * BLI_get_user_folder_notest (int folder_id, const char *subfolder)
char * BLI_get_folder_version (const int id, const int ver, const int do_check)
void BLI_setenv (const char *env, const char *val)
void BLI_setenv_if_new (const char *env, const char *val)
void BLI_make_file_string (const char *relabase, char *string, const char *dir, const char *file)
void BLI_make_exist (char *dir)
void BLI_make_existing_file (const char *name)
void BLI_split_dirfile (const char *string, char *dir, char *file, const size_t dirlen, const size_t filelen)
void BLI_split_dir_part (const char *string, char *dir, const size_t dirlen)
void BLI_split_file_part (const char *string, char *file, const size_t filelen)
void BLI_join_dirfile (char *string, const size_t maxlen, const char *dir, const char *file)
char * BLI_path_basename (char *path)
int BKE_rebase_path (char *abs, size_t abs_len, char *rel, size_t rel_len, const char *base_dir, const char *src_dir, const char *dest_dir)
char * BLI_last_slash (const char *string)
int BLI_add_slash (char *string)
void BLI_del_slash (char *string)
char * BLI_first_slash (char *string)
void BLI_getlastdir (const char *dir, char *last, const size_t maxlen)
int BLI_testextensie (const char *str, const char *ext)
int BLI_testextensie_array (const char *str, const char **ext_array)
int BLI_testextensie_glob (const char *str, const char *ext_fnmatch)
int BLI_replace_extension (char *path, size_t maxlen, const char *ext)
int BLI_ensure_extension (char *path, size_t maxlen, const char *ext)
void BLI_uniquename (struct ListBase *list, void *vlink, const char defname[], char delim, short name_offs, short len)
int BLI_uniquename_cb (int(*unique_check)(void *, const char *), void *arg, const char defname[], char delim, char *name, short name_len)
void BLI_newname (char *name, int add)
int BLI_stringdec (const char *string, char *head, char *start, unsigned short *numlen)
void BLI_stringenc (char *string, const char *head, const char *tail, unsigned short numlen, int pic)
int BLI_split_name_num (char *left, int *nr, const char *name, const char delim)
void BLI_splitdirstring (char *di, char *fi)
void BLI_clean (char *path)
void BLI_cleanup_file (const char *relabase, char *dir)
void BLI_cleanup_dir (const char *relabase, char *dir)
void BLI_cleanup_path (const char *relabase, char *dir)
int BLI_parent_dir (char *path)
int BLI_has_parent (char *path)
int BLI_path_abs (char *path, const char *basepath)
int BLI_path_frame (char *path, int frame, int digits)
int BLI_path_frame_range (char *path, int sta, int end, int digits)
int BLI_path_cwd (char *path)
void BLI_path_rel (char *file, const char *relfile)
void BLI_char_switch (char *string, char from, char to)
void BLI_init_program_path (const char *argv0)
void BLI_init_temporary_dir (char *userdir)
const char * BLI_program_path (void)
const char * BLI_program_dir (void)
const char * BLI_temporary_dir (void)
void BLI_system_temporary_dir (char *dir)

Detailed Description

Definition in file BLI_path_util.h.


Define Documentation

#define ALTSEP   '\\'

Definition at line 80 of file BLI_path_util.h.

Referenced by BLI_make_exist().

#define BLENDER_BOOKMARK_FILE   "bookmarks.txt"

Definition at line 72 of file BLI_path_util.h.

Referenced by bookmark_add_exec(), bookmark_delete_exec(), ED_file_init(), and file_exec().

#define BLENDER_DATAFILES   2
#define BLENDER_HISTORY_FILE   "recent-files.txt"

Definition at line 73 of file BLI_path_util.h.

Referenced by WM_read_history(), and write_history().

#define BLENDER_RESOURCE_PATH_LOCAL   1
#define BLENDER_RESOURCE_PATH_SYSTEM   2

Definition at line 69 of file BLI_path_util.h.

Referenced by BLI_get_folder_version(), and bpy_resource_path().

#define BLENDER_RESOURCE_PATH_USER   0
#define BLENDER_STARTUP_FILE   "startup.blend"
#define BLENDER_SYSTEM_DATAFILES   52

Definition at line 61 of file BLI_path_util.h.

Referenced by BLI_get_folder(), and setupArguments().

#define BLENDER_SYSTEM_PLUGINS   54

Definition at line 63 of file BLI_path_util.h.

Referenced by setupArguments().

#define BLENDER_SYSTEM_PYTHON   54

Definition at line 64 of file BLI_path_util.h.

Referenced by BLI_get_folder(), BPY_python_start(), and setupArguments().

#define BLENDER_SYSTEM_SCRIPTS   53

Definition at line 62 of file BLI_path_util.h.

Referenced by BLI_get_folder(), BPy_init_modules(), bpy_script_paths(), and setupArguments().

#define BLENDER_USER_AUTOSAVE   35
#define BLENDER_USER_CONFIG   31
#define BLENDER_USER_DATAFILES   32
#define BLENDER_USER_PLUGINS   34

Definition at line 57 of file BLI_path_util.h.

#define BLENDER_USER_SCRIPTS   33
#define BLI_path_cmp   strcmp
#define BLI_path_ncmp   strncmp

Definition at line 155 of file BLI_path_util.h.

Referenced by IMB_thumb_create(), IMB_thumb_delete(), and IMB_thumb_manage().

#define SEP   '/'

Function Documentation

int BKE_rebase_path ( char *  abs,
size_t  abs_len,
char *  rel,
size_t  rel_len,
const char *  base_dir,
const char *  src_dir,
const char *  dest_dir 
)
int BLI_add_slash ( char *  string)
void BLI_char_switch ( char *  string,
char  from,
char  to 
)

Change every from in string into to. The result will be in string

string The string to work on from The character to replace to The character to replace with

Definition at line 1222 of file path_util.c.

References NULL.

Referenced by BLI_clean(), BLI_make_exist(), BLI_path_abs(), BLI_path_rel(), and uri_from_filename().

void BLI_clean ( char *  path)
void BLI_cleanup_dir ( const char *  relabase,
char *  dir 
)
void BLI_cleanup_file ( const char *  relabase,
char *  dir 
)

dir can be any input, like from buttons, and this function converts it to a regular full path. Also removes garbage from directory paths, like /../ or double slashes etc

Definition at line 420 of file path_util.c.

References BLI_cleanup_path(), and BLI_del_slash().

Referenced by bpath_relocate_visitor().

void BLI_cleanup_path ( const char *  relabase,
char *  dir 
)

Definition at line 318 of file path_util.c.

References BLI_path_abs(), and strlen().

Referenced by BLI_cleanup_dir(), BLI_cleanup_file(), BLI_path_abs(), and BLI_path_rel().

void BLI_del_slash ( char *  string)

Definition at line 1689 of file path_util.c.

References len(), SEP, and strlen().

Referenced by BLI_cleanup_file(), and file_panel_category().

int BLI_ensure_extension ( char *  path,
size_t  maxlen,
const char *  ext 
)

Definition at line 1441 of file path_util.c.

References strlen().

Referenced by BKE_add_image_extension(), and blend_save_check().

char* BLI_first_slash ( char *  string)

Definition at line 1648 of file path_util.c.

char* BLI_get_folder ( int  folder_id,
const char *  subfolder 
)
char* BLI_get_folder_create ( int  folder_id,
const char *  subfolder 
)
char* BLI_get_folder_version ( const int  id,
const int  ver,
const int  do_check 
)
char* BLI_get_user_folder_notest ( int  folder_id,
const char *  subfolder 
)
const char* BLI_getDefaultDocumentFolder ( void  )

Definition at line 809 of file path_util.c.

References BLI_is_dir(), HRESULT, NULL, and S_OK.

Referenced by file_expand_directory().

void BLI_getlastdir ( const char *  dir,
char *  last,
const size_t  maxlen 
)

Definition at line 787 of file path_util.c.

References BLI_strncpy(), and NULL.

Referenced by file_panel_category().

int BLI_has_parent ( char *  path)

Definition at line 524 of file path_util.c.

References BLI_add_slash(), BLI_clean(), and len().

Referenced by file_parent_exec().

void BLI_init_program_path ( const char *  argv0)

Definition at line 1835 of file path_util.c.

References BLI_split_dir_part(), bli_where_am_i(), bprogdir, and bprogname.

Referenced by main().

void BLI_init_temporary_dir ( char *  userdir)

Definition at line 1906 of file path_util.c.

References BLI_where_is_temp(), btempdir, and FILE_MAX.

Referenced by main(), and wm_init_userdef().

void BLI_join_dirfile ( char *  string,
const size_t  maxlen,
const char *  dir,
const char *  file 
)
char* BLI_last_slash ( const char *  string)
void BLI_make_exist ( char *  dir)

Definition at line 1231 of file path_util.c.

References ALTSEP, BLI_char_switch(), BLI_is_dir(), SEP, and strlen().

Referenced by filelist_parent(), and filelist_read_library().

void BLI_make_existing_file ( const char *  name)
void BLI_make_file_string ( const char *  relabase,
char *  string,
const char *  dir,
const char *  file 
)
void BLI_newname ( char *  name,
int  add 
)

Definition at line 193 of file path_util.c.

References add(), BLI_stringdec(), BLI_stringenc(), KDL::exp(), i, and UNIQUE_NAME_MAX.

Referenced by file_filenum_exec(), and make_unique_prop_names().

int BLI_parent_dir ( char *  path)
int BLI_path_abs ( char *  path,
const char *  basepath 
)

Blender's path code replacement function. Bases path strings leading with "//" by the directory basepath, and replaces instances of '#' with the framenum. Results are written back into path.

path The path to convert basepath The directory to base relative paths with. framenum The framenumber to replace the frame code with.

Return values:
Returnstrue if the path was relative (started with "//").

Definition at line 639 of file path_util.c.

References BLI_char_switch(), BLI_cleanup_path(), BLI_last_slash(), BLI_strncpy(), FILE_MAX, NULL, and p.

Referenced by add_text(), BKE_add_image_file(), BKE_add_movieclip_file(), BKE_library_filepath_set(), BKE_makepicstring(), BKE_rebase_path(), BL_MakeScreenShot(), BLI_cleanup_path(), bpath_relocate_visitor(), bpy_lib_load(), cache_voxeldata(), checkPackedFile(), customdata_external_filename(), do_versions(), dynamicPaint_outputSurfaceImage(), ED_fileselect_set_params(), file_browse_exec(), file_operator_to_sfile(), filepath_avi(), get_brush_icon(), get_proxy_fname(), get_sequence_fname(), GetFontId(), image_load_image_file(), image_load_movie_file(), image_load_sequence_file(), image_save_sequence_exec(), main(), makeFilesAbsolute_visit_cb(), movieclip_load_movie_file(), namebutton_cb(), newPackedFile(), ImagesExporter::operator()(), particles_fluid_step(), ptcache_path(), RE_WriteEnvmapResult(), reload_sequence_new_file(), reopen_text(), rewrite_path_alloc(), rewrite_path_fixed(), rewrite_path_fixed_dirfile(), save_image_options_from_op(), save_image_options_init(), screenshot_exec(), seq_open_anim_file(), seq_proxy_get_fname(), seq_render_strip(), sequencer_add_movie_strip(), sequencer_generic_invoke_path__internal(), sound_mixdown_exec(), sound_new_file(), space_image_file_exists_poll(), StartKetsjiShell(), text_file_modified(), text_ignore_modified(), txt_write_file(), and writePackedFile().

char* BLI_path_basename ( char *  path)
int BLI_path_cwd ( char *  path)

Definition at line 735 of file path_util.c.

References BLI_current_working_dir(), BLI_make_file_string(), BLI_strncpy(), FILE_MAX, NULL, and strlen().

Referenced by load_file(), main(), and run_python().

int BLI_path_frame ( char *  path,
int  frame,
int  digits 
)
int BLI_path_frame_range ( char *  path,
int  sta,
int  end,
int  digits 
)

Definition at line 621 of file path_util.c.

References BLI_snprintf(), BLI_strncpy(), ensure_digits(), FILE_MAX, and stringframe_chars().

Referenced by filepath_avi().

void BLI_path_rel ( char *  file,
const char *  relfile 
)
const char* BLI_program_dir ( void  )

Definition at line 1846 of file path_util.c.

References bprogdir.

const char* BLI_program_path ( void  )

Definition at line 1841 of file path_util.c.

References bprogname.

Referenced by BPY_python_start(), main(), and make_app_info().

int BLI_replace_extension ( char *  path,
size_t  maxlen,
const char *  ext 
)

Definition at line 1417 of file path_util.c.

References ELEM3, and strlen().

Referenced by BKE_add_image_extension(), imb_cache_filename(), WM_write_file(), and write_crash_blend().

void BLI_setenv ( const char *  env,
const char *  val 
)

Definition at line 1178 of file path_util.c.

References MEM_freeN(), MEM_mallocN(), and strlen().

Referenced by BLI_setenv_if_new(), BPY_python_start(), main(), PyC_SetHomePath(), and set_env().

void BLI_setenv_if_new ( const char *  env,
const char *  val 
)

Only set an env var if already not there. Like Unix setenv(env, val, 0);

Definition at line 1202 of file path_util.c.

References BLI_setenv(), and NULL.

void BLI_split_dir_part ( const char *  string,
char *  dir,
const size_t  dirlen 
)
void BLI_split_dirfile ( const char *  string,
char *  dir,
char *  file,
const size_t  dirlen,
const size_t  filelen 
)
void BLI_split_file_part ( const char *  string,
char *  file,
const size_t  filelen 
)

Definition at line 1501 of file path_util.c.

References BLI_split_dirfile(), and NULL.

Referenced by ptcache_path().

int BLI_split_name_num ( char *  left,
int *  nr,
const char *  name,
const char  delim 
)
void BLI_splitdirstring ( char *  di,
char *  fi 
)
int BLI_stringdec ( const char *  string,
char *  head,
char *  start,
unsigned short *  numlen 
)

Definition at line 107 of file path_util.c.

References BLI_last_slash(), i, len(), and strlen().

Referenced by BLI_newname(), get_sequence_fname(), and image_load_sequence_file().

void BLI_stringenc ( char *  string,
const char *  head,
const char *  tail,
unsigned short  numlen,
int  pic 
)
void BLI_system_temporary_dir ( char *  dir)

Definition at line 1916 of file path_util.c.

References BLI_where_is_temp(), FILE_MAX, and NULL.

Referenced by init_userdef_do_versions().

const char* BLI_temporary_dir ( void  )
int BLI_testextensie ( const char *  str,
const char *  ext 
)
int BLI_testextensie_array ( const char *  str,
const char **  ext_array 
)
int BLI_testextensie_glob ( const char *  str,
const char *  ext_fnmatch 
)

Definition at line 1389 of file path_util.c.

References BLI_strncpy(), and FNM_CASEFOLD.

Referenced by filelist_setfiletypes().

void BLI_uniquename ( struct ListBase list,
void *  vlink,
const char  defname[],
char  delim,
short  name_offs,
short  len 
)
int BLI_uniquename_cb ( int(*)(void *, const char *)  unique_check,
void *  arg,
const char  defname[],
char  delim,
char *  name,
short  name_len 
)