diff --git a/src/detection/terminalfont/terminalfont.h b/src/detection/terminalfont/terminalfont.h index 9b15dede4..936cdeb4f 100644 --- a/src/detection/terminalfont/terminalfont.h +++ b/src/detection/terminalfont/terminalfont.h @@ -10,6 +10,7 @@ typedef struct FFTerminalFontResult { FFstrbuf error; FFfont font; + FFfont fallback; } FFTerminalFontResult; bool ffDetectTerminalFont(FFTerminalFontResult* result); diff --git a/src/detection/terminalfont/terminalfont_apple.m b/src/detection/terminalfont/terminalfont_apple.m index c89b4135f..871462109 100644 --- a/src/detection/terminalfont/terminalfont_apple.m +++ b/src/detection/terminalfont/terminalfont_apple.m @@ -38,6 +38,14 @@ static void detectIterm2(FFTerminalFontResult* terminalFont) return; } ffFontInitWithSpace(&terminalFont->font, normalFont.UTF8String); + + NSNumber* useNonAsciiFont = [bookmark valueForKey:@"Use Non-ASCII Font"]; + if(useNonAsciiFont.boolValue) + { + NSString* nonAsciiFont = [bookmark valueForKey:@"Non Ascii Font"]; + if (nonAsciiFont) + ffFontInitWithSpace(&terminalFont->fallback, nonAsciiFont.UTF8String); + } return; } diff --git a/src/modules/terminalfont/terminalfont.c b/src/modules/terminalfont/terminalfont.c index 6e03ed45c..9e9b683d8 100644 --- a/src/modules/terminalfont/terminalfont.c +++ b/src/modules/terminalfont/terminalfont.c @@ -11,6 +11,7 @@ void ffPrintTerminalFont(FFTerminalFontOptions* options) { FFTerminalFontResult terminalFont; ffFontInit(&terminalFont.font); + ffFontInit(&terminalFont.fallback); ffStrbufInit(&terminalFont.error); if(!ffDetectTerminalFont(&terminalFont)) @@ -22,7 +23,13 @@ void ffPrintTerminalFont(FFTerminalFontOptions* options) if(options->moduleArgs.outputFormat.length == 0) { ffPrintLogoAndKey(FF_TERMINALFONT_DISPLAY_NAME, 0, &options->moduleArgs.key, &options->moduleArgs.keyColor); - ffStrbufPutTo(&terminalFont.font.pretty, stdout); + ffStrbufWriteTo(&terminalFont.font.pretty, stdout); + if(terminalFont.fallback.pretty.length) + { + fputs(" / ", stdout); + ffStrbufWriteTo(&terminalFont.fallback.pretty, stdout); + } + putchar('\n'); } else { @@ -37,6 +44,7 @@ void ffPrintTerminalFont(FFTerminalFontOptions* options) ffStrbufDestroy(&terminalFont.error); ffFontDestroy(&terminalFont.font); + ffFontDestroy(&terminalFont.fallback); } void ffInitTerminalFontOptions(FFTerminalFontOptions* options)