tooltip_delay = 1000;
tooltip_bg_color = YELLOW;
tooltips_enabled = 1;
+ textbox_focus_policy = 0;
filebox_margin = 110;
dirbox_margin = 90;
} while(0)
char find_command[BCTEXTLEN];
- sprintf(find_command,
- "find %s -name 'fonts.dir' -print -exec cat {} \\;",
- search_path);
+ char *fp = find_command, *ep = fp+sizeof(find_command)-1;
+ fp += snprintf(fp, ep-fp, "find '%s'", search_path);
+ const char *bc_font_path = getenv("BC_FONT_PATH");
+ if( bc_font_path ) {
+ const char *path = bc_font_path;
+ for( int len=0; *path; path+=len ) {
+ const char *cp = strchr(path,':');
+ len = !cp ? strlen(path) : cp-path;
+ char font_path[BCTEXTLEN];
+ memcpy(font_path, path, len); font_path[len] = 0;
+ if( cp ) ++len;
+ fp += snprintf(fp, ep-fp, " '%s'", font_path);
+ }
+ }
+ fp += snprintf(fp, ep-fp, " -name 'fonts.scale' -print -exec cat {} \\;");
FILE *in = popen(find_command, "r");
FT_Library freetype_library = 0;
entry->path = cstrcat(2, current_dir, string);
// Foundary
skip_str(" -", in_ptr);
- get_str(string, " -\n", in_ptr, 1);
+ get_str(string, "-\n", in_ptr, 1);
if( !string[0] ) { delete entry; continue; }
entry->foundry = cstrdup(string);
if(*in_ptr == '-') in_ptr++;
}
if(!strcasecmp(entry->swidth, "normal"))
- entry->style = FL_WIDTH_NORMAL;
+ entry->style |= FL_WIDTH_NORMAL;
else if(!strcasecmp(entry->swidth, "ultracondensed"))
- entry->style = FL_WIDTH_ULTRACONDENSED;
+ entry->style |= FL_WIDTH_ULTRACONDENSED;
else if(!strcasecmp(entry->swidth, "extracondensed"))
- entry->style = FL_WIDTH_EXTRACONDENSED;
+ entry->style |= FL_WIDTH_EXTRACONDENSED;
else if(!strcasecmp(entry->swidth, "condensed"))
- entry->style = FL_WIDTH_CONDENSED;
+ entry->style |= FL_WIDTH_CONDENSED;
else if(!strcasecmp(entry->swidth, "semicondensed"))
- entry->style = FL_WIDTH_SEMICONDENSED;
+ entry->style |= FL_WIDTH_SEMICONDENSED;
else if(!strcasecmp(entry->swidth, "semiexpanded"))
- entry->style = FL_WIDTH_SEMIEXPANDED;
+ entry->style |= FL_WIDTH_SEMIEXPANDED;
else if(!strcasecmp(entry->swidth, "expanded"))
- entry->style = FL_WIDTH_EXPANDED;
+ entry->style |= FL_WIDTH_EXPANDED;
else if(!strcasecmp(entry->swidth, "extraexpanded"))
- entry->style = FL_WIDTH_EXTRAEXPANDED;
+ entry->style |= FL_WIDTH_EXTRAEXPANDED;
else if(!strcasecmp(entry->swidth, "ultraexpanded"))
- entry->style = FL_WIDTH_ULTRAEXPANDED;
+ entry->style |= FL_WIDTH_ULTRAEXPANDED;
else
- entry->style = FL_WIDTH_NORMAL;
+ entry->style |= FL_WIDTH_NORMAL;
fontlist->append(entry);
// printf("TitleMain::build_fonts %s: success\n", entry->path);
{
if(!style_match)
style_match = entry;
- if(!preferred_match && (entry->style & preferred))
+ if(!preferred_match && entry->fixed_style == preferred)
preferred_match = entry;
}
}