This is the mail archive of the java-patches@sourceware.cygnus.com mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

patch: mime types



This patch, which I am committing, does a few things...

    - it contains an implementation of
      URLConnection.guessContentTypeFromName.

    - it contains the source for a program, MakeDefaultMimeType, which
      reads a mime.types files and outputs source for
      gnu.gcj.io.DefaultMimeTypes.

    - it moves classes.pl into a new `scripts' directory (along with
      MakeDefaultMimeType.java.

    - it includes a mime.types file which I copied from my Linux box.

URLConnection.guessContentTypeFromName will look at your /etc/mime.types
first, and then default to the built in mime types (from the generated
file, gnu.gcj.io.DefaultMimeTypes).

Ideally it would look at the user's ~/.mime.types file, but I'm not
sure if that file is supposed to be in a standard format or not.
Netscape created one for me, which looks like...

#--Netscape Communications Corporation MIME Information
#Do not delete the above line. It is used to identify the file type.
#
#mime types added by Netscape Helper
type=audio/x-scpls 
#mime types added by Netscape Helper
type=audio/x-mpegurl  \
exts="m3u" 
#mime types added by Netscape Helper
type=application/x-ns-proxy-autoconfig  \
desc="Proxy Auto-Config"  \
exts="pac" 

If this is standard, then gnu.gcj.io.MimeTypes.java should be updated
to parse it correctly.

AG

-- 
Anthony Green                                                        Red Hat
                                                       Sunnyvale, California


2000-02-20  Anthony Green  <green@cygnus.com>

	* Makefile.in: Rebuilt.
	* Makefile.am (ordinary_java_source_files): Add
	gnu/gcj/io/DefaultMimeTypes.java and gnu/gcj/io/MimeTypes.java

	* scripts/MakeDefaultMimeTypes.java: New file.
	* scripts/mime.types: New file.
	* scripts/classes.pl: Moved from top level.
	* classes.pl: Moved to scripts directory.

	* java/net/URLConnection.java: Implement guessContentTypeFromName.

	* gnu/gcj/io/MimeTypes.java: New file.
	* gnu/gcj/io/DefaultMimeTypes.java: New file.

Index: gnu/gcj/io/DefaultMimeTypes.java
===================================================================
RCS file: DefaultMimeTypes.java
diff -N DefaultMimeTypes.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ DefaultMimeTypes.java	Sun Feb 20 20:49:35 2000
@@ -0,0 +1,139 @@
+// Do not edit this file!  Create a new version with MakeDefaultMimeTypes.
+
+/* Copyright (C) 2000  Red Hat, Inc.
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+
+package gnu.gcj.io;
+
+public class DefaultMimeTypes
+{
+  public static final String[] types = {
+      "midi",	"audio/midi"
+    , "sit",	"application/x-stuffit"
+    , "ram",	"audio/x-pn-realaudio"
+    , "ez",	"application/andrew-inset"
+    , "jpeg",	"image/jpeg"
+    , "sv4crc",	"application/x-sv4crc"
+    , "sv4cpio",	"application/x-sv4cpio"
+    , "txt",	"text/plain"
+    , "spl",	"application/x-futuresplash"
+    , "ras",	"image/x-cmu-raster"
+    , "sh",	"application/x-sh"
+    , "dcr",	"application/x-director"
+    , "msh",	"model/mesh"
+    , "swf",	"application/x-shockwave-flash"
+    , "hdf",	"application/x-hdf"
+    , "bcpio",	"application/x-bcpio"
+    , "zip",	"application/zip"
+    , "gif",	"image/gif"
+    , "me",	"application/x-troff-me"
+    , "gtar",	"application/x-gtar"
+    , "tex",	"application/x-tex"
+    , "xyz",	"chemical/x-pdb"
+    , "hqx",	"application/mac-binhex40"
+    , "ms",	"application/x-troff-ms"
+    , "oda",	"application/oda"
+    , "vcd",	"application/x-cdlink"
+    , "aifc",	"audio/x-aiff"
+    , "skd",	"application/x-koan"
+    , "smil",	"application/smil"
+    , "asc",	"text/plain"
+    , "aiff",	"audio/x-aiff"
+    , "xml",	"text/xml"
+    , "tr",	"application/x-troff"
+    , "nc",	"application/x-netcdf"
+    , "dxr",	"application/x-director"
+    , "skm",	"application/x-koan"
+    , "wrl",	"model/vrml"
+    , "tsv",	"text/tab-separated-values"
+    , "mpeg",	"video/mpeg"
+    , "skp",	"application/x-koan"
+    , "src",	"application/x-wais-source"
+    , "rpm",	"application/x-rpm"
+    , "skt",	"application/x-koan"
+    , "ai",	"application/postscript"
+    , "cpt",	"application/mac-compactpro"
+    , "mp2",	"audio/mpeg"
+    , "man",	"application/x-troff-man"
+    , "mp3",	"audio/mpeg"
+    , "mesh",	"model/mesh"
+    , "igs",	"model/iges"
+    , "shar",	"application/x-shar"
+    , "au",	"audio/basic"
+    , "texi",	"application/x-texinfo"
+    , "cpio",	"application/x-cpio"
+    , "jpe",	"image/jpeg"
+    , "lzh",	"application/octet-stream"
+    , "jpg",	"image/jpeg"
+    , "cdf",	"application/x-netcdf"
+    , "etx",	"text/x-setext"
+    , "texinfo",	"application/x-texinfo"
+    , "sgml",	"text/sgml"
+    , "roff",	"application/x-troff"
+    , "pgm",	"image/x-portable-graymap"
+    , "pgn",	"application/x-chess-pgn"
+    , "bin",	"application/octet-stream"
+    , "png",	"image/png"
+    , "tar",	"application/x-tar"
+    , "mid",	"audio/midi"
+    , "mov",	"video/quicktime"
+    , "movie",	"video/x-sgi-movie"
+    , "mif",	"application/vnd.mif"
+    , "pnm",	"image/x-portable-anymap"
+    , "mpga",	"audio/mpeg"
+    , "smi",	"application/smil"
+    , "t",	"application/x-troff"
+    , "tiff",	"image/tiff"
+    , "xbm",	"image/x-xbitmap"
+    , "htm",	"text/html"
+    , "mpe",	"video/mpeg"
+    , "dms",	"application/octet-stream"
+    , "mpg",	"video/mpeg"
+    , "lha",	"application/octet-stream"
+    , "latex",	"application/x-latex"
+    , "ps",	"application/postscript"
+    , "sgm",	"text/sgml"
+    , "tif",	"image/tiff"
+    , "ice",	"x-conference/x-cooltalk"
+    , "snd",	"audio/basic"
+    , "html",	"text/html"
+    , "pbm",	"image/x-portable-bitmap"
+    , "xpm",	"image/x-xpixmap"
+    , "iges",	"model/iges"
+    , "aif",	"audio/x-aiff"
+    , "avi",	"video/x-msvideo"
+    , "csh",	"application/x-csh"
+    , "wav",	"audio/x-wav"
+    , "xwd",	"image/x-xwindowdump"
+    , "js",	"application/x-javascript"
+    , "silo",	"model/mesh"
+    , "vrml",	"model/vrml"
+    , "tcl",	"application/x-tcl"
+    , "css",	"text/css"
+    , "eps",	"application/postscript"
+    , "class",	"application/octet-stream"
+    , "qt",	"video/quicktime"
+    , "doc",	"application/msword"
+    , "ustar",	"application/x-ustar"
+    , "ppm",	"image/x-portable-pixmap"
+    , "ppt",	"application/vnd.ms-powerpoint"
+    , "ra",	"audio/x-realaudio"
+    , "rgb",	"image/x-rgb"
+    , "rtf",	"text/rtf"
+    , "kar",	"audio/midi"
+    , "dvi",	"application/x-dvi"
+    , "rm",	"audio/x-pn-realaudio"
+    , "exe",	"application/octet-stream"
+    , "pdb",	"chemical/x-pdb"
+    , "pdf",	"application/pdf"
+    , "rtx",	"text/richtext"
+    , "dir",	"application/x-director"
+    , "ief",	"image/ief"
+  };
+}
+
Index: gnu/gcj/io/MimeTypes.java
===================================================================
RCS file: MimeTypes.java
diff -N MimeTypes.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ MimeTypes.java	Sun Feb 20 20:49:35 2000
@@ -0,0 +1,86 @@
+/* Copyright (C) 2000  Red Hat, Inc.
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+
+package gnu.gcj.io;
+
+import java.util.*;
+import java.io.*;
+
+public class MimeTypes
+{
+  private static Hashtable mime_types;
+  
+  public static void fillFromFile (Hashtable table, String fname) 
+    throws IOException
+  {
+    LineNumberReader reader = 
+      new LineNumberReader (new FileReader (fname));
+    
+    while (reader.ready ())
+      {
+	StringTokenizer tokenizer = 
+	  new StringTokenizer (reader.readLine ());
+	
+	try 
+	  {
+	    String t = tokenizer.nextToken ();
+	    
+	    if (! t.startsWith ("#"))
+	      {
+		while (true)
+		  {
+		    // Read the next extension
+		    String e = tokenizer.nextToken ();
+		    if (! e.startsWith ("#"))
+		      table.put (e, t);
+		    else
+		      break;
+		  }
+	      }
+	  } catch (NoSuchElementException ex) {
+	    // Do nothing.
+	  }
+      }
+  }
+
+  // This is the primary interface to this class.
+  public static String getMimeTypeFromExtension (String extension)
+  {
+    if (mime_types == null)
+      {
+	mime_types = new Hashtable ();
+	
+	// First populate the hash table with the default mime type
+	// mappings.
+	int i = DefaultMimeTypes.types.length;
+	while (i > 1)
+	  {
+	    mime_types.put (DefaultMimeTypes.types[i - 2],
+			    DefaultMimeTypes.types[i - 1]);
+	    i = i - 2;
+	  }
+	
+	// Now read mime types from /etc/mime.types if it exists.
+	// This should override the default values.
+	try {
+	  fillFromFile (mime_types, "/etc/mime.types");
+	} catch (IOException ex) {
+	  // Do nothing.
+	}
+	
+	// Now read mime types from ~/.mime.types.  
+	// FIXME: We can't currently parse this file.
+      }
+
+    String type = (String) mime_types.get (extension);
+    if (type == null)
+      return ("application/octet-stream");
+    else
+      return (type);
+  }
+}
Index: include/Makefile.in
===================================================================
RCS file: /cvs/java/libgcj/libjava/include/Makefile.in,v
retrieving revision 1.4
diff -u -r1.4 Makefile.in
--- Makefile.in	2000/01/17 19:22:20	1.4
+++ Makefile.in	2000/02/21 04:49:35
@@ -120,7 +120,7 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 all: all-redirect
 .SUFFIXES:
@@ -176,7 +176,7 @@
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$/$$file $(distdir)/$$file; \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
 	  else \
 	    test -f $(distdir)/$$file \
 	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
Index: java/net/URLConnection.java
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/net/URLConnection.java,v
retrieving revision 1.2
diff -u -r1.2 URLConnection.java
--- URLConnection.java	2000/01/19 18:39:26	1.2
+++ URLConnection.java	2000/02/21 04:49:35
@@ -18,6 +18,7 @@
 import java.util.Locale;
 import java.util.Hashtable;
 import java.util.StringTokenizer;
+import gnu.gcj.io.MimeTypes;
 
 /**
  * @author Warren Levy <warrenl@cygnus.com>
@@ -27,7 +28,7 @@
 /**
  * Written using on-line Java Platform 1.2 API Specification, as well
  * as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
- * Status:  Two guessContentTypeFrom... methods not implemented.
+ * Status:  One guessContentTypeFrom... methods not implemented.
  *	getContent method assumes content type from response; see comment there.
  */
 
@@ -312,9 +313,25 @@
     factory = fac;
   }
 
-// TODO:  protected static String guessContentTypeFromName(String fname)
-//   {
-//   }
+  protected static String guessContentTypeFromName(String fname)
+  {
+    int dot = fname.lastIndexOf (".");
+    
+    if (dot != -1)
+      {
+	if (dot == fname.length())
+	  return ("application/octet-stream");
+	else
+	  fname = fname.substring (dot + 1);
+      }
+    
+    String type = MimeTypes.getMimeTypeFromExtension (fname);
+    
+    if (type == null)
+      return("application/octet-stream");
+
+    return(type);
+  }
 
 // TODO:  public static String guessContentTypeFromStream(InputStream is)
 //          throws IOException
Index: scripts/MakeDefaultMimeTypes.java
===================================================================
RCS file: MakeDefaultMimeTypes.java
diff -N MakeDefaultMimeTypes.java
--- /dev/null	Tue May  5 13:32:27 1998
+++ MakeDefaultMimeTypes.java	Sun Feb 20 21:51:17 2000
@@ -0,0 +1,93 @@
+/* Copyright (C) 2000  Red Hat, Inc.
+
+   This file is part of libgcj.
+
+This software is copyrighted work licensed under the terms of the
+Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
+details.  */
+
+import gnu.gcj.io.MimeTypes;
+import java.io.IOException;
+import java.io.FileNotFoundException;
+import java.util.Hashtable;
+import java.util.Enumeration;
+import java.util.NoSuchElementException;
+
+public class MakeDefaultMimeTypes
+{
+  private static void fatal (String message)
+  {
+    System.err.println ("MakeDefaultMimeTypes Error: " + message);
+    System.exit (-1);
+  }
+  
+  public static void main (String[] args)
+  {
+    Hashtable mime_table = new Hashtable ();
+    
+    if (args.length != 1)
+      fatal ("missing mime type filename");
+
+    try {
+      MimeTypes.fillFromFile (mime_table, args[0]);
+    } catch (FileNotFoundException ex) {
+      fatal ("can't open " + args[0]);
+    } catch (IOException ex) {
+      fatal ("error reading " + args[0]);
+    }
+
+    System.out.println ("// Do not edit this file!  Create a new version with MakeDefaultMimeTypes.\
+\
+/* Copyright (C) 2000  Red Hat, Inc.\
+\
+   This file is part of libgcj.\
+\
+This software is copyrighted work licensed under the terms of the\
+Libgcj License.  Please consult the file \"LIBGCJ_LICENSE\" for\
+details.  */\
+\
+package gnu.gcj.io; \
+\
+public class DefaultMimeTypes\
+{\
+  public static final String[] types = {");
+
+    Enumeration keys = mime_table.keys();
+    Enumeration values = mime_table.elements();
+    
+    // Prepend first element with open bracket
+    StringBuffer result = new StringBuffer("");
+    
+    try
+      {
+	result.append("      \"" 
+		      + keys.nextElement().toString() 
+		      + "\",\t\"" 
+		      + values.nextElement().toString()
+		      + "\"\n");
+      }
+    catch (NoSuchElementException ex)
+      {
+      }
+    
+    // Prepend subsequent elements with ", "
+    try
+      {
+	while (true)
+	  result.append("    , \"" 
+			+ keys.nextElement().toString() 
+			+ "\",\t\"" 
+			+ values.nextElement().toString()
+			+ "\"\n");
+      }
+    catch (NoSuchElementException ex)
+      {
+      }
+    
+    // Append last element with closing bracket
+    result.append("  };\
+}\
+");
+    System.out.println(result);
+  }
+}
Index: scripts/classes.pl
===================================================================
RCS file: classes.pl
diff -N classes.pl
--- /dev/null	Tue May  5 13:32:27 1998
+++ classes.pl	Sun Feb 20 20:49:35 2000
@@ -0,0 +1,104 @@
+# classes.pl - A perl program to generate most of the contents of
+# javaprims.h automatically.
+
+# Copyright (C) 1998, 1999  Red Hat, Inc.
+#
+# This file is part of libjava.
+#
+# This software is copyrighted work licensed under the terms of the
+# Libjava License.  Please consult the file "LIBJAVA_LICENSE" for
+# details.
+
+# Usage: cd <top-srcdir> ; perl classes.pl.
+# Can also be run from the `gcj' directory; this lets us
+# more easily insert the output into javaprims.h (which is where it goes).
+
+use DirHandle;
+
+if (-d 'java')
+{
+    # Ok here.
+}
+elsif (-d '../java')
+{
+    chdir ('..');
+}
+else
+{
+    die "couldn't find java directory\n";
+}
+
+&scan ('java', 2);
+
+exit 0;
+
+sub scan
+{
+    local ($dir, $indent) = @_;
+    local (@subdirs) = ();
+    local (%classes) = ();
+
+    local ($d) = new DirHandle $dir;
+    local (*JFILE);
+    local ($name);
+    if (defined $d)
+    {
+	while (defined ($name = $d->read))
+	{
+	    next if $name eq 'CVS';
+	    next if $name eq '.';
+	    next if $name eq '..';
+	    if ($dir eq 'java'
+		&& $name ne 'lang'
+		&& $name ne 'util'
+		&& $name ne 'io')
+	    {
+		# We only generate decls for java.lang, java.io, and
+		# java.util.
+		next;
+	    }
+	    if (-d ($dir . '/' . $name))
+	    {
+		push (@subdirs, $name);
+		next;
+	    }
+	    next unless $name =~ /\.java$/;
+
+	    open (FILE, "< $dir/$name");
+	    while (<FILE>)
+	    {
+		# NOTE: we don't skip `/*' comments.
+		s,//.*$,,;
+		# For now assume that class names start with upper
+		# case letter.
+		next unless /(class|interface) ([A-Z][A-Za-z0-9]+)/;
+		$classes{$2} = 1;
+	    }
+	    close (FILE);
+	}
+
+	undef $d;
+    }
+
+    local ($spaces) = ' ' x $indent;
+    local ($classname);
+    ($classname = $dir) =~ s/^.*\///;
+    print $spaces, "namespace ", $classname, "\n";
+    print $spaces, "{\n";
+
+    foreach (sort keys %classes)
+    {
+	print $spaces, "  class ", $_, ";\n";
+    }
+    print "\n" if scalar @classes > 0 && scalar @subdirs > 0;
+
+    local ($first) = 1;
+    foreach (sort @subdirs)
+    {
+	print "\n" unless $first;
+	$first = 0;
+	&scan ("$dir/$_", $indent + 2);
+    }
+
+    print $spaces, "}\n";
+}
Index: scripts/mime.types
===================================================================
RCS file: mime.types
diff -N mime.types
--- /dev/null	Tue May  5 13:32:27 1998
+++ mime.types	Sun Feb 20 20:49:35 2000
@@ -0,0 +1,276 @@
+# This is the default mime.types file from the Apache web server distribution
+
+# This file controls what Internet media types are sent to the client for
+# given file extension(s).  Sending the correct media type to the client
+# is important so they know how to handle the content of the file.
+# Extra types can either be added here or by using an AddType directive
+# in your config files. For more information about Internet media types,
+# please read RFC 2045, 2046, 2047, 2048, and 2077.  The Internet media type
+# registry is at <ftp://ftp.iana.org/in-notes/iana/assignments/media-types/>.
+
+# MIME type			Extension
+application/EDI-Consent
+application/EDI-X12
+application/EDIFACT
+application/activemessage
+application/andrew-inset	ez
+application/applefile
+application/atomicmail
+application/cals-1840
+application/commonground
+application/cybercash
+application/dca-rft
+application/dec-dx
+application/eshop
+application/hyperstudio
+application/iges
+application/mac-binhex40	hqx
+application/mac-compactpro	cpt
+application/macwriteii
+application/marc
+application/mathematica
+application/msword		doc
+application/news-message-id
+application/news-transmission
+application/octet-stream	bin dms lha lzh exe class
+application/oda			oda
+application/pdf			pdf
+application/pgp-encrypted
+application/pgp-keys
+application/pgp-signature
+application/pkcs10
+application/pkcs7-mime
+application/pkcs7-signature
+application/postscript		ai eps ps
+application/prs.alvestrand.titrax-sheet
+application/prs.cww
+application/prs.nprend
+application/remote-printing
+application/riscos
+application/rtf			rtf
+application/set-payment
+application/set-payment-initiation
+application/set-registration
+application/set-registration-initiation
+application/sgml
+application/sgml-open-catalog
+application/slate
+application/smil		smi smil
+application/vemmi
+application/vnd.3M.Post-it-Notes
+application/vnd.FloGraphIt
+application/vnd.acucobol
+application/vnd.anser-web-certificate-issue-initiation
+application/vnd.anser-web-funds-transfer-initiation
+application/vnd.audiograph
+application/vnd.businessobjects
+application/vnd.claymore
+application/vnd.comsocaller
+application/vnd.dna
+application/vnd.dxr
+application/vnd.ecdis-update
+application/vnd.ecowin.chart
+application/vnd.ecowin.filerequest
+application/vnd.ecowin.fileupdate
+application/vnd.ecowin.series
+application/vnd.ecowin.seriesrequest
+application/vnd.ecowin.seriesupdate
+application/vnd.enliven
+application/vnd.epson.salt
+application/vnd.fdf
+application/vnd.ffsns
+application/vnd.framemaker
+application/vnd.fujitsu.oasys
+application/vnd.fujitsu.oasys2
+application/vnd.fujitsu.oasys3
+application/vnd.fujitsu.oasysgp
+application/vnd.fujitsu.oasysprs
+application/vnd.fujixerox.docuworks
+application/vnd.hp-HPGL
+application/vnd.hp-PCL
+application/vnd.hp-PCLXL
+application/vnd.hp-hps
+application/vnd.ibm.MiniPay
+application/vnd.ibm.modcap
+application/vnd.intercon.formnet
+application/vnd.intertrust.digibox
+application/vnd.intertrust.nncp
+application/vnd.is-xpr
+application/vnd.japannet-directory-service
+application/vnd.japannet-jpnstore-wakeup
+application/vnd.japannet-payment-wakeup
+application/vnd.japannet-registration
+application/vnd.japannet-registration-wakeup
+application/vnd.japannet-setstore-wakeup
+application/vnd.japannet-verification
+application/vnd.japannet-verification-wakeup
+application/vnd.koan
+application/vnd.lotus-1-2-3
+application/vnd.lotus-approach
+application/vnd.lotus-freelance
+application/vnd.lotus-organizer
+application/vnd.lotus-screencam
+application/vnd.lotus-wordpro
+application/vnd.meridian-slingshot
+application/vnd.mif		mif
+application/vnd.minisoft-hp3000-save
+application/vnd.mitsubishi.misty-guard.trustweb
+application/vnd.ms-artgalry
+application/vnd.ms-asf
+application/vnd.ms-excel
+application/vnd.ms-powerpoint	ppt
+application/vnd.ms-project
+application/vnd.ms-tnef
+application/vnd.ms-works
+application/vnd.music-niff
+application/vnd.musician
+application/vnd.netfpx
+application/vnd.noblenet-directory
+application/vnd.noblenet-sealer
+application/vnd.noblenet-web
+application/vnd.novadigm.EDM
+application/vnd.novadigm.EDX
+application/vnd.novadigm.EXT
+application/vnd.osa.netdeploy
+application/vnd.powerbuilder6
+application/vnd.powerbuilder6-s
+application/vnd.rapid
+application/vnd.seemail
+application/vnd.shana.informed.formtemplate
+application/vnd.shana.informed.interchange
+application/vnd.shana.informed.package
+application/vnd.street-stream
+application/vnd.svd
+application/vnd.swiftview-ics
+application/vnd.truedoc
+application/vnd.visio
+application/vnd.webturbo
+application/vnd.wrq-hp3000-labelled
+application/vnd.wt.stf
+application/vnd.xara
+application/vnd.yellowriver-custom-menu
+application/wita
+application/wordperfect5.1
+application/x-bcpio		bcpio
+application/x-cdlink		vcd
+application/x-chess-pgn		pgn
+application/x-compress
+application/x-cpio		cpio
+application/x-csh		csh
+application/x-director		dcr dir dxr
+application/x-dvi		dvi
+application/x-futuresplash	spl
+application/x-gtar		gtar
+application/x-gzip
+application/x-hdf		hdf
+application/x-javascript	js
+application/x-koan		skp skd skt skm
+application/x-latex		latex
+application/x-netcdf		nc cdf
+# The standard is that rpm is audio/x-pn-realaudio-plugin... oh well...
+application/x-rpm		rpm
+application/x-sh		sh
+application/x-shar		shar
+application/x-shockwave-flash	swf
+application/x-stuffit		sit
+application/x-sv4cpio		sv4cpio
+application/x-sv4crc		sv4crc
+application/x-tar		tar
+application/x-tcl		tcl
+application/x-tex		tex
+application/x-texinfo		texinfo texi
+application/x-troff		t tr roff
+application/x-troff-man		man
+application/x-troff-me		me
+application/x-troff-ms		ms
+application/x-ustar		ustar
+application/x-wais-source	src
+application/x400-bp
+application/xml
+application/zip			zip
+audio/32kadpcm
+audio/basic			au snd
+audio/midi			mid midi kar
+audio/mpeg			mpga mp2 mp3
+audio/vnd.qcelp
+audio/x-aiff			aif aiff aifc
+audio/x-pn-realaudio		ram rm
+audio/x-realaudio		ra
+audio/x-wav			wav
+chemical/x-pdb			pdb xyz
+image/cgm
+image/g3fax
+image/gif			gif
+image/ief			ief
+image/jpeg			jpeg jpg jpe
+image/naplps
+image/png			png
+image/prs.btif
+image/tiff			tiff tif
+image/vnd.dwg
+image/vnd.dxf
+image/vnd.fpx
+image/vnd.net-fpx
+image/vnd.svf
+image/vnd.xiff
+image/x-cmu-raster		ras
+image/x-portable-anymap		pnm
+image/x-portable-bitmap		pbm
+image/x-portable-graymap	pgm
+image/x-portable-pixmap		ppm
+image/x-rgb			rgb
+image/x-xbitmap			xbm
+image/x-xpixmap			xpm
+image/x-xwindowdump		xwd
+message/delivery-status
+message/disposition-notification
+message/external-body
+message/http
+message/news
+message/partial
+message/rfc822
+model/iges			igs iges
+model/mesh			msh mesh silo
+model/vnd.dwf
+model/vrml			wrl vrml
+multipart/alternative
+multipart/appledouble
+multipart/byteranges
+multipart/digest
+multipart/encrypted
+multipart/form-data
+multipart/header-set
+multipart/mixed
+multipart/parallel
+multipart/related
+multipart/report
+multipart/signed
+multipart/voice-message
+text/css			css
+text/directory
+text/enriched
+text/html			html htm
+text/plain			asc txt
+text/prs.lines.tag
+text/rfc822-headers
+text/richtext			rtx
+text/rtf			rtf
+text/sgml			sgml sgm
+text/tab-separated-values	tsv
+text/uri-list
+text/vnd.abc
+text/vnd.flatland.3dml
+text/vnd.fmi.flexstor
+text/vnd.in3d.3dml
+text/vnd.in3d.spot
+text/vnd.latex-z
+text/x-setext			etx
+text/xml			xml
+video/mpeg			mpeg mpg mpe
+video/quicktime			qt mov
+video/vnd.motorola.video
+video/vnd.motorola.videop
+video/vnd.vivo
+video/x-msvideo			avi
+video/x-sgi-movie		movie
+x-conference/x-cooltalk		ice
Index: testsuite/Makefile.in
===================================================================
RCS file: /cvs/java/libgcj/libjava/testsuite/Makefile.in,v
retrieving revision 1.16
diff -u -r1.16 Makefile.in
--- Makefile.in	2000/01/17 19:22:20	1.16
+++ Makefile.in	2000/02/21 04:49:36
@@ -133,7 +133,7 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 all: all-redirect
 .SUFFIXES:
