This is the mail archive of the
java-patches@sourceware.cygnus.com
mailing list for the Java project.
patch: mime types
- To: java-patches at sourceware dot cygnus dot com
- Subject: patch: mime types
- From: Anthony Green <green at cygnus dot com>
- Date: Sun, 20 Feb 2000 21:54:29 -0800
- Reply-to: green at redhat dot com
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 \