static SFONT *tryloadfont( char *fspec, SFONT *like)
{
- int err,size;
- char *p;
+ char buf[FILENAME_MAX];
+ int err,size = DEFSIZE;
+ char *p, *fn, *at;
+ int fnlen=-1;
SFONT *b = NULL;
+
+ at = strchr(fspec, '@');
+ if (at) {
+ fnlen = at - fspec;
+ size = atoi(at+1);
+ }
+
+ if (m_fontdir != NULL)
+ fn = sf_searchfile(fspec, fnlen, buf, m_fontdir);
+
for (;;){
p = strchr(fspec,'|');
if (p) *p = 0;
+
if (ttfontloader)
b = ttfontloader(fspec, like, &err);
if (!b)
- b = loadfont(fspec,&err,&size);
+ b = loadfont(fn,&err,&size);
if (b) break;
if (p) { *p = '|'; fspec = p+1;}
else break;
void sf_pushtextsettings(void);
void sf_poptextsettings(void);
+char *sf_searchfile(char*, int, char *, char *);
+
void sf_chline( int x, int y, ulong c, int n);
void sf_cvline( int x, int y, ulong c, int n);
bool sf_flushdisplay(void);
#define OS_PATHSEP ':'
#endif
+#define DEFSIZE 14
+
// virtual keys
#define VK_TAB 0x16
#define VK_INS 0x17
/////////////////////////////////////////////////////////////////
-static char * sf_searchfile( char *fn, int fnlen, char *buf, char *paths)
+char * sf_searchfile( char *fn, int fnlen, char *buf, char *paths)
{
char *p;
if (!fn) return NULL;
return (SFONT *) res;
}
-#define DEFSIZE 14
-
#ifdef WIN32
#define SYSFONTS "c:/windows/fonts"
#else