-
Notifications
You must be signed in to change notification settings - Fork 31
Open
Description
When printing characters in the JIS range using the \f
prefix in the gsFontM
module, centered or right-aligned text is measured based on the full string length including the four digit character code and the \f
character.
i.e. a string of "\f0062 Enter"
is treated as 11 characters long, rather than 7.
The same goes for the \e
helper, though due to the variable lengths this one probably requires a more complex solution.
I haven't been able to build gsKit
myself but I believe this patch would help, if my maths is right, presuming that the programmer didn't input an invalid character code:
diff --git a/ee/gs/src/gsFontM.c b/ee/gs/src/gsFontM.c
index 983e05e..0f189d7 100644
--- a/ee/gs/src/gsFontM.c
+++ b/ee/gs/src/gsFontM.c
@@ -357,6 +357,11 @@ void gsKit_fontm_print_scaled(GSGLOBAL *gsGlobal, GSFONTM *gsFontM, float X, flo
numlines++;
linechars[numlines] = 0;
}
+ else if(cur == '\f')
+ {
+ linechars[numlines]++;
+ pos += 4;
+ }
else if(cur == '\t' && gsFontM->Align != GSKIT_FALIGN_LEFT)
{
printf("WARNING: Tabs not supported in GSKIT_FALIGN_CENTER/RIGHT\n");
Metadata
Metadata
Assignees
Labels
No labels