2002/07/15 23:14:55
[org.ibex.core.git] / src / org / xwt / plat / POSIX.java
index 0be6ced..d522834 100644 (file)
@@ -52,14 +52,14 @@ public class POSIX extends GCJ {
     protected native void eventThread();
     private native void natInit();
 
-    /** returns the $BROWSER environment variable, since System.getenv() is useless */
-    private static native String getBrowserEnvString();
-
+    /** returns the value of the environment variable key, or null if no such key exists */
+    protected native String _getEnv(String key);
+    
     /** spawns a process which is immune to SIGHUP */
     private static native void spawnChildProcess(String[] command);
 
     protected void _newBrowserWindow(String url) {
-        String browserString = getBrowserEnvString();
+        String browserString = getEnv("BROWSER");
         if (browserString == null) {
             browserString = "netscape " + url;
         } else if (browserString.indexOf("%s") != -1) {
@@ -256,6 +256,7 @@ public class POSIX extends GCJ {
     public void initFonts() {
         // use the font list to build nativeFontList
         String[] fonts = listNativeFonts();
+
         for(int k=0; k<fonts.length; k++) {
             String s = fonts[k].toLowerCase();
             StringTokenizer st = new StringTokenizer(s, "-", false);
@@ -263,9 +264,16 @@ public class POSIX extends GCJ {
             
             try {
                 for(int i=0; st.hasMoreTokens(); i++) font[i] = st.nextToken();
+
+                // limit to iso8559 until we can do I18N properly....
+                if (font.length > 13) {
+                    if (!font[13].equals("iso8559")) continue;
+                    if (font.length < 15 || !font[14].equals("1")) continue;
+                }
+
                 String name = font[1];
                 String size = font[6];
-                String slant = font[3].equals("i") ? "i" : "";
+                String slant = (font[3].equals("i") || font[3].equals("o")) ? "i" : "";
                 String bold = font[2].equals("bold") ? "b" : "";
                 String tail = s.substring(1 + font[0].length() + 1 + font[1].length() + 1 + font[2].length() + 1 +
                                           font[3].length() + 1 + font[4].length() + 1);