@@ -161,7 +161,7 @@
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$/$$file $(distdir)/$$file; \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
 	  else \
 	    test -f $(distdir)/$$file \
 	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
Index: Makefile.am
===================================================================
RCS file: /cvs/java/libgcj/libjava/Makefile.am,v
retrieving revision 1.47
diff -u -r1.47 Makefile.am
--- Makefile.am	2000/02/10 20:31:47	1.47
+++ Makefile.am	2000/02/21 04:49:32
@@ -522,6 +522,8 @@
 ## convert_source_files.  If the .java file has a hand-maintained
 ## header, please list it in special_java_source_files.
 ordinary_java_source_files =  $(convert_source_files) \
+gnu/gcj/io/DefaultMimeTypes.java \
+gnu/gcj/io/MimeTypes.java \
 gnu/gcj/jni/NativeThread.java \
 gnu/gcj/runtime/MethodInvocation.java \
 gnu/gcj/runtime/VMClassLoader.java \
Index: Makefile.in
===================================================================
RCS file: /cvs/java/libgcj/libjava/Makefile.in,v
retrieving revision 1.51
diff -u -r1.51 Makefile.in
--- Makefile.in	2000/02/10 20:31:47	1.51
+++ Makefile.in	2000/02/21 04:49:33
@@ -326,6 +326,8 @@
 built_java_source_files = java/lang/ConcreteProcess.java
 
 ordinary_java_source_files = $(convert_source_files) \
