|
Blender
V2.93
|
#include <sys/stat.h>#include <string.h>#include <dirent.h>#include <unistd.h>#include "MEM_guardedalloc.h"#include "DNA_brush_types.h"#include "DNA_cachefile_types.h"#include "DNA_fluid_types.h"#include "DNA_freestyle_types.h"#include "DNA_image_types.h"#include "DNA_material_types.h"#include "DNA_mesh_types.h"#include "DNA_modifier_types.h"#include "DNA_movieclip_types.h"#include "DNA_node_types.h"#include "DNA_object_fluidsim_types.h"#include "DNA_object_force_types.h"#include "DNA_object_types.h"#include "DNA_particle_types.h"#include "DNA_pointcache_types.h"#include "DNA_scene_types.h"#include "DNA_sequence_types.h"#include "DNA_sound_types.h"#include "DNA_text_types.h"#include "DNA_texture_types.h"#include "DNA_vfont_types.h"#include "DNA_volume_types.h"#include "BLI_blenlib.h"#include "BLI_utildefines.h"#include "BKE_font.h"#include "BKE_image.h"#include "BKE_lib_id.h"#include "BKE_library.h"#include "BKE_main.h"#include "BKE_node.h"#include "BKE_report.h"#include "BKE_bpath.h"#include "CLG_log.h"#include "SEQ_iterator.h"#include "BLI_strict_flags.h"Go to the source code of this file.
Classes | |
| struct | BPathRebase_Data |
| struct | BPathRemap_Data |
| struct | BPathFind_Data |
| struct | PathStore |
Macros | |
| #define | BPATH_TRAVERSE_POINTCACHE(ptcaches) |
Functions | |
Check Missing Files | |
| static bool | checkMissingFiles_visit_cb (void *userdata, char *UNUSED(path_dst), const char *path_src) |
| void | BKE_bpath_missing_files_check (Main *bmain, ReportList *reports) |
Make Paths Absolute | |
| static bool | bpath_absolute_convert_visit_cb (void *userdata, char *path_dst, const char *path_src) |
| void | BKE_bpath_absolute_convert (Main *bmain, const char *basedir, ReportList *reports) |
Generic File Path Traversal API | |
| static bool | rewrite_path_fixed (char *path, BPathVisitor visit_cb, const char *absbase, void *userdata) |
| static bool | rewrite_path_fixed_dirfile (char path_dir[FILE_MAXDIR], char path_file[FILE_MAXFILE], BPathVisitor visit_cb, const char *absbase, void *userdata) |
| static bool | rewrite_path_alloc (char **path, BPathVisitor visit_cb, const char *absbase, void *userdata) |
| void | BKE_bpath_traverse_id (Main *bmain, ID *id, BPathVisitor visit_cb, const int flag, void *bpath_user_data) |
| void | BKE_bpath_traverse_id_list (Main *bmain, ListBase *lb, BPathVisitor visit_cb, const int flag, void *bpath_user_data) |
| void | BKE_bpath_traverse_main (Main *bmain, BPathVisitor visit_cb, const int flag, void *bpath_user_data) |
| bool | BKE_bpath_relocate_visitor (void *pathbase_v, char *path_dst, const char *path_src) |
Backup/Restore/Free functions, | |
| |
| static bool | bpath_list_append (void *userdata, char *UNUSED(path_dst), const char *path_src) |
| static bool | bpath_list_restore (void *userdata, char *path_dst, const char *path_src) |
| void * | BKE_bpath_list_backup (Main *bmain, const int flag) |
| void | BKE_bpath_list_restore (Main *bmain, const int flag, void *ls_handle) |
| void | BKE_bpath_list_free (void *ls_handle) |
Variables | |
| static CLG_LogRef | LOG = {"bke.bpath"} |
Find Missing Files | |
| #define | MAX_RECUR 16 |
| typedef struct BPathFind_Data | BPathFind_Data |
| static bool | missing_files_find__recursive (char *filename_new, const char *dirname, const char *filename, int64_t *r_filesize, int *r_recur_depth) |
| static bool | missing_files_find__visit_cb (void *userdata, char *path_dst, const char *path_src) |
| void | BKE_bpath_missing_files_find (Main *bmain, const char *searchpath, ReportList *reports, const bool find_all) |
Rebase Relative Paths | |
| typedef struct BPathRebase_Data | BPathRebase_Data |
| static bool | bpath_relative_rebase_visit_cb (void *userdata, char *path_dst, const char *path_src) |
| void | BKE_bpath_relative_rebase (Main *bmain, const char *basedir_src, const char *basedir_dst, ReportList *reports) |
Make Paths Relative | |
| typedef struct BPathRemap_Data | BPathRemap_Data |
| static bool | bpath_relative_convert_visit_cb (void *userdata, char *path_dst, const char *path_src) |
| void | BKE_bpath_relative_convert (Main *bmain, const char *basedir, ReportList *reports) |
| #define BPATH_TRAVERSE_POINTCACHE | ( | ptcaches | ) |
| #define MAX_RECUR 16 |
find this file recursively, use the biggest file so thumbnails don't get used by mistake
| filename_new | the path will be copied here, caller must initialize as empty string. |
| dirname | subdir to search |
| filename | set this filename |
| filesize | filesize for the file |
| typedef struct BPathFind_Data BPathFind_Data |
| typedef struct BPathRebase_Data BPathRebase_Data |
| typedef struct BPathRemap_Data BPathRemap_Data |
| void BKE_bpath_absolute_convert | ( | Main * | bmain, |
| const char * | basedir, | ||
| ReportList * | reports | ||
| ) |
Definition at line 276 of file bpath.c.
References BKE_bpath_traverse_main(), BKE_BPATH_TRAVERSE_SKIP_LIBRARY, BKE_reportf(), bpath_absolute_convert_visit_cb(), CLOG_ERROR, data, LOG, NULL, RPT_INFO, and RPT_WARNING.
Referenced by BLO_write_file(), and make_paths_absolute_exec().
| void* BKE_bpath_list_backup | ( | Main * | bmain, |
| const int | flag | ||
| ) |
Definition at line 873 of file bpath.c.
References BKE_bpath_traverse_main(), bpath_list_append(), and MEM_callocN.
Referenced by BKE_blendfile_write_partial(), and BLO_write_file().
| void BKE_bpath_list_free | ( | void * | ls_handle | ) |
Definition at line 889 of file bpath.c.
References BLI_assert, BLI_freelistN(), BLI_listbase_is_empty(), and MEM_freeN.
Referenced by BKE_blendfile_write_partial(), and BLO_write_file().
| void BKE_bpath_list_restore | ( | Main * | bmain, |
| const int | flag, | ||
| void * | ls_handle | ||
| ) |
Definition at line 882 of file bpath.c.
References BKE_bpath_traverse_main(), and bpath_list_restore().
Referenced by BKE_blendfile_write_partial(), and BLO_write_file().
| void BKE_bpath_missing_files_check | ( | Main * | bmain, |
| ReportList * | reports | ||
| ) |
Definition at line 107 of file bpath.c.
References BKE_BPATH_TRAVERSE_ABS, BKE_bpath_traverse_main(), BKE_BPATH_TRAVERSE_SKIP_PACKED, and checkMissingFiles_visit_cb().
Referenced by report_missing_files_exec().
| void BKE_bpath_missing_files_find | ( | Main * | bmain, |
| const char * | searchpath, | ||
| ReportList * | reports, | ||
| const bool | find_all | ||
| ) |
Definition at line 430 of file bpath.c.
References BKE_BPATH_TRAVERSE_ABS, BKE_bpath_traverse_main(), BKE_BPATH_TRAVERSE_RELOAD_EDITED, BKE_main_blendfile_path(), data, BPathFind_Data::find_all, missing_files_find__visit_cb(), NULL, and BPathFind_Data::reports.
Referenced by find_missing_files_exec().
| void BKE_bpath_relative_convert | ( | Main * | bmain, |
| const char * | basedir, | ||
| ReportList * | reports | ||
| ) |
Definition at line 224 of file bpath.c.
References BKE_bpath_traverse_main(), BKE_BPATH_TRAVERSE_SKIP_LIBRARY, BKE_reportf(), bpath_relative_convert_visit_cb(), CLOG_ERROR, data, LOG, NULL, RPT_INFO, and RPT_WARNING.
Referenced by BLO_write_file(), and make_paths_relative_exec().
| void BKE_bpath_relative_rebase | ( | Main * | bmain, |
| const char * | basedir_src, | ||
| const char * | basedir_dst, | ||
| ReportList * | reports | ||
| ) |
Definition at line 162 of file bpath.c.
References BKE_bpath_traverse_main(), BKE_BPATH_TRAVERSE_SKIP_LIBRARY, BKE_BPATH_TRAVERSE_SKIP_MULTIFILE, BKE_reportf(), BLI_assert, bpath_relative_rebase_visit_cb(), data, NULL, RPT_INFO, and RPT_WARNING.
Referenced by BLO_write_file().
| bool BKE_bpath_relocate_visitor | ( | void * | pathbase_v, |
| char * | path_dst, | ||
| const char * | path_src | ||
| ) |
Rewrites a relative path to be relative to the main file - unless the path is absolute, in which case it is not altered.
Definition at line 797 of file bpath.c.
References BLI_path_abs(), BLI_path_is_rel(), BLI_path_normalize(), BLI_path_rel(), BLI_strncpy(), CLOG_ERROR, FILE_MAX, FILE_MAXDIR, FILE_MAXFILE, and LOG.
Referenced by lib_id_library_local_paths().
| void BKE_bpath_traverse_id | ( | Main * | bmain, |
| ID * | id, | ||
| BPathVisitor | visit_cb, | ||
| const int | flag, | ||
| void * | bpath_user_data | ||
| ) |
Run visitor function 'visit' on all paths contained in 'id'.
Definition at line 540 of file bpath.c.
References BKE_BPATH_TRAVERSE_ABS, BKE_BPATH_TRAVERSE_RELOAD_EDITED, BKE_BPATH_TRAVERSE_SKIP_LIBRARY, BKE_BPATH_TRAVERSE_SKIP_MULTIFILE, BKE_BPATH_TRAVERSE_SKIP_PACKED, BKE_image_has_packedfile(), BKE_image_is_dirty(), BKE_image_signal(), BKE_library_filepath_set(), BKE_vfont_is_builtin(), BPATH_TRAVERSE_POINTCACHE, FluidDomainSettings::cache_directory, OceanModifierData::cachepath, Strip::dir, FluidModifierData::domain, Scene::ed, ELEM, eModifierType_Cloth, eModifierType_Fluid, eModifierType_Fluidsim, eModifierType_MeshCache, eModifierType_Ocean, CustomData::external, CustomDataExternal::filename, CacheFile::filepath, Image::filepath, MeshCacheModifierData::filepath, MovieClip::filepath, NodeShaderScript::filepath, NodeShaderTexIES::filepath, bSound::filepath, Volume::filepath, ListBase::first, FluidsimModifierData::fss, GS, Brush::icon_filepath, id, ID_BLEND_PATH, ID_BR, ID_CF, ID_IM, ID_IS_LINKED, ID_LI, ID_MA, ID_MC, ID_ME, ID_NT, ID_OB, ID_SCE, ID_SO, ID_TXT, ID_VF, ID_VO, IMA_SIGNAL_RELOAD, IMA_SRC_FILE, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE, IMA_SRC_TILED, Mesh::ldata, len, lib, MEM_allocN_len, MIN2, MOD_FLUID_TYPE_DOMAIN, Object::modifiers, StripElem::name, ID::name, ModifierData::next, ParticleSystem::next, node, bNodeTree::nodes, Material::nodetree, ntree, NTREE_SHADER, NULL, bSound::packedfile, VFont::packedfile, Volume::packedfile, Object::particlesystem, ClothModifierData::ptcaches, SoftBody_Shared::ptcaches, ParticleSystem::ptcaches, rewrite_path_alloc(), rewrite_path_fixed(), rewrite_path_fixed_dirfile(), scene, SEQ_ALL_BEGIN, SEQ_ALL_END, SEQ_HAS_PATH, SEQ_TYPE_IMAGE, SEQ_TYPE_MOVIE, SEQ_TYPE_SOUND_RAM, SH_NODE_SCRIPT, SH_NODE_TEX_IES, SoftBody::shared, Object::soft, Image::source, Sequence::strip, Strip::stripdata, FluidsimSettings::surfdataPath, ModifierData::type, FluidModifierData::type, bNodeTree::type, and Sequence::type.
Referenced by BKE_bpath_traverse_id_list(), and lib_id_library_local_paths().
| void BKE_bpath_traverse_id_list | ( | Main * | bmain, |
| ListBase * | lb, | ||
| BPathVisitor | visit_cb, | ||
| const int | flag, | ||
| void * | bpath_user_data | ||
| ) |
Definition at line 772 of file bpath.c.
References BKE_bpath_traverse_id(), ListBase::first, id, and ID::next.
Referenced by BKE_bpath_traverse_main().
| void BKE_bpath_traverse_main | ( | Main * | bmain, |
| BPathVisitor | visit_cb, | ||
| const int | flag, | ||
| void * | bpath_user_data | ||
| ) |
Definition at line 781 of file bpath.c.
References Freestyle::a, BKE_bpath_traverse_id_list(), INDEX_ID_MAX, and set_listbasepointers().
Referenced by BKE_bpath_absolute_convert(), BKE_bpath_list_backup(), BKE_bpath_list_restore(), BKE_bpath_missing_files_check(), BKE_bpath_missing_files_find(), BKE_bpath_relative_convert(), BKE_bpath_relative_rebase(), bpy_blend_paths(), and clean_paths().
|
static |
Definition at line 253 of file bpath.c.
References BKE_reportf(), BLI_path_abs(), BLI_path_is_rel(), data, and RPT_WARNING.
Referenced by BKE_bpath_absolute_convert().
|
static |
Definition at line 838 of file bpath.c.
References BLI_addtail(), and MEM_mallocN.
Referenced by BKE_bpath_list_backup().
|
static |
Definition at line 851 of file bpath.c.
References BLI_freelinkN(), BLI_strncpy(), FILE_MAX, ListBase::first, ret, and STREQ.
Referenced by BKE_bpath_list_restore().
|
static |
Definition at line 202 of file bpath.c.
References BKE_reportf(), BLI_path_is_rel(), BLI_path_rel(), data, and RPT_WARNING.
Referenced by BKE_bpath_relative_convert().
|
static |
Definition at line 131 of file bpath.c.
References BKE_reportf(), BLI_assert, BLI_path_abs(), BLI_path_is_rel(), BLI_path_normalize(), BLI_path_rel(), BLI_strncpy(), data, FILE_MAX, FILE_MAXDIR, FILE_MAXFILE, NULL, and RPT_WARNING.
Referenced by BKE_bpath_relative_rebase().
|
static |
Definition at line 93 of file bpath.c.
References BKE_reportf(), BLI_exists(), and RPT_WARNING.
Referenced by BKE_bpath_missing_files_check().
|
static |
Definition at line 315 of file bpath.c.
References BLI_join_dirfile(), BLI_path_ncmp, BLI_stat(), BLI_strncpy(), closedir(), dirent::d_name, dirname(), FILE_MAX, FILENAME_IS_CURRPAR, MAX_RECUR, NULL, opendir(), readdir(), S_ISDIR, S_ISREG, and size().
Referenced by missing_files_find__visit_cb().
|
static |
Definition at line 382 of file bpath.c.
References BKE_reportf(), BLI_exists(), BLI_path_basename(), BLI_path_is_rel(), BLI_path_rel(), BLI_strncpy(), data, FILE_MAX, missing_files_find__recursive(), and RPT_WARNING.
Referenced by BKE_bpath_missing_files_find().
|
static |
Definition at line 510 of file bpath.c.
References BLI_path_abs(), BLI_strdup(), BLI_strncpy(), FILE_MAX, and MEM_freeN.
Referenced by BKE_bpath_traverse_id().
|
static |
Run a visitor on a string, replacing the contents of the string as needed.
Definition at line 455 of file bpath.c.
References BLI_path_abs(), BLI_strncpy(), and FILE_MAX.
Referenced by BKE_bpath_traverse_id().
|
static |
Definition at line 484 of file bpath.c.
References BLI_join_dirfile(), BLI_path_abs(), BLI_split_dirfile(), BLI_strncpy(), FILE_MAX, FILE_MAXDIR, and FILE_MAXFILE.
Referenced by BKE_bpath_traverse_id().
|
static |
Definition at line 87 of file bpath.c.
Referenced by BKE_bpath_absolute_convert(), BKE_bpath_relative_convert(), and BKE_bpath_relocate_visitor().