summaryrefslogtreecommitdiff
path: root/java/org/gnu/emacs/EmacsSdk7FontDriver.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/org/gnu/emacs/EmacsSdk7FontDriver.java')
-rw-r--r--java/org/gnu/emacs/EmacsSdk7FontDriver.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/java/org/gnu/emacs/EmacsSdk7FontDriver.java b/java/org/gnu/emacs/EmacsSdk7FontDriver.java
index b8aecbe7c2d..21ae159d5bd 100644
--- a/java/org/gnu/emacs/EmacsSdk7FontDriver.java
+++ b/java/org/gnu/emacs/EmacsSdk7FontDriver.java
@@ -291,13 +291,18 @@ public class EmacsSdk7FontDriver extends EmacsFontDriver
@Override
public int
- hasChar (FontSpec font, char charCode)
+ hasChar (FontSpec font, int charCode)
{
float missingGlyphWidth, width;
Rect rect1, rect2;
Paint paint;
Sdk7FontObject fontObject;
+ /* Ignore characters outside the BMP. */
+
+ if (charCode > 65535)
+ return 0;
+
if (font instanceof Sdk7FontObject)
{
fontObject = (Sdk7FontObject) font;
@@ -308,7 +313,7 @@ public class EmacsSdk7FontDriver extends EmacsFontDriver
paint.setTextSize (10);
- if (Character.isWhitespace (charCode))
+ if (Character.isWhitespace ((char) charCode))
return 1;
missingGlyphWidth = paint.measureText (TOFU_STRING);
@@ -325,7 +330,7 @@ public class EmacsSdk7FontDriver extends EmacsFontDriver
paint.getTextBounds (TOFU_STRING, 0, TOFU_STRING.length (),
rect1);
- paint.getTextBounds ("" + charCode, 0, 1, rect2);
+ paint.getTextBounds ("" + (char) charCode, 0, 1, rect2);
return rect1.equals (rect2) ? 0 : 1;
}
@@ -410,8 +415,11 @@ public class EmacsSdk7FontDriver extends EmacsFontDriver
@Override
public int
- encodeChar (FontObject fontObject, char charCode)
+ encodeChar (FontObject fontObject, int charCode)
{
+ if (charCode > 65535)
+ return FONT_INVALID_CODE;
+
return charCode;
}