+gnu/gcj/io/DefaultMimeTypes.java \
+gnu/gcj/io/MimeTypes.java \
 gnu/gcj/jni/NativeThread.java \
 gnu/gcj/runtime/MethodInvocation.java \
 gnu/gcj/runtime/VMClassLoader.java \
@@ -732,13 +734,12 @@
 DATA =  $(data_DATA) $(toolexeclib_DATA)
 
 DIST_COMMON =  README COPYING.LIB ChangeLog Makefile.am Makefile.in NEWS \
-THANKS acconfig.h acinclude.m4 aclocal.m4 configure configure.in \
-include/config.h.in include/stamp-h.in libgcj.spec.in
+THANKS acinclude.m4 aclocal.m4 configure configure.in libgcj.spec.in
 
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 DIST_SUBDIRS =  @DIRLTDL@ testsuite gcj include @DIRLTDL@ gcj include
 DEP_FILES =  .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
@@ -755,8 +756,10 @@
 .deps/gnu/gcj/convert/Output_JavaSrc.P \
 .deps/gnu/gcj/convert/Output_SJIS.P .deps/gnu/gcj/convert/Output_UTF8.P \
 .deps/gnu/gcj/convert/Output_iconv.P \
-.deps/gnu/gcj/convert/UnicodeToBytes.P .deps/gnu/gcj/jni/NativeThread.P \
-.deps/gnu/gcj/math/MPN.P .deps/gnu/gcj/protocol/file/Connection.P \
+.deps/gnu/gcj/convert/UnicodeToBytes.P \
+.deps/gnu/gcj/io/DefaultMimeTypes.P .deps/gnu/gcj/io/MimeTypes.P \
+.deps/gnu/gcj/jni/NativeThread.P .deps/gnu/gcj/math/MPN.P \
+.deps/gnu/gcj/protocol/file/Connection.P \
 .deps/gnu/gcj/protocol/file/Handler.P \
 .deps/gnu/gcj/protocol/http/Connection.P \
 .deps/gnu/gcj/protocol/http/Handler.P \
@@ -958,34 +961,6 @@
 	$(SHELL) ./config.status --recheck
 $(srcdir)/configure: @MAINTAINER_MODE_TRUE@$(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
 	cd $(srcdir) && $(AUTOCONF)
-
-include/config.h: include/stamp-h
-	@if test ! -f $@; then \
-		rm -f include/stamp-h; \
-		$(MAKE) include/stamp-h; \
-	else :; fi
-include/stamp-h: $(srcdir)/include/config.h.in $(top_builddir)/config.status
-	cd $(top_builddir) \
-	  && CONFIG_FILES= CONFIG_HEADERS=include/config.h \
-	     $(SHELL) ./config.status
-	@echo timestamp > include/stamp-h 2> /dev/null
-$(srcdir)/include/config.h.in: @MAINTAINER_MODE_TRUE@$(srcdir)/include/stamp-h.in
-	@if test ! -f $@; then \
-		rm -f $(srcdir)/include/stamp-h.in; \
-		$(MAKE) $(srcdir)/include/stamp-h.in; \
-	else :; fi
-$(srcdir)/include/stamp-h.in: $(top_srcdir)/configure.in $(ACLOCAL_M4) acconfig.h
-	cd $(top_srcdir) && $(AUTOHEADER)
-	@echo timestamp > $(srcdir)/include/stamp-h.in 2> /dev/null
-
-mostlyclean-hdr:
-
-clean-hdr:
-
-distclean-hdr:
-	-rm -f include/config.h
-
-maintainer-clean-hdr:
 libgcj.spec: $(top_builddir)/config.status libgcj.spec.in
 	cd $(top_builddir) && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
 
@@ -1309,7 +1284,7 @@
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$/$$file $(distdir)/$$file; \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
 	  else \
 	    test -f $(distdir)/$$file \
 	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
@@ -1424,33 +1399,31 @@
 	-rm -f config.cache config.log stamp-h stamp-h[0-9]*
 
 maintainer-clean-generic:
-mostlyclean-am:  mostlyclean-hdr mostlyclean-toolexeclibLIBRARIES \
-		mostlyclean-compile mostlyclean-libtool \
-		mostlyclean-toolexeclibLTLIBRARIES \
+mostlyclean-am:  mostlyclean-toolexeclibLIBRARIES mostlyclean-compile \
+		mostlyclean-libtool mostlyclean-toolexeclibLTLIBRARIES \
 		mostlyclean-binPROGRAMS mostlyclean-noinstPROGRAMS \
 		mostlyclean-tags mostlyclean-depend mostlyclean-generic
 
 mostlyclean: mostlyclean-recursive
 
-clean-am:  clean-hdr clean-toolexeclibLIBRARIES clean-compile \
-		clean-libtool clean-toolexeclibLTLIBRARIES \
-		clean-binPROGRAMS clean-noinstPROGRAMS clean-tags \
-		clean-depend clean-generic mostlyclean-am clean-local
+clean-am:  clean-toolexeclibLIBRARIES clean-compile clean-libtool \
+		clean-toolexeclibLTLIBRARIES clean-binPROGRAMS \
+		clean-noinstPROGRAMS clean-tags clean-depend \
+		clean-generic mostlyclean-am clean-local
 
 clean: clean-recursive
 
-distclean-am:  distclean-hdr distclean-toolexeclibLIBRARIES \
-		distclean-compile distclean-libtool \
-		distclean-toolexeclibLTLIBRARIES distclean-binPROGRAMS \
-		distclean-noinstPROGRAMS distclean-tags \
-		distclean-depend distclean-generic clean-am
+distclean-am:  distclean-toolexeclibLIBRARIES distclean-compile \
+		distclean-libtool distclean-toolexeclibLTLIBRARIES \
+		distclean-binPROGRAMS distclean-noinstPROGRAMS \
+		distclean-tags distclean-depend distclean-generic \
+		clean-am
 	-rm -f libtool
 
 distclean: distclean-recursive
 	-rm -f config.status
 
-maintainer-clean-am:  maintainer-clean-hdr \
-		maintainer-clean-toolexeclibLIBRARIES \
+maintainer-clean-am:  maintainer-clean-toolexeclibLIBRARIES \
 		maintainer-clean-compile maintainer-clean-libtool \
 		maintainer-clean-toolexeclibLTLIBRARIES \
 		maintainer-clean-binPROGRAMS \
@@ -1463,8 +1436,7 @@
 maintainer-clean: maintainer-clean-recursive
 	-rm -f config.status
 
-.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
-mostlyclean-toolexeclibLIBRARIES distclean-toolexeclibLIBRARIES \
+.PHONY: mostlyclean-toolexeclibLIBRARIES distclean-toolexeclibLIBRARIES \
 clean-toolexeclibLIBRARIES maintainer-clean-toolexeclibLIBRARIES \
 uninstall-toolexeclibLIBRARIES install-toolexeclibLIBRARIES \
 mostlyclean-compile distclean-compile clean-compile \
Index: classes.pl
===================================================================
RCS file: classes.pl
diff -N classes.pl
--- /sourceware/cvs-tmp/cvsQHCJW1	Sun Feb 20 20:49:36 2000
+++ /dev/null	Tue May  5 13:32:27 1998
@@ -1,104 +0,0 @@
-# classes.pl - A perl program to generate most of the contents of
-# javaprims.h automatically.
-
-# Copyright (C) 1998, 1999  Red Hat, Inc.
-#
-# This file is part of libjava.
-#
-# This software is copyrighted work licensed under the terms of the
-# Libjava License.  Please consult the file "LIBJAVA_LICENSE" for
-# details.
-
-# Usage: cd <top-srcdir> ; perl classes.pl.
-# Can also be run from the `gcj' directory; this lets us
-# more easily insert the output into javaprims.h (which is where it goes).
-
-use DirHandle;
-
-if (-d 'java')
-{
-    # Ok here.
-}
-elsif (-d '../java')
-{
-    chdir ('..');
-}
-else
-{
-    die "couldn't find java directory\n";
-}
-
-&scan ('java', 2);
-
-exit 0;
-
-sub scan
-{
-    local ($dir, $indent) = @_;
-    local (@subdirs) = ();
-    local (%classes) = ();
-
-    local ($d) = new DirHandle $dir;
-    local (*JFILE);
-    local ($name);
-    if (defined $d)
-    {
-	while (defined ($name = $d->read))
-	{
-	    next if $name eq 'CVS';
-	    next if $name eq '.';
-	    next if $name eq '..';
-	    if ($dir eq 'java'
-		&& $name ne 'lang'
-		&& $name ne 'util'
-		&& $name ne 'io')
-	    {
-		# We only generate decls for java.lang, java.io, and
-		# java.util.
-		next;
-	    }
-	    if (-d ($dir . '/' . $name))
-	    {
-		push (@subdirs, $name);
-		next;
-	    }
-	    next unless $name =~ /\.java$/;
-
-	    open (FILE, "< $dir/$name");
-	    while (<FILE>)
-	    {
-		# NOTE: we don't skip `/*' comments.
-		s,//.*$,,;
-		# For now assume that class names start with upper
-		# case letter.
-		next unless /(class|interface) ([A-Z][A-Za-z0-9]+)/;
-		$classes{$2} = 1;
-	    }
-	    close (FILE);
-	}
-
-	undef $d;
-    }
-
-    local ($spaces) = ' ' x $indent;
-    local ($classname);
-    ($classname = $dir) =~ s/^.*\///;
-    print $spaces, "namespace ", $classname, "\n";
-    print $spaces, "{\n";
-
-    foreach (sort keys %classes)
-    {
-	print $spaces, "  class ", $_, ";\n";
-    }
-    print "\n" if scalar @classes > 0 && scalar @subdirs > 0;
-
-    local ($first) = 1;
-    foreach (sort @subdirs)
-    {
-	print "\n" unless $first;
-	$first = 0;
-	&scan ("$dir/$_", $indent + 2);
-    }
-
-    print $spaces, "}\n";
-}
Index: gcj/Makefile.in
===================================================================
RCS file: /cvs/java/libgcj/libjava/gcj/Makefile.in,v
retrieving revision 1.4
diff -u -r1.4 Makefile.in
--- Makefile.in	2000/01/17 19:22:20	1.4
+++ Makefile.in	2000/02/21 04:49:34
@@ -125,7 +125,7 @@
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 all: all-redirect
 .SUFFIXES:
@@ -194,7 +194,7 @@
 	@for file in $(DISTFILES); do \
 	  d=$(srcdir); \
 	  if test -d $$d/$$file; then \
-	    cp -pr $$/$$file $(distdir)/$$file; \
+	    cp -pr $$d/$$file $(distdir)/$$file; \
 	  else \
 	    test -f $(distdir)/$$file \
 	    || ln $$d/$$file $(distdir)/$$file 2> /dev/null \

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]