1 // Copyright 2002 Adam Megacz, see the COPYING file for licensing [LGPL]
5 import java.awt.image.*;
6 import gnu.gcj.RawData;
8 import java.lang.reflect.*;
11 import java.awt.peer.*;
12 import org.xwt.util.*;
15 /** Platform implementation for POSIX compliant operating systems */
16 public class POSIX extends GCJ {
18 // General Methods ///////////////////////////////////////////////////////
20 protected String getDescriptiveName() { return "GCJ Linux Binary"; }
22 /** returns the value of the environment variable key, or null if no such key exists */
23 protected native String _getEnv(String key);
25 /** spawns a process which is immune to SIGHUP */
26 private static native void spawnChildProcess(String[] command);
28 protected void _newBrowserWindow(String url) {
29 String browserString = getEnv("BROWSER");
30 if (browserString == null) {
31 browserString = "netscape " + url;
32 } else if (browserString.indexOf("%s") != -1) {
34 browserString.substring(0, browserString.indexOf("%s")) +
35 url + browserString.substring(browserString.indexOf("%s") + 2);
37 browserString += " " + url;
40 StringTokenizer st = new StringTokenizer(browserString, " ");
41 String[] cmd = new String[st.countTokens()];
42 for(int i=0; st.hasMoreTokens(); i++) cmd[i] = st.nextToken();
44 spawnChildProcess(cmd);