Milán Major

netscape-revival

1 branch
Code

sun-java/classsrc/sun/net/www/SolarisMimeTable.java

/*
 * @(#)SolarisMimeTable.java	1.10 95/08/22  
 *
 * Copyright (c) 1994 Sun Microsystems, Inc. All Rights Reserved.
 *
 * Permission to use, copy, modify, and distribute this software
 * and its documentation for NON-COMMERCIAL purposes and without
 * fee is hereby granted provided that this copyright notice
 * appears in all copies. Please refer to the file "copyright.html"
 * for further important copyright and licensing information.
 *
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
 * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
 * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
 * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
 * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
 * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
 */

package sun.net.www;

import java.net.URL;
import java.io.*;
import java.lang.SecurityManager;

/** OS dependent class to find mime description files */
class SolarisMimeTable extends MimeTable {
    SolarisMimeTable() {
	InputStream is = null;
	SecurityManager.setScopePermission();
	String slist[] = {
	    System.getProperty("user.mailcap"),
	    System.getProperty("user.home") + "/.mailcap",
	    "/etc/mailcap",
	    "/usr/etc/mailcap",
	    "/usr/local/etc/mailcap",
	    System.getProperty("hotjava.home", "/usr/local/hotjava") + "/lib/mailcap"
	};
	SecurityManager.resetScopePermission();
	for (int i = 0; i < slist.length; i++) {
	    if (slist[i] != null) {
		try {
		    is = new FileInputStream(slist[i]);
		    break;
		} catch(Exception e) {
		}
	    }
	}
	if (is != null) {
	    try {
	    ParseMailcap(is);
	    is.close();
	    } catch(IOException e) {}
	}
	add(new MimeEntry ("application/postscript", "imagetool %s; rm %s"));
	add(new MimeEntry ("application/x-dvi", "xdvi %s"));
	add(new MimeEntry ("application/x-troff", "xterm -title troff -e sh -c \"nroff %s | col | more -w ; rm %s\""));
	add(new MimeEntry ("application/x-troff-man", "xterm -title troff -e sh -c \"nroff -man %s | col | more -w ; rm %s\""));
	add(new MimeEntry ("application/x-troff-me", "xterm -title troff -e sh -c \"nroff -me %s | col | more -w ; rm %s\""));
	add(new MimeEntry ("application/x-troff-ms", "xterm -title troff -e sh -c \"nroff -ms %s | col | more -w ; rm %s\""));
	add(new MimeEntry ("video/mpeg", "mpeg_play %s; rm %s"));
	add(new MimeEntry ("application/x-tar", "loadtofile"));
	add(new MimeEntry ("application/x-gtar", "loadtofile"));
	add(new MimeEntry ("application/x-hdf", "loadtofile"));
	add(new MimeEntry ("application/x-netcdf", "loadtofile"));
	add(new MimeEntry ("application/x-shar", "loadtofile"));
	add(new MimeEntry ("application/x-sv4cpio", "loadtofile"));
	add(new MimeEntry ("application/x-sv4crc", "loadtofile"));
	add(new MimeEntry ("application/zip", "loadtofile"));
	add(new MimeEntry ("application/x-bcpio", "loadtofile"));
	add(new MimeEntry ("application/x-cpio", "loadtofile"));
	add(new MimeEntry ("application/octet-stream", "loadtofile"));
	add(new MimeEntry ("application/x-ustar", "loadtofile"));
	add(new MimeEntry ("audio/", "audiotool %s"));
	add(new MimeEntry ("image/", "xv %s; rm %s"));
    }

    String TempTemplate() {
	return "/tmp/%s.wrt";
    }
}