X-Git-Url: http://git.megacz.com/?p=org.ibex.core.git;a=blobdiff_plain;f=src%2Forg%2Fibex%2Fplat%2FPOSIX.java;fp=src%2Forg%2Fibex%2Fplat%2FPOSIX.java;h=e8c3ff1866bac01565b966b33894f81cfcd9cf34;hp=0000000000000000000000000000000000000000;hb=3591b88b94a6bb378af3d4abe6eb5233ce583104;hpb=de378041d5ca2aca1a2b5a31ef15ae90a86c977f diff --git a/src/org/ibex/plat/POSIX.java b/src/org/ibex/plat/POSIX.java new file mode 100644 index 0000000..e8c3ff1 --- /dev/null +++ b/src/org/ibex/plat/POSIX.java @@ -0,0 +1,43 @@ +// Copyright 2004 Adam Megacz, see the COPYING file for licensing [LGPL] +package org.ibex.plat; + +import gnu.gcj.RawData; +import java.util.*; + +/** Platform implementation for POSIX compliant operating systems */ +public class POSIX extends GCJ { + + // General Methods /////////////////////////////////////////////////////// + + protected String getDescriptiveName() { return "GCJ Linux Binary"; } + + /** 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 = getEnv("BROWSER"); + if (browserString == null) { + browserString = "netscape " + url; + } else if (browserString.indexOf("%s") != -1) { + browserString = + browserString.substring(0, browserString.indexOf("%s")) + + url + browserString.substring(browserString.indexOf("%s") + 2); + } else { + browserString += " " + url; + } + + StringTokenizer st = new StringTokenizer(browserString, " "); + String[] cmd = new String[st.countTokens()]; + for(int i=0; st.hasMoreTokens(); i++) cmd[i] = st.nextToken(); + + spawnChildProcess(cmd); + } + + public POSIX() { } +} + + +