Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <campbell@blender.org>2022-08-31 05:48:00 +0300
committerCampbell Barton <campbell@blender.org>2022-08-31 05:50:08 +0300
commitcae50c83c687dcb1f7ceb334dfb82f9a22097ffa (patch)
treee42df03348c376844816600ef4d07f41745c99ba
parent657b92c888f925a6721e30f1d43cb170b7908c12 (diff)
Cleanup: split font datafile loading into a function
Also use more descriptive/conventional variable names.
-rw-r--r--source/blender/blenfont/intern/blf_font_default.c61
1 files changed, 37 insertions, 24 deletions
diff --git a/source/blender/blenfont/intern/blf_font_default.c b/source/blender/blenfont/intern/blf_font_default.c
index 9ab5caf3d33..d35692f6eae 100644
--- a/source/blender/blenfont/intern/blf_font_default.c
+++ b/source/blender/blenfont/intern/blf_font_default.c
@@ -51,38 +51,51 @@ int BLF_load_mono_default(const bool unique)
return font_id;
}
-void BLF_load_font_stack()
+static void blf_load_datafiles_dir(void)
{
- /* Load these if not already, might have been replaced by user custom. */
- BLF_load_default(false);
- BLF_load_mono_default(false);
-
const char *datafiles_fonts_dir = BLF_DATAFILES_FONTS_DIR SEP_STR;
const char *path = BKE_appdir_folder_id(BLENDER_DATAFILES, datafiles_fonts_dir);
if (UNLIKELY(!path)) {
fprintf(stderr, "Font data directory \"%s\" could not be detected!\n", datafiles_fonts_dir);
+ return;
}
- else if (UNLIKELY(!BLI_exists(path))) {
+ if (UNLIKELY(!BLI_exists(path))) {
fprintf(stderr, "Font data directory \"%s\" does not exist!\n", path);
+ return;
}
- else {
- struct direntry *dir;
- uint num_files = BLI_filelist_dir_contents(path, &dir);
- for (int f = 0; f < num_files; f++) {
- if (!S_ISDIR(dir[f].s.st_mode) &&
- BLI_path_extension_check_n(
- dir[f].path, ".ttf", ".ttc", ".otf", ".otc", ".woff", ".woff2", NULL)) {
- if (!BLF_is_loaded(dir[f].path)) {
- int font_id = BLF_load(dir[f].path);
- if (font_id == -1) {
- fprintf(stderr, "Unable to load font: %s\n", dir[f].path);
- }
- else {
- BLF_enable(font_id, BLF_DEFAULT);
- }
- }
- }
+
+ struct direntry *file_list;
+ uint file_list_num = BLI_filelist_dir_contents(path, &file_list);
+ for (int i = 0; i < file_list_num; i++) {
+ if (S_ISDIR(file_list[i].s.st_mode)) {
+ continue;
+ }
+
+ const char *filepath = file_list[i].path;
+ if (!BLI_path_extension_check_n(
+ filepath, ".ttf", ".ttc", ".otf", ".otc", ".woff", ".woff2", NULL)) {
+ continue;
}
- BLI_filelist_free(dir, num_files);
+ if (BLF_is_loaded(filepath)) {
+ continue;
+ }
+
+ /* Attempt to load the font. */
+ int font_id = BLF_load(filepath);
+ if (font_id == -1) {
+ fprintf(stderr, "Unable to load font: %s\n", filepath);
+ continue;
+ }
+
+ BLF_enable(font_id, BLF_DEFAULT);
}
+ BLI_filelist_free(file_list, file_list_num);
+}
+
+void BLF_load_font_stack()
+{
+ /* Load these if not already, might have been replaced by user custom. */
+ BLF_load_default(false);
+ BLF_load_mono_default(false);
+ blf_load_datafiles_dir();
}