Import GNU Classpath (classpath-0_97_2-release).
authorMatthias Klose <doko@gcc.gnu.org>
Sat, 28 Jun 2008 13:29:13 +0000 (13:29 +0000)
committerMatthias Klose <doko@gcc.gnu.org>
Sat, 28 Jun 2008 13:29:13 +0000 (13:29 +0000)
libjava/

2008-06-28  Matthias Klose  <doko@ubuntu.com>

        Import GNU Classpath (classpath-0_97_2-release).

        * Regenerate class and header files.
        * Regenerate auto* files.
        * gcj/javaprims.h: Define jobjectRefType.
        * jni.cc (_Jv_JNI_GetObjectRefType): New (stub only).
        (_Jv_JNIFunctions): Initialize GetObjectRefType.
        * gnu/classpath/jdwp/VMVirtualMachine.java,
        java/security/VMSecureRandom.java: Merge from classpath.
        * HACKING: Fix typo.
        * ChangeLog-2007: New file.
        * configure.ac: Set JAVAC, pass --disable-regen-headers to classpath.

libjava/classpath/

2008-06-28  Matthias Klose  <doko@ubuntu.com>

        * m4/ac_prog_javac.m4: Disable check for JAVAC, when
        not configured with --enable-java-maintainer-mode.
        * aclocal.m4, configure: Regenerate.
        * native/jni/gstreamer-peer/Makefile.am: Do not link with
        libclasspathnative.
        * native/jni/gstreamer-peer/Makefile.in: Regenerate.
        * tools/Makefile.am, lib/Makefile.am: Use JAVAC for setting
        JCOMPILER, drop flags not understood by gcj.

From-SVN: r137223

1460 files changed:
libjava/ChangeLog
libjava/ChangeLog-2007 [new file with mode: 0644]
libjava/Makefile.in
libjava/aclocal.m4
libjava/classpath/AUTHORS
libjava/classpath/ChangeLog
libjava/classpath/ChangeLog-2007 [new file with mode: 0644]
libjava/classpath/ChangeLog.gcj
libjava/classpath/INSTALL
libjava/classpath/Makefile.am
libjava/classpath/Makefile.in
libjava/classpath/NEWS
libjava/classpath/THANKYOU
libjava/classpath/aclocal.m4
libjava/classpath/config.guess
libjava/classpath/config.sub
libjava/classpath/configure
libjava/classpath/configure.ac
libjava/classpath/depcomp
libjava/classpath/doc/Makefile.in
libjava/classpath/doc/api/Makefile.am
libjava/classpath/doc/api/Makefile.in
libjava/classpath/doc/cp-hacking.texinfo
libjava/classpath/doc/cp-vmintegration.texinfo
libjava/classpath/doc/texinfo.tex
libjava/classpath/examples/Makefile.am
libjava/classpath/examples/Makefile.in
libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPassHelper.java
libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturnHelper.java
libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNodeHelper.java
libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java
libjava/classpath/examples/gnu/classpath/examples/awt/AnimationApplet.java
libjava/classpath/examples/gnu/classpath/examples/java2d/J2dBenchmark.java
libjava/classpath/examples/gnu/classpath/examples/management/TestBeans.java
libjava/classpath/examples/gnu/classpath/examples/management/TestClassLoading.java
libjava/classpath/examples/gnu/classpath/examples/management/TestMemoryPool.java
libjava/classpath/examples/gnu/classpath/examples/sound/AudioPlayerSample.java [new file with mode: 0644]
libjava/classpath/examples/gnu/classpath/examples/swing/DocumentFilterDemo.java
libjava/classpath/examples/gnu/classpath/examples/swing/TableDemo.java
libjava/classpath/external/Makefile.in
libjava/classpath/external/jsr166/Makefile.in
libjava/classpath/external/relaxngDatatype/Makefile.in
libjava/classpath/external/sax/Makefile.in
libjava/classpath/external/w3c_dom/Makefile.in
libjava/classpath/gnu/CORBA/BigDecimalHelper.java
libjava/classpath/gnu/CORBA/ByteArrayComparator.java
libjava/classpath/gnu/CORBA/CDR/AbstractCdrInput.java
libjava/classpath/gnu/CORBA/CDR/AbstractCdrOutput.java
libjava/classpath/gnu/CORBA/CDR/HeadlessInput.java
libjava/classpath/gnu/CORBA/CDR/LittleEndianInputStream.java
libjava/classpath/gnu/CORBA/CDR/Vio.java
libjava/classpath/gnu/CORBA/CDR/gnuRuntime.java
libjava/classpath/gnu/CORBA/CollocatedOrbs.java
libjava/classpath/gnu/CORBA/Connected_objects.java
libjava/classpath/gnu/CORBA/DynAn/DivideableAny.java
libjava/classpath/gnu/CORBA/DynAn/gnuDynArray.java
libjava/classpath/gnu/CORBA/DynAn/gnuDynUnion.java
libjava/classpath/gnu/CORBA/EmptyExceptionHolder.java
libjava/classpath/gnu/CORBA/GIOP/CancelHeader.java
libjava/classpath/gnu/CORBA/GIOP/CodeSetServiceContext.java
libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java
libjava/classpath/gnu/CORBA/GIOP/v1_0/CancelHeader.java
libjava/classpath/gnu/CORBA/IOR.java
libjava/classpath/gnu/CORBA/Interceptor/IORInterceptors.java
libjava/classpath/gnu/CORBA/Interceptor/Registrator.java
libjava/classpath/gnu/CORBA/IorDelegate.java
libjava/classpath/gnu/CORBA/NamingService/NameParser.java
libjava/classpath/gnu/CORBA/NamingService/NameTransformer.java
libjava/classpath/gnu/CORBA/ObjectCreator.java
libjava/classpath/gnu/CORBA/OrbFocused.java
libjava/classpath/gnu/CORBA/OrbFunctional.java
libjava/classpath/gnu/CORBA/OrbRestricted.java
libjava/classpath/gnu/CORBA/Poa/AOM.java
libjava/classpath/gnu/CORBA/Poa/gnuPOA.java
libjava/classpath/gnu/CORBA/Poa/gnuPOAManager.java
libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java
libjava/classpath/gnu/CORBA/ServiceRequestAdapter.java
libjava/classpath/gnu/CORBA/gnuContextList.java
libjava/classpath/gnu/CORBA/gnuExceptionList.java
libjava/classpath/gnu/CORBA/gnuRequest.java
libjava/classpath/gnu/CORBA/typecodes/FixedTypeCode.java
libjava/classpath/gnu/CORBA/typecodes/RecursiveTypeCode.java
libjava/classpath/gnu/classpath/ServiceFactory.java
libjava/classpath/gnu/classpath/ServiceProviderLoadingAction.java
libjava/classpath/gnu/classpath/jdwp/event/ExceptionEvent.java
libjava/classpath/gnu/classpath/jdwp/event/filters/StepFilter.java
libjava/classpath/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java
libjava/classpath/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
libjava/classpath/gnu/classpath/toolkit/DefaultDaemonThreadFactory.java [new file with mode: 0644]
libjava/classpath/gnu/java/awt/AWTUtilities.java
libjava/classpath/gnu/java/awt/ClasspathToolkit.java
libjava/classpath/gnu/java/awt/EmbeddedWindow.java
libjava/classpath/gnu/java/awt/font/GNUGlyphVector.java
libjava/classpath/gnu/java/awt/font/OpenTypeFontPeer.java [new file with mode: 0644]
libjava/classpath/gnu/java/awt/image/AsyncImage.java [new file with mode: 0644]
libjava/classpath/gnu/java/awt/image/ImageConverter.java [new file with mode: 0644]
libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java
libjava/classpath/gnu/java/awt/java2d/PixelCoverage.java [new file with mode: 0644]
libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java
libjava/classpath/gnu/java/awt/java2d/ScanlineCoverage.java
libjava/classpath/gnu/java/awt/java2d/ShapeWrapper.java [new file with mode: 0644]
libjava/classpath/gnu/java/awt/java2d/TextCacheKey.java [new file with mode: 0644]
libjava/classpath/gnu/java/awt/peer/KDEDesktopPeer.java
libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java
libjava/classpath/gnu/java/awt/peer/gtk/CairoSurface.java
libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java
libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java
libjava/classpath/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
libjava/classpath/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
libjava/classpath/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java
libjava/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java
libjava/classpath/gnu/java/awt/peer/gtk/GtkFramePeer.java
libjava/classpath/gnu/java/awt/peer/gtk/GtkMainThread.java
libjava/classpath/gnu/java/awt/peer/gtk/GtkToolkit.java
libjava/classpath/gnu/java/awt/peer/gtk/GtkWindowPeer.java
libjava/classpath/gnu/java/awt/peer/gtk/VolatileImageGraphics.java
libjava/classpath/gnu/java/awt/peer/qt/QtMenuPeer.java
libjava/classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java
libjava/classpath/gnu/java/awt/peer/swing/SwingMenuBarPeer.java
libjava/classpath/gnu/java/awt/peer/swing/SwingTextAreaPeer.java
libjava/classpath/gnu/java/awt/peer/swing/SwingTextFieldPeer.java
libjava/classpath/gnu/java/awt/peer/x/ImageConverter.java [deleted file]
libjava/classpath/gnu/java/awt/peer/x/XEventPump.java
libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java [new file with mode: 0644]
libjava/classpath/gnu/java/awt/peer/x/XFontPeer2.java [deleted file]
libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java
libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java
libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java
libjava/classpath/gnu/java/awt/peer/x/XGraphicsEnvironment.java
libjava/classpath/gnu/java/awt/peer/x/XToolkit.java
libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java
libjava/classpath/gnu/java/awt/peer/x/ZPixmapDataBuffer.java
libjava/classpath/gnu/java/awt/print/PostScriptGraphics2D.java
libjava/classpath/gnu/java/awt/print/SpooledDocument.java
libjava/classpath/gnu/java/io/PlatformHelper.java
libjava/classpath/gnu/java/lang/MainThread.java
libjava/classpath/gnu/java/lang/management/BeanImpl.java
libjava/classpath/gnu/java/lang/reflect/TypeSignature.java
libjava/classpath/gnu/java/locale/LocaleHelper.java
libjava/classpath/gnu/java/net/protocol/http/Request.java
libjava/classpath/gnu/java/nio/DatagramChannelImpl.java
libjava/classpath/gnu/java/nio/FileChannelImpl.java
libjava/classpath/gnu/java/nio/KqueueSelectionKeyImpl.java
libjava/classpath/gnu/java/nio/NIOSocket.java
libjava/classpath/gnu/java/nio/ServerSocketChannelImpl.java
libjava/classpath/gnu/java/nio/SocketChannelImpl.java
libjava/classpath/gnu/java/nio/SocketChannelSelectionKeyImpl.java
libjava/classpath/gnu/java/nio/charset/ByteCharset.java
libjava/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java [new file with mode: 0644]
libjava/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java [new file with mode: 0644]
libjava/classpath/gnu/java/nio/charset/Cp424.java
libjava/classpath/gnu/java/nio/charset/Cp437.java
libjava/classpath/gnu/java/nio/charset/Cp737.java
libjava/classpath/gnu/java/nio/charset/Cp775.java
libjava/classpath/gnu/java/nio/charset/Cp850.java
libjava/classpath/gnu/java/nio/charset/Cp852.java
libjava/classpath/gnu/java/nio/charset/Cp855.java
libjava/classpath/gnu/java/nio/charset/Cp857.java
libjava/classpath/gnu/java/nio/charset/Cp860.java
libjava/classpath/gnu/java/nio/charset/Cp861.java
libjava/classpath/gnu/java/nio/charset/Cp862.java
libjava/classpath/gnu/java/nio/charset/Cp863.java
libjava/classpath/gnu/java/nio/charset/Cp864.java
libjava/classpath/gnu/java/nio/charset/Cp865.java
libjava/classpath/gnu/java/nio/charset/Cp866.java
libjava/classpath/gnu/java/nio/charset/Cp869.java
libjava/classpath/gnu/java/nio/charset/Cp874.java
libjava/classpath/gnu/java/nio/charset/EncodingHelper.java
libjava/classpath/gnu/java/nio/charset/ISO_8859_1.java
libjava/classpath/gnu/java/nio/charset/ISO_8859_13.java
libjava/classpath/gnu/java/nio/charset/ISO_8859_15.java
libjava/classpath/gnu/java/nio/charset/ISO_8859_2.java
libjava/classpath/gnu/java/nio/charset/ISO_8859_3.java
libjava/classpath/gnu/java/nio/charset/ISO_8859_4.java
libjava/classpath/gnu/java/nio/charset/ISO_8859_5.java
libjava/classpath/gnu/java/nio/charset/ISO_8859_6.java
libjava/classpath/gnu/java/nio/charset/ISO_8859_7.java
libjava/classpath/gnu/java/nio/charset/ISO_8859_8.java
libjava/classpath/gnu/java/nio/charset/ISO_8859_9.java
libjava/classpath/gnu/java/nio/charset/KOI_8.java
libjava/classpath/gnu/java/nio/charset/MS874.java
libjava/classpath/gnu/java/nio/charset/MacCentralEurope.java
libjava/classpath/gnu/java/nio/charset/MacCroatian.java
libjava/classpath/gnu/java/nio/charset/MacCyrillic.java
libjava/classpath/gnu/java/nio/charset/MacDingbat.java
libjava/classpath/gnu/java/nio/charset/MacGreek.java
libjava/classpath/gnu/java/nio/charset/MacIceland.java
libjava/classpath/gnu/java/nio/charset/MacRoman.java
libjava/classpath/gnu/java/nio/charset/MacRomania.java
libjava/classpath/gnu/java/nio/charset/MacSymbol.java
libjava/classpath/gnu/java/nio/charset/MacThai.java
libjava/classpath/gnu/java/nio/charset/MacTurkish.java
libjava/classpath/gnu/java/nio/charset/Provider.java
libjava/classpath/gnu/java/nio/charset/US_ASCII.java
libjava/classpath/gnu/java/nio/charset/Windows1250.java
libjava/classpath/gnu/java/nio/charset/Windows1251.java
libjava/classpath/gnu/java/nio/charset/Windows1252.java
libjava/classpath/gnu/java/nio/charset/Windows1253.java
libjava/classpath/gnu/java/nio/charset/Windows1254.java
libjava/classpath/gnu/java/nio/charset/Windows1255.java
libjava/classpath/gnu/java/nio/charset/Windows1256.java
libjava/classpath/gnu/java/nio/charset/Windows1257.java
libjava/classpath/gnu/java/nio/charset/Windows1258.java
libjava/classpath/gnu/java/rmi/server/ConnectionRunnerPool.java
libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java
libjava/classpath/gnu/java/rmi/server/RMIObjectInputStream.java
libjava/classpath/gnu/java/security/Engine.java
libjava/classpath/gnu/java/security/key/dss/FIPS186.java
libjava/classpath/gnu/java/text/AttributedFormatBuffer.java
libjava/classpath/gnu/java/util/LRUCache.java [new file with mode: 0644]
libjava/classpath/gnu/java/util/regex/RE.java
libjava/classpath/gnu/java/util/regex/REException.java
libjava/classpath/gnu/java/util/regex/REToken.java
libjava/classpath/gnu/java/util/regex/RETokenNamedProperty.java
libjava/classpath/gnu/javax/crypto/jce/DiffieHellmanImpl.java
libjava/classpath/gnu/javax/crypto/key/dh/RFC2631.java
libjava/classpath/gnu/javax/imageio/bmp/DecodeBF16.java
libjava/classpath/gnu/javax/imageio/bmp/EncodeRGB32.java
libjava/classpath/gnu/javax/imageio/gif/GIFFile.java
libjava/classpath/gnu/javax/imageio/jpeg/JPEGComponent.java
libjava/classpath/gnu/javax/imageio/jpeg/JPEGDecoder.java
libjava/classpath/gnu/javax/imageio/jpeg/JPEGException.java
libjava/classpath/gnu/javax/imageio/jpeg/JPEGFrame.java
libjava/classpath/gnu/javax/imageio/jpeg/JPEGImageInputStream.java
libjava/classpath/gnu/javax/imageio/png/PNGChunk.java
libjava/classpath/gnu/javax/imageio/png/PNGDecoder.java
libjava/classpath/gnu/javax/imageio/png/PNGEncoder.java
libjava/classpath/gnu/javax/imageio/png/PNGFile.java
libjava/classpath/gnu/javax/imageio/png/PNGGamma.java
libjava/classpath/gnu/javax/management/Server.java
libjava/classpath/gnu/javax/management/Translator.java
libjava/classpath/gnu/javax/naming/giop/ContextContinuation.java
libjava/classpath/gnu/javax/naming/jndi/url/rmi/ContextContinuation.java
libjava/classpath/gnu/javax/net/ssl/SSLRecordHandler.java
libjava/classpath/gnu/javax/net/ssl/StaticTrustAnchors.java
libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequestBuilder.java
libjava/classpath/gnu/javax/net/ssl/provider/ClientHandshake.java
libjava/classpath/gnu/javax/net/ssl/provider/ClientPSKParameters.java
libjava/classpath/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java
libjava/classpath/gnu/javax/net/ssl/provider/ContentType.java
libjava/classpath/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java
libjava/classpath/gnu/javax/net/ssl/provider/Handshake.java
libjava/classpath/gnu/javax/net/ssl/provider/InputSecurityParameters.java
libjava/classpath/gnu/javax/net/ssl/provider/OutputSecurityParameters.java
libjava/classpath/gnu/javax/net/ssl/provider/ProtocolVersion.java
libjava/classpath/gnu/javax/net/ssl/provider/Random.java
libjava/classpath/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.java
libjava/classpath/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java
libjava/classpath/gnu/javax/net/ssl/provider/ServerHandshake.java
libjava/classpath/gnu/javax/net/ssl/provider/SessionImpl.java
libjava/classpath/gnu/javax/net/ssl/provider/Signature.java
libjava/classpath/gnu/javax/net/ssl/provider/SimpleSessionContext.java
libjava/classpath/gnu/javax/net/ssl/provider/TLSHMac.java
libjava/classpath/gnu/javax/net/ssl/provider/TrustedAuthorities.java
libjava/classpath/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java
libjava/classpath/gnu/javax/net/ssl/provider/X509KeyManagerFactory.java
libjava/classpath/gnu/javax/print/PrinterDialog.java
libjava/classpath/gnu/javax/security/auth/Password.java
libjava/classpath/gnu/javax/sound/AudioSecurityManager.java
libjava/classpath/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java
libjava/classpath/gnu/javax/sound/midi/file/MidiFileWriter.java
libjava/classpath/gnu/javax/sound/sampled/AU/AUReader.java
libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java
libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java
libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java
libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java [new file with mode: 0644]
libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java
libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java
libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java
libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java
libjava/classpath/gnu/javax/swing/text/html/css/FontSize.java
libjava/classpath/gnu/javax/swing/text/html/css/Selector.java
libjava/classpath/gnu/javax/swing/text/html/parser/models/node.java
libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java
libjava/classpath/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java
libjava/classpath/gnu/javax/swing/text/html/parser/support/parameterDefaulter.java
libjava/classpath/gnu/javax/swing/text/html/parser/support/textPreProcessor.java
libjava/classpath/gnu/xml/aelfred2/XmlParser.java
libjava/classpath/gnu/xml/dom/html2/DomHTMLButtonElement.java
libjava/classpath/gnu/xml/dom/html2/DomHTMLCollection.java
libjava/classpath/gnu/xml/dom/html2/DomHTMLParser.java
libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathResult.java
libjava/classpath/gnu/xml/pipeline/DomConsumer.java
libjava/classpath/gnu/xml/pipeline/EventFilter.java
libjava/classpath/gnu/xml/stream/AttributeImpl.java
libjava/classpath/gnu/xml/stream/EndDocumentImpl.java
libjava/classpath/gnu/xml/stream/SAXParser.java
libjava/classpath/gnu/xml/stream/XIncludeFilter.java
libjava/classpath/gnu/xml/stream/XMLEventAllocatorImpl.java
libjava/classpath/gnu/xml/stream/XMLEventFactoryImpl.java
libjava/classpath/gnu/xml/stream/XMLEventImpl.java
libjava/classpath/gnu/xml/stream/XMLParser.java
libjava/classpath/gnu/xml/transform/StreamSerializer.java
libjava/classpath/gnu/xml/transform/Stylesheet.java
libjava/classpath/gnu/xml/util/Resolver.java
libjava/classpath/gnu/xml/validation/datatype/Base64BinaryType.java
libjava/classpath/gnu/xml/validation/datatype/BooleanType.java
libjava/classpath/gnu/xml/validation/datatype/DecimalType.java
libjava/classpath/gnu/xml/validation/datatype/DoubleType.java
libjava/classpath/gnu/xml/validation/datatype/FloatType.java
libjava/classpath/gnu/xml/validation/datatype/HexBinaryType.java
libjava/classpath/gnu/xml/validation/datatype/NotationType.java
libjava/classpath/gnu/xml/validation/datatype/SimpleType.java
libjava/classpath/gnu/xml/validation/datatype/StringType.java
libjava/classpath/gnu/xml/validation/datatype/Type.java
libjava/classpath/gnu/xml/validation/datatype/TypeBuilder.java
libjava/classpath/gnu/xml/validation/relaxng/FullSyntaxBuilder.java
libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.java
libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaBuilder.java
libjava/classpath/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.java
libjava/classpath/gnu/xml/xpath/XPathParser.java
libjava/classpath/include/Makefile.am
libjava/classpath/include/Makefile.in
libjava/classpath/include/config.h.in
libjava/classpath/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h
libjava/classpath/include/gnu_java_awt_peer_gtk_CairoSurface.h
libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h
libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h
libjava/classpath/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GdkFontPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GdkRobotPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkClipboard.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkFramePeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkImage.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkListPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkSelection.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkToolkit.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_MainQtThread.h
libjava/classpath/include/gnu_java_awt_peer_qt_QMatrix.h
libjava/classpath/include/gnu_java_awt_peer_qt_QPainterPath.h
libjava/classpath/include/gnu_java_awt_peer_qt_QPen.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtAudioClip.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtButtonPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtCanvasPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtChoicePeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtComponentPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtDialogPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtFontMetrics.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtFontPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtFramePeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtGraphics.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtImage.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtLabelPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtListPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuBarPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuItemPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtMenuPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtPanelPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtScreenDevice.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtToolkit.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtVolatileImage.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtWindowPeer.h
libjava/classpath/include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h
libjava/classpath/include/gnu_java_net_VMPlainSocketImpl.h
libjava/classpath/include/gnu_java_net_local_LocalSocketImpl.h
libjava/classpath/include/gnu_java_nio_EpollSelectorImpl.h
libjava/classpath/include/gnu_java_nio_FileChannelImpl.h
libjava/classpath/include/gnu_java_nio_KqueueSelectorImpl.h
libjava/classpath/include/gnu_java_nio_VMChannel.h
libjava/classpath/include/gnu_java_nio_VMPipe.h
libjava/classpath/include/gnu_java_nio_VMSelector.h
libjava/classpath/include/gnu_java_nio_charset_iconv_IconvDecoder.h
libjava/classpath/include/gnu_java_nio_charset_iconv_IconvEncoder.h
libjava/classpath/include/gnu_java_util_prefs_gconf_GConfNativePeer.h
libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h
libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h
libjava/classpath/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h
libjava/classpath/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h
libjava/classpath/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h
libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h
libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h [new file with mode: 0644]
libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h [new file with mode: 0644]
libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h [new file with mode: 0644]
libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeAttr.h
libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocument.h
libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h
libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h
libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeElement.h
libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeEntity.h
libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h
libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNode.h
libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNodeList.h
libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeNotation.h
libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h
libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h
libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h
libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h
libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathResult.h
libjava/classpath/include/gnu_xml_libxmlj_sax_GnomeLocator.h
libjava/classpath/include/gnu_xml_libxmlj_sax_GnomeXMLReader.h
libjava/classpath/include/gnu_xml_libxmlj_transform_GnomeTransformer.h
libjava/classpath/include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h
libjava/classpath/include/java_io_VMFile.h
libjava/classpath/include/java_io_VMObjectInputStream.h
libjava/classpath/include/java_io_VMObjectStreamClass.h
libjava/classpath/include/java_lang_VMDouble.h
libjava/classpath/include/java_lang_VMFloat.h
libjava/classpath/include/java_lang_VMMath.h
libjava/classpath/include/java_lang_VMProcess.h
libjava/classpath/include/java_lang_VMSystem.h
libjava/classpath/include/java_lang_reflect_VMArray.h
libjava/classpath/include/java_net_VMInetAddress.h
libjava/classpath/include/java_net_VMNetworkInterface.h
libjava/classpath/include/java_net_VMURLConnection.h
libjava/classpath/include/java_nio_MappedByteBufferImpl.h
libjava/classpath/include/java_nio_VMDirectByteBuffer.h
libjava/classpath/include/java_util_VMTimeZone.h
libjava/classpath/include/jni.h
libjava/classpath/install-sh
libjava/classpath/java/awt/AWTKeyStroke.java
libjava/classpath/java/awt/Container.java
libjava/classpath/java/awt/DefaultKeyboardFocusManager.java
libjava/classpath/java/awt/Desktop.java
libjava/classpath/java/awt/Font.java
libjava/classpath/java/awt/GridBagLayout.java
libjava/classpath/java/awt/LightweightDispatcher.java
libjava/classpath/java/awt/MenuShortcut.java
libjava/classpath/java/awt/color/ICC_Profile.java
libjava/classpath/java/awt/dnd/DragGestureRecognizer.java
libjava/classpath/java/awt/event/MouseEvent.java
libjava/classpath/java/awt/font/LineBreakMeasurer.java
libjava/classpath/java/awt/font/TextMeasurer.java
libjava/classpath/java/awt/geom/Arc2D.java
libjava/classpath/java/awt/geom/CubicCurve2D.java
libjava/classpath/java/awt/geom/QuadCurve2D.java
libjava/classpath/java/awt/im/InputContext.java
libjava/classpath/java/awt/image/AffineTransformOp.java
libjava/classpath/java/awt/image/AreaAveragingScaleFilter.java
libjava/classpath/java/awt/image/BufferedImage.java
libjava/classpath/java/awt/image/PixelInterleavedSampleModel.java
libjava/classpath/java/awt/image/RGBImageFilter.java
libjava/classpath/java/awt/image/Raster.java
libjava/classpath/java/beans/Beans.java
libjava/classpath/java/beans/DefaultPersistenceDelegate.java
libjava/classpath/java/beans/Encoder.java
libjava/classpath/java/beans/EventHandler.java
libjava/classpath/java/beans/PropertyChangeSupport.java
libjava/classpath/java/beans/VetoableChangeSupport.java
libjava/classpath/java/beans/XMLDecoder.java
libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java
libjava/classpath/java/beans/beancontext/BeanContextSupport.java
libjava/classpath/java/io/BufferedReader.java
libjava/classpath/java/io/CharArrayWriter.java
libjava/classpath/java/io/DataInputStream.java
libjava/classpath/java/io/DataOutputStream.java
libjava/classpath/java/io/File.java
libjava/classpath/java/io/FileOutputStream.java
libjava/classpath/java/io/ObjectInputStream.java
libjava/classpath/java/io/ObjectOutputStream.java
libjava/classpath/java/io/ObjectStreamClass.java
libjava/classpath/java/io/OutputStreamWriter.java
libjava/classpath/java/io/PipedInputStream.java
libjava/classpath/java/io/PrintStream.java
libjava/classpath/java/lang/Class.java
libjava/classpath/java/lang/Double.java
libjava/classpath/java/lang/Float.java
libjava/classpath/java/lang/Integer.java
libjava/classpath/java/lang/Long.java
libjava/classpath/java/lang/StackTraceElement.java
libjava/classpath/java/lang/String.java
libjava/classpath/java/lang/System.java
libjava/classpath/java/lang/Throwable.java
libjava/classpath/java/lang/management/ThreadInfo.java
libjava/classpath/java/lang/reflect/Array.java
libjava/classpath/java/lang/reflect/Proxy.java
libjava/classpath/java/math/BigInteger.java
libjava/classpath/java/net/DatagramSocket.java
libjava/classpath/java/net/ResolverCache.java
libjava/classpath/java/net/ServerSocket.java
libjava/classpath/java/net/Socket.java
libjava/classpath/java/net/URI.java
libjava/classpath/java/net/URLClassLoader.java
libjava/classpath/java/net/URLEncoder.java
libjava/classpath/java/nio/charset/Charset.java
libjava/classpath/java/nio/charset/CoderResult.java
libjava/classpath/java/security/SecureClassLoader.java
libjava/classpath/java/security/Security.java
libjava/classpath/java/security/cert/CertificateFactory.java
libjava/classpath/java/security/spec/RSAKeyGenParameterSpec.java
libjava/classpath/java/text/ChoiceFormat.java
libjava/classpath/java/text/CollationElementIterator.java
libjava/classpath/java/text/DecimalFormat.java
libjava/classpath/java/text/MessageFormat.java
libjava/classpath/java/text/RuleBasedCollator.java
libjava/classpath/java/text/SimpleDateFormat.java
libjava/classpath/java/util/AbstractMap.java
libjava/classpath/java/util/Calendar.java
libjava/classpath/java/util/Collections.java
libjava/classpath/java/util/Date.java
libjava/classpath/java/util/Formatter.java
libjava/classpath/java/util/Hashtable.java
libjava/classpath/java/util/LinkedHashSet.java
libjava/classpath/java/util/Locale.java
libjava/classpath/java/util/concurrent/CopyOnWriteArrayList.java
libjava/classpath/java/util/jar/Manifest.java
libjava/classpath/java/util/logging/Logger.java
libjava/classpath/java/util/zip/ZipEntry.java
libjava/classpath/javax/accessibility/AccessibleAction.java
libjava/classpath/javax/accessibility/AccessibleAttributeSequence.java
libjava/classpath/javax/accessibility/AccessibleEditableText.java
libjava/classpath/javax/accessibility/AccessibleRelationSet.java
libjava/classpath/javax/accessibility/AccessibleRole.java
libjava/classpath/javax/accessibility/AccessibleTextSequence.java
libjava/classpath/javax/imageio/ImageReader.java
libjava/classpath/javax/imageio/ImageTypeSpecifier.java
libjava/classpath/javax/imageio/ImageWriter.java
libjava/classpath/javax/imageio/metadata/IIOMetadataFormatImpl.java
libjava/classpath/javax/imageio/metadata/IIOMetadataNode.java
libjava/classpath/javax/imageio/spi/ServiceRegistry.java
libjava/classpath/javax/imageio/stream/ImageInputStream.java
libjava/classpath/javax/imageio/stream/MemoryCacheImageInputStream.java
libjava/classpath/javax/management/MBeanPermission.java
libjava/classpath/javax/management/NotificationBroadcasterSupport.java
libjava/classpath/javax/management/ObjectName.java
libjava/classpath/javax/management/StandardMBean.java
libjava/classpath/javax/management/openmbean/ArrayType.java
libjava/classpath/javax/management/package.html [new file with mode: 0644]
libjava/classpath/javax/management/remote/NotificationResult.java [new file with mode: 0644]
libjava/classpath/javax/management/remote/TargetedNotification.java [new file with mode: 0644]
libjava/classpath/javax/management/remote/package.html [new file with mode: 0644]
libjava/classpath/javax/management/remote/rmi/RMIConnection.java [new file with mode: 0644]
libjava/classpath/javax/management/remote/rmi/RMIServer.java [new file with mode: 0644]
libjava/classpath/javax/net/ssl/HttpsURLConnection.java
libjava/classpath/javax/print/attribute/standard/JobStateReasons.java
libjava/classpath/javax/print/attribute/standard/MediaSize.java
libjava/classpath/javax/print/attribute/standard/PrinterStateReasons.java
libjava/classpath/javax/rmi/CORBA/PortableRemoteObjectDelegate.java
libjava/classpath/javax/rmi/CORBA/Util.java
libjava/classpath/javax/rmi/CORBA/UtilDelegate.java
libjava/classpath/javax/rmi/CORBA/ValueHandler.java
libjava/classpath/javax/rmi/PortableRemoteObject.java
libjava/classpath/javax/rmi/ssl/SslRMIClientSocketFactory.java
libjava/classpath/javax/swing/JFrame.java
libjava/classpath/javax/swing/JTree.java
libjava/classpath/javax/swing/RepaintManager.java
libjava/classpath/javax/swing/TransferHandler.java
libjava/classpath/javax/swing/plaf/basic/BasicDirectoryModel.java
libjava/classpath/javax/swing/plaf/basic/BasicFileChooserUI.java
libjava/classpath/javax/swing/plaf/basic/BasicGraphicsUtils.java
libjava/classpath/javax/swing/plaf/basic/BasicLabelUI.java
libjava/classpath/javax/swing/plaf/basic/BasicTreeUI.java
libjava/classpath/javax/swing/plaf/metal/MetalScrollButton.java
libjava/classpath/javax/swing/table/DefaultTableCellRenderer.java
libjava/classpath/javax/swing/table/DefaultTableColumnModel.java
libjava/classpath/javax/swing/text/DefaultStyledDocument.java
libjava/classpath/javax/swing/text/GlyphView.java
libjava/classpath/javax/swing/text/ParagraphView.java
libjava/classpath/javax/swing/text/html/MinimalHTMLWriter.java
libjava/classpath/javax/swing/text/html/ResetableToggleButtonModel.java
libjava/classpath/javax/swing/text/html/parser/DTD.java
libjava/classpath/javax/swing/text/html/parser/Entity.java
libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java
libjava/classpath/javax/swing/tree/DefaultTreeCellEditor.java
libjava/classpath/javax/swing/tree/DefaultTreeCellRenderer.java
libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java
libjava/classpath/javax/swing/tree/FixedHeightLayoutCache.java
libjava/classpath/javax/swing/tree/VariableHeightLayoutCache.java
libjava/classpath/javax/swing/undo/StateEdit.java
libjava/classpath/javax/swing/undo/UndoManager.java
libjava/classpath/javax/tools/Diagnostic.java [new file with mode: 0644]
libjava/classpath/javax/tools/DiagnosticListener.java [new file with mode: 0644]
libjava/classpath/javax/tools/FileObject.java [new file with mode: 0644]
libjava/classpath/javax/xml/datatype/DatatypeFactory.java
libjava/classpath/javax/xml/namespace/QName.java
libjava/classpath/javax/xml/stream/XMLEventFactory.java
libjava/classpath/javax/xml/stream/XMLInputFactory.java
libjava/classpath/javax/xml/stream/events/Attribute.java
libjava/classpath/lib/Makefile.am
libjava/classpath/lib/Makefile.in
libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class
libjava/classpath/lib/gnu/CORBA/ByteArrayComparator.class
libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class
libjava/classpath/lib/gnu/CORBA/CollocatedOrbs.class
libjava/classpath/lib/gnu/CORBA/DynAn/DivideableAny.class
libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynArray.class
libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynUnion.class
libjava/classpath/lib/gnu/CORBA/EmptyExceptionHolder.class
libjava/classpath/lib/gnu/CORBA/GIOP/CodeSetServiceContext.class
libjava/classpath/lib/gnu/CORBA/Interceptor/IORInterceptors.class
libjava/classpath/lib/gnu/CORBA/IorDelegate.class
libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class
libjava/classpath/lib/gnu/CORBA/OrbRestricted.class
libjava/classpath/lib/gnu/CORBA/Poa/gnuPOAManager.class
libjava/classpath/lib/gnu/CORBA/ServiceRequestAdapter.class
libjava/classpath/lib/gnu/CORBA/gnuContextList.class
libjava/classpath/lib/gnu/CORBA/gnuExceptionList.class
libjava/classpath/lib/gnu/CORBA/gnuRequest$1.class
libjava/classpath/lib/gnu/CORBA/gnuRequest$2.class
libjava/classpath/lib/gnu/CORBA/gnuRequest.class
libjava/classpath/lib/gnu/classpath/ServiceFactory$ServiceIterator.class
libjava/classpath/lib/gnu/classpath/ServiceFactory.class
libjava/classpath/lib/gnu/classpath/ServiceProviderLoadingAction.class
libjava/classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class
libjava/classpath/lib/gnu/classpath/jdwp/event/ExceptionEvent.class
libjava/classpath/lib/gnu/classpath/jdwp/event/filters/StepFilter.class
libjava/classpath/lib/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.class
libjava/classpath/lib/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.class
libjava/classpath/lib/gnu/classpath/toolkit/DefaultDaemonThreadFactory.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/ClasspathToolkit.class
libjava/classpath/lib/gnu/java/awt/EmbeddedWindow.class
libjava/classpath/lib/gnu/java/awt/font/GNUGlyphVector.class
libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/image/AsyncImage$AsyncImageSource.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/image/AsyncImage.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/image/ImageConverter.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class
libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage$Bucket.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class
libjava/classpath/lib/gnu/java/awt/java2d/ShapeWrapper.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/java2d/TextCacheKey.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMainThread.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class
libjava/classpath/lib/gnu/java/awt/print/PostScriptGraphics2D.class
libjava/classpath/lib/gnu/java/awt/print/SpooledDocument.class
libjava/classpath/lib/gnu/java/io/PlatformHelper.class
libjava/classpath/lib/gnu/java/lang/management/BeanImpl.class
libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class
libjava/classpath/lib/gnu/java/locale/LocaleHelper.class
libjava/classpath/lib/gnu/java/net/protocol/http/Request.class
libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$1.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$2.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Decoder.class
libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Encoder.class
libjava/classpath/lib/gnu/java/nio/charset/ByteCharset.class
libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/nio/charset/Cp424.class
libjava/classpath/lib/gnu/java/nio/charset/Cp437.class
libjava/classpath/lib/gnu/java/nio/charset/Cp737.class
libjava/classpath/lib/gnu/java/nio/charset/Cp775.class
libjava/classpath/lib/gnu/java/nio/charset/Cp850.class
libjava/classpath/lib/gnu/java/nio/charset/Cp852.class
libjava/classpath/lib/gnu/java/nio/charset/Cp855.class
libjava/classpath/lib/gnu/java/nio/charset/Cp857.class
libjava/classpath/lib/gnu/java/nio/charset/Cp860.class
libjava/classpath/lib/gnu/java/nio/charset/Cp861.class
libjava/classpath/lib/gnu/java/nio/charset/Cp862.class
libjava/classpath/lib/gnu/java/nio/charset/Cp863.class
libjava/classpath/lib/gnu/java/nio/charset/Cp864.class
libjava/classpath/lib/gnu/java/nio/charset/Cp865.class
libjava/classpath/lib/gnu/java/nio/charset/Cp866.class
libjava/classpath/lib/gnu/java/nio/charset/Cp869.class
libjava/classpath/lib/gnu/java/nio/charset/Cp874.class
libjava/classpath/lib/gnu/java/nio/charset/EncodingHelper.class
libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$1.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$2.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Decoder.class
libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Encoder.class
libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1.class
libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_13.class
libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_15.class
libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_2.class
libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_3.class
libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_4.class
libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_5.class
libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_6.class
libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_7.class
libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_8.class
libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_9.class
libjava/classpath/lib/gnu/java/nio/charset/KOI_8.class
libjava/classpath/lib/gnu/java/nio/charset/MS874.class
libjava/classpath/lib/gnu/java/nio/charset/MacCentralEurope.class
libjava/classpath/lib/gnu/java/nio/charset/MacCroatian.class
libjava/classpath/lib/gnu/java/nio/charset/MacCyrillic.class
libjava/classpath/lib/gnu/java/nio/charset/MacDingbat.class
libjava/classpath/lib/gnu/java/nio/charset/MacGreek.class
libjava/classpath/lib/gnu/java/nio/charset/MacIceland.class
libjava/classpath/lib/gnu/java/nio/charset/MacRoman.class
libjava/classpath/lib/gnu/java/nio/charset/MacRomania.class
libjava/classpath/lib/gnu/java/nio/charset/MacSymbol.class
libjava/classpath/lib/gnu/java/nio/charset/MacThai.class
libjava/classpath/lib/gnu/java/nio/charset/MacTurkish.class
libjava/classpath/lib/gnu/java/nio/charset/Provider$1.class
libjava/classpath/lib/gnu/java/nio/charset/Provider.class
libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$1.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$2.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Decoder.class
libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Encoder.class
libjava/classpath/lib/gnu/java/nio/charset/US_ASCII.class
libjava/classpath/lib/gnu/java/nio/charset/Windows1250.class
libjava/classpath/lib/gnu/java/nio/charset/Windows1251.class
libjava/classpath/lib/gnu/java/nio/charset/Windows1252.class
libjava/classpath/lib/gnu/java/nio/charset/Windows1253.class
libjava/classpath/lib/gnu/java/nio/charset/Windows1254.class
libjava/classpath/lib/gnu/java/nio/charset/Windows1255.class
libjava/classpath/lib/gnu/java/nio/charset/Windows1256.class
libjava/classpath/lib/gnu/java/nio/charset/Windows1257.class
libjava/classpath/lib/gnu/java/nio/charset/Windows1258.class
libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool.class
libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class
libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class
libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class
libjava/classpath/lib/gnu/java/rmi/server/RMIObjectInputStream.class
libjava/classpath/lib/gnu/java/util/LRUCache.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class
libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class
libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class
libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class
libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class
libjava/classpath/lib/gnu/java/util/regex/RE.class
libjava/classpath/lib/gnu/java/util/regex/REException.class
libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class
libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class
libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class
libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class
libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class
libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class
libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class
libjava/classpath/lib/gnu/javax/crypto/jce/DiffieHellmanImpl.class
libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF16.class
libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB32.class
libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGDecoder.class
libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGException.class
libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageInputStream.class
libjava/classpath/lib/gnu/javax/imageio/png/PNGChunk.class
libjava/classpath/lib/gnu/javax/imageio/png/PNGEncoder.class
libjava/classpath/lib/gnu/javax/imageio/png/PNGFile.class
libjava/classpath/lib/gnu/javax/imageio/png/PNGGamma.class
libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class
libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class
libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class
libjava/classpath/lib/gnu/javax/management/Server.class
libjava/classpath/lib/gnu/javax/management/Translator.class
libjava/classpath/lib/gnu/javax/net/ssl/SSLRecordHandler.class
libjava/classpath/lib/gnu/javax/net/ssl/StaticTrustAnchors.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequestBuilder.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$CertLoader.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ClientDHGen.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$GenCertVerify.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ParamsVerifier.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$RSAGen.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$State.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientPSKParameters.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/ContentType.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake$Type.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/InputSecurityParameters.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/OutputSecurityParameters.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/ProtocolVersion.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/Random.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory$Manager.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl$PrivateData.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/Signature.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext$1.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSHMac.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$AuthoritiesIterator.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$IdentifierType.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$TrustedAuthority.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory$Manager.class
libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory.class
libjava/classpath/lib/gnu/javax/security/auth/Password.class
libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class
libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class
libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$1.class
libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$DSSIInfo.class
libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.class
libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileWriter.class
libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUFormatType.class
libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUHeader.class
libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader.class
libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer$GstInfo.class
libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.class
libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.class
libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader.class
libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.class
libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.class [new file with mode: 0644]
libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.class [deleted file]
libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.class
libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.class
libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$CleanPipeline.class [new file with mode: 0644]
libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$State.class [new file with mode: 0644]
libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.class
libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.class
libjava/classpath/lib/gnu/javax/swing/text/html/css/FontSize.class
libjava/classpath/lib/gnu/javax/swing/text/html/css/Selector.class
libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.class
libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.class
libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$AttributeDecl.class
libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ElementDecl.class
libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$EntityInfo.class
libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.class
libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$Input.class
libjava/classpath/lib/gnu/xml/aelfred2/XmlParser.class
libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLButtonElement.class
libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLCollection.class
libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParser.class
libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class
libjava/classpath/lib/gnu/xml/pipeline/EventFilter.class
libjava/classpath/lib/gnu/xml/stream/AttributeImpl.class
libjava/classpath/lib/gnu/xml/stream/EndDocumentImpl.class
libjava/classpath/lib/gnu/xml/stream/SAXParser.class
libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class
libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class
libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class
libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class
libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class
libjava/classpath/lib/gnu/xml/stream/XMLParser.class
libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class
libjava/classpath/lib/gnu/xml/transform/Stylesheet.class
libjava/classpath/lib/gnu/xml/validation/datatype/Base64BinaryType.class
libjava/classpath/lib/gnu/xml/validation/datatype/BooleanType.class
libjava/classpath/lib/gnu/xml/validation/datatype/DecimalType.class
libjava/classpath/lib/gnu/xml/validation/datatype/DoubleType.class
libjava/classpath/lib/gnu/xml/validation/datatype/FloatType.class
libjava/classpath/lib/gnu/xml/validation/datatype/HexBinaryType.class
libjava/classpath/lib/gnu/xml/validation/datatype/NotationType.class
libjava/classpath/lib/gnu/xml/validation/datatype/SimpleType.class
libjava/classpath/lib/gnu/xml/validation/datatype/StringType.class
libjava/classpath/lib/gnu/xml/validation/datatype/Type.class
libjava/classpath/lib/gnu/xml/validation/datatype/TypeBuilder.class
libjava/classpath/lib/gnu/xml/validation/relaxng/FullSyntaxBuilder.class
libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.class
libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaBuilder.class
libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyException.class
libjava/classpath/lib/gnu/xml/xpath/XPathParser.class
libjava/classpath/lib/java/awt/AWTKeyStroke$3.class
libjava/classpath/lib/java/awt/AWTKeyStroke.class
libjava/classpath/lib/java/awt/Container.class
libjava/classpath/lib/java/awt/Desktop.class
libjava/classpath/lib/java/awt/Font.class
libjava/classpath/lib/java/awt/GridBagLayout.class
libjava/classpath/lib/java/awt/LightweightDispatcher.class
libjava/classpath/lib/java/awt/MenuShortcut.class
libjava/classpath/lib/java/awt/color/ICC_Profile.class
libjava/classpath/lib/java/awt/event/MouseEvent.class
libjava/classpath/lib/java/awt/font/LineBreakMeasurer.class
libjava/classpath/lib/java/awt/font/TextMeasurer.class
libjava/classpath/lib/java/awt/im/InputContext.class
libjava/classpath/lib/java/awt/image/BufferedImage$1.class
libjava/classpath/lib/java/awt/image/BufferedImage.class
libjava/classpath/lib/java/awt/image/PixelInterleavedSampleModel.class
libjava/classpath/lib/java/awt/image/RGBImageFilter.class
libjava/classpath/lib/java/awt/image/Raster.class
libjava/classpath/lib/java/beans/DefaultPersistenceDelegate.class
libjava/classpath/lib/java/beans/EventHandler.class
libjava/classpath/lib/java/beans/PropertyChangeSupport.class
libjava/classpath/lib/java/beans/VetoableChangeSupport.class
libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.class
libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class
libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class
libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class
libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class
libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class
libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class
libjava/classpath/lib/java/io/BufferedReader.class
libjava/classpath/lib/java/io/DataInputStream.class
libjava/classpath/lib/java/io/DataOutputStream.class
libjava/classpath/lib/java/io/ObjectInputStream$1.class
libjava/classpath/lib/java/io/ObjectInputStream$2.class
libjava/classpath/lib/java/io/ObjectInputStream$GetField.class
libjava/classpath/lib/java/io/ObjectInputStream$ValidatorAndPriority.class
libjava/classpath/lib/java/io/ObjectInputStream.class
libjava/classpath/lib/java/io/ObjectOutputStream$1.class
libjava/classpath/lib/java/io/ObjectOutputStream$PutField.class
libjava/classpath/lib/java/io/ObjectOutputStream.class
libjava/classpath/lib/java/io/ObjectStreamClass.class
libjava/classpath/lib/java/io/PipedInputStream.class
libjava/classpath/lib/java/lang/Class$1.class
libjava/classpath/lib/java/lang/Double.class
libjava/classpath/lib/java/lang/Float.class
libjava/classpath/lib/java/lang/Integer.class
libjava/classpath/lib/java/lang/Long.class
libjava/classpath/lib/java/lang/StackTraceElement.class
libjava/classpath/lib/java/lang/Throwable.class
libjava/classpath/lib/java/lang/management/ThreadInfo.class
libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class
libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class
libjava/classpath/lib/java/math/BigInteger.class
libjava/classpath/lib/java/net/DatagramSocket.class
libjava/classpath/lib/java/net/ServerSocket.class
libjava/classpath/lib/java/net/Socket.class
libjava/classpath/lib/java/net/URI.class
libjava/classpath/lib/java/net/URLClassLoader.class
libjava/classpath/lib/java/net/URLEncoder.class
libjava/classpath/lib/java/nio/charset/CoderResult$Cache.class
libjava/classpath/lib/java/security/SecureClassLoader.class
libjava/classpath/lib/java/security/Security.class
libjava/classpath/lib/java/security/VMSecureRandom$Spinner.class
libjava/classpath/lib/java/security/VMSecureRandom.class
libjava/classpath/lib/java/security/cert/CertificateFactory.class
libjava/classpath/lib/java/security/spec/RSAKeyGenParameterSpec.class
libjava/classpath/lib/java/text/ChoiceFormat.class
libjava/classpath/lib/java/text/CollationElementIterator.class
libjava/classpath/lib/java/text/DecimalFormat.class
libjava/classpath/lib/java/text/MessageFormat.class
libjava/classpath/lib/java/text/RuleBasedCollator.class
libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class
libjava/classpath/lib/java/text/SimpleDateFormat.class
libjava/classpath/lib/java/util/AbstractMap.class
libjava/classpath/lib/java/util/Calendar.class
libjava/classpath/lib/java/util/Date.class
libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class
libjava/classpath/lib/java/util/Hashtable$KeyIterator.class
libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class
libjava/classpath/lib/java/util/Hashtable$ValueIterator.class
libjava/classpath/lib/java/util/Hashtable.class
libjava/classpath/lib/java/util/Locale.class
libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$1.class [new file with mode: 0644]
libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$2.class [new file with mode: 0644]
libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$3.class [new file with mode: 0644]
libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.class [new file with mode: 0644]
libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$SubList.class [new file with mode: 0644]
libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class
libjava/classpath/lib/java/util/zip/ZipEntry.class
libjava/classpath/lib/javax/accessibility/AccessibleAction.class
libjava/classpath/lib/javax/accessibility/AccessibleAttributeSequence.class
libjava/classpath/lib/javax/accessibility/AccessibleRole.class
libjava/classpath/lib/javax/accessibility/AccessibleTextSequence.class
libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$1.class
libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.class
libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.class
libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.class
libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.class
libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.class
libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.class
libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.class
libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.class
libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl.class
libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageInputStream.class
libjava/classpath/lib/javax/management/NotificationBroadcasterSupport.class
libjava/classpath/lib/javax/management/ObjectName.class
libjava/classpath/lib/javax/management/StandardMBean.class
libjava/classpath/lib/javax/management/openmbean/ArrayType.class
libjava/classpath/lib/javax/management/remote/NotificationResult.class [new file with mode: 0644]
libjava/classpath/lib/javax/management/remote/TargetedNotification.class [new file with mode: 0644]
libjava/classpath/lib/javax/management/remote/rmi/RMIConnection.class [new file with mode: 0644]
libjava/classpath/lib/javax/management/remote/rmi/RMIServer.class [new file with mode: 0644]
libjava/classpath/lib/javax/net/ssl/HttpsURLConnection.class
libjava/classpath/lib/javax/print/attribute/standard/JobStateReasons.class
libjava/classpath/lib/javax/rmi/ssl/SslRMIClientSocketFactory.class
libjava/classpath/lib/javax/swing/JFrame.class
libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorker.class
libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorkerEvent.class
libjava/classpath/lib/javax/swing/RepaintManager.class
libjava/classpath/lib/javax/swing/TransferHandler$PropertyTransferable.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$1.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicGraphicsUtils.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI$1.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$1.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI.class
libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollButton.class
libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer$UIResource.class
libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer.class
libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class
libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class
libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class
libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class
libjava/classpath/lib/javax/swing/text/GlyphView.class
libjava/classpath/lib/javax/swing/text/ParagraphView$Row.class
libjava/classpath/lib/javax/swing/text/ParagraphView.class
libjava/classpath/lib/javax/swing/text/html/ResetableToggleButtonModel.class
libjava/classpath/lib/javax/swing/text/html/parser/Entity$1.class
libjava/classpath/lib/javax/swing/text/html/parser/Entity.class
libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class
libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class
libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class
libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor.class
libjava/classpath/lib/javax/swing/tree/DefaultTreeCellRenderer.class
libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class
libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.class
libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class
libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.class
libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class
libjava/classpath/lib/javax/tools/Diagnostic$Kind.class [new file with mode: 0644]
libjava/classpath/lib/javax/tools/Diagnostic.class [new file with mode: 0644]
libjava/classpath/lib/javax/tools/DiagnosticListener.class [new file with mode: 0644]
libjava/classpath/lib/javax/tools/FileObject.class [new file with mode: 0644]
libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class
libjava/classpath/lib/javax/xml/namespace/QName.class
libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class
libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class
libjava/classpath/lib/javax/xml/stream/events/Attribute.class
libjava/classpath/lib/org/omg/IOP/TaggedComponentHelper.class
libjava/classpath/lib/sun/reflect/annotation/ExceptionProxy.class
libjava/classpath/ltmain.sh
libjava/classpath/m4/ac_prog_javac.m4 [new file with mode: 0644]
libjava/classpath/m4/ac_prog_javac_works.m4 [new file with mode: 0644]
libjava/classpath/m4/acinclude.m4
libjava/classpath/missing
libjava/classpath/native/Makefile.in
libjava/classpath/native/fdlibm/Makefile.in
libjava/classpath/native/fdlibm/dtoa.c
libjava/classpath/native/fdlibm/fdlibm.h
libjava/classpath/native/fdlibm/ieeefp.h
libjava/classpath/native/fdlibm/mprec.h
libjava/classpath/native/jawt/Makefile.in
libjava/classpath/native/jni/Makefile.am
libjava/classpath/native/jni/Makefile.in
libjava/classpath/native/jni/classpath/Makefile.in
libjava/classpath/native/jni/gconf-peer/Makefile.in
libjava/classpath/native/jni/gstreamer-peer/GStreamerIOPeer.c [deleted file]
libjava/classpath/native/jni/gstreamer-peer/Makefile.am
libjava/classpath/native/jni/gstreamer-peer/Makefile.in
libjava/classpath/native/jni/gstreamer-peer/gst_classpath_src.c [new file with mode: 0644]
libjava/classpath/native/jni/gstreamer-peer/gst_classpath_src.h [new file with mode: 0644]
libjava/classpath/native/jni/gstreamer-peer/gst_input_stream.c [new file with mode: 0644]
libjava/classpath/native/jni/gstreamer-peer/gst_input_stream.h [new file with mode: 0644]
libjava/classpath/native/jni/gstreamer-peer/gst_native_data_line.c [new file with mode: 0644]
libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.c [new file with mode: 0644]
libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.h [new file with mode: 0644]
libjava/classpath/native/jni/gstreamer-peer/gst_peer.c [new file with mode: 0644]
libjava/classpath/native/jni/gstreamer-peer/gst_peer.h [new file with mode: 0644]
libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.c [deleted file]
libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.h [deleted file]
libjava/classpath/native/jni/gstreamer-peer/gstinputstream.c [deleted file]
libjava/classpath/native/jni/gstreamer-peer/gstinputstream.h [deleted file]
libjava/classpath/native/jni/gstreamer-peer/gstreamer_io_peer.c [new file with mode: 0644]
libjava/classpath/native/jni/gtk-peer/Makefile.in
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c
libjava/classpath/native/jni/gtk-peer/gtkpeer.c
libjava/classpath/native/jni/java-io/Makefile.in
libjava/classpath/native/jni/java-io/java_io_VMFile.c
libjava/classpath/native/jni/java-io/java_io_VMObjectStreamClass.c
libjava/classpath/native/jni/java-lang/Makefile.in
libjava/classpath/native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c
libjava/classpath/native/jni/java-lang/java_lang_VMDouble.c
libjava/classpath/native/jni/java-lang/java_lang_VMFloat.c
libjava/classpath/native/jni/java-net/Makefile.in
libjava/classpath/native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c
libjava/classpath/native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c
libjava/classpath/native/jni/java-net/java_net_VMInetAddress.c
libjava/classpath/native/jni/java-nio/Makefile.in
libjava/classpath/native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c
libjava/classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c
libjava/classpath/native/jni/java-nio/gnu_java_nio_VMSelector.c
libjava/classpath/native/jni/java-nio/javanio.c
libjava/classpath/native/jni/java-nio/javanio.h
libjava/classpath/native/jni/java-util/Makefile.in
libjava/classpath/native/jni/midi-alsa/Makefile.in
libjava/classpath/native/jni/midi-dssi/Makefile.in
libjava/classpath/native/jni/native-lib/Makefile.am
libjava/classpath/native/jni/native-lib/Makefile.in
libjava/classpath/native/jni/native-lib/cpio.c
libjava/classpath/native/jni/native-lib/cpio.h
libjava/classpath/native/jni/native-lib/cpnet.h
libjava/classpath/native/jni/qt-peer/Makefile.in
libjava/classpath/native/jni/xmlj/Makefile.in
libjava/classpath/native/plugin/Makefile.in
libjava/classpath/org/ietf/jgss/GSSContext.java
libjava/classpath/org/omg/CORBA/PolicyErrorHelper.java
libjava/classpath/org/omg/CORBA/UnknownUserExceptionHelper.java
libjava/classpath/org/omg/CosNaming/NamingContextExtPOA.java
libjava/classpath/org/omg/CosNaming/NamingContextPOA.java
libjava/classpath/org/omg/CosNaming/_NamingContextExtImplBase.java
libjava/classpath/org/omg/CosNaming/_NamingContextImplBase.java
libjava/classpath/org/omg/IOP/TaggedComponentHelper.java
libjava/classpath/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java
libjava/classpath/org/omg/PortableServer/ForwardRequestHelper.java
libjava/classpath/org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java
libjava/classpath/resource/Makefile.in
libjava/classpath/resource/com/sun/tools/javac/messages.properties [deleted file]
libjava/classpath/resource/gnu/classpath/tools/appletviewer/messages.properties [deleted file]
libjava/classpath/resource/gnu/classpath/tools/common/Messages.properties [deleted file]
libjava/classpath/resource/gnu/classpath/tools/getopt/Messages.properties [deleted file]
libjava/classpath/resource/gnu/classpath/tools/jar/messages.properties [deleted file]
libjava/classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties [deleted file]
libjava/classpath/resource/gnu/classpath/tools/jarsigner/messages.properties [deleted file]
libjava/classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties [deleted file]
libjava/classpath/resource/gnu/classpath/tools/keytool/messages.properties [deleted file]
libjava/classpath/resource/gnu/classpath/tools/native2ascii/messages.properties [deleted file]
libjava/classpath/resource/gnu/classpath/tools/orbd/messages.properties [deleted file]
libjava/classpath/resource/gnu/classpath/tools/rmic/messages.properties [deleted file]
libjava/classpath/resource/gnu/classpath/tools/rmid/messages.properties [deleted file]
libjava/classpath/resource/gnu/classpath/tools/rmiregistry/messages.properties [deleted file]
libjava/classpath/resource/gnu/classpath/tools/serialver/messages.properties [deleted file]
libjava/classpath/resource/gnu/classpath/tools/tnameserv/messages.properties [deleted file]
libjava/classpath/resource/gnu/java/awt/font/fonts.properties [new file with mode: 0644]
libjava/classpath/resource/gnu/java/awt/peer/x/xfonts.properties [new file with mode: 0644]
libjava/classpath/resource/sun/rmi/rmic/messages.properties [deleted file]
libjava/classpath/scripts/Makefile.am
libjava/classpath/scripts/Makefile.in
libjava/classpath/scripts/check_jni_methods.sh [deleted file]
libjava/classpath/scripts/check_jni_methods.sh.in [new file with mode: 0644]
libjava/classpath/sun/reflect/annotation/ExceptionProxy.java
libjava/classpath/tools/Makefile.am
libjava/classpath/tools/Makefile.in
libjava/classpath/tools/classes/com/sun/tools/javac/Main.class
libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$1.class
libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$10.class
libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$2.class
libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$3.class
libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$4.class
libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$5.class
libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$6.class
libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$7.class
libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$8.class
libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$9.class
libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class
libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletWindow.class
libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$1.class
libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$2.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$AtFileArgumentCallback.class [new file with mode: 0644]
libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class
libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class
libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$1.class
libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$2.class
libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$3.class
libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$4.class
libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$5.class
libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$6.class
libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$7.class
libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$1.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$2.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$3.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$4.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$5.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$6.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$7.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$8.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$9.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class
libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class
libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class
libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.class
libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class
libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class
libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class
libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class
libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$1.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$2.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$3.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$4.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$5.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$6.class
libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class
libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$1.class
libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$2.class
libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class
libjava/classpath/tools/com/sun/tools/javac/Main.java
libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/shrink.properties [new file with mode: 0644]
libjava/classpath/tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java
libjava/classpath/tools/gnu/classpath/tools/appletviewer/Main.java
libjava/classpath/tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java
libjava/classpath/tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java
libjava/classpath/tools/gnu/classpath/tools/appletviewer/TagParser.java
libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java
libjava/classpath/tools/gnu/classpath/tools/getopt/OptionException.java
libjava/classpath/tools/gnu/classpath/tools/jar/Main.java
libjava/classpath/tools/gnu/classpath/tools/javah/CniIncludePrinter.java
libjava/classpath/tools/gnu/classpath/tools/javah/GcjhMain.java
libjava/classpath/tools/gnu/classpath/tools/javah/JniIncludePrinter.java
libjava/classpath/tools/gnu/classpath/tools/javah/Main.java
libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
libjava/classpath/tools/gnu/classpath/tools/orbd/Main.java
libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java
libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java
libjava/classpath/tools/gnu/classpath/tools/rmic/templates/ImplTie.jav [deleted file]
libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub.jav [deleted file]
libjava/classpath/tools/gnu/classpath/tools/rmic/templates/StubMethod.jav [deleted file]
libjava/classpath/tools/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav [deleted file]
libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12.jav [deleted file]
libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12Method.jav [deleted file]
libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav [deleted file]
libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Tie.jav [deleted file]
libjava/classpath/tools/gnu/classpath/tools/rmic/templates/TieMethod.jav [deleted file]
libjava/classpath/tools/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav [deleted file]
libjava/classpath/tools/gnu/classpath/tools/rmid/Main.java
libjava/classpath/tools/gnu/classpath/tools/tnameserv/Main.java
libjava/classpath/tools/resource/com/sun/tools/javac/messages.properties [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/appletviewer/messages.properties [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/jar/messages.properties [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/jarsigner/messages.properties [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/keytool/messages.properties [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/native2ascii/messages.properties [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/orbd/messages.properties [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/rmic/messages.properties [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/ImplTie.jav [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub.jav [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/StubMethod.jav [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12.jav [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12Method.jav [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Tie.jav [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/TieMethod.jav [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/rmid/messages.properties [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/rmiregistry/messages.properties [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/serialver/messages.properties [new file with mode: 0644]
libjava/classpath/tools/resource/gnu/classpath/tools/tnameserv/messages.properties [new file with mode: 0644]
libjava/classpath/tools/resource/sun/rmi/rmic/messages.properties [new file with mode: 0644]
libjava/classpath/vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java
libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java
libjava/classpath/vm/reference/java/io/VMFile.java
libjava/classpath/vm/reference/java/lang/VMClass.java
libjava/classpath/vm/reference/java/lang/VMDouble.java
libjava/classpath/vm/reference/java/lang/VMFloat.java
libjava/classpath/vm/reference/java/lang/reflect/Constructor.java
libjava/classpath/vm/reference/java/lang/reflect/Method.java
libjava/classpath/vm/reference/java/security/VMSecureRandom.java
libjava/configure
libjava/configure.ac
libjava/gcj/javaprims.h
libjava/gnu/classpath/jdwp/VMVirtualMachine.java
libjava/gnu/classpath/toolkit/DefaultDaemonThreadFactory.h [new file with mode: 0644]
libjava/gnu/java/awt/font/GNUGlyphVector.h
libjava/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.h [new file with mode: 0644]
libjava/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.h [new file with mode: 0644]
libjava/gnu/java/awt/font/OpenTypeFontPeer.h [new file with mode: 0644]
libjava/gnu/java/awt/image/AsyncImage$AsyncImageSource.h [new file with mode: 0644]
libjava/gnu/java/awt/image/AsyncImage.h [new file with mode: 0644]
libjava/gnu/java/awt/image/ImageConverter.h [new file with mode: 0644]
libjava/gnu/java/awt/java2d/AbstractGraphics2D.h
libjava/gnu/java/awt/java2d/PixelCoverage$Bucket.h [new file with mode: 0644]
libjava/gnu/java/awt/java2d/PixelCoverage.h [new file with mode: 0644]
libjava/gnu/java/awt/java2d/ScanlineConverter.h
libjava/gnu/java/awt/java2d/ShapeWrapper.h [new file with mode: 0644]
libjava/gnu/java/awt/java2d/TextCacheKey.h [new file with mode: 0644]
libjava/gnu/java/awt/peer/gtk/ComponentGraphics.h
libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.h
libjava/gnu/java/lang/management/BeanImpl.h
libjava/gnu/java/nio/charset/ByteCharset$1.h [new file with mode: 0644]
libjava/gnu/java/nio/charset/ByteCharset$2.h [new file with mode: 0644]
libjava/gnu/java/nio/charset/ByteCharset$Decoder.h
libjava/gnu/java/nio/charset/ByteCharset$Encoder.h
libjava/gnu/java/nio/charset/ByteCharset.h
libjava/gnu/java/nio/charset/ByteDecodeLoopHelper.h [new file with mode: 0644]
libjava/gnu/java/nio/charset/ByteEncodeLoopHelper.h [new file with mode: 0644]
libjava/gnu/java/nio/charset/ISO_8859_1$1.h [new file with mode: 0644]
libjava/gnu/java/nio/charset/ISO_8859_1$2.h [new file with mode: 0644]
libjava/gnu/java/nio/charset/ISO_8859_1$Decoder.h
libjava/gnu/java/nio/charset/ISO_8859_1$Encoder.h
libjava/gnu/java/nio/charset/Provider$1.h
libjava/gnu/java/nio/charset/US_ASCII$1.h [new file with mode: 0644]
libjava/gnu/java/nio/charset/US_ASCII$2.h [new file with mode: 0644]
libjava/gnu/java/nio/charset/US_ASCII$Decoder.h
libjava/gnu/java/nio/charset/US_ASCII$Encoder.h
libjava/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.h
libjava/gnu/java/util/LRUCache.h [new file with mode: 0644]
libjava/gnu/java/util/regex/REException.h
libjava/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.h [new file with mode: 0644]
libjava/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.h
libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.h
libjava/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.h
libjava/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.h [new file with mode: 0644]
libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.h [deleted file]
libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.h
libjava/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.h
libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$CleanPipeline.h [new file with mode: 0644]
libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$State.h [new file with mode: 0644]
libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.h
libjava/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.h
libjava/gnu/xml/stream/AttributeImpl.h
libjava/gnu/xml/stream/XMLParser.h
libjava/java/awt/Desktop.h
libjava/java/awt/Font.h
libjava/java/awt/LightweightDispatcher.h
libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h
libjava/java/io/BufferedReader.h
libjava/java/io/DataInputStream.h
libjava/java/io/DataOutputStream.h
libjava/java/io/PipedInputStream.h
libjava/java/lang/Throwable.h
libjava/java/lang/management/ThreadInfo.h
libjava/java/net/URI.h
libjava/java/security/VMSecureRandom.java
libjava/java/text/CollationElementIterator.h
libjava/java/util/concurrent/CopyOnWriteArrayList$1.h [new file with mode: 0644]
libjava/java/util/concurrent/CopyOnWriteArrayList$2.h [new file with mode: 0644]
libjava/java/util/concurrent/CopyOnWriteArrayList$3.h [new file with mode: 0644]
libjava/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.h [new file with mode: 0644]
libjava/java/util/concurrent/CopyOnWriteArrayList$SubList.h [new file with mode: 0644]
libjava/java/util/concurrent/CopyOnWriteArrayList.h
libjava/javax/accessibility/AccessibleAction.h
libjava/javax/accessibility/AccessibleAttributeSequence.h
libjava/javax/accessibility/AccessibleRole.h
libjava/javax/accessibility/AccessibleTextSequence.h
libjava/javax/management/remote/NotificationResult.h [new file with mode: 0644]
libjava/javax/management/remote/TargetedNotification.h [new file with mode: 0644]
libjava/javax/management/remote/rmi/RMIConnection.h [new file with mode: 0644]
libjava/javax/management/remote/rmi/RMIServer.h [new file with mode: 0644]
libjava/javax/swing/plaf/basic/BasicTreeUI.h
libjava/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.h
libjava/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.h
libjava/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.h
libjava/javax/swing/tree/DefaultTreeCellEditor.h
libjava/javax/tools/Diagnostic$Kind.h [new file with mode: 0644]
libjava/javax/tools/Diagnostic.h [new file with mode: 0644]
libjava/javax/tools/DiagnosticListener.h [new file with mode: 0644]
libjava/javax/tools/FileObject.h [new file with mode: 0644]
libjava/javax/xml/stream/events/Attribute.h
libjava/jni.cc
libjava/sources.am

index 9f09b864898595f2f62beaedfaef0b92cc33a035..d10991d0cd4f134ae0154ae1941fcbe1c5049a45 100644 (file)
@@ -1,3 +1,18 @@
+2008-06-28  Matthias Klose  <doko@ubuntu.com>
+
+        Import GNU Classpath (classpath-0_97_2-release).
+
+        * Regenerate class and header files.
+        * Regenerate auto* files.
+       * gcj/javaprims.h: Define jobjectRefType.
+       * jni.cc (_Jv_JNI_GetObjectRefType): New (stub only).
+       (_Jv_JNIFunctions): Initialize GetObjectRefType.
+       * gnu/classpath/jdwp/VMVirtualMachine.java,
+       java/security/VMSecureRandom.java: Merge from classpath.
+       * HACKING: Fix typo.
+       * ChangeLog-2007: New file.
+       * configure.ac: Set JAVAC, pass --disable-regen-headers to classpath.
+
 2008-06-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * configure: Regenerate.
        PR libgcj/34444
        * java/lang/natClass.cc (Class::getEnclosingClass): Call
        getDeclaringClass().
-
-2007-12-22  David Daney  <ddaney@avtrex.com>
-
-       * scripts/makemake.tcl (emit_bc_rule): Use $(LIBGCJ_BC_FLAGS)
-       instead of -findirect-dispatch -fno-indirect-classes.
-       * configure.ac (libgcj-bc): New AC_ARG_ENABLE.
-       (SUPPRESS_LIBGCJ_BC): New AM_CONDITIONAL.
-       * Makefile.am (LIBGCJ_BC_FLAGS): New variable.
-       * Makefile.in: Regenerate.
-       * include/Makefile.in: Same.
-       * testsuite/Makefile.in: Same.
-       * configure: Same.
-       * gcj/Makefile.in: Same.
-       * sources.am: Same.
-       
-2007-12-17  Jakub Jelinek  <jakub@redhat.com>
-
-       * testsuite/Makefile.am (compile-tests): Build
-       libjava.jvmti/interp/*.h with -jni rather than -cni.
-       * testsuite/Makefile.in: Rebuilt.
-
-2007-12-08  Andreas Tobler  <a.tobler@schweiz.org>
-
-       * configure.host: Add bits for i?86-*-darwin9 and x86_64-*-darwin9.
-       * configure.ac: Add darwin-signal.h to x86_64-*-darwin9 and
-       i?86-*darwin9.
-       * configure.in: Regenerate.
-       * darwin.cc: Add definitions for Darwin specific functions for 64-bit.
-       (darwin_java_register_dyld_add_image_hook): Use this specific
-       functions.
-       * Makefile.am (gij_LDFLAGS): Add extra_gij_ldflags for Darwin9.
-       * Makefile.in: Regenerate.
-       * include/Makefile.in: Likewise.
-       * gcj/Makefile.in: Likewise.
-       * testsuite/Makefile.in: Likewise.
-       * testsuite/lib/libjava.exp (libjava_arguments): Add allow_stack_execute
-       for *-*-darwin9*.
-
-2007-12-06  David Daney  <ddaney@avtrex.com>
-
-       * interpret.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE throughout.
-       (ncode_closure, ffi_closure_fun): Define versions for
-       non-FFI_NATIVE_RAW_API case.
-       * include/java-interp.h (INTERP_FFI_RAW_TYPE): Define and use to
-       replace ffi_raw throughout.
-       * jni.cc, interpret-run.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE
-       throughout.
-
-2007-12-06  Andreas Tobler  <a.tobler@schweiz.org>
-
-       * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): Make
-       the testsuite multilib aware for Darwin.
-
-2007-12-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
-
-       * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h: Regenerate.
-       * gnu/java/awt/peer/gtk/GtkWindowPeer.h: Likewise.
-       * java/awt/Component.h: Likewise.
-       * java/awt/Container.h: Likewise.
-
-2007-11-05  H.J. Lu  <hongjiu.lu@intel.com>
-
-       * configure.ac: Don't run config-ml.in directly.
-       (multilib_arg): New.
-       * configure: Regenerated.
-
-2007-10-22  David Daney  <ddaney@avtrex.com>
-
-       * include/jvm.h (_Jv_SetGCFreeSpaceDivisor): Declare new function.
-       * boehm.cc (_Jv_SetGCFreeSpaceDivisor): Define it.
-
-2007-10-18  David Daney  <ddaney@avtrex.com>
-
-       * classpath/lib/gnu/java/locale/LocaleData.class: Regenerate
-       * classpath/lib/gnu/javax/sound/sampled/gstreamer: Add generated
-       files.
-       * gnu/javax/sound/sampled/gstreamer: Add generated files.
-       
-2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>
-
-       * configure: Regenerate following changes to ../config/tls.m4.
-
-2007-09-17  Tom Tromey  <tromey@redhat.com>
-
-       * defineclass.cc (MAJOR_1_6): New define.
-       (MINOR_1_6): Likewise.
-       (_Jv_ClassReader::parse): Handle 1.6 bytecode.
-
-2007-09-12  David Daney  <ddaney@avtrex.com>
-
-       * configure.host: Enable interpreter for mips64.  Enable hash
-       synchronization for all mips*-*-linux* targets.
-       * sysdep/mips/locks.h (compare_and_swap, compare_and_swap_release) Use
-       __sync_bool_compare_and_swap instead of in-line asm.
-       (release_set, read_barrier, write_barrier): Use __sync_synchronize
-       instead of in-line asm.
-
-2007-09-09  Andreas Tobler  <a.tobler@schweiz.org>
-
-       PR libgcj/33326
-       * testsuite/lib/libjava.exp (libjava_arguments): Append the test spec
-       only for linux targets.
-
-2007-09-09  Andrew Haley  <aph@redhat.com>
-
-       * interpret-run.cc (invokevirtual_resolved): Nullcheck object on
-       TOS.
-
-2007-09-06  Tom Tromey  <tromey@redhat.com>
-
-       * testsuite/libjava.lang/StackTrace2.jar: Rebuilt.
-       * testsuite/libjava.lang/StackTrace2.java (checkLine): Print file
-       name.
-
-2007-09-06  Roman Zippel  <zippel@linux-m68k.org>
-
-       * sysdep/m68k/locks.h: New file.
-       * configure.host: Set sysdeps_dir and libgcj_interpreter for m68k.
-       * configure.ac: Set SIGNAL_HANDLER for m68*-*-linux*.
-       * configure: Regenerate.
-
-2007-09-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
-
-       * configure.host(gnu*): Set use_libgcj_bc to yes.
-
-2007-09-04  Matthias Klose  <doko@ubuntu.com>
-
-       * configure.ac: Do not pass --with-native-libdir to classpath.
-       * configure: Regenerate.
-
-2007-09-04  Matthias Klose  <doko@ubuntu.com>
-
-       PR libgcj/33278
-       * configure.ac: Robustify extraction of gcj version.
-       * configure: Regenerate.
-
-2007-09-04  Andrew Haley  <aph@redhat.com>
-
-       PR java/27908
-       * testsuite/libjava.lang/PR27908.java
-       ({run1,run2,run3}.isRunning): New Method.
-       (main): Fix race condition.
-
-2007-08-29  Andrew Haley  <aph@redhat.com>
-
-       * gnu/classpath/natVMStackWalker.cc (VMStackWalker::getCallingClass):
-       Make sure we're not sibcalled.
-       (GET_CALLING_CLASS): Define for ARM EABI.
-
-2007-08-22  Andrew Haley  <aph@redhat.com>
-
-       * configure.host (BACKTRACESPEC): Add arm*-linux*.
-
-2007-08-22  Andrew Haley  <aph@redhat.com>
-
-       * configure.ac (LIBSTDCXXSPEC): New.
-       * configure.host: Add arm*-linux* to pthread test.
-       * configure.ac (LIBGCJTESTSPEC): Add path to libstdc++ for ARM
-       EABI.
-       * testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use
-       -fexceptions for ARM EABI.
-       * testsuite/lib/libjava.exp (libjava_arguments): Add libgcj-test.spec.
-       (libjava_invoke): Log the invocation.
-
-2007-08-15  Andrew Haley  <aph@redhat.com>
-
-       * configure.ac (extra_ldflags): Define.
-       * Makefile.am: Use extra_ldflags for all executables.
-
-2007-08-14  Andrew Haley  <aph@redhat.com>
-
-       * sysdep/arm/backtrace.h: Remove stubs for _Unwind_GetIPInfo,
-       _Unwind_GetRegionStart, and _Unwind_Backtrace.
-
-2007-07-27  Andrew Haley  <aph@redhat.com>
-
-       * gnu/classpath/natVMStackWalker.cc (GET_CALLING_CLASS): Stub for
-       ARM EABI.
-       * exception.cc (get_exception_header_from_ue): New.
-       (get_ttype_entry): ARM EABI version.
-       (PERSONALITY_FUNCTION): Add ARM EABI code.
-       * sysdep/arm/backtrace.h: New file.
-       * stacktrace.cc (_URC_NORMAL_STOP): New.
-       * configure.ac (extra_ldflags_libjava): Add libsupc++.la for ARM
-       EABI.
-       * configure.host (BACKTRACESPEC): Add arm/backtrace.h.
-
-2007-08-31  Matthias Klose  <doko@ubuntu.com>
-
-       * classpath/lib/java/util/EnumSet*.class: Regenerate
-
-2007-08-30  Andreas Tobler  <a.tobler@schweiz.org>
-
-       * gij.cc (version): Update Copyright year.
-
-2007-08-16  Samuel Thibault  <samuel.thibault@ens-lyon.org>
-
-       * configure.host (gnu*): Set use_libgcj_bc to yes.
-
-2007-08-15  Tom Tromey  <tromey@redhat.com>
-
-       * java/lang/Class.java (internalGetFields): Use LinkedHashSet.
-       * classpath/lib/java/lang/Class.class: Rebuilt.
-
-2007-08-15  Samuel Thibault  <samuel.thibault@ens-lyon.org>
-
-       * java/lang/natPosixProcess.cc (sigchld_handler) [!SA_SIGINFO]: Remove
-       'si' and 'third' parameters.  Disable calling
-       pmi->old_sigaction.sa_sigaction.
-       (java::lang::PosixProcess*ProcessManager::init) [!SA_SIGINFO]: Set
-       sa.sa_handler instead of sa.sa_sigaction, don't set SA_SIGINFO flag.
-
-2007-08-09  Andrew Haley  <aph@redhat.com>
-
-       * testsuite/lib/libjava.exp (libjava_invoke): Log the invocation.
-
-2007-08-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
-
-       * java/net/natVMInetAddressPosix.cc
-       (java::net::VMInetAddress::getLocalHostname) [!MAXHOSTNAMELEN]:
-       Allocate buffer dynamically.
-
-2007-08-04  Alfred M. Szmidt  <ams@gnu.org>
-
-       * java/io/natFilePosix.cc (init_native) [!MAXPATHLEN]: Define to 0.
-       * java/io/File.java (createTempFile): Don't truncate if the system
-       doesn't have a limit on the length of a file name.
-       * classpath/lib/java/io/File.class: Regenerate.
-
-2007-08-04  Matthias Klose  <doko@ubuntu.com>
-
-       Import GNU Classpath (libgcj-import-20070727).
-
-       * Regenerate class and header files.
-       * Regenerate auto* files.
-
-       * include/jvm.h:
-       * jni-libjvm.cc (Jv_JNI_InvokeFunctions): Rename type.
-       * jni.cc (_Jv_JNIFunctions, _Jv_JNI_InvokeFunctions): Likewise.
-       * jni.cc (_Jv_JNI_CallAnyMethodA, _Jv_JNI_CallAnyVoidMethodA,
-       _Jv_JNI_CallMethodA, _Jv_JNI_CallVoidMethodA,
-       _Jv_JNI_CallStaticMethodA, _Jv_JNI_CallStaticVoidMethodA,
-       _Jv_JNI_NewObjectA, _Jv_JNI_SetPrimitiveArrayRegion): Constify
-       jvalue parameter.
-       * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Likewise.
-
-       * java/lang/VMFloat.java (toString, parseFloat): New.
-
-       * gnu/awt/xlib/XToolkit.java (setAlwaysOnTop, isModalityTypeSupported,
-       isModalExclusionTypeSupported): New (stub only).
-       * gnu/awt/xlib/XCanvasPeer.java (requestFocus): Likewise.
-       * gnu/awt/xlib/XFramePeer.java (updateMinimumSize, updateIconImages,
-       updateFocusableWindowState, setModalBlocked, getBoundsPrivate,
-       setAlwaysOnTop): Likewise.
-       * gnu/awt/xlib/XFontPeer.java (canDisplay): Update signature.
-
-       * scripts/makemake.tcl: Ignore gnu/javax/sound/sampled/gstreamer,
-       ignore javax.sound.sampled.spi.MixerProvider, ignore .in files.
-
-       * HACKING: Mention --enable-gstreamer-peer, removal of generated files.
-
-2007-07-31  David Daney  <ddaney@avtrex.com>
-
-       * HACKING: Document regenerating configure and aclocal.m4.
-
-2007-07-31  David Daney  <ddaney@avtrex.com>
-
-       * configure.ac (INTERPRETER): New AM_CONDITIONAL.
-       * scripts/makemake.tcl (package_map): Mark jdwp and jvmti packages
-       as being for interpreter only.  Place interpreter related files in
-       'if INTERPRETER' block.
-       (interpreter_package_files): New list.
-       (interpreter_header_vars): Ditto.
-       (emit_package_rule_to_list): Renamed from emit_package_rule with
-       new target list parameter.
-       (emit_package_rule): Rewritten to call emit_package_rule_to_list.
-       (emit_interpreter_rule): New function.
-       (emit_source_var): Place interpreter related files in
-       interpreter_header_vars.
-       * Makefile.am (ACLOCAL_AMFLAGS): Add -I libltdl.
-       (libgcj_interpret_source_files): New variable.
-       (libgcj_la_SOURCES): Move jvmti.cc and  interpret.cc to
-       libgcj_interpret_source_files and include
-       libgcj_interpret_source_files.
-       (nat_jdwp_source_files): New variable.
-       (nat_jvmti_source_files): Ditto.
-       (nat_source_files): Move jdwp and jvmti related files to
-       nat_jdwp_source_files and nat_jvmti_source_files and include
-       nat_jdwp_source_files and nat_jvmti_source_files.
-       * Makefile.in: Regenerate.
-       * include/Makefile.in: Ditto.
-       * testsuite/Makefile.in: Ditto.
-       * gcj/Makefile.in: Ditto.
-       * sources.am: Ditto.
-       * configure: Ditto.
-       * include/config.h.in: Ditto.
-       * interpret.cc: Remove #ifdef INTERPRETER block.
-       * stacktrace.cc (UnwindTraceFn): Do not handle proxy frames if
-       interpreter disabled.
-       * include/java-interp.h (_Jv_FrameType): Move outside of
-       #ifdef INTERPRETER block.
-       * include/execution.h (_Jv_IndirectCompiledEngine::do_get_closure_list,
-       _Jv_InterpreterEngine, _Jv_soleInterpreterEngine): Place in
-       #ifdef INTERPRETER block.
-       * jni.cc (jvmti.h, jvmti-int.h):  Only include if INTERPRETER is
-       defined.
-       (_Jv_JNI_PopSystemFrame, _Jv_JNI_GetEnv): Only do jvmti processing
-       if INTERPRETER is defined.
-       * prims.cc (jvmti.h, jvmti-int.h, Jdwp.h, VMVirtualMachine.h):  Only
-       include if INTERPRETER is defined.
-       (defaultJdwpOptions, jdwpOptions, jvmti_agent_onload_func,
-       jvmti_agent_onunload_func, jvmti_agentonload, jvmti_agentonunload,
-       jvmti_agent_opts, load_jvmti_agent): Only define if INTERPRETER is
-       defined.
-       (parse_x_arg): Only process 'runjdwp:' if INTERPRETER is defined.
-       (parse_init_args): Only process jvmti related options if
-       INTERPRETER is defined.
-       (_Jv_CreateJavaVM): Only call _Jv_JVMTI_Init if INTERPRETER is
-       defined.
-       (_Jv_RunMain): Only do jvmti and jdwp processing if INTERPRETER is
-       defined.
-       * link.cc (jvmti.h, jvmti-int.h):  Only include if INTERPRETER is
-       defined.
-       (_Jv_ThrowNoClassDefFoundError, _Jv_Linker::create_error_method):
-       Define if if INTERPRETER is not defined.
-       (_Jv_Linker::wait_for_state): Only do jvmti proccessing if
-       INTERPRETER is defined.
-       * boehm.cc (closure_list_pointer, finalize_closure_list,
-       _Jv_ClosureListFinalizer): Only define if INTERPRETER is
-       defined.
-       * java/lang/natThread.cc (jvmti.h, jvmti-int.h):  Only include if
-       INTERPRETER is defined.
-       (finish_, _Jv_NotifyThreadStart): Only do jvmti proccessing if
-       INTERPRETER is defined.
-       * java/lang/Class.h (_Jv_InterpreterEngine): Move declaration
-       and friend declaration inside #ifdef INTERPRETER block.
-       * java/lang/natClass.cc (_Jv_ClosureList::releaseClosures,
-       _Jv_ClosureList::registerClosure, _Jv_GetInterpClassSourceFile):
-       Only define if INTERPRETER is defined.
-       * java/lang/reflect/natVMProxy.cc (UnsupportedOperationException.h):
-       Include.
-       (generateProxyClass): Throw UnsupportedOperationException unless
-       INTERPRETER is defined.
-
-2007-07-29  Matthias Klose  <doko@ubuntu.com>
-
-       * HACKING: Document regenerating configure.
-
-2007-07-29  H.J. Lu  <hongjiu.lu@intel.com>
-
-       PR libgcj/32929
-       * aclocal.m4: Regenerated.
-       * configure: Likewise.
-
-2007-07-28  Matthias Klose  <doko@ubuntu.com>
-
-       * configure.ac: Encode the libgcj soversion in dbexecdir,
-       pass --with-native-libdir to classpath configure.
-       * configure: Regenerate.
-
-2007-07-28  Matthias Klose  <doko@ubuntu.com>
-
-       * classpath/jvmti.h: Remove.
-
-2007-07-27  Tom Tromey  <tromey@redhat.com>
-
-       * Rebuild .class files with new ecj.
-
-2007-07-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
-
-       * configure.ac (mips-sgi-irix6*): Override SYSTEMSPEC.
-       * configure: Regenerate.
-
-2007-07-16  Rask Ingemann Lambertsen  <rask@sygehus.dk>
-
-       PR target/32340
-       * configure.host (arm*-elf | strongarm*-elf | xscale*-elf): Use the
-       new sysdeps/arm directory.
-
-2007-07-15  Tom Tromey  <tromey@redhat.com>
-
-       * java/io/File.java: Implement Comparable<File>.
-       (compareTo): Removed.
-       * java/io/File.h: Rebuilt.
-       * classpath/lib/java/io/File.class: Rebuilt.
-
-2007-07-14  Tom Tromey  <tromey@redhat.com>
-
-       * Rebuilt .class files.
-
-2007-07-15  Andrew Haley  <aph@redhat.com>
-
-       * configure.host: 
-       arm*-linux-gnu -> arm*-linux*.
-
-2007-07-14  Krister Walfridsson  <cato@df.lth.se>
-
-       * gnu/gcj/util/natGCInfo.cc: Use HAVE_STRERROR_R.
-       * configure.ac: Remove check for strerror, add check for strerror_r.
-       * configure: Regenerate.
-       * include/config.h.in: Regenerate.
-
-2007-07-13  Andrew Haley  <aph@redhat.com>
-
-       * libgcj.ver: Add __gcj_personality_sj0.
-
-       * testsuite/libjava.jvmti/jvmti-interp.exp: Likewise.
-       * testsuite/libjava.jni/jni.exp: Use -fdollars-in-identifiers.
-       * testsuite/libjava.jni/cni.exp: Use -fdollars-in-identifiers.
-       * testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_compile_cxx_to_o): Likewise.
-
-       * gnu/classpath/natVMStackWalker.cc (getCallingClassLoader): Check
-       klass is non-null.
-       * java/lang/reflect/natField.cc (getAddr): Call
-       _Jv_StackTrace::GetCallingClass only if CALLER is non-null.
-       * java/lang/reflect/natVMProxy.cc (run_proxy): Use
-       _Jv_getFieldInternal to get field proxyClass.m.
-       (_Jv_getFieldInternal): New function.
-
-2007-07-11  Andrew Haley  <aph@redhat.com>
-
-       * configure.host (arm*-linux-gnu): New.
-       * sysdep/arm/locks.h: New.
-
-2007-07-13  Roger Sayle  <roger@eyesopen.com>
-
-       * java/lang/natPosixProcess.cc: Include <sys/time.h> before
-       <sys/resource.h> to restore bootstrap on powerpc-apple-darwin7.9.0.
-
-2007-07-12  Matthias Klose  <doko@ubuntu.com>
-
-       * gnu/classpath/jdwp/util/MethodResult.h,
-       gnu/classpath/jdwp/value/ObjectValue.h: Regenerate.
-
-2007-07-11  Keith Seitz  <keiths@redhat.com>
-
-       * interpret.cc (get_local_var_table) [DIRECT_THREADED]: Make sure the
-       method is compiled.
-       * testsuite/libjava.jvmti/interp/getlocalvartable.out: Revise
-       for compiled methods.
-
-2007-07-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
-
-       PR libgcj/32651
-       * configure.host (mips-sgi-irix6*): Set sysdeps_dir.
-       Disable interpreter.
-       
-2007-07-05  Andreas Tobler  <a.tobler@schweiz.org>
-
-       * java/lang/natPosixProcess.cc: Reorder includes to fix compilation
-       on hppa2.0w-hp-hpux11.11.
-       Remove include of <gcj/cni.h>.
-
-2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
-
-       * aclocal.m4: Regenerated.
-
-2007-07-03  Andreas Tobler  <a.tobler@schweiz.org>
-
-       * java/lang/Class.h: Remove redundant 'class java::*::* declarations.
-
-2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
-
-       PR libgcj/30513
-       * configure.host (i[3-6]86-*): Undef sun.
-
-2007-06-28  H.J. Lu  <hongjiu.lu@intel.com>
-
-       * testsuite/libjava.jvmti/jvmti-interp.exp (gij_jvmti_test_one):
-       Fix a typo.
-
-2007-06-28  Jan Nijtmans  <nijtmans@users.sourceforge.net>
-
-       PR libgcj/30999:
-       * jni_md.h: Add the possibility to compile jni code with.
-       -fvisibility=hidden. This causes all symbols to be hidden
-       except the JNI functions which need to be exported.
-
-2007-06-28  Andreas Tobler  <a.tobler@schweiz.org>
-
-       * testsuite/libjava.jvmti/jvmti-interp.exp (gij_jvmti_test_one): Pass
-       the cxxldlibflags to exec_gij to have the right libstdc++ invoked.
-
-2007-07-21  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/VMVirtualMachine.h: Regenerate.
-
-2007-07-20  Keith Seitz  <keiths@redhat.com>
-
-       * classpath/lib/gnu/classpath/jdwp/value/StringValue.class:
-       Regenerate.
-
-2007-07-20  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/VMVirtualMachine.java (executeMethod):
-       Update from reference implementation.
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc (executeMethod):
-       Update parameter list to match new VMVirtualMachine interface.
-       * classpath/lib/gnu/classpath/jdwp/processor/ClassTypeCommandSet.class:
-       Regenerate.
-       * classpath/lib/gnu/classpath/jdwp/processor/
-       ObjectReferenceCommandSet.class: Regenerate.
-       * classpath/lib/gnu/classpath/jdwp/value/ObjectValue.class: Regenerate.
-       * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class: Regenerate.
-       * classpath/lib/gnu/classpath/jdwp/util/MethodResult.class: Regenerate.
-
-2007-06-18  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/gcj/jvmti/Breakpoint.java: Make abstract.
-       (method): Change from private to protected.
-       (location): Likewise.
-       (Breakpoint): Change argument list to take only integer type.
-       Add default constructor.
-       (initialize_native): Renamed to ...
-       (_save_insn): ... this to make function more explicit.
-       (execute): New method.
-       * gnu/gcj/jvmti/Breakpoint.h: Regenerate.
-       * gnu/gcj/jvmti/natBreakpoint.cc (initialize_native): Rename to...
-       (_save_insn): ... this.
-       (install): Save the original instruction.
-       * gnu/gcj/jvmti/NormalBreakpoint.java: New file.
-       * gnu/gcj/jvmti/NormalBreakpoint.h: New file.
-       * gnu/gcj/jvmti/natNormalBreakpoint.cc: New file.
-       * gnu/gcj/jvmti/BreakpointManager.java (newBreakpoint):
-       Instantiate a NormalBreakpoint instead of Breakpoint.
-       * interpret-run.cc (insn_breakpoint): Remove breakpoint actions
-       and call Breakpoint.execute to do them.
-       * classpath/lib/gnu/gcj/jvmti/Breakpoint.class: Regenerate.
-       * classpath/lib/gnu/gcj/jvmti/BreakpointManager.class: Likewise.
-       * classpath/lib/gnu/gcj/jvmti/NormalBreakpoint.class: New file.
-       * sources.am: Regenerate.
-       * Makefile.am (nat_source_files): Add natNormalBreakpoint.cc.
-       * Makefile.in: Regenerated.
-
-2007-06-14  Keith Seitz  <keiths@redhat.com>
-
-       * include/java-interp.h (_Jv_LocalVarTableEntry): Add union
-       for bytecode_pc and direct-threaded pc.
-       Add field descriptions inline.
-       * defineclass.cc (read_one_code_attribute): Change from
-       bytecode_start_pc to bytecode_pc.
-       Remove unused variable "len".
-       * interpret.cc (compile): Remap the variable table, too.
-       (get_local_var_table) [DIRECT_THREADED]: Use insn_index on the
-       start location to map from pc_t to code index.
-
-2007-06-09  Keith Seitz  <keiths@redhat.com>
-
-       * testsuite/libjava.jvmti/dummyagent.c (Agent_OnLoad):
-       Add missing return value.
-
-2007-06-03  Matthias Klose  <doko@ubuntu.com>
-
-       * java/io/natFileWin32.cc (setFilePermissions): New (stub only).
-       _access: Handle EXEC query, stub only.
-
-2007-06-03  Matthias Klose  <doko@ubuntu.com>
-
-       Merged from classpath:
-       * gnu/java/nio/SelectorProviderImpl.java: Whitespace merge.
-       * java/lang/System.java(inheritedChannel): New.
-       * java/lang/Character.java: Remove stray`;'.
-       * java/net/MulticastSocket.java: Merged.
-       * java/text/DateFormatSymbols.java(getInstance): New, comment updates.
-       * java/text/Collator.java(getInstance): Merged.
-       * java/util/Calendar.java: New attributes ALL_STYLES, SHORT, LONG.
-       getDisplayName, getDisplayNames: New.
-       * java/util/logging/Logger.java: Merged.
-       * Regenerate .class and .h files.
-
-2007-06-03  Matthias Klose  <doko@ubuntu.com>
-
-       * java/io/File.java: Merge with classpath-0.95, new method
-       setFilePermissions, new attribute EXEC.
-       * java/io/natFilePosix.cc (setFilePermissions): New.
-       _access: Handle EXEC query.
-       * classpath/lib/java/io/File.class, java/io/File.h: Regenerate.
-
-2007-06-03  Matthias Klose  <doko@ubuntu.com>
-
-       Imported GNU Classpath 0.95.
-
-       * classpath/Makefile.in,
-       classpath/native/jni/midi-dssi/Makefile.in,
-       classpath/native/jni/classpath/Makefile.in,
-       classpath/native/jni/Makefile.in,
-       classpath/native/jni/gconf-peer/Makefile.in,
-       classpath/native/jni/java-io/Makefile.in,
-       classpath/native/jni/native-lib/Makefile.in,
-       classpath/native/jni/java-util/Makefile.in,
-       classpath/native/jni/midi-alsa/Makefile.in,
-       classpath/native/jni/java-lang/Makefile.in,
-       classpath/native/jni/java-nio/Makefile.in,
-       classpath/native/jni/java-net/Makefile.in,
-       classpath/native/jni/xmlj/Makefile.in,
-       classpath/native/jni/qt-peer/Makefile.in,
-       classpath/native/jni/gtk-peer/Makefile.in,
-       classpath/native/Makefile.in, classpath/native/jawt/Makefile.in,
-       classpath/native/fdlibm/Makefile.in,
-       classpath/native/plugin/Makefile.in,
-       classpath/resource/Makefile.in, classpath/scripts/Makefile.in,
-       classpath/tools/Makefile.in, classpath/doc/Makefile.in,
-       classpath/doc/api/Makefile.in, classpath/lib/Makefile.in,
-       classpath/external/Makefile.in, classpath/external/jsr166/Makefile.in,
-       classpath/external/sax/Makefile.in,
-       classpath/external/w3c_dom/Makefile.in,
-       classpath/external/relaxngDatatype/Makefile.in,
-       classpath/include/Makefile.in,
-       classpath/examples/Makefile.in: Regenerate.
-       * classpath/config.guess, classpath/config.sub,
-       classpath/ltmain.sh : Update.
-       * classpath/configure, classpath/depcomp, classpath/missing,
-       classpath/aclocal.m4, classpath/install-sh: Regenerate.
-
-       * gnu/classpath/Configuration.java (CLASSPATH_VERSION): Now 0.95.
-       * sources.am: Regenerate.
-       * Makefile.in: Regenerate.
-
-       * Update the .class files and generated CNI header files, add new
-       .class and generated CNI header files.
-       * Remove generated files for removed java source files:
-       classpath/gnu/java/net/BASE64.java,
-       classpath/gnu/java/security/util/Base64.java,
-       classpath/gnu/java/awt/peer/gtk/GThreadMutex.java,
-       classpath/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java,
-       classpath/gnu/java/awt/font/autofit/Scaler.java,
-       classpath/gnu/classpath/jdwp/util/Value.java,
-       classpath/gnu/javax/net/ssl/Base64.java.
-       * Remove empty directories.
-
-       * Makefile.am(nat_source_files): Add natVMOperatingSystemMXBeanImpl.cc.
-       * java/lang/Class.java(setAccessible): Merge from classpath.
-       * java/util/Locale.java: Remove.
-       * gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java,
-       gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.cc: New.
-       * gcj/javaprims.h: Update class declarations.
-       * scripts/classes.pl: Update usage.
-       * HACKING: Mention to build all peers.
-
-2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
-
-       * configure: Regenerate.
-
-2007-05-31  Andrew Haley  <aph@redhat.com>
-
-       * java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Clear
-       INTERPRETED access modifier.
-
-2007-05-31  Paolo Bonzini  <bonzini@gnu.org>
-
-       PR libjava/32098
-       * configure: Regenerated.
-       * aclocal.m4: Regenerated.
-
-2007-05-30  H.J. Lu  <hongjiu.lu@intel.com>
-
-       PR libjava/32098
-       * configure: Regenerated.
-
-2007-05-29  H.J. Lu  <hongjiu.lu@intel.com>
-
-       * configure.ac: Don't include ../config/confsubdir.m4.
-       * aclocal.m4: Regenerated.
-       * configure: Likewise.
-
-2007-05-27  Paolo Bonzini  <bonzini@gnu.org>
-
-       PR bootstrap/32078
-       * configure.ac: Include confsubdir.m4.
-       * configure: Regenerate.
-
-2007-05-24  Keith Seitz  <keiths@redhat.com>
-
-       * include/java-interp.h (_Jv_InterpFrame::get_pc): Only deduct
-       one when pc_ptr is non-NULL.
-
-       * prims.cc (parse_init_args): Enable JVMTI with agentlib
-       and agentpath options.
-
-       * testsuite/lib/libjava.exp (exec_gij): Add new addl_flags
-       parameter.
-       * testsuite/libjava.jvmti/jvmti-interp.exp (gij_jvmti_test_one):
-       Pass '-agentlib:dummyagent' when executing gij.
-       (gij_jvmti_run): Build dummy JVMTI agent before running tests,
-       and remove it when finished.
-       * testsuite/libjava.jvmti/dummyagent.c: New file.
-
-2007-05-23  Steve Ellcey  <sje@cup.hp.com>
-
-       * Makefile.in: Regenerate.
-       * configure: Regenerate.
-       * aclocal.m4: Regenerate.
-       * gcj/Makefile.in: Regenerate.
-       * include/Makefile.in: Regenerate.
-       * testsuite/Makefile.in: Regenerate.
-
-2007-05-17  Kyle Galloway  <kgallowa@redhat.com>
-
-       * classpath/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
-       (executeMethods): Remove cast to ClassReferenceTypeId.
-       * classpath/lib/gnu/classpath/jdwp/processor/
-       ReferenceTypeCommandSet.class: Rebuilt.
-
-2007-05-17  Kyle Galloway  <kgallowa@redhat.com>
-
-       * gnu/classpath/jdwp/natVMMethod.cc (getModifiers): Check for native
-       classes and mark methods as native appropriately.
-
-2007-05-17  Kyle Galloway  <kgallowa@redhat.com>
-
-       * gnu/classpath/jdwp/VMFrame.java (<init>): Add parameter for "this"
-       pointer.
-       * gnu/classpath/jdwp/VMFrame.h: Regenerated.
-       * classpath/lib/gnu/classpath/jdwp/VMFrame.class: Rebuilt.
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc (getFrame): Use new
-       VMFrame constructor.
-
-2007-05-16  David Daney  <ddaney@avtrex.com>
-
-       * include/java-stack.h (_Jv_FrameInfo): Remove union definition.
-       (_Jv_StackFrame): Remove commented out code.
-       (_Jv_UnwindState): Remove superfluous 'typedef'.
-       * sun/misc/natUnsafe.cc (spinlock): Add white space to quiet
-       compiler warnings.
-       * gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc
-       (getCollectionUsage): Don't declare unused parameter n.
-       (getMemoryManagerNames): Same.
-       * gnu/gcj/util/natGCInfo.cc (gc_debug_info): Remove superfluous
-       'typedef'.
-
-2007-05-16  Keith Seitz  <keiths@redhat.com>
-
-       * include/java-interp.h (breakpoint_at): Declare.
-       * interpret.cc (breakpoint_at): New function.
-       * gnu/classpath/jdwp/VMVirtualMachine.java (_event_list):
-       New member.
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc (initialize):
-       Initialize _event_list.
-       (handle_single_step): If there is a breakpoint at the
-       location at which we are stopping, do not send the notification.
-       Instead add the event to a list of events that occur at this
-       location.
-       (jdwpBreakpointCB): If the event list is not empty, send
-       whatever events are in it and the breakpoint event in a single
-       notification.
-       Mark parameter jni_env as MAYBE_UNUSED.
-       * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class:
-       Regenerated.
-       * gnu/classpath/jdwp/VMVirtualMachine.h: Regenerated.
-
-2007-05-15  David Daney  <ddaney@avtrex.com>
-
-       * classpath/lib/javax/swing/text/html/HTMLEditorKit.class: Regenerate
-       * gnu/java/awt/peer/gtk/ComponentGraphics.h: Same.
-
-2007-05-15  Keith Seitz  <keiths@redhat.com>
-
-       * interpret.cc (STOREA): Rewrite using temporary variable to
-       avoid double-macro expansion side-effects.
-       (STOREI): Likewise.
-       (STOREF): Likewise.
-       (STOREL)[SIZEOF_VOID_P == 8]: Likewise.
-       (STORED)[SIZEOF_VOID_P == 8]: Likewise.
-       (STOREL)[SIZEOF_VOID_P != 8]: Likewise.
-       (STORED)[SIZEOF_VOID_P != 8]: Likewise.
-       (POKEI): Likewise.
-
-2007-05-12  David Daney  <ddaney@avtrex.com>
-
-       PR libgcj/29324
-       * include/posix-threads.h (_Jv_BlockSigchld): Declare.
-       (_Jv_UnBlockSigchld): Same.
-       * posix-threads.cc: Include posix-threads.h.
-       (block_sigchld) Rename to...
-       (_Jv_BlockSigchld) ... this.
-       (_Jv_UnBlockSigchld): New function.
-       (_Jv_InitThreads): Call _Jv_BlockSigchld in place of block_sigchld.
-       (_Jv_ThreadStart): Same.
-       * java/lang/PosixProcess$ProcessManager.h: Regenerate.
-       * java/lang/PosixProcess.java: Clean up imports.
-       (ProcessManager): Make final.
-       (ProcessManager.queue): Genericise and make private.
-       (ProcessManager.pidToProcess): Remove.
-       (ProcessManager.liveProcesses): New field.
-       (ProcessManager.reaperPID): Remove.
-       (ProcessManager.nativeData): New field.
-       (ProcessManager.removeProcessFromMap): Remove.
-       (ProcessManager.addProcessToMap):Remove.
-       (ProcessManager.addToLiveProcesses): New method.
-       (ProcessManager.run): Rewritten.
-       (ProcessManager.reap): Change method signature,
-       (getErrorStream): Correct formatting.
-       (getInputStream): Same.
-       (spawn): Add process to liveProcesses list.
-       (pid): Make package private.
-       * java/lang/PosixProcess.h: Regenerate.
-       * java/lang/natPosixProcess.cc: Include posix.h and posix-threads.h.
-       Add useing namespace java::lang.
-       (ProcessManagerInternal): New struct.
-       (sigchld_handler): Rewritten.
-       (init): Rewritten.
-       (waitForSignal): Same.
-       (reap): Same.
-       (signalReaper): Same.
-       (nativeDestroy): Call kill as ::kill.
-       (nativeSpawn): Correct formatting.
-       * classpath/lib/java/lang/PosixProcess$EOFInputStream.class: Regenerate.
-       * classpath/lib/java/lang/PosixProcess.class: Same.
-       * classpath/lib/java/lang/PosixProcess$ProcessManager.class: Same.
-
-2007-05-07  Ian Lance Taylor  <iant@google.com>
-
-       PR java/31842
-       * java/lang/natString.cc (_Jv_FormatInt): Avoid undefined signed
-       overflow.
-
-2007-05-07  Keith Seitz  <keiths@redhat.com>
-
-       * classpath/lib/gnu/classpath/jdwp/Jdwp.class: Regenerate.
-       * classpath/lib/gnu/classpath/jdwp/Jdwp$1.class: Regenerate.
-       * classpath/lib/gnu/classpath/jdwp/event/Event.class:
-       Regenerate.
-       * classpath/lib/gnu/classpath/jdwp/transport/JdwpConnection.class:
-       Regenerate.
-       * gnu/classpath/jdwp/Jdwp.h: Regenerate.
-       * gnu/classpath/jdwp/event/Event.h: Regenerate.
-       * gnu/classpath/jdwp/transport/JdwpConnection.h: Regenerate.
-
-2007-05-04  Kyle Galloway  <kgallowa@redhat.com>
-
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc (getClassMethod): Change
-       to use JVMTI.
-
-2007-05-03  Keith Seitz  <keiths@redhat.com>
-
-       * interpret.cc: Don't include ExceptionEvent.h.
-       * gnu/gcj/jvmti/natExceptionEvent.cc: Remove.
-       * Makefile.am (nat_source_files): Remove natExceptionEvent.cc.
-       * Makefile.in: Regenerated.
-
-2007-05-03  Keith Seitz  <keiths@redhat.com>
-
-       * include/jvmti-int.h (_Jv_ReportJVMTIExceptionThrow):
-       Declare.
-       * interpret.cc (_Jv_ReportJVMTIExceptionThrow): New function.
-       (find_catch_location): New function.
-       (REPORT_EXCEPTION): New macro.
-       (throw_internal_error): Use REPORT_EXCEPTION.
-       (throw_incompatible_class_change_error): Likewise.
-       (throw_null_pointer_exception): Likewise.
-       (throw_class_format_error): Likewise.
-       * interpret-run.cc (INTERP_REPORT_EXCEPTION)[DEBUG]: Set
-       to REPORT_EXCEPTION.
-       (INTERP_REPORT_EXCEPTION)[!DEBUG]: Make nop.
-       (insn_new): Use INTERP_REPORT_EXCEPTION.
-       (insn_athrow): Likewise.
-       Remove previous JVMTI exception notifications.
-       Add JVMTI ExceptionCatch notificatin.
-       * jni.cc (_Jv_PopSystemFrame): Notify JVMTI clients of
-       exception throw.
-       * gnu/gcj/jvmti/ExceptionEvent.java: Removed.
-       * gnu/gcj/jvmti/ExceptionEvent.h: Removed. 
-       * classpath/lib/gnu/gcj/jvmti/ExceptionEvent.class: Removed.
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc
-       (jdwpExceptionCB): New function.
-       (jdwpVMInitCB): Set Exception event handler and enable.
-       * sources.am: Regenerated.
-       * Makefile.in: Regenerated.
-
-2007-05-03  Thomas Fitzsimmons  <fitzsim@redhat.com>
-
-       https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=237304
-       * Makefile.in: Regenerate.
-       * scripts/makemake.tcl (scan_directory): Treat default.css as a
-       property file.
-       * classpath/javax/swing/text/html/default.css: Move to...
-       * classpath/resource/javax/swing/text/html/default.css: New file.
-       * classpath/javax/swing/text/html/HTMLEditorKit.java
-       (getStyleSheet): Throw RuntimeException when style loading fails.
-       * sources.am (property_files): Add
-       classpath/resource/javax/swing/text/html/default.css.
-
-2007-05-02  Tom Tromey  <tromey@redhat.com>
-
-       https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=238755
-       * java/lang/natCharacter.cc (Character::getType): Handle negative
-       code points.
-       (Character::toLowerCase): Likewise.
-       (Character::toUpperCase): Likewise.
-       (Character::digit): Likewise.
-       (Character::getNumericValue): Likewise.
-       (Character::getDirectionality): Likewise.
-       (Character::toTitleCase): Likewise.
-
-2007-04-30  Keith Seitz  <keiths@redhat.com>
-
-       * interpret-run.cc (NEXT_INSN)[DEBUG]: Advance PC before
-       executing the instruction.
-       * include/java-interp.h (_Jv_InterpFrame::get_pc): Subtract
-       one insn from the frame's PC. _Jv_InterpMethod::run et al
-       will advance the PC before executing the instruction.
-
-2007-04-27  Keith Seitz  <keiths@redhat.com>
-
-       * classpath/lib/gnu/classpath/jdwp/Jdwp.class: Regenerated.
-       * classpath/lib/gnu/classpath/jdwp/event/EventManager.class:
-       Regenerated.
-       * gnu/classpath/jdwp/event/EventManager.h: Regenerated.
-
-2007-04-27  Keith Seitz  <keiths@redhat.com>
-
-       * classpath/lib/gnu/classpath/jdwp/event/filters/
-       LocationOnlyFilter.class: Regenerated;
-       * classpath/lib/gnu/classpath/jdwp/util/Location.class:
-       Regenerated.
-       * gnu/classpath/jdwp/VMMethod.java
-       * classpath/lib/gnu/classpath/jdwp/VMMethod.class:
-       Regenerated.
-       * gnu/classpath/jdwp/VMMethod.h: Regenerated.
-       * gnu/classpath/jdwp/util/Location.h: Regenerated.
-
-2007-04-27  Thomas Fitzsimmons  <fitzsim@redhat.com>
-
-       * gnu/java/awt/peer/gtk/CairoGraphics2D.h: Regenerate.
-       * gnu/java/awt/peer/gtk/ComponentGraphics.h: Regenerate.
-
-2007-04-25  Kyle Galloway  <kgallowa@redhat.com>
-
-       * gnu/classpath/jdwp/VMIdManager.java (getObjectId): Deal with null
-       objects.
-       (get): Deal with ObjectId of 0. 
-
-2007-04-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
-
-       PR libgcj/31084
-       * java/lang/natVMProcess.cc: Include platform.h before jvm.h.
-
-2007-04-24  Kyle Galloway  <kgallowa@redhat.com>
-
-       * gnu/classpath/jdwp/natVMVirtualMachine.java
-       (getThreadStatus): Implement.
-
-2007-04-24  Keith Seitz  <keiths@redhat.com>
-
-       * headers.txt (gnu/gcj/jvmti/Breakpoint.h)[DIRECT_THREADED]:
-       Add _Jv_RewriteBreakpointInsn friend declaration.
-       * gnu/gcj/jvmti/natBreakpoint.cc (_Jv_RewriteBreakpointInsn)
-       [DIRECT_THREADED]: New function.
-       * gnu/gcj/jvmti/Breakpoint.h: Regenerate.
-       * interpret-run.cc: Define new REWRITE_INSN macro.
-       Changed all occurrences of insn rewriting to call REWRITE_INSN.
-
-2007-04-23  Keith Seitz  <keiths@redhat.com>
-
-       * include/no-gc.h (_Jv_IsThreadSuspended): Declare.
-       * include/boehm-gc.h (_Jv_IsThreadSuspended): Likewise.
-       * boehm.cc (_Jv_IsThreadSuspended): New function.
-       * nogc.cc (_Jv_IsThreadSuspended): Likewise.
-       * jvmti.cc (_Jv_JVMTI_GetThreadState): New function.
-       (_Jv_JVMTI_Interface): Define GetThreadState.
-
-2007-04-23  Kyle Galloway  <kgallowa@redhat.com>
-
-       * include/java-interp.h (_Jv_InterpFrame): Add pointer to the
-       interpreter PC.
-       (<init>): Add a pointer to the interpreter PC as a parameter with
-       default value NULL.
-       (get_pc): New method.
-       * interpret-run.cc: If debugging, pass a pointer to the PC when
-       creating the stack frame.
-       * jvmti.cc (_Jv_JVMTI_GetStackTrace): Call _Jv_InterpFrame::get_pc
-       to get the PC.
-
-2007-04-23  Kyle Galloway  <kgallowa@redhat.com>
-
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc (getSourceFile): Check
-       for null source file and throw an exception indicating this.
-
-2007-04-20  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/gcj/jvmti/BreakpointManager.java (newBreakpoint):
-       Install the new breakpoint into the bytecode.
-       (deleteBreakpoint): Remove the breakpoint from the bytecode.
-       * classpath/lib/gnu/gcj/jvmti/BreakpointManager.class:
-       Regenerate.
-       * gnu/gcj/jvmti/natBreakpoint.cc (initialize_native):
-       Don't install the breakpoint here.
-
-2007-04-19  Keith Seitz  <keiths@redhat.com>
-
-       * interpret-run.cc [insn_breakpoint]: Save the original
-       insn for the breakpoint before posting the JVMTI notification.
-
-2007-04-19  Tom Tromey  <tromey@redhat.com>
-
-       * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.h: Rebuilt.
-
-2007-04-18  Tom Tromey  <tromey@redhat.com>
-
-       * Regenerated headers with new gjavah.
-
-2007-04-18  Andrew Haley  <aph@redhat.com>
-
-       * java/lang/reflect/natVMProxy.cc (ncode_closure): Add
-       method_index.
-       (generateProxyClass): Add field $Proxy0.m.  Store methods array in
-       it.
-       (run_proxy): Retrieve the method to invoke from in $Proxy0.m.
-       * java/lang/Class.h: Remove _Jv_LookupProxyMethod.
-       * java/lang/natClass.cc: Likewise.
-       * headers.txt: Likewise.
-       * java/lang/reflect/Method.h: Likewise.
-
-2007-04-16  Andrew Haley  <aph@redhat.com>
-
-       * gnu/gcj/runtime/BootClassLoader.java (getBootURLLoader): New
-       method.
-       (bootGetResource): Use getBootURLLoader() to load resources.
-       (bootGetResources): Likewise.
-
-       * java/lang/reflect/natMethod.cc (Method::invoke): In invoke also
-       check that the method's declaring class is accessible.
-
-2007-04-10  Keith Seitz  <keiths@redhat.com>
-
-       * sources.am: Regenerate.
-       * Makefile.in: Likewise.
-
-2007-04-09  Kyle Galloway  <kgallowa@redhat.com>
-
-       * interpret-run.cc: If debugging, check if args is NULL before
-       getting the "this" pointer.
-
-2007-04-09  Kyle Galloway  <kgallowa@redhat.com>
-
-       * classpath/gnu/classpath/jdwp/value/ArrayValue.java: New file.
-       * classpath/lib/gnu/classpath/jdwp/value/ArrayValue.class: New file.
-       * gnu/classpath/jdwp/ArrayValue.h: New file.
-       * gnu/classpath/jdwp/natVMFrame.cc (getValue): Add array case.
-       (setValue): Ditto. 
-
-2007-04-09  David Daney  <ddaney@avtrex.com>
-
-       PR libgcj/23758
-       * java/lang/natPosixProcess.cc (nativeSpawn): Move building of
-       environment before the fork.
-       * testsuite/libjava.lang/Process_7.java: New test.
-       * testsuite/libjava.lang/Process_7.out: Its expected results.
-       * testsuite/libjava.lang/Process_7.jar: Generated file.
-
-2007-04-09  H.J. Lu  <hongjiu.lu@intel.com>
-
-       * prims.cc (load_jvmti_agent): Add the missing `,'.
-
-2007-04-09  Kyle Galloway  <kgallowa@redhat.com>
-
-       * gij.cc (main): Accept -agentlib and -agentpath options.
-       * prims.cc (parse_init_args): Deal with -agentlib and -agentpath.
-       (load_jvmti_agent): New function.
-
-2007-04-04  Tania Bento  <tbento@redhat.com>
-
-       * java/text/DecimalFormatSymbols.java: Added the year 2007 to
-       Copyright information and introduced new variable, currency.
-       (DecimalFormatSymbols(Locale)): Define currency and intlCurrencySymbol
-       to "XXX", currencySymbol to "?" and localCurrency appropriately.
-       (getCurrency): Fixed documentation and return the value of currency.
-       (setCurrency): Fixed documentation and update the value of currency.
-       (setInternationalCurrencySymbol): Fixed documentation and update the
-       value of currency.
-       * java/util/Currency.java: Introduced two new variables, properties
-       and fractionDigits. In the static block, a properties object is
-       created and the currency resource is loaded.
-       (Currency(Locale)): fractionDigits is defined.
-       (Currency(String)): New method.
-       (getDefaultFractionDigits): Return the value of fractionDigits.
-       (getInstance(String)): Check if String is equal to "XXX".
-
-2007-04-04  Kyle Galloway  <kgallowa@redhat.com>
-
-       * classpath/gnu/classpath/jdwp/util/VariableTable.java: Change longs
-       to ints for argCnt and slots.
-       (write): Replace writeLong with writeInt for the above. 
-
-2007-04-03  Andrew Haley  <aph@redhat.com>
-
-       * testsuite/libjava.lang/ProxyTest.java: New test.
-
-2007-04-02  Tom Tromey  <tromey@redhat.com>
-
-       http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=205157
-       * gnu/java/nio/channels/natFileChannelPosix.cc (mapImpl): Extend
-       file, when writing, if it is too short.
-
-2007-04-02  Tom Tromey  <tromey@redhat.com>
-
-       https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=233406
-       * gnu/java/net/natPlainSocketImplPosix.cc (create): Return if
-       already created.
-       * gnu/java/net/PlainSocketImpl.java (getLocalAddress): Handle case
-       where localport is -1.
-       (create): Now public.
-       * gnu/java/nio/SocketChannelImpl.java (SocketChannelImpl): Call
-       'create' on the socket.
-
-2007-04-02  Andrew Haley  <aph@redhat.com>
-
-       * java/lang/reflect/natVMProxy.cc (run_proxy): Use
-       _Jv_LookupProxyMethod to find the Method.
-       If parameter_types->length == 0, pass a null paramameter list,
-       not a zero-length parameter list.
-       * java/lang/natClass.cc (_Jv_LookupProxyMethod): New function.
-       * java/lang/Class.h (_Jv_LookupProxyMethod): Declare.
-
-2007-04-02  Kyle Galloway  <kgallowa@redhat.com>
-
-       * interpret-run.cc: Add code to properly set up variable slots
-       when debugging.
-       * gnu/classpath/jdwp/natVMFrame.cc (checkJVMTIError): New function.
-       (getObjectJVMTI): New function.
-       (setObjectJVMTI): New function.
-       (getIntJVMTI): New function.
-       (setIntJVMTI): New function.
-       (getLongJVMTI): New function.
-       (setLongJVMTI): New function.
-       (getFloatJVMTI): New function.
-       (setFloatJVMTI): New function.
-       (getDoubleJVMTI): New function.
-       (setDoubleJVMTI): New function.
-       (getFrameDepth): New function.
-       (getValue): Implement.
-       (setValue): Implement. 
-
-2007-04-02  Kyle Galloway  <kgallowa@redhat.com>
-
-       * classpath/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java
-       (executeResume): Call VMVirtualMachine.resumeThread.
-
-2007-03-29  Tom Tromey  <tromey@redhat.com>
-
-       PR libgcj/29869:
-       * java/util/logging/LogManager.java (readConfiguration): Handle
-       comma-separated 'handlers'.  Don't try to add a non-existing
-       handler.
-
-2007-03-27  Tom Tromey  <tromey@redhat.com>
-
-       * sources.am, Makefile.in: Rebuilt.
-       * scripts/mime.types: Removed.
-       * scripts/MakeDefaultMimeTypes.java: Removed.
-       * gnu/gcj/io/MimeTypes.java: Removed.
-       * gnu/gcj/io/MimeTypes.h: Removed.
-       * gnu/gcj/io/DefaultMimeTypes.java: Removed.
-       * gnu/gcj/io/DefaultMimeTypes.h: Removed.
-
-2007-03-27  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/VMFrame.java: Update from upstream
-       classpath.
-       * gnu/classpath/jdwp/natVMFrame.cc: Likewise.
-       * gnu/classpath/jdwp/VMVirtualMachine.java: Likewise.
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc: Likewise.
-       (initialize): Fix compiler type-punning warning.
-       (getAllLoadedClasses): Return empty list instead of NULL.
-       (getLoadRequests): Likewise.
-       * gnu/classpath/jdwp/exception/InvalidTagException.h: New file.
-       * gnu/classpath/jdwp/exception/InvalidSlotException.h: New file.
-       * gnu/classpath/jdwp/exception/TypeMismatchException.h: New file.
-       * gnu/classpath/jdwp/VMVirtualMachine.h: Rebuilt.
-       * gnu/classpath/jdwp/value/CharValue.h: New file.
-       * gnu/classpath/jdwp/value/LongValue.h: New file.
-       * gnu/classpath/jdwp/value/ShortValue.h: New file.
-       * gnu/classpath/jdwp/value/Value.h: New file.
-       * gnu/classpath/jdwp/value/BooleanValue.h: New file.
-       * gnu/classpath/jdwp/value/VoidValue.h: New file.
-       * gnu/classpath/jdwp/value/ByteValue.h: New file.
-       * gnu/classpath/jdwp/value/FloatValue.h: New file.
-       * gnu/classpath/jdwp/value/ObjectValue.h: New file.
-       * gnu/classpath/jdwp/value/StringValue.h: New file.
-       * gnu/classpath/jdwp/value/ValueFactory.h: New file.
-       * gnu/classpath/jdwp/value/IntValue.h: New file.
-       * gnu/classpath/jdwp/value/DoubleValue.h: New file.
-       * gnu/classpath/jdwp/VMFrame.h: Rebuilt.
-       * gnu/classpath/jdwp/id/NullObjectId.h: New file.
-       * gnu/classpath/jdwp/util/MethodResult.h: Rebuilt.
-       * gnu/classpath/jdwp/util/NullObject.h: New file.
-       * gnu/classpath/jdwp/util/MonitorInfo.h: New file.
-       * Makefile.in: Rebuilt.
-       * sources.am: Rebuilt.
-
-2006-03-26  David Daney  <ddaney@avtrex.com>
-
-       * configure.ac: Remove checks for mktime, alloca, ioctl, gmtime_r,
-       fork, execvp, execinfo.h, pthread_mutexattr_settype,
-       pthread_mutexattr_setkind_np and sys/wait.h.
-       * Makefile.in: Regenerate.
-       * include/Makefile.in: Regenerate.
-       * include/config.h.in: Regenerate.
-       * testsuite/Makefile.in: Regenerate.
-       * configure: Regenerate.
-       * gcj/Makefile.in: Regenerate.
-
-2007-03-23  Gary Benson  <gbenson@redhat.com>
-
-       * link.cc (_Jv_Linker::resolve_method_entry):
-       Ensure that the argument types and the return type of the
-       found method match those expected by the calling method.
-
-2007-03-22  David Daney  <ddaney@avtrex.com>
-
-       PR libgcj/31228
-       * configure.ac: Add checks for getrlimit and sys/resource.h.
-       * include/posix.h (_Jv_platform_close_on_exec): Remove.
-       * include/config.h.in: Regenerate.
-       * configure: Regenerate.
-       * gnu/java/nio/channels/natFileChannelPosix.cc (open): Remove call to
-       _Jv_platform_close_on_exec;
-       * gnu/java/net/natPlainSocketImplPosix.cc (create): Likewise.
-       (accept): Likewise.
-       * gnu/java/net/natPlainDatagramSocketImplPosix.cc (create):Likewise.
-       * java/lang/natPosixProcess.cc: Include sys/resource.h.
-       (nativeSpawn): Close all file descriptors.  Don't set FD_CLOEXEC on
-       pipes.
-
-2007-03-20  Andrew Haley  <aph@redhat.com>
-
-       * testsuite/libjava.lang/PR31264.java: New test.
-
-2007-03-14  Jakub Jelinek  <jakub@redhat.com>
-
-       * Makefile.am (AM_MAKEFLAGS): Pass through mandir.
-       * Makefile.in: Rebuilt.
-
-2007-03-13  Keith Seitz  <keiths@redhat.com>
-
-       * include/java-interp.h (_Jv_InterpClass): Declare
-       friend function _Jv_GetInterpClassSourceFile.
-       * java/lang/Class.h (Class): Likewise.
-       * java/lang/natClass.cc (_Jv_GetInterpClassSourceFile):
-       New function.
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc
-       (getSourceFile): Implement.
-
-2007-03-13  Thomas Fitzsimmons  <fitzsim@redhat.com>
-
-       * Makefile.am (AM_CXXFLAGS): Define ECJ_JAR_FILE.
-       * classpath/configure.ac: Add --with-ecj-jar configure option.
-       * classpath/gnu/classpath/Configuration.java.in (ECJ_JAR): New
-       field.
-       * classpath/INSTALL: Document --with-ecj-jar configure option and
-       ecj jar requirement for com.sun.tools.javac support.
-       * classpath/tools/Makefile.am: Build decendents of com and sun
-       directories.
-       * configure.ac: Substitute ECJ_JAR in stub Configuration.java.
-       * gnu/classpath/Configuration.java,
-       gnu/classpath/natConfiguration.cc (ecj): New method.
-       (ECJ_JAR): New field.
-       * scripts/makemake.tcl (scan_packages): Add com directory.
-       * sources.am (property_files): Add
-       classpath/resource/sun/rmi/rmic/messages.properties and
-       classpath/resource/com/sun/tools/javac/messages.properties.
-       * classpath/resource/com, classpath/resource/com/sun,
-       classpath/resource/com/sun/tools,
-       classpath/resource/com/sun/tools/javac, classpath/resource/sun,
-       classpath/resource/sun/rmi, classpath/resource/sun/rmi/rmic,
-       classpath/tools/classes/com, classpath/tools/classes/com/sun,
-       classpath/tools/classes/com/sun/javadoc,
-       classpath/tools/classes/com/sun/tools,
-       classpath/tools/classes/com/sun/tools/doclets,
-       classpath/tools/classes/sun, classpath/tools/classes/sun/rmi,
-       classpath/tools/classes/sun/rmi/rmic, classpath/tools/com,
-       classpath/tools/com/sun, classpath/tools/com/sun/javadoc,
-       classpath/tools/com/sun/tools,
-       classpath/tools/com/sun/tools/doclets,
-       classpath/tools/com/sun/tools/javac, classpath/tools/sun,
-       classpath/tools/sun/rmi, classpath/tools/sun/rmi/rmic: New
-       directories.
-       * classpath/resource/com/sun/tools/javac/messages.properties,
-       classpath/resource/sun/rmi/rmic/messages.properties,
-       classpath/tools/classes/com/sun/javadoc/ClassDoc.class,
-       classpath/tools/classes/com/sun/javadoc/ConstructorDoc.class,
-       classpath/tools/classes/com/sun/javadoc/Doc.class,
-       classpath/tools/classes/com/sun/javadoc/DocErrorReporter.class,
-       classpath/tools/classes/com/sun/javadoc/Doclet.class,
-       classpath/tools/classes/com/sun/javadoc/ExecutableMemberDoc.class,
-       classpath/tools/classes/com/sun/javadoc/FieldDoc.class,
-       classpath/tools/classes/com/sun/javadoc/MemberDoc.class,
-       classpath/tools/classes/com/sun/javadoc/MethodDoc.class,
-       classpath/tools/classes/com/sun/javadoc/PackageDoc.class,
-       classpath/tools/classes/com/sun/javadoc/ParamTag.class,
-       classpath/tools/classes/com/sun/javadoc/Parameter.class,
-       classpath/tools/classes/com/sun/javadoc/ProgramElementDoc.class,
-       classpath/tools/classes/com/sun/javadoc/RootDoc.class,
-       classpath/tools/classes/com/sun/javadoc/SeeTag.class,
-       classpath/tools/classes/com/sun/javadoc/SerialFieldTag.class,
-       classpath/tools/classes/com/sun/javadoc/SourcePosition.class,
-       classpath/tools/classes/com/sun/javadoc/Tag.class,
-       classpath/tools/classes/com/sun/javadoc/ThrowsTag.class,
-       classpath/tools/classes/com/sun/javadoc/Type.class,
-       classpath/tools/classes/com/sun/javadoc/TypeVariable.class,
-       classpath/tools/classes/com/sun/tools/doclets/Taglet.class,
-       classpath/tools/classes/sun/rmi/rmic/Main.class,
-       classpath/tools/classes/sun/rmi/rmic/Messages.class,
-       classpath/tools/com/sun/javadoc/ClassDoc.java,
-       classpath/tools/com/sun/javadoc/ConstructorDoc.java,
-       classpath/tools/com/sun/javadoc/Doc.java,
-       classpath/tools/com/sun/javadoc/DocErrorReporter.java,
-       classpath/tools/com/sun/javadoc/Doclet.java,
-       classpath/tools/com/sun/javadoc/ExecutableMemberDoc.java,
-       classpath/tools/com/sun/javadoc/FieldDoc.java,
-       classpath/tools/com/sun/javadoc/MemberDoc.java,
-       classpath/tools/com/sun/javadoc/MethodDoc.java,
-       classpath/tools/com/sun/javadoc/PackageDoc.java,
-       classpath/tools/com/sun/javadoc/ParamTag.java,
-       classpath/tools/com/sun/javadoc/Parameter.java,
-       classpath/tools/com/sun/javadoc/ProgramElementDoc.java,
-       classpath/tools/com/sun/javadoc/RootDoc.java,
-       classpath/tools/com/sun/javadoc/SeeTag.java,
-       classpath/tools/com/sun/javadoc/SerialFieldTag.java,
-       classpath/tools/com/sun/javadoc/SourcePosition.java,
-       classpath/tools/com/sun/javadoc/Tag.java,
-       classpath/tools/com/sun/javadoc/ThrowsTag.java,
-       classpath/tools/com/sun/javadoc/Type.java,
-       classpath/tools/com/sun/javadoc/TypeVariable.java,
-       classpath/tools/com/sun/tools/doclets/Taglet.java,
-       classpath/tools/com/sun/tools/javac/Main.java,
-       classpath/tools/com/sun/tools/javac/Messages.java,
-       classpath/tools/sun/rmi/rmic/Main.java,
-       classpath/tools/sun/rmi/rmic/Messages.java: New files.
-       * Makefile.in, classpath/Makefile.in, classpath/configure,
-       classpath/doc/Makefile.in, classpath/doc/api/Makefile.in,
-       classpath/examples/Makefile.in, classpath/external/Makefile.in,
-       classpath/external/jsr166/Makefile.in,
-       classpath/external/relaxngDatatype/Makefile.in,
-       classpath/external/sax/Makefile.in,
-       classpath/external/w3c_dom/Makefile.in,
-       classpath/include/Makefile.in, classpath/include/config.h.in,
-       classpath/lib/Makefile.in,
-       classpath/lib/gnu/classpath/Configuration.class,
-       classpath/native/Makefile.in, classpath/native/fdlibm/Makefile.in,
-       classpath/native/jawt/Makefile.in,
-       classpath/native/jni/Makefile.in,
-       classpath/native/jni/classpath/Makefile.in,
-       classpath/native/jni/gconf-peer/Makefile.in,
-       classpath/native/jni/gtk-peer/Makefile.in,
-       classpath/native/jni/java-io/Makefile.in,
-       classpath/native/jni/java-lang/Makefile.in,
-       classpath/native/jni/java-net/Makefile.in,
-       classpath/native/jni/java-nio/Makefile.in,
-       classpath/native/jni/java-util/Makefile.in,
-       classpath/native/jni/midi-alsa/Makefile.in,
-       classpath/native/jni/midi-dssi/Makefile.in,
-       classpath/native/jni/native-lib/Makefile.in,
-       classpath/native/jni/qt-peer/Makefile.in,
-       classpath/native/jni/xmlj/Makefile.in,
-       classpath/native/plugin/Makefile.in,
-       classpath/resource/Makefile.in, classpath/scripts/Makefile.in,
-       classpath/tools/Makefile.in, configure,
-       gnu/classpath/Configuration.h: Regenerate.
-
-2007-03-12  Kyle Galloway  <kgallowa@redhat.com>
-
-       * jvmti.cc (_Jv_JVMTI_GetArgumentsSize): Make wide type arrays count
-       as a sigle slot.
-
-2007-03-12  Marco Trudel  <mtrudel@gmx.ch>
-
-       * java/lang/natString.cc (getBytes (jstring enc)):
-       Fixed the loop for multiple cycles, Code cleanup
-
-2007-03-09  Tom Tromey  <tromey@redhat.com>
-
-       * sources.am, Makefile.in: Rebuilt.
-       * scripts/makemake.tcl (scan_directory): Allow service files to be
-       omitted.
-       Omit all XML-related service files.
-
-2007-03-07  Tom Tromey  <tromey@redhat.com>
-
-       * configure: Rebuilt.
-       * configure.ac: Clear vm-tools-packages.
-
-2007-03-07  Mohan Embar  <gnustuff@thisiscool.com>
-
-       * java/lang/Win32Process.java: Added nested class EOFInputStream.
-       * java/lang/natWin32Process.cc (ChildProcessPipe): Added DUMMY
-       enum and implementation.
-       (startProcess): Use redirect flag.
-       * classpath/lib/java/lang/Win32Process.class: Regenerated.
-       * classpath/lib/java/lang/Win32Process$EOFInputStream.class: New.
-       * gcj/javaprims.h: Regenerated.
-       * java/lang/Win32Process$EOFInputStream.h: New.
-
-2007-03-07  Andrew Haley  <aph@redhat.com>
-
-       * libgcj_bc.c (JvRunMainName): Declare.
-
-2007-03-07  Gary Benson  <gbenson@redhat.com>
-
-       * sources.am, Makefile.in: Rebuilt.
-
-2007-03-07  Mohan Embar  <gnustuff@thisiscool.com>
-
-       * gcj/javaprims.h: Regenerated.
-
-2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
-
-       * include/jvm.h (_Jv_ClosureListFinalizer): New.
-       (_Jv_Linker::create_error_method): Adjust.
-       * boehm.cc (_Jv_ClosureListFinalizer): New.
-       * nogc.cc (_Jv_ClosureListFinalizer): New.
-       * java/lang/Class.h (class _Jv_ClosureList): New.
-       (class java::lang::Class): Declare it as friend.
-       * java/lang/natClass.cc (_Jv_ClosureList::releaseClosures): New.
-       (_Jv_ClosureList::registerClousure): New.
-       * include/execution.h (_Jv_ExecutionEngine): Add get_closure_list.
-       (_Jv_CompiledEngine::do_get_closure_list): New.
-       (_Jv_CompiledEngine::_Jv_CompiledEngine): Use it.
-       (_Jv_IndirectCompiledClass): Add closures.
-       (_Jv_IndirectCompiledEngine::get_aux_info): New.
-       (_Jv_IndirectCompiledEngine::do_allocate_field_initializers): Use
-       it.
-       (_Jv_IndirectCompiledEngine::do_get_closure_list): New.
-       (_Jv_IndirectCompiledEngine::_Jv_IndirectCompiledEngine): Use it.
-       (_Jv_InterpreterEngine::do_get_closure_list): Declare.
-       (_Jv_InterpreterEngine::_Jv_InterpreterEngine): Use it.
-       * interpret.cc (FFI_PREP_RAW_CLOSURE): Use _loc variants.
-       (node_closure): Add closure list.
-       (_Jv_InterpMethod::ncode): Add jclass argument.  Use
-       ffi_closure_alloc and the separate code pointer.  Register the
-       closure for finalization.
-       (_Jv_JNIMethod::ncode): Likewise.
-       (_Jv_InterpreterEngine::do_create_ncode): Pass klass to ncode.
-       (_Jv_InterpreterEngine::do_get_closure_list): New.
-       * include/java-interp.h (_Jv_InterpMethod::ncode): Adjust.
-       (_Jv_InterpClass): Add closures field.
-       (_Jv_JNIMethod::ncode): Adjust.
-       * defineclass.cc (_Jv_ClassReader::handleCodeAttribute): Adjust.
-       (_Jv_ClassReader::handleMethodsEnd): Likewise.
-       * link.cc (struct method_closure): Add closure list.
-       (_Jv_Linker::create_error_method): Add jclass argument.  Use
-       ffi_closure_alloc and the separate code pointer.  Register the
-       closure for finalization.
-       (_Jv_Linker::link_symbol_table): Remove outdated comment about
-       sharing of otable and atable.  Adjust.
-       * java/lang/reflect/natVMProxy.cc (ncode_closure): Add closure
-       list.
-       (ncode): Add jclass argument.  Use ffi_closure_alloc and the
-       separate code pointer.  Register the closure for finalization.
-       (java::lang::reflect::VMProxy::generateProxyClass): Adjust.
-       * testsuite/libjava.jar/TestClosureGC.java: New.
-       * testsuite/libjava.jar/TestClosureGC.out: New.
-       * testsuite/libjava.jar/TestClosureGC.xfail: New.
-       * testsuite/libjava.jar/TestClosureGC.jar: New.
-
-2007-03-06  Kyle Galloway  <kgallowa@redhat.com>
-
-       * classpath/gnu/classpath/jdwp/exception/AbsentInformationException.java: New file.
-       * classpath/lib/gnu/classpath/jdwp/exception/AbsentInformationException.class: Ditto.
-       * gnu/classpath/jdwp/exception/AbsentInformationException.h: Ditto.
-       * gnu/classpath/jdwp/natVMMethod.cc: Add CHECK_INTERP_CLASS macro.
-       (VMMethod::getLineTable): Use new macro.
-       (VMMethod::getVariableTable): Implement.
-       * sources.am: Regenerated.
-       * Makefile.in: Ditto.
-
-2007-03-06  Tom Tromey  <tromey@redhat.com>
-
-       * Makefile.in: Rebuilt.
-       * Makefile.am (bin_PROGRAMS): Added gcjh.
-       (gcjh_SOURCES, gcjh_LDFLAGS, gcjh_LINK, gcjh_LDADD,
-       gcjh_DEPENDENCIES): New variables.
-
-2007-03-06  Kyle Galloway  <kgallowa@redhat.com>
-
-       * jvmti.cc(_Jv_JVMTI_GetLocalVariableTable): Fix _Jv_Malloc parameters.
-       * testsuite/libjava.jvmti/interp/natgetlocalvartable.cc
-       (do_getlocalvartable_tests): Add Deallocate calls to free strings.
-
-2007-03-05  Matthias Klose  <doko@debian.org>
-
-       * Makefile.am (gij_LDFLAGS): Use dbexecdir.
-       * Makefile.in: Regnerate.
-
-2007-03-05  Mark Wielaard  <mark@klomp.org>
-
-       * java/lang/Character.java: Re-merged with Classpath.
-       * java/lang/natString.cc (nativeCompareTo): Renamed from
-       compareTo.
-       * java/lang/StringBuilder.java: Re-merged with Classpath.
-       * java/lang/String.java: Re-merged with Classpath.
-       (nativeCompareTo): Renamed from compareTo.
-       * java/lang/StringBuffer.java: Re-merged with Classpath.
-       * jni.cc (_Jv_JNI_GetAnyMethodID): Split calls to append.
-
-2007-03-05  Andrew Haley  <aph@redhat.com>
-
-       * java/lang/reflect/natVMProxy.cc (ncode_closure.meth): Delete.
-       (generateProxyClass): Don't pass method to ncode.
-       (run_proxy): Call _Jv_GetReflectedMethod to find the proxy method.
-       * java/lang/reflect/Method.h: Rebuild.
-       * java/lang/reflect/Method.java (internalGetParameterTypes,
-       internalGetExceptionTypes): New methods.
-       * headers.txt (class java/lang/reflect/Method): Declare
-       _Jv_GetReflectedMethod.  Be its friend.
-       * java/lang/natClass.cc (_Jv_GetReflectedMethod): New method.
-       * java/lang/Class.h: Declare it.  Be its friend.
-
-2007-03-05  Tom Tromey  <tromey@redhat.com>
-
-       * sources.am, Makefile.in: Rebuilt.
-       * scripts/makemake.tcl (emit_package_rule): Don't omit
-       VMProcess.java.
-       * Makefile.am (nat_source_files): Added natVMProcess.cc.
-       (inner_nat_headers): Added ImmediateEOFInputStream.h.
-       * gcj/javaprims.h: Regenerated.
-       * java/lang/System.java (EnvironmentMap): Now package-private.
-       (EnvironmentMap(Map)): New constructor.
-       (EnvironmentMap.put): New method.
-       * java/lang/natWin32Process.cc (startProcess): Update.
-       * java/lang/Win32Process.java (Win32Process): Added 'redirect'
-       argument.
-       (startProcess): Likewise.
-       * java/lang/EcosProcess.java (EcosProcess): Added 'redirect'
-       argument.
-       * java/lang/natPosixProcess.cc (nativeSpawn): Handle redirection.
-       * java/lang/PosixProcess.java (redirect): New field.
-       (PosixProcess): Added 'redirect' argument.
-       * java/lang/natRuntime.cc (execInternal): Added 'redirect'
-       argument to Process creation.
-       * java/lang/natVMProcess.cc: New file.
-       * java/lang/ProcessBuilder.java: Removed.
-       * java/lang/VMProcess.java: New file.
-
-2007-03-03  Andrew Haley  <aph@redhat.com>
-
-       * java/lang/natClass.cc (parseAnnotationElement): Correct long
-       annotations to read JV_CONSTANT_Long, not JV_CONSTANT_Double.
-
-2007-03-02  Andrew Haley  <aph@redhat.com>
-
-       * sun/reflect/annotation/AnnotationInvocationHandler.java:
-       Generify in a few places.
-       (equals): Rewrite to use invoke on local proxy.
-       (deepToString): Remove most of it.
-       (toString): Make nonstatic.
-       (arrayClone): Delete.
-       (coerce): New method.
-       (invoke): Rewrite to handle gcj's structures correctly.
-       * java/lang/natClass.cc (getDeclaredAnnotations): Fix test for
-       null loader.
-       * sources.am: Regenerate.
-       * Makefile.am: Likewise.        
-
-2007-03-02  Andrew Haley  <aph@redhat.com>
-
-       * sun/reflect/annotation/AnnotationInvocationHandler.java:
-       Whitespace only changes.
-
-2007-03-02  Andrew Haley  <aph@redhat.com>
-
-       * sun/reflect/annotation/AnnotationInvocationHandler.java: Moved
-       from Classpath to libgcj local.
-
-2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
-
-       * Makefile.am: Add dummy install-pdf target.
-       * Makefile.in: Regenerate
-       * include/Makefile.in: Regenerate
-       * testsuite/Makefile.in: Regenerate
-       * gcj/Makefile.in: Regenerate
-
-2007-02-23  Gary Benson  <gbenson@redhat.com>
-
-       * gnu/gcj/tools/gcj_dbtool/Main.java: Updated copyright year.
-
-2007-02-23  Gary Benson  <gbenson@redhat.com>
-
-       * java/lang/VMCompiler.java
-       (compileClass): Don't lose zeros from within the digest.
-
-2007-02-22  Jakub Jelinek  <jakub@redhat.com>
-
-       PR libgcj/17002
-       PR classpath/28550
-       * java/util/VMTimeZone.java (getDefaultTimeZoneId): To read
-       /etc/localtime, use ZoneInfo.readTZFile instead of
-       VMTimeZone.readtzFile.  Get better timezone name for /etc/localtime,
-       either if it is a symlink or through /etc/sysconfig/clock.
-       (readSysconfigClockFile): New static method.
-       (readtzFile): Removed.
-       * java/lang/System.java: Add gnu.java.util.zoneinfo.dir to comments.
-       * posix.cc (_Jv_platform_initProperties): Set
-       gnu.java.util.zoneinfo.dir.
-       * sources.am (gnu_java_util_source_files): Add
-       classpath/gnu/java/util/ZoneInfo.java.
-       * Makefile.in: Regenerated.
-       * java/util/VMTimeZone.h: Regenerated.
-       * java/util/TimeZone.h: Regenerated.
-       * gnu/java/util/ZoneInfo.h: Generated.
-
-2007-02-22  Mohan Embar  <gnustuff@thisiscool.com>
-
-       * include/win32-threads.h: Added #undef OUT.
-
-2007-02-21  Kyle Galloway  <kgallowa@redhat.com>
-
-       * jvmti.cc (_Jv_JVMTI_GetArgumentsSize): New function.
-       * testsuite/libjava.jvmti/interp/getargssize.java: New test.
-       * testsuite/libjava.jvmti/interp/getargssize.h: Ditto.
-       * testsuite/libjava.jvmti/interp/getargssize.jar: Ditto.
-       * testsuite/libjava.jvmti/interp/getargssize.out: Ditto.
-       * testsuite/libjava.jvmti/interp/natgetargssize.cc: Ditto.
-
-2007-02-21  Gary Benson  <gbenson@redhat.com>
-
-       * java/util/GregorianCalendar.java: Removed.
-       * sources.am, Makefile.in: Rebuilt.
-
-2007-02-20  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc
-       (jdwpClassPrepareCB): Move class status stuff to ...
-       (getClassStatus): ... here.
-
-2007-02-20  Gary Benson  <gbenson@redhat.com>
-
-       * gnu/awt/xlib/XEventLoop.h: Regenerated.
-       * gnu/java/awt/peer/gtk/GThreadMutex.h: Likewise.
-       * gnu/java/rmi/server/ConnectionRunnerPool$ConnectionRunner.h:
-       Likewise.
-       * gnu/java/rmi/server/UnicastConnectionManager.h: Likewise.
-       * java/lang/SecurityManager.h: Likewise.
-       * java/lang/Thread.h: Likewise.
-       * java/security/VMSecureRandom$Spinner.h: Likewise.
-       * java/util/concurrent/atomic/AtomicBoolean.h: Likewise.
-       * java/util/concurrent/atomic/AtomicInteger.h: Likewise.
-       * java/util/concurrent/atomic/AtomicLong.h: Likewise.
-       * java/util/concurrent/atomic/AtomicReference.h: Likewise.
-       * java/util/concurrent/ConcurrentHashMap$HashEntry.h: Likewise.
-       * java/util/concurrent/ConcurrentHashMap$Segment.h: Likewise.
-       * java/util/concurrent/ConcurrentLinkedQueue.h: Likewise.
-       * java/util/concurrent/ConcurrentLinkedQueue$Node.h: Likewise.
-       * java/util/concurrent/ConcurrentSkipListMap.h: Likewise.
-       * java/util/concurrent/ConcurrentSkipListMap$Index.h: Likewise.
-       * java/util/concurrent/ConcurrentSkipListMap$Node.h: Likewise.
-       * java/util/concurrent/Exchanger.h: Likewise.
-       * java/util/concurrent/Exchanger$Node.h: Likewise.
-       * java/util/concurrent/FutureTask$Sync.h: Likewise.
-       * java/util/concurrent/LinkedBlockingQueue$Node.h: Likewise.
-       * java/util/concurrent/locks/AbstractQueuedLongSynchronizer.h:
-       Likewise.
-       * java/util/concurrent/locks/AbstractQueuedLongSynchronizer$Node.h: 
-       Likewise.
-       * java/util/concurrent/locks/AbstractQueuedSynchronizer.h: Likewise.
-       * java/util/concurrent/locks/AbstractQueuedSynchronizer$Node.h:
-       Likewise.
-       * java/util/concurrent/ScheduledThreadPoolExecutor.h: Likewise.
-       * java/util/concurrent/SynchronousQueue.h: Likewise.
-       * java/util/concurrent/SynchronousQueue$TransferQueue.h: Likewise.
-       * java/util/concurrent/SynchronousQueue$TransferQueue$QNode.h:
-       Likewise.
-       * java/util/concurrent/SynchronousQueue$TransferStack.h: Likewise.
-       * java/util/concurrent/SynchronousQueue$TransferStack$SNode.h:
-       Likewise.
-       * java/util/concurrent/ThreadPoolExecutor.h: Likewise.
-       * java/util/concurrent/ThreadPoolExecutor$Worker.h: Likewise.
-       * java/util/logging/ErrorManager.h: Likewise.
-       * javax/swing/plaf/basic/BasicSpinnerUI$2.h: Likewise.
-       * javax/swing/plaf/basic/BasicSpinnerUI$4.h: Likewise.
-
-2007-02-16  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc
-       (get_line_table): New function.
-       (handle_single_step): New function.
-       (jdwpSingleStepCB): New function.
-       (jdwpVMInitCB): Define a JVMTI single step
-       callback, but don't enable it until needed.
-
-2007-02-16  David Daney  <ddaney@avtrex.com>
-
-       * java/lang/Thread.java (Thread(ThreadGroup, Runnable, String)): Pass
-       new parameter constructor.
-       (Thread(ThreadGroup, Runnable, String, long)): Same.
-       (Thread(String, boolean)): New constructor.
-       (Thread(Thread, ThreadGroup, Runnable, String): Add parameter
-       noInheritableThreadLocal, don't call
-       InheritableThreadLocal.newChildThread if set.
-       * java/lang/PosixProcess.java(ProcessManager()): Set
-       noInheritableThreadLocal in super.
-       * java/lang/natThread.cc (_Jv_AttachCurrentThread): Pass new
-       parameter to Thread constructor.
-       (_Jv_AttachCurrentThreadAsDaemon): Same.
-       * java/lang/Thread.h: Regenerate.
-       * classpath/lib/java/lang/Thread.class: Same.
-       * classpath/lib/java/lang/PosixProcess$EOFInputStream.class: Same.
-       * classpath/lib/java/lang/PosixProcess.class: Same.
-       * classpath/lib/java/lang/Thread$State.class: Same.
-       * classpath/lib/java/lang/PosixProcess$ProcessManager.class: Same.
-
-2007-02-16  Kyle Galloway  <kgallowa@redhat.com>
-
-       * interpret.cc: Add extra DEBUG_LOCALS_INSN calls for multi-slot
-       variables to maintain type info.
-       * interpret-run.cc: Add local variable info to frame in the debug
-       interpreter.
-       * jvmti.cc (getLocalFrame): New method.
-       (_Jv_JVMTI_GetLocalObject): New method.
-       (_Jv_JVMTI_GetLocallInt): New method.
-       (_Jv_JVMTI_GetLocalFloat): New method.
-       (_Jv_JVMTI_GetLocalLong): New method.
-       (_Jv_JVMTI_GetLocalDouble): New method.
-       (_Jv_JVMTI_SetLocalObject): New method.
-       (_Jv_JVMTI_SetLocalInt): New method.
-       (_Jv_JVMTI_SetLocalFloat): New method.
-       (_Jv_JVMTI_SetLocalLong): New method.
-       (_Jv_JVMTI_SetLocalDouble): New method.
-
-2007-02-16  Gary Benson  <gbenson@redhat.com>
-
-       * gnu/gcj/tools/gcj_dbtool/Main.java
-       (bytesToString): Don't lose zeros from within the digest.
-
-2007-02-15  Andrew Haley  <aph@redhat.com>
-
-       * Makefile.am (nat_source_files): Remove
-       java/lang/management/natVMManagementFactory.cc.
-       * java/lang/Thread.java (getStackTrace): Use reflection to call
-       the ManagementFactory.
-       * java/lang/management/VMManagementFactory.java: Remove native
-       methods.
-       * java/lang/management/natVMManagementFactory.cc: Deleted.
-       * sources.am: Regnerate.
-       * scripts/makemake.tcl: Add new "bcheaders" type.
-       Move java/lang/management and gnu/classpath/management to "bc".
-       Move gnu/java/lang/management to "bcheaders".
-       
-2007-02-15  Kyle Galloway  <kgallowa@redhat.com>
-       
-       * interpret.cc (_Jv_InterpMethod::check_handler): New method.
-       * interpret-run.cc: Change the catch section to report exception
-       events and to use the new check_handler method.
-       * include/java-interp.h (_Jv_InterpMethod): Add check_handler.
-       * gnu/gcj/jvmti/ExceptionEvent.java: New file.
-       * gnu/gcj/jvmti/ExceptionEvent.h: New file.
-       * gnu/gcj/jvmti/natExceptionEvent.cc: New file.
-       * libjava/classpath/lib/gnu/gcj/jvmti/ExceptionEvent.class: New
-       file.
-       * sources.am: Added ExceptionEvent.java.
-       * Makefile.am: Added natExceptionEvent.cc
-       * Makefile.in: Regenerated.
-       * include/Makefile.in: Regenerated.
-       * gcj/Makefile.in: Regenerated.
-
-2007-02-15  Johannes Schmidt  <jschmidt@avtrex.com>
-       David Daney  <ddaney@avtrex.com>
-
-       * configure.ac: Create vm-tools-packages file.  Add 
-       gnu/gcj/tools/gc_analyze to standard.omit and vm-tools-packages.
-       Check for /proc/self/maps.
-       * Makefile.am (bin_PROGRAMS): Added gc-analyze.
-       (gc_analyze_SOURCES): New.
-       (gc_analyze_LDFLAGS): New.
-       (gc_analyze_LINK): New.
-       (gc_analyze_LDADD): New.
-       (gc_analyze_DEPENDENCIES): New.
-       (nat_source_files): Add gnu/gcj/util/natGCInfo.cc.
-       * Makefile.in: Regenerated.
-       * configure: Regenerated.
-       * include/config.h.in: Regenerated.
-       * sources.am: Regenerated.
-       * scripts/makemake.tcl: Don't include gc-analyze classes in libgcj.
-       * gnu/gcj/tools/gc_analyze/SymbolLookup.java: New.
-       * gnu/gcj/tools/gc_analyze/ObjectMap.java: New.
-       * gnu/gcj/tools/gc_analyze/MemoryMap.java: New.
-       * gnu/gcj/tools/gc_analyze/SymbolTable.java: New.
-       * gnu/gcj/tools/gc_analyze/BlockMap.java: New.
-       * gnu/gcj/tools/gc_analyze/BytePtr.java: New.
-       * gnu/gcj/tools/gc_analyze/ItemList.java: New.
-       * gnu/gcj/tools/gc_analyze/ToolPrefix.java: New.
-       * gnu/gcj/tools/gc_analyze/MemoryAnalyze.java: New.
-       * gnu/gcj/util/GCInfo.java: New.
-       * gnu/gcj/util/GCInfo.h: New.
-       * gnu/gcj/util/natGCInfo.cc: New.
-       * gnu/gcj/util/UtilPermission.java: New.
-       * gnu/gcj/util/UtilPermission.h: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/SymbolTable.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/ObjectMap$ObjectItem.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap$RangeComparator.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap$PtrMarks.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap$Range.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/BytePtr.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$SubstringComparator.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/ItemList.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/ToolPrefix.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1$Info.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$2.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$3.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$4.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$OptionParser.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap$SizeKind.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/SymbolLookup.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/ObjectMap.class: New.
-       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap.class: New.
-       * classpath/lib/gnu/gcj/util/GCInfo.class: New.
-       * classpath/lib/gnu/gcj/util/UtilPermission.class: New.
-
-2007-02-15  David Daney  <ddaney@avtrex.com>
-
-       * gnu/java/net/PlainSocketImpl.h: Regenerate.
-       * gnu/classpath/jdwp/VMVirtualMachine.h: Same.
-       * gnu/classpath/jdwp/VMFrame.h: Same.
-       * java/net/Socket.h: Same.
-       * java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.h: Same.
-
-2007-02-15  Kyle Galloway  <kgallowa@redhat.com>
-
-       * defineclass.cc (_Jv_ClassReader::read_one_code_attribute):
-       Added LocalVariableTable attribute handling.
-       (_Jv_ClassReader::pool_Utf8_to_char_arr): New method.
-       * jvmti.cc (_Jv_JVMTI_GetLocalVariableTable): New method.
-       * include/java-interp.h: Added local_var_table and 
-       local_var_table_len fields to _Jv_InterpMethod.
-       (_Jv_InterpMethod::get_local_var_table): New method.
-       * testsuite/libjava.jvmti/interp/getlocalvartable.java: New test.
-       * testsuite/libjava.jvmti/interp/getlocalvartable.jar: New test.
-       * testsuite/libjava.jvmti/interp/getlocalvartable.out: Output
-       for new test.
-       * testsuite/libjava.jvmti/interp/getlocalvartable.h: New test.
-       * testsuite/libjava.jvmti/interp/natgetlocalvartable.cc: New test.
-
-2007-02-15  Kyle Galloway  <kgallowa@redhat.com>
-
-       * gnu/classpath/jdwp/natVMVirtualMachine (getFrames): Implement.
-
-2007-02-13  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc
-       (jdwpBreakpointCB): New function.
-       (jdwpVMInitCB): Define and enable the breakpoint
-       callback.
-
-2007-02-13  Andrew Haley  <aph@redhat.com>
-
-       * testsuite/libjava.lang/Divide_2.out
-       * testsuite/libjava.lang/Divide_2.java: New test.
-
-2007-02-12  Keith Seitz  <keiths@redhat.com>
-
-       * jvmti.cc (_Jv_JVMTI_GetStackTrace): Remove cast
-       from jthread to Thread *; it is no longer needed.
-       (_Jv_JVMTI_GetFrameCount): Likewise.
-       Fix small formatting typo.
-
-2007-02-12  Tom Tromey  <tromey@redhat.com>
-
-       * sources.am, Makefile.in: Rebuilt.
-       * java/lang/Socket.java: Removed override.
-       * java/lang/DatagramSocket.java: Removed override.
-       * gnu/java/net/PlainSocketImpl.java (localSocketAddress): New
-       field.
-       (getLocalAddress): New method.
-       * gnu/java/net/PlainDatagramSocketImpl.java
-       (PlainDatagramSocketImpl): Throws IOException.
-       * gnu/java/net/natPlainSocketImplPosix.cc (write): Remove
-       'sizeof'.
-       (read): Likewise.
-
-2007-02-09  Jakub Jelinek  <jakub@redhat.com>
-
-       * java/util/VMTimeZone.java: Rewrite to handle both the old
-       'TZif\0' format and the new one.
-       
-2007-02-10  Andrew Haley  <aph@redhat.com>
-
-       PR java/30742
-       * gnu/classpath/natVMStackWalker.cc (GET_CALLING_CLASS): New.
-       (getCallingClass): Call GET_CALLING_CLASS.
-       (getCallingClassLoader): Likewise.
-
-2007-02-10  Mohan Embar  <gnustuff@thisiscool.com>
-
-       * configure: Rebuilt.
-       * configure.ac (GCJH): Reverted second part of patch of 2006-12-20.
-
-2007-02-10  Mohan Embar  <gnustuff@thisiscool.com>
-
-       * Makefile.in: Rebuilt.
-       * Makefile.am (BUILD_ECJ1): Unify the command for renaming ecjx to
-       the host's ecj1 executable.
-
-2007-02-09  Richard Henderson  <rth@redhat.com>
-
-       * sysdep/alpha/locks.h (read_barrier): New.
-
-2007-02-09  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/VMVirtualMachine.java
-       (_stepping_threads): New member.
-       * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class:
-       Regenerated.
-       * gnu/classpath/jdwp/VMVirtualMachine.h:
-       Regenerated.
-       * gnu/claspath/jdwp/natVMVirtualMachine.cc
-       (get_request_step_filter): New function.
-       (DISABLE_EVENT): New macro.
-       (initialize): Initialize _stepping_threads.
-       (registerEvent): Implement EVENT_SINGLE_STEP.
-       (unregisterEvent): Likewise.
-
-2007-02-08  Keith Seitz  <keiths@redhat.com>
-
-       * sources.am: Regenerate.
-       * Makefile.in: Regenerate.
-       * testsuite/Makefile.in: Regenerate.
-       * gcj/Makefile.in: Regenerate.
-       * include/Makefile.in: Regenerate.
-
-       * classpath/lib/javax/management/MBeanServerFactory.class:
-       Regenerate.
-
-2007-02-08  Kyle Galloway  <kgallowa@redhat.com>
-
-       * classpath/gnu/classpath/jdwp/processor/
-       StackFrameCommandSet.java (executeGetValues): Pass jlong instead
-       of ByteBuffer.
-       (executeSetValues): Ditto.
-       (executeThisObject): Ditto.
-       * classpath/gnu/classpath/jdwp/processor/
-       StackFrameCommandSet.class: Rebuilt.
-       * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class:
-       Rebuilt.
-       * classpath/lib/gnu/classpath/jdwp/VMFrame.class: Rebuilt.
-       * classpath/lib/gnu/classpath/jdwp/exception/
-       InvalidFrameException.java: New file.
-       * gnu/classpath/jdwp/VMFrame.java: Added field for thread of
-       frame.
-       (Constructor): New method.
-       * gnu/classpath/jdwp/VMFrame.h: Regenerated.
-       * gnu/classpath/jdwp/VMVirtualMachine.java
-       (getFrame): Changed ByteBuffer to jlong.
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc
-       (getFrame): Implement.
-       * gnu/classpath/jdwp/VMVirtualMachine.h: Regenerated.
-
-2007-02-08  Kyle Galloway  <kgallowa@redhat.com>
-
-       * include/java-interp.h (_Jv_InterpFrame): obj_ptr field added
-       to hold "this" pointer for frame.
-       (_Jv_InterpFrame::get_this_ptr): New method.
-       * interpret-run.cc: Copy the "this" pointer into obj_ptr.
-
-2007-02-07  Keith Seitz  <keiths@redhat.com>
-
-       * include/java-interp.h (_Jv_Frame::depth):
-       New function.
-       * jvmti.cc (_Jv_JVMTI_GetFrameCount): Use _Jv_Frame::depth.
-
-2007-02-07  Kyle Galloway  <kgallowa@redhat.com>
-
-       * jvmti.cc (CHECK_FOR_NATIVE_METHOD): New macro.
-       (_Jv_JVMTI_GetMaxLocals): New method.
-       * include/java-interp.h
-       (_Jv_InterpMethod::get_max_locals): New method.
-
-2007-02-01 Marco Trudel <mtrudel@gmx.ch>
-
-       * jni.cc (_Jv_JNI_DeleteWeakGlobalRef): Check for NULL objects.
-
-2007-02-07  Tom Tromey  <tromey@redhat.com>
-
-       * testsuite/libjava.jni/init.c: New file.
-       * testsuite/libjava.jni/init.java: New file.
-       * testsuite/libjava.jni/init.out: New file.
-       * testsuite/libjava.jni/init.jar: New file.
-       * testsuite/libjava.jni/init.h: New file.
-       * testsuite/libjava.jni/init$NativeClass.h: New file.
-
-2007-02-07  Jakub Jelinek  <jakub@redhat.com>
-
-       PR libgomp/28468
-       * configure: Regenerate.
-
-2007-02-06  Andrew Haley  <aph@redhat.com>
-
-       * scripts/makemake.tcl (emit_bc_rule): Set the source filename.
-       * sources.am: Rebuild.
-
-2007-02-05  Keith Seitz  <keiths@redhat.com>
-
-       * jvmti.cc (_envListLock): Change type to
-       ReentrantReadWriteLock.
-       (_Jv_JVMTI_DisposeEnvironment): Switch to read/write
-       lock.
-       (check_enabled_event): Likewise.
-       (_Jv_GetJVMTIEnv): Likewise.
-       (_Jv_JVMTI_Init): Likewise.
-       (_Jv_JVMTI_PostEvent): Likewise. 
-
-2007-02-05  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc
-       (registerEvent): Implement EVENT_BREAKPOINT.
-       (unregisterEvent): Likewise.
-       (get_request_location): New function.
-
-2007-02-05  Matthias Klose  <doko@debian.org>
-
-       testsuite/Makefile.am (compile-tests): Fix typo.
-       testsuite/Makefile.in: Regenerate.
-
-2007-02-02  Kyle Galloway  <kgallowa@redhat.com>
-
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc (getFrameCount):
-       Implment.
-
-2007-02-02  Jakub Jelinek  <jakub@redhat.com>
-
-       * configure.ac (libjava_cv_anon_version_script): New test.
-       (ANONVERSCRIPT): New AM_CONDITIONAL.
-       * configure: Rebuilt.
-       * Makefile.am (extra_ldflags_libjava): Link with -Wl,--version-script
-       if ANONVERSCRIPT.
-       * Makefile.in: Rebuilt.
-       (libgcj_la_DEPENDENCIES): Depend on libgcj.ver.
-       * libgcj.ver: New file.
-
-2007-02-01  David Daney  <ddaney@avtrex.com>
-
-       * scripts/makemake.tcl: Replace gnu/xml build with build of all
-       its subpackages.
-       * sources.am: Regenerate.
-       * Makefile.in: Regenerate.
-
-2007-02-01  Tom Tromey  <tromey@redhat.com>
-
-       * java/lang/ClassLoader.java (getResources): No longer final.
-
-2007-02-01  Tom Tromey  <tromey@redhat.com>
-
-       * java/util/logging/LogManager.java (loggers): Genericized.
-       (addLogger): Merged.
-       (findAncestor): Likewise.
-       (getLogger): Likewise.
-       (getLoggerNames): Genericized.
-       (reset): Merged.
-       (getLevelProperty): Likewise.
-       * java/lang/reflect/Method.java (getDeclaringClass): Genericized.
-       * java/lang/reflect/Constructor.java (getParameterTypes):
-       Genericized.
-       (getExceptionTypes): Likewise.
-       (newInstance): Likewise.
-       * java/lang/reflect/Array.java (newInstance): Genericized.
-       * java/lang/Object.java (getClass): Genericized.
-       * java/nio/charset/spi/CharsetProvider.java (charsets):
-       Genericized.
-       * java/text/Collator.java: Implement Comparable<Object>.
-
-2007-02-01  Tom Tromey  <tromey@redhat.com>
-
-       * java/util/Calendar.java: Implement Comparable<Calendar>.  Update
-       comments.
-       (clear): Call complete.
-       (setTimeZone): Call computeTime, computeFields.
-       (compareTo): New method.
-       * java/nio/charset/Charset.java: Implement Comparable<Charset>.
-       (availableCharsets): Genericized.
-       (aliases): Likewise.
-       (compareTo): Changed argument type.
-       * java/lang/ClassLoader.java (loadClass): Genericized.
-       (findClass): Likewise.
-       (defineClass): Likewise.
-       (resolveClass): Likewise.
-       (findSystemClass): Likewise.
-       (setSigners): Likewise.
-       (findLoadedClass): Likewise.
-       (getResources): Likewise.
-       (findResources): Likewise.
-       (getSystemResources): Likewise.
-       (checkInitialized): New method.
-       * java/lang/Class.java (getCanonicalName): New method.
-
-2007-01-31  Keith Seitz  <keiths@redhat.com>
-
-       * include/jvmti-int.h (JVMTI): Declare member "enabled".
-       * jvmti.cc (JVMTI): Add member "enabled".
-       (_Jv_GetJVMTIEnv): Mark JVMTI enabled.
-       * interpret.cc (_Jv_InterpMethod::ncode): Use JVMTI::enabled
-       instead of gnu::classpath::jdwp::Jdwp::isDebugging.
-       (_Jv_CompileMethod): If JVMTI is enabled, use run_debug
-       instead of run to compile the method.
-
-       * interpret-run.cc [DEBUG] (NEXT_INSN): Add JVMTI single step
-       notification.
-
-2007-01-31  Andreas Tobler  <a.tobler@schweiz.org>
-
-       * testsuite/libjava.jvmti/jvmti-interp.exp (gij_jvmti_test_one): Add
-       -shared-libgcc to the cxxflaglist for Darwin.
-
-2007-01-31  Tom Tromey  <tromey@redhat.com>
-
-       * scripts.am, Makefile.in: Rebuilt.
-       * scripts/makemake.tcl (gnu/javax/swing/text/html/parser): Build
-       as 'ordinary'.
-       (emit_ordinary_rule): New proc.
-
-2007-01-31  Keith Seitz  <keiths@redhat.com>
-
-       * testsuite/libjava.jvmti/getmethodname.h: New file.
-       * testsuite/libjava.jvmti/getmethodname.jar: New file.
-
-2007-01-31  Andrew Haley  <aph@redhat.com>
-
-       * prims.cc (_Jv_Abort): fflush (stderr).
-       * java/lang/natClassLoader.cc (_Jv_CheckABIVersion): Abort.
-
-2007-01-31  Tom Tromey  <tromey@redhat.com>
-
-       * configure, Makefile.in: Rebuilt.
-       * configure.ac (JAR): Check for -@ feature.
-       * Makefile.am (libgcj-$(gcc_version).jar): Use find -prune.
-
-2007-01-31  Tom Tromey  <tromey@redhat.com>
-
-       PR libgcj/30606:
-       * configure, include/config.h.in: Rebuilt.
-       * configure.ac: Check for magic_t in magic.h.
-       * java/net/natVMURLConnection.cc: Use HAVE_MAGIC_T.
-
-2007-01-30  Tom Tromey  <tromey@redhat.com>
-
-       * Makefile.in: Rebuilt.
-       * Makefile.am (libgcj-$(gcc_version).jar): Rewrote.
-
-2007-01-30  Andreas Tobler  <a.tobler@schweiz.org>
-
-       * testsuite/libjava.jvmti/natevents.cc (FieldModificationCB): Use a
-       cast to print it right.
-
-2007-01-29  Kaloian Doganov  <kaloian@doganov.org>
-
-       PR libgcj/30600:
-       * gnu/gcj/convert/BytesToCharsetAdaptor.java (read): Fix call to
-       'limit'.
-
-2007-01-29  Kyle Galloway  <kgallowa@redhat.com>
-
-       * include/java-interp.h:  Added _Jv_Frame class and its two
-       subclasses _Jv_InterpFrame and _Jv_NativeFrame.  Also moved
-       _Jv_FrameType from java-stack.h.
-       * include/java-stack.h: Removed _Jv_FrameType.
-       * java/lang/Thread.java: Added frame member to hold new
-       composite frame stack.
-       * java/lang/Thread.h: Regenerated.
-       * java/lang/Thread.class: Rebuilt.
-       * jni.cc (_Jv_JNIMethod::call): Push a frame onto the stack when
-       calling a JNI method.
-       * jvmti.cc (_Jv_JVMTI_GetStackTrace): New Method.
-       (_Jv_JVMTI_GetFrameCount): New method.
-       * stacktrace.cc (UnwindTraceFn): Modified to use new _Jv_Frame
-       classes.
-       * testsuite/libjava.jvmti/interp/getstacktrace.jar: New test.
-       * testsuite/libjava.jvmti/interp/natgetstacktrace.cc: New test.
-       * testsuite/libjava.jvmti/interp/getstacktrace.h: New test.
-       * testsuite/libjava.jvmti/interp/getstacktrace.jar: New test.
-       * testsuite/libjava.jvmti/interp/getstacktrace.out: Output file
-       for test. 
-
-2007-01-29  Tom Tromey  <tromey@redhat.com>
-
-       * interpret.cc (run_debug): Remove comment.
-       (STOREA): Reformat.
-       (STOREI): Likewise.
-       (STOREF): Likewise.
-       (STOREL): Likewise.
-       (STORED): Likewise.
-       (POKEI): Likewise.
-       (run_normal_debug): Likewise.
-       (run_synch_object_debug): Likewise.
-       (run_class_debug): Likewise.
-       (run_synch_class_debug): Likewise.
-       (get1s): Likewise.
-       (get1u): Likewise.
-       (get2u): Likewise.
-       (get4): Likewise.
-       (NULLARRAYCHECK): Likewise.
-       (ARRAYBOUNDSCHECK): Likewise.
-       * interpret-run.cc (insn_target) <breakpoint>: Tidy.
-
-2007-01-29  Tom Tromey  <tromey@redhat.com>
-
-       * configure, Makefile.in: Rebuilt.
-       * Makefile.am (bin_SCRIPTS): Never install scripts/jar.
-       * configure.ac (BASH_JAR): Removed conditional.
-       (JAR): Prefer the jar found by AC_CHECK_PROGS.
-
-2007-01-29  Tom Tromey  <tromey@redhat.com>
-
-       * Makefile.in: Rebuilt.
-       * Makefile.am (interpret.lo): New target.  Add -fwrap to
-       AM_CXXFLAGS.
-
-2007-01-29  Keith Seitz  <keiths@redhat.com>
-
-       * include/jvmti_md.h (_CLASSPATH_VM_JVMTI_TYPES_DEFINED):
-       Define.
-       [__GCJ_JNI_IMPL__]: Define our own JVMTI types when building
-       gcj. All jvmti object types now are defined to be their
-       corresponding java classes.
-       * jvmti.cc (_Jv_JVMTI_SuspendThread): Remove casting from
-       jthread to Thread*.
-       (_Jv_JVMTI_ResumeThread): Likewise.
-       (_Jv_JVMTI_InterruptThread): Likewise.
-       (_Jv_JVMTI_SetEventNotificationMode): Likewise.
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc
-       (jdwpClassPrepareCB): Likewise.
-       (jdwpThreadEndCB): Likewise.
-       (jdwpThreadStartCB): Likewise.
-       (jdwpVMInitCB): Likewise.
-2007-01-28  Michele Sandri  <gpointorama@gmail.com>
-
-       * gnu/java/nio/channels/natFileChannelWin32.cc
-       (lock): Implemented.
-       (unlock): Implemented.
-
-2007-01-27  Andreas Tobler  <a.tobler@schweiz.org>
-
-       PR libgcj/30513
-       * configure.host: Add forgottten sysdep_dir to sparc. Add a flag to
-       libgcj_flags to undefine 'sun' at compile time.
-       * sysdep/sparc/locks.h (read_barrier): New functions for 32 and 64 bit
-       Sparc.
-       (write_barrier): Likewise.
-
-2007-01-27  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc
-       (getAllClassMethods): Move error handling to ...
-       (throw_jvmti_error): ... here.
-       (jdwpClassPrepareCB): New function.
-       (jdwpThreadEndCB): New function.
-       (jdwpThreadStartCB): New function.
-       (jdwpVMDeathCB): New function.
-       (jdwpVMInitCB): Define and enable callbacks for
-       ClassPrepare, ThreadEnd, ThreadStart, and VMDeath.
-
-2007-01-27  Jakub Jelinek  <jakub@redhat.com>
-
-       * Makefile.am (generic_header_files): Add $(inner_nat_headers).
-       * testsuite/Makefile.am (check-dejaGNU): Depend on compile-tests.
-       (MYGCJH): New variable.
-       (compile-tests): New goal.
-       * Makefile.in: Rebuilt.
-       * testsuite/Makefile.in: Rebuilt.
-
-2007-01-26  Andrew Haley  <aph@redhat.com>
-
-       * java/lang/natClass.cc (initializeClass): Re-throw
-       SecurityExceptions.
-       * java/lang/natVMClassLoader.cc (loadClass): checkPackageAccess.
-       * java/lang/ClassLoader.java: (loadClass): Likewise.
-
-2007-01-26  Tom Tromey  <tromey@redhat.com>
-
-       * Updated headers.
-
-2007-01-25  Tom Tromey  <tromey@redhat.com>
-
-       PR libgcj/29594:
-       * gnu/gcj/convert/Convert.java (main): Correctly handle missing
-       input or output encodings.  Removed unused local variables.
-
-2007-01-25  Keith Seitz  <keiths@redhat.com>
-
-       * include/jvmti-int.h (_Jv_GetJDWP_JVMTIEnv): Declare.
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc
-       (_Jv_GetJDWP_JVMTIEnv): New function.
-       * gnu/classpath/jdwp/natVMMethod.cc (getName): Implement.
-       (getSignature): Implement.
-       (getModifiers): Implement.
-
-2007-01-25  Andrew Haley  <aph@redhat.com>
-
-       * configure, Makefile.in, include/config.h.in: Rebuilt.
-       * Makefile.am (libgcj_la_LIBADD): Removed $(LIBMAGIC).
-       * configure.ac: Don't check for libmagic.
-       * java/net/natVMURLConnection.cc (p_magic_open, p_magic_load,
-       p_magic_close, p_magic_buffer): New globals.
-       (init): Look up 'magic' functions.
-       (guessContentTypeFromBuffer): Updated.
-
-2007-01-25  Keith Seitz  <keiths@redhat.com>
-
-       * jvmti.cc (_Jv_JVMTI_GetMethodName): New function.
-       (_Jv_JVMTI_Interface): Define GetMethodName.
-       * testsuite/libjava.jvmti/getmethodname.java: New file.
-       * testsuite/libjava.jvmti/natgetmethodname.cc: New file.
-       * testsuite/libjava.jvmti/getmethodname.out: New file. 
-
-2007-01-24  Kyle Galloway  <kgallowa@redhat.com>
-
-       * libjava/testsuite/libjava.jvmti/jvmti-interp.exp: New file.
-       * libjava/testsuite/libjava.jvmti/interp: New folder.
-       * libjava/testsuite/lib/libjava.exp (exec_gij): New Method.
-
-2007-01-24  Keith Seitz  <keiths@redhat.com>
-
-       * link.cc (_Jv_Linker::wait_for_state): Add JVMTI
-       CLASS_PREPARE notification.
-
-2007-01-24  Keith Seitz  <keiths@redhat.com>
-
-       * interpret.cc: Include gnu/gcj/jvmti/Breakpoint.h,
-       gnu/gcj/jvmti/BreakpointManager.h, jvmti.h, and jvmti-int.h
-       * interpret-run.cc: Implement insn_breakpoint.
-
-2007-01-24  Keith Seitz  <keiths@redhat.com>
-
-       * prims.cc (_Jv_RunMain): Send JVMTI event notifications
-       for VM_INIT and VM_DEATH instead of the JDWP notifications.
-
-2007-01-24  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc
-       (getAllClassMethods): Implement.
-
-2007-01-24  Andrew Haley  <aph@redhat.com>
-
-       * gnu/classpath/natVMStackWalker.cc: Call InitClass everywhere.
-       (getClassContext) Add a barrier to prevent GetStackWalkerStack()
-       from being sibcalled.
-
-2007-01-24  Andrew Haley  <aph@redhat.com>
-
-       * scripts/makemake.tcl (emit_bc_rule): Set the source filename.
-       * sources.am: Rebuild.
-
-2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
-
-       * exception.cc (parse_lsda_header, PERSONALITY_FUNCTION): Replaced
-       _Unwind_Word with _uleb128_t and _Unwind_SWord with _sleb128_t.
-
-2007-01-23  H.J. Lu  <hongjiu.lu@intel.com>
-
-       PR libgcj/30550
-       * Makefile.am (ecjx_DEPENDENCIES): Add libgcj_bc.la if needed.
-       * Makefile.in: Regenerated.
-
-2007-01-22  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc
-       (getClassMethod): Implement.
-
-2007-01-22  Keith  Seitz  <keiths@redhat.com>
-
-       * java/lang/Class.h (_Jv_GetClassStatus): Declare.
-       * java/lang/natClass.cc (_Jv_GetClassStatus): New function.
-       * jvmti.cc (_Jv_JVMTI_GetClassStatus): New function.
-       (_Jv_JVMTI_Interface): Define GetClassStatus.
-
-2007-01-22  Tom Tromey  <tromey@redhat.com>
-
-       * configure: Rebuilt.
-       * configure.ac (GCJ): Reverted patch of 2006-12-20.
-
-2007-01-22  Tom Tromey  <tromey@redhat.com>
-
-       PR java/29812:
-       * testsuite/libjava.jni/pr29812.java: New file.
-       * testsuite/libjava.jni/pr29812_injar.java: New file.
-       * testsuite/libjava.jni/pr29812_injar.jar: New file.
-       * testsuite/libjava.jni/pr29812.out: New file.
-       * testsuite/libjava.jni/pr29812_injar.c: New file.
-       * testsuite/libjava.jni/pr29812_injar.h: New file.
-       * testsuite/libjava.jni/pr29812.jar: New file.
-       * testsuite/libjava.jni/pr29812.c: New file.
-       * testsuite/libjava.jni/pr29812.h: New file.
-       * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation):
-       New proc.
-       (gcj_jni_invocation_test_one): Use it.
-       (gcj_jni_pr29812): New proc.
-       (gcj_jni_run): Use it.
-       * java/lang/natRuntime.cc (_load): Push a new system frame before
-       calling JNI_OnLoad.
-       * include/jvm.h (_Jv_JNI_PopSystemFrame): Declare.
-       (_Jv_GetJNIEnvNewFrameWithLoader): Likewise.
-       * jni.cc (struct _Jv_JNI_LocalFrame) <marker>: Now unsigned char.
-       <allocated_p>: Now bool.
-       <loader>: New field.
-       (_Jv_JNI_EnsureLocalCapacity): Updated.
-       (_Jv_JNI_NewLocalRef): Likewise.
-       (_Jv_JNI_NewLocalRef): Likewise.
-       (_Jv_JNI_PopLocalFrame): Likewise.
-       (_Jv_JNI_FindClass): Likewise.
-       (_Jv_GetJNIEnvNewFrame): Likewise.
-       (_Jv_JNI_AttachCurrentThread): Likewise.
-       (_Jv_GetJNIEnvNewFrameWithLoader): New function.
-       (_Jv_GetJNIEnvNewFrame): Use it.
-       * include/jni_md.h (_CLASSPATH_JNIENV_CONTENTS): Removed 'klass'.
-
-2007-01-22  Tom Tromey  <tromey@redhat.com>
-
-       * libtool-version: Bump current to 9.
-
-2007-01-22  Andrew Haley  <aph@redhat.com>
-
-       * sysdep/alpha/locks.h (write_barrier): New.
-
-2007-01-21  Matthias Klose  <doko@debian.org>
-
-       * Makefile.am (install-exec-hook): Use transformed name.
-       * Makefile.in: Regenerate.
-
-2007-01-19  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc: Mark unused parameters
-       in methods and reformat.
-
-       * gnu/classpath/jdwp/natVMFrame.cc: Mark unused parameters with
-       MAYBE_UNUSED.
-
-2007-01-18  Keith Seitz  <keiths@redhat.com>
-
-       From Macro Trudel <mtrudel@gmx.ch>:
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc (jdwpVMInitCB):
-       Use JNICALL.
-
-2007-01-18  Marco Trudel  <mtrudel@gmx.ch>
-
-       * jni.cc (_Jv_JNI_FindClass): Initialize class.
-       * testsuite/libjava.jni/findclass2.jar: New file.
-       * testsuite/libjava.jni/findclass2.h: New file.
-       * testsuite/libjava.jni/findclass2.java: New file
-       * testsuite/libjava.jni/findclass2.c: New file.
-       * testsuite/libjava.jni/findclass2.out: New file.
-
-2007-01-18  Tom Tromey  <tromey@redhat.com>
-
-       * configure: Rebuilt.
-       * configure.ac: Use multi_basedir instead of libgcj_basedir.
-
-2007-01-18  Gary Benson  <gbenson@redhat.com>
-
-       * gnu/java/nio/natVMPipeEcos.cc:
-       Renamed from gnu/java/nio/natPipeImplEcos.cc.
-       * gnu/java/nio/natVMPipePosix.cc:
-       Renamed from gnu/java/nio/natPipeImplPosix.cc.
-       * gnu/java/nio/natVMPipeWin32.cc:
-       Renamed from gnu/java/nio/natPipeImplWin32.cc.
-       * gnu/java/nio/natVMSelectorEcos.cc:
-       Renamed from gnu/java/nio/natSelectorImplEcos.cc.
-       * gnu/java/nio/natVMSelectorPosix.cc:
-       Renamed from gnu/java/nio/natSelectorImplPosix.cc.
-       * gnu/java/nio/natVMSelectorWin32.cc:
-       Renamed from gnu/java/nio/natSelectorImplWin32.cc.
-       * java/io/natVMObjectInputStream.cc:
-       Renamed from java/io/natObjectInputStream.cc.
-       * java/lang/natVMDouble.cc:
-       Renamed from java/lang/natDouble.cc.
-       * java/lang/natVMFloat.cc:
-       Renamed from java/lang/natFloat.cc.     
-       * Makefile.am, configure.ac: Reflect the above.
-       * Makefile.in, configure: Rebuilt.
-
-2007-01-17  Andrew Haley  <aph@redhat.com>
-
-       * Makefile.in: Rebuilt.
-       * Makefile.am (ecjx_LDFLAGS): Pass -fbootclasspath.
-
-2007-01-17  Keith Seitz  <keiths@redhat.com>
-
-       * java/lang/natThread.cc (finish_): Add JVMTI ThreadEnd notification.
-       (_Jv_NotifyThreadStart): Add JVMTI ThreadStart notification.
-
-2007-01-16  Jack Howarth  <howarth@bromo.med.uc.edu>
-
-       * configure.ac: Use multi.m4 from aclocal rather than custom
-       code.  Use multi_basedir instead libgcj_basedir.  Test for
-       /proc/self/exe when not cross-compiling.
-       * aclocal.m4: Regenerate.
-       * configure: Regenerate.
-       * Makefile.in: Regenerate.
-
-2007-01-17  Gary Benson  <gbenson@redhat.com>
-
-       * java/nio/natVMDirectByteBufferImpl.cc:
-       Renamed from java/nio/natDirectByteBufferImpl.cc.
-       * Makefile.am: Reflect the above.
-       * Makefile.in: Rebuilt.
-       
-2007-01-17  Marco Trudel  <mtrudel@gmx.ch>
-
-       * jvmti.cc (_Jv_JVMTI_GetAllThreads): Now static.  Use JNICALL.
-       Fixed indentation.  Removed unused variable.
-
-2007-01-16  Tom Tromey  <tromey@redhat.com>
-
-       * java/lang/natThread.cc (finalize_native): Remove cast.
-       (_Jv_GetCurrentJNIEnv): Likewise.
-       * include/jvm.h (struct natThread) <jni_env>: Declare as
-       _Jv_JNIEnv*.
-
-2007-01-16  Keith Seitz  <keiths@redhat.com>
-
-       * testsuite/libjava.jvmti/natevents.cc (FieldModificationCB): Use
-       %#llx instead of %d for new_value.
-       * testsuite/libjava.jvmti/events.out: Update expected output.
-       * testsuite/libjava.jvmti/events.jar: Regenerate.
-
-2007-01-16  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc (DEFINE_CALLBACK):
-       New macro.
-       (ENABLE_EVENT): New macro.
-       (initialize): Define and enable JVMTI VM_INIT callback.
-       (jdwpVMInitCB): New function.
-
-2007-01-16  Kyle Galloway  <kgallowa@redhat.com>
-
-       * jvmti.cc (_Jv_JVMTI_GetAllThreads): New function.
-       * testsuite/libjava.jvmti/getallthreads.java: New test.
-       * testsuite/libjava.jvmti/natgetallthreads.cc: Ditto.
-       * testsuite/libjava.jvmti/getallthreads.out: Ditto.
-       * testsuite/libjava.jvmti/getallthreads.h: Ditto.
-       * testsuite/libjava.jvmti/getallthreads.jar: Ditto. 
-
-2007-01-15  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/natVMVirtualMachine.cc (suspendThread): Use
-       java.lang.StringBuilder instead of java.lang.StringBuffer.
-       (resumeThread): Likewise.
-
-2007-01-15  Gary Benson  <gbenson@redhat.com>
-
-       * java/nio/MappedByteBuffer.java: Removed.
-       * sources.am, Makefile.in: Rebuilt.
-
-2007-01-15  Gary Benson  <gbenson@redhat.com>
-
-       * java/net/URLClassLoader.java: Removed.
-       * gnu/java/net/loader/Load_gcjlib.java: New file.
-       * gnu/gcj/runtime/BootClassLoader.java: Ensure core
-       URL handler is present in static executables.
-       * sources.am, Makefile.in: Rebuilt.
-
-2007-01-14  H.J. Lu  <hongjiu.lu@intel.com>
-
-       * Makefile.am (libgcj_la_LDFLAGS): Add
-       $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS).
-       (libgcj_tools_la_LDFLAGS): Likewise.
-       (libgcj_bc_la_LDFLAGS): Likewise.
-       * Makefile.in: Regenerated.
-
-       * configure.ac: Use ACX_PROG_LD_GNU_SYMBOLIC.  Set
-       LIBGCJ_LD_SYMBOLIC_FUNCTIONS to $SYMBOLIC_LDFLAGS.  Set
-       libgcj_ld_symbolic to $SYMBOLIC_LDFLAGS if it isn't set.
-       Substitute LIBGCJ_LD_SYMBOLIC_FUNCTIONS.
-       * configure: Regenerated.
-       * aclocal.m4: Likewise.
-       * gcj/Makefile.in: Likewise.
-       * include/Makefile.in: Likewise.
-       * testsuite/Makefile.in: Likewise.
-
-2007-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
-
-       * sysdep/sh/locks.h (read_barrier): New.
-       (write_barrier): Likewise.
-
-2007-01-12  Andrew Haley  <aph@redhat.com>
-
-       * include/i386-signal.h: Rewrite to use rt_sigaction.
-
-2007-01-11  Andrew Haley  <aph@redhat.com>
-
-       * prims.cc (jdwpOptions) Fix deprecated cast from char[] constant
-       to char*.
-       * include/x86_64-signal.h (HANDLE_DIVIDE_OVERFLOW): Rewrite to fix
-       aliasing violation.
-
-2007-01-10  Tom Tromey  <tromey@redhat.com>
-
-       * gnu/gcj/xlib/*.h: New files.
-       * gnu/awt/xlib/*.h: Likewise.
-       * classpath/lib/gnu/gcj/xlib: New class files.
-       * classpath/lib/gnu/awt/xlib: Likewise.
-
-2007-01-10  Tom Tromey  <tromey@redhat.com>
-
-       * HACKING: Various updates.
-
-2007-01-10  Tom Tromey  <tromey@redhat.com>
-
-       * java/lang/natDouble.cc (toString): Added parens.
-       * gnu/gcj/io/shs.h (PROTO): Define.
-       * link.cc (resolve_pool_entry): Added missing braces.
-
-2007-01-10  H.J. Lu  <hongjiu.lu@intel.com>
-
-       PR libgcj/30424
-       * sysdep/ia64/locks.h (read_barrier): New.
-       (write_barrier): New.
-
-2007-01-10  Gary Benson  <gbenson@redhat.com>
-
-       * java/net/URL.java: Removed.
-       * sources.am, Makefile.in: Rebuilt.
-
-2007-01-10  Matthias Klose  <doko@debian.org>
-
-       * Makefile.am (install-exec-hook): Support $(DESTDIR).
-       * Makefile.in: Regenerated.
-
-2007-01-05  Tom Tromey  <tromey@redhat.com>
-
-       * testsuite/libjava.loader/loader.exp (gcj_loader_run): Find
-       dummy.class in srcdir.
-
-2007-01-03  Tom Tromey  <tromey@redhat.com>
-
-       * testsuite/libjava.cni/cni.exp (gcj_cni_compile_cxx_to_o): Add -I
-       for srcdir.
-
-2007-01-03  Tom Tromey  <tromey@redhat.com>
-
-       * testsuite/*: Added many .jar and .h files.
-       * testsuite/libjava.special/special.exp
-       (gcj_special_try_compiler): New proc.
-       * testsuite/libjava.loader/loader.exp (gcj_loader_run): Don't
-       bytecompile source.  Search for .jar files.
-       (gcj_loader_test_one): Don't look for MyLoader.java.
-       * testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_test_one): Don't
-       bytecompile sources or build headers.
-       (gcj_jvmti_run): Look for .jar files.
-       * testsuite/libjava.jni/jni.exp (gcj_jni_run): Compile .jar
-       files.
-       (gcj_jni_test_one): Don't bytecompile sources or build headers.
-       Set classpath when invoking gij.
-       (gcj_jni_invocation_test_one): Likewise.
-       * testsuite/libjava.cni/cni.exp (gcj_cni_test_one): Don't build
-       headers or bytecompile sources.
-       (gcj_cni_run): Use .jar files, not .java files.
-       * testsuite/libjava.lang/lang.exp: Compile .jar files.
-
-2007-01-02  Tom Tromey  <tromey@redhat.com>
-
-       * configure: Rebuilt.
-       * configure.ac: Check for gjar.
-
-2007-01-02  Tom Tromey  <tromey@redhat.com>
-
-       * testsuite/libjava.jacks/jacks.exp: Removed.
-       * testsuite/libjava.jacks/jacks.xfail: Removed.
-
diff --git a/libjava/ChangeLog-2007 b/libjava/ChangeLog-2007
new file mode 100644 (file)
index 0000000..41b7a10
--- /dev/null
@@ -0,0 +1,2658 @@
+2007-12-22  David Daney  <ddaney@avtrex.com>
+
+       * scripts/makemake.tcl (emit_bc_rule): Use $(LIBGCJ_BC_FLAGS)
+       instead of -findirect-dispatch -fno-indirect-classes.
+       * configure.ac (libgcj-bc): New AC_ARG_ENABLE.
+       (SUPPRESS_LIBGCJ_BC): New AM_CONDITIONAL.
+       * Makefile.am (LIBGCJ_BC_FLAGS): New variable.
+       * Makefile.in: Regenerate.
+       * include/Makefile.in: Same.
+       * testsuite/Makefile.in: Same.
+       * configure: Same.
+       * gcj/Makefile.in: Same.
+       * sources.am: Same.
+       
+2007-12-17  Jakub Jelinek  <jakub@redhat.com>
+
+       * testsuite/Makefile.am (compile-tests): Build
+       libjava.jvmti/interp/*.h with -jni rather than -cni.
+       * testsuite/Makefile.in: Rebuilt.
+
+2007-12-08  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * configure.host: Add bits for i?86-*-darwin9 and x86_64-*-darwin9.
+       * configure.ac: Add darwin-signal.h to x86_64-*-darwin9 and
+       i?86-*darwin9.
+       * configure.in: Regenerate.
+       * darwin.cc: Add definitions for Darwin specific functions for 64-bit.
+       (darwin_java_register_dyld_add_image_hook): Use this specific
+       functions.
+       * Makefile.am (gij_LDFLAGS): Add extra_gij_ldflags for Darwin9.
+       * Makefile.in: Regenerate.
+       * include/Makefile.in: Likewise.
+       * gcj/Makefile.in: Likewise.
+       * testsuite/Makefile.in: Likewise.
+       * testsuite/lib/libjava.exp (libjava_arguments): Add allow_stack_execute
+       for *-*-darwin9*.
+
+2007-12-06  David Daney  <ddaney@avtrex.com>
+
+       * interpret.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE throughout.
+       (ncode_closure, ffi_closure_fun): Define versions for
+       non-FFI_NATIVE_RAW_API case.
+       * include/java-interp.h (INTERP_FFI_RAW_TYPE): Define and use to
+       replace ffi_raw throughout.
+       * jni.cc, interpret-run.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE
+       throughout.
+
+2007-12-06  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation): Make
+       the testsuite multilib aware for Darwin.
+
+2007-12-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+       * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h: Regenerate.
+       * gnu/java/awt/peer/gtk/GtkWindowPeer.h: Likewise.
+       * java/awt/Component.h: Likewise.
+       * java/awt/Container.h: Likewise.
+
+2007-11-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure.ac: Don't run config-ml.in directly.
+       (multilib_arg): New.
+       * configure: Regenerated.
+
+2007-10-22  David Daney  <ddaney@avtrex.com>
+
+       * include/jvm.h (_Jv_SetGCFreeSpaceDivisor): Declare new function.
+       * boehm.cc (_Jv_SetGCFreeSpaceDivisor): Define it.
+
+2007-10-18  David Daney  <ddaney@avtrex.com>
+
+       * classpath/lib/gnu/java/locale/LocaleData.class: Regenerate
+       * classpath/lib/gnu/javax/sound/sampled/gstreamer: Add generated
+       files.
+       * gnu/javax/sound/sampled/gstreamer: Add generated files.
+       
+2007-10-15  Maciej W. Rozycki  <macro@linux-mips.org>
+
+       * configure: Regenerate following changes to ../config/tls.m4.
+
+2007-09-17  Tom Tromey  <tromey@redhat.com>
+
+       * defineclass.cc (MAJOR_1_6): New define.
+       (MINOR_1_6): Likewise.
+       (_Jv_ClassReader::parse): Handle 1.6 bytecode.
+
+2007-09-12  David Daney  <ddaney@avtrex.com>
+
+       * configure.host: Enable interpreter for mips64.  Enable hash
+       synchronization for all mips*-*-linux* targets.
+       * sysdep/mips/locks.h (compare_and_swap, compare_and_swap_release) Use
+       __sync_bool_compare_and_swap instead of in-line asm.
+       (release_set, read_barrier, write_barrier): Use __sync_synchronize
+       instead of in-line asm.
+
+2007-09-09  Andreas Tobler  <a.tobler@schweiz.org>
+
+       PR libgcj/33326
+       * testsuite/lib/libjava.exp (libjava_arguments): Append the test spec
+       only for linux targets.
+
+2007-09-09  Andrew Haley  <aph@redhat.com>
+
+       * interpret-run.cc (invokevirtual_resolved): Nullcheck object on
+       TOS.
+
+2007-09-06  Tom Tromey  <tromey@redhat.com>
+
+       * testsuite/libjava.lang/StackTrace2.jar: Rebuilt.
+       * testsuite/libjava.lang/StackTrace2.java (checkLine): Print file
+       name.
+
+2007-09-06  Roman Zippel  <zippel@linux-m68k.org>
+
+       * sysdep/m68k/locks.h: New file.
+       * configure.host: Set sysdeps_dir and libgcj_interpreter for m68k.
+       * configure.ac: Set SIGNAL_HANDLER for m68*-*-linux*.
+       * configure: Regenerate.
+
+2007-09-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+
+       * configure.host(gnu*): Set use_libgcj_bc to yes.
+
+2007-09-04  Matthias Klose  <doko@ubuntu.com>
+
+       * configure.ac: Do not pass --with-native-libdir to classpath.
+       * configure: Regenerate.
+
+2007-09-04  Matthias Klose  <doko@ubuntu.com>
+
+       PR libgcj/33278
+       * configure.ac: Robustify extraction of gcj version.
+       * configure: Regenerate.
+
+2007-09-04  Andrew Haley  <aph@redhat.com>
+
+       PR java/27908
+       * testsuite/libjava.lang/PR27908.java
+       ({run1,run2,run3}.isRunning): New Method.
+       (main): Fix race condition.
+
+2007-08-29  Andrew Haley  <aph@redhat.com>
+
+       * gnu/classpath/natVMStackWalker.cc (VMStackWalker::getCallingClass):
+       Make sure we're not sibcalled.
+       (GET_CALLING_CLASS): Define for ARM EABI.
+
+2007-08-22  Andrew Haley  <aph@redhat.com>
+
+       * configure.host (BACKTRACESPEC): Add arm*-linux*.
+
+2007-08-22  Andrew Haley  <aph@redhat.com>
+
+       * configure.ac (LIBSTDCXXSPEC): New.
+       * configure.host: Add arm*-linux* to pthread test.
+       * configure.ac (LIBGCJTESTSPEC): Add path to libstdc++ for ARM
+       EABI.
+       * testsuite/libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use
+       -fexceptions for ARM EABI.
+       * testsuite/lib/libjava.exp (libjava_arguments): Add libgcj-test.spec.
+       (libjava_invoke): Log the invocation.
+
+2007-08-15  Andrew Haley  <aph@redhat.com>
+
+       * configure.ac (extra_ldflags): Define.
+       * Makefile.am: Use extra_ldflags for all executables.
+
+2007-08-14  Andrew Haley  <aph@redhat.com>
+
+       * sysdep/arm/backtrace.h: Remove stubs for _Unwind_GetIPInfo,
+       _Unwind_GetRegionStart, and _Unwind_Backtrace.
+
+2007-07-27  Andrew Haley  <aph@redhat.com>
+
+       * gnu/classpath/natVMStackWalker.cc (GET_CALLING_CLASS): Stub for
+       ARM EABI.
+       * exception.cc (get_exception_header_from_ue): New.
+       (get_ttype_entry): ARM EABI version.
+       (PERSONALITY_FUNCTION): Add ARM EABI code.
+       * sysdep/arm/backtrace.h: New file.
+       * stacktrace.cc (_URC_NORMAL_STOP): New.
+       * configure.ac (extra_ldflags_libjava): Add libsupc++.la for ARM
+       EABI.
+       * configure.host (BACKTRACESPEC): Add arm/backtrace.h.
+
+2007-08-31  Matthias Klose  <doko@ubuntu.com>
+
+       * classpath/lib/java/util/EnumSet*.class: Regenerate
+
+2007-08-30  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * gij.cc (version): Update Copyright year.
+
+2007-08-16  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+
+       * configure.host (gnu*): Set use_libgcj_bc to yes.
+
+2007-08-15  Tom Tromey  <tromey@redhat.com>
+
+       * java/lang/Class.java (internalGetFields): Use LinkedHashSet.
+       * classpath/lib/java/lang/Class.class: Rebuilt.
+
+2007-08-15  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+
+       * java/lang/natPosixProcess.cc (sigchld_handler) [!SA_SIGINFO]: Remove
+       'si' and 'third' parameters.  Disable calling
+       pmi->old_sigaction.sa_sigaction.
+       (java::lang::PosixProcess*ProcessManager::init) [!SA_SIGINFO]: Set
+       sa.sa_handler instead of sa.sa_sigaction, don't set SA_SIGINFO flag.
+
+2007-08-09  Andrew Haley  <aph@redhat.com>
+
+       * testsuite/lib/libjava.exp (libjava_invoke): Log the invocation.
+
+2007-08-08  Samuel Thibault  <samuel.thibault@ens-lyon.org>
+
+       * java/net/natVMInetAddressPosix.cc
+       (java::net::VMInetAddress::getLocalHostname) [!MAXHOSTNAMELEN]:
+       Allocate buffer dynamically.
+
+2007-08-04  Alfred M. Szmidt  <ams@gnu.org>
+
+       * java/io/natFilePosix.cc (init_native) [!MAXPATHLEN]: Define to 0.
+       * java/io/File.java (createTempFile): Don't truncate if the system
+       doesn't have a limit on the length of a file name.
+       * classpath/lib/java/io/File.class: Regenerate.
+
+2007-08-04  Matthias Klose  <doko@ubuntu.com>
+
+       Import GNU Classpath (libgcj-import-20070727).
+
+       * Regenerate class and header files.
+       * Regenerate auto* files.
+
+       * include/jvm.h:
+       * jni-libjvm.cc (Jv_JNI_InvokeFunctions): Rename type.
+       * jni.cc (_Jv_JNIFunctions, _Jv_JNI_InvokeFunctions): Likewise.
+       * jni.cc (_Jv_JNI_CallAnyMethodA, _Jv_JNI_CallAnyVoidMethodA,
+       _Jv_JNI_CallMethodA, _Jv_JNI_CallVoidMethodA,
+       _Jv_JNI_CallStaticMethodA, _Jv_JNI_CallStaticVoidMethodA,
+       _Jv_JNI_NewObjectA, _Jv_JNI_SetPrimitiveArrayRegion): Constify
+       jvalue parameter.
+       * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Likewise.
+
+       * java/lang/VMFloat.java (toString, parseFloat): New.
+
+       * gnu/awt/xlib/XToolkit.java (setAlwaysOnTop, isModalityTypeSupported,
+       isModalExclusionTypeSupported): New (stub only).
+       * gnu/awt/xlib/XCanvasPeer.java (requestFocus): Likewise.
+       * gnu/awt/xlib/XFramePeer.java (updateMinimumSize, updateIconImages,
+       updateFocusableWindowState, setModalBlocked, getBoundsPrivate,
+       setAlwaysOnTop): Likewise.
+       * gnu/awt/xlib/XFontPeer.java (canDisplay): Update signature.
+
+       * scripts/makemake.tcl: Ignore gnu/javax/sound/sampled/gstreamer,
+       ignore javax.sound.sampled.spi.MixerProvider, ignore .in files.
+
+       * HACKING: Mention --enable-gstreamer-peer, removal of generated files.
+
+2007-07-31  David Daney  <ddaney@avtrex.com>
+
+       * HACKING: Document regenerating configure and aclocal.m4.
+
+2007-07-31  David Daney  <ddaney@avtrex.com>
+
+       * configure.ac (INTERPRETER): New AM_CONDITIONAL.
+       * scripts/makemake.tcl (package_map): Mark jdwp and jvmti packages
+       as being for interpreter only.  Place interpreter related files in
+       'if INTERPRETER' block.
+       (interpreter_package_files): New list.
+       (interpreter_header_vars): Ditto.
+       (emit_package_rule_to_list): Renamed from emit_package_rule with
+       new target list parameter.
+       (emit_package_rule): Rewritten to call emit_package_rule_to_list.
+       (emit_interpreter_rule): New function.
+       (emit_source_var): Place interpreter related files in
+       interpreter_header_vars.
+       * Makefile.am (ACLOCAL_AMFLAGS): Add -I libltdl.
+       (libgcj_interpret_source_files): New variable.
+       (libgcj_la_SOURCES): Move jvmti.cc and  interpret.cc to
+       libgcj_interpret_source_files and include
+       libgcj_interpret_source_files.
+       (nat_jdwp_source_files): New variable.
+       (nat_jvmti_source_files): Ditto.
+       (nat_source_files): Move jdwp and jvmti related files to
+       nat_jdwp_source_files and nat_jvmti_source_files and include
+       nat_jdwp_source_files and nat_jvmti_source_files.
+       * Makefile.in: Regenerate.
+       * include/Makefile.in: Ditto.
+       * testsuite/Makefile.in: Ditto.
+       * gcj/Makefile.in: Ditto.
+       * sources.am: Ditto.
+       * configure: Ditto.
+       * include/config.h.in: Ditto.
+       * interpret.cc: Remove #ifdef INTERPRETER block.
+       * stacktrace.cc (UnwindTraceFn): Do not handle proxy frames if
+       interpreter disabled.
+       * include/java-interp.h (_Jv_FrameType): Move outside of
+       #ifdef INTERPRETER block.
+       * include/execution.h (_Jv_IndirectCompiledEngine::do_get_closure_list,
+       _Jv_InterpreterEngine, _Jv_soleInterpreterEngine): Place in
+       #ifdef INTERPRETER block.
+       * jni.cc (jvmti.h, jvmti-int.h):  Only include if INTERPRETER is
+       defined.
+       (_Jv_JNI_PopSystemFrame, _Jv_JNI_GetEnv): Only do jvmti processing
+       if INTERPRETER is defined.
+       * prims.cc (jvmti.h, jvmti-int.h, Jdwp.h, VMVirtualMachine.h):  Only
+       include if INTERPRETER is defined.
+       (defaultJdwpOptions, jdwpOptions, jvmti_agent_onload_func,
+       jvmti_agent_onunload_func, jvmti_agentonload, jvmti_agentonunload,
+       jvmti_agent_opts, load_jvmti_agent): Only define if INTERPRETER is
+       defined.
+       (parse_x_arg): Only process 'runjdwp:' if INTERPRETER is defined.
+       (parse_init_args): Only process jvmti related options if
+       INTERPRETER is defined.
+       (_Jv_CreateJavaVM): Only call _Jv_JVMTI_Init if INTERPRETER is
+       defined.
+       (_Jv_RunMain): Only do jvmti and jdwp processing if INTERPRETER is
+       defined.
+       * link.cc (jvmti.h, jvmti-int.h):  Only include if INTERPRETER is
+       defined.
+       (_Jv_ThrowNoClassDefFoundError, _Jv_Linker::create_error_method):
+       Define if if INTERPRETER is not defined.
+       (_Jv_Linker::wait_for_state): Only do jvmti proccessing if
+       INTERPRETER is defined.
+       * boehm.cc (closure_list_pointer, finalize_closure_list,
+       _Jv_ClosureListFinalizer): Only define if INTERPRETER is
+       defined.
+       * java/lang/natThread.cc (jvmti.h, jvmti-int.h):  Only include if
+       INTERPRETER is defined.
+       (finish_, _Jv_NotifyThreadStart): Only do jvmti proccessing if
+       INTERPRETER is defined.
+       * java/lang/Class.h (_Jv_InterpreterEngine): Move declaration
+       and friend declaration inside #ifdef INTERPRETER block.
+       * java/lang/natClass.cc (_Jv_ClosureList::releaseClosures,
+       _Jv_ClosureList::registerClosure, _Jv_GetInterpClassSourceFile):
+       Only define if INTERPRETER is defined.
+       * java/lang/reflect/natVMProxy.cc (UnsupportedOperationException.h):
+       Include.
+       (generateProxyClass): Throw UnsupportedOperationException unless
+       INTERPRETER is defined.
+
+2007-07-29  Matthias Klose  <doko@ubuntu.com>
+
+       * HACKING: Document regenerating configure.
+
+2007-07-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR libgcj/32929
+       * aclocal.m4: Regenerated.
+       * configure: Likewise.
+
+2007-07-28  Matthias Klose  <doko@ubuntu.com>
+
+       * configure.ac: Encode the libgcj soversion in dbexecdir,
+       pass --with-native-libdir to classpath configure.
+       * configure: Regenerate.
+
+2007-07-28  Matthias Klose  <doko@ubuntu.com>
+
+       * classpath/jvmti.h: Remove.
+
+2007-07-27  Tom Tromey  <tromey@redhat.com>
+
+       * Rebuild .class files with new ecj.
+
+2007-07-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       * configure.ac (mips-sgi-irix6*): Override SYSTEMSPEC.
+       * configure: Regenerate.
+
+2007-07-16  Rask Ingemann Lambertsen  <rask@sygehus.dk>
+
+       PR target/32340
+       * configure.host (arm*-elf | strongarm*-elf | xscale*-elf): Use the
+       new sysdeps/arm directory.
+
+2007-07-15  Tom Tromey  <tromey@redhat.com>
+
+       * java/io/File.java: Implement Comparable<File>.
+       (compareTo): Removed.
+       * java/io/File.h: Rebuilt.
+       * classpath/lib/java/io/File.class: Rebuilt.
+
+2007-07-14  Tom Tromey  <tromey@redhat.com>
+
+       * Rebuilt .class files.
+
+2007-07-15  Andrew Haley  <aph@redhat.com>
+
+       * configure.host: 
+       arm*-linux-gnu -> arm*-linux*.
+
+2007-07-14  Krister Walfridsson  <cato@df.lth.se>
+
+       * gnu/gcj/util/natGCInfo.cc: Use HAVE_STRERROR_R.
+       * configure.ac: Remove check for strerror, add check for strerror_r.
+       * configure: Regenerate.
+       * include/config.h.in: Regenerate.
+
+2007-07-13  Andrew Haley  <aph@redhat.com>
+
+       * libgcj.ver: Add __gcj_personality_sj0.
+
+       * testsuite/libjava.jvmti/jvmti-interp.exp: Likewise.
+       * testsuite/libjava.jni/jni.exp: Use -fdollars-in-identifiers.
+       * testsuite/libjava.jni/cni.exp: Use -fdollars-in-identifiers.
+       * testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_compile_cxx_to_o): Likewise.
+
+       * gnu/classpath/natVMStackWalker.cc (getCallingClassLoader): Check
+       klass is non-null.
+       * java/lang/reflect/natField.cc (getAddr): Call
+       _Jv_StackTrace::GetCallingClass only if CALLER is non-null.
+       * java/lang/reflect/natVMProxy.cc (run_proxy): Use
+       _Jv_getFieldInternal to get field proxyClass.m.
+       (_Jv_getFieldInternal): New function.
+
+2007-07-11  Andrew Haley  <aph@redhat.com>
+
+       * configure.host (arm*-linux-gnu): New.
+       * sysdep/arm/locks.h: New.
+
+2007-07-13  Roger Sayle  <roger@eyesopen.com>
+
+       * java/lang/natPosixProcess.cc: Include <sys/time.h> before
+       <sys/resource.h> to restore bootstrap on powerpc-apple-darwin7.9.0.
+
+2007-07-12  Matthias Klose  <doko@ubuntu.com>
+
+       * gnu/classpath/jdwp/util/MethodResult.h,
+       gnu/classpath/jdwp/value/ObjectValue.h: Regenerate.
+
+2007-07-11  Keith Seitz  <keiths@redhat.com>
+
+       * interpret.cc (get_local_var_table) [DIRECT_THREADED]: Make sure the
+       method is compiled.
+       * testsuite/libjava.jvmti/interp/getlocalvartable.out: Revise
+       for compiled methods.
+
+2007-07-10  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       PR libgcj/32651
+       * configure.host (mips-sgi-irix6*): Set sysdeps_dir.
+       Disable interpreter.
+       
+2007-07-05  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * java/lang/natPosixProcess.cc: Reorder includes to fix compilation
+       on hppa2.0w-hp-hpux11.11.
+       Remove include of <gcj/cni.h>.
+
+2007-07-05  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * aclocal.m4: Regenerated.
+
+2007-07-03  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * java/lang/Class.h: Remove redundant 'class java::*::* declarations.
+
+2007-07-02  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+       PR libgcj/30513
+       * configure.host (i[3-6]86-*): Undef sun.
+
+2007-06-28  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * testsuite/libjava.jvmti/jvmti-interp.exp (gij_jvmti_test_one):
+       Fix a typo.
+
+2007-06-28  Jan Nijtmans  <nijtmans@users.sourceforge.net>
+
+       PR libgcj/30999:
+       * jni_md.h: Add the possibility to compile jni code with.
+       -fvisibility=hidden. This causes all symbols to be hidden
+       except the JNI functions which need to be exported.
+
+2007-06-28  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * testsuite/libjava.jvmti/jvmti-interp.exp (gij_jvmti_test_one): Pass
+       the cxxldlibflags to exec_gij to have the right libstdc++ invoked.
+
+2007-07-21  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/VMVirtualMachine.h: Regenerate.
+
+2007-07-20  Keith Seitz  <keiths@redhat.com>
+
+       * classpath/lib/gnu/classpath/jdwp/value/StringValue.class:
+       Regenerate.
+
+2007-07-20  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/VMVirtualMachine.java (executeMethod):
+       Update from reference implementation.
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc (executeMethod):
+       Update parameter list to match new VMVirtualMachine interface.
+       * classpath/lib/gnu/classpath/jdwp/processor/ClassTypeCommandSet.class:
+       Regenerate.
+       * classpath/lib/gnu/classpath/jdwp/processor/
+       ObjectReferenceCommandSet.class: Regenerate.
+       * classpath/lib/gnu/classpath/jdwp/value/ObjectValue.class: Regenerate.
+       * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class: Regenerate.
+       * classpath/lib/gnu/classpath/jdwp/util/MethodResult.class: Regenerate.
+
+2007-06-18  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/gcj/jvmti/Breakpoint.java: Make abstract.
+       (method): Change from private to protected.
+       (location): Likewise.
+       (Breakpoint): Change argument list to take only integer type.
+       Add default constructor.
+       (initialize_native): Renamed to ...
+       (_save_insn): ... this to make function more explicit.
+       (execute): New method.
+       * gnu/gcj/jvmti/Breakpoint.h: Regenerate.
+       * gnu/gcj/jvmti/natBreakpoint.cc (initialize_native): Rename to...
+       (_save_insn): ... this.
+       (install): Save the original instruction.
+       * gnu/gcj/jvmti/NormalBreakpoint.java: New file.
+       * gnu/gcj/jvmti/NormalBreakpoint.h: New file.
+       * gnu/gcj/jvmti/natNormalBreakpoint.cc: New file.
+       * gnu/gcj/jvmti/BreakpointManager.java (newBreakpoint):
+       Instantiate a NormalBreakpoint instead of Breakpoint.
+       * interpret-run.cc (insn_breakpoint): Remove breakpoint actions
+       and call Breakpoint.execute to do them.
+       * classpath/lib/gnu/gcj/jvmti/Breakpoint.class: Regenerate.
+       * classpath/lib/gnu/gcj/jvmti/BreakpointManager.class: Likewise.
+       * classpath/lib/gnu/gcj/jvmti/NormalBreakpoint.class: New file.
+       * sources.am: Regenerate.
+       * Makefile.am (nat_source_files): Add natNormalBreakpoint.cc.
+       * Makefile.in: Regenerated.
+
+2007-06-14  Keith Seitz  <keiths@redhat.com>
+
+       * include/java-interp.h (_Jv_LocalVarTableEntry): Add union
+       for bytecode_pc and direct-threaded pc.
+       Add field descriptions inline.
+       * defineclass.cc (read_one_code_attribute): Change from
+       bytecode_start_pc to bytecode_pc.
+       Remove unused variable "len".
+       * interpret.cc (compile): Remap the variable table, too.
+       (get_local_var_table) [DIRECT_THREADED]: Use insn_index on the
+       start location to map from pc_t to code index.
+
+2007-06-09  Keith Seitz  <keiths@redhat.com>
+
+       * testsuite/libjava.jvmti/dummyagent.c (Agent_OnLoad):
+       Add missing return value.
+
+2007-06-03  Matthias Klose  <doko@ubuntu.com>
+
+       * java/io/natFileWin32.cc (setFilePermissions): New (stub only).
+       _access: Handle EXEC query, stub only.
+
+2007-06-03  Matthias Klose  <doko@ubuntu.com>
+
+       Merged from classpath:
+       * gnu/java/nio/SelectorProviderImpl.java: Whitespace merge.
+       * java/lang/System.java(inheritedChannel): New.
+       * java/lang/Character.java: Remove stray`;'.
+       * java/net/MulticastSocket.java: Merged.
+       * java/text/DateFormatSymbols.java(getInstance): New, comment updates.
+       * java/text/Collator.java(getInstance): Merged.
+       * java/util/Calendar.java: New attributes ALL_STYLES, SHORT, LONG.
+       getDisplayName, getDisplayNames: New.
+       * java/util/logging/Logger.java: Merged.
+       * Regenerate .class and .h files.
+
+2007-06-03  Matthias Klose  <doko@ubuntu.com>
+
+       * java/io/File.java: Merge with classpath-0.95, new method
+       setFilePermissions, new attribute EXEC.
+       * java/io/natFilePosix.cc (setFilePermissions): New.
+       _access: Handle EXEC query.
+       * classpath/lib/java/io/File.class, java/io/File.h: Regenerate.
+
+2007-06-03  Matthias Klose  <doko@ubuntu.com>
+
+       Imported GNU Classpath 0.95.
+
+       * classpath/Makefile.in,
+       classpath/native/jni/midi-dssi/Makefile.in,
+       classpath/native/jni/classpath/Makefile.in,
+       classpath/native/jni/Makefile.in,
+       classpath/native/jni/gconf-peer/Makefile.in,
+       classpath/native/jni/java-io/Makefile.in,
+       classpath/native/jni/native-lib/Makefile.in,
+       classpath/native/jni/java-util/Makefile.in,
+       classpath/native/jni/midi-alsa/Makefile.in,
+       classpath/native/jni/java-lang/Makefile.in,
+       classpath/native/jni/java-nio/Makefile.in,
+       classpath/native/jni/java-net/Makefile.in,
+       classpath/native/jni/xmlj/Makefile.in,
+       classpath/native/jni/qt-peer/Makefile.in,
+       classpath/native/jni/gtk-peer/Makefile.in,
+       classpath/native/Makefile.in, classpath/native/jawt/Makefile.in,
+       classpath/native/fdlibm/Makefile.in,
+       classpath/native/plugin/Makefile.in,
+       classpath/resource/Makefile.in, classpath/scripts/Makefile.in,
+       classpath/tools/Makefile.in, classpath/doc/Makefile.in,
+       classpath/doc/api/Makefile.in, classpath/lib/Makefile.in,
+       classpath/external/Makefile.in, classpath/external/jsr166/Makefile.in,
+       classpath/external/sax/Makefile.in,
+       classpath/external/w3c_dom/Makefile.in,
+       classpath/external/relaxngDatatype/Makefile.in,
+       classpath/include/Makefile.in,
+       classpath/examples/Makefile.in: Regenerate.
+       * classpath/config.guess, classpath/config.sub,
+       classpath/ltmain.sh : Update.
+       * classpath/configure, classpath/depcomp, classpath/missing,
+       classpath/aclocal.m4, classpath/install-sh: Regenerate.
+
+       * gnu/classpath/Configuration.java (CLASSPATH_VERSION): Now 0.95.
+       * sources.am: Regenerate.
+       * Makefile.in: Regenerate.
+
+       * Update the .class files and generated CNI header files, add new
+       .class and generated CNI header files.
+       * Remove generated files for removed java source files:
+       classpath/gnu/java/net/BASE64.java,
+       classpath/gnu/java/security/util/Base64.java,
+       classpath/gnu/java/awt/peer/gtk/GThreadMutex.java,
+       classpath/gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java,
+       classpath/gnu/java/awt/font/autofit/Scaler.java,
+       classpath/gnu/classpath/jdwp/util/Value.java,
+       classpath/gnu/javax/net/ssl/Base64.java.
+       * Remove empty directories.
+
+       * Makefile.am(nat_source_files): Add natVMOperatingSystemMXBeanImpl.cc.
+       * java/lang/Class.java(setAccessible): Merge from classpath.
+       * java/util/Locale.java: Remove.
+       * gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java,
+       gnu/java/lang/management/natVMOperatingSystemMXBeanImpl.cc: New.
+       * gcj/javaprims.h: Update class declarations.
+       * scripts/classes.pl: Update usage.
+       * HACKING: Mention to build all peers.
+
+2007-06-02  Paolo Bonzini  <bonzini@gnu.org>
+
+       * configure: Regenerate.
+
+2007-05-31  Andrew Haley  <aph@redhat.com>
+
+       * java/lang/natClassLoader.cc (_Jv_NewClassFromInitializer): Clear
+       INTERPRETED access modifier.
+
+2007-05-31  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR libjava/32098
+       * configure: Regenerated.
+       * aclocal.m4: Regenerated.
+
+2007-05-30  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR libjava/32098
+       * configure: Regenerated.
+
+2007-05-29  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * configure.ac: Don't include ../config/confsubdir.m4.
+       * aclocal.m4: Regenerated.
+       * configure: Likewise.
+
+2007-05-27  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR bootstrap/32078
+       * configure.ac: Include confsubdir.m4.
+       * configure: Regenerate.
+
+2007-05-24  Keith Seitz  <keiths@redhat.com>
+
+       * include/java-interp.h (_Jv_InterpFrame::get_pc): Only deduct
+       one when pc_ptr is non-NULL.
+
+       * prims.cc (parse_init_args): Enable JVMTI with agentlib
+       and agentpath options.
+
+       * testsuite/lib/libjava.exp (exec_gij): Add new addl_flags
+       parameter.
+       * testsuite/libjava.jvmti/jvmti-interp.exp (gij_jvmti_test_one):
+       Pass '-agentlib:dummyagent' when executing gij.
+       (gij_jvmti_run): Build dummy JVMTI agent before running tests,
+       and remove it when finished.
+       * testsuite/libjava.jvmti/dummyagent.c: New file.
+
+2007-05-23  Steve Ellcey  <sje@cup.hp.com>
+
+       * Makefile.in: Regenerate.
+       * configure: Regenerate.
+       * aclocal.m4: Regenerate.
+       * gcj/Makefile.in: Regenerate.
+       * include/Makefile.in: Regenerate.
+       * testsuite/Makefile.in: Regenerate.
+
+2007-05-17  Kyle Galloway  <kgallowa@redhat.com>
+
+       * classpath/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
+       (executeMethods): Remove cast to ClassReferenceTypeId.
+       * classpath/lib/gnu/classpath/jdwp/processor/
+       ReferenceTypeCommandSet.class: Rebuilt.
+
+2007-05-17  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/natVMMethod.cc (getModifiers): Check for native
+       classes and mark methods as native appropriately.
+
+2007-05-17  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/VMFrame.java (<init>): Add parameter for "this"
+       pointer.
+       * gnu/classpath/jdwp/VMFrame.h: Regenerated.
+       * classpath/lib/gnu/classpath/jdwp/VMFrame.class: Rebuilt.
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc (getFrame): Use new
+       VMFrame constructor.
+
+2007-05-16  David Daney  <ddaney@avtrex.com>
+
+       * include/java-stack.h (_Jv_FrameInfo): Remove union definition.
+       (_Jv_StackFrame): Remove commented out code.
+       (_Jv_UnwindState): Remove superfluous 'typedef'.
+       * sun/misc/natUnsafe.cc (spinlock): Add white space to quiet
+       compiler warnings.
+       * gnu/java/lang/management/natVMMemoryPoolMXBeanImpl.cc
+       (getCollectionUsage): Don't declare unused parameter n.
+       (getMemoryManagerNames): Same.
+       * gnu/gcj/util/natGCInfo.cc (gc_debug_info): Remove superfluous
+       'typedef'.
+
+2007-05-16  Keith Seitz  <keiths@redhat.com>
+
+       * include/java-interp.h (breakpoint_at): Declare.
+       * interpret.cc (breakpoint_at): New function.
+       * gnu/classpath/jdwp/VMVirtualMachine.java (_event_list):
+       New member.
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc (initialize):
+       Initialize _event_list.
+       (handle_single_step): If there is a breakpoint at the
+       location at which we are stopping, do not send the notification.
+       Instead add the event to a list of events that occur at this
+       location.
+       (jdwpBreakpointCB): If the event list is not empty, send
+       whatever events are in it and the breakpoint event in a single
+       notification.
+       Mark parameter jni_env as MAYBE_UNUSED.
+       * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class:
+       Regenerated.
+       * gnu/classpath/jdwp/VMVirtualMachine.h: Regenerated.
+
+2007-05-15  David Daney  <ddaney@avtrex.com>
+
+       * classpath/lib/javax/swing/text/html/HTMLEditorKit.class: Regenerate
+       * gnu/java/awt/peer/gtk/ComponentGraphics.h: Same.
+
+2007-05-15  Keith Seitz  <keiths@redhat.com>
+
+       * interpret.cc (STOREA): Rewrite using temporary variable to
+       avoid double-macro expansion side-effects.
+       (STOREI): Likewise.
+       (STOREF): Likewise.
+       (STOREL)[SIZEOF_VOID_P == 8]: Likewise.
+       (STORED)[SIZEOF_VOID_P == 8]: Likewise.
+       (STOREL)[SIZEOF_VOID_P != 8]: Likewise.
+       (STORED)[SIZEOF_VOID_P != 8]: Likewise.
+       (POKEI): Likewise.
+
+2007-05-12  David Daney  <ddaney@avtrex.com>
+
+       PR libgcj/29324
+       * include/posix-threads.h (_Jv_BlockSigchld): Declare.
+       (_Jv_UnBlockSigchld): Same.
+       * posix-threads.cc: Include posix-threads.h.
+       (block_sigchld) Rename to...
+       (_Jv_BlockSigchld) ... this.
+       (_Jv_UnBlockSigchld): New function.
+       (_Jv_InitThreads): Call _Jv_BlockSigchld in place of block_sigchld.
+       (_Jv_ThreadStart): Same.
+       * java/lang/PosixProcess$ProcessManager.h: Regenerate.
+       * java/lang/PosixProcess.java: Clean up imports.
+       (ProcessManager): Make final.
+       (ProcessManager.queue): Genericise and make private.
+       (ProcessManager.pidToProcess): Remove.
+       (ProcessManager.liveProcesses): New field.
+       (ProcessManager.reaperPID): Remove.
+       (ProcessManager.nativeData): New field.
+       (ProcessManager.removeProcessFromMap): Remove.
+       (ProcessManager.addProcessToMap):Remove.
+       (ProcessManager.addToLiveProcesses): New method.
+       (ProcessManager.run): Rewritten.
+       (ProcessManager.reap): Change method signature,
+       (getErrorStream): Correct formatting.
+       (getInputStream): Same.
+       (spawn): Add process to liveProcesses list.
+       (pid): Make package private.
+       * java/lang/PosixProcess.h: Regenerate.
+       * java/lang/natPosixProcess.cc: Include posix.h and posix-threads.h.
+       Add useing namespace java::lang.
+       (ProcessManagerInternal): New struct.
+       (sigchld_handler): Rewritten.
+       (init): Rewritten.
+       (waitForSignal): Same.
+       (reap): Same.
+       (signalReaper): Same.
+       (nativeDestroy): Call kill as ::kill.
+       (nativeSpawn): Correct formatting.
+       * classpath/lib/java/lang/PosixProcess$EOFInputStream.class: Regenerate.
+       * classpath/lib/java/lang/PosixProcess.class: Same.
+       * classpath/lib/java/lang/PosixProcess$ProcessManager.class: Same.
+
+2007-05-07  Ian Lance Taylor  <iant@google.com>
+
+       PR java/31842
+       * java/lang/natString.cc (_Jv_FormatInt): Avoid undefined signed
+       overflow.
+
+2007-05-07  Keith Seitz  <keiths@redhat.com>
+
+       * classpath/lib/gnu/classpath/jdwp/Jdwp.class: Regenerate.
+       * classpath/lib/gnu/classpath/jdwp/Jdwp$1.class: Regenerate.
+       * classpath/lib/gnu/classpath/jdwp/event/Event.class:
+       Regenerate.
+       * classpath/lib/gnu/classpath/jdwp/transport/JdwpConnection.class:
+       Regenerate.
+       * gnu/classpath/jdwp/Jdwp.h: Regenerate.
+       * gnu/classpath/jdwp/event/Event.h: Regenerate.
+       * gnu/classpath/jdwp/transport/JdwpConnection.h: Regenerate.
+
+2007-05-04  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc (getClassMethod): Change
+       to use JVMTI.
+
+2007-05-03  Keith Seitz  <keiths@redhat.com>
+
+       * interpret.cc: Don't include ExceptionEvent.h.
+       * gnu/gcj/jvmti/natExceptionEvent.cc: Remove.
+       * Makefile.am (nat_source_files): Remove natExceptionEvent.cc.
+       * Makefile.in: Regenerated.
+
+2007-05-03  Keith Seitz  <keiths@redhat.com>
+
+       * include/jvmti-int.h (_Jv_ReportJVMTIExceptionThrow):
+       Declare.
+       * interpret.cc (_Jv_ReportJVMTIExceptionThrow): New function.
+       (find_catch_location): New function.
+       (REPORT_EXCEPTION): New macro.
+       (throw_internal_error): Use REPORT_EXCEPTION.
+       (throw_incompatible_class_change_error): Likewise.
+       (throw_null_pointer_exception): Likewise.
+       (throw_class_format_error): Likewise.
+       * interpret-run.cc (INTERP_REPORT_EXCEPTION)[DEBUG]: Set
+       to REPORT_EXCEPTION.
+       (INTERP_REPORT_EXCEPTION)[!DEBUG]: Make nop.
+       (insn_new): Use INTERP_REPORT_EXCEPTION.
+       (insn_athrow): Likewise.
+       Remove previous JVMTI exception notifications.
+       Add JVMTI ExceptionCatch notificatin.
+       * jni.cc (_Jv_PopSystemFrame): Notify JVMTI clients of
+       exception throw.
+       * gnu/gcj/jvmti/ExceptionEvent.java: Removed.
+       * gnu/gcj/jvmti/ExceptionEvent.h: Removed. 
+       * classpath/lib/gnu/gcj/jvmti/ExceptionEvent.class: Removed.
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc
+       (jdwpExceptionCB): New function.
+       (jdwpVMInitCB): Set Exception event handler and enable.
+       * sources.am: Regenerated.
+       * Makefile.in: Regenerated.
+
+2007-05-03  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+       https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=237304
+       * Makefile.in: Regenerate.
+       * scripts/makemake.tcl (scan_directory): Treat default.css as a
+       property file.
+       * classpath/javax/swing/text/html/default.css: Move to...
+       * classpath/resource/javax/swing/text/html/default.css: New file.
+       * classpath/javax/swing/text/html/HTMLEditorKit.java
+       (getStyleSheet): Throw RuntimeException when style loading fails.
+       * sources.am (property_files): Add
+       classpath/resource/javax/swing/text/html/default.css.
+
+2007-05-02  Tom Tromey  <tromey@redhat.com>
+
+       https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=238755
+       * java/lang/natCharacter.cc (Character::getType): Handle negative
+       code points.
+       (Character::toLowerCase): Likewise.
+       (Character::toUpperCase): Likewise.
+       (Character::digit): Likewise.
+       (Character::getNumericValue): Likewise.
+       (Character::getDirectionality): Likewise.
+       (Character::toTitleCase): Likewise.
+
+2007-04-30  Keith Seitz  <keiths@redhat.com>
+
+       * interpret-run.cc (NEXT_INSN)[DEBUG]: Advance PC before
+       executing the instruction.
+       * include/java-interp.h (_Jv_InterpFrame::get_pc): Subtract
+       one insn from the frame's PC. _Jv_InterpMethod::run et al
+       will advance the PC before executing the instruction.
+
+2007-04-27  Keith Seitz  <keiths@redhat.com>
+
+       * classpath/lib/gnu/classpath/jdwp/Jdwp.class: Regenerated.
+       * classpath/lib/gnu/classpath/jdwp/event/EventManager.class:
+       Regenerated.
+       * gnu/classpath/jdwp/event/EventManager.h: Regenerated.
+
+2007-04-27  Keith Seitz  <keiths@redhat.com>
+
+       * classpath/lib/gnu/classpath/jdwp/event/filters/
+       LocationOnlyFilter.class: Regenerated;
+       * classpath/lib/gnu/classpath/jdwp/util/Location.class:
+       Regenerated.
+       * gnu/classpath/jdwp/VMMethod.java
+       * classpath/lib/gnu/classpath/jdwp/VMMethod.class:
+       Regenerated.
+       * gnu/classpath/jdwp/VMMethod.h: Regenerated.
+       * gnu/classpath/jdwp/util/Location.h: Regenerated.
+
+2007-04-27  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+       * gnu/java/awt/peer/gtk/CairoGraphics2D.h: Regenerate.
+       * gnu/java/awt/peer/gtk/ComponentGraphics.h: Regenerate.
+
+2007-04-25  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/VMIdManager.java (getObjectId): Deal with null
+       objects.
+       (get): Deal with ObjectId of 0. 
+
+2007-04-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR libgcj/31084
+       * java/lang/natVMProcess.cc: Include platform.h before jvm.h.
+
+2007-04-24  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/natVMVirtualMachine.java
+       (getThreadStatus): Implement.
+
+2007-04-24  Keith Seitz  <keiths@redhat.com>
+
+       * headers.txt (gnu/gcj/jvmti/Breakpoint.h)[DIRECT_THREADED]:
+       Add _Jv_RewriteBreakpointInsn friend declaration.
+       * gnu/gcj/jvmti/natBreakpoint.cc (_Jv_RewriteBreakpointInsn)
+       [DIRECT_THREADED]: New function.
+       * gnu/gcj/jvmti/Breakpoint.h: Regenerate.
+       * interpret-run.cc: Define new REWRITE_INSN macro.
+       Changed all occurrences of insn rewriting to call REWRITE_INSN.
+
+2007-04-23  Keith Seitz  <keiths@redhat.com>
+
+       * include/no-gc.h (_Jv_IsThreadSuspended): Declare.
+       * include/boehm-gc.h (_Jv_IsThreadSuspended): Likewise.
+       * boehm.cc (_Jv_IsThreadSuspended): New function.
+       * nogc.cc (_Jv_IsThreadSuspended): Likewise.
+       * jvmti.cc (_Jv_JVMTI_GetThreadState): New function.
+       (_Jv_JVMTI_Interface): Define GetThreadState.
+
+2007-04-23  Kyle Galloway  <kgallowa@redhat.com>
+
+       * include/java-interp.h (_Jv_InterpFrame): Add pointer to the
+       interpreter PC.
+       (<init>): Add a pointer to the interpreter PC as a parameter with
+       default value NULL.
+       (get_pc): New method.
+       * interpret-run.cc: If debugging, pass a pointer to the PC when
+       creating the stack frame.
+       * jvmti.cc (_Jv_JVMTI_GetStackTrace): Call _Jv_InterpFrame::get_pc
+       to get the PC.
+
+2007-04-23  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc (getSourceFile): Check
+       for null source file and throw an exception indicating this.
+
+2007-04-20  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/gcj/jvmti/BreakpointManager.java (newBreakpoint):
+       Install the new breakpoint into the bytecode.
+       (deleteBreakpoint): Remove the breakpoint from the bytecode.
+       * classpath/lib/gnu/gcj/jvmti/BreakpointManager.class:
+       Regenerate.
+       * gnu/gcj/jvmti/natBreakpoint.cc (initialize_native):
+       Don't install the breakpoint here.
+
+2007-04-19  Keith Seitz  <keiths@redhat.com>
+
+       * interpret-run.cc [insn_breakpoint]: Save the original
+       insn for the breakpoint before posting the JVMTI notification.
+
+2007-04-19  Tom Tromey  <tromey@redhat.com>
+
+       * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.h: Rebuilt.
+
+2007-04-18  Tom Tromey  <tromey@redhat.com>
+
+       * Regenerated headers with new gjavah.
+
+2007-04-18  Andrew Haley  <aph@redhat.com>
+
+       * java/lang/reflect/natVMProxy.cc (ncode_closure): Add
+       method_index.
+       (generateProxyClass): Add field $Proxy0.m.  Store methods array in
+       it.
+       (run_proxy): Retrieve the method to invoke from in $Proxy0.m.
+       * java/lang/Class.h: Remove _Jv_LookupProxyMethod.
+       * java/lang/natClass.cc: Likewise.
+       * headers.txt: Likewise.
+       * java/lang/reflect/Method.h: Likewise.
+
+2007-04-16  Andrew Haley  <aph@redhat.com>
+
+       * gnu/gcj/runtime/BootClassLoader.java (getBootURLLoader): New
+       method.
+       (bootGetResource): Use getBootURLLoader() to load resources.
+       (bootGetResources): Likewise.
+
+       * java/lang/reflect/natMethod.cc (Method::invoke): In invoke also
+       check that the method's declaring class is accessible.
+
+2007-04-10  Keith Seitz  <keiths@redhat.com>
+
+       * sources.am: Regenerate.
+       * Makefile.in: Likewise.
+
+2007-04-09  Kyle Galloway  <kgallowa@redhat.com>
+
+       * interpret-run.cc: If debugging, check if args is NULL before
+       getting the "this" pointer.
+
+2007-04-09  Kyle Galloway  <kgallowa@redhat.com>
+
+       * classpath/gnu/classpath/jdwp/value/ArrayValue.java: New file.
+       * classpath/lib/gnu/classpath/jdwp/value/ArrayValue.class: New file.
+       * gnu/classpath/jdwp/ArrayValue.h: New file.
+       * gnu/classpath/jdwp/natVMFrame.cc (getValue): Add array case.
+       (setValue): Ditto. 
+
+2007-04-09  David Daney  <ddaney@avtrex.com>
+
+       PR libgcj/23758
+       * java/lang/natPosixProcess.cc (nativeSpawn): Move building of
+       environment before the fork.
+       * testsuite/libjava.lang/Process_7.java: New test.
+       * testsuite/libjava.lang/Process_7.out: Its expected results.
+       * testsuite/libjava.lang/Process_7.jar: Generated file.
+
+2007-04-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * prims.cc (load_jvmti_agent): Add the missing `,'.
+
+2007-04-09  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gij.cc (main): Accept -agentlib and -agentpath options.
+       * prims.cc (parse_init_args): Deal with -agentlib and -agentpath.
+       (load_jvmti_agent): New function.
+
+2007-04-04  Tania Bento  <tbento@redhat.com>
+
+       * java/text/DecimalFormatSymbols.java: Added the year 2007 to
+       Copyright information and introduced new variable, currency.
+       (DecimalFormatSymbols(Locale)): Define currency and intlCurrencySymbol
+       to "XXX", currencySymbol to "?" and localCurrency appropriately.
+       (getCurrency): Fixed documentation and return the value of currency.
+       (setCurrency): Fixed documentation and update the value of currency.
+       (setInternationalCurrencySymbol): Fixed documentation and update the
+       value of currency.
+       * java/util/Currency.java: Introduced two new variables, properties
+       and fractionDigits. In the static block, a properties object is
+       created and the currency resource is loaded.
+       (Currency(Locale)): fractionDigits is defined.
+       (Currency(String)): New method.
+       (getDefaultFractionDigits): Return the value of fractionDigits.
+       (getInstance(String)): Check if String is equal to "XXX".
+
+2007-04-04  Kyle Galloway  <kgallowa@redhat.com>
+
+       * classpath/gnu/classpath/jdwp/util/VariableTable.java: Change longs
+       to ints for argCnt and slots.
+       (write): Replace writeLong with writeInt for the above. 
+
+2007-04-03  Andrew Haley  <aph@redhat.com>
+
+       * testsuite/libjava.lang/ProxyTest.java: New test.
+
+2007-04-02  Tom Tromey  <tromey@redhat.com>
+
+       http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=205157
+       * gnu/java/nio/channels/natFileChannelPosix.cc (mapImpl): Extend
+       file, when writing, if it is too short.
+
+2007-04-02  Tom Tromey  <tromey@redhat.com>
+
+       https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=233406
+       * gnu/java/net/natPlainSocketImplPosix.cc (create): Return if
+       already created.
+       * gnu/java/net/PlainSocketImpl.java (getLocalAddress): Handle case
+       where localport is -1.
+       (create): Now public.
+       * gnu/java/nio/SocketChannelImpl.java (SocketChannelImpl): Call
+       'create' on the socket.
+
+2007-04-02  Andrew Haley  <aph@redhat.com>
+
+       * java/lang/reflect/natVMProxy.cc (run_proxy): Use
+       _Jv_LookupProxyMethod to find the Method.
+       If parameter_types->length == 0, pass a null paramameter list,
+       not a zero-length parameter list.
+       * java/lang/natClass.cc (_Jv_LookupProxyMethod): New function.
+       * java/lang/Class.h (_Jv_LookupProxyMethod): Declare.
+
+2007-04-02  Kyle Galloway  <kgallowa@redhat.com>
+
+       * interpret-run.cc: Add code to properly set up variable slots
+       when debugging.
+       * gnu/classpath/jdwp/natVMFrame.cc (checkJVMTIError): New function.
+       (getObjectJVMTI): New function.
+       (setObjectJVMTI): New function.
+       (getIntJVMTI): New function.
+       (setIntJVMTI): New function.
+       (getLongJVMTI): New function.
+       (setLongJVMTI): New function.
+       (getFloatJVMTI): New function.
+       (setFloatJVMTI): New function.
+       (getDoubleJVMTI): New function.
+       (setDoubleJVMTI): New function.
+       (getFrameDepth): New function.
+       (getValue): Implement.
+       (setValue): Implement. 
+
+2007-04-02  Kyle Galloway  <kgallowa@redhat.com>
+
+       * classpath/gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java
+       (executeResume): Call VMVirtualMachine.resumeThread.
+
+2007-03-29  Tom Tromey  <tromey@redhat.com>
+
+       PR libgcj/29869:
+       * java/util/logging/LogManager.java (readConfiguration): Handle
+       comma-separated 'handlers'.  Don't try to add a non-existing
+       handler.
+
+2007-03-27  Tom Tromey  <tromey@redhat.com>
+
+       * sources.am, Makefile.in: Rebuilt.
+       * scripts/mime.types: Removed.
+       * scripts/MakeDefaultMimeTypes.java: Removed.
+       * gnu/gcj/io/MimeTypes.java: Removed.
+       * gnu/gcj/io/MimeTypes.h: Removed.
+       * gnu/gcj/io/DefaultMimeTypes.java: Removed.
+       * gnu/gcj/io/DefaultMimeTypes.h: Removed.
+
+2007-03-27  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/VMFrame.java: Update from upstream
+       classpath.
+       * gnu/classpath/jdwp/natVMFrame.cc: Likewise.
+       * gnu/classpath/jdwp/VMVirtualMachine.java: Likewise.
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc: Likewise.
+       (initialize): Fix compiler type-punning warning.
+       (getAllLoadedClasses): Return empty list instead of NULL.
+       (getLoadRequests): Likewise.
+       * gnu/classpath/jdwp/exception/InvalidTagException.h: New file.
+       * gnu/classpath/jdwp/exception/InvalidSlotException.h: New file.
+       * gnu/classpath/jdwp/exception/TypeMismatchException.h: New file.
+       * gnu/classpath/jdwp/VMVirtualMachine.h: Rebuilt.
+       * gnu/classpath/jdwp/value/CharValue.h: New file.
+       * gnu/classpath/jdwp/value/LongValue.h: New file.
+       * gnu/classpath/jdwp/value/ShortValue.h: New file.
+       * gnu/classpath/jdwp/value/Value.h: New file.
+       * gnu/classpath/jdwp/value/BooleanValue.h: New file.
+       * gnu/classpath/jdwp/value/VoidValue.h: New file.
+       * gnu/classpath/jdwp/value/ByteValue.h: New file.
+       * gnu/classpath/jdwp/value/FloatValue.h: New file.
+       * gnu/classpath/jdwp/value/ObjectValue.h: New file.
+       * gnu/classpath/jdwp/value/StringValue.h: New file.
+       * gnu/classpath/jdwp/value/ValueFactory.h: New file.
+       * gnu/classpath/jdwp/value/IntValue.h: New file.
+       * gnu/classpath/jdwp/value/DoubleValue.h: New file.
+       * gnu/classpath/jdwp/VMFrame.h: Rebuilt.
+       * gnu/classpath/jdwp/id/NullObjectId.h: New file.
+       * gnu/classpath/jdwp/util/MethodResult.h: Rebuilt.
+       * gnu/classpath/jdwp/util/NullObject.h: New file.
+       * gnu/classpath/jdwp/util/MonitorInfo.h: New file.
+       * Makefile.in: Rebuilt.
+       * sources.am: Rebuilt.
+
+2006-03-26  David Daney  <ddaney@avtrex.com>
+
+       * configure.ac: Remove checks for mktime, alloca, ioctl, gmtime_r,
+       fork, execvp, execinfo.h, pthread_mutexattr_settype,
+       pthread_mutexattr_setkind_np and sys/wait.h.
+       * Makefile.in: Regenerate.
+       * include/Makefile.in: Regenerate.
+       * include/config.h.in: Regenerate.
+       * testsuite/Makefile.in: Regenerate.
+       * configure: Regenerate.
+       * gcj/Makefile.in: Regenerate.
+
+2007-03-23  Gary Benson  <gbenson@redhat.com>
+
+       * link.cc (_Jv_Linker::resolve_method_entry):
+       Ensure that the argument types and the return type of the
+       found method match those expected by the calling method.
+
+2007-03-22  David Daney  <ddaney@avtrex.com>
+
+       PR libgcj/31228
+       * configure.ac: Add checks for getrlimit and sys/resource.h.
+       * include/posix.h (_Jv_platform_close_on_exec): Remove.
+       * include/config.h.in: Regenerate.
+       * configure: Regenerate.
+       * gnu/java/nio/channels/natFileChannelPosix.cc (open): Remove call to
+       _Jv_platform_close_on_exec;
+       * gnu/java/net/natPlainSocketImplPosix.cc (create): Likewise.
+       (accept): Likewise.
+       * gnu/java/net/natPlainDatagramSocketImplPosix.cc (create):Likewise.
+       * java/lang/natPosixProcess.cc: Include sys/resource.h.
+       (nativeSpawn): Close all file descriptors.  Don't set FD_CLOEXEC on
+       pipes.
+
+2007-03-20  Andrew Haley  <aph@redhat.com>
+
+       * testsuite/libjava.lang/PR31264.java: New test.
+
+2007-03-14  Jakub Jelinek  <jakub@redhat.com>
+
+       * Makefile.am (AM_MAKEFLAGS): Pass through mandir.
+       * Makefile.in: Rebuilt.
+
+2007-03-13  Keith Seitz  <keiths@redhat.com>
+
+       * include/java-interp.h (_Jv_InterpClass): Declare
+       friend function _Jv_GetInterpClassSourceFile.
+       * java/lang/Class.h (Class): Likewise.
+       * java/lang/natClass.cc (_Jv_GetInterpClassSourceFile):
+       New function.
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc
+       (getSourceFile): Implement.
+
+2007-03-13  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+       * Makefile.am (AM_CXXFLAGS): Define ECJ_JAR_FILE.
+       * classpath/configure.ac: Add --with-ecj-jar configure option.
+       * classpath/gnu/classpath/Configuration.java.in (ECJ_JAR): New
+       field.
+       * classpath/INSTALL: Document --with-ecj-jar configure option and
+       ecj jar requirement for com.sun.tools.javac support.
+       * classpath/tools/Makefile.am: Build decendents of com and sun
+       directories.
+       * configure.ac: Substitute ECJ_JAR in stub Configuration.java.
+       * gnu/classpath/Configuration.java,
+       gnu/classpath/natConfiguration.cc (ecj): New method.
+       (ECJ_JAR): New field.
+       * scripts/makemake.tcl (scan_packages): Add com directory.
+       * sources.am (property_files): Add
+       classpath/resource/sun/rmi/rmic/messages.properties and
+       classpath/resource/com/sun/tools/javac/messages.properties.
+       * classpath/resource/com, classpath/resource/com/sun,
+       classpath/resource/com/sun/tools,
+       classpath/resource/com/sun/tools/javac, classpath/resource/sun,
+       classpath/resource/sun/rmi, classpath/resource/sun/rmi/rmic,
+       classpath/tools/classes/com, classpath/tools/classes/com/sun,
+       classpath/tools/classes/com/sun/javadoc,
+       classpath/tools/classes/com/sun/tools,
+       classpath/tools/classes/com/sun/tools/doclets,
+       classpath/tools/classes/sun, classpath/tools/classes/sun/rmi,
+       classpath/tools/classes/sun/rmi/rmic, classpath/tools/com,
+       classpath/tools/com/sun, classpath/tools/com/sun/javadoc,
+       classpath/tools/com/sun/tools,
+       classpath/tools/com/sun/tools/doclets,
+       classpath/tools/com/sun/tools/javac, classpath/tools/sun,
+       classpath/tools/sun/rmi, classpath/tools/sun/rmi/rmic: New
+       directories.
+       * classpath/resource/com/sun/tools/javac/messages.properties,
+       classpath/resource/sun/rmi/rmic/messages.properties,
+       classpath/tools/classes/com/sun/javadoc/ClassDoc.class,
+       classpath/tools/classes/com/sun/javadoc/ConstructorDoc.class,
+       classpath/tools/classes/com/sun/javadoc/Doc.class,
+       classpath/tools/classes/com/sun/javadoc/DocErrorReporter.class,
+       classpath/tools/classes/com/sun/javadoc/Doclet.class,
+       classpath/tools/classes/com/sun/javadoc/ExecutableMemberDoc.class,
+       classpath/tools/classes/com/sun/javadoc/FieldDoc.class,
+       classpath/tools/classes/com/sun/javadoc/MemberDoc.class,
+       classpath/tools/classes/com/sun/javadoc/MethodDoc.class,
+       classpath/tools/classes/com/sun/javadoc/PackageDoc.class,
+       classpath/tools/classes/com/sun/javadoc/ParamTag.class,
+       classpath/tools/classes/com/sun/javadoc/Parameter.class,
+       classpath/tools/classes/com/sun/javadoc/ProgramElementDoc.class,
+       classpath/tools/classes/com/sun/javadoc/RootDoc.class,
+       classpath/tools/classes/com/sun/javadoc/SeeTag.class,
+       classpath/tools/classes/com/sun/javadoc/SerialFieldTag.class,
+       classpath/tools/classes/com/sun/javadoc/SourcePosition.class,
+       classpath/tools/classes/com/sun/javadoc/Tag.class,
+       classpath/tools/classes/com/sun/javadoc/ThrowsTag.class,
+       classpath/tools/classes/com/sun/javadoc/Type.class,
+       classpath/tools/classes/com/sun/javadoc/TypeVariable.class,
+       classpath/tools/classes/com/sun/tools/doclets/Taglet.class,
+       classpath/tools/classes/sun/rmi/rmic/Main.class,
+       classpath/tools/classes/sun/rmi/rmic/Messages.class,
+       classpath/tools/com/sun/javadoc/ClassDoc.java,
+       classpath/tools/com/sun/javadoc/ConstructorDoc.java,
+       classpath/tools/com/sun/javadoc/Doc.java,
+       classpath/tools/com/sun/javadoc/DocErrorReporter.java,
+       classpath/tools/com/sun/javadoc/Doclet.java,
+       classpath/tools/com/sun/javadoc/ExecutableMemberDoc.java,
+       classpath/tools/com/sun/javadoc/FieldDoc.java,
+       classpath/tools/com/sun/javadoc/MemberDoc.java,
+       classpath/tools/com/sun/javadoc/MethodDoc.java,
+       classpath/tools/com/sun/javadoc/PackageDoc.java,
+       classpath/tools/com/sun/javadoc/ParamTag.java,
+       classpath/tools/com/sun/javadoc/Parameter.java,
+       classpath/tools/com/sun/javadoc/ProgramElementDoc.java,
+       classpath/tools/com/sun/javadoc/RootDoc.java,
+       classpath/tools/com/sun/javadoc/SeeTag.java,
+       classpath/tools/com/sun/javadoc/SerialFieldTag.java,
+       classpath/tools/com/sun/javadoc/SourcePosition.java,
+       classpath/tools/com/sun/javadoc/Tag.java,
+       classpath/tools/com/sun/javadoc/ThrowsTag.java,
+       classpath/tools/com/sun/javadoc/Type.java,
+       classpath/tools/com/sun/javadoc/TypeVariable.java,
+       classpath/tools/com/sun/tools/doclets/Taglet.java,
+       classpath/tools/com/sun/tools/javac/Main.java,
+       classpath/tools/com/sun/tools/javac/Messages.java,
+       classpath/tools/sun/rmi/rmic/Main.java,
+       classpath/tools/sun/rmi/rmic/Messages.java: New files.
+       * Makefile.in, classpath/Makefile.in, classpath/configure,
+       classpath/doc/Makefile.in, classpath/doc/api/Makefile.in,
+       classpath/examples/Makefile.in, classpath/external/Makefile.in,
+       classpath/external/jsr166/Makefile.in,
+       classpath/external/relaxngDatatype/Makefile.in,
+       classpath/external/sax/Makefile.in,
+       classpath/external/w3c_dom/Makefile.in,
+       classpath/include/Makefile.in, classpath/include/config.h.in,
+       classpath/lib/Makefile.in,
+       classpath/lib/gnu/classpath/Configuration.class,
+       classpath/native/Makefile.in, classpath/native/fdlibm/Makefile.in,
+       classpath/native/jawt/Makefile.in,
+       classpath/native/jni/Makefile.in,
+       classpath/native/jni/classpath/Makefile.in,
+       classpath/native/jni/gconf-peer/Makefile.in,
+       classpath/native/jni/gtk-peer/Makefile.in,
+       classpath/native/jni/java-io/Makefile.in,
+       classpath/native/jni/java-lang/Makefile.in,
+       classpath/native/jni/java-net/Makefile.in,
+       classpath/native/jni/java-nio/Makefile.in,
+       classpath/native/jni/java-util/Makefile.in,
+       classpath/native/jni/midi-alsa/Makefile.in,
+       classpath/native/jni/midi-dssi/Makefile.in,
+       classpath/native/jni/native-lib/Makefile.in,
+       classpath/native/jni/qt-peer/Makefile.in,
+       classpath/native/jni/xmlj/Makefile.in,
+       classpath/native/plugin/Makefile.in,
+       classpath/resource/Makefile.in, classpath/scripts/Makefile.in,
+       classpath/tools/Makefile.in, configure,
+       gnu/classpath/Configuration.h: Regenerate.
+
+2007-03-12  Kyle Galloway  <kgallowa@redhat.com>
+
+       * jvmti.cc (_Jv_JVMTI_GetArgumentsSize): Make wide type arrays count
+       as a sigle slot.
+
+2007-03-12  Marco Trudel  <mtrudel@gmx.ch>
+
+       * java/lang/natString.cc (getBytes (jstring enc)):
+       Fixed the loop for multiple cycles, Code cleanup
+
+2007-03-09  Tom Tromey  <tromey@redhat.com>
+
+       * sources.am, Makefile.in: Rebuilt.
+       * scripts/makemake.tcl (scan_directory): Allow service files to be
+       omitted.
+       Omit all XML-related service files.
+
+2007-03-07  Tom Tromey  <tromey@redhat.com>
+
+       * configure: Rebuilt.
+       * configure.ac: Clear vm-tools-packages.
+
+2007-03-07  Mohan Embar  <gnustuff@thisiscool.com>
+
+       * java/lang/Win32Process.java: Added nested class EOFInputStream.
+       * java/lang/natWin32Process.cc (ChildProcessPipe): Added DUMMY
+       enum and implementation.
+       (startProcess): Use redirect flag.
+       * classpath/lib/java/lang/Win32Process.class: Regenerated.
+       * classpath/lib/java/lang/Win32Process$EOFInputStream.class: New.
+       * gcj/javaprims.h: Regenerated.
+       * java/lang/Win32Process$EOFInputStream.h: New.
+
+2007-03-07  Andrew Haley  <aph@redhat.com>
+
+       * libgcj_bc.c (JvRunMainName): Declare.
+
+2007-03-07  Gary Benson  <gbenson@redhat.com>
+
+       * sources.am, Makefile.in: Rebuilt.
+
+2007-03-07  Mohan Embar  <gnustuff@thisiscool.com>
+
+       * gcj/javaprims.h: Regenerated.
+
+2007-03-07  Alexandre Oliva  <aoliva@redhat.com>
+
+       * include/jvm.h (_Jv_ClosureListFinalizer): New.
+       (_Jv_Linker::create_error_method): Adjust.
+       * boehm.cc (_Jv_ClosureListFinalizer): New.
+       * nogc.cc (_Jv_ClosureListFinalizer): New.
+       * java/lang/Class.h (class _Jv_ClosureList): New.
+       (class java::lang::Class): Declare it as friend.
+       * java/lang/natClass.cc (_Jv_ClosureList::releaseClosures): New.
+       (_Jv_ClosureList::registerClousure): New.
+       * include/execution.h (_Jv_ExecutionEngine): Add get_closure_list.
+       (_Jv_CompiledEngine::do_get_closure_list): New.
+       (_Jv_CompiledEngine::_Jv_CompiledEngine): Use it.
+       (_Jv_IndirectCompiledClass): Add closures.
+       (_Jv_IndirectCompiledEngine::get_aux_info): New.
+       (_Jv_IndirectCompiledEngine::do_allocate_field_initializers): Use
+       it.
+       (_Jv_IndirectCompiledEngine::do_get_closure_list): New.
+       (_Jv_IndirectCompiledEngine::_Jv_IndirectCompiledEngine): Use it.
+       (_Jv_InterpreterEngine::do_get_closure_list): Declare.
+       (_Jv_InterpreterEngine::_Jv_InterpreterEngine): Use it.
+       * interpret.cc (FFI_PREP_RAW_CLOSURE): Use _loc variants.
+       (node_closure): Add closure list.
+       (_Jv_InterpMethod::ncode): Add jclass argument.  Use
+       ffi_closure_alloc and the separate code pointer.  Register the
+       closure for finalization.
+       (_Jv_JNIMethod::ncode): Likewise.
+       (_Jv_InterpreterEngine::do_create_ncode): Pass klass to ncode.
+       (_Jv_InterpreterEngine::do_get_closure_list): New.
+       * include/java-interp.h (_Jv_InterpMethod::ncode): Adjust.
+       (_Jv_InterpClass): Add closures field.
+       (_Jv_JNIMethod::ncode): Adjust.
+       * defineclass.cc (_Jv_ClassReader::handleCodeAttribute): Adjust.
+       (_Jv_ClassReader::handleMethodsEnd): Likewise.
+       * link.cc (struct method_closure): Add closure list.
+       (_Jv_Linker::create_error_method): Add jclass argument.  Use
+       ffi_closure_alloc and the separate code pointer.  Register the
+       closure for finalization.
+       (_Jv_Linker::link_symbol_table): Remove outdated comment about
+       sharing of otable and atable.  Adjust.
+       * java/lang/reflect/natVMProxy.cc (ncode_closure): Add closure
+       list.
+       (ncode): Add jclass argument.  Use ffi_closure_alloc and the
+       separate code pointer.  Register the closure for finalization.
+       (java::lang::reflect::VMProxy::generateProxyClass): Adjust.
+       * testsuite/libjava.jar/TestClosureGC.java: New.
+       * testsuite/libjava.jar/TestClosureGC.out: New.
+       * testsuite/libjava.jar/TestClosureGC.xfail: New.
+       * testsuite/libjava.jar/TestClosureGC.jar: New.
+
+2007-03-06  Kyle Galloway  <kgallowa@redhat.com>
+
+       * classpath/gnu/classpath/jdwp/exception/AbsentInformationException.java: New file.
+       * classpath/lib/gnu/classpath/jdwp/exception/AbsentInformationException.class: Ditto.
+       * gnu/classpath/jdwp/exception/AbsentInformationException.h: Ditto.
+       * gnu/classpath/jdwp/natVMMethod.cc: Add CHECK_INTERP_CLASS macro.
+       (VMMethod::getLineTable): Use new macro.
+       (VMMethod::getVariableTable): Implement.
+       * sources.am: Regenerated.
+       * Makefile.in: Ditto.
+
+2007-03-06  Tom Tromey  <tromey@redhat.com>
+
+       * Makefile.in: Rebuilt.
+       * Makefile.am (bin_PROGRAMS): Added gcjh.
+       (gcjh_SOURCES, gcjh_LDFLAGS, gcjh_LINK, gcjh_LDADD,
+       gcjh_DEPENDENCIES): New variables.
+
+2007-03-06  Kyle Galloway  <kgallowa@redhat.com>
+
+       * jvmti.cc(_Jv_JVMTI_GetLocalVariableTable): Fix _Jv_Malloc parameters.
+       * testsuite/libjava.jvmti/interp/natgetlocalvartable.cc
+       (do_getlocalvartable_tests): Add Deallocate calls to free strings.
+
+2007-03-05  Matthias Klose  <doko@debian.org>
+
+       * Makefile.am (gij_LDFLAGS): Use dbexecdir.
+       * Makefile.in: Regnerate.
+
+2007-03-05  Mark Wielaard  <mark@klomp.org>
+
+       * java/lang/Character.java: Re-merged with Classpath.
+       * java/lang/natString.cc (nativeCompareTo): Renamed from
+       compareTo.
+       * java/lang/StringBuilder.java: Re-merged with Classpath.
+       * java/lang/String.java: Re-merged with Classpath.
+       (nativeCompareTo): Renamed from compareTo.
+       * java/lang/StringBuffer.java: Re-merged with Classpath.
+       * jni.cc (_Jv_JNI_GetAnyMethodID): Split calls to append.
+
+2007-03-05  Andrew Haley  <aph@redhat.com>
+
+       * java/lang/reflect/natVMProxy.cc (ncode_closure.meth): Delete.
+       (generateProxyClass): Don't pass method to ncode.
+       (run_proxy): Call _Jv_GetReflectedMethod to find the proxy method.
+       * java/lang/reflect/Method.h: Rebuild.
+       * java/lang/reflect/Method.java (internalGetParameterTypes,
+       internalGetExceptionTypes): New methods.
+       * headers.txt (class java/lang/reflect/Method): Declare
+       _Jv_GetReflectedMethod.  Be its friend.
+       * java/lang/natClass.cc (_Jv_GetReflectedMethod): New method.
+       * java/lang/Class.h: Declare it.  Be its friend.
+
+2007-03-05  Tom Tromey  <tromey@redhat.com>
+
+       * sources.am, Makefile.in: Rebuilt.
+       * scripts/makemake.tcl (emit_package_rule): Don't omit
+       VMProcess.java.
+       * Makefile.am (nat_source_files): Added natVMProcess.cc.
+       (inner_nat_headers): Added ImmediateEOFInputStream.h.
+       * gcj/javaprims.h: Regenerated.
+       * java/lang/System.java (EnvironmentMap): Now package-private.
+       (EnvironmentMap(Map)): New constructor.
+       (EnvironmentMap.put): New method.
+       * java/lang/natWin32Process.cc (startProcess): Update.
+       * java/lang/Win32Process.java (Win32Process): Added 'redirect'
+       argument.
+       (startProcess): Likewise.
+       * java/lang/EcosProcess.java (EcosProcess): Added 'redirect'
+       argument.
+       * java/lang/natPosixProcess.cc (nativeSpawn): Handle redirection.
+       * java/lang/PosixProcess.java (redirect): New field.
+       (PosixProcess): Added 'redirect' argument.
+       * java/lang/natRuntime.cc (execInternal): Added 'redirect'
+       argument to Process creation.
+       * java/lang/natVMProcess.cc: New file.
+       * java/lang/ProcessBuilder.java: Removed.
+       * java/lang/VMProcess.java: New file.
+
+2007-03-03  Andrew Haley  <aph@redhat.com>
+
+       * java/lang/natClass.cc (parseAnnotationElement): Correct long
+       annotations to read JV_CONSTANT_Long, not JV_CONSTANT_Double.
+
+2007-03-02  Andrew Haley  <aph@redhat.com>
+
+       * sun/reflect/annotation/AnnotationInvocationHandler.java:
+       Generify in a few places.
+       (equals): Rewrite to use invoke on local proxy.
+       (deepToString): Remove most of it.
+       (toString): Make nonstatic.
+       (arrayClone): Delete.
+       (coerce): New method.
+       (invoke): Rewrite to handle gcj's structures correctly.
+       * java/lang/natClass.cc (getDeclaredAnnotations): Fix test for
+       null loader.
+       * sources.am: Regenerate.
+       * Makefile.am: Likewise.        
+
+2007-03-02  Andrew Haley  <aph@redhat.com>
+
+       * sun/reflect/annotation/AnnotationInvocationHandler.java:
+       Whitespace only changes.
+
+2007-03-02  Andrew Haley  <aph@redhat.com>
+
+       * sun/reflect/annotation/AnnotationInvocationHandler.java: Moved
+       from Classpath to libgcj local.
+
+2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
+
+       * Makefile.am: Add dummy install-pdf target.
+       * Makefile.in: Regenerate
+       * include/Makefile.in: Regenerate
+       * testsuite/Makefile.in: Regenerate
+       * gcj/Makefile.in: Regenerate
+
+2007-02-23  Gary Benson  <gbenson@redhat.com>
+
+       * gnu/gcj/tools/gcj_dbtool/Main.java: Updated copyright year.
+
+2007-02-23  Gary Benson  <gbenson@redhat.com>
+
+       * java/lang/VMCompiler.java
+       (compileClass): Don't lose zeros from within the digest.
+
+2007-02-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR libgcj/17002
+       PR classpath/28550
+       * java/util/VMTimeZone.java (getDefaultTimeZoneId): To read
+       /etc/localtime, use ZoneInfo.readTZFile instead of
+       VMTimeZone.readtzFile.  Get better timezone name for /etc/localtime,
+       either if it is a symlink or through /etc/sysconfig/clock.
+       (readSysconfigClockFile): New static method.
+       (readtzFile): Removed.
+       * java/lang/System.java: Add gnu.java.util.zoneinfo.dir to comments.
+       * posix.cc (_Jv_platform_initProperties): Set
+       gnu.java.util.zoneinfo.dir.
+       * sources.am (gnu_java_util_source_files): Add
+       classpath/gnu/java/util/ZoneInfo.java.
+       * Makefile.in: Regenerated.
+       * java/util/VMTimeZone.h: Regenerated.
+       * java/util/TimeZone.h: Regenerated.
+       * gnu/java/util/ZoneInfo.h: Generated.
+
+2007-02-22  Mohan Embar  <gnustuff@thisiscool.com>
+
+       * include/win32-threads.h: Added #undef OUT.
+
+2007-02-21  Kyle Galloway  <kgallowa@redhat.com>
+
+       * jvmti.cc (_Jv_JVMTI_GetArgumentsSize): New function.
+       * testsuite/libjava.jvmti/interp/getargssize.java: New test.
+       * testsuite/libjava.jvmti/interp/getargssize.h: Ditto.
+       * testsuite/libjava.jvmti/interp/getargssize.jar: Ditto.
+       * testsuite/libjava.jvmti/interp/getargssize.out: Ditto.
+       * testsuite/libjava.jvmti/interp/natgetargssize.cc: Ditto.
+
+2007-02-21  Gary Benson  <gbenson@redhat.com>
+
+       * java/util/GregorianCalendar.java: Removed.
+       * sources.am, Makefile.in: Rebuilt.
+
+2007-02-20  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc
+       (jdwpClassPrepareCB): Move class status stuff to ...
+       (getClassStatus): ... here.
+
+2007-02-20  Gary Benson  <gbenson@redhat.com>
+
+       * gnu/awt/xlib/XEventLoop.h: Regenerated.
+       * gnu/java/awt/peer/gtk/GThreadMutex.h: Likewise.
+       * gnu/java/rmi/server/ConnectionRunnerPool$ConnectionRunner.h:
+       Likewise.
+       * gnu/java/rmi/server/UnicastConnectionManager.h: Likewise.
+       * java/lang/SecurityManager.h: Likewise.
+       * java/lang/Thread.h: Likewise.
+       * java/security/VMSecureRandom$Spinner.h: Likewise.
+       * java/util/concurrent/atomic/AtomicBoolean.h: Likewise.
+       * java/util/concurrent/atomic/AtomicInteger.h: Likewise.
+       * java/util/concurrent/atomic/AtomicLong.h: Likewise.
+       * java/util/concurrent/atomic/AtomicReference.h: Likewise.
+       * java/util/concurrent/ConcurrentHashMap$HashEntry.h: Likewise.
+       * java/util/concurrent/ConcurrentHashMap$Segment.h: Likewise.
+       * java/util/concurrent/ConcurrentLinkedQueue.h: Likewise.
+       * java/util/concurrent/ConcurrentLinkedQueue$Node.h: Likewise.
+       * java/util/concurrent/ConcurrentSkipListMap.h: Likewise.
+       * java/util/concurrent/ConcurrentSkipListMap$Index.h: Likewise.
+       * java/util/concurrent/ConcurrentSkipListMap$Node.h: Likewise.
+       * java/util/concurrent/Exchanger.h: Likewise.
+       * java/util/concurrent/Exchanger$Node.h: Likewise.
+       * java/util/concurrent/FutureTask$Sync.h: Likewise.
+       * java/util/concurrent/LinkedBlockingQueue$Node.h: Likewise.
+       * java/util/concurrent/locks/AbstractQueuedLongSynchronizer.h:
+       Likewise.
+       * java/util/concurrent/locks/AbstractQueuedLongSynchronizer$Node.h: 
+       Likewise.
+       * java/util/concurrent/locks/AbstractQueuedSynchronizer.h: Likewise.
+       * java/util/concurrent/locks/AbstractQueuedSynchronizer$Node.h:
+       Likewise.
+       * java/util/concurrent/ScheduledThreadPoolExecutor.h: Likewise.
+       * java/util/concurrent/SynchronousQueue.h: Likewise.
+       * java/util/concurrent/SynchronousQueue$TransferQueue.h: Likewise.
+       * java/util/concurrent/SynchronousQueue$TransferQueue$QNode.h:
+       Likewise.
+       * java/util/concurrent/SynchronousQueue$TransferStack.h: Likewise.
+       * java/util/concurrent/SynchronousQueue$TransferStack$SNode.h:
+       Likewise.
+       * java/util/concurrent/ThreadPoolExecutor.h: Likewise.
+       * java/util/concurrent/ThreadPoolExecutor$Worker.h: Likewise.
+       * java/util/logging/ErrorManager.h: Likewise.
+       * javax/swing/plaf/basic/BasicSpinnerUI$2.h: Likewise.
+       * javax/swing/plaf/basic/BasicSpinnerUI$4.h: Likewise.
+
+2007-02-16  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc
+       (get_line_table): New function.
+       (handle_single_step): New function.
+       (jdwpSingleStepCB): New function.
+       (jdwpVMInitCB): Define a JVMTI single step
+       callback, but don't enable it until needed.
+
+2007-02-16  David Daney  <ddaney@avtrex.com>
+
+       * java/lang/Thread.java (Thread(ThreadGroup, Runnable, String)): Pass
+       new parameter constructor.
+       (Thread(ThreadGroup, Runnable, String, long)): Same.
+       (Thread(String, boolean)): New constructor.
+       (Thread(Thread, ThreadGroup, Runnable, String): Add parameter
+       noInheritableThreadLocal, don't call
+       InheritableThreadLocal.newChildThread if set.
+       * java/lang/PosixProcess.java(ProcessManager()): Set
+       noInheritableThreadLocal in super.
+       * java/lang/natThread.cc (_Jv_AttachCurrentThread): Pass new
+       parameter to Thread constructor.
+       (_Jv_AttachCurrentThreadAsDaemon): Same.
+       * java/lang/Thread.h: Regenerate.
+       * classpath/lib/java/lang/Thread.class: Same.
+       * classpath/lib/java/lang/PosixProcess$EOFInputStream.class: Same.
+       * classpath/lib/java/lang/PosixProcess.class: Same.
+       * classpath/lib/java/lang/Thread$State.class: Same.
+       * classpath/lib/java/lang/PosixProcess$ProcessManager.class: Same.
+
+2007-02-16  Kyle Galloway  <kgallowa@redhat.com>
+
+       * interpret.cc: Add extra DEBUG_LOCALS_INSN calls for multi-slot
+       variables to maintain type info.
+       * interpret-run.cc: Add local variable info to frame in the debug
+       interpreter.
+       * jvmti.cc (getLocalFrame): New method.
+       (_Jv_JVMTI_GetLocalObject): New method.
+       (_Jv_JVMTI_GetLocallInt): New method.
+       (_Jv_JVMTI_GetLocalFloat): New method.
+       (_Jv_JVMTI_GetLocalLong): New method.
+       (_Jv_JVMTI_GetLocalDouble): New method.
+       (_Jv_JVMTI_SetLocalObject): New method.
+       (_Jv_JVMTI_SetLocalInt): New method.
+       (_Jv_JVMTI_SetLocalFloat): New method.
+       (_Jv_JVMTI_SetLocalLong): New method.
+       (_Jv_JVMTI_SetLocalDouble): New method.
+
+2007-02-16  Gary Benson  <gbenson@redhat.com>
+
+       * gnu/gcj/tools/gcj_dbtool/Main.java
+       (bytesToString): Don't lose zeros from within the digest.
+
+2007-02-15  Andrew Haley  <aph@redhat.com>
+
+       * Makefile.am (nat_source_files): Remove
+       java/lang/management/natVMManagementFactory.cc.
+       * java/lang/Thread.java (getStackTrace): Use reflection to call
+       the ManagementFactory.
+       * java/lang/management/VMManagementFactory.java: Remove native
+       methods.
+       * java/lang/management/natVMManagementFactory.cc: Deleted.
+       * sources.am: Regnerate.
+       * scripts/makemake.tcl: Add new "bcheaders" type.
+       Move java/lang/management and gnu/classpath/management to "bc".
+       Move gnu/java/lang/management to "bcheaders".
+       
+2007-02-15  Kyle Galloway  <kgallowa@redhat.com>
+       
+       * interpret.cc (_Jv_InterpMethod::check_handler): New method.
+       * interpret-run.cc: Change the catch section to report exception
+       events and to use the new check_handler method.
+       * include/java-interp.h (_Jv_InterpMethod): Add check_handler.
+       * gnu/gcj/jvmti/ExceptionEvent.java: New file.
+       * gnu/gcj/jvmti/ExceptionEvent.h: New file.
+       * gnu/gcj/jvmti/natExceptionEvent.cc: New file.
+       * libjava/classpath/lib/gnu/gcj/jvmti/ExceptionEvent.class: New
+       file.
+       * sources.am: Added ExceptionEvent.java.
+       * Makefile.am: Added natExceptionEvent.cc
+       * Makefile.in: Regenerated.
+       * include/Makefile.in: Regenerated.
+       * gcj/Makefile.in: Regenerated.
+
+2007-02-15  Johannes Schmidt  <jschmidt@avtrex.com>
+       David Daney  <ddaney@avtrex.com>
+
+       * configure.ac: Create vm-tools-packages file.  Add 
+       gnu/gcj/tools/gc_analyze to standard.omit and vm-tools-packages.
+       Check for /proc/self/maps.
+       * Makefile.am (bin_PROGRAMS): Added gc-analyze.
+       (gc_analyze_SOURCES): New.
+       (gc_analyze_LDFLAGS): New.
+       (gc_analyze_LINK): New.
+       (gc_analyze_LDADD): New.
+       (gc_analyze_DEPENDENCIES): New.
+       (nat_source_files): Add gnu/gcj/util/natGCInfo.cc.
+       * Makefile.in: Regenerated.
+       * configure: Regenerated.
+       * include/config.h.in: Regenerated.
+       * sources.am: Regenerated.
+       * scripts/makemake.tcl: Don't include gc-analyze classes in libgcj.
+       * gnu/gcj/tools/gc_analyze/SymbolLookup.java: New.
+       * gnu/gcj/tools/gc_analyze/ObjectMap.java: New.
+       * gnu/gcj/tools/gc_analyze/MemoryMap.java: New.
+       * gnu/gcj/tools/gc_analyze/SymbolTable.java: New.
+       * gnu/gcj/tools/gc_analyze/BlockMap.java: New.
+       * gnu/gcj/tools/gc_analyze/BytePtr.java: New.
+       * gnu/gcj/tools/gc_analyze/ItemList.java: New.
+       * gnu/gcj/tools/gc_analyze/ToolPrefix.java: New.
+       * gnu/gcj/tools/gc_analyze/MemoryAnalyze.java: New.
+       * gnu/gcj/util/GCInfo.java: New.
+       * gnu/gcj/util/GCInfo.h: New.
+       * gnu/gcj/util/natGCInfo.cc: New.
+       * gnu/gcj/util/UtilPermission.java: New.
+       * gnu/gcj/util/UtilPermission.h: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/SymbolTable.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/ObjectMap$ObjectItem.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap$RangeComparator.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap$PtrMarks.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap$Range.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/BytePtr.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$SubstringComparator.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/ItemList.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/ToolPrefix.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1$Info.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$1.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$2.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$3.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$4.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryAnalyze$OptionParser.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/BlockMap$SizeKind.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/SymbolLookup.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/ObjectMap.class: New.
+       * classpath/tools/gnu/gcj/tools/gc_analyze/MemoryMap.class: New.
+       * classpath/lib/gnu/gcj/util/GCInfo.class: New.
+       * classpath/lib/gnu/gcj/util/UtilPermission.class: New.
+
+2007-02-15  David Daney  <ddaney@avtrex.com>
+
+       * gnu/java/net/PlainSocketImpl.h: Regenerate.
+       * gnu/classpath/jdwp/VMVirtualMachine.h: Same.
+       * gnu/classpath/jdwp/VMFrame.h: Same.
+       * java/net/Socket.h: Same.
+       * java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.h: Same.
+
+2007-02-15  Kyle Galloway  <kgallowa@redhat.com>
+
+       * defineclass.cc (_Jv_ClassReader::read_one_code_attribute):
+       Added LocalVariableTable attribute handling.
+       (_Jv_ClassReader::pool_Utf8_to_char_arr): New method.
+       * jvmti.cc (_Jv_JVMTI_GetLocalVariableTable): New method.
+       * include/java-interp.h: Added local_var_table and 
+       local_var_table_len fields to _Jv_InterpMethod.
+       (_Jv_InterpMethod::get_local_var_table): New method.
+       * testsuite/libjava.jvmti/interp/getlocalvartable.java: New test.
+       * testsuite/libjava.jvmti/interp/getlocalvartable.jar: New test.
+       * testsuite/libjava.jvmti/interp/getlocalvartable.out: Output
+       for new test.
+       * testsuite/libjava.jvmti/interp/getlocalvartable.h: New test.
+       * testsuite/libjava.jvmti/interp/natgetlocalvartable.cc: New test.
+
+2007-02-15  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/natVMVirtualMachine (getFrames): Implement.
+
+2007-02-13  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc
+       (jdwpBreakpointCB): New function.
+       (jdwpVMInitCB): Define and enable the breakpoint
+       callback.
+
+2007-02-13  Andrew Haley  <aph@redhat.com>
+
+       * testsuite/libjava.lang/Divide_2.out
+       * testsuite/libjava.lang/Divide_2.java: New test.
+
+2007-02-12  Keith Seitz  <keiths@redhat.com>
+
+       * jvmti.cc (_Jv_JVMTI_GetStackTrace): Remove cast
+       from jthread to Thread *; it is no longer needed.
+       (_Jv_JVMTI_GetFrameCount): Likewise.
+       Fix small formatting typo.
+
+2007-02-12  Tom Tromey  <tromey@redhat.com>
+
+       * sources.am, Makefile.in: Rebuilt.
+       * java/lang/Socket.java: Removed override.
+       * java/lang/DatagramSocket.java: Removed override.
+       * gnu/java/net/PlainSocketImpl.java (localSocketAddress): New
+       field.
+       (getLocalAddress): New method.
+       * gnu/java/net/PlainDatagramSocketImpl.java
+       (PlainDatagramSocketImpl): Throws IOException.
+       * gnu/java/net/natPlainSocketImplPosix.cc (write): Remove
+       'sizeof'.
+       (read): Likewise.
+
+2007-02-09  Jakub Jelinek  <jakub@redhat.com>
+
+       * java/util/VMTimeZone.java: Rewrite to handle both the old
+       'TZif\0' format and the new one.
+       
+2007-02-10  Andrew Haley  <aph@redhat.com>
+
+       PR java/30742
+       * gnu/classpath/natVMStackWalker.cc (GET_CALLING_CLASS): New.
+       (getCallingClass): Call GET_CALLING_CLASS.
+       (getCallingClassLoader): Likewise.
+
+2007-02-10  Mohan Embar  <gnustuff@thisiscool.com>
+
+       * configure: Rebuilt.
+       * configure.ac (GCJH): Reverted second part of patch of 2006-12-20.
+
+2007-02-10  Mohan Embar  <gnustuff@thisiscool.com>
+
+       * Makefile.in: Rebuilt.
+       * Makefile.am (BUILD_ECJ1): Unify the command for renaming ecjx to
+       the host's ecj1 executable.
+
+2007-02-09  Richard Henderson  <rth@redhat.com>
+
+       * sysdep/alpha/locks.h (read_barrier): New.
+
+2007-02-09  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/VMVirtualMachine.java
+       (_stepping_threads): New member.
+       * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class:
+       Regenerated.
+       * gnu/classpath/jdwp/VMVirtualMachine.h:
+       Regenerated.
+       * gnu/claspath/jdwp/natVMVirtualMachine.cc
+       (get_request_step_filter): New function.
+       (DISABLE_EVENT): New macro.
+       (initialize): Initialize _stepping_threads.
+       (registerEvent): Implement EVENT_SINGLE_STEP.
+       (unregisterEvent): Likewise.
+
+2007-02-08  Keith Seitz  <keiths@redhat.com>
+
+       * sources.am: Regenerate.
+       * Makefile.in: Regenerate.
+       * testsuite/Makefile.in: Regenerate.
+       * gcj/Makefile.in: Regenerate.
+       * include/Makefile.in: Regenerate.
+
+       * classpath/lib/javax/management/MBeanServerFactory.class:
+       Regenerate.
+
+2007-02-08  Kyle Galloway  <kgallowa@redhat.com>
+
+       * classpath/gnu/classpath/jdwp/processor/
+       StackFrameCommandSet.java (executeGetValues): Pass jlong instead
+       of ByteBuffer.
+       (executeSetValues): Ditto.
+       (executeThisObject): Ditto.
+       * classpath/gnu/classpath/jdwp/processor/
+       StackFrameCommandSet.class: Rebuilt.
+       * classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class:
+       Rebuilt.
+       * classpath/lib/gnu/classpath/jdwp/VMFrame.class: Rebuilt.
+       * classpath/lib/gnu/classpath/jdwp/exception/
+       InvalidFrameException.java: New file.
+       * gnu/classpath/jdwp/VMFrame.java: Added field for thread of
+       frame.
+       (Constructor): New method.
+       * gnu/classpath/jdwp/VMFrame.h: Regenerated.
+       * gnu/classpath/jdwp/VMVirtualMachine.java
+       (getFrame): Changed ByteBuffer to jlong.
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc
+       (getFrame): Implement.
+       * gnu/classpath/jdwp/VMVirtualMachine.h: Regenerated.
+
+2007-02-08  Kyle Galloway  <kgallowa@redhat.com>
+
+       * include/java-interp.h (_Jv_InterpFrame): obj_ptr field added
+       to hold "this" pointer for frame.
+       (_Jv_InterpFrame::get_this_ptr): New method.
+       * interpret-run.cc: Copy the "this" pointer into obj_ptr.
+
+2007-02-07  Keith Seitz  <keiths@redhat.com>
+
+       * include/java-interp.h (_Jv_Frame::depth):
+       New function.
+       * jvmti.cc (_Jv_JVMTI_GetFrameCount): Use _Jv_Frame::depth.
+
+2007-02-07  Kyle Galloway  <kgallowa@redhat.com>
+
+       * jvmti.cc (CHECK_FOR_NATIVE_METHOD): New macro.
+       (_Jv_JVMTI_GetMaxLocals): New method.
+       * include/java-interp.h
+       (_Jv_InterpMethod::get_max_locals): New method.
+
+2007-02-01 Marco Trudel <mtrudel@gmx.ch>
+
+       * jni.cc (_Jv_JNI_DeleteWeakGlobalRef): Check for NULL objects.
+
+2007-02-07  Tom Tromey  <tromey@redhat.com>
+
+       * testsuite/libjava.jni/init.c: New file.
+       * testsuite/libjava.jni/init.java: New file.
+       * testsuite/libjava.jni/init.out: New file.
+       * testsuite/libjava.jni/init.jar: New file.
+       * testsuite/libjava.jni/init.h: New file.
+       * testsuite/libjava.jni/init$NativeClass.h: New file.
+
+2007-02-07  Jakub Jelinek  <jakub@redhat.com>
+
+       PR libgomp/28468
+       * configure: Regenerate.
+
+2007-02-06  Andrew Haley  <aph@redhat.com>
+
+       * scripts/makemake.tcl (emit_bc_rule): Set the source filename.
+       * sources.am: Rebuild.
+
+2007-02-05  Keith Seitz  <keiths@redhat.com>
+
+       * jvmti.cc (_envListLock): Change type to
+       ReentrantReadWriteLock.
+       (_Jv_JVMTI_DisposeEnvironment): Switch to read/write
+       lock.
+       (check_enabled_event): Likewise.
+       (_Jv_GetJVMTIEnv): Likewise.
+       (_Jv_JVMTI_Init): Likewise.
+       (_Jv_JVMTI_PostEvent): Likewise. 
+
+2007-02-05  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc
+       (registerEvent): Implement EVENT_BREAKPOINT.
+       (unregisterEvent): Likewise.
+       (get_request_location): New function.
+
+2007-02-05  Matthias Klose  <doko@debian.org>
+
+       testsuite/Makefile.am (compile-tests): Fix typo.
+       testsuite/Makefile.in: Regenerate.
+
+2007-02-02  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc (getFrameCount):
+       Implment.
+
+2007-02-02  Jakub Jelinek  <jakub@redhat.com>
+
+       * configure.ac (libjava_cv_anon_version_script): New test.
+       (ANONVERSCRIPT): New AM_CONDITIONAL.
+       * configure: Rebuilt.
+       * Makefile.am (extra_ldflags_libjava): Link with -Wl,--version-script
+       if ANONVERSCRIPT.
+       * Makefile.in: Rebuilt.
+       (libgcj_la_DEPENDENCIES): Depend on libgcj.ver.
+       * libgcj.ver: New file.
+
+2007-02-01  David Daney  <ddaney@avtrex.com>
+
+       * scripts/makemake.tcl: Replace gnu/xml build with build of all
+       its subpackages.
+       * sources.am: Regenerate.
+       * Makefile.in: Regenerate.
+
+2007-02-01  Tom Tromey  <tromey@redhat.com>
+
+       * java/lang/ClassLoader.java (getResources): No longer final.
+
+2007-02-01  Tom Tromey  <tromey@redhat.com>
+
+       * java/util/logging/LogManager.java (loggers): Genericized.
+       (addLogger): Merged.
+       (findAncestor): Likewise.
+       (getLogger): Likewise.
+       (getLoggerNames): Genericized.
+       (reset): Merged.
+       (getLevelProperty): Likewise.
+       * java/lang/reflect/Method.java (getDeclaringClass): Genericized.
+       * java/lang/reflect/Constructor.java (getParameterTypes):
+       Genericized.
+       (getExceptionTypes): Likewise.
+       (newInstance): Likewise.
+       * java/lang/reflect/Array.java (newInstance): Genericized.
+       * java/lang/Object.java (getClass): Genericized.
+       * java/nio/charset/spi/CharsetProvider.java (charsets):
+       Genericized.
+       * java/text/Collator.java: Implement Comparable<Object>.
+
+2007-02-01  Tom Tromey  <tromey@redhat.com>
+
+       * java/util/Calendar.java: Implement Comparable<Calendar>.  Update
+       comments.
+       (clear): Call complete.
+       (setTimeZone): Call computeTime, computeFields.
+       (compareTo): New method.
+       * java/nio/charset/Charset.java: Implement Comparable<Charset>.
+       (availableCharsets): Genericized.
+       (aliases): Likewise.
+       (compareTo): Changed argument type.
+       * java/lang/ClassLoader.java (loadClass): Genericized.
+       (findClass): Likewise.
+       (defineClass): Likewise.
+       (resolveClass): Likewise.
+       (findSystemClass): Likewise.
+       (setSigners): Likewise.
+       (findLoadedClass): Likewise.
+       (getResources): Likewise.
+       (findResources): Likewise.
+       (getSystemResources): Likewise.
+       (checkInitialized): New method.
+       * java/lang/Class.java (getCanonicalName): New method.
+
+2007-01-31  Keith Seitz  <keiths@redhat.com>
+
+       * include/jvmti-int.h (JVMTI): Declare member "enabled".
+       * jvmti.cc (JVMTI): Add member "enabled".
+       (_Jv_GetJVMTIEnv): Mark JVMTI enabled.
+       * interpret.cc (_Jv_InterpMethod::ncode): Use JVMTI::enabled
+       instead of gnu::classpath::jdwp::Jdwp::isDebugging.
+       (_Jv_CompileMethod): If JVMTI is enabled, use run_debug
+       instead of run to compile the method.
+
+       * interpret-run.cc [DEBUG] (NEXT_INSN): Add JVMTI single step
+       notification.
+
+2007-01-31  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * testsuite/libjava.jvmti/jvmti-interp.exp (gij_jvmti_test_one): Add
+       -shared-libgcc to the cxxflaglist for Darwin.
+
+2007-01-31  Tom Tromey  <tromey@redhat.com>
+
+       * scripts.am, Makefile.in: Rebuilt.
+       * scripts/makemake.tcl (gnu/javax/swing/text/html/parser): Build
+       as 'ordinary'.
+       (emit_ordinary_rule): New proc.
+
+2007-01-31  Keith Seitz  <keiths@redhat.com>
+
+       * testsuite/libjava.jvmti/getmethodname.h: New file.
+       * testsuite/libjava.jvmti/getmethodname.jar: New file.
+
+2007-01-31  Andrew Haley  <aph@redhat.com>
+
+       * prims.cc (_Jv_Abort): fflush (stderr).
+       * java/lang/natClassLoader.cc (_Jv_CheckABIVersion): Abort.
+
+2007-01-31  Tom Tromey  <tromey@redhat.com>
+
+       * configure, Makefile.in: Rebuilt.
+       * configure.ac (JAR): Check for -@ feature.
+       * Makefile.am (libgcj-$(gcc_version).jar): Use find -prune.
+
+2007-01-31  Tom Tromey  <tromey@redhat.com>
+
+       PR libgcj/30606:
+       * configure, include/config.h.in: Rebuilt.
+       * configure.ac: Check for magic_t in magic.h.
+       * java/net/natVMURLConnection.cc: Use HAVE_MAGIC_T.
+
+2007-01-30  Tom Tromey  <tromey@redhat.com>
+
+       * Makefile.in: Rebuilt.
+       * Makefile.am (libgcj-$(gcc_version).jar): Rewrote.
+
+2007-01-30  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * testsuite/libjava.jvmti/natevents.cc (FieldModificationCB): Use a
+       cast to print it right.
+
+2007-01-29  Kaloian Doganov  <kaloian@doganov.org>
+
+       PR libgcj/30600:
+       * gnu/gcj/convert/BytesToCharsetAdaptor.java (read): Fix call to
+       'limit'.
+
+2007-01-29  Kyle Galloway  <kgallowa@redhat.com>
+
+       * include/java-interp.h:  Added _Jv_Frame class and its two
+       subclasses _Jv_InterpFrame and _Jv_NativeFrame.  Also moved
+       _Jv_FrameType from java-stack.h.
+       * include/java-stack.h: Removed _Jv_FrameType.
+       * java/lang/Thread.java: Added frame member to hold new
+       composite frame stack.
+       * java/lang/Thread.h: Regenerated.
+       * java/lang/Thread.class: Rebuilt.
+       * jni.cc (_Jv_JNIMethod::call): Push a frame onto the stack when
+       calling a JNI method.
+       * jvmti.cc (_Jv_JVMTI_GetStackTrace): New Method.
+       (_Jv_JVMTI_GetFrameCount): New method.
+       * stacktrace.cc (UnwindTraceFn): Modified to use new _Jv_Frame
+       classes.
+       * testsuite/libjava.jvmti/interp/getstacktrace.jar: New test.
+       * testsuite/libjava.jvmti/interp/natgetstacktrace.cc: New test.
+       * testsuite/libjava.jvmti/interp/getstacktrace.h: New test.
+       * testsuite/libjava.jvmti/interp/getstacktrace.jar: New test.
+       * testsuite/libjava.jvmti/interp/getstacktrace.out: Output file
+       for test. 
+
+2007-01-29  Tom Tromey  <tromey@redhat.com>
+
+       * interpret.cc (run_debug): Remove comment.
+       (STOREA): Reformat.
+       (STOREI): Likewise.
+       (STOREF): Likewise.
+       (STOREL): Likewise.
+       (STORED): Likewise.
+       (POKEI): Likewise.
+       (run_normal_debug): Likewise.
+       (run_synch_object_debug): Likewise.
+       (run_class_debug): Likewise.
+       (run_synch_class_debug): Likewise.
+       (get1s): Likewise.
+       (get1u): Likewise.
+       (get2u): Likewise.
+       (get4): Likewise.
+       (NULLARRAYCHECK): Likewise.
+       (ARRAYBOUNDSCHECK): Likewise.
+       * interpret-run.cc (insn_target) <breakpoint>: Tidy.
+
+2007-01-29  Tom Tromey  <tromey@redhat.com>
+
+       * configure, Makefile.in: Rebuilt.
+       * Makefile.am (bin_SCRIPTS): Never install scripts/jar.
+       * configure.ac (BASH_JAR): Removed conditional.
+       (JAR): Prefer the jar found by AC_CHECK_PROGS.
+
+2007-01-29  Tom Tromey  <tromey@redhat.com>
+
+       * Makefile.in: Rebuilt.
+       * Makefile.am (interpret.lo): New target.  Add -fwrap to
+       AM_CXXFLAGS.
+
+2007-01-29  Keith Seitz  <keiths@redhat.com>
+
+       * include/jvmti_md.h (_CLASSPATH_VM_JVMTI_TYPES_DEFINED):
+       Define.
+       [__GCJ_JNI_IMPL__]: Define our own JVMTI types when building
+       gcj. All jvmti object types now are defined to be their
+       corresponding java classes.
+       * jvmti.cc (_Jv_JVMTI_SuspendThread): Remove casting from
+       jthread to Thread*.
+       (_Jv_JVMTI_ResumeThread): Likewise.
+       (_Jv_JVMTI_InterruptThread): Likewise.
+       (_Jv_JVMTI_SetEventNotificationMode): Likewise.
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc
+       (jdwpClassPrepareCB): Likewise.
+       (jdwpThreadEndCB): Likewise.
+       (jdwpThreadStartCB): Likewise.
+       (jdwpVMInitCB): Likewise.
+2007-01-28  Michele Sandri  <gpointorama@gmail.com>
+
+       * gnu/java/nio/channels/natFileChannelWin32.cc
+       (lock): Implemented.
+       (unlock): Implemented.
+
+2007-01-27  Andreas Tobler  <a.tobler@schweiz.org>
+
+       PR libgcj/30513
+       * configure.host: Add forgottten sysdep_dir to sparc. Add a flag to
+       libgcj_flags to undefine 'sun' at compile time.
+       * sysdep/sparc/locks.h (read_barrier): New functions for 32 and 64 bit
+       Sparc.
+       (write_barrier): Likewise.
+
+2007-01-27  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc
+       (getAllClassMethods): Move error handling to ...
+       (throw_jvmti_error): ... here.
+       (jdwpClassPrepareCB): New function.
+       (jdwpThreadEndCB): New function.
+       (jdwpThreadStartCB): New function.
+       (jdwpVMDeathCB): New function.
+       (jdwpVMInitCB): Define and enable callbacks for
+       ClassPrepare, ThreadEnd, ThreadStart, and VMDeath.
+
+2007-01-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * Makefile.am (generic_header_files): Add $(inner_nat_headers).
+       * testsuite/Makefile.am (check-dejaGNU): Depend on compile-tests.
+       (MYGCJH): New variable.
+       (compile-tests): New goal.
+       * Makefile.in: Rebuilt.
+       * testsuite/Makefile.in: Rebuilt.
+
+2007-01-26  Andrew Haley  <aph@redhat.com>
+
+       * java/lang/natClass.cc (initializeClass): Re-throw
+       SecurityExceptions.
+       * java/lang/natVMClassLoader.cc (loadClass): checkPackageAccess.
+       * java/lang/ClassLoader.java: (loadClass): Likewise.
+
+2007-01-26  Tom Tromey  <tromey@redhat.com>
+
+       * Updated headers.
+
+2007-01-25  Tom Tromey  <tromey@redhat.com>
+
+       PR libgcj/29594:
+       * gnu/gcj/convert/Convert.java (main): Correctly handle missing
+       input or output encodings.  Removed unused local variables.
+
+2007-01-25  Keith Seitz  <keiths@redhat.com>
+
+       * include/jvmti-int.h (_Jv_GetJDWP_JVMTIEnv): Declare.
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc
+       (_Jv_GetJDWP_JVMTIEnv): New function.
+       * gnu/classpath/jdwp/natVMMethod.cc (getName): Implement.
+       (getSignature): Implement.
+       (getModifiers): Implement.
+
+2007-01-25  Andrew Haley  <aph@redhat.com>
+
+       * configure, Makefile.in, include/config.h.in: Rebuilt.
+       * Makefile.am (libgcj_la_LIBADD): Removed $(LIBMAGIC).
+       * configure.ac: Don't check for libmagic.
+       * java/net/natVMURLConnection.cc (p_magic_open, p_magic_load,
+       p_magic_close, p_magic_buffer): New globals.
+       (init): Look up 'magic' functions.
+       (guessContentTypeFromBuffer): Updated.
+
+2007-01-25  Keith Seitz  <keiths@redhat.com>
+
+       * jvmti.cc (_Jv_JVMTI_GetMethodName): New function.
+       (_Jv_JVMTI_Interface): Define GetMethodName.
+       * testsuite/libjava.jvmti/getmethodname.java: New file.
+       * testsuite/libjava.jvmti/natgetmethodname.cc: New file.
+       * testsuite/libjava.jvmti/getmethodname.out: New file. 
+
+2007-01-24  Kyle Galloway  <kgallowa@redhat.com>
+
+       * libjava/testsuite/libjava.jvmti/jvmti-interp.exp: New file.
+       * libjava/testsuite/libjava.jvmti/interp: New folder.
+       * libjava/testsuite/lib/libjava.exp (exec_gij): New Method.
+
+2007-01-24  Keith Seitz  <keiths@redhat.com>
+
+       * link.cc (_Jv_Linker::wait_for_state): Add JVMTI
+       CLASS_PREPARE notification.
+
+2007-01-24  Keith Seitz  <keiths@redhat.com>
+
+       * interpret.cc: Include gnu/gcj/jvmti/Breakpoint.h,
+       gnu/gcj/jvmti/BreakpointManager.h, jvmti.h, and jvmti-int.h
+       * interpret-run.cc: Implement insn_breakpoint.
+
+2007-01-24  Keith Seitz  <keiths@redhat.com>
+
+       * prims.cc (_Jv_RunMain): Send JVMTI event notifications
+       for VM_INIT and VM_DEATH instead of the JDWP notifications.
+
+2007-01-24  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc
+       (getAllClassMethods): Implement.
+
+2007-01-24  Andrew Haley  <aph@redhat.com>
+
+       * gnu/classpath/natVMStackWalker.cc: Call InitClass everywhere.
+       (getClassContext) Add a barrier to prevent GetStackWalkerStack()
+       from being sibcalled.
+
+2007-01-24  Andrew Haley  <aph@redhat.com>
+
+       * scripts/makemake.tcl (emit_bc_rule): Set the source filename.
+       * sources.am: Rebuild.
+
+2007-01-24  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * exception.cc (parse_lsda_header, PERSONALITY_FUNCTION): Replaced
+       _Unwind_Word with _uleb128_t and _Unwind_SWord with _sleb128_t.
+
+2007-01-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR libgcj/30550
+       * Makefile.am (ecjx_DEPENDENCIES): Add libgcj_bc.la if needed.
+       * Makefile.in: Regenerated.
+
+2007-01-22  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc
+       (getClassMethod): Implement.
+
+2007-01-22  Keith  Seitz  <keiths@redhat.com>
+
+       * java/lang/Class.h (_Jv_GetClassStatus): Declare.
+       * java/lang/natClass.cc (_Jv_GetClassStatus): New function.
+       * jvmti.cc (_Jv_JVMTI_GetClassStatus): New function.
+       (_Jv_JVMTI_Interface): Define GetClassStatus.
+
+2007-01-22  Tom Tromey  <tromey@redhat.com>
+
+       * configure: Rebuilt.
+       * configure.ac (GCJ): Reverted patch of 2006-12-20.
+
+2007-01-22  Tom Tromey  <tromey@redhat.com>
+
+       PR java/29812:
+       * testsuite/libjava.jni/pr29812.java: New file.
+       * testsuite/libjava.jni/pr29812_injar.java: New file.
+       * testsuite/libjava.jni/pr29812_injar.jar: New file.
+       * testsuite/libjava.jni/pr29812.out: New file.
+       * testsuite/libjava.jni/pr29812_injar.c: New file.
+       * testsuite/libjava.jni/pr29812_injar.h: New file.
+       * testsuite/libjava.jni/pr29812.jar: New file.
+       * testsuite/libjava.jni/pr29812.c: New file.
+       * testsuite/libjava.jni/pr29812.h: New file.
+       * testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation):
+       New proc.
+       (gcj_jni_invocation_test_one): Use it.
+       (gcj_jni_pr29812): New proc.
+       (gcj_jni_run): Use it.
+       * java/lang/natRuntime.cc (_load): Push a new system frame before
+       calling JNI_OnLoad.
+       * include/jvm.h (_Jv_JNI_PopSystemFrame): Declare.
+       (_Jv_GetJNIEnvNewFrameWithLoader): Likewise.
+       * jni.cc (struct _Jv_JNI_LocalFrame) <marker>: Now unsigned char.
+       <allocated_p>: Now bool.
+       <loader>: New field.
+       (_Jv_JNI_EnsureLocalCapacity): Updated.
+       (_Jv_JNI_NewLocalRef): Likewise.
+       (_Jv_JNI_NewLocalRef): Likewise.
+       (_Jv_JNI_PopLocalFrame): Likewise.
+       (_Jv_JNI_FindClass): Likewise.
+       (_Jv_GetJNIEnvNewFrame): Likewise.
+       (_Jv_JNI_AttachCurrentThread): Likewise.
+       (_Jv_GetJNIEnvNewFrameWithLoader): New function.
+       (_Jv_GetJNIEnvNewFrame): Use it.
+       * include/jni_md.h (_CLASSPATH_JNIENV_CONTENTS): Removed 'klass'.
+
+2007-01-22  Tom Tromey  <tromey@redhat.com>
+
+       * libtool-version: Bump current to 9.
+
+2007-01-22  Andrew Haley  <aph@redhat.com>
+
+       * sysdep/alpha/locks.h (write_barrier): New.
+
+2007-01-21  Matthias Klose  <doko@debian.org>
+
+       * Makefile.am (install-exec-hook): Use transformed name.
+       * Makefile.in: Regenerate.
+
+2007-01-19  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc: Mark unused parameters
+       in methods and reformat.
+
+       * gnu/classpath/jdwp/natVMFrame.cc: Mark unused parameters with
+       MAYBE_UNUSED.
+
+2007-01-18  Keith Seitz  <keiths@redhat.com>
+
+       From Macro Trudel <mtrudel@gmx.ch>:
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc (jdwpVMInitCB):
+       Use JNICALL.
+
+2007-01-18  Marco Trudel  <mtrudel@gmx.ch>
+
+       * jni.cc (_Jv_JNI_FindClass): Initialize class.
+       * testsuite/libjava.jni/findclass2.jar: New file.
+       * testsuite/libjava.jni/findclass2.h: New file.
+       * testsuite/libjava.jni/findclass2.java: New file
+       * testsuite/libjava.jni/findclass2.c: New file.
+       * testsuite/libjava.jni/findclass2.out: New file.
+
+2007-01-18  Tom Tromey  <tromey@redhat.com>
+
+       * configure: Rebuilt.
+       * configure.ac: Use multi_basedir instead of libgcj_basedir.
+
+2007-01-18  Gary Benson  <gbenson@redhat.com>
+
+       * gnu/java/nio/natVMPipeEcos.cc:
+       Renamed from gnu/java/nio/natPipeImplEcos.cc.
+       * gnu/java/nio/natVMPipePosix.cc:
+       Renamed from gnu/java/nio/natPipeImplPosix.cc.
+       * gnu/java/nio/natVMPipeWin32.cc:
+       Renamed from gnu/java/nio/natPipeImplWin32.cc.
+       * gnu/java/nio/natVMSelectorEcos.cc:
+       Renamed from gnu/java/nio/natSelectorImplEcos.cc.
+       * gnu/java/nio/natVMSelectorPosix.cc:
+       Renamed from gnu/java/nio/natSelectorImplPosix.cc.
+       * gnu/java/nio/natVMSelectorWin32.cc:
+       Renamed from gnu/java/nio/natSelectorImplWin32.cc.
+       * java/io/natVMObjectInputStream.cc:
+       Renamed from java/io/natObjectInputStream.cc.
+       * java/lang/natVMDouble.cc:
+       Renamed from java/lang/natDouble.cc.
+       * java/lang/natVMFloat.cc:
+       Renamed from java/lang/natFloat.cc.     
+       * Makefile.am, configure.ac: Reflect the above.
+       * Makefile.in, configure: Rebuilt.
+
+2007-01-17  Andrew Haley  <aph@redhat.com>
+
+       * Makefile.in: Rebuilt.
+       * Makefile.am (ecjx_LDFLAGS): Pass -fbootclasspath.
+
+2007-01-17  Keith Seitz  <keiths@redhat.com>
+
+       * java/lang/natThread.cc (finish_): Add JVMTI ThreadEnd notification.
+       (_Jv_NotifyThreadStart): Add JVMTI ThreadStart notification.
+
+2007-01-16  Jack Howarth  <howarth@bromo.med.uc.edu>
+
+       * configure.ac: Use multi.m4 from aclocal rather than custom
+       code.  Use multi_basedir instead libgcj_basedir.  Test for
+       /proc/self/exe when not cross-compiling.
+       * aclocal.m4: Regenerate.
+       * configure: Regenerate.
+       * Makefile.in: Regenerate.
+
+2007-01-17  Gary Benson  <gbenson@redhat.com>
+
+       * java/nio/natVMDirectByteBufferImpl.cc:
+       Renamed from java/nio/natDirectByteBufferImpl.cc.
+       * Makefile.am: Reflect the above.
+       * Makefile.in: Rebuilt.
+       
+2007-01-17  Marco Trudel  <mtrudel@gmx.ch>
+
+       * jvmti.cc (_Jv_JVMTI_GetAllThreads): Now static.  Use JNICALL.
+       Fixed indentation.  Removed unused variable.
+
+2007-01-16  Tom Tromey  <tromey@redhat.com>
+
+       * java/lang/natThread.cc (finalize_native): Remove cast.
+       (_Jv_GetCurrentJNIEnv): Likewise.
+       * include/jvm.h (struct natThread) <jni_env>: Declare as
+       _Jv_JNIEnv*.
+
+2007-01-16  Keith Seitz  <keiths@redhat.com>
+
+       * testsuite/libjava.jvmti/natevents.cc (FieldModificationCB): Use
+       %#llx instead of %d for new_value.
+       * testsuite/libjava.jvmti/events.out: Update expected output.
+       * testsuite/libjava.jvmti/events.jar: Regenerate.
+
+2007-01-16  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc (DEFINE_CALLBACK):
+       New macro.
+       (ENABLE_EVENT): New macro.
+       (initialize): Define and enable JVMTI VM_INIT callback.
+       (jdwpVMInitCB): New function.
+
+2007-01-16  Kyle Galloway  <kgallowa@redhat.com>
+
+       * jvmti.cc (_Jv_JVMTI_GetAllThreads): New function.
+       * testsuite/libjava.jvmti/getallthreads.java: New test.
+       * testsuite/libjava.jvmti/natgetallthreads.cc: Ditto.
+       * testsuite/libjava.jvmti/getallthreads.out: Ditto.
+       * testsuite/libjava.jvmti/getallthreads.h: Ditto.
+       * testsuite/libjava.jvmti/getallthreads.jar: Ditto. 
+
+2007-01-15  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/natVMVirtualMachine.cc (suspendThread): Use
+       java.lang.StringBuilder instead of java.lang.StringBuffer.
+       (resumeThread): Likewise.
+
+2007-01-15  Gary Benson  <gbenson@redhat.com>
+
+       * java/nio/MappedByteBuffer.java: Removed.
+       * sources.am, Makefile.in: Rebuilt.
+
+2007-01-15  Gary Benson  <gbenson@redhat.com>
+
+       * java/net/URLClassLoader.java: Removed.
+       * gnu/java/net/loader/Load_gcjlib.java: New file.
+       * gnu/gcj/runtime/BootClassLoader.java: Ensure core
+       URL handler is present in static executables.
+       * sources.am, Makefile.in: Rebuilt.
+
+2007-01-14  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * Makefile.am (libgcj_la_LDFLAGS): Add
+       $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS).
+       (libgcj_tools_la_LDFLAGS): Likewise.
+       (libgcj_bc_la_LDFLAGS): Likewise.
+       * Makefile.in: Regenerated.
+
+       * configure.ac: Use ACX_PROG_LD_GNU_SYMBOLIC.  Set
+       LIBGCJ_LD_SYMBOLIC_FUNCTIONS to $SYMBOLIC_LDFLAGS.  Set
+       libgcj_ld_symbolic to $SYMBOLIC_LDFLAGS if it isn't set.
+       Substitute LIBGCJ_LD_SYMBOLIC_FUNCTIONS.
+       * configure: Regenerated.
+       * aclocal.m4: Likewise.
+       * gcj/Makefile.in: Likewise.
+       * include/Makefile.in: Likewise.
+       * testsuite/Makefile.in: Likewise.
+
+2007-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       * sysdep/sh/locks.h (read_barrier): New.
+       (write_barrier): Likewise.
+
+2007-01-12  Andrew Haley  <aph@redhat.com>
+
+       * include/i386-signal.h: Rewrite to use rt_sigaction.
+
+2007-01-11  Andrew Haley  <aph@redhat.com>
+
+       * prims.cc (jdwpOptions) Fix deprecated cast from char[] constant
+       to char*.
+       * include/x86_64-signal.h (HANDLE_DIVIDE_OVERFLOW): Rewrite to fix
+       aliasing violation.
+
+2007-01-10  Tom Tromey  <tromey@redhat.com>
+
+       * gnu/gcj/xlib/*.h: New files.
+       * gnu/awt/xlib/*.h: Likewise.
+       * classpath/lib/gnu/gcj/xlib: New class files.
+       * classpath/lib/gnu/awt/xlib: Likewise.
+
+2007-01-10  Tom Tromey  <tromey@redhat.com>
+
+       * HACKING: Various updates.
+
+2007-01-10  Tom Tromey  <tromey@redhat.com>
+
+       * java/lang/natDouble.cc (toString): Added parens.
+       * gnu/gcj/io/shs.h (PROTO): Define.
+       * link.cc (resolve_pool_entry): Added missing braces.
+
+2007-01-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR libgcj/30424
+       * sysdep/ia64/locks.h (read_barrier): New.
+       (write_barrier): New.
+
+2007-01-10  Gary Benson  <gbenson@redhat.com>
+
+       * java/net/URL.java: Removed.
+       * sources.am, Makefile.in: Rebuilt.
+
+2007-01-10  Matthias Klose  <doko@debian.org>
+
+       * Makefile.am (install-exec-hook): Support $(DESTDIR).
+       * Makefile.in: Regenerated.
+
+2007-01-05  Tom Tromey  <tromey@redhat.com>
+
+       * testsuite/libjava.loader/loader.exp (gcj_loader_run): Find
+       dummy.class in srcdir.
+
+2007-01-03  Tom Tromey  <tromey@redhat.com>
+
+       * testsuite/libjava.cni/cni.exp (gcj_cni_compile_cxx_to_o): Add -I
+       for srcdir.
+
+2007-01-03  Tom Tromey  <tromey@redhat.com>
+
+       * testsuite/*: Added many .jar and .h files.
+       * testsuite/libjava.special/special.exp
+       (gcj_special_try_compiler): New proc.
+       * testsuite/libjava.loader/loader.exp (gcj_loader_run): Don't
+       bytecompile source.  Search for .jar files.
+       (gcj_loader_test_one): Don't look for MyLoader.java.
+       * testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_test_one): Don't
+       bytecompile sources or build headers.
+       (gcj_jvmti_run): Look for .jar files.
+       * testsuite/libjava.jni/jni.exp (gcj_jni_run): Compile .jar
+       files.
+       (gcj_jni_test_one): Don't bytecompile sources or build headers.
+       Set classpath when invoking gij.
+       (gcj_jni_invocation_test_one): Likewise.
+       * testsuite/libjava.cni/cni.exp (gcj_cni_test_one): Don't build
+       headers or bytecompile sources.
+       (gcj_cni_run): Use .jar files, not .java files.
+       * testsuite/libjava.lang/lang.exp: Compile .jar files.
+
+2007-01-02  Tom Tromey  <tromey@redhat.com>
+
+       * configure: Rebuilt.
+       * configure.ac: Check for gjar.
+
+2007-01-02  Tom Tromey  <tromey@redhat.com>
+
+       * testsuite/libjava.jacks/jacks.exp: Removed.
+       * testsuite/libjava.jacks/jacks.xfail: Removed.
+
index ec33ea759120152cc2caa18ba04b77d1fd040e77..c42c692cef7496096458d2168e596cbdf37f59c9 100644 (file)
@@ -167,11 +167,11 @@ libgcj_tools_la_OBJECTS = $(am_libgcj_tools_la_OBJECTS)
 @INTERPRETER_TRUE@     gnu/classpath/jdwp/util.lo \
 @INTERPRETER_TRUE@     gnu/classpath/jdwp/value.lo gnu/gcj/jvmti.lo
 am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
-       gnu/classpath/debug.lo gnu/gcj.lo gnu/gcj/convert.lo \
-       gnu/gcj/io.lo gnu/gcj/runtime.lo gnu/gcj/util.lo \
-       gnu/java/awt.lo gnu/java/awt/color.lo gnu/java/awt/dnd.lo \
-       gnu/java/awt/font.lo gnu/java/awt/font/autofit.lo \
-       gnu/java/awt/font/opentype.lo \
+       gnu/classpath/debug.lo gnu/classpath/toolkit.lo gnu/gcj.lo \
+       gnu/gcj/convert.lo gnu/gcj/io.lo gnu/gcj/runtime.lo \
+       gnu/gcj/util.lo gnu/java/awt.lo gnu/java/awt/color.lo \
+       gnu/java/awt/dnd.lo gnu/java/awt/font.lo \
+       gnu/java/awt/font/autofit.lo gnu/java/awt/font/opentype.lo \
        gnu/java/awt/font/opentype/truetype.lo gnu/java/awt/image.lo \
        gnu/java/awt/java2d.lo gnu/java/awt/peer.lo \
        gnu/java/awt/peer/headless.lo gnu/java/awt/print.lo \
@@ -259,7 +259,8 @@ am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
        javax/accessibility.lo javax/activity.lo javax/crypto.lo \
        javax/crypto/interfaces.lo javax/crypto/spec.lo \
        javax/management.lo javax/management/loading.lo \
-       javax/management/openmbean.lo javax/naming.lo \
+       javax/management/openmbean.lo javax/management/remote.lo \
+       javax/management/remote/rmi.lo javax/naming.lo \
        javax/naming/directory.lo javax/naming/event.lo \
        javax/naming/ldap.lo javax/naming/spi.lo javax/net.lo \
        javax/net/ssl.lo javax/print.lo javax/print/attribute.lo \
@@ -278,7 +279,7 @@ am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
        javax/swing/table.lo javax/swing/text.lo \
        javax/swing/text/html.lo javax/swing/text/html/parser.lo \
        javax/swing/text/rtf.lo javax/swing/tree.lo \
-       javax/swing/undo.lo javax/transaction.lo \
+       javax/swing/undo.lo javax/tools.lo javax/transaction.lo \
        javax/transaction/xa.lo org/ietf/jgss.lo sun/awt.lo \
        sun/misc.lo sun/reflect.lo sun/reflect/annotation.lo \
        sun/reflect/misc.lo $(am__DEPENDENCIES_1)
@@ -1352,6 +1353,10 @@ classpath/gnu/classpath/jdwp/value/ValueFactory.java \
 classpath/gnu/classpath/jdwp/value/VoidValue.java
 
 gnu_classpath_jdwp_value_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_classpath_jdwp_value_source_files)))
+gnu_classpath_toolkit_source_files = \
+classpath/gnu/classpath/toolkit/DefaultDaemonThreadFactory.java
+
+gnu_classpath_toolkit_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_classpath_toolkit_source_files)))
 gnu_gcj_source_files = \
 gnu/gcj/Core.java \
 gnu/gcj/RawData.java \
@@ -1488,7 +1493,8 @@ classpath/gnu/java/awt/dnd/peer/gtk/GtkDropTargetPeer.java
 gnu_java_awt_font_source_files = \
 classpath/gnu/java/awt/font/FontDelegate.java \
 classpath/gnu/java/awt/font/FontFactory.java \
-classpath/gnu/java/awt/font/GNUGlyphVector.java
+classpath/gnu/java/awt/font/GNUGlyphVector.java \
+classpath/gnu/java/awt/font/OpenTypeFontPeer.java
 
 gnu_java_awt_font_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_font_source_files)))
 gnu_java_awt_font_autofit_source_files = \
@@ -1533,6 +1539,8 @@ classpath/gnu/java/awt/font/opentype/truetype/ZonePathIterator.java
 
 gnu_java_awt_font_opentype_truetype_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_font_opentype_truetype_source_files)))
 gnu_java_awt_image_source_files = \
+classpath/gnu/java/awt/image/AsyncImage.java \
+classpath/gnu/java/awt/image/ImageConverter.java \
 classpath/gnu/java/awt/image/ImageDecoder.java \
 classpath/gnu/java/awt/image/XBMDecoder.java
 
@@ -1544,6 +1552,7 @@ classpath/gnu/java/awt/java2d/AlphaCompositeContext.java \
 classpath/gnu/java/awt/java2d/CubicSegment.java \
 classpath/gnu/java/awt/java2d/ImagePaint.java \
 classpath/gnu/java/awt/java2d/LineSegment.java \
+classpath/gnu/java/awt/java2d/PixelCoverage.java \
 classpath/gnu/java/awt/java2d/Pixelizer.java \
 classpath/gnu/java/awt/java2d/PolyEdge.java \
 classpath/gnu/java/awt/java2d/PolyEdgeComparator.java \
@@ -1554,6 +1563,8 @@ classpath/gnu/java/awt/java2d/ScanlineConverter.java \
 classpath/gnu/java/awt/java2d/ScanlineCoverage.java \
 classpath/gnu/java/awt/java2d/Segment.java \
 classpath/gnu/java/awt/java2d/ShapeCache.java \
+classpath/gnu/java/awt/java2d/ShapeWrapper.java \
+classpath/gnu/java/awt/java2d/TextCacheKey.java \
 classpath/gnu/java/awt/java2d/TexturePaintContext.java
 
 gnu_java_awt_java2d_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_java2d_source_files)))
@@ -1690,12 +1701,11 @@ classpath/gnu/java/awt/peer/swing/SwingWindowPeer.java
 
 gnu_java_awt_peer_x_source_files = \
 classpath/gnu/java/awt/peer/x/GLGraphics.java \
-classpath/gnu/java/awt/peer/x/ImageConverter.java \
 classpath/gnu/java/awt/peer/x/KeyboardMapping.java \
 classpath/gnu/java/awt/peer/x/PixmapVolatileImage.java \
 classpath/gnu/java/awt/peer/x/XDialogPeer.java \
 classpath/gnu/java/awt/peer/x/XEventPump.java \
-classpath/gnu/java/awt/peer/x/XFontPeer2.java \
+classpath/gnu/java/awt/peer/x/XFontPeer.java \
 classpath/gnu/java/awt/peer/x/XFramePeer.java \
 classpath/gnu/java/awt/peer/x/XGraphics2D.java \
 classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java \
@@ -1991,6 +2001,8 @@ gnu/java/nio/channels/FileChannelImpl.java
 gnu_java_nio_channels_header_files = $(patsubst %.java,%.h,$(gnu_java_nio_channels_source_files))
 gnu_java_nio_charset_source_files = \
 classpath/gnu/java/nio/charset/ByteCharset.java \
+classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java \
+classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java \
 classpath/gnu/java/nio/charset/Cp424.java \
 classpath/gnu/java/nio/charset/Cp437.java \
 classpath/gnu/java/nio/charset/Cp737.java \
@@ -2347,6 +2359,7 @@ gnu_java_util_source_files = \
 classpath/gnu/java/util/Base64.java \
 classpath/gnu/java/util/DoubleEnumeration.java \
 classpath/gnu/java/util/EmptyEnumeration.java \
+classpath/gnu/java/util/LRUCache.java \
 classpath/gnu/java/util/WeakIdentityHashMap.java \
 classpath/gnu/java/util/ZoneInfo.java
 
@@ -5296,6 +5309,16 @@ classpath/javax/management/openmbean/TabularDataSupport.java \
 classpath/javax/management/openmbean/TabularType.java
 
 javax_management_openmbean_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_openmbean_source_files)))
+javax_management_remote_source_files = \
+classpath/javax/management/remote/NotificationResult.java \
+classpath/javax/management/remote/TargetedNotification.java
+
+javax_management_remote_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_remote_source_files)))
+javax_management_remote_rmi_source_files = \
+classpath/javax/management/remote/rmi/RMIConnection.java \
+classpath/javax/management/remote/rmi/RMIServer.java
+
+javax_management_remote_rmi_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_remote_rmi_source_files)))
 javax_naming_source_files = \
 classpath/javax/naming/AuthenticationException.java \
 classpath/javax/naming/AuthenticationNotSupportedException.java \
@@ -6328,6 +6351,12 @@ classpath/javax/swing/undo/UndoableEdit.java \
 classpath/javax/swing/undo/UndoableEditSupport.java
 
 javax_swing_undo_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_swing_undo_source_files)))
+javax_tools_source_files = \
+classpath/javax/tools/Diagnostic.java \
+classpath/javax/tools/DiagnosticListener.java \
+classpath/javax/tools/FileObject.java
+
+javax_tools_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_tools_source_files)))
 javax_transaction_source_files = \
 classpath/javax/transaction/HeuristicCommitException.java \
 classpath/javax/transaction/HeuristicMixedException.java \
@@ -7260,6 +7289,7 @@ all_packages_source_files = \
   gnu/awt/j2d.list \
   gnu/classpath.list \
   gnu/classpath/debug.list \
+  gnu/classpath/toolkit.list \
   gnu/gcj.list \
   gnu/gcj/convert.list \
   gnu/gcj/io.list \
@@ -7450,6 +7480,8 @@ all_packages_source_files = \
   javax/management.list \
   javax/management/loading.list \
   javax/management/openmbean.list \
+  javax/management/remote.list \
+  javax/management/remote/rmi.list \
   javax/naming.list \
   javax/naming/directory.list \
   javax/naming/event.list \
@@ -7491,6 +7523,7 @@ all_packages_source_files = \
   javax/swing/text/rtf.list \
   javax/swing/tree.list \
   javax/swing/undo.list \
+  javax/tools.list \
   javax/transaction.list \
   javax/transaction/xa.list \
   org/ietf/jgss.list \
@@ -7506,6 +7539,7 @@ ordinary_header_files = \
   $(gnu_awt_j2d_header_files) \
   $(gnu_classpath_header_files) \
   $(gnu_classpath_debug_header_files) \
+  $(gnu_classpath_toolkit_header_files) \
   $(gnu_gcj_header_files) \
   $(gnu_gcj_convert_header_files) \
   $(gnu_gcj_io_header_files) \
@@ -7693,6 +7727,8 @@ ordinary_header_files = \
   $(javax_management_header_files) \
   $(javax_management_loading_header_files) \
   $(javax_management_openmbean_header_files) \
+  $(javax_management_remote_header_files) \
+  $(javax_management_remote_rmi_header_files) \
   $(javax_naming_header_files) \
   $(javax_naming_directory_header_files) \
   $(javax_naming_event_header_files) \
@@ -7734,6 +7770,7 @@ ordinary_header_files = \
   $(javax_swing_text_rtf_header_files) \
   $(javax_swing_tree_header_files) \
   $(javax_swing_undo_header_files) \
+  $(javax_tools_header_files) \
   $(javax_transaction_header_files) \
   $(javax_transaction_xa_header_files) \
   $(org_ietf_jgss_header_files) \
@@ -7784,23 +7821,10 @@ bc_objects = \
   org-xml.lo
 
 property_files = \
-  classpath/resource/gnu/classpath/tools/appletviewer/messages.properties \
-  classpath/resource/gnu/classpath/tools/common/Messages.properties \
-  classpath/resource/gnu/classpath/tools/getopt/Messages.properties \
-  classpath/resource/gnu/classpath/tools/jar/messages.properties \
-  classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties \
-  classpath/resource/gnu/classpath/tools/jarsigner/messages.properties \
-  classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties \
-  classpath/resource/gnu/classpath/tools/keytool/messages.properties \
-  classpath/resource/gnu/classpath/tools/native2ascii/messages.properties \
-  classpath/resource/gnu/classpath/tools/orbd/messages.properties \
-  classpath/resource/gnu/classpath/tools/rmic/messages.properties \
-  classpath/resource/gnu/classpath/tools/rmid/messages.properties \
-  classpath/resource/gnu/classpath/tools/rmiregistry/messages.properties \
-  classpath/resource/gnu/classpath/tools/serialver/messages.properties \
-  classpath/resource/gnu/classpath/tools/tnameserv/messages.properties \
+  classpath/resource/gnu/java/awt/font/fonts.properties \
   classpath/resource/gnu/java/awt/peer/gtk/font.properties \
   classpath/resource/gnu/java/awt/peer/x/fonts.properties \
+  classpath/resource/gnu/java/awt/peer/x/xfonts.properties \
   classpath/resource/gnu/java/locale/LocaleInformation.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_aa.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_aa_DJ.properties \
@@ -8081,8 +8105,6 @@ property_files = \
   classpath/resource/javax/imageio/plugins/jpeg/MessagesBundle.properties \
   classpath/resource/javax/swing/text/html/default.css \
   classpath/resource/org/ietf/jgss/MessagesBundle.properties \
-  classpath/resource/sun/rmi/rmic/messages.properties \
-  classpath/resource/com/sun/tools/javac/messages.properties \
   classpath/resource/META-INF/services/java.util.prefs.PreferencesFactory \
   classpath/resource/META-INF/services/java.util.prefs.PreferencesFactory.in \
   classpath/resource/META-INF/services/javax.sound.midi.spi.MidiDeviceProvider \
@@ -10424,6 +10446,12 @@ gnu/classpath/jdwp/value.list: $(gnu_classpath_jdwp_value_source_files)
 
 -include gnu/classpath/jdwp/value.deps
 
+gnu/classpath/toolkit.list: $(gnu_classpath_toolkit_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       echo $(srcdir)/classpath/lib/gnu/classpath/toolkit/*.class > gnu/classpath/toolkit.list
+
+-include gnu/classpath/toolkit.deps
+
 gnu/gcj.list: $(gnu_gcj_source_files)
        @$(mkinstalldirs) $(dir $@)
        echo $(srcdir)/classpath/lib/gnu/gcj/*.class > gnu/gcj.list
@@ -11692,6 +11720,18 @@ javax/management/openmbean.list: $(javax_management_openmbean_source_files)
 
 -include javax/management/openmbean.deps
 
+javax/management/remote.list: $(javax_management_remote_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       echo $(srcdir)/classpath/lib/javax/management/remote/*.class > javax/management/remote.list
+
+-include javax/management/remote.deps
+
+javax/management/remote/rmi.list: $(javax_management_remote_rmi_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       echo $(srcdir)/classpath/lib/javax/management/remote/rmi/*.class > javax/management/remote/rmi.list
+
+-include javax/management/remote/rmi.deps
+
 javax/naming.list: $(javax_naming_source_files)
        @$(mkinstalldirs) $(dir $@)
        echo $(srcdir)/classpath/lib/javax/naming/*.class > javax/naming.list
@@ -11943,6 +11983,12 @@ javax/swing/undo.list: $(javax_swing_undo_source_files)
 
 -include javax/swing/undo.deps
 
+javax/tools.list: $(javax_tools_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       echo $(srcdir)/classpath/lib/javax/tools/*.class > javax/tools.list
+
+-include javax/tools.deps
+
 javax/transaction.list: $(javax_transaction_source_files)
        @$(mkinstalldirs) $(dir $@)
        echo $(srcdir)/classpath/lib/javax/transaction/*.class > javax/transaction.list
index 5369251bd991fcb12767429794c20a2213624a2b..096db242f4424ea41db24e11eba38baabde406f2 100644 (file)
@@ -350,7 +350,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 # with or without modifications, as long as this notice is preserved.
 
 AC_DEFUN([AM_PROG_GCJ],[
-AC_CHECK_PROGS(GCJ, [gcj gcj-3.2 gcj-3.1 gcj-3.0 gcj-2.95], gcj)
+AC_CHECK_PROGS(GCJ, gcj, gcj)
 test -z "$GCJ" && AC_MSG_ERROR([no acceptable gcj found in \$PATH])
 if test "x${GCJFLAGS-unset}" = xunset; then
    GCJFLAGS="-g -O2"
index 4efc086df61a28e558da0cf3e2998a1f0c5931e2..be17176a6f07795d844487f3f857462d07e98353 100644 (file)
@@ -39,7 +39,9 @@ Bryce McKinlay (bryce@waitaki.otago.ac.nz)
 Audrius Meskauskas (audriusa@Bioinformatics.org)
 Raif S. Naffah (raif@swiftdsl.com.au)
 Aaron M. Renn (arenn@urbanophile.com)
+Ian Rogers (ian.rogers@manchester.ac.uk)
 Andrew Selkirk (aselkirk@sympatico.ca)
+Robert Schuster (robertschuster@fsfe.org)
 Christian Thalinger (twisti@complang.tuwien.ac.at)
 Andreas Tobler (a.tobler@schweiz.org)
 Mario Torre (neugens@limasoftware.net)
index 3b0c3c3e057243f72e994f8ba4519e0bbc4cbe59..10a167cb08c4ad576440a0d46ae4f15e5a666954 100644 (file)
        * scripts/Makefile.in: Regenerate.
        * tools/Makefile.in: Regenerate.
 
-2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
+2008-06-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       PR bootstrap/35457
-       * aclocal.m4: Regenerate.
-       * configure: Regenerate.
-
-2008-04-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
-
-       * lib/gen-classlist.sh.in: Avoid grepping each omission, by
-       building an awk script with a hash for literal files, and
-       awk regular expressions for the rest.
-       * configure.ac: Call AC_PROG_AWK.
-       * configure: Regenerate.
-
-       * m4/gcc_attribute.m4 (GCC_ATTRIBUTE): Fix cache variable name.
-       * tools/Makefile.am (gappletviewer, gjarsigner, gkeytool, gjar)
-       (gnative2ascii, gserialver, gjavah, grmiregistry, gtnameserv)
-       (gorbd, grmid, grmic) [!CREATE_WRAPPERS]: Add stub dependencies
-       for these scripts, to trick automake into hiding the respective
-       rules for the programs below the CREATE_WRAPPERS conditional.
-       * aclocal.m4: Regenerate.
-       * configure: Likewise.
-       * Makefile.in: Likewise.
-       * native/jni/Makefile.in: Likewise.
-       * native/jni/classpath/Makefile.in: Likewise.
-       * native/jni/gstreamer-peer/Makefile.in: Likewise.
-       * native/jni/midi-dssi/Makefile.in: Likewise.
-       * native/jni/gconf-peer/Makefile.in: Likewise.
-       * native/jni/java-io/Makefile.in: Likewise.
-       * native/jni/native-lib/Makefile.in: Likewise.
-       * native/jni/java-util/Makefile.in: Likewise.
-       * native/jni/java-lang/Makefile.in: Likewise.
-       * native/jni/midi-alsa/Makefile.in: Likewise.
-       * native/jni/java-nio/Makefile.in: Likewise.
-       * native/jni/java-net/Makefile.in: Likewise.
-       * native/jni/xmlj/Makefile.in: Likewise.
-       * native/jni/qt-peer/Makefile.in: Likewise.
-       * native/jni/gtk-peer/Makefile.in: Likewise.
-       * native/Makefile.in: Likewise.
-       * native/jawt/Makefile.in: Likewise.
-       * native/fdlibm/Makefile.in: Likewise.
-       * native/plugin/Makefile.in: Likewise.
-       * resource/Makefile.in: Likewise.
-       * scripts/Makefile.in: Likewise.
-       * tools/Makefile.in: Likewise.
-       * doc/Makefile.in: Likewise.
-       * doc/api/Makefile.in: Likewise.
-       * lib/Makefile.in: Likewise.
-       * external/Makefile.in: Likewise.
-       * external/jsr166/Makefile.in: Likewise.
-       * external/sax/Makefile.in: Likewise.
-       * external/w3c_dom/Makefile.in: Likewise.
-       * external/relaxngDatatype/Makefile.in: Likewise.
-       * include/Makefile.in: Likewise.
-       * examples/Makefile.in: Likewise.
-
-2008-03-10  Jim Meyering  <meyering@redhat.com>
-
-       Don't leak upon failed realloc.
-       * native/jni/classpath/jcl.c (JCL_realloc): Upon failed realloc,
-       free the original buffer before throwing the exception.
+       * configure.ac: Set version to 0.97.2.
+       * NEWS: Add 0.97.2.
 
-2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+2008-05-10  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * doc/cp-hacking.texinfo: Fix spacing after periods.
-       * doc/cp-tools.texinfo: Likewise.
-       * doc/cp-vmintegration.texinfo: Likewise.
+       * vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java:
+       Remove use of 1.5 language constructs.
 
-       * doc/cp-hacking.texinfo: Fix some typos.
-       * doc/cp-tools.texinfo: Likewise.
-       * doc/cp-vmintegration.texinfo: Likewise.
+2008-06-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2008-01-27  Bernhard Fischer  <rep.dot.nop@gmail.com>
+       * tools/gnu/classpath/tools/common/ClasspathToolParser.java:
+       Fixed indentation and changed to use OptionException.
+       * tools/gnu/classpath/tools/getopt/OptionException.java:
+       (OptionException(String,Throwable)): Added.
 
-       * java/util/SimpleTimeZone.java (SimpleTimeZone): Fix typo in comment.
-       * gnu/CORBA/GIOP/v1_2/RequestHeader.java (RequestHeader): Fix typo in
-       exception message.
-
-2008-01-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
-
-       * doc/README.jaxp: Fix typos.
-
-2008-01-24  Tom Tromey  <tromey@redhat.com>
-
-       * resource/gnu/classpath/tools/native2ascii/messages.properties
-       (Native2ASCII.ReversedHelpCompat): New.
-       * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
-       (createParser): Add -reverse.  Update -reversed.
+2008-06-03  Robert Schuster  <robertschuster@fsfe.org>
 
-2008-01-21  Luciano Chavez  <lnx1138@us.ibm.com>
+       * tools/gnu/classpath/tools/jar/Main.java:
+       (run): Call different ClasspathToolParser.parse() variant.
+       (getParser): Changed return type to ClasspathToolParser.
+       * tools/gnu/classpath/tools/javah/GcjhMain.java:
+       (getParser): Changed return type to ClasspathToolParser.
+       * tools/gnu/classpath/tools/javah/Main.java:
+       (getParser): Changed return type to ClasspathToolParser.
+       * tools/gnu/classpath/tools/getopt/Parser.java: Make 'programName'
+       protected.
+       * tools/gnu/classpath/tools/common/ClasspathToolParser.java:
+       (parse(String[], FileArgumentCallback,boolean): New method.
+       (parse(String[], boolean): New method.
+       (parseFileList): New method.
+       (parseLine): New method.
+       (AtFileArgumentCallback): New inner class.
 
-       PR libgcj/34369:
-       * java/net/URI.java (relativize): Check initial segment for
-       trailing "/".
+2008-06-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2007-12-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
+       * tools/gnu/classpath/tools/getopt/OptionException.java,
+       * tools/gnu/classpath/tools/jar/Main.java:
+       Revert previous changes to allow Schuster's patch to
+       do the same.
 
-       * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
-       native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
-       (isWindowUnderMouse): New method.
-       * include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h:
-       Regenerate.
-       * gnu/java/awt/peer/gtk/GtkComponentPeer.java
-       (getLocationOnScreen): Move WindowPeer section to...
-       * gnu/java/awt/peer/gtk/GtkWindowPeer.java (getLocationOnScreen):
-       New method.
-       * gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java
-       (isWindowUnderMouse): Implement.
-       * java/awt/Component.java (getMousePosition): New method.
-       (getMousePositionHelper): Likewise.
-       (mouseOverComponent): Likewise.
-       * java/awt/Container.java (getMousePosition): New method.
-       (mouseOverComponent): Likewise.
-       * classpath/lib/java/awt/Component.class,
-       classpath/lib/java/awt/Component$BltBufferStrategy.class,
-       classpath/lib/java/awt/Container$GfxPaintAllVisitor.class,
-       classpath/lib/java/awt/Component$AccessibleAWTComponent
-       $AccessibleAWTFocusHandler.class,
-       classpath/lib/java/awt/Component$FlipBufferStrategy.class,
-       classpath/lib/java/awt/Container$GfxVisitor.class,
-       classpath/lib/java/awt/Component$AccessibleAWTComponent
-       $AccessibleAWTComponentHandler.class,
-       classpath/lib/java/awt/Container$AccessibleAWTContainer
-       $AccessibleContainerHandler.class,
-       classpath/lib/java/awt/Container.class,
-       classpath/lib/java/awt/Container$AccessibleAWTContainer.class,
-       classpath/lib/java/awt/Container$GfxPrintAllVisitor.class,
-       classpath/lib/java/awt/Component$AccessibleAWTComponent.class,
-       classpath/lib/java/awt/Container$GfxPaintVisitor.class,
-       classpath/lib/java/awt/Container$GfxPrintVisitor.class,
-       classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class,
-       classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class,
-       classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class,
-       classpath/lib/gnu/java/awt/peer/gtk/GtkMouseInfoPeer.class,
-       classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class,
-       classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer
-       $RepaintTimerTask.class:
-       Regenerate.
-
-2007-10-01  Alexandre Oliva  <aoliva@redhat.com>
-
-       * scripts/check_jni_methods.sh: Don't depend on diff -b ignoring
-       a single trailing whitespace.
-
-2007-08-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * java/util/EnumSet.java:
-       Documented.
-       (complementOf(EnumSet)): Fixed to flip only
-       the bits used by the enumset.
-
-2007-07-31  Dalibor Topic  <robilad@kaffe.org>
-
-       PR 32844
-       * java/util/EnumSet.java:
-       Made class abstract per API spec.
-       (size, iterator, add, addAll, clear, contains,
-       containsAll, remove, removeAll, retainAll) Moved 
-       into an anonymous inner class in of(T).
-       (allOf, noneOf, copyOf, of, range) Made more 
-       implementation independent.
-       (of(T)) return an instance of an anonymous class
-       implementing EmptySet.
-2007-07-28  Matthias Klose  <doko@ubuntu.com>
-
-       * include/jvmti.h(jniNativeInterface): Rename type.
-
-2007-07-24  Tom Tromey  <tromey@redhat.com>
-
-       PR java/32862:
-       * java/util/EnumMap.java (get): Special case emptySlot.
-       (clone): Rewrote.
-
-2007-07-23  Christian Thalinger  <twisti@complang.tuwien.ac.at>
-
-       * gnu/java/nio/charset/ISO_8859_1.java: Added ISO8859-1 to
-       aliases.
-
-2007-07-23  Christian Thalinger  <twisti@complang.tuwien.ac.at>
-
-       * vm/reference/sun/misc/Unsafe.java (unpark): Changed signature to
-       be compatible with OpenJDK.
-
-2007-07-13  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/awt/java2d/AbstractGraphics2D.java
-       (clip(Shape)): Call setClip when the clip changes.
-       (drawImage): Add translation.
-       (drawLine): Add translation.
-       * gnu/java/awt/peer/x/PixmapVolatileImage.java
-       (getPixmap): New method.
-       * gnu/java/awt/peer/x/XEventPump.java
-       (XEventPump): Name thread. Start as daemon thread.
-       * gnu/java/awt/peer/x/XGraphics2D.java
-       (rawDrawImage): Special handling for PixmapVolatileImage.
-       (rawDrawLine): Don't add translation here. This is done in
-       the superclass.
-       (rawFillRect): Don't add translation here. This is done in
-       the superclass.
-       (renderScanline): Added null check.
-
-2007-07-13  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/awt/peer/x/PixmapVolatileImage.java: New class.
-       * gnu/java/awt/peer/x/XGraphicsConfiguration.java
-       (createCompatibleImage(int,int)): Delegate to the 3-int overload.
-       (createCompatibleImage(int,int,int)): Implemented. Using
-       the ZPixmapDataBuffer for OPAQUE images.
-       (createCompatibleVolatileImage(int,int)): Delegate to the 3-int
-       overload.
-       (createCompatibleVolatileImage(int,int,int)): Implemented. Using
-       PixmapVolatileImage.
-       * gnu/java/awt/peer/x/XWindowPeer.java
-       (createImage): Return a PixmapVolatileImage (for now).
-       (createVolatileImage): Implemented, using PixmapVolatileImage.
-       * gnu/java/awt/peer/x/ZPixmapDataBuffer.java
-       New class.
-
-2007-07-10  Roman Kennke  <roman@kennke.org>
-
-       PR 32645
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
-       (copyPixbuf): Swap asserts.
-
-2007-07-09  Chris Burdess  <dog@gnu.org>
-
-       Fixes #32672
-       * gnu/xml/dom/DomElement.java,
-       * gnu/xml/dom/DomNamedNodeMap.java: don't check owner in
-         setNamedNode when cloning.
-
-2007-07-08  Mario Torre  <neugens@limasoftware.net>
-
-       * gnu/javax/sound/sampled/gstreamer: new package hierarchy.
-       * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java: new file.
-       * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java:
-       likewise.
-       * gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java: likewise.
-       * gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java: likewise.
-       * gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java: likewise.
-       * gnu/javax/sound/AudioSecurityManager.java: likewise. 
-       * gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java: likewise.
-       * gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java: likewise.
-       * gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java: likewise.
-       * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.java: likewise. 
-       * resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in:
-       likewise.
-       * resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in:
-       likewise.
-       * resource/META-INF/services/javax.sound.sampled.spi.MixerProvider:
-       likewise.
-       * native/jni/gstreamer-peer/gstclasspathsrc.c: likewise.
-       * native/jni/gstreamer-peer/gstclasspathsrc.h: likewise.
-       * native/jni/gstreamer-peer/gstinputstream.c: likewise.
-       * native/jni/gstreamer-peer/gstinputstream.h: likewise.
-       * native/jni/gstreamer-peer/GStreamerIOPeer.c: likewise.
-       * native/jni/gstreamer-peer/Makefile.am: likewise.
-       * native/jni/gstreamer-peer/.cvsignore: likewise.
-       * include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h:
-       likewise.
-       * include/Makefile.am: add gstreamer generated headers.
-       * configure.ac: add gstreamer sound backend configuration.
-       The backend is currently disabled by default.
-       * native/jni/Makefile.am: code to allow compilation of the gstreamer
-       sound backend.
-       * javax/sound/sampled/spi/MixerProvider.java (isMixerSupported):
-       indentation fixes.
-       * javax/sound/sampled/AudioFormat.java (toString): fix method to display
-       informations only when available.
-       * javax/sound/sampled/DataLine.java:
-       (Info.isFormatSupported):  indentation fixes.
-       (Info):  indentation fixes.
-       (Info.toString):  indentation fixes.
-       (Info.matches):  indentation fixes.
-
-2007-07-03  Tania Bento  <tbento@redhat.com>
+2008-06-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
        * java/lang/Integer.java:
-       (parseInt(String,int,boolean)): Throw NumberFormatException if 
-       String is just "+".
-
-2007-07-01  Chris Burdess  <dog@gnu.org>
-
-       * gnu/xml/transform/WithParam.java: Handle case where content is
-         empty.
-
-2007-06-28  Tom Tromey  <tromey@redhat.com>
-
-       * include/jni.h: Fixed local variables.
-
-2007-06-26  Ito Kazumitsu  <kaz@maczuka.gcd.org>
-
-       * ChangeLog: Correction of a bug fix number.
-
-2007-06-25  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/awt/peer/ClasspathFontPeer.java
-       (canDisplay): Take character as integer codepoint.
-       * gnu/java/awt/peer/gtk/GdkFontPeer.java
-       (canDisplay): Take character as integer codepoint.
-       * gnu/java/awt/peer/gtk/GtkComponentPeer.java
-       (postMouseEvent): Use MouseEvent constructor with absolute coordinates
-       to avoid deadlock (over getLocationOnScreen()).
-       * gnu/java/awt/peer/gtk/VolatileImageGraphics.java
-       (getDeviceConfiguration): Fall back to the default configuration
-       if the component is not set.
-       * gnu/java/awt/peer/qt/QtFontMetrics.java
-       (canDisplay): Take character as integer codepoint.
-       * gnu/java/awt/peer/qt/QtFontPeer.java
-       (canDisplay): Take character as integer codepoint.
-       * gnu/java/awt/peer/x/XFontPeer2.java
-       (canDisplay): Take character as integer codepoint.
-       * include/gnu_java_awt_peer_qt_QtFontMetrics.h
-       (canDisplay): Take character as integer codepoint.
-       * java/awt/Font.java
-       (DIALOG): New constant.
-       (DIALOG_INPUT): New constant.
-       (MONOSPACED): New constant.
-       (SANS_SERIF): New constant.
-       (SERIF): New constant.
-       (Font(Font)): New constructor.
-       (canDisplay(char)): Use new canDisplay(int) method.
-       (canDisplay(int)): New method.
-       (hasLayoutAttributes): New method.
-       * java/awt/event/MouseEvent.java
-       (absX,absY): New fields.
-       (MouseEvent): New constructor with absolute coordinates.
-       (getLocationOnScreen): New method.
-       (getXOnScreen): New method.
-       (getYOnScreen): New method.
-       * native/jni/qt-peer/qtfontmetrics.cpp
-       (canDisplay): Take character as integer codepoint.
-
-2007-06-25  Mark Wielaard  <mark@klomp.org>
-
-       * native/jni/native-lib/cpnet.c
-       (cpnet_aton) Moved variable declaration of inet6_addr so it is
-       actually in the scope of its use.
-
-2007-06-25  Dalibor Topic  <robilad@kaffe.org>
-
-       * native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c
-       (THROW_NO_IPV6): New macro.
-       (Java_gnu_java_net_VMPlainSocketImpl_bind6) Conditionally
-       build code if IPv6 facilities are available, otherwise
-       throw an error.
-       (Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface6, 
-       Java_gnu_java_net_VMPlainSocketImpl_join6,
-       Java_gnu_java_net_VMPlainSocketImpl_leave6,
-       Java_gnu_java_net_VMPlainSocketImpl_joinGroup6,
-       Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6)
-       Use THROW_NO_IPV6.
-
-       * native/jni/java-net/java_net_VMInetAddress.c
-       (Java_java_net_VMInetAddress_getHostByAddr,
-       Java_java_net_VMInetAddress_getHostByName,
-       Java_java_net_VMInetAddress_aton) Build IPv6 dependant
-       code conditionally on IPv6 facilities being available.
-       Switched if-else blocks where necessary to allow that.
-
-       * native/jni/java-net/javanet.c
-       (_javanet_get_ip_netaddr) Build IPv6 dependant code conditionally 
-       on IPv6 facilities being available.
-
-       * native/jni/native-lib/cpnet.c
-       (cpnet_getHostByName, cpnet_getHostByAddr) Build IPv6 dependant 
-       code conditionally on IPv6 facilities being available.
-       (cpnet_aton) Moved variable declaration of inet6_addr to the scope
-       of its use. Build IPv6 dependant code conditionally 
-       on IPv6 facilities being available.
-
-       * native/jni/native-lib/cpnet.h (cpnet_newIPV6Address, 
-       cpnet_isIPV6Address, cpnet_IPV6AddressToBytes, 
-       cpnet_bytesToIPV6Address): Make IPv6 dependant utility functions 
-       available conditionally on IPv6 facilities being available.
-
-2007-06-25  Dalibor Topic  <robilad@kaffe.org>
-
-       * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAC): If the user passes an
-       explicit argument to configure, just use it, and don't attempt to
-       run AC_CHECK_PROG. This makes --with-javac="javac -J-Xmx512M" work.
-
-2007-06-25  Dalibor Topic  <robilad@kaffe.org>
-
-       * configure.ac: Check for MSG_WAITALL, since it does not exist on
-       Cygwin.
-
-       * native/jni/java-nio/gnu_java_nio_VMChannel.c 
-       (Java_gnu_java_nio_VMChannel_receive): Define MSG_WAITALL as 0 if 
-       it does not exist.
-
-2007-06-24  Ito Kazumitsu  <kaz@maczuka.gcd.org>
-
-       Fixes bug #31927
-       * native/jni/java-nio/gnu_java_nio_VMChannel.c
-       (Java_gnu_java_nio_VMChannel_available): Retry using fstat if ioctl
-       fails with ENOTTY.
-
-2007-06-22  Tania Bento  <tbento@redhat.com>
-
-       * java/util/Currency.java:  
-       (getInstance (Locale)): Check that the country of the
-       locale given is valid.  If it is not, throw an
-       IllegalArgumentException.
-
-2007-06-22  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/awt/peer/GLightweightPeer.java
-       * gnu/java/awt/peer/gtk/GdkRobotPeer.java
-       * gnu/java/awt/peer/gtk/GtkCompoonentPeer.java
-       * gnu/java/awt/peer/gtk/GtkFramePeer.java
-       * gnu/java/awt/peer/gtk/GtkWindowPeer.java
-       * gnu/java/awt/peer/qt/QtComponentPeer.java
-       * gnu/java/awt/peer/qt/QtFramePeer.java
-       * gnu/java/awt/peer/qt/QtWindowPeer.java
-       * gnu/java/awt/peer/swing/SwingComponentPeer.java
-       * gnu/java/awt/peer/swing/SwingWindowPeer.java
-       * gnu/java/awt/peer/x/XFramePeer.java:
-       Removed @Override annotations from some interface implementation
-       methods to ensure 1.5 compatibility.
-
-2007-06-22  Christian Thalinger  <twisti@complang.tuwien.ac.at>
-
-       * include/jni.h (JNINativeInterface): Renamed to
-       JNINativeInterface_, added const to arguments where necessary.
-       (JNIInvokeInterface): Renamed to JNIInvokeInterface_.
-
-2007-06-22  Roman Kennke  <roman@kennke.org>
-
-       * sun/awt/CausedFocusEvent.java: New class. Needed for compatibility
-       in java.awt.peer.
-       * java/awt/Dialog.java
-       (ModalExclusionType): New enum.
-       (ModalityType): New enum.
-       * java/awt/Toolkit.java
-       (isModalExclusionTypeSupported): New abstract method.
-       (isModalityTypeSupported): New abstract method.
-       * java/awt/peer/ComponentPeer.java
-       (requestFocus): New method.
-       * java/awt/peer/FramePeer.java
-       (getBoundsPrivate): New method.
-       * java/awt/peer/RobotPeer.java
-       (dispose): New method.
-       * java/awt/peer/WindowPeer.java
-       (setAlwaysOnTop): New method.
-       (updateFocusableWindowState): New method.
-       (setModalBlocked): New method.
-       (updateMinimumSize): New method.
-       (updateIconImages): New method.
-       * gnu/java/awt/peer/GLightweightPeer.java
-       (requestFocus): New method.
-       * gnu/java/awt/peer/gtk/GdkRobotPeer.java
-       (dispose): New method.
-       * gnu/java/awt/peer/gtk/GtkComponentPeer.java
-       (requestFocus): New method.
-       * gnu/java/awt/peer/gtk/GtkFramePeer.java
-       (getBoundsPrivate): New method.
-       * gnu/java/awt/peer/gtk/GtkToolkit.java
-       (isModalExclusionTypeSupported): New method.
-       (isModalityTypeSupported): New method.
-       * gnu/java/awt/peer/gtk/GtkWindowPeer.java
-       (updateIconImages): New method.
-       (updateMinimumSize): New method.
-       (setModalBlocked): New method.
-       (updateFocusableWindowState): New method.
-       (setAlwaysOnTop): New method.
-       * gnu/java/awt/peer/headless/HeadlessToolkit.java
-       (isModalExclusionTypeSupported): New method.
-       (isModalityTypeSupported): New method.
-       * gnu/java/awt/peer/qt/QtComponentPeer.java
-       (requestFocus): New method.
-       * gnu/java/awt/peer/qt/QtFramePeer.java
-       (getBoundsPrivate): New method.
-       * gnu/java/awt/peer/qt/QtToolkit.java
-       (isModalExclusionTypeSupported): New method.
-       (isModalityTypeSupported): New method.
-       * gnu/java/awt/peer/qt/QtWindowPeer.java
-       (updateIconImages): New method.
-       (updateMinimumSize): New method.
-       (setModalBlocked): New method.
-       (updateFocusableWindowState): New method.
-       (setAlwaysOnTop): New method.
-       * gnu/java/awt/peer/swing/SwingComponentPeer.java
-       (requestFocus): New method.
-       * gnu/java/awt/peer/swing/SwingToolkit.java
-       (isModalExclusionTypeSupported): New method.
-       (isModalityTypeSupported): New method.
-       * gnu/java/awt/peer/swing/SwingWindowPeer.java
-       (updateIconImages): New method.
-       (updateMinimumSize): New method.
-       (setModalBlocked): New method.
-       (updateFocusableWindowState): New method.
-       (setAlwaysOnTop): New method.
-       * gnu/java/awt/peer/x/XFramePeer.java
-       (getBoundsPrivate): New method.
-       * gnu/java/awt/peer/x/XToolkit.java
-       (isModalExclusionTypeSupported): New method.
-       (isModalityTypeSupported): New method.
-
-2007-06-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * tools/Makefile.am:
-       Compile in com.sun.tools.javah
-       * tools/com/sun/tools/javah/Main.java:
-       Javah Sun-->Classpath wrapper.
-       
-2007-06-21  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+       (parseInt(String, int, boolean)): Disallow "-+".
 
-       * javax/swing/text/html/parser/AttributeList.java (getValues):
-       Check if values is null.
+2008-05-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2007-06-21  Roman Kennke  <roman@kennke.org>
-
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c:
-       Fix some type signatures.
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c:
-       Fix intendation.
-
-2007-06-21  Jeroen Frijters  <jeroen@frijters.net>
-
-       * java/io/ObjectStreamClass.java (getClassUID): Return 0L for
-       enums and proxies.
-
-2007-06-21  Jeroen Frijters  <jeroen@frijters.net>
-
-       * java/net/URLClassLoader.java
-       (URLClassLoader(URL[],ClassLoader,URLStreamHandlerFactory):
-       Add factory to cache before calling addURLS.
-       (run): Don't call initCause() on ClassNotFoundException.
-
-2007-06-21  Jeroen Frijters  <jeroen@frijters.net>
-
-       Fixes #32356
-       * java/lang/reflect/Array.java
-       (newInstance(Class,int[])): Call createMultiArray correctly.
-       (createMultiArray): Fixed dimensions processing order.
-
-2007-06-21  Jeroen Frijters  <jeroen@frijters.net>
-
-       * gnu/java/net/loader/URLLoader.java
-       (URLLoader(URLClassLoader,URLStreamHandlerCache,
-       URLStreamHandlerFactory,URL,URL)): Disabiguate CodeSource constructor
-       invocation.
-       * java/awt/AWTKeyStroke.java
-       (LinkedHashMap.removeEldestEntry): Use Map.Entry to fix compile
-       error when compiled against OpenJDK java.util package.
-       * java/awt/AlphaComposite.java
-       (LinkedHashMap.removeEldestEntry): Use Map.Entry to fix compile
-       error when compiled against OpenJDK java.util package.
-
-2007-06-21  Jeroen Frijters  <jeroen@frijters.net>
-
-       * gnu/java/security/Engine.java
-       (getInstance(String,String,Provider,Object[]): Use correctly cased
-       property name.
-
-2007-07-19  Keith Seitz  <keiths@redhat.com>
-
-       * classpath/gnu/classpath/jdwp/value/StringValue.java
-       (StringValue): Tag of StringValue is STRING not OBJECT.
-       (write): String values are written to the wire as tag byte
-       and object ID, not JdwpString.
-
-2007-07-19  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/processor/ClassTypeCommandSet.java
-       (executeInvokeMethod): No need to use ValueFactory any more;
-       MethodResult.getReturnedValue now returns a Value.
-       (executeNewInstance): Double-check that return result is 
-       an ObjectValue; throw JdwpInternalErrorException if it is not.
-       (invokeMethod): Method IDs come from VMMethod, not VMIdManager.
-       Arguments are Values not Objects.
-       Use ValueFactory to create arguments.
-       Pass invocation options to VMVirtualMachine.executeMethod.
-       Don't do any thread suspend/resume work: VMVM.executeMethod
-       will take care of it.
-       * gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java
-       (executeInvokeMethod): Method IDs come from VMMethod, not
-       VMIdManager.
-       Arguments should be Values instead of Objects.
-       Use ValueFactory to create Values.
-       Remove specific option handling and pass options to
-       VMVirtualMachine.executeMethod.
-       Remove thread suspension.
-       Use MethodResult.getReturnedValue to get method's result.
-       * gnu/classpath/jdwp/util/MethodResult.java
-       (returnedValue): Change type to Value.
-       (thrownException): Change type to Throwable.
-       (resType): Remove.
-       (MethodResult): New constructor.
-       (setReturnedValue): Remove.
-       (SetThrownException): Remove.
-       (getResultType): Remove.
-       (setResultType): Remove.
-       * gnu/classpath/jdwp/value/ObjectValue.java (getValue): 
-       New method.
-       * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
-       (executeMethod): Replace "nonVirtual" parameter with more
-       generic "options" parameter.
-       Replace java.lang.reflect.Method parameter with VMMethod.
-       Replace Objet[] parameter with Value[] parameter.
-
-2007-07-10  Dalibor Topic  <robilad@kaffe.org>
-
-       * configure.ac (FOUND_CACAO): Removed.
-
-2007-06-01  Robin Garner  <robin.garner@anu.edu.au>
-
-       Fixes #32162
-       * gnu/xml/dom/DomNode.java: Correct concurrency problem when deep
-         cloning nodes.
-
-2007-05-30  Mark Wielaard  <mark@klomp.org>
-
-       Fixes bug #32030 reported by Steve.Blackburn@anu.edu.au
-       * native/jni/java-nio/gnu_java_nio_VMChannel.c
-       (Java_gnu_java_nio_VMChannel_open): Only set O_TRUNC when
-       CPNIO_APPEND is not, but O_WRONLY is set.
-
-2007-05-25  Robert Schuster  <robertschuster@fsfe.org>
+        Reported by Nicolas Geoffray <nicolas.geoffray@menlina.com>
+       * java/lang/Integer.java:
+       (parseInt(String,int,boolean)): Parse +x
+       as x, not -x.
 
-       * gnu/java/awt/peer/x/XGraphics2D.java:
-       (rawDrawLine): Added addition of translation.
-       (rawFillRect): Dito.
-
-2007-05-25  Robert Schuster  <robertschuster@fsfe.org>
-
-       * gnu/java/awt/font/opentype/OpenTypeFont.java:
-       (getGlyphIndex): Call getGlyphCharMap() instead of
-       accessing cmap field directly.
-
-2007-05-24  Ito Kazumitsu  <kaz@maczuka.gcd.org>
-
-       * native/jni/java-nio/gnu_java_nio_VMChannel.c
-       (Java_gnu_java_nio_VMChannel_available): Use fstat or select as an
-       alternative to ioctl.
-       * native/jni/native-lib/cpio.c(cpio_availableBytes): Corrected typo.
-
-2007-05-24  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/math/Fixed.java
-       (trunc): New method.
-
-2007-05-24  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/awt/java2d/AbstractGraphics2D.java
-       (fillShape): Pass rendering hints to scanline converter.
-       * gnu/java/awt/java2d/ScanlineConverter.java
-       (ONE): New constant for the number 1 as fixed point number.
-       (Y_RESOLUTION): New constant for the Y resolution.
-       (doScanline): Handle the Y resolution.
-       (renderShape): Accept rendering hints.
-       (setResolution): Adjust maximum resolution with Y resolution.
-       * gnu/java/awt/java2d/ScanlineCoverage.java
-       (Iterator.handledPixelCoverage): New field.
-       (Iterator.next): Handle single pixel coverage.
-       (Iterator.hasNext): Handle single pixel coverage.
-       (Iterator.reset): Reset single pixel coverage.
-       (Range.toString): New method.
-       (Coverage.pixelCoverage): New field.
-       (add): Include Y (pixel) coverage.
-       (findOrInsert): Reset Y coverage in reused entries.
-
-2007-05-24  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/awt/java2d/ScanlineCoverage.java
-       (Iterator): New class.
-       (Range): New class.
-       (Coverage.covDelta): Made field package private.
-       (Coverage.xPos): Made field package private.
-       (iterator): New field. Stores the iterator that is reused.
-       (ScanlineCoverage): Initialize iterator.
-       (assertion): Removed.
-       (isEmpty): Refined conditions.
-       (iterate): Return Iterator instance.
-       (next): Removed. This is done by the Iterator class now.
-       (test): Removed.
-       * gnu/java/awt/java2d/ScanlineConverter.java
-       (main): Removed.
-       * gnu/java/awt/peer/x/XGraphics2D.java
-       (renderScanline): Adjust to new coverage iterator stuff.
-       * gnu/java/awt/java2d/AbstractGraphics2D.java
-       (renderScanline): Adjust to new coverage iterator stuff.
-
-2007-05-23  Jeroen Frijters  <jeroen@frijters.net>
-
-       * java/util/Arrays.java
-       (copyOfRange(T,int,int)): Fixed to instantiate right array type.
-
-2007-05-22  Robert Schuster  <robertschuster@fsfe.org>
-
-        * gnu/java/awt/peer/x/XEventQueue.java:
-        (handleEvent): Calculate modifier value for mouse presse
-        and release events, clip button values.
-        (buttonToModifier): New method.
-        * gnu/java/awt/peer/x/KeyboardMapping.java:
-        (mapModifiers): Added cases for alt gr and the meta key.
-
-2007-05-22  Robert Schuster  <robertschuster@fsfe.org>
-
-        * gnu/java/awt/peer/x/XEventQueue.java:
-        (handleEvent): Use Input.event_window_id for 
-        key presses/releases.
-
-2007-05-22  Robert Schuster  <robertschuster@fsfe.org>
-
-        * gnu/java/awt/peer/x/XEventQueue.java:
-        (handleEvent): Use Input.event_window_id instead of
-        Input.child_window_id for mouse presses/releases &
-        movement.
-
-2007-05-22  Roman Kennke  <roman@kennke.org>
-
-        * gnu/java/awt/peer/x/XFontPeer2.java
-        (XFontMetrics.charWidth): Use cached Point2D instance.
-        * gnu/java/awt/peer/x/XGraphics2D.java
-        (renderScanline): New method. Renders a scanline according to
-        the coverage information.
-        (setPaint): Call super, so that the state is updated correctly.
-
-2007-05-19  Andreas Tobler  <a.tobler@schweiz.org>
-
-       PR libgcj/31659
-       * m4/ax_create_stdint_h.m4: Apply patch from PR31659.
-
-2007-05-18  Andreas Tobler  <a.tobler@schweiz.org>
-
-       * autogen.sh (have_libtool): Update comments for Darwin.
-
-2007-05-18  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/awt/java2d/AbstractGraphics2D.java
-       (fillScanlineAA): Removed. Replaced by renderScanline().
-       (fillScanline): Dito.
-       (renderScanline): New method. Renders a scanline according to
-       the coverage information from the scanline converter.
-       * gnu/java/awt/java2d/Pixelizer.java: New interface. Describes
-       the targets of the rasterizer.
-       * gnu/java/awt/java2d/ScanlineConverter.java
-       (alphaRes): Removed.
-       (ONE): Removed.
-       (scanlineCoverage): New field. Manages the coverage information.
-       (scanlinesPerPixel): Removed.
-       (scanlineXCov): Removed.
-       (scanlineYCov): Removed.
-       (slPix0): Removed.
-       (ScanlineConverter): Initialize scanline coverage data structure.
-       (clear): Also clear the scanline coverage.
-       (doScanline): Work with Pixelizer objects.
-       Use the ScanlineCoverage datastructure.
-       (main): New method. Performs some tests.
-       (renderShape): Work with pixelizer objects rather than directly
-       on AbstractGraphic2D. Adjust to use ScanlineCoverage datastructure.
-       (setResolution): Set resolution on ScanlineCoverage data too.
-       * gnu/java/awt/java2d/ScanlineCoverage.java: New class. Stores
-       and manages scanline coverage information.
-
-2007-05-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * java/rmi/MarshelledObject.java,
-       * java/rmi/activation/Activatable.java,
-       * java/rmi/activation/ActivationDesc.java,
-       * java/rmi/activation/ActivationGroup.java,
-       * java/rmi/activation/ActivationGroupDesc.java,
-       * java/rmi/activation/ActivationInstantiator.java,
-       * java/rmi/activation/ActivationMonitor.java,
-       * java/rmi/activation/Activator.java:
-       Genericized.
-
-2007-05-13  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-06-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
        * configure.ac:
-       Check if nsl library is needed for inet_pton.
-       * tools/gappletviewer.in,
-       * tools/gjar.in,
-       * tools/gjarsigner.in,
-       * tools/gjavah.in,
-       * tools/gkeytool.in,
-       * tools/gnative2ascii.in,
-       * tools/gorbd.in,
-       * tools/grmic.in,
-       * tools/grmid.in,
-       * tools/grmiregistry.in,
-       * tools/gserialver.in,
-       * tools/gtnameserv.in:
-       Remove spaces around '=' in setting of datarootdir.
-       
-2007-05-11  Kyle Galloway  <kgallowa@redhat.com>
-
-       * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
-       (executeMethods): Remove cast to ClassReferenceTypeId.
-
-2007-05-11  Jeroen Frijters  <jeroen@frijters.net>
-
-       * java/lang/Float.java
-       (toString(float)): Call VMFloat instead of VMDouble.
-       (parseFloat): Call VMFloat. Fixed comment.
-       * vm/reference/java/lang/VMFloat.java
-       (toString, parseFloat): New methods.
-       NEWS: added note about these changes.
-
-2007-05-08  Kyle Galloway  <kgallowa@redhat.com>
-
-       * vm/reference/VMFrame.java (<init>): Add a parameter for the "this"
-       pointer of the frame.
-
-2007-05-08  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/awt/peer/x/XFontPeer.java: Removed.
-       * gnu/java/awt/peer/x/XGraphics.java: Removed
-       * gnu/java/awt/peer/x/XFontPeer2.java
-       (XLineMetrics.getDescent): Use cached idendity transform.
-       (XFontMetrics.cachedPoint): New field. Caches a Point2D instance
-       for reuse.
-       (XFontMetrics.getAscent): Use cached idendity transform.
-       (XFontMetrics.getDescent): Use cached idendity transform.
-       (XFontMetrics.getHeight): Use cached idendity transform.
-       (XFontMetrics.charWidth): Map character to glyph index first.
-       (XFontMetrics.stringWidth): Use cached idendity transform.
-       (IDENDITY): New static field. A reused AffineTransform instance.
-
-2007-05-08  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/awt/font/FontDelegate.java
-       (getGlyphIndex): New method. Maps characters to their
-       glyph index in the font.
-       M gnu/java/awt/font/opentype/OpenTypeFont.java
-       (getGlyphIndex): New method. Maps characters to their
-       glyph index in the font.
-
-2007-05-08  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/awt/java2d/AbstractGraphics2D.java
-       (AA_SAMPLING): Removed.
-       (alpha): Removed field.
-       (edgeTable): Removed field.
-       (fillScanlineAA): Removed obsolete method.
-       (drawPolyline): Implemented by using a GeneralPath.
-       (drawPolygon): Reset the cached polygon.
-       (fillPolygon): Reset the cached polygon.
-       (fillShape): Default to antialias on for text.
-       (rawDrawLine): Use ShapeCache.
-       (rawDrawRect): Use ShapeCache.
-       (rawFillRect): Use ShapeCache.
-       (fillScanlineAA): New method for antialiased rendering. 
-       * gnu/java/awt/java2d/ScanlineConverter.java
-       (scanlinesPerPixel): New field.
-       (minX,maxX): New fields.
-       (scanlineYCov,scanlineXCov): New fields.
-       (slPix0): New field.
-       (alphaRes): New field.
-       (renderShape): Add antialiasing functionality.
-       (doScanline): Add antialiasing functionality.
-       (setResolution): Add antialiasing functionality.
-       (addShape): Determine span in X direction.
-       (fit): Fix thinko.
-       * gnu/java/awt/java2d/ShapeCache.java
-       (polyline): New field for caching polylines.
-
-2007-05-08  Roman Kennke  <roman@kennke.org>
-
-       * examples/gnu/classpath/examples/awt/HintingDemo.java
-       Add support for showing the original vs the hinted glyphs plus
-       a grid.
-
-2007-05-08  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * lib/Makefile.am: Print property files as well.
-
-2007-05-08  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * native/jni/gtk-peer/gtkpeer.c:
-       Added support for 64-bit architectures.
+       Check for --with-glibj too when disabling
+       the javac check.
        
-2007-05-04  Chris Burdess  <dog@gnu.org>
-
-       Fixes PR #31814
-       * gnu/xml/dom/DomDocument.java,
-         gnu/xml/dom/ls/SAXEventSink.java: Don't default attribute when mode is
-         #IMPLIED and value is not specified.
-       * gnu/xml/stream/XMLParser.java: Add debugging info.
-
-2007-05-03  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/Jdwp.java (notify): Rewrite to call
-       new array-based method.
-       (notify): New function.
-       (sendEvent): Rewrite to use sendEvents.
-       (sendEvents): New method.
-       * gnu/classpath/jdwp/event/Event.java (toPacket): Make static.
-       Change parameters to use arrays for events and requests.
-       Add suspendPolicy parameter.
-       Move per-event data transformation to...
-       (_toData): ... here.
-       * gnu/classpath/jdwp/transport/JdwpConnection.java
-       (sendEvent): Renamed to ...
-       (sendEvents): ... this.
-       Change parameters to use arrays for events and requests.
-       Add suspendPolicy parameter.
-
-2007-05-03  Thomas Fitzsimmons  <fitzsim@redhat.com>
-
-       https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=237304
-       * javax/swing/text/html/HTMLEditorKit.java
-       (getStyleSheet): Throw RuntimeException when style loading fails.
-       * lib/Makefile.am: Treat css files as a property files.
-       * javax/swing/text/html/default.css: Move to...
-       * resource/javax/swing/text/html/default.css: New file.
-
-2007-05-03  Andrew Haley  <aph@redhat.com>
-
-       * gnu/javax/management/Server.java (Server): Record the delegate.
-       (registerMBean): Notify the delegate.
-       (unregisterMBean): Likewise.
-       (notify): New method.
-
-2007-04-30  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/awt/peer/x/XLightweightPeer.java: Removed.
-       * gnu/java/awt/peer/x/XEventPump.java
-       (handleEvent): Improved handling of event ids to window mapping.
-       * gnu/java/awt/peer/x/XFontPeer2.java:
-       Load font.properties at startup.
-       (XLineMetrics.glyphVector): New field.
-       (XLineMetrics.XLineMetrics): Get glyphVector from font delegate.
-       (XLineMetrics.getHeight): Implemented using glyph vector.
-       (XLineMetrics.getLeading): Implemented.
-       (XFontPeer2): Change hardwired font to something more common.
-       (encodeFont): New methods, encodes a font to the font.properties
-       format.
-       (validName): New method. Checks and returns a valid font name.
-       * gnu/java/awt/peer/x/XGraphics2D.java
-       (foreground): New field.
-       (rawSetPixel): Removed.
-       (rawDrawLine): Draw a segment.
-       (rawSetForeground): Removed.
-       (fillScanline): New method.
-       (fillScanlineAA): New method.
-       (setPaint): Set the foreground color.
-       (fillShape): Synchronize super behaviour.
-       (rawDrawImage): Optimize XImage.
-       * gnu/java/awt/peer/x/XGraphicsDevice.java
-       (getDisplay): Improve creation of socket.
-       (createLocalSocket): New helper method to create a local socket.
-       * gnu/java/awt/peer/x/XImage.java
-       (getGraphics): Return an XGraphics2D.
-       * gnu/java/awt/peer/x/XToolkit.java
-       (getClasspathFontPeer): Use XFontPeer2.
-       (createComponent): Removed.
-       * gnu/java/awt/peer/x/XWindowPeer.java
-       (getGraphics): Return an XGraphics2D.
-       (show): Clear the window.
-       (getFontMetrics): Use XFontPeer2.
-
-2007-04-30  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/awt/peer/swing/SwingButtonPeer.java
-       (SwingButton.handleFocusEvent): New method. Handles focus events.
-       (SwingButton.requestFocus): Overridden to avoid loop into peer
-       and back.
-       (SwingButton.requestFocus(boolean)): Overridden to avoid loop
-       into peer and back.
-       * gnu/java/awt/peer/swing/SwingCheckboxPeer.java: New class.
-       Implements CheckboxPeer for Swing toolkit.
-       * gnu/java/awt/peer/swing/SwingComponent.java
-       (handleFocusEvent): New method. Handles focus events.
-       * gnu/java/awt/peer/swing/SwingComponentPeer.java
-       (getMinimumSize): Delegate to minimumSize().
-       (getPreferredSize): Delegate to preferredSize().
-       (handleEvent): Only paint when component is showing. Coalesce
-       paint event in any case. Reformat. Handle focus events.
-       (requestFocus): Post FOCUS_GAINED event.
-       (handleFocusEvent): New method. Delegate to SwingComponent
-       object.
-       * gnu/java/awt/peer/swing/SwingContainerPeer.java
-       (addHeavyweightDescendent): Make this protected.
-       (removeHeavyweightDescendent): Make this protected.
-       (getHeavyweightDescendents): New method. Returns all registered
-       heavyweights.
-       (handleKeyEvent): Delegate to peer's handleEvent() method.
-       * gnu/java/awt/peer/swing/SwingLabelPeer.java
-       (SwingLabel.handleFocusEvent): New method.
-       * gnu/java/awt/peer/swing/SwingListPeer.java
-       (SwingList.handleFocusEvent): New method.
-       * gnu/java/awt/peer/swing/SwingPanelPeer.java
-       Fix typo and import.
-       * gnu/java/awt/peer/swing/SwingTextAreaPeer.java
-       Wrap up text area in viewport.
-       * gnu/java/awt/peer/swing/SwingTextFieldPeer.java
-       (SwingTextField.handleFocusEvent): New method.
-       (SwingTextField.requestFocus): New method.
-       (SwingTextField.requestFocus(boolean)): New method.
-
-2007-04-27  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/event/EventManager.java
-       (getEventRequest): Rename to...
-       (getEventRequests): ...this.
-       Change return type to array of requests.
-       Construct a list of all matching events and return
-       them all.
-       * gnu/classpath/jdwp/Jdwp.java (notify): Use getEventRequests
-       and send event notifications for all matching requests.
-
-2007-04-27  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/event/filters/LocationOnlyFilter.java
-       (matches): Use Location.equals to determine equality.
-       * vm/reference/gnu/classpath/jdwp/VMMethod.java (equals): 
-       New method.
-       * gnu/classpath/jdwp/util/Location.java (equals):
-       New method.     
-
-2007-04-27  Roman Kennke  <roman@kennke.org>
-
-       * java/nio/CharViewBufferImpl.java
-       (slice): Fixed offset for slice buffer.
-       * java/nio/DoubleViewBufferImpl.java
-       (slice): Fixed offset for slice buffer.
-       * java/nio/FloatViewBufferImpl.java
-       (slice): Fixed offset for slice buffer.
-       * java/nio/IntViewBufferImpl.java
-       (slice): Fixed offset for slice buffer.
-       * java/nio/LongViewBufferImpl.java
-       (slice): Fixed offset for slice buffer.
-       * java/nio/ShortViewBufferImpl.java
-       (slice): Fixed offset for slice buffer.
-
-2007-04-25  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/awt/peer/gtk/GdkFontPeer.java,
-       * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
-       * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
-       * gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java,
-       * gnu/java/awt/peer/gtk/GtkGenericPeer.java,
-       * gnu/java/awt/peer/gtk/GtkToolkit.java:
-       Added fields to hold the native state. Added class initialization
-       things to fetch the JNI field IDs.
-       * include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h,
-       * include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h,
-       * include/gnu_java_awt_peer_gtk_GtkGenericPeer.h,
-       * include/gnu_java_awt_peer_gtk_GtkToolkit.h:
-       Added / changed class init methods for field ID initialization.
-       * native/jni/classpath/Makefile.am: Removed native_state stuff.
-       * native/jni/classpath/native_state.c,
-       * native/jni/classpath/native_state.h: Removed.
-       * native/jni/gconf-peer/Makefile.am: Removed native_state stuff.
-       * native/jni/gtk-peer/Makefile.am: Removed native_state stuff.
-       * native/jni/gtk-peer/cairographics2d.h,
-       * native/jni/gtk-peer/gdkdisplay.h,
-       * native/jni/gtk-peer/gdkfont.h,
-       * native/jni/gtk-peer/GtkDragSourceContextPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c,
-       * native/jni/gtk-peer/gtk_jawt.c:
-       Removed native state stuff and replaced that with an approach
-       to store the native state of an object directly in that object.
-       * native/jni/gtk-peer/gtkpeer.c: New file. Implements the new native
-       state management.
-       * native/jni/gtk-peer/gtkpeer.h: Remove NSA stuff and added
-       prototypes for new native state handling.
-
-2007-04-23  Mark Wielaard  <mark@klomp.org>
-
-       * doc/www.gnu.org/newsitems.txt: Add 0.95.
-       * doc/www.gnu.org/downloads/downloads.wml: Likewise.
-       * doc/www.gnu.org/announce/20070423.wml: New file.
-
-2007-04-23  Mark Wielaard  <mark@klomp.org>
-
-       * NEWS: Add new 0.95 features.
-
-2007-04-23  Jeroen Frijters  <jeroen@frijters.net>
-
-       PR classpath/31646:
-       * java/util/Arrays.java (qsort): Corrected initial median calculation.
-
-2007-04-22  Dalibor Topic  <robilad@kaffe.org>
-
-       * Makefile.am (ACLOCAL_AMFLAGS): Add contents of env var 
-       LOCAL_AUTORECONF_AMFLAGS to allow for systems where the user
-       has a mix of system & hacked-up autotools.
-
-2007-04-22  Dalibor Topic  <robilad@kaffe.org>
-
-       * autogen.sh: Removed unnecessary -I m4 flag.
-
-2007-04-19  Casey Marshall  <csm@gnu.org>
-
-       PR classpath/31626:
-       * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java
-       (createSocket): New method.
-
-2007-04-19  Dalibor Topic  <robilad@kaffe.org>
-
-       * tools/gappletviewer.in,
-       tools/gjar.in,
-       tools/gjarsigner.in,
-       tools/gjavah.in,
-       tools/gkeytool.in,
-       tools/gnative2ascii.in,
-       tools/gorbd.in,
-       tools/grmic.in,
-       tools/grmid.in,
-       tools/grmiregistry.in,
-       tools/gserialver.in,
-       tools/gtnameserv.in: Set datarootdir to fix a warning from 
-       configure.
-
-2007-04-19  Dalibor Topic  <robilad@kaffe.org>
-
-       * INSTALL: Removed file generated by autogen.sh.
-
-       * .cvsignore: Added INSTALL.
-
-2007-04-19  Dalibor Topic  <robilad@kaffe.org>
-
-       * INSTALL: Replaced by generic install file.
-
-       * autogen.sh: Removed redundant and no longer necessary 
-       sections. Use autoreconf.
-
-2007-04-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * m4/acinclude.m4
-       (CLASSPATH_FIND_JAVAC): Allow detected JAVAC.
-
-2007-04-19  Dalibor Topic  <robilad@kaffe.org>
-
-       * lib/Makefile.am (propertyfiles, cssfiles, metafiles, 
-       iconfiles) Removed variables, inlined them into resource
-       target to avoid use of shell construct and fix portability
-       warning from automake 1.10.
-
-2007-04-18  Tom Tromey  <tromey@redhat.com>
-
-       * tools/gnu/classpath/tools/javah/MethodHelper.java (print):
-       Changed arguments.  Directly print method name.
-       * tools/gnu/classpath/tools/javah/ClassWrapper.java
-       (methodNameMap): New field.
-       (makeVtable): Initialize it.
-       (printMethods): Compute name for bridge targets.
-
-2007-04-18  Andrew Haley  <aph@redhat.com>
+2008-06-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * gnu/java/rmi/server/UnicastConnectionManager.java
-       (UnicastConnectionManager(int port, RMIServerSocketFactory)):
-       Listen on "localhost", not localhost.
+       * tools/gnu/classpath/tools/getopt/OptionException.java:
+       (OptionException(String,Throwable)): New constructor.
+       * tools/gnu/classpath/tools/jar/Main.java:
+       (fileLists): New queue for streams containing lists of files.
+       (HandleFile.NotifyFile(String)): Check for '@' arguments
+       and add to stream queue.
+       (parsed(String)): Add stdin to queue instead of setting flag.
+       (readNames()): Work with the queue rather than just stdin.
+       (run(String[])): Always execute readNames().
 
-2007-04-18  Dalibor Topic  <robilad@kaffe.org>
+2008-05-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * include/GtkDragSourceContextPeer.h: Removed, renamed to ..
-
-       * include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h:
-       New file.
+       PR classpath/35482
+       * java/lang/String.java:
+       (toLowerCase()): Fix calculation of number
+       of characters to copy.
+       (toLowerCaseTurkish()): Likewise.
 
-       * native/jni/gtk-peer/GtkDragSourceContextPeer.c: Include 
-       gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h.
+2008-04-18  Mario Torre  <neugens@aicas.com>
 
-       * include/Makefile.am (GTKPEER_H_FILES): Renamed
-       GtkDragSourceContextPeer.h to 
-       gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h
-       per current convention. Use portable construct to create
-       gtk and libxmlj peer headers. Depend on the java source code, 
-       rather then the class files in order to avoid spurious 
-       regeneration.
+       PR classpath/35974
+       * java/util/logging/Logger.java: fix a deadlock and reformat code.
+       Now all the methods of the class get a lock on a static lock, this
+       avoids a lock when getLogger and log are used concurrently.
 
-2007-04-18  Dalibor Topic  <robilad@kaffe.org>
+2008-04-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
-       * include/Makefile.am: Use portable construct to create
-       qt peer headers. Depend on the java source code, 
-       rather then the class files in order to avoid spurious 
-       regeneration.
+       * m4/gcc_attribute.m4 (GCC_ATTRIBUTE): Fix cache variable name.
+       * tools/Makefile.am (gappletviewer, gjarsigner, gkeytool, gjar)
+       (gnative2ascii, gserialver, gjavah, grmiregistry, gtnameserv)
+       (gorbd, grmid, grmic) [!CREATE_WRAPPERS]: Add stub dependencies
+       for these scripts, to trick automake into hiding the respective
+       rules for the programs below the CREATE_WRAPPERS conditional.
 
-2007-04-18  Dalibor Topic  <robilad@kaffe.org>
+2008-04-18  Tom Tromey  <tromey@redhat.com>
 
-       * include/Makefile.am: Use portable construct to create
-       alsa and dssi peer headers. Depend on the java source code, 
-       rather then the class files in order to avoid spurious 
-       regeneration.
-       
-2007-04-18  Dalibor Topic  <robilad@kaffe.org>
+       * lib/gen-classlist.sh.in: Skip 'sed' steps if no vm_omitlist
+       found.
 
-       * include/Makefile.am: Use portable construct to create
-       gconf peer header. Depend on the java source code, rather
-       the class file to avoid spurious regeneration.
+2008-04-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
-2007-04-18  Dalibor Topic  <robilad@kaffe.org>
+       * lib/gen-classlist.sh.in: Avoid grepping each omission, by
+       building an awk script with a hash for literal files, and
+       awk regular expressions for the rest.
+       * configure.ac: Call AC_PROG_AWK.
 
-       * include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h:
-       Removed empty header file.
+2008-03-27  Mario Torre  <neugens@aicas.com>
+
+       * gnu/xml/stream/SAXParser.java (getProperty): throw
+       SAXNotRecognizedException instead of SAXNotSupportedException
+       after fall through all known properties.
+       * javax/xml/namespace/QName.java (valueOf): throw
+       IllegalArgumentException if string is null.
+       * java/util/concurrent/CopyOnWriteArrayList.java (lastIndexOf):
+       fixed indentation.
+       (indexOf): likewise. 
+
+2008-03-26  Mario Torre  <neugens@aicas.com>
+
+       * java/util/concurrent/CopyOnWriteArrayList.java (SubList.set): 
+       (SubList.clear): new method.
+       (SubList.checkMod): fix indentation.
+       (SubList.checkBoundsInclusive):  likewise. 
+       (SubList.checkBoundsExclusive): likewise.
+       (SubList): added synchronization. Now throw
+       IndexOutOfBoundsException instead of IllegalArgumentException
+       when index are out of range.
+       (SubList.size): added synchronization.
+       (SubList.get): likewise.
+       (SubList.listIterator): fixed indentation.
+       (SubList.set): added synchronization. Update the state of the storage
+       after modification.
+       (SubList.add): likewise.
+       (SubList.remove): likewise.
+       (SubList.addAll): likewise.
+
+2008-03-26  Mario Torre  <neugens@aicas.com>
+
+       * java/util/concurrent/CopyOnWriteArrayList.java (equals): removed
+       useless local variable. 
+       (hashCode): new method.
+
+2008-03-25  Mario Torre  <neugens@aicas.com>
+
+       * java/util/concurrent/CopyOnWriteArrayList.java (clone): clone method
+       in CopyOnWriteArrayList should just do a shallow copy. Fixed.
+       (equals): new method, override from base class.
+       (toString): likewise.
+
+2008-03-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/util/concurrent/CopyOnWriteArrayList.java:
+       Don't extend AbstractList.
+       (containsAll(Collection)): Implemented.
+       (listIterator()): Likewise.
+       (subList(int,int)): Likewise.
+
+2008-03-31  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * doc/www.gnu.org/events/events.wml:
+       Correct layout and fix GSoC link.
+
+2008-03-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * doc/www.gnu.org/external.wml:
+       Corrected Jalopy tag name.
+       * doc/www.gnu.org/home.wml:
+       Update link to tasks.
+       * doc/www.gnu.org/announce/20080222.wml:
+       Correct IcedTea and builder links.
+       * doc/www.gnu.org/downloads/downloads.wml:
+       Add 0.97 and 0.97.1.
+       * doc/www.gnu.org/events/events.wml:
+       Fix links and add FOSDEMs/GSoC.
+
+2008-03-24  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/22883
+       * doc/www.gnu.org/home.wml:
+       Fix a typo.
+       * doc/www.gnu.org/docs/docs.wml:
+       Fix links to point to current versions of
+       vmintegration and hacking, and add links to
+       tools.
+
+2008-03-24  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/22883
+       * doc/www.gnu.org/home.wml:
+       Update home page to reflect current state of
+       affairs.
+
+2008-03-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * doc/www.gnu.org/newsitems.txt:
+       Add new announcement.
+       * doc/www.gnu.org/announce/20080311.wml:
+       Added.
+       * doc/www.gnu.org/cp-tools/.cvsignore:
+       Ignore generated HTML files.
 
-       * include/Makefile.am (QTPEER_H_FILES):
-       Removed gnu_java_awt_peer_qt_QtGraphicsEnvironment.h.
+2008-03-10  Jim Meyering  <meyering@redhat.com>
 
-2007-04-18  Dalibor Topic  <robilad@kaffe.org>
+       Don't leak upon failed realloc.
+       * native/jni/classpath/jcl.c (JCL_realloc): Upon failed realloc,
+       free the original buffer before throwing the exception.
 
-       * native/jni/xmlj/xmlj_xpath.c: Don't include 
-       gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h.
+2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
-       * include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h:
-       Removed empty header file.
+       * doc/cp-hacking.texinfo: Fix some typos.
+       * doc/cp-tools.texinfo: Likewise.
+       * doc/cp-vmintegration.texinfo: Likewise.
 
-       * include/Makefile.am (XMLJ_H_FILES): Removed
-       gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h.
+2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
-2007-04-18  Dalibor Topic  <robilad@kaffe.org>
+       * doc/cp-hacking.texinfo: Fix spacing after periods.
+       * doc/cp-tools.texinfo: Likewise.
+       * doc/cp-vmintegration.texinfo: Likewise.
 
-       * include/gnu_java_awt_peer_qt_QtContainerPeer.h: Removed
-       empty header file.
+2008-02-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * include/Makefile.am (QTPEER_H_FILES): Removed 
-       gnu_java_awt_peer_qt_QtContainerPeer.h.
+       * configure.ac:
+       Check for sys/loadavg.h.
+       * native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c:
+       Include sys/loadavg.h if found.
 
-2007-04-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-06-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * native/jni/java-net/local.c:
-       Fix import of FIONREAD.
-       * native/jni/java-nio/gnu_java_nio_VMChannel.c,
-       * native/jni/native-lib/cpnet.c:
-       Likewise.
+       * include/Makefile.am: Don't delete headers
+       when not rebuilding them.
        
-2007-04-17  Dalibor Topic  <robilad@kaffe.org>
-
-       * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAH):
-       Use AC_CHECK_PROGS and AC_MSG_ERROR. Check for
-       gjavah, gcjh-wrapper-4.1 and gcjh-4.1. Error out
-       when no javah implementation can be found.
-
-2007-04-17  Dalibor Topic  <robilad@kaffe.org>
-
-       * configure.ac (CLASSPATH_WITH_JAVAH): Only check if
-       the JNI headers need to be regenerated.
-
-       * m4/acinclude.m4 (USER_SPECIFIED_JAVAH): Removed unused
-       conditional.
-
-2007-04-17  Dalibor Topic  <robilad@kaffe.org>
-
-       * lib/Makefile.am (JAVAH): Removed unused variable.
-
-2007-04-17  Casey Marshall  <csm@gnu.org>
-
-       PR classpath/31302:
-       * gnu/javax/net/ssl/provider/SSLSocketImpl.java (SSLSocketImpl):
-       Always make a new socket.
-       (bind, connect, getInetAddress, getLocalAddress, getPort,
-       getLocalPort, getRemoteSocketAddress, getLocalSocketAddress,
-       setTcpNoDelay, getTcpNoDelay, setSoLinger, getSoLinger,
-       setOOBInline, getOOBInline, setSoTimeout, getSoTimeout,
-       setSendBufferSize, getSendBufferSize, setReceiveBufferSize,
-       getReceiveBufferSize, setKeepAlive, getKeepAlive, setTrafficClass,
-       getTrafficClass, setReuseAddress, getReuseAddress, close,
-       shutdownInput, shutdownOutput, isConnected, isBound, isClosed,
-       isInputShutdown, isOutputShutdown): Always use
-       'underlyingSocket'.
-
-2007-04-16  Dalibor Topic  <robilad@kaffe.org>
-
-       * configure.ac (AM_PROG_CC_C_O): Added to fix automake 1.10
-       warning.
-
-2007-04-16  Dalibor Topic  <robilad@kaffe.org>
-
-       * native/plugin/Makefile.am (libgcjwebplugin_la_LDFLAGS):
-       Added AM_LDFLAGS for automake 1.10.
-
-2007-04-16  Tom Tromey  <tromey@redhat.com>
-
-       https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=236614
-       * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java
-       (createSocket): Change order of delegation.
-
-2007-04-16  Andrew Haley  <aph@redhat.com>
-
-       * java/io/ObjectInputStream.java: (parseContent):  Call (String,
-       Object) version of dumpElementln.
-       (dumpElementln(String, Object)): New method.
-       * java/io/ObjectOutputStream.java (writeObject): Call (String,
-       Object) version of dumpElementln.
-       (dumpElementln(String, Object)): New method.
-
-2007-04-16  Mark Wielaard  <mark@klomp.org>
-
-       Fixes bug #31590
-       * java/net/URI.java (parseServerAuthority): Allow empty portStr.
-
-2007-04-16  Andrew Haley  <aph@redhat.com>
-
-       * org/omg/IOP/TaggedComponentHelper.java (read): Use
-       read_octet_array(), not read().
-       (write): Use write_octet_array(), not write().
-
-       * org/omg/PortableServer/Servant.java (_get_delegate): Throw if no
-       delegate has been set.
-
-2007-04-16  Chris Burdess  <dog@gnu.org>
-
-       * gnu/xml/stream/XMLParser.java: Work around a problem with incorrectly
-         formatted file URLs.
-
-2007-04-15  Dalibor Topic  <robilad@kaffe.org>
-
-       * native/jni/java-lang/Makefile.am (libjavalang_la_LIBADD):
-       Fix portability warnings from automake 1.10.
-
-2007-04-15  Dalibor Topic  <robilad@kaffe.org>
-
-       * Makefile.am (EXTRA_DIST): Add ChangeLog-2006.
-
-2007-04-15  Dalibor Topic  <robilad@kaffe.org>
-
-       * native/target/.cvsignore: Removed.
-
-2007-04-15  Dalibor Topic  <robilad@kaffe.org>
-
-       * doc/Makefile.am: Fix portability warnings from
-       automake 1.10.
-
-2007-04-15  Roman Kennke  <roman@kennke.org>
-
-       * native/target/Linux/.cvsignore,
-       * native/target/generic/.cvsignore: Removed.
-
-2007-04-15  Dalibor Topic  <robilad@kaffe.org>
-
-       * depcomp, install-sh, missing, mkinstalldirs,
-       doc/texinfo.tex: Removed files generated by autogen.sh.
-
-       * .cvsignore: Ignore generated files depcomp, install-sh, 
-       missing, mkinstalldirs.
-
-       * doc/.cvsignore: Ignore generated file doc/texinfo.tex.
-
-2007-04-15  Dalibor Topic  <robilad@kaffe.org>
-
-       * doc/cp-hacking.texinfo: Updated with information from
-       INSTALL file. Removed duplicate and outdated information.
-       Updated compiler information. Fixed versioning information
-       where entries diverged. Turned command, option, file and
-       URL strings into proper texinfo elements.
-
-2007-04-15  Dalibor Topic  <robilad@kaffe.org>
-
-       * configure.ac: Added support for Iceape libraries as 
-       a substitute for Mozilla for Debian.
-
-2007-04-12  Roman Kennke  <roman@kennke.org>
-
-       * java/nio/Buffer.java
-       (array): New abstract method.
-       (hasArray): New abstract method.
-       (arrayOffset): New abstract method.
-       (isDirect): New abstract method.
-
-2007-04-12  Roman Kennke  <roman@kennke.org>
-
-       * java/nio/CharBuffer.java
-       (wrap(CharSequence,int,int)): Reimplemented using specialized
-       subclass.
-       * java/nio/CharSequenceBuffer.java: New class. Implements char
-       buffers that wrap CharSequences.
-
-2007-04-12  Francis Kung  <fkung@redhat.com>
-
-       PR 23887
-       * gnu/java/awt/peer/gtk/CairoGraphics2D.java
-       (drawGlyphVector): Check for transforms before using optimized path.
-       * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
-       (FreetypeGlyphVector(FreetypeGlyphVector)): Initialize glyphTransforms array
-       to null and check for nulls in copied array.
-       (hasTransforms): New method.
-       (performDefaultLayout): Check for identity transform.
-       (setGlyphTransform): Check for equality before making changes.
-
-2007-04-12  Francis Kung  <fkung@redhat.com>
-
-       PR 23887
-       * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
-       (getGlyphLogicalBounds): Fix number of coordinates in transform call.
-       (performDefaultLayout): Respect transformation in font attributes.
-       * javax/swing/plaf/basic/BasicProgressBarUI.java
-       (getStringPlacement): Handle vertical orientations.
-       (paintString): Space vertical text properly.
-
-2007-04-12  Francis Kung  <fkung@redhat.com>
-
-       PR 31539
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
-       (ft2_map): New static variable.
-       (Java_gnu_java_awt_peer_gtk_GdkFontPeer_initStaticState): Set up ft2_map.
-       (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Use cached ft2_map.
-
-2007-04-12  Christian Thalinger  <twisti@complang.tuwien.ac.at>
-
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
-       (clipboard_get_func): Call DeleteLocalRef.
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
-       (clipboard_targets_received): Likewise.
-       (clipboard_uris_received): Likewise.
-
-2007-04-12  Christian Thalinger  <twisti@complang.tuwien.ac.at>
-
-       * LICENSE: Added m4/ax_func_which_gethostbyname_r.m4 license.
-       * configure.ac: Added AX_FUNC_WHICH_GETHOSTBYNAME_R check.
-       * m4/ax_func_which_gethostbyname_r.m4: New file.
-       * native/jni/native-lib/cpnet.c (cpnet_getHostByName): Check for
-       different number of arguments of gethostbyname_r.
-
-2007-04-12  Mark Wielaard  <mark@klomp.org>
-
-       * gnu/java/awt/peer/ClasspathFontPeer.java (LRUCache): New static
-       inner class.
-       (transCache): New static LRUChache field.
-       (copyTransformToAttrs): Check whether a TransformAttribute already
-       exists in the transCache for the given AffineTransform.
-
-2007-04-12  Mark Wielaard  <mark@klomp.org>
-
-       * configure.ac (COMPILE_GTK_PEER): Add check for cairo >= 1.1.8.
-
-2007-04-11  Christian Thalinger  <twisti@complang.tuwien.ac.at>
-
-       * native/jni/java-nio/javanio.c: Include fcntl.h instead of
-       sys/fcntl.h.
-
-2007-04-11  Christian Thalinger  <twisti@complang.tuwien.ac.at>
-
-       * native/jni/native-lib/cpproc.c (cpproc_forkAndExec): Fixed
-       warning on some compilers, e.g. MIPSpro.
-
-2007-04-11  Francis Kung  <fkung@redhat.com>
-
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
-       (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphs): Avoid unneeded
-       object reference.
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
-       (Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics): Unlock font.
-       (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Remove redundant checks.
+2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2007-04-11  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+       * configure.ac: Only regenerate headers by
+       default if the headers aren't in the source tree.
 
-       * configure.ac: Added AC_C_INLINE.
+2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2007-04-10  Mark Wielaard  <mark@klomp.org>
-
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
-       (Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile):
-       Destroy surface after it is used to create a cairo context.
-
-2007-04-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * javax/management/ObjectName.java:
-       (parse(String)): Catch multiple wildcards,
-       initialise with an empty string (so null isn't
-       appended), and emit comma even when wildcard
-       ends the list.
-       (checkComponents()): Catch newlines.
-       (quote(String)): Handle newlines and quotes
-       correctly.
-
-2007-04-09  Francis Kung  <fkung@redhat.com>
-
-       PR 31311
-       * gnu/java/awt/peer/gtk/ComponentGraphics.java
-       (dispose): Removed method.
-       (disposeSurface): Removed method.
-       * gnu_java_awt_peer_gtk_ComponentGraphics.h: Regenerated.
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
-       (Java_gnu_java_awt_peer_gtk_ComponentGraphics_disposeSurface): Removed.
-       (Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState): Destroy surface
-       after it is used to create a cairo context.
-
-2007-04-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * javax/management/ObjectName.java:
-       (propertyValuePattern): New cache variable.
-       (parse(String)): Record in propertyListPattern
-       not propertyPattern and set propertyValuePattern.
-       (isPropertyPattern()): Semantics altered to be the
-       OR of isPropertyListPattern() and isPropertyValuePattern().
-       (isPropertyListPattern()): Implemented.
-       (isPropertyValuePattern()): Implemented.
-       (isPropertyValuePattern(String)): Implemented.
+       * configure.ac: Only run javac check
+       if examples, tools and/or class library are
+       being built.
+       * scripts/check_jni_methods.sh.in:
+       Remove duplicates in the list of JNI methods
+       for when builddir==srcdir.
        
-2007-04-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * javax/management/ObjectName.java:
-       (parse(String)): Fix result of getKeyPropertyListString().
+       * lib/Makefile.am:
+       Replace explicit mkinstalldirs with $(mkinstalldirs).
        
-2007-04-07  Mark Wielaard  <mark@klomp.org>
-
-       * resource/META-INF/services/javax.xml.parsers.DocumentBuilderFactor,
-       resource/META-INF/services/javax.xml.parsers.SAXParserFactory,
-       resource/META-INF/services/javax.xml.parsers.TransformerFactory,
-       resource/META-INF/services/org.relaxng.datatype.DatatypeLibraryFactory,
-       resource/META-INF/services/org.w3c.dom.DOMImplementationSourceList,
-       resource/META-INF/services/org.xml.sax.driver: Removed.
-
-2007-04-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * javax/management/ObjectName.java:
-       (checkComponents()): Separate value and
-       key illegal characters to allow value wildcards.
+       * scripts/check_jni_methods.sh.in:
+       Search the source directory as well for
+       when headers are in the tarball.
        
-2007-04-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * javax/management/ObjectName.java
-       (parse(String)): Fix parsing where the wildcard
-       is juxtaposed between other pairs.
+       * Makefile.am: Replace tools with
+       $(TOOLSDIR).
+       * m4/acinclude.m4: Include option
+       to disable building the tools.
        
-2007-04-06  Mark Wielaard  <mark@klomp.org>
-
-       * configure.ac (VERSION): Set to 0.96-pre.
-
-2007-04-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * javax/management/MBeanAttributeInfo.java:
-       (serialVersionUID):  Added.
-       * javax/management/MBeanFeatureInfo.java:
-       (writeObject(ObjectOutputStream)): Added for
-       later 1.6 support.
-       * javax/management/Notification.java:
-       (serialVersionUID): Added.
-       (Notification(String,Object,long,long)): Make
-       default message the empty string not null.
-       (Notification(String,Object,long,long,String)):
-       Set source explicitly.
-       (writeObject(ObjectOutputStream)): Added to match
-       Sun.
+2008-06-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * Makefile.am: Use default makedistcheck
+       flags that test all optional dependencies.
+       * configure.ac: Set version to 0.97.2-pre.
+       * include/Makefile.am: Add header files to dist.
+       * lib/Makefile.am: Trick class files into being
+       built for dist, so headers can be generated.
        
-2007-04-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-03-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * java/util/Hashtable.java:
-       (putAllInternal(Map)): Remove redundant semi-colon.
+       * configure.ac: Set version to 0.97.1
+       * NEWS: Add 0.97.1.
        
-2007-04-06  Mark Wielaard  <mark@klomp.org>
+2008-03-10  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * lib/mkcollections.pl.in: Add externalclasses.
-       * java/util/Collections.java: Unroll enhanced for loops.
-       * java/util/HashMap.java: Likewise.
-       * java/util/Hashtable.java: Likewise.
-       * java/util/TreeMap.java: Likewise.
+        PR classpath/35422
+       * doc/api/Makefile.am: Include external/jsr166.
 
-2007-04-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-03-04  Robert Schuster  <robertschuster@fsfe.org>
 
-       * gnu/javax/management/Translator.java:
-       (getTypeName(type)): Move type name creation to its own method.
-       * javax/management/ObjectName.java:
-       (WILDCARD): Added.
-       
-2007-04-04  Andrew Haley  <aph@redhat.com>
+       * gnu/xml/stream/AttributeImpl.java: Changed type field to String.
+       (getDTDType): Changed return type to String.
+       * gnu/xml/stream/XMLEventAllocatorImpl.java:
+       (allocate): Removed wrapping of string in QName object.
+       * gnu/xml/stream/XMLEventFactoryImpl.java:
+       (createAttribute(String, String)): Removed wrapping of string in
+       QName object.
+       (createAttribute(QName, String)): Ditto.
+       (createAttribute(String, String, String, String)): Ditto.
+       * javax/xml/stream/events/Attribute.java:
+       (getDTDType): Changed return type to String.
 
-       * javax/management/ObjectName.java:
-       (serialVersionUID): Declare.
-       Make all fields transient.
-       (parse): Break out from constructor.
-       (writeObject, readObject): New methods.
-       
-2007-04-05  Francis Kung  <fkung@redhat.com>
+2008-03-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * include/Makefile.am: Remove old entry.
-
-2007-04-05  Francis Kung  <fkung@redhat.com>
-
-       * gnu/java/awt/peer/gtk/GtkToolkit.java
-       (createDragGestureRecognizer): Remove failing subClass call.
+       * tools/Makefile.am:
+       Distribute property files.
 
-2007-04-05  Gary Benson  <gbenson@redhat.com>
+2008-02-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * java/util/GregorianCalendar.java
-       (computeFields): Fix WEEK_OF_MONTH calculation.
-
-2007-04-05  Christian Thalinger  <twisti@complang.tuwien.ac.at>
-
-       PR classpath/22800:
-       * native/jni/java-lang/java_lang_VMDouble.c (doubleToLongBits)
-       (doubleToRawLongBits, longBitsToDouble): Swap the byte
-       ordering for little-endian arms without VFP.
-
-2007-04-05  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+       * NEWS: Set date for 0.97.
+       * configure.ac: Set version to 0.97
+       
+2008-02-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * native/jni/java-net/java_net_VMNetworkInterface.c
-       [HAVE_IFADDRS_H && HAVE_GETIFADDRS] (free_netif_list): Added
-       #ifdef.
-       (getVMInterfaces): Added UNUSED argument attribute.
-
-2007-04-05  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+       PR classpath/33751:
+       * configure.ac:
+       Don't check for readdir_r.
+       * native/jni/native-lib/cpio.c:
+       (cpio_readDir): Remove use of readdir_r, zero errno
+       before starting and always leave a \0 at the end after
+       strncpy.
+       * vm/reference/java/io/VMFile.java:
+       (list(String)): Make synchronized.
+       
+2008-02-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * native/jni/java-nio/gnu_java_nio_charset_iconv_IconvDecoder.c,
-       native/jni/java-nio/gnu_java_nio_charset_iconv_IconvEncoder.c
-       [HAVE_ICONV] (createRawData, getData, infid, outfid): Added
-       #ifdef.
-       (openIconv): Added UNUSED argument attribute, so we can build with
-       -Werror.
-       (decode): Likewise.
-       (closeIconv): Likewise.
-
-2007-04-05  Mark Wielaard  <mark@klomp.org>
-
-       * autogen.sh: Recognize automake 1.10.
-       * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-portability.
-       * native/jawt/Makefile.am (libjawt_la_LDFLAGS): Add AM_LDFLAGS.
-       * native/jni/gconf-peer/Makefile.am (libgconfpeer_la_LDFLAGS): Likewise.
-       * native/jni/gtk-peer/Makefile.am (libgtkpeer_la_LDFLAGS): Likewise.
-       * native/jni/midi-alsa/Makefile.am (libgjsmalsa_la_LDFLAGS): Likewise.
-       * native/jni/midi-dssi/Makefile.am (libgjsmdssi_la_LDFLAGS): Likewise.
-       * native/jni/qt-peer/Makefile.am (libqtpeer_la_LDFLAGS): Likewise.
-
-2007-04-04  Mark Wielaard  <mark@klomp.org>
-
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
-       (cp_gtk_image_get_pixbuf): Return NULL when pointer is NULL.
-       * gnu/java/awt/peer/gtk/GtkImage.java (setImage): Set loaded and
-       call deliver() after pixels have been set.
-       * gnu/java/awt/peer/gtk/GtkFramePeer.java (setIconImage): Only
-       set icon when image has been properly loaded.
+       * gnu/java/util/prefs/EventDispatcher.java:
+       Re-added.
+       * gnu/java/util/prefs/GConfBasedPreferences.java,
+       * gnu/java/util/prefs/gconf/GConfNativePeer.java,
+       * java/util/prefs/AbstractPreferences.java,
+       * native/jni/gconf-peer/GConfNativePeer.c:
+       Regress to 0.96 versions.
 
-2007-04-04  Francis Kung  <fkung@redhat.com>
-
-       * gnu/java/awt/peer/gtk/CairoGraphics2D.java
-       (drawCairoSurface): Made protected.
-       * gnu/java/awt/peer/gtk/ComponentGraphics.java
-       (cairoDrawGlyphVector): Removed method.
-       (cairoSetFont): Removed method.
-       (disposeNative): Removed method.
-       (drawCairoSurface): New method.
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
-       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector): Added
-       locking.
-       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFont): Added locking.
-       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_disposeNative): Added locking.
-
-2007-04-04  Gary Benson  <gbenson@redhat.com>
-
-       * java/util/GregorianCalendar.java
-       (GregorianCalendar(TimeZone, Locale)): Remove redundant complete().
+2008-02-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2007-04-04  Roman Kennke  <roman@kennke.org>
+       * java/net/URI.java:
+       (compareTo(URI)): Change comparison sign so it
+       operates in the correct direction.
+       
+2008-02-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * java/nio/channels/spi/SelectorProvider.java
-       (inheritedChannel): Make method concrete and move default impl
-       to here. Perform security checks as mandated by the spec.
-       * gnu/java/nio/SelectorProviderImpl.java
-       (inheritedChannel): Removed. Default impl is in SelectorProvider.
-
-2007-04-04  Roman Kennke  <roman@kennke.org>
-
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
-       (init_glib_threads): Create global reference on lock object.
-
-2007-04-04  Roman Kennke  <roman@kennke.org>
-
-       * java/awt/Frame.java
-       (weakFrames): Make private.
-       (weakFramesQueue): New field. A reference queue to collect
-       GCed references.
-       (getFrames): Only do one iterations to avoid collecting null
-       references.
-       (hasDisplayableFrames): New helper method. Checks if there
-       are any displayable frames. This is used by the event queue
-       shutdown check.
-       (noteFrame): Clean up GCed frames in the list.
-       * java/awt/EventQueue.java
-       (isShutdown): Move frame checking code into Frame.
-
-2007-04-03  Roman Kennke  <roman@kennke.org>
-
-       * java/lang/System.java
-       (inheritedChannel): New method, wraps
-       SelectorProvider.inheritedChannel().
-       * java/nio/channels/spi/SelectorProvider.java
-       (inheritedChannel): New abstract method.
-       * gnu/java/nio/SelectorProviderImpl.java
-       (inheritedChannel): New method, return null as default.
-
-2007-04-03  Roman Kennke  <roman@kennke.org>
-
-       * java/nio/ByteOrder.java
-       (nativeByteOrder): Let this fail when the corresponding
-       property is not set properly.
-
-2007-04-03  Roman Kennke  <roman@kennke.org>
-
-       * javax/swing/plaf/basic/BasicTreeUI.java
-       (getPathBounds): Consider the tree's insets. Added a bunch of
-       null checks.
-
-2007-04-03  Roman Kennke  <roman@kennke.org>
-
-       * javax/swing/plaf/basic/BasicLabelUI.java
-       (cachedInsets): New field. Used for reusing the insets instance.
-       (getFontMetrics): New helper method for fetching a suitable
-       FontMetrics object.
-       (getPreferredSize): Use new helper method for font metrics.
-       (paint): Only do something if we have an icon or text.
-       Use cached Insets instance and new font metrics helper.
-       (paintDisabledText): Don't restore the graphics' color.
-       (paintEnabledText): Don't restore the graphics' color.
-
-2007-04-03  Roman Kennke  <roman@kennke.org>
-
-       * javax/swing/plaf/metal/MetalButtonUI.java
-       (paintButtonPressed): Fill the whole button not only visibleRect.
-       * javax/swing/plaf/metal/MetalLookAndFeel.java
-       (LAF_defaults): Removed.
-       (getDefaults): Always fetch super's defaults.
-       * javax/swing/plaf/metal/MetalMenuBarUI.java
-       (update): Don't leave 2 pixel gap.
-
-2007-04-03  Roman Kennke  <roman@kennke.org>
-
-       * native/target/.cvsignore,
-       * native/target/Linux/.cvsignore,
-       * native/target/generic/.cvsignore: Some new ignores.
-
-2007-04-03  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/awt/peer/gtk/GThreadMutex.java,
-       * gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java,
-       * include/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.h,
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c,
-       * native/jni/gtk-peer/gthread-jni.c,
-       * native/jni/gtk-peer/gthread-jni.h: Removed.
-       * native/jni/gtk-peer/Makefile.am: Removed obsolete entries
-       for removed files.
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
-       Removed unused bits from gthread-jni.c.
-
-2007-04-03  Francis Kung  <fkung@redhat.com>
-
-       * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
-       (getGlyphs(int[], int[], long[])): Return void.
-
-2007-04-03  Kyle Galloway  <kgallowa@redhat.com>
-
-       * gnu/classpath/jdwp/value/ArrayValue.java: New file. 
-
-2007-04-03  Roman Kennke  <roman@kennke.org>
-
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
-       (global_lock): New global variable that holds the object reference
-       to the global GTK lock.
-       (init_glib_threads): Add lock argument. Use
-       gdk_threads_set_lock_functions to replace GTK's locking function
-       with two callbacks that allow reentrant locking, based on
-       JNI's MonitorEnter() and MonitorExit().
-       (jni_lock_cb): New callback function for GTK locking.
-       (jni_unlock_cb): New callback function for GTK unlocking.
-       (Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Add lock argument.
-       Call init_glib_threads() with lock object.
-       * include/gnu_java_awt_peer_gtk_GtkToolkit.h
-       Regenerated.
-       * gnu/java/awt/peer/gtk/GtkToolkit.java
-       (GTK_LOCK): New static field. This is used as the global lock for
-       GTK.
-       (gtkInit): Add lock parameter.
-       (static_init): Initialize global lock and call gtkInit() with
-       that lock.
-
-2007-04-02  Francis Kung  <fkung@redhat.com>
-
-       * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
-       (fontSet): Initialize to null.
-       (FreetypeGlyphVector(Font, int[], FontRenderContext)): Populate fontSet
-       array with default font if needed.
-       (FreetypeGlyphVector(FreetypeGlyphVector)): Clone all fields.
-       (getNativeFontPointer): New native method.
-       * include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: Regenerated.
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
-       (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getNativeFontPointer):
-       New function.
-
-2007-04-02  Francis Kung  <fkung@redhat.com>
-
-       * INSTALL: Document known bug in at-spi, atk, and gail packages prior to
-       version 1.18.0.
-
-2007-04-02  Francis Kung  <fkung@redhat.com>
-
-       * gnu/java/awt/peer/gtk/CairoGraphics2D.java
-       (cairoDrawGlyphVector): Added parameter.
-       (drawGlyphVector): Retrieve and pass fontset parameter.
-       * gnu/java/awt/peer/gtk/ComponentGraphics.java
-       (cairoDrawGlyphVector): Added parameter.
-       (lock): Removed unnecessary cast.
-       (unlock): Removed unnecessary cast and explicitly set to ONE variable.
-       * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
-       (fontSet): New field.
-       (dispose): New native method.
-       (finalize): New method.
-       (getGlyphFonts): New method.
-       (getGlyphOutline): Pass fontSet parameter to native method.
-       (getGlyphOutlineNative): Added parameter.
-       (getGlyphs): Pass extra parameters to native method.
-       (getGlyphsNative): Added parameters.
-       (getKerning): Added fontSet parameter.
-       (getMetricsNative): Added fontSet parameter.
-       (performDefaultLayout): Only check kerning if glyphs use the same font.
-       (setupGlyphMetrics): Pass extra parameters to native methods.
-       * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h,
-       * include/gnu_java_awt_peer_gtk_FreetypGlyphVector.h: Regenerated.
-       * native/jni/gtk-peer/gdkfont.h: Enable pango engine.
-       (peerfont): Add variable for fontset.
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
-       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector): Accept
-       array of font pointers to use when drawing glyphs.
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
-       (getFontSet): New function.
-       (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_dispose): New function.
-       (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphOutlineNative):
-       Added and use new fontSet parameter.
-       (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphs): Use pango
-       to retrieve glyphs and estimate font, if the current font does not contain
-       a requested glyph.
-       (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getKerning): Added and use
-       new fontSet parameter.
-       (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getMetricsNative): Added
-       and use new fontSet parameter.
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
-       (Java_gnu_java_awt_peer_gtk_GdkFontPeer_dispose): Free fontset.
-       (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Load fontset.
-
-2007-04-02  Andrew Haley  <aph@redhat.com>
-
-       * javax/management/ObjectName.java: Handle 0-length names.
-       * javax/management/MBeanServerFactory.java: Use the domain that
-       we've been passed, not the fixed string "DefaultDomain".
-
-2007-04-01  Mark Wielaard  <mark@klomp.org>
-
-       * org/omg/CORBA/DynAny.java: Mark as deprecated.
-       * org/omg/CORBA/DynArray.java: Likewise.
-       * org/omg/CORBA/DynEnum.java: Likewise.
-       * org/omg/CORBA/DynFixed.java: Likewise.
-       * org/omg/CORBA/DynSequence.java: Likewise.
-       * org/omg/CORBA/DynStruct.java: Likewise.
-       * org/omg/CORBA/DynUnion.java: Likewise.
-       * org/omg/CORBA/DynValue.java: Likewise.
-       * org/omg/CORBA/ORB.java (create_basic_dyn_any): Likewise.
-       (create_dyn_any): Likewise.
-       (create_dyn_array): likewise.
-       (create_dyn_enum): Likewise.
-       (create_dyn_sequence): Likewise.
-       (create_dyn_struct): Likewise.
-       (create_dyn_union): Likewise.
-
-2007-04-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+       * m4/acinclude.m4:
+       Remove check for gcjh.
+       * m4/ac_prog_javac.m4:
+       Check for ecj-3.2 and ecj-3.3, and add
+       -Xlint:unchecked for javac.
+       
+2008-02-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
        * gnu/javax/management/Translator.java:
-       (fromJava(Object[],Method)): Use the array from the
-       parameter not the newly created one...
-       (fromJava(Object, Type)): Support MXBeans.
-       * javax/management/JMX.java:
-       (newMXBeanProxy(MBeanServerConnection,ObjectName,Class)):
-       Call newMXBeanProxy rather than newMBeanProxy.
-       * javax/management/StandardMBean.java:
-       (setAttribute(Attribute)): Use InvocationTargetException
-       as cause.
+       (fromJava(Object[],Method)): Don't cast to Class<?>.
+       (fromJava(Object,Type)): Use ParameterizedType
+       and don't assume that List will work for Sets.
        
-2007-03-31  Jeroen Frijters  <jeroen@frijters.net>
+2008-02-21  David Walluck  <david@jpackage.org>
 
-       PR classpath/31402:
-       * java/util/concurrent/CopyOnWriteArrayList.java
-       (remove): Fixed ArrayIndexOutOfBoundsException when index == 0.
-
-2007-03-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * javax/management/openmbean/CompositeDataInvocationHandler.java:
-       New file.
+       PR classpath/27204:
+       * m4/acinclude.m4:
+       (REGEN_WITH_JAY): Handle 'yes' as a default,
+       not a directory and give more user-friendly output.
        
-2007-03-30  Kyle Galloway  <kgallowa@redhat.com>
-
-       * gnu/classpath/jdwp/util/VariableTable.java: Make argCnt and slots ints.
-       (write): Replace writeLong with writeInt for above.
-
-2007-03-30  Tom Tromey  <tromey@redhat.com>
-
-       PR libgcj/29869:
-       * gnu/java/util/jar/JarUtils.java (log): Commented out.
-       (readSFManifest): Don't log.
-
-2007-03-29  Tom Tromey  <tromey@redhat.com>
-
-       PR libgcj/29869:
-       * java/util/logging/LogManager.java (readConfiguration): Handle
-       comma-separated 'handlers'.  Don't try to add a non-existing
-       handler.
-
-2007-03-29  Keith Seitz  <keiths@redhat.com>
+2008-02-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/java/util/regex/REException.java:
+       (REException(String,Throwable,int,int)): Added
+       constructor which also includes the cause.
+       * gnu/java/util/regex/RETokenNamedProperty.java:
+       (getHandler(String)): Add support for \p{javaX}.
+       (JavaCategoryHandler): New class.
+       
+2008-02-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * gnu/classpath/jdwp/event/ThreadStartEvent.java (Event):
-       Event type is "THREAD_START" not "THERAD_END".
+       PR classpath/35274:
+       * m4/acinclude.m4:
+       Increase maximum heap size to 768mb.
 
-       * gnu/classpath/jdwp/transport/SocketTransport.java (ITransport):
-       Handle configure strings ":port" and "port".
+2008-02-21  Roman Kennke  <kennke@aicas.com>
 
-2007-03-29  Francis Kung  <fkung@redhat.com>
+       * java/awt/image/PixelInterleavedSampleModel.java
+       (createCompatibleSampleModel): Adjust scanline stride for new
+       width and optimize band offsets.
 
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
-       (Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Revert last patch.
+2008-02-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2007-03-29  Mark Wielaard  <mark@klomp.org>
+        PR classpath/35111:
+       * resource/com/sun/tools/javac/messages.properties,
+       * resource/gnu/classpath/tools/appletviewer/messages.properties,
+       * resource/gnu/classpath/tools/common/Messages.properties,
+       * resource/gnu/classpath/tools/getopt/Messages.properties,
+       * resource/gnu/classpath/tools/jar/messages.properties,
+       * resource/gnu/classpath/tools/jarsigner/messages.properties,
+       * resource/gnu/classpath/tools/keytool/messages.properties,
+       * resource/gnu/classpath/tools/native2ascii/messages.properties,
+       * resource/gnu/classpath/tools/orbd/messages.properties,
+       * resource/gnu/classpath/tools/rmic/messages.properties,
+       * resource/gnu/classpath/tools/rmid/messages.properties,
+       * resource/gnu/classpath/tools/rmiregistry/messages.properties,
+       * resource/gnu/classpath/tools/serialver/messages.properties,
+       * resource/gnu/classpath/tools/tnameserv/messages.properties,
+       * resource/sun/rmi/rmic/messages.properties:
+       Removed.
+       * tools/Makefile.am:
+       Copy .jav template files and use resource subdirectory
+       of tools.
+       * tools/gnu/classpath/tools/rmic/templates/ImplTie.jav,
+       * tools/gnu/classpath/tools/rmic/templates/Stub.jav,
+       * tools/gnu/classpath/tools/rmic/templates/StubMethod.jav,
+       * tools/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav,
+       * tools/gnu/classpath/tools/rmic/templates/Stub_12.jav,
+       * tools/gnu/classpath/tools/rmic/templates/Stub_12Method.jav,
+       * tools/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav,
+       * tools/gnu/classpath/tools/rmic/templates/Tie.jav,
+       * tools/gnu/classpath/tools/rmic/templates/TieMethod.jav,
+       * tools/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav:
+       Removed.
+       * tools/resource/com/sun/tools/javac/messages.properties,
+       * tools/resource/gnu/classpath/tools/appletviewer/messages.properties,
+       * tools/resource/gnu/classpath/tools/common/Messages.properties,
+       * tools/resource/gnu/classpath/tools/getopt/Messages.properties,
+       * tools/resource/gnu/classpath/tools/jar/messages.properties,
+       * tools/resource/gnu/classpath/tools/jarsigner/messages.properties,
+       * tools/resource/gnu/classpath/tools/keytool/messages.properties,
+       * tools/resource/gnu/classpath/tools/native2ascii/messages.properties,
+       * tools/resource/gnu/classpath/tools/orbd/messages.properties,
+       * tools/resource/gnu/classpath/tools/rmic/messages.properties,
+       * tools/resource/gnu/classpath/tools/rmic/templates/ImplTie.jav,
+       * tools/resource/gnu/classpath/tools/rmic/templates/Stub.jav,
+       * tools/resource/gnu/classpath/tools/rmic/templates/StubMethod.jav,
+       * tools/resource/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav,
+       * tools/resource/gnu/classpath/tools/rmic/templates/Stub_12.jav,
+       * tools/resource/gnu/classpath/tools/rmic/templates/Stub_12Method.jav,
+       * tools/resource/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav,
+       * tools/resource/gnu/classpath/tools/rmic/templates/Tie.jav,
+       * tools/resource/gnu/classpath/tools/rmic/templates/TieMethod.jav,
+       * tools/resource/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav,
+       * tools/resource/gnu/classpath/tools/rmid/messages.properties,
+       * tools/resource/gnu/classpath/tools/rmiregistry/messages.properties,
+       * tools/resource/gnu/classpath/tools/serialver/messages.properties,
+       * tools/resource/gnu/classpath/tools/tnameserv/messages.properties,
+       * tools/resource/sun/rmi/rmic/messages.properties:
+       Added.
+       
+2008-02-18  Roman Kennke  <kennke@aicas.com>
 
-       * native/jni/java-nio/Makefile.am (LIBADD): Add libclasspathnative.
+       * gnu/java/awt/peer/x/XGraphics2D.java
+       (RENDER_OPAQUE): New constant with system property to
+       turn on opaque image rendering.
+       (rawDrawImage): Render images opaque when system property
+       is set. This is for demonstration and debugging purposes only.
+
+2008-02-18  Roman Kennke  <kennke@aicas.com>
+
+       * gnu/java/awt/image/AsyncImage.java: New file. Implements
+       asynchronous image loading.
+       * gnu/java/awt/image/ImageConverter.java: New file.
+       An image consumer that creates a concrete image with
+       asynchronous behaviour.
+       * gnu/java/awt/peer/x/ImageConverter.java: Removed.
+       * gnu/java/awt/peer/x/XToolkit.java:
+       (createImage(ImageProducer)): Use new ImageConverter.
+       * gnu/java/awt/peer/x/XGraphics2D.java:
+       (rawDrawImage): Unwrap AsyncImages before painting.
+       (unwrap): New helper method.
 
-2007-03-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-02-18  Jakub Jelinek  <jakub@redhat.com>
 
-       * javax/management/StandardMBean.java:
-       (setAttribute(Attribute)): Add handling of primitive
-       types and subtype parameters.
-       (getMutator(String,Class<?>)): New helper method to
-       return the mutator.
-       
-2007-03-28  Roman Kennke  <roman@kennke.org>
-
-       * java/io/OutputStreamWriter.java,
-       * java/io/InputStreamReader.java: Revert big stream patch due to
-       problems.
-
-2007-03-28  Tom Tromey  <tromey@redhat.com>
-
-       PR classpath/31303:
-       * external/sax/org/xml/sax/helpers/XMLReaderFactory.java
-       (createXMLReader): Code in Classpath default.
-
-2007-03-28  Tom Tromey  <tromey@redhat.com>
-
-       PR classpath/31276:
-       * native/jni/java-lang/java_lang_VMDouble.c
-       (parseDoubleFromChars): Use %p, not %i.
-
-2007-03-28  Mark Wielaard  <mark@klomp.org>
-
-       * native/jni/java-nio/Makefile.am (LIBADD): Don't add
-       libclasspathnative.
-       * native/jni/java-nio/gnu_java_nio_VMChannel.c
-       (Java_gnu_java_nio_VMChannel_open): Don't set and reset umask.
-
-2007-03-27  Francis Kung  <fkung@redhat.com>
-
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
-       (Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Prevent loading of
-       accessibility modules as temporary workaround for Gnome bug.
-
-2007-03-27  Kyle Galloway  <kgallowa@redhat.com>
-
-       * gnu/classpth/jdwp/processor/ThreadReferenceCommandSet.java
-       (executeResume): Change to call VMVirtualMachine.resumeThread. 
-
-2007-03-27  Roman Kennke  <roman@kennke.org>
-
-       * java/io/InputStreamReader.java
-       (BUFFER_SIZE): New constant.
-       (bytesCache): Removed.
-       (cacheLock): Removed.
-       (hasSavedSurrogate): Removed.
-       (lastArray): New field. Used for caching CharBuffers.
-       (lastBuffer): New field. Used for caching CharBuffers.
-       (maxBytesPerChar): Removed.
-       (oneChar): New field. Caches a char array for read().
-       (savedSurrogate): New field.
-       (InputStreamReader): (all constructors) Cleaned up.
-       Use initDecoderAndBuffer() method. Check for null parameters.
-       Use new EncodingHelper.getDefaultCharset() for fetching the
-       default charset.
-       (decode): New helper method. Decodes using the NIO decoder or
-       using a raw Latin1 decoding.
-       (getCharBuffer): New helper method. Implements caching of
-       CharBuffers for output arrays.
-       (initDecoderAndBuffer): New helper method. Initializes the decoder
-       and input buffer.
-       (read): Use cached array.
-       (read(char[],int,int)): Reworked using a cleaner NIO based
-       implementation. This decodes the incoming data in bigger chunks
-       rather then calling the decoder for each character.
-       (ready): Also check the input buffer.
-       (refillInputBuffer): New helper methods. Refills the input buffer
-       when it runs out of data.
-       * java/io/OutputStreamWriter.java
-       (lastArray): Implements caching of the output array buffer.
-       (lastBuffer): Implements caching of the output array buffer.
-       (oneChar): New field. Caches a char array for write().
-       (outputBuffer): Make this a ByteBuffer.
-       (OutputStreamWriter): (all constructors) Cleaned up.
-       Use initEncoderAndBuffer() method. Check for null parameters.
-       Use new EncodingHelper.getDefaultCharset() for fetching the
-       default charset.
-       (encode): New helper method. Encodes the input buffer to the output
-       buffer using either the NIO encoder or a raw Latin1 encoding.
-       (encodeChars): New helper method. The encoding loop.
-       (flush): Directly use the array of the output buffer.
-       (getCharBuffer): New helper method. Implements caching of the
-       output buffer.
-       (initEncoderAndBuffer): New helper method for initialization.
-       (write(char[],int,int)): Reworked to make better use of the NIO
-       encoders.
-       (write): Use cached array.
-       (write(String,int,int)): Don't copy the string but rather wrap it
-       and handle it the same as the wrapped char array.
-       (writeConvert): Removed.
-       * gnu/java/nio/charset/EncodingHelper.java
-       (getDefaultCharset): New method. Returns the default charset for
-       the case when the file.encoding charset is not valid. This
-       always returns an UTF8 codec.
-
-2007-03-27  Roman Kennke  <kennke@aicas.com>
-
-       * java/awt/Frame.java
-       (weakFrames): Make this generic and package private.
-       (noteFrame): Use generic WeakReference.
-       * java/awt/EventQueue.java
-       (isShutdown): Iterate over the weakFrames directly, rather than
-       using Frame.getFrames(). The latter iterates several times over
-       weakFrames completely and creates a new array on each call. The
-       former iterates only once and aborts when it finds a frame which
-       is displayable.
-
-2007-03-27  Roman Kennke  <kennke@aicas.com>
-
-       * javax/swing/JScrollBar.java
-       (getUnitIncrement(int)): Don't multiply direction parameter.
-       (getBlockIncrement(int)): Don't multiply direction parameter.
-
-2007-03-26  Tom Tromey  <tromey@redhat.com>
-
-       * doc/cp-tools.texinfo (gcjh Tool): Added more text.
-       (rmid Tool): Likewise.
-
-2007-03-26  Stepan Kasal  <skasal@redhat.com>
-
-       * tools/gnu/classpath/tools/javah/Main.java (cniOrJniSeen): New
-       field.
-       (getParser): Use new field.
-
-2007-03-25  Dalibor Topic  <robilad@kaffe.org>
-
-       * doc/cp-tools.texinfo: Fix node ordering.
-
-2007-03-19  Matthias Klose  <doko@ubuntu.com>
-
-       * doc/Makefile.am: Build a gcjh(1) man page.
-       * doc/cp-tools.texinfo: Add documentation for gcjh.
-
-2007-03-23  Jeroen Frijters  <jeroen@frijters.net>
-
-       * java/net/ServerSocket.java (implAccept): set implCreated flag on
-       socket.
-       * java/net/Socket.java (implCreated): Make package accessible for
-       ServerSocket.
-
-2007-03-22  Casey Marshall  <csm@gnu.org>
-
-       * gnu/javax/net/ssl/provider/ClientHandshake.java (RSAGen.implRun):
-       check keyEncipherment bit of the certificate, and just pass the public
-       key to the cipher.
-
-2007-03-20  Mario Torre  <neugens@limasoftware.net>
-
-       * configure.ac: GConf requirement for building the java.util.prefs backend
-       are relaxed down to version 2.6.0 (instead of 2.11.2).
-
-2007-03-19  Mario Torre  <neugens@limasoftware.net>
-
-       * gnu/java/awt/peer/KDEDesktopPeer.java: 
-       (mail): Fixed error dialog in KDE when the mail method is called without
-       argument; now opens the default mailer with a blank window.
-       (getCommand): Handle the use of kprinter as default print command for KDE.
-       (supportCommand): Enable the print command when a KDE desktop is detected.
-
-2007-03-19  Jeroen Frijters  <jeroen@frijters.net>
-
-       * java/net/Socket.java
-       (implCreated): New field.
-       (getImpl): Call impl.create() if it hasn't been called yet.
-       (bind): Removed explicit impl.create() call.
-
-2007-03-18  Mark Wielaard  <mark@klomp.org>
+       * doc/cp-tools.texinfo (@direntry): Prefix info name with cp-.
+       * doc/cp-hacking.texinfo (@direntry): Likewise.
+       * doc/cp-vmintegration.texinfo (@direntry): Likewise.
 
-       * javax/crypto/CipherOutputStream.java (write): Use out.write()
-       not super.write().
+2008-02-18  Roman Kennke  <kennke@aicas.com>
 
-2007-03-18  Mark Wielaard  <mark@klomp.org>
+       * java/awt/image/RGBImageFilter.java
+       (setPixels): Don't mask the source pixel.
 
-       * configure.ac (COMPILE_PLUGIN): Check for gtk+-2.0 >= 2.8
-       gthread-2.0 >= 2.2 and gdk-pixbuf-2.0
+2008-02-18  Roman Kennke  <kennke@aicas.com>
 
-2007-03-16  Tom Tromey  <tromey@redhat.com>
+       * gnu/java/awt/peer/x/XGraphics2D.java
+       (rawDrawImage): Update the rgb variable correctly. Don't
+       cache translucent images.
 
-       * tools/gnu/classpath/tools/javah/Main.java (run): Use class'
-       name in File case.
+2008-02-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2007-03-16  Thomas Fitzsimmons  <fitzsim@redhat.com>
+       * vm/reference/java/lang/reflect/Constructor.java,
+       * vm/reference/java/lang/reflect/Method.java:
+       Add missing java.lang.annotation.Annotation import.
 
-       * resource/com/sun/tools/javac/messages.properties
-       (Main.FailedToRead, Main.MalformedURL, Main.FailedToLoad): Clarify
-       messages for when --with-ecj-jar is not specified.
+2008-02-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * configure.ac (FOUND_ECJ_JAR): Remove conditional.
-       * tools/Makefile.am: Build com.sun.tools.javac package
-       unconditionally.
+       * vm/reference/java/lang/reflect/Constructor.java,
+       * vm/reference/java/lang/reflect/Method.java:
+       (getParameterAnnotations()): Added.
+       
+2008-02-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/swing/tree/DefaultMutableTreeNode.java:
+       Add generics.
+       * javax/swing/tree/DefaultTreeCellEditor.java:
+       (tPath): Removed.
+       (configureEditingComponent(JTree,
+       DefaultTreeCellRenderer,TreeCellEditor)): Removed.
+       * javax/swing/tree/DefaultTreeCellRenderer.java:
+       Removed unused call to getIcon().
+       * javax/swing/tree/DefaultTreeSelectionModel.java:
+       Add generics.
+
+2008-02-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/swing/tree/FixedHeightLayoutCache.java,
+       * javax/swing/tree/VariableHeightLayoutCache.java,
+       * javax/swing/undo/StateEdit.java:
+       Use type parameters with collections classes.
+
+2008-02-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * m4/ac_prog_javac.m4:
+       Turn off ecj warnings for deprecation,
+       serialization and unused imports
+       (both cases).
+
+2008-02-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * m4/ac_prog_javac.m4:
+       Turn off ecj warnings for deprecation,
+       serialization and unused imports.
+       
+2008-02-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2007-03-16  Mark Wielaard  <mark@klomp.org>
+       * org/omg/CORBA/PolicyErrorHelper.java,
+       * org/omg/CORBA/UnknownUserExceptionHelper.java,
+       * org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHelper.java,
+       * org/omg/PortableServer/ForwardRequestHelper.java,
+       * org/omg/PortableServer/POAPackage/InvalidPolicyHelper.java:
+       Remove unused variable.
 
-       * configure.ac (COMPILE_PLUGIN): Stop when no plugin headers found.
-       Also check for gtk+ dependency.
+2008-02-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2007-03-16  Tom Tromey  <tromey@redhat.com>
+       * gnu/classpath/ServiceFactory.java:
+       Use generics.
+       * gnu/classpath/ServiceProviderLoadingAction.java:
+       Likewise.
+       
+2008-02-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * tools/gnu/classpath/tools/javah/JniStubPrinter.java
-       (printClass): Added filename argument.
-       * tools/gnu/classpath/tools/javah/JniIncludePrinter.java
-       (printClass): Added filename argument.
-       * tools/gnu/classpath/tools/javah/CniIncludePrinter.java
-       (printClass): Use user's file name.
-       * tools/gnu/classpath/tools/javah/CniStubPrinter.java
-       (printClass): Use user's file name.
-       * tools/gnu/classpath/tools/javah/Printer.java (printClass): Added
-       filename argument.
-       * tools/gnu/classpath/tools/javah/Main.java (getParser): Fix '-v'
-       argument order.
-       (writeHeaders): Use a HashMap.
-       (run): Put class name into HashMap for writeHeaders.
-
-2007-03-16  Francis Kung  <fkung@redhat.com>
-
-       * gnu/java/awt/peer/gtk/CairoGraphics2D.java
-       (cairoArc): Make protected rather than private so it can be over-ridden.
-       (cairoClip): Likewise.
-       (cairoClosePath): Likewise.
-       (cairoCurveTo): Likewise.
-       (cairoDrawGlyphVector): Likewise.
-       (cairoFill): Likewise.
-       (cairoLineTo): Likewise.
-       (cairoMoveTo): Likewise.
-       (cairoNewPath): Likewise.
-       (cairoRectangle): Likewise.
-       (cairoResetClip): Likewise.
-       (cairoRestore): Likewise.
-       (cairoSave): Likewise.
-       (cairoScale): Likewise.
-       (cairoSetAntialias): Likewise.
-       (cairoSetDash): Likewise.
-       (cairoSetFillRule): Likewise.
-       (cairoSetFont): Likewise.
-       (cairoSetLine): Likewise.
-       (cairoSetMatrix): Likewise.
-       (cairoSetOperator): Likewise.
-       (cairoSetRGBAColor): Likewise.
-       (cairoStroke): Likewise.
-       (drawPixels): Likewise.
-       (init): Likewise.
-       (setGradient): Likewise.
-       (setPaintPixels): Likewise.
-       (cairoDrawLine): Removed.
-       (cairoDrawRect): Removed.
-       (cairoFillRect): Removed.
-       (cairoPreserveClip): Removed.
-       (cairoRelCurveTo): Removed.
-       (cairoRelLineTo): Removed.
-       (cairoRelMoveTo): Removed.
-       * gnu/java/awt/peer/gtk/ComponentGraphics.java
-       (cairoArc): New method wrapping superclass method in locks.
-       (cairoClip): Likewise.
-       (cairoClosePath): Likewise.
-       (cairoCurveTo): Likewise.
-       (cairoDrawGlyphVector): Likewise.
-       (cairoFill): Likewise.
-       (cairoLineTo): Likewise.
-       (cairoMoveTo): Likewise.
-       (cairoNewPath): Likewise.
-       (cairoRectangle): Likewise.
-       (cairoResetClip): Likewise.
-       (cairoRestore): Likewise.
-       (cairoSave): Likewise.
-       (cairoScale): Likewise.
-       (cairoSetAntialias): Likewise.
-       (cairoSetDash): Likewise.
-       (cairoSetFillRule): Likewise.
-       (cairoSetFont): Likewise.
-       (cairoSetLine): Likewise.
-       (cairoSetMatrix): Likewise.
-       (cairoSetOperator): Likewise.
-       (cairoSetRGBAColor): Likewise.
-       (cairoStroke): Likewise.
-       (disposeNative): Likewise.
-       (drawPixels): Likewise.
-       (init): Likewise.
-       (setGradient): Likewise.
-       (setPaintPixels): Likewise.
-       (draw): Do not lock, as locking is now done in the wrapped native methods.
-       (drawComposite): Likewise.
-       (drawGlyphVector): Likewise.
-       (drawImage): Likewise.
-       (drawRenderedImage): Likewise.
-       (fill): Likewise.
-       (setClip): Removed.
-       (lock): Added documentation.
-       (unlock): Added documentation.
-       * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Regenerated.
-       * include/gnu_java_awt_peer_gtk_CairoSurface.h: Regenerated.
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
-       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawLine): Removed.
-       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawRect): Removed.
-       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoFillRect): Removed.
-       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoPreserveClip): Removed.
-       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoRelCurveTo): Removed.
-       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoRelLineTo): Removed.
-       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoRelMoveTo): Removed.
-
-2007-03-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * javax/management/openmbean/ArrayType.java:
-       (getArrayClassName(String, int)): Replaced by...
-       (getArrayClassName(OpenType, int, boolean)):
-       Returns appropriate class name for the array.
-       (getDimensions(OpenType, int)): New method.
-       (getPrimitiveType(Class<?>)): Likewise.
-       (getPrimitiveTypeClass(OpenType<?>)): Likewise.
-       (getElementType(OpenType<?>)): Likewise.
-       (getElementTypeName(OpenType<?>)): Likewise.
-       (ArrayType(int, OpenType<?>)): Rewritten
-       to handle ArrayTypes as input.
-       (ArrayType(SimpleType<?>, boolean)): New constructor.
-       (equals(Object)): Handle primitiveArray flag.
-       (hashCode()): Likewise.
-       (getArrayType(OpenType<E>)): New method.
-       (getPrimitiveArrayType(Class<T>)): Likewise.
-       (isPrimitiveArray()): Likewise.
-       (toString()): Updated to list primitiveArray
-       flag.
-       * javax/management/openmbean/OpenType.java:
-       (OpenType(String,String,String)): Use Class.forName()
-       and methods of Class to validate arrays.
-       * javax/management/openmbean/SimpleType.java:
-       Include causal exception when creating pre-defined types
-       throws an exception.
+        PR classpath/34579:
+       * m4/ac_prog_javac_works.m4: Change test
+       to one that doesn't rely on the compiler's
+       class library.
        
-2007-03-09  Andreas Tobler  <a.tobler@schweiz.org>
-
-       Port change from gcc:
-
-       2007-03-06  Matthias Klose  <doko@ubuntu.com>
-
-       * doc/Makefile.am(gkeytool.pod): Don't use sed -i.
-
-2007-03-09  Kyle Galloway  <kgallowa@redhat.com>
-
-       * gnu/classpath/jdwp/exception/InvalidTagException.java: New file.
-       * gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java
-       (executeGetValues): Use Value type.
-       (exectureSetValues): Ditto.  
-       * gnu/classpath/jdwp/processor/ClassTypeCommandSet.java
-       (executeGetValues): Use Value type.
-       (executeSetValues): Ditto.
-       (invokeMethod): Record method return type.
-       * gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java
-       (executeGetValues): Use Value type.
-       (executeSetValues): Ditto.
-       * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
-       (executeGetValues): Use Value type.
-       * gnu/classpath/jdwp/processor/StackFrameCommandSet.java
-       (executeGetValues): Use Value type.
-       (executeSetValues): Ditto.
-       * gnu/classpath/jdwp/util/MethodResult.java: Add resType to store return
-       type.
-       (getResultType): New Method.
-       (setResultType): Ditto.
-       * gnu/classpath/jdwp/util/Value.java: Remove.
-       * gnu/classpath/jdwp/value: New Package.
-       * gnu/classpath/jdwp/value/Value.java: New file.
-       * gnu/classpath/jdwp/value/BooleanValue.java: New file.
-       * gnu/classpath/jdwp/value/ByteValue.java: New file.
-       * gnu/classpath/jdwp/value/CharValue.java: New file.
-       * gnu/classpath/jdwp/value/DoubleValue.java: New file.
-       * gnu/classpath/jdwp/value/FloatValue.java: New file.
-       * gnu/classpath/jdwp/value/IntValue.java: New file.
-       * gnu/classpath/jdwp/value/LongValue.java: New file.
-       * gnu/classpath/jdwp/value/ObjectValue.java: New file.
-       * gnu/classpath/jdwp/value/ShortValue.java: New file.
-       * gnu/classpath/jdwp/value/StringValue.java: New file.
-       * gnu/classpath/jdwp/value/ValueFactory.java: New file.
-       * gnu/classpath/jdwp/value/VoidValue.java: New file.
-
-2007-03-09  Roman Kennke  <kennke@aicas.com>
-
-       * java/awt/image/SinglePixelPackageSampleModel.java
-       (createDataBuffer): Avoid use of Buffers class and create
-       DataBuffer directly in place.
-
-2007-03-09  Roman Kennke  <kennke@aicas.com>
-
-       * java/awt/image/ComponentSampleModel.java
-       (tightPixelPacking): Removed.
-       (ComponentSampleModel): Removed unnecessary 'optimization' code.
-       (createDataBuffer): Avoid use of Buffers helper class.
-       (getDataElements(int,int,int,int,Object,DataBuffer): Removed.
-       (getDataElements(int,int,Object,DataBuffer): Do not use Buffers
-       helper class and instead fetch the values directly. Don't expect
-       any specific DataBuffer subclass.
-       (setDataElements(int,int,int,int,Object,DataBuffer): Removed.
-       (setDataElements(int,int,Object,DataBuffer): Do not use Buffers
-       helper class and instead set the values directly. Don't expect
-       any specific DataBuffer subclass.
-
-2007-03-08  Tom Tromey  <tromey@redhat.com>
-
-       PR libgcj/31093:
-       * java/net/MulticastSocket.java (setTimeToLive): Allow ttl==0.
-
-2007-03-08  Gary Benson  <gbenson@redhat.com>
-
-       PR classpath/30983:
-       * gnu/xml/dom/ls/DomLSParser.java (getInputSource):
-       Do not use the entity resolver to resolve the top-level document.
-
-2007-03-07  Tom Tromey  <tromey@redhat.com>
-
-       PR classpath/31057:
-       * java/util/regex/Pattern.java (toString): New method.
-
-2007-03-07  Gary Benson  <gbenson@redhat.com>
-
-       PR classpath/30906:
-       * resource/META-INF/services/org.w3c.dom.DOMImplementationSourceList:
+2008-02-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+        PR classpath/34578:
+       * NEWS: Mention javah and javac build changes.
+       * configure.ac: Call AC_PROG_JAVAC and
+       CLASSPATH_JAVAC_MEM_CHECK instead of CLASSPATH_FIND_JAVAC.
+       * examples/Makefile.am: Simplify compiler choice
+       to just use JAVAC.
+       * lib/Makefile.am: Likewise, but with JAVAC_MEM_OPT too.
+       * m4/ac_prog_javac.m4: New file.
+       * m4/ac_prog_javac_works.m4: Likewise.
+       * m4/acinclude.m4:
+       (CLASSPATH_FIND_JAVAC): Removed.
+       (CLASSPATH_WITH_GCJ): Removed.
+       (CLASSPATH_CHECK_GCJ): Removed.
+       (CLASSPATH_WITH_JIKES): Removed.
+       (CLASSPATH_CHECK_JIKES): Removed.
+       (CLASSPATH_WITH_KJC): Removed.
+       (CLASSPATH_CHECK_KJC): Removed.
+       (CLASSPATH_WITH_ECJ): Removed.
+       (CLASSPATH_CHECK_ECJ): Removed.
+       (CLASSPATH_WITH_JAVAC): Removed.
+       (CLASSPATH_CHECK_JAVAC): Removed.
+       (CLASSPATH_JAVAC_MEM_CHECK): Added.
+       * tools/Makefile.am: Simplify compiler choice
+       to just javac.
+
+2008-02-12  Roman Kennke  <kennke@aicas.com>
+
+       * java/awt/color/ICC_Profile.java
+       (getInstance()): Wrap call to InputStream.read(byte[],int,int) in
+       a loop, in order to read the whole thing.
+
+2008-02-10  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/remote/NotificationResult.java:
        New file.
-
-2007-03-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * gnu/java/lang/management/BeanImpl.java:
-       (translate(String)): Add horrible generics hacks
-       to make things work with the new type signatures.
-       * javax/management/loading/ClassLoaderRepository.java:
-       Added generic types.
-       * javax/management/openmbean/CompositeDataSupport.java:
-       Likewise.
-       * javax/management/openmbean/OpenMBeanOperationInfo.java:
-       Likewise.
-       * javax/management/openmbean/OpenMBeanParameterInfo.java:
+       * javax/management/remote/TargetedNotification.java:
        Likewise.
+       * javax/management/remote/rmi/RMIConnection.java:
+       (fetchNotifications(long,int,long)): Added.
+       
+2008-02-10  Dalibor Topic  <robilad@kaffe.org>
 
-2007-03-06  Francis Kung  <fkung@redhat.com>
+       * lib/Makefile.am (compile_classpath), include/Makefile.am (JAVAH): 
+       Replaced USER_CLASSLIB with PATH_TO_GLIBJ_ZIP.
 
-       * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
-       (getGlyphOutline): Apply glyph position translation.
-       (getOutline): Do not apply glyph position translation.
+       * m4/acinclude.m4 (CLASSPATH_WITH_CLASSLIB)[--with-classpath]:
+       Removed unused option. It's superceded by --with-glibj-zip.
 
-2007-03-06  Tom Tromey  <tromey@redhat.com>
+2008-02-10  Dalibor Topic  <robilad@kaffe.org>
 
-       * tools/gnu/classpath/tools/javah/Main.java (getName): New
-       method.
-       (getParser): Now protected.  Use getName.  Add '-v' alias for
-       --verbose.
-       (postParse): New method.
-       (run): Now protected.  Use postParse.
-       * tools/gnu/classpath/tools/javah/GcjhMain.java: New file.
+       * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAH)[USER_JAVAH]: 
+       Check for gjavah-4.3.
 
-2007-03-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-02-10  Mark Wielaard  <mark@klomp.org>
 
-       * gnu/javax/management/Translator.java:
-       (translate(String)): Use a Boolean array to
-       comply with the new typing.
-       * javax/management/openmbean/ArrayType.java:
-       Added generic types and updated copyright headers.
-       * javax/management/openmbean/CompositeData.java:
-       Likewise.
-       * javax/management/openmbean/CompositeDataSupport.java:
-       Likewise.       
-       * javax/management/openmbean/CompositeType.java:
-       Likewise.       
-       * javax/management/openmbean/OpenMBeanAttributeInfoSupport.java:
-       Likewise.       
-       * javax/management/openmbean/OpenMBeanOperationInfoSupport.java:
-       Likewise.       
-       * javax/management/openmbean/OpenMBeanParameterInfoSupport.java:
-       Likewise.       
-       * javax/management/openmbean/OpenType.java:
-       Updated copyright header.       
-       * javax/management/openmbean/SimpleType.java:
-       Added generic types and updated copyright headers.
-       * javax/management/openmbean/TabularData.java:
-       Likewise.
-       * javax/management/openmbean/TabularDataSupport.java:
-       Likewise.
-       * javax/management/openmbean/TabularType.java:
-       Likewise.
+       * scripts/check_jni_methods.sh.in:
+       Use abs_src_builddir so that the absolute path
+       to the source directory is used by the script.
        
-2007-03-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-02-10  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * gnu/java/lang/management/BeanImpl.java:
-       Reference the new Translator class.
-       (translate(String)): Moved to Translator.
-       * gnu/javax/management/Translator.java:
-       New file.
-       * javax/management/JMX.java:
-       Likewise.
-       * javax/management/MBeanServerInvocationHandler.java:
+       * scripts/check_jni_methods.sh.in:
+       Use abs_top_builddir so that the absolute path
+       to the build directory is used by the script.
+       
+2008-02-10  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/remote/rmi/RMIConnection.java:
+       (addNotificationListeners(ObjectName[],
+       MarshalledObject[], Subject[])): Fixed return type.
+       (close()): Added.
+       (createMBean(String,ObjectName,MarshalledObject,
+       String[], Subject)): Likewise.
+       (createMBean(String,ObjectName,ObjectName,
+       MarshalledObject, String[], Subject)): Likewise.
+       (createMBean(String,ObjectName,ObjectName,
+       Subject)): Likewise.
+       (createMBean(String,ObjectName,Subject)): Likewise.
+       (getAttribute(ObjectName,String,Subject)): Likewise.
+       (getAttributes(ObjectName,String[],Subject)): Likewise.
+       (getConnectionId()): Likewise.
+       (getDefaultDomain(Subject)): Likewise.
+       (getDomains(Subject)): Likewise.
+       (getMBeanCount(Subject)): Likewise.
+       (getMBeanInfo(ObjectName,Subject)): Likewise.
+       (getObjectInstance(ObjectName,Subject)): Likewise.
+       (invoke(ObjectName,String,MarshalledObject,String[],
+       Subject)): Likewise.
+       (isInstanceOf(ObjectName,String,Subject)): Likewise.
+       (isRegistered(ObjectName,Subject)): Likewise.
+       (queryMBeans(ObjectName,MarshalledObject,Subject)): Likewise.
+       (queryNames(ObjectName,MarshalledObject,Subject)): Likewise.
+       (removeNotificationListener(ObjectName,ObjectName,MarshalledObject,
+       MarshalledObject,Subject)): Likewise.
+       (removeNotificationListener(ObjectName,ObjectName,Subject)):
        Likewise.
-       * javax/management/MXBean.java:
+       (removeNotificationListeners(ObjectName,Integer[],Subject)):
        Likewise.
-       * javax/management/ObjectName.java:
-       (ObjectName(String)): Catch a key without a value.
-       * javax/management/StandardMBean.java:
-       (StandardMBean(Class<?>)): Handle MXBeans.
-       (StandardMBean(Object, Class<?>)): Likewise.
-       (invoke(String,Object[],String[])): Disallow
-       calling attribute methods and handle null signatures.
-       (setAttribute(Attribute)): Search for mutators
-       with the appropriate signature.
-       * javax/management/openmbean/OpenType.java:
-       Add generic typing.
-       (ALLOWED_CLASSNAMES_LIST): New field.
-       
-2007-03-02  Mario Torre  <neugens@limasoftware.net>
+       (setAttribute(ObjectName,MarshalledObject,Subject)): Likewise.
+       (setAttributes(ObjectName,MarshalledObject,Subject)): Likewise.
+       (unregisterMBean(ObjectName,Subject)): Likewise.
 
-       PR classpath/31017:
-       committed for Petteri Räty <betelgeuse@gentoo.org>
-       * configure.ac: fix broken build for gcj browser plugin
-       
-2007-03-02  Mario Torre  <neugens@limasoftware.net>
-
-       * java/awt/Desktop.java: new java 1.6 class.
-       * java/awt/peer/DesktopPeer.java: new inteface.
-       * gnu/java/awt/peer/GnomeDesktopPeer.java: new class.
-       * gnu/java/awt/peer/ClasspathDesktopPeer.java: new class.
-       * gnu/java/awt/peer/KDEDesktopPeer.java: new class.
-       * java/awt/Toolkit.java (createDesktopPeer): new method to support the
-       creation of DesktopPeer instances.
-       * gnu/java/awt/peer/qt/QtToolkit.java: update copyright notice and
-       organize import.
-       * gnu/java/awt/ClasspathToolkit.java (createDesktopPeer): new method.
-
-2007-02-28  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/processor/EventRequestCommandSet.java
-       (executeSet): Check if VM has capability for field access
-       or modification events.
-       * gnu/classpath/jdwp/processor/MethodCommandSet.java
-       (executeByteCodes): Check if VM has capability and
-       implement.
-       * gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java
-       (executeMonitorInfo): Likewise.
-       * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
-       (executeSourceDebugExtension): Likewise.
-       * gnu/classpath/jdwp/processor/StackFrameCommandSet.java
-       (executePopFrames): Likewise.
-       * gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java
-       (executeOwnedMonitors): Likewise.
-       (executeCurrentContendedMonitor): Likewise.
-       * gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
-       (executeCapabilities): Rewrite using new VMVirtualMachine
-       capabilities.
-       (executeRedefineClasses): Check if VM has capability and
-       implement.
-       (executeSetDefaultStratum): Likewise.
-       * gnu/classpath/jdwp/util/MonitorInfo.java; New file.
-       * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
-       (canWatchFieldModification): New class constant.
-       (canWatchFieldAccess): Likewise.
-       (canGetBytecodes): Likewise.
-       (canGetSyntheticAttribute): Likewise.
-       (canGetOwnedMonitorInfo): Likewise.
-       (canGetCurrentContendedMonitor): Likewise.
-       (canGetMonitorInfo): Likewise.
-       (canRedefineClasses): Likewise.
-       (canAddMethod): Likewise.
-       (canUnrestrictedlyRedefineClasses): Likewise.
-       (canPopFrames): Likewise.
-       (canUseInstanceFilters): Likewise.
-       (canGetSourceDebugExtension): Likewise.
-       (canRequestVMDeathEvent): Likewise.
-       (canSetDefaultStratum): Likewise.
-       (redefineClasses): New method.
-       (setDefaultStratum): Likewise.
-       (getSourceDebugExtension): Likewise.
-       (getBytecodes): Likewise.
-       (getMonitorInfo): Likewise.
-       (getOwnedMonitors): Likewise.
-       (getCurrentContendedMonitor): Likewise.
-       (popFrames): Likewise.
-
-2007-03-01  Roman Kennke  <kennke@aicas.com>
-
-       * java/awt/Canvas.java
-       (graphicsConfiguration): Removed duplicate (from Component) field.
-       (Canvas(GraphicsConfiguration)): Set the Component's graphicsConfig
-       field.
-       (getGraphicsConfigurationImpl): Removed.
-       * java/awt/Component.java
-       (getGraphicsConfiguration): Moved implementation here. Synchronize
-       on tree lock to prevent threading nastiness. Don't query peer
-       and instead return the setting of the graphicsConfig field.
-       (getGraphicsConfigurationImpl): Removed.
-       * java/awt/Window.java
-       (graphicsConfiguration): Removed duplicate (from Component) field.
-       (Window): Set the Component's graphicsConfig field.
-       (Window(GraphicsConfiguration)): Set the Component's graphicsConfig
-       field.
-       (Window(Window,GraphicsConfiguration)): Set the Component's 
-       graphicsConfig field.
-       (getGraphicsConfigurationImpl): Removed.
-       (getGraphicsConfiguration): Fetch the local graphics env here
-       if not already done and return that.
-
-2007-02-28  Thomas Fitzsimmons  <fitzsim@redhat.com>
-
-       * INSTALL: Document --with-ecj-jar configure option and ecj jar
-       requirement for com.sun.tools.javac support.
-       * configure.ac: Add --with-ecj-jar configure option.
-       * gnu/classpath/Configuration.java.in (ECJ_JAR): New field.
-       * tools/Makefile.am: Build decendents of com and sun directories.
-       * resource/com/sun/tools/javac/messages.properties,
-       resource/sun/rmi/rmic/messages.properties,
-       tools/com/sun/javadoc/ClassDoc.java,
-       tools/com/sun/javadoc/ConstructorDoc.java,
-       tools/com/sun/javadoc/Doc.java,
-       tools/com/sun/javadoc/DocErrorReporter.java,
-       tools/com/sun/javadoc/Doclet.java,
-       tools/com/sun/javadoc/ExecutableMemberDoc.java,
-       tools/com/sun/javadoc/FieldDoc.java,
-       tools/com/sun/javadoc/MemberDoc.java,
-       tools/com/sun/javadoc/MethodDoc.java,
-       tools/com/sun/javadoc/PackageDoc.java,
-       tools/com/sun/javadoc/ParamTag.java,
-       tools/com/sun/javadoc/Parameter.java,
-       tools/com/sun/javadoc/ProgramElementDoc.java,
-       tools/com/sun/javadoc/RootDoc.java,
-       tools/com/sun/javadoc/SeeTag.java,
-       tools/com/sun/javadoc/SerialFieldTag.java,
-       tools/com/sun/javadoc/SourcePosition.java,
-       tools/com/sun/javadoc/Tag.java,
-       tools/com/sun/javadoc/ThrowsTag.java,
-       tools/com/sun/javadoc/Type.java,
-       tools/com/sun/javadoc/TypeVariable.java,
-       tools/com/sun/tools/doclets/Taglet.java,
-       tools/com/sun/tools/javac/Main.java,
-       tools/com/sun/tools/javac/Messages.java,
-       tools/sun/rmi/rmic/Main.java, tools/sun/rmi/rmic/Messages.java:
-       New files.
-
-2007-02-28  Keith Seitz  <keiths@redhat.com>
-
-       * gnu/classpath/jdwp/processor/MethodCommandSet.java
-       (executeLineTable): Use ReferenceTypeId instead of
-       ClassReferenceTypeId.
-       (executeVariableTable): Likewise.
-       (executeVariableTableWithGeneric): Fix error message.
-       * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
-       (executeSignatureWithGeneric): Fix error message.
-       (executeFieldWithGeneric): Likewise.
-       (executeMethodsWithGeneric): Likewise.
-       * gnu/classpath/jdwp/processor/StackFrameCommandSet.java
-       (executeGetValues): Use ThreadId instead of ObjectId.
-       (executeSetValues): Likewise.
-       (executeThisObject): Likewise.
-
-2007-02-28  Kyle Galloway  <kgallowa@redhat.com>
-
-       * gnu/classpath/jdwp/id/NullObjectId.java: New class.
-       * gnu/classpath/jdwp/util/NullObject.java: New class.
-       * vm/reference/gnu/classpath/jdwp/VMIdManager.java
-       (getObjectId): Handle null object.
-       (get): Handle objectId of 0. 
-
-2007-02-26  Francis Kung  <fkung@redhat.com>
-
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
-       (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Stop using deprecated
-       function for creating new font map.
-
-2007-02-26  Francis Kung  <fkung@redhat.com>
-
-       * gnu/java/awt/peer/gtk/CairoGraphics2D.java
-       (drawCairoSurface): Do not reset clip.
-       (drawImage(Image,AffineTransform,Color,ImageObserver)): Likewise.
-
-2007-02-23  Francis Kung  <fkung@redhat.com>
-
-       * gnu/java/awt/peer/gtk/CairoGraphics2D.java
-       (drawCairoSurface): New method.
-       (drawImage(Image,AffineTransform,Color,ImageObserver)): Use new
-       drawCairoSurface() method.
-       * gnu/java/awt/peer/gtk/CairoSurface.java
-       (CairoSurface(SampleModel,CairoSurface,Rectangle,Point)): Copy correct
-       width/height values, and copy sharedBuffer value.
-       (createWritableChild): Remove debug line.
-       (drawSurface): Removed method.
-       * gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java
-       (drawComposite): Translate image when drawing.
-
-2007-02-23  Gary Benson  <gbenson@redhat.com>
-           Jakub Jelinek  <jakub@redhat.com>
-
-       PR libgcj/17002
-       PR classpath/28550
-       * java/util/Date.java (parse): Properly parse 09:01:02 as
-       hours/minutes/seconds, not as hours/minutes/year.
-       * java/util/SimpleTimeZone.java (SimpleTimeZone): Simplify
-       {start,end}TimeMode constructor by calling shorter constructor,
-       set {start,end}TimeMode fields after it returns.
-       (setStartRule): Don't adjust startTime into WALL_TIME.  Set
-       startTimeMode to WALL_TIME.
-       (endStartRule): Similarly.
-       (getOffset): Handle properly millis + dstOffset overflowing into the
-       next day.  Adjust startTime resp. endTime based on startTimeMode
-       resp. endTimeMode.
-       * java/util/TimeZone.java (zoneinfo_dir, availableIDs, aliases0): New
-       static fields.
-       (timezones): Remove synchronized keyword.  Set zoneinfo_dir.
-       If non-null, set up aliases0 and don't put anything into
-       timezones0.
-       (defaultZone): Call getTimeZone instead of timezones().get.
-       (getDefaultTimeZone): Fix parsing of EST5 or EST5EDT6.  Use
-       getTimeZoneInternal instead of timezones().get.
-       (parseTime): Parse correctly hour:minute.
-       (getTimeZoneInternal): New private method.
-       (getTimeZone): Do the custom ID checking first, canonicalize
-       ID for custom IDs as required by documentation.  Call
-       getTimeZoneInternal to handle the rest.
-       (getAvailableIDs(int)): Add locking.  Handle zoneinfo_dir != null.
-       (getAvailableIDs(File,String,ArrayList)): New private method.
-       (getAvailableIDs()): Add locking.  Handle zoneinfo_dir != null.
-       * vm/reference/java/util/VMTimeZone.java (getDefaultTimeZoneId):
-       To read /etc/localtime, use ZoneInfo.readTZFile instead of
-       VMTimeZone.readtzFile.  Get better timezone name for
-       /etc/localtime, either if it is a symlink or through
-       /etc/sysconfig/clock.
-       (readSysconfigClockFile): New static method.
-       (readtzFile): Removed.
-       * gnu/java/util/ZoneInfo.java: New file.        
-       * java/lang/System.java: Add gnu.java.util.zoneinfo.dir to comments.
-        * NEWS: Documented TimeZone interface changes.
-
-2007-02-23  Francis Kung  <fkung@redhat.com>
-
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
-       (Java_gnu_java_awt_peer_gtk_CairoSurface_create): Remove debug line.
-
-2007-02-22  Keith Seitz  <keiths@redhat.ecom>
-
-       * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
-       (getAllLoadedClassesCount): Remove.
-       (getAllLoadedClasses): Return a Collection.
-       * gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
-       (executeClassesBySignature): VMVirtualMachine.getAllLoadedClasses
-       now returns Collection.
-       (executeAllClasses): Likewise.
-       Get size of return from Colleciton instead of calling
-       getAllLoadedClassesCount.
-
-2007-02-22  Kyle Galloway  <kgallowa@redhat.com>
-
-       * gnu/classpath/jdwp/processor/StackFrameCommandSet.java 
-       (executeGetValues): Pass a signature byte to VMFrame.getValue.
-       * vm/reference/gnu/classpath/jdwp/VMFrame.java (getValue): Add
-       signature parameter.
-
-2007-02-22  Francis Kung  <fkung@redhat.com>
-
-       * gnu/java/awt/peer/gtk/CairoSurface.java
-       (copyAreaNative): Pass surface pointer into copyAreaNative2().
-       (copyAreaNative2): Add parameter for surface pointer.
-       (getFlippedBuffer): Add parameter for surface pointer.
-       (getGtkImage): Pass surface pointer into getFlippedBuffer().
-
-2007-02-21  Francis Kung  <fkung@redhat.com>
-
-       * gnu/java/awt/peer/gtk/BufferedImageGraphcs.java
-       (constructor): Add pre-multiplied colour model to types available for
-       optimization.
-       (updateBufferedImage): Change surface.getPixels() call to surface.getData().
-       * gnu/java/awt/peer/gtk/CairoGraphics2D.java
-       (drawImage): Add checks before using CairoSurface optimization.
-       * gnu/java/awt/peer/gtk/CairoSurface.java
-       (bufferPointer): Removed field.
-       (sharedBuffer): New field.
-       (CairoSurface(GtkImage)): Copy array rather than using setPixels() call.
-       (CairoSurface(int,int,int)): Use getData() convenience method.
-       (CairoSurface(SampleModel,CairoSurface,Rectangle,Point)): Remove reference
-       to deleted bufferPointer field.
-       (copyAreaNative): Update documentation, remove reference to bufferPointer.
-       (copyAreaNative2): Remove reference to deleted bufferPointer field.
-       (destroy): Remove reference to deleted bufferPointer field.
-       (dispose): Updated to reflect new method signature for destroy().
-       (drawSurface): Added documentation.
-       (getData): New convience method.
-       (getFlippedBuffer): Removed method parameters.
-       (getGtkImage): Updated to reflect new method signature.
-       (getPixels): Removed method.
-       (nativeGetElem): Removed method.
-       (netiveGetPixels): Removed method.
-       (nativeSetElem): Removed method.
-       (nativeSetPixels): Removed method.
-       (setPixels): Removed method.
-       (syncJavaToNative): New method.
-       (syncNativeToJava): New method.
-       * gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java
-       (draw): Sync buffers if necessary.
-       (drawGlyphVector): Likewise.
-       (drawImage): Likewise.
-       (drawRenderedImage): Likewise,
-       (fill): Likewise.
-       * include/gnu_java_awt_peer_gtk_CairoSurface.h: Regenerated.
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
-       (Java_gnu_java_awt_peer_gtk_CairoSurface_copyAreaNative2): Use pointer to
-       surface rather than pointer to buffer.
-       (Java_gnu_java_awt_peer_gtk_CairoSurface_create): Provide fall-back for
-       copied arrays.
-       (Java_gnu_java_awt_peer_gtk_CairoSurface_destroy): Handle copied arrays.
-       (Java_gnu_java_awt_peer_gtk_CairoSurface_getFlippedBuffer): Retrieve
-       information on size using JNI calls.
-       (Java_gnu_java_awt_peer_gtk_CairoSurface_getElem): Removed.
-       (Java_gnu_java_awt_peer_gtk_CairoSurface_getPixels): Removed.
-       (Java_gnu_java_awt_peer_gtk_CairoSurface_setElem): Removed.
-       (Java_gnu_java_awt_peer_gtk_CairoSurface_setPixels): Removed.
-       (Java_gnu_java_awt_peer_gtk_CairoSurface_syncJavaToNative): New function.
-       (Java_gnu_java_awt_peer_gtk_CairoSurface_syncNativeToJava): New function.
-       (BUFFER): Removed constant.
-       (SHARED): New constant.
-
-2007-02-20  Gary Benson  <gbenson@redhat.com>
-
-       * javax/management/ObjectName.java
-       (domainMatches): New method.
-       (apply): Rearranged to use the above.
-
-2007-02-19  Mark Wielaard  <mark@klomp.org>
-
-       * doc/.cvsignore: Add *.1.
-       * doc/Makefile.am (CLEANFILES): Add Tools_MANFILES.
-
-2007-02-19  Dalibor Topic  <robilad@kaffe.org>
-
-       * cp-hacking.texinfo, cp-tools.texinfo, 
-       cp-vmintegration.texinfo: Prefix output file name
-       with cp.
-
-2007-02-19  Gary Benson  <gbenson@redhat.com>
-
-       * javax/management/ObjectName.java
-       (properties): Initialize when declared.
-       (ObjectName(String)): Don't initialize properties here.
-       (ObjectName(String, String, String): Likewise.
-
-2007-02-19  Chris Burdess  <dog@gnu.org>
-
-       Fixes #30831
-       * gnu/xml/dom/ls/SAXEventSink.java: Only set extended document
-         properties when reader is available.
-
-2007-02-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * javax/management/MBeanServer.java:
-       (queryMBeans(ObjectName,QueryExp)): Returned
-       generically-typed Set.
-       (queryNames(ObjectName,QueryExp)): Likewise.
-       * javax/management/MBeanServerConnection.java:
-       (queryMBeans(ObjectName,QueryExp)): Returned
-       generically-typed Set.
-       (queryNames(ObjectName,QueryExp)): Likewise.
-       * javax/management/ObjectName.java:
-       Use a generically-typed TreeMap.
-       (ObjectName(String,Hashtable<String,String>):
-       Genericized.
-       (getKeyPropertyList()): Likewise.
-       * javax/management/StandardMBean.java:
-       Use a generically-typed interface class.
-       (StandardMBean(Class<?>)): Genericized.
-       (StandardMBean(T, Class<T>)): Likewise.
-       (getImplementationClass()): Likewise.
-       (getMBeanInterface()): Likewise.
-       
-2007-02-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-02-09  Dalibor Topic  <robilad@kaffe.org>
 
-       * javax/management/Descriptor.java:
-       New file.
-       * javax/management/DescriptorRead.java:
-       Likewise.
-       * javax/management/DescriptorAccess.java:
-       Likewise.
-       
-2007-02-16  Matthias Klose  <doko@ubuntu.com>
-
-       * doc/Makefile.am: Add rules to build and install man pages
-       from texinfo docs.
-       * doc/hacking.texinfo doc/tools.texinfo, doc/vmintegration.texinfo:
-       Rename, prefix files with "cp-".
-       * doc/cp-tools.texinfo: Add markup for man page generation,
-       add documentation for command line options for gjar, gjavah,
-       gnative2ascii, gorbd, grmid, grmiregistry, gserialver, gtnameserv.
-       doc/texi2pod.pl: New, taken from the GCC sources.
-
-2007-02-16  Francis Kung  <fkung@redhat.com>
-
-       * gnu/java/awt/ClasspathGraphicsEnvironment.java: New file.
-       * gnu/java/awt/peer/gtk/CairoSurface.java
-       (CairoDataBuffer): Removed inner class.
-       (CairoSurface(int,int,int,int)): New constructor.
-       (CairoSurface(int,int)): Delegate to new constructor.
-       (CairoSurface(SampleModel,CairoSurface,Rectangle,Point)): New constructor
-       for creating child rasters.
-       (create): Added int[] parameter.
-       (createChild): New method.
-       (createCompatibleWritableRaster): New methods.
-       (createTranslatedChild): New method.
-       (createWritableChild): New method.
-       (createWritableTranslatedChild): New method.
-       (destroy): Added int[] parameter.
-       (dispose): Only free native resources if this Surface has no parents.
-       (isCompatibleColorModel): New method.
-       (isCompatibleSampleModel): New method.
-       * gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java
-       (draw): Set transform, smarter bounds generation.
-       (drawComposite): Improved clipping.
-       (drawImage): Fixed bounds translation.
-       (drawRenderedImage): Set transform in buffer.
-       (fill): Set transform in buffer.
-       * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
-       (createRaster): New method.
-       * java/awt/image/BufferedImage.java
-       (BufferedImage(int,int,int)): Use optimized raster if possible.
-       * include/gnu_java_awt_peer_gtk_CairoSurface.h: Regenerated.
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
-       (Java_gnu_java_awt_peer_gtk_CairoSurface_create): Share data buffer between
-       Cairo and Java.
-       (Java_gnu_java_awt_peer_gtk_CairoSurface_destroy): Free data array.
-
-2007-02-16  Francis Kung  <fkung@redhat.com>
-
-       * javax/management/NotificationBroadcasterSupport.java: Update imports.
-
-2007-02-16  Andrew Haley  <aph@redhat.com>
-
-        * gnu/java/lang/management/MemoryMXBeanImpl.java,
-        javax/management/MBeanServerDelegate.java: Use
-        gnu.javax.management.ListenerData rather than
-        gnu.classpath.ListenerData.
-        * gnu/javax/management/ListenerData.java: Move here from
-        gnu/classpath/ListenerData.java.
-
-2006-10-14  Edwin Steiner  <edwin.steiner@gmx.net>
-
-       PR classpath/28652:
-       * javax/management/MBeanInfo.java (MBeanInfo): 
-       Use clone to duplicate the arrays in order to
-       preserve the array type.
-       
-2007-02-15  Gary Benson  <gbenson@redhat.com>
+       * native/jni/Makefile.am (all-local): Call check_jni_methods.sh
+       directly.
 
-       * gnu/javax/management/Server.java
-       (registerMBean): Always register objects that implement the
-       MBeanRegistration interface, and check the name returned by
-       preRegister before using it.
+       * scripts/Makefile.am (EXTRA_DIST): Removed check_jni_methods.sh.
 
-2007-02-15  Roman Kennke  <kennke@aicas.com>
+       * include/Makefile.am (SOUND_H_FILES, GST_PEER_H_FILES)
+       (XMLJ_H_FILES, GTKPEER_H_FILES, QTPEER_H_FILES)
+       (GCONF_PREFS_FILES, H_FILES): Don't generate header files
+       in the source directory, as it may not be writeable.
+       (DISTCLEANFILES) Added H_FILES.
 
-       * java/nio/ByteOrder.java
-       (nativeOrder): Avoid NPE when comparing a system property.
+       * configure.ac (AC_CONFIG_FILES): Added 
+       scripts/check_jni_methods.sh.
 
-2007-02-13  Gary Benson  <gbenson@redhat.com>
+       * scripts/check_jni_methods.sh: Removed. Moved over to ..
+       * scripts/check_jni_methods.sh.in: New file. Added 
+       top_srcdir and top_builddir where necessary.
+       
+2008-02-09  Mario Torre  <neugens@limasoftware.net>
+
+       * include/java_util_VMTimeZone.h: Removed.
+       * native/jni/gconf-peer/GConfNativePeer.c: all native methods, replaced
+       GConfEngine with GConfClient and use GConfClient API instead.
+
+2008-02-08  Mark Wielaard  <mark@klomp.org>
+
+       * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAC): Delete
+       Colour.class.
+
+       * include/.cvsignore: Add java_* and gnu_*.h.
+
+2008-02-08  Mario Torre  <neugens@limasoftware.net>
+
+    * configure.ac: --enable-regen-header option now enabled by default.
+    * include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Removed.
+    * include/gnu_java_awt_peer_gtk_CairoSurface.h: Removed.
+    * include/gnu_java_awt_peer_gtk_ComponentGraphics.h: Removed.
+    * include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h: Removed.
+    * include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GdkFontPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GdkRobotPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkButtonPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkChoicePeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkClipboard.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkFramePeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkGenericPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkImage.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkLabelPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkListPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkMenuPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkPanelPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkSelection.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkToolkit.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkVolatileImage.h: Removed.
+    * include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_MainQtThread.h: Removed.
+    * include/gnu_java_awt_peer_qt_QMatrix.h: Removed.
+    * include/gnu_java_awt_peer_qt_QPainterPath.h: Removed.
+    * include/gnu_java_awt_peer_qt_QPen.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtAudioClip.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtButtonPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtCanvasPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtCheckboxPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtChoicePeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtComponentPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtDialogPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtFileDialogPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtFontMetrics.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtFontPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtFramePeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtGraphics.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtImage.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtLabelPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtListPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtMenuBarPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtMenuItemPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtMenuPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtPanelPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtScreenDevice.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtScrollbarPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtScrollPanePeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtTextAreaPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtTextFieldPeer.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtToolkit.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtVolatileImage.h: Removed.
+    * include/gnu_java_awt_peer_qt_QtWindowPeer.h: Removed.
+    * include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h: Removed.
+    * include/gnu_java_net_local_LocalSocketImpl.h: Removed.
+    * include/gnu_java_net_VMPlainSocketImpl.h: Removed.
+    * include/gnu_java_nio_charset_iconv_IconvDecoder.h: Removed.
+    * include/gnu_java_nio_charset_iconv_IconvEncoder.h: Removed.
+    * include/gnu_java_nio_EpollSelectorImpl.h: Removed.
+    * include/gnu_java_nio_FileChannelImpl.h: Removed.
+    * include/gnu_java_nio_KqueueSelectorImpl.h: Removed.
+    * include/gnu_java_nio_VMChannel.h: Removed.
+    * include/gnu_java_nio_VMPipe.h: Removed.
+    * include/gnu_java_nio_VMSelector.h: Removed.
+    * include/gnu_java_util_prefs_gconf_GConfNativePeer.h: Removed.
+    * include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h: Removed.
+    * include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h: Removed.
+    * include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h: Removed.
+    * include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h: Removed.
+    * include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h: Removed.
+    * include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h: Removed.
+    * include/gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h: Removed.
+    * include/gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h: Removed.
+    * include/gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h: Removed.
+    * include/gnu_xml_libxmlj_dom_GnomeAttr.h: Removed.
+    * include/gnu_xml_libxmlj_dom_GnomeDocument.h: Removed.
+    * include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h: Removed.
+    * include/gnu_xml_libxmlj_dom_GnomeDocumentType.h: Removed.
+    * include/gnu_xml_libxmlj_dom_GnomeElement.h: Removed.
+    * include/gnu_xml_libxmlj_dom_GnomeEntity.h: Removed.
+    * include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h: Removed.
+    * include/gnu_xml_libxmlj_dom_GnomeNode.h: Removed.
+    * include/gnu_xml_libxmlj_dom_GnomeNodeList.h: Removed.
+    * include/gnu_xml_libxmlj_dom_GnomeNotation.h: Removed.
+    * include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h: Removed.
+    * include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h: Removed.
+    * include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h: Removed.
+    * include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h: Removed.
+    * include/gnu_xml_libxmlj_dom_GnomeXPathResult.h: Removed.
+    * include/gnu_xml_libxmlj_sax_GnomeLocator.h: Removed.
+    * include/gnu_xml_libxmlj_sax_GnomeXMLReader.h: Removed.
+    * include/gnu_xml_libxmlj_transform_GnomeTransformer.h: Removed.
+    * include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h: Removed.
+    * include/java_io_VMFile.h: Removed.
+    * include/java_io_VMObjectInputStream.h: Removed.
+    * include/java_io_VMObjectStreamClass.h: Removed.
+    * include/java_lang_reflect_VMArray.h: Removed.
+    * include/java_lang_VMDouble.h: Removed.
+    * include/java_lang_VMFloat.h: Removed.
+    * include/java_lang_VMMath.h: Removed.
+    * include/java_lang_VMProcess.h: Removed.
+    * include/java_lang_VMSystem.h: Removed.
+    * include/java_net_VMInetAddress.h: Removed.
+    * include/java_net_VMNetworkInterface.h: Removed.
+    * include/java_net_VMURLConnection.h: Removed.
+    * include/java_nio_MappedByteBufferImpl.h: Removed.
+    * include/java_nio_VMDirectByteBuffer.h: Removed.
+
+2008-02-08  Roman Kennke  <kennke@aicas.com>
 
-       * javax/management/ObjectName.java
-       (toString): Return this item's canonical name.
+       * gnu/java/awt/peer/gtk/GtkComponentPeer.java,
+       * gnu/java/awt/peer/gtk/GtkToolkit.java: Removed mistakenly
+       committed code.
 
-2007-02-12  Francis Kung  <fkung@redhat.com>
+2008-02-08  Roman Kennke  <kennke@aicas.com>
 
-       * gnu/java/awt/ClasspathToolkit.java: 
-       * gnu/java/awt/peer/gtk/AsyncImage.java,
-       * gnu/java/awt/peer/gtk/BufferedImageGraphics.java,
        * gnu/java/awt/peer/gtk/CairoGraphics2D.java,
-       * gnu/java/awt/peer/gtk/CairoSurface.java,
-       * gnu/java/awt/peer/gtk/ComponentGraphics.java,
-       * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java,
        * gnu/java/awt/peer/gtk/GdkFontPeer.java,
+       * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
        * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
        * gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java,
-       * gnu/java/awt/peer/gtk/GtkCheckboxPeer.java,
-       * gnu/java/awt/peer/gtk/GtkChoicePeer.java,
-       * gnu/java/awt/peer/gtk/GtkClipboard.java,
-       * gnu/java/awt/peer/gtk/GtkClipboardNotifier.java,
        * gnu/java/awt/peer/gtk/GtkComponentPeer.java,
-       * gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,
-       * gnu/java/awt/peer/gtk/GtkFramePeer.java,
-       * gnu/java/awt/peer/gtk/GtkImage.java,
-       * gnu/java/awt/peer/gtk/GtkImageConsumer.java,
-       * gnu/java/awt/peer/gtk/GtkLabelPeer.java,
-       * gnu/java/awt/peer/gtk/GtkListPeer.java,
-       * gnu/java/awt/peer/gtk/GtkMainThread.java,
-       * gnu/java/awt/peer/gtk/GtkMenuBarPeer.java,
-       * gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java,
-       * gnu/java/awt/peer/gtk/GtkMenuPeer.java,
-       * gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java,
-       * gnu/java/awt/peer/gtk/GtkScrollbarPeer.java,
-       * gnu/java/awt/peer/gtk/GtkScrollPanePeer.java,
-       * gnu/java/awt/peer/gtk/GtkSelection.java,
-       * gnu/java/awt/peer/gtk/GtkTextAreaPeer.java,
-       * gnu/java/awt/peer/gtk/GtkTextFieldPeer.java,
-       * gnu/java/awt/peer/gtk/GtkToolkit.java,
-       * gnu/java/awt/peer/gtk/GtkWindowPeer.java,
-       * gnu/java/awt/peer/gtk/VolatileImageGraphics.java,
-       * java/awt/RenderingHints.java,
-       * java/awt/image/BufferedImage.java: Reformatted and added generics.
-
-2007-02-12  Tom Tromey  <tromey@redhat.com>
-
-       * java/net/Socket.java (bind): Typo fix.
-
-2007-02-12  Tom Tromey  <tromey@redhat.com>
-
-       * vm/reference/java/lang/reflect/Method.java (getDefaultValue):
-       New method.
-       * sun/reflect/annotation/AnnotationInvocationHandler.java (create):
-       New method.
-       (arrayClone): New method.
-       (invoke): Clone array return results.
-
-2007-02-12  Jakub Jelinek  <jakub@redhat.com>
-
-       PR 23566
-       * scripts/timezones.pl: Parse each file in 2 passes, in one parse
-       just Rule lines, in the other everything else.  Pass 0 instead of
-       $savings as second argument to parseRule when parsing the start
-       rule.
-       * java/util/TimeZone.java (timezones): Regenerate from tzdata2007a.
-
-2007-02-12  Jakub Jelinek  <jakub@redhat.com>
-
-       * vm/reference/java/util/VMTimeZone.java: Rewrite to handle both
-       the old 'TZif\0' format and the new one.
-       * java/util/TimeZone.java: Handle default (one hour) daylight
-       savings.
-
-2007-02-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * javax/management/Query.java:
-       New file.
-       * javax/management/StandardMBean.java:
-       Use the implementation's class loader.
-       
-2007-02-10  Mark Wielaard  <mark@klomp.org>
-
-       * javax/swing/plaf/metal/MetalFileChooserUI.java: Import Date from
-       java.util, not from java.sql.
-
-2007-02-10  Roman Kennke  <kennke@aicas.com>
-
-       * javax/imageio/stream/ImageOutputStreamImpl.java
-       (flushBits): Implemented.
-       (writeBit): Implemented.
-       (writeBits): Implemented.
-
-2007-02-10  Roman Kennke  <kennke@aicas.com>
-
-       * javax/swing/TransferHandler.java
-       (SwingDragGestureRecognizer): New inner class.
-       (SwingDragHandler): New inner class.
-       (recognizer): New field.
-       (exportAsDrag): Implemented missing method.
-
-2007-02-10  Roman Kennke  <kennke@aicas.com>
-
-       * java/awt/GraphicsConfiguration.java
-       (createCompatibleVolatileImage(int,int,ImageCapabilities): Provide
-       default implementation that delegates to
-       createCompatibleVolatileImage(int,int).
-       (createCompatibleVolatileImage(int,int,ImageCapabilities,int):
-       New method from JDK5 spec. Default implementation by delegating to
-       (createCompatibleVolatileImage(int,int,int).
-
-2007-02-09  Tom Tromey  <tromey@redhat.com>
-
-       PR libgcj/30647:
-       * configure.ac: Also check for jack/jack.h.
-
-2007-02-09  Mario Torre  <neugens@limasoftware.net>
-
-       * java/io/File.java: remove import for
-       gnu.classpath.NotImplementedException.
-       (getUsableSpace): removed stub.
-       (getFreeSpace): likewise.
-       (getTotalSpace): likewise.
-
-2007-02-09  Mario Torre  <neugens@limasoftware.net>
-
-       * vm/reference/java/io/VMFile.java: 
-       (canExecute): new 1.6 native method.
-       (setReadable): likewise.
-       (setWritable): likewise.
-       (setExecutable): likewise.
-       * java/io/File.java: added import for gnu.classpath.NotImplementedException.
-       (setReadOnly): new 1.6 method.
-       (canExecute): likewise. 
-       (setReadable): likewise. 
-       (setWritable): likewise.
-       (setExecutable): likewise.
-       (getUsableSpace): added stub for new 1.6 method.
-       (getFreeSpace): likewise.
-       (getTotalSpace): likewise.
-       (checkExec): new private method to support new 1.6 additions.
-       * native/jni/java-io/java_io_VMFile.c:
-       set_file_permissions: new helper function.
-       Java_java_io_VMFile_setReadable: new native method to bakcup 1.6 methods
-       in VMFile.java.
-       Java_java_io_VMFile_setWritable: likewise. 
-       Java_java_io_VMFile_setExecutable: likewise. 
-       Java_java_io_VMFile_canExecute: likewise. 
-       * native/jni/native-lib/cpio.h: added new flags: CPFILE_FLAG_EXEC,
-       CPFILE_FLAG_USR and CPFILE_FLAG_OFF.
-       cpio_chmod: new function declaration.
-       cpio_checkAccess: likewise.
-       * native/jni/native-lib/cpio.c:
-       cpio_chmod: new function definition.
-       cpio_checkAccess: likewise.
-
-2007-02-09  Gary Benson  <gbenson@redhat.com>
-
-       * javax/management/ObjectName.java
-       (quote): Initialize StringBuilder correctly.
-
-2007-02-09  Francis Kung  <fkung@redhat.com>
-
-       * java/awt/image/BufferedImage: Reformatted.
-
-2007-02-09  Ito Kazumitsu  <kaz@maczuka.gcd.org>
-
-       Fixes bug #30732
-       * gnu/java/util/regex/RETokenChar.java(chain): Check whether the next
-       token has a next token.
-
-2007-02-08  Roman Kennke  <kennke@aicas.com>
-
-       PR 30347
-       * javax/swing/JViewport.java
-       (scrollRectToVisible): Use correct X/Y offset for calculations.
-       (paintBackingStore): Update backbuffer when we are not the paint
-       root.
-
-2007-02-08  Roman Kennke  <kennke@aicas.com>
-
-       * java/awt/image/SinglePixelPackedSampleModel.java
-       (getDataElements(int,int,Object,DataBuffer)):
-       Replace DataBuffer using method with simple
-       switch. This does not check for the exact type (class) of the
-       DataBuffer but instead checks the transfer type.
-       (getDataElements(int,int,int,intObject,DataBuffer)): Removed.
-       (setDataElements): Fixed indentation.
-       (setPixels): Removed unused statement.
-
-2007-02-07  Tom Tromey  <tromey@redhat.com>
-
-       * tools/gnu/classpath/tools/javah/PathOptionGroup.java
-       (PathOptionGroup): Allow '-cp' as well.
+       * gnu/java/awt/peer/gtk/GtkToolkit.java: Only call
+       System.loadLibrary() when configured so.
 
-2007-02-07  Chris Burdess  <dog@gnu.org>
+2008-02-08  Dalibor Topic  <robilad@kaffe.org>
 
-       Fixes PR 30718.
-       * gnu/xml/dom/ls/SAXEventSink.java: Add public accessor/mutators.
-       * gnu/xml/transform/XSLURIResolver.java: Add support for custom
-         SAXSources without a backing URL or stream.
+       * NEWS: Documented removal of floatToIntBits and doubleToLongBits from
+       VM interface.
 
-2007-02-06  Tom Tromey  <tromey@redhat.com>
+2008-02-08  Dalibor Topic  <robilad@kaffe.org>
 
-       PR libgcj/30707:
-       * tools/gnu/classpath/tools/javah/JniIncludePrinter.java
-       (printClass): Always print a header.
-
-2007-02-06  Chris Burdess  <dog@gnu.org>
-
-       Fixes PR 27710.
-       * gnu/xml/dom/DomDocumentBuilderFactory.java: Fall back to synchronous
-         LSParser if implementation does not support asynchronous.
-       * gnu/xml/stream/XMLParser.java,
-         gnu/xml/stream/XIncludeFilter.java: Use custom code instead of
-         java.net.URL to resolve to an an absolute URI, to avoid nonexistent
-         protocol handler problems.
-
-2007-02-05  Andrew Haley  <aph@redhat.com>
-
-        PR cp-tools/30706
-        * tools/gnu/classpath/tools/javah/JniIncludePrinter.java:
-        (printClass): Replace '/' in filenames with '_'.
-        * tools/gnu/classpath/tools/javah/JniStubPrinter.java
-        (printClass): Likewise.
-
-2007-02-05  Tom Tromey  <tromey@redhat.com>
-
-       * java/net/Proxy.java (equals): Handle case where address==null.
-       (hashCode): Likewise.
-       (toString): Likewise.
-
-2007-02-04  Jeroen Frijters  <jeroen@frijters.net>
-
-       * java/lang/Class.java
-       (newInstance): Moved setAccessible call to helper method.
-       (getEnumConstants): Call new helper method to allow values method to be
-       called on non-public enum classes.
-       (setAccessible): New helper method.
-       * java/lang/Enum.java
-       (valueOf): Call new helper method in class to allow field value to
-       be read on non-public enum classes.
-
-2007-02-04  Jeroen Frijters  <jeroen@frijters.net>
-
-       Fix for #30693
-       * gnu/java/nio/charset/ByteCharset.java
-       (ByteCharset.Decoder.decodeLoop): Reset input buffer position if
-       the byte read was unmappable.
-
-2007-02-02  Kyle Galloway  <kgallowa@redhat.com>
-
-       * gnu/classpath/jdwp/processor/StackFrameCommandSet.java
-       (executeGetValues): Changed getFrame to use a jlong to pass frameID.
-       (executeSetValues): Ditto.
-       (executeThisObject): Ditto.
-       * vm/reference/gnu/classpath/jdwp/VMFrame.java: Added thread field and a
-       constructor used to create VMFrames.
-       (getThread): New method.
-       * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java(getFrame): Changed
-       to take a long instead of a ByteBuffer to pass the frameID.
-
-2007-02-01  Tom Tromey  <tromey@redhat.com>
-
-       * java/util/logging/LogManager.java (reset): Remove bogus
-       'while'.
-
-2007-01-31  Casey Marshall  <csm@gnu.org>
-
-       * gnu/javax/net/ssl/Base64.java: move to `gnu/java/util/Base64.java.' 
-       * gnu/javax/net/ssl/PrivateCredentials.java: clean up unused imports.
-       (add): use `gnu.java.util.Base64.'
-       * gnu/java/net/protocol/http/Request.java (authenticate): use
-       `gnu.java.util.Base64.'
-       * tools/gnu/classpath/tools/jarsigner/HashUtils.java (hashStream):
-       likewise.
-       * tools/gnu/classpath/tools/keytool/CertReqCmd.java (start): likewise.
-       * tools/gnu/classpath/tools/keytool/ExportCmd.java (start): likewise.
-       * tools/gnu/classpath/tools/keytool/ListCmd.java (printRFC1421):
-       likewise.
-       * gnu/java/net/Base64.java: removed.
-       * gnu/java/security/util/Base64.java: removed.
-
-2007-01-31  Casey Marshall  <csm@gnu.org>
-
-       Fixes PR classpath/24191.
-       Fix suggested by Rafael Teixeira <monoman@gmail.com>.
-       * javax/crypto/CipherOutputStream.java (write): check return value
-       of `update' for null.
-
-2007-01-31  Tom Tromey  <tromey@redhat.com>
-
-       * resource/gnu/classpath/tools/jar/messages.properties
-       (Main.Stdin): New message.
-       * tools/gnu/classpath/tools/jar/Main.java (initializeParser): Add
-       '-@' option.
-       (readNames): New method.
-       (run): Use it.
-
-2007-01-30  Roman Kennke  <kennke@aicas.com>
+       * vm/reference/java/lang/VMFloat.java (floatToIntBits): Removed unused
+       method.
 
-       PR 20577
-       * javax/swing/DefaultDesktopManager.java
-       (activateFrame): Added a bunch of null checks. Don't call
-       JInternalFrame.setSelected() to avoid recursion.
+       * native/jni/java-lang/java_lang_VMFloat.c (Java_java_lang_VMFloat_floatToIntBits): Removed unused function.
 
-2007-01-29  Andrew Haley  <aph@redhat.com>
+       * include/java_lang_VMDouble.h: Regenerated.
+       
+       * doc/cp-vmintegration.texinfo (java.lang.VMFloat): Removed
+       unused method floatToIntBits. (java.lang.VMDouble): Use similar
+       text to text used for floatToRawIntBits for doubleToLongBits.
 
-       * java/lang/SecurityManager.java (SecurityManager): Load and
-       initialize java.security.Security.
-
-2007-01-28  Ito Kazumitsu  <kaz@maczuka.gcd.org>
-
-       * native/jni/java-nio/gnu_java_nio_VMChannel.c
-       (Java_gnu_java_nio_VMChannel_accept): Throw SocketTimeoutException
-       in case of timeout.
-       * native/jni/java-nio/javanio.c(cpnio_accept): Call select() if
-       SO_RCVTIMEO is set.
+2008-02-08  Dalibor Topic  <robilad@kaffe.org>
 
-2007-01-26  Tom Tromey  <tromey@redhat.com>
-
-       * tools/gnu/classpath/tools/javah/FieldHelper.java (print): Print
-       'volatile' after field type.
+       * java/lang/Float.java (floatToIntBits): Simplified. 
 
-2007-01-26  Chris Burdess  <dog@gnu.org>
+2008-02-08  Dalibor Topic  <robilad@kaffe.org>
 
-       Fixes #30597
-       * gnu/xml/dom/DomDocumentBuilder.java: Throw IOException where cause
-         of LSException is an IOException.
-       * gnu/xml/dom/ls/DomLSParser.java,
-         gnu/xml/stream/SAXParser.java: Ensure coalescing feature is set
-         correctly during LS parsing.
-
-2007-01-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * javax/management/PersistentMBean.java:
-       New file.
-       
-2007-01-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+       * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAH) [USER_JAVAH]: Check for gjavah-4.2
+       and gjavah-4.1.
 
-       * javax/management/AttributeChangeNotificationFilter.java:
-       Correct typo.
-       * javax/management/NotificationFilterSupport.java:
-       New file.
-       
-2007-01-21  Mark Wielaard  <mark@klomp.org>
+2008-02-08  Dalibor Topic  <robilad@kaffe.org>
 
-       * java/security/SecureClassLoader.java (defineClass): Method returns
-       Class<?>.
-       * java/security/SignatureSpi.java (engineUpdate(ByteBuffer):
-       Does not throw SignatureException. Chain SignatureException inside
-       IllegalStateException.
+       * vm/reference/java/lang/VMDouble.java (doubleToLongBits): Removed unused method.
 
-2007-01-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+       * native/jni/java-lang/java_lang_VMDouble.c (Java_java_lang_VMDouble_doubleToLongBits): 
+       Removed unused function.
 
-       * javax/management/NotificationBroadcasterSupport.java:
-       New file.
+       * include/java_lang_VMDouble.h: Regenerated.
        
-2007-01-20  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+       * doc/cp-vmintegration.texinfo (java.lang.VMDouble): Removed
+       unused method doubleToLongBits.
 
-       * java/text/DecimalFormat.java(parse): Corrected the ParsePosition
-       settings.
+2008-02-08  Dalibor Topic  <robilad@kaffe.org>
 
-2007-01-20  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+       * java/lang/Double.java (doubleToLongBits): Simplified.
 
-       * java/text/SimpleDateFormat(parse): Corrected the usage of
-               NumberFormat.
+2008-02-07  Ian Rogers  <ian.rogers@manchester.ac.uk>
 
-2007-01-20  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+       * java/lang/String.java
+       (replace): Only copy "live" portion of String. Use array copies in preference
+        to clone.
+       (toLowerCaseTurkish): likewise
+        (toLowerCase): likewise
+       (toUpperCaseTurkish): likewise
+       (toUpperCase): likewise
+       (toCharArray): Use array copies in preference to clone.
 
-       Fixes bug #30488
-       * native/jni/native-lib/cpnet.c(SOCKET_NOSIGNAL): Deleted,
-       (setsockopt_NOSIGPIPE): New function,
-       (cpnet_send): Corrected the option setting to send(),
-       (cpnet_sendTo): Corrected the option setting to sendto(). 
+2008-02-05  Ian Rogers  <ian.rogers@manchester.ac.uk>
 
-2007-01-19  Marco Trudel  <mtrudel@gmx.ch>
+       * gnu/java/lang/reflect/TypeSignature.java
+       * java/io/BufferedReader.java
+       * java/io/DataInputStream.java
+       * java/lang/StackTraceElement.java
+       * java/lang/Throwable.java
+       * java/lang/reflect/Proxy.java
+       * java/net/URI.java
+       * java/net/URLClassLoader.java
+       * java/net/URLEncoder.java
+       * java/text/SimpleDateFormat.java
+       * java/util/AbstractMap.java
+       * java/util/Calendar.java
+       * java/util/Date.java
+       * java/util/Hashtable.java
+       Use StringBuilder in preference to StringBuffer
+       * java/util/Calendar.java
+       * java/util/Hashtable.java
+       Make private fields that can be final, final
+       * java/net/URI.java
+       Avoid creating Integer objects for the sake of comparison
+       * java/lang/reflect/Proxy.java
+       * java/text/SimpleDateFormat.java
+       Swap use of "new Character/Integer" to use of valueOf methods
+
+2008-01-29  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+
+       Fixes bug #22941
+       * java/io/DataInputStream.java(readUTFLong): New method.
+       (readUTF): New private method.
+       * java/io/DataOutputStream.java(getUTFlength): Made package-private,
+       Return type changed to long.
+       (writeUTF): Use the new method writeUTFShort.
+       (writeUTFShort): New package-private method.
+       (writeUTFLong): New package-private method.
+       (writeUTFBytes): New private method.
+       * java/io/ObjectInputStream.java(parseContent): Separate the
+       handling of TC_LONGSTRING from TC_STRING.
+       * java/io/ObjectOutputStream.java(writeObject): When to write a
+       String, use writeUTFShort or writeUTFLong depending on the byte length.
 
-       * java/util/Arrays.java (binarySearch): Change comparison order.
+2008-01-27  Bernhard Fischer  <rep.dot.nop@gmail.com>
 
-2007-01-17  Keith Seitz  <keiths@redhat.com>
+       * java/util/SimpleTimeZone.java (SimpleTimeZone): Fix typo in comment.
+       * gnu/CORBA/GIOP/v1_2/RequestHeader.java (RequestHeader): Fix typo in
+       exception message.
 
-       * gnu/classpath/jdwp/events/filters/StepFilter.java:
-       Update javadoc. 
-       (matches): Implement.
+2008-01-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
-       * gnu/classpath/jdwp/event/EventManager.java (EventManager): Honor
-       agent startup suspension for VM_INIT.
+       * doc/README.jaxp: Fix typos.
 
-2007-01-17  Tom Tromey  <tromey@redhat.com>
+2008-01-25  Dalibor Topic  <robilad@kaffe.org>
 
-       * tools/gnu/classpath/tools/javah/PathOptionGroup.java
-       (PathOptionGroup): Set default boot class path.
+       * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java 
+       (createParser): Removed unused "reversed" misspelling. Use 
+       Native2ASCII.ReverseHelp instead of Native2ASCII.ReversedHelp.
 
-2007-01-17  Mark Wielaard  <mark@klomp.org>
+       * resource/gnu/classpath/tools/native2ascii/messages.properties
+       (Native2ASCII.ReverseHelp): New, renamed from ... 
+       (Native2ASCII.ReversedHelp): Removed.
+       (Native2ASCII.ReversedHelpCompat): Removed.
 
-       * javax/activity/ActivityCompletedException.java: Make constructors
-       public.
-       * javax/activity/ActivityRequiredException.java: Likewise.
-       * javax/activity/InvalidActivityException.java: Likewise.
+2008-01-24  Tom Tromey  <tromey@redhat.com>
 
-2007-01-17  Roman Kennke  <kennke@aicas.com>
+       * resource/gnu/classpath/tools/native2ascii/messages.properties
+       (Native2ASCII.ReversedHelpCompat): New.
+       * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
+       (createParser): Add -reverse.  Update -reversed.
 
-       * javax/swing/plaf/basic/BasicRadioButtonUI.java
-       (paint): Use helper method to figure out icon. Don't override
-       the icon field in that class. Check for null icons.
-       (getCurrentIcon): New helper function to determine icon to be
-       painted.
+2008-01-21  Luciano Chavez  <lnx1138@us.ibm.com>
 
-2007-01-17  Mark Wielaard  <mark@klomp.org>
+       PR libgcj/34369:
+       * java/net/URI.java (relativize): Check initial segment for
+       trailing "/".
 
-       * javax/activity/ActivityCompletedException.java: New file.
-       * javax/activity/ActivityRequiredException.java: Likewise.
-       * javax/activity/InvalidActivityException.java: Likewise.
-       * javax/activity/package.html: Likewise.
+2008-01-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-2007-01-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+       * m4/acinclude.m4:
+       Remove bootclasspath option which fails with
+       OpenJDK javac.
+       
+2008-01-14  Roman Kennke  <kennke@aicas.com>
 
-       * javax/management/DefaultLoaderRepository.java:
-       (loadClass(String)): Made static.
-       (loadClassWithout(String,ClassLoader)): Likewise.
+       * javax/tools/FileObject.java: New interface.
 
-2007-01-15  Kyle Galloway  <kgallowa@redhat.com>
+2008-01-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * gnu/classpath/jdwp/exception/TypeMismatchException.java: New file.
-       * gnu/classpath/jdwp/exception/InvalidFrameException.java: Fix indentation.
-       * gnu/classpath/jdwp/exception/InvalidSlotException.java: Fix indentation.
+       * javax/accessibility/AccessibleAction.java:
+       (CLICK): Added.
+       (TOGGLE_POPUP): Likewise.
+       * javax/accessbiility/AccessibleRole.java:
+       (HTML_CONTAINER): Added.
        
-2007-01-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-01-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * javax/management/AttributeValueExp.java:
-       Corrected serialVersionUID typo.
-       * javax/management/DefaultLoaderRepository.java:
-       New file.
-       * javax/management/MBeanServerFactory.java:
-       Add generic typing.
+       * javax/accessibility/AccessibleAttributeSequence.java:
+       (AccessibleAttributeSequence(int,int,AttributeSet)):
+       Implemented.
+       * javax/accessibility/AccessibleTextSequence.java:
+       (AccessibleTextSequence(int,int,String)):
+       Likewise.
        
-2007-01-15  Kyle Galloway  <kgallowa@redhat.com>
+2008-01-13  Leen Toelen  <toelen@gmail.com>
 
-       * gnu/classpath/jdwp/exception/InvalidFrameException.java: New file.
+       * native/fdlibm/ieeefp.h: Added avr32 support.
 
-2007-01-15  Kyle Galloway  <kgallowa@redhat.com>
+2008-01-09  Stefan Huehner <stefan@huehner.org>
+       
+       * native/jni/java-io/java_io_VMObjectStreamClass.c,
+       * native/jni/java-lang/java_lang_VMDouble.c,
+       * native/jni/java-net/java_net_VMInetAddress.c:
+       Don't discard const by casting (const char *) to
+       (char *) when it's not needed.
 
-       * gnu/classpath/jdwp/exception/AbsentInformationException.java: New file.
+2008-01-09  Stefan Huehner <stefan@huehner.org>
 
-2007-01-15  Kyle Galloway  <kgallowa@redhat.com>
+       * gnu/classpath/jdwp/event/ExceptionEvent.java,
+       * gnu/java/awt/peer/gtk/GtkMainThread.java:
+       Use Boolean.TRUE|FALSE instead of new Boolean(true|false)
+       * gnu/java/rmi/server/ConnectionRunnerPool.java,
+       * gnu/xml/aelfred2/XmlParser.java,
+       * gnu/xml/libxmlj/dom/GnomeXPathResult.java,
+       * gnu/xml/stream/XIncludeFilter.java:
+       Use Integer|Double|Charater.toString(var) instead of
+       new Integer|Double|Character(var).toString()
 
-       * gnu/classpath/jdwp/exception/InvalidSlotException.java: New file.
+2006-01-09  Roman Kennke  <kennke@aicas.com>
 
-2007-01-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+       * javax/tools/Diagnostic.java,
+       * javax/tools/DiagnosticListener.java:
+       New interfaces.
 
-       * javax/management/AttributeValueExp.java: New file.
-       * javax/management/QueryEval.java: Likewise.
-       * javax/management/StringValueExp.java: Likewise.
-       
-2007-01-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2006-01-09  Roman Kennke  <kennke@aicas.com>
 
-       * javax/management/AttributeChangeNotificationFilter.java:
-       New file.
-       
-2007-01-11  Andreas Tobler  <a.tobler@schweiz.org>
-
-       * examples/gnu/classpath/examples/awt/AicasGraphicsBenchmark.java
-       (AicasGraphicsBenchmark): Load images from ../icons.
-       * examples/gnu/classpath/examples/java2d/J2dBenchmark.java (init):
-       Likewise.
-       * examples/Makefile.am (EXAMPLE_ICONS): Add rule to copy *.gif files
-       to icons.
-       * examples/gnu/classpath/examples/awt/aicas.png: Move to ../icons.
-       Delete here.
-       * examples/gnu/classpath/examples/awt/palme.gif: Likewise.
-       * examples/gnu/classpath/examples/java2d/aicas.png: Likewise.
-       * examples/gnu/classpath/examples/java2d/palme.gif: Likewise.
-       * examples/gnu/classpath/examples/icons/aicas.png: Moved.
-       * examples/gnu/classpath/examples/icons/palme.gif: Likewise.
-
-2007-01-09  Tania Bento  <tbento@redhat.com>
-
-       * java/security/Permission.java:
-       (toString): If there are no actions, then there should not 
-       be a space between its name and ')'.
-
-2007-01-08  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * javax/management/AttributeChangeNotification.java:
-       New file.
-       
-2007-01-08  Cameron McCormack  <cam@mcc.id.au>
-
-       PR 30355
-       * java/util/Arrays.java:
-       (binarySearch(byte[],byte)): Added check for zero-length array.
-       (binarySearch(short[],short)): Likewise.
-       (binarySearch(int[],int)): Likewise.
-       (binarySearch(long[],long)): Likewise.
-       (binarySearch(char[],char)): Likewise.
-       (binarySearch(float[],float)): Likewise.
-       (binarySearch(double[],double)): Likewise.
-       (binarySearch(Object[],Object)): Likewise.
-       (binarySearch(T[],T,Comparator)): Likewise.
-
-2007-01-08  Tom Tromey  <tromey@redhat.com>
-
-       * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java (run):
-       Fix length check.  PR classpath/30346.
-
-2007-01-09  Raif S. Naffah  <classpath@naffah-raif.name>
-
-       * tools/gnu/classpath/tools/jarsigner/SFHelper.java: Updated copyright year.
-       (sfEntries): Use generics.
-       (writeDSA()): Likewise.
-       (startSigning()): Likewise.
-       (updateEntry()): Likewise.
-       * tools/gnu/classpath/tools/jarsigner/Messages.java: Updated copyright year.
-       (CACHED_FORMATS): Use generics.
-       (getFormattedString()): Likewise.
-       * tools/gnu/classpath/tools/jarsigner/Main.java: Updated copyright year.
-       (fileAndAlias): Use generics.
-       (ToolParser.validate()): Likewise.
-       * tools/gnu/classpath/tools/jarsigner/JarVerifier.java:
-       Updated copyright year.
-       Re-ordered imports and removed unused entries.
-       (entryHashes): Use generics.
-       (start()): Likewise.
-       (verifySFEntries()): Likewise.
-       Use map's entrySet() instead of its keySet().
-
-2007-01-08  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * java/text/DateFormat.java:
-       (computeInstance(int,int,Locale,boolean,boolean)):
-       Throw an exception when locale info. is unavailable.
-       (computeDefault(int,int,boolean,boolean)): New method.
-       (getDateInstance(int,Locale)): Check providers.
-       (getDateTimeInstance(int,int,Locale)): Likewise.
-       (getTimeInstance(int,Locale)): Likewise.
-       * java/text/DateFormatSymbols.java:
-       Update documentation to match DecimalFormatSymbols.
-       * java/text/DecimalFormatSymbols.java:
-       (DecimalFormatSymbols(Locale)): Reordered.
-       (getInstance()): Implemented.
-       (getInstance(Locale)): Implemented.
-       * java/text/NumberFormat.java:
-       (computeInstance(Locale,String,String)):
-       Throw an exception when locale info is unavailable.
-       (getCurrencyInstance(Locale)): Check providers.
-       (getIntegerInstance(Locale)): Likewise.
-       (getNumberInstance(Locale)): Likewise.
-       (getPercentInstance(Locale)): Likewise.
-       * java/text/spi/DateFormatProvider.java: New file.
-       * java/text/spi/DecimalFormatSymbolsProvider.java: Likewise.
-       * java/text/spi/NumberFormatProvider.java: Likewise.
-       
-2007-01-07  Ito Kazumitsu  <kaz@maczuka.gcd.org>
-
-       Fixes bug #30377
-       * native/jni/native-lib/cpnet.h: Add some include files.
-
-2007-01-07  Roman Kennke  <roman@kennke.org>
-
-       PR 30337
-       * java/awt/Component.java
-       (getFontImpl): Return null when the component has no font set
-       and also has no parent yet.
-       * javax/swing/plaf/basic/BasicComboBoxUI.java
-       (PropertyChangeHandler.propertyChange): Only add editor when combo
-       box is editable. Avoid fetching the property name repeatedly.
-       Invalidate when renderer or prototypeDisplayValue change.
-       (uninstallComponents): Unconfigure everything and then remove all
-       components.
-       * javax/swing/plaf/basic/BasicComboPopup.java
-       (uninstallingUI): Don't nullify list model.
-       * javax/swing/plaf/metal/MetalComboBoxUI.java
-       (createArrowButton): Pass currentValuePane to the MetalComboBoxButton
-       constructor rather than a new (unconnected) CellRendererPane.
-
-2007-01-06  Roman Kennke  <roman@kennke.org>
-
-       PR 30337
-       * javax/swing/plaf/basic/BasicComboBoxUI.java
-       (installUI): Install popup and list here.
-       Don't configure the arrow button and editor here.
-       (installComponents): Don't install popup and list here. (Moved
-       to installUI). Configure arrow button here and check for null.
-       (addEditor): Configure editor here.
-       (configureArrowButton): Directly fetch listeners from popup.
-       (paintCurrentValue): Removed unused local variables.
-       (layoutContainer): Removed unused local variables.
-       (PropertyChangeHandler.propertyChange): Don't invalidate minimumSize
-       on each property change. Avoid calling getPropertyName() repeatedly.
-       Clean up. Call addEditor() when editor changes. Configure and
-       unconfigure editor when editable changes. Use 'model' instead
-       of non-existing 'dataModel' property.
-       * javax/swing/plaf/basic/BasicComboPopup.java
-       (uninstallingUI): Remove property change listener and item listener
-       here. Uninstall list listeners. Set model to null to prevent leakage.
-       (configureList): Don't sync list selection there.
-       (uninstallComboBoxListeners): Moved to uninstallingUI.
-       (uninstallListeners): Moved to uninstallingUI.
-       * javax/swing/plaf/metal/MetalComboBoxUI.java
-       (createPopup): Call super.
-       (getMinimumSize): Removed unused statement.
-
-2007-01-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * java/text/Collator.java:
-       (getInstance(Locale)): Check providers.
-       * java/text/spi/CollatorProvider.java:
-       New file.
-       
-2007-01-04  Roman Kennke  <roman@kennke.org>
-
-       PR 30122
-       * java/awt/Component.java
-       (getFont): Don't synchronize on tree lock here. The method is
-       thread-safe 'enough' by fetching local variables in getFontImpl().
-
-2007-01-04  Roman Kennke  <roman@kennke.org>
-
-       * java/awt/AWTEvent.java
-       (toString): Don't include the whole component in the output,
-       only its name.
-       * java/awt/Component.java
-       (isShowing): Create local copy of parent field for better
-       thread safety and efficiency.
-       * java/awt/EventDispatchThread.java
-       (EventDispatchThread): Make sure the event thread is not a daemon
-       thread in case it gets started by a daemon thread.
-       * java/awt/image/IndexColorModel.java
-       (createColorMap): New helper method for creating the color map.
-       (IndexColorModel): (all constructors) use createColorMap() helper
-       method.
-
-2007-01-04  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/awt/font/autofit/GlyphHints.java
-       (alignStrongPoints): Don't special case the vertical dimension.
-       (computeInflectionPoints): Corrected computation of inflection
-       points.
-       * gnu/java/awt/font/autofit/Utils.java
-       (ANGLE_4PI): Removed.
-       (ANGLE_PI2): New constant for PI/2.
-       (ANGLE_PI4): New constant for PI/4.
-       (angleDiff): Fixed.
-       (atan): Fixed.
-
-2007-01-03  Cameron McCormack  <cam@mcc.id.au>
-
-       Fixes bug #29246
-       * java/awt/Toolkit.java (getLockingKeyState): Use AWTUtilities
-       isValidKey method. Throw UnsupportedOperationException on a valid
-       key (for which no locking state can be given).
-       * gnu/java/awt/AWTUtilities.java (isValidKey): New method.
-       * gnu/java/awt/peer/gtk/GtkToolkit.java (getLockingKeyState): New
-       method.
-       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
-       (Java_gnu_java_awt_peer_gtk_GtkToolkit_getLockState): New method.
-       * include/gnu_java_awt_peer_gtk_GtkToolkit.h: Regenerated.
-
-2007-01-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * java/text/BreakIterator.java:
-       (getCharacterInstance(Locale)): Check providers.
-       (getLineInstance(Locale)): Likewise.
-       (getSentenceInstance(Locale)): Likewise.
-       (getWordInstance(Locale)): Likewise.
-       * java/text/spi/BreakIteratorProvider.java:
-       New file.
-       * java/text/spi/DateFormatSymbolsProvider.java:
-       Update header text.
-       * java/util/ServiceConfigurationError.java:
-       Add serialVersionUID.
-       
-2007-01-03  Francis Kung  <fkung@redhat.com>
+       * gnu/java/awt/peer/x/XWindowPeer.java
+       (getFontMetrics): Re-enable that for X fonts.
 
-       * gnu/java/awt/peer/gtk/CairoGraphics2D.java:
-       (copy): Copy and set antialias value.
+2008-01-09  Stefan Huehner <stefan@huehner.org>
 
-2007-01-03  Tania Bento  <tbento@redhat.com>
 
-       * java/awt/CardLayout.java:
-       (maximumLayoutSize): Return a new Dimension with a width of value
-       Integer.MAX_VALUE and a height of value Integer.MAX_VALUE if Component
-       has no components.
+       * examples/gnu/classpath/examples/java2d/J2dBenchmark.java,
+       * gnu/CORBA/OrbFocused.java,
+       * gnu/CORBA/CDR/HeadlessInput.java,
+       * gnu/java/awt/peer/gtk/CairoGraphics2D.java,
+       * gnu/java/awt/peer/gtk/GtkFramePeer.java,
+       * gnu/java/awt/peer/qt/QtMenuPeer.java,
+       * gnu/java/nio/FileChannelImpl.java,
+       * gnu/java/nio/SocketChannelSelectionKeyImpl.java,
+       * gnu/java/security/Engine.java,
+       * gnu/javax/imageio/jpeg/JPEGComponent.java,
+       * gnu/javax/imageio/jpeg/JPEGDecoder.java,
+       * gnu/javax/imageio/jpeg/JPEGFrame.java,
+       * gnu/javax/print/PrinterDialog.java,
+       * gnu/javax/security/auth/Password.java,
+       * gnu/javax/swing/text/html/parser/support/Parser.java,
+       * gnu/javax/swing/text/html/parser/support/parameterDefaulter.java,
+       * gnu/xml/pipeline/DomConsumer.java,
+       * java/awt/AWTKeyStroke.java,
+       * java/awt/DefaultKeyboardFocusManager.java,
+       * java/awt/GridBagLayout.java,
+       * java/awt/dnd/DragGestureRecognizer.java,
+       * java/awt/geom/Arc2D.java,
+       * java/awt/geom/CubicCurve2D.java,
+       * java/awt/geom/QuadCurve2D.java,
+       * java/awt/im/InputContext.java,
+       * java/awt/image/AffineTransformOp.java,
+       * java/beans/Encoder.java,
+       * java/io/ObjectInputStream.java,
+       * java/io/ObjectStreamClass.java,
+       * java/net/ResolverCache.java,
+       * java/nio/charset/Charset.java,
+       * java/security/SecureClassLoader.java,
+       * java/text/MessageFormat.java,
+       * java/util/jar/Manifest.java,
+       * javax/accessibility/AccessibleRelationSet.java,
+       * javax/imageio/ImageReader.java,
+       * javax/imageio/metadata/IIOMetadataNode.java,
+       * javax/print/attribute/standard/MediaSize.java,
+       * javax/print/attribute/standard/PrinterStateReasons.java,
+       * javax/swing/JTree.java,
+       * javax/swing/table/DefaultTableColumnModel.java,
+       * javax/swing/text/html/MinimalHTMLWriter.java,
+       * javax/swing/text/html/parser/DTD.java,
+       * javax/swing/tree/DefaultMutableTreeNode.java,
+       * javax/swing/undo/UndoManager.java,
+       * org/omg/CosNaming/NamingContextExtPOA.java,
+       * org/omg/CosNaming/NamingContextPOA.java,
+       * org/omg/CosNaming/_NamingContextExtImplBase.java,
+       * org/omg/CosNaming/_NamingContextImplBase.java,
+       * tools/gnu/classpath/tools/appletviewer/CommonAppletStub.java:
+       Remove unneeded casts
+
+2006-01-09  Roman Kennke  <kennke@aicas.com>
+
+       * java/text/CollationElementIterator.java
+       (text): Changed type to CharacterIterator.
+       (CollationElementIterator(RuleBasedCollator,CharacterIterator)): New
+       constructor.
+       (setOffset(int)): Use CharacterIterator.getEndIndex() instead of
+       String.length().
+       (setText(String)): Wrap string into a StringCharacterIterator.
+       * java/text/RuleBasedCollator.java
+       (getCollationElementIterator(CharacterIterator)): Simply return
+       CollationElementIterator for the character iterator, instead of
+       expanding things.
+
+2008-01-08  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+        PR classpath/34579:
+       * m4/acinclude.m4:
+       (CLASSPATH_CHECK_JAVAC): Delete Colour.java
+
+2008-01-04  Stefan Huehner <stefan@huehner.org>
+
+       * gnu/CORBA/BigDecimalHelper.java,
+       * gnu/CORBA/CDR/AbstractCdrInput.java,
+       * gnu/CORBA/CDR/AbstractCdrOutput.java,
+       * gnu/CORBA/CDR/HeadlessInput.java,
+       * gnu/CORBA/CDR/gnuRuntime.java,
+       * gnu/CORBA/Connected_objects.java,
+       * gnu/CORBA/GIOP/CancelHeader.java,
+       * gnu/CORBA/GIOP/v1_0/CancelHeader.java,
+       * gnu/CORBA/IOR.java,
+       * gnu/CORBA/Interceptor/Registrator.java,
+       * gnu/CORBA/IorDelegate.java,
+       * gnu/CORBA/NamingService/NameTransformer.java,
+       * gnu/CORBA/ObjectCreator.java,
+       * gnu/CORBA/OrbFunctional.java,
+       * gnu/CORBA/Poa/AOM.java,
+       * gnu/CORBA/Poa/gnuPOA.java,
+       * gnu/CORBA/Poa/gnuPOAManager.java,
+       * gnu/CORBA/Poa/gnuServantObject.java,
+       * gnu/CORBA/typecodes/FixedTypeCode.java,
+       * gnu/CORBA/typecodes/RecursiveTypeCode.java,
+       * gnu/java/awt/AWTUtilities.java,
+       * gnu/java/awt/peer/gtk/CairoGraphics2D.java,
+       * gnu/java/awt/peer/gtk/CairoSurface.java,
+       * gnu/java/awt/peer/swing/SwingMenuBarPeer.java,
+       * gnu/java/text/AttributedFormatBuffer.java,
+       * gnu/java/util/regex/REToken.java,
+       * gnu/javax/imageio/gif/GIFFile.java,
+       * gnu/javax/imageio/png/PNGDecoder.java,
+       * gnu/javax/management/Server.java,
+       * gnu/javax/naming/giop/ContextContinuation.java,
+       * gnu/javax/naming/jndi/url/rmi/ContextContinuation.java,
+       * gnu/javax/swing/text/html/css/Selector.java,
+       * gnu/javax/swing/text/html/parser/models/node.java,
+       * gnu/javax/swing/text/html/parser/support/Parser.java,
+       * gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java,
+       * gnu/javax/swing/text/html/parser/support/textPreProcessor.java,
+       * gnu/xml/util/Resolver.java,
+       * java/awt/image/AreaAveragingScaleFilter.java,
+       * java/beans/Beans.java,
+       * java/beans/XMLDecoder.java,
+       * java/beans/beancontext/BeanContextServicesSupport.java,
+       * java/beans/beancontext/BeanContextSupport.java,
+       * java/io/CharArrayWriter.java,
+       * java/lang/System.java,
+       * java/net/ResolverCache.java,
+       * java/util/Calendar.java,
+       * java/util/Collections.java,
+       * java/util/Formatter.java,
+       * javax/accessibility/AccessibleEditableText.java,
+       * javax/imageio/ImageReader.java,
+       * javax/imageio/ImageTypeSpecifier.java,
+       * javax/imageio/ImageWriter.java,
+       * javax/imageio/spi/ServiceRegistry.java,
+       * javax/imageio/stream/ImageInputStream.java,
+       * javax/management/MBeanPermission.java,
+       * javax/rmi/CORBA/PortableRemoteObjectDelegate.java,
+       * javax/rmi/CORBA/Util.java,
+       * javax/rmi/CORBA/UtilDelegate.java,
+       * javax/rmi/CORBA/ValueHandler.java,
+       * javax/rmi/PortableRemoteObject.java,
+       * org/ietf/jgss/GSSContext.java,
+       * tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java,
+       * tools/gnu/classpath/tools/appletviewer/StandaloneAppletWindow.java,
+       * tools/gnu/classpath/tools/appletviewer/TagParser.java,
+       * vm/reference/gnu/java/nio/VMChannel.java:
+       Correct javadoc to match the functions' parameters
+       * gnu/java/awt/peer/swing/SwingTextFieldPeer.java:
+       Rename start_pos parameter to startPos to conform to style.
+
+2008-01-07  Jeroen Frijters  <jeroen@frijters.net>
+
+       * java/awt/image/Raster.java
+       (createInterleavedRaster): Fixed ComponentSampleModel constructor
+       argument order.
 
-2007-01-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-01-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * java/text/DateFormatSymbols.java:
-       (getZoneStrings(ResourceBundle)): Changed to...
-       (getZoneStrings(ResourceBundle,Locale)): Added
-       use of TimeZoneNamesProvider.
-       (getZoneStrings()): Return either mutated zone
-       strings or initial ones.
-       (getInstance(Locale)): Check DateFormatSymbolsProvider
-       instances.
-       * java/text/spi/DateFormatSymbolsProvider.java:
-       New file.
-       * java/text/spi/package.html: New file.
+        PR classpath/34579:
+       * m4/acinclude.m4:
+       (CLASSPATH_CHECK_JAVAC): Don't rely on 1.5 class
+       library.
        
-2007-01-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * java/util/Currency.java:
-       (getSymbol(Locale)): Removed unneeded variable
-       and terminate loop early.
-       * java/util/Locale.java:
-       (getDisplayLanguage(Locale)): Fixed to use
-       LocaleNameProvider.
-       (getDisplayCountry(Locale)): Likewise.
-       (getDisplayVariant(Locale)): Likewise.
-       * java/util/spi/LocaleNameProvider.java:
-       New file.
-       * java/util/spi/TimeZoneNameProvider.java:
-       Likewise.
-       
-2007-01-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2008-01-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
-       * gnu/java/locale/LocaleHelper.java:
-       (getLocalizedString(Locale,String,String,boolean,
-       boolean)): Removed, no longer needed.
-       (getFallbackLocale(Locale)): Implemented.
-       * java/lang/String.java:
-       (isEmpty()): Implemented.
-       * java/util/Currency.java:
-       (getSymbol(Locale)): Reimplemented to use SPI.
-       * java/util/Locale.java:
-       (ROOT): Added.
-       * java/util/spi/CurrencyNameProvider.java:
-       New file.
-       * java/util/spi/LocaleServiceProvider.java:
-       Likewise.
-       * java/util/spi/package.html: Likewise.
-       
-2007-01-02  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/awt/java2d/AbstractGraphics2D.java
-       (FONT): New constant field. This is the default font to use as long
-       as nothing else is set.
-       (paintContext): New field. Temporarily stores the paint context.
-       (scanlineConverters): New field. Stores the scanline converters
-       for each thread.
-       (shapeCache): Genericified.
-       (STANDARD_HINTS): New constant field. The standard rendering hints
-       as long as nothing else is set.
-       (STANDARD_STROKE): New constant field. The standard stroke as long
-       as nothing else is set.
-       (static_initializer): Initialize standard hints.
-       (AbstractGraphics2D): Use constant fields for hints and stroke.
-       (drawGlyphVector): Use simpler method to draw the outline.
-       (fillScanline): Use paintContext field.
-       (fillShape): Use new ScanlineConverter to fill shapes.
-       (fillShapeAntialias): Removed. This will be done in fillShape.
-       (fillShapeImpl): Removed. This is done now in the ScanlineConverter
-       class.
-       (getScanlineConverter): New method. Returns the scanline converter
-       for each thread.
-       (getSegments): Removed. This is now implemented in ScanlineConverter.
-       (getShapeCache): Use genericified shapeCache field.
-       (init): Use fixed default font. Don't fetch destination raster here.
-       * gnu/java/awt/java2d/ActiveEdges.java: New class. Stores a set
-       of active edges for scanline conversion.
-       * gnu/java/awt/java2d/PolyEdge.java
-       (poolNext): Implements linked list for edge pool.
-       (scanlineNext): Implements linked list for scanline edge lists.
-       (slope): Use fixed point decimal.
-       (slope,x0,y0,x1,y1,xIntersection): Use fixed point decimal.
-       (PolyEdge()): New constructor.
-       (PolyEdge): Use fixed point decimals.
-       (init): Use fixed point decimals.
-       (intersect): New method. Intersects this edge with a scanline.
-       * gnu/java/awt/java2d/Scanline.java: New class. A list of edges
-       for a scanline plus utilities.
-       * gnu/java/awt/java2d/ScanlineConverter.java: New class. Implements
-       an efficient scanline converter for rendering Shape objects.
-
-2007-01-02  Roman Kennke  <roman@kennke.org>
-
-       * gnu/java/math/Fixed.java: New class. Fixed point arithmetics
-       utilities.
-
-2007-01-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
-
-       * ChangeLog-2006: New file.
-       * gnu/classpath/ServiceFactory.java:
-       Add option of throwing a ServiceConfigurationError.
-       (lookupProviders(Class,ClassLoader,boolean)): Implemented.
-       * java/util/ServiceConfigurationError.java: New file.
-       * java/util/ServiceLoader.java: Likewise.
-       
+       * ChangeLog-2007: New file.
 
 \f
 Local Variables:
diff --git a/libjava/classpath/ChangeLog-2007 b/libjava/classpath/ChangeLog-2007
new file mode 100644 (file)
index 0000000..821ff98
--- /dev/null
@@ -0,0 +1,4810 @@
+2007-12-31  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/remote/rmi/RMIConnection.java:
+       Partial implementation.
+       * javax/management/remote/rmi/RMIServer.java:
+       Implemented.
+       
+2007-12-31  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+        PR classpath/34582:
+       * javax/rmi/ssl/SslRMIClientSocketFactory.java:
+       (getProp(String)): Check for the property being null.
+       
+2007-12-28  Dalibor Topic  <robilad@kaffe.org>
+
+       * configure.ac (AC_CHECK_HEADERS): Check for
+       netinet/in_systm.h, netinet/ip.h and net/if.h 
+       for Windows CE.
+
+       * native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c:
+       Guard net/if.h include statement. Use unsigned int 
+       instead of u_int.
+
+       * native/jni/java-nio/gnu_java_nio_VMChannel.c:
+       Guard sys/mman.h include statement.
+
+       * native/jni/java-nio/gnu_java_nio_VMSelector.c:
+       Guard sys/select.h include statement.
+
+       * native/jni/java-nio/javanio.c:
+       Guard sys/select.h include statement.
+
+       * native/jni/java-nio/javanio.h:
+       Include sys/time.h.
+
+       * native/jni/native-lib/cpio.c: 
+       Guard chmod call by S_IWRITE, since it's not 
+       defined in the arm-wince toolchain.
+
+       * native/jni/native-lib/cpnet.h:
+       Guard netinet/in_systm.h and netinet/ip.h 
+       include statements.
+       
+2007-12-28  Dalibor Topic  <robilad@kaffe.org>
+
+       * m4/acinclude.m4 (CLASSPATH_WITH_GLIBJ): Use
+       AC_PATH_PROGS instead of AC_PATH_PROG to check
+       for FASTJAR as fastjar, gjar or jar. Add braces
+       to AC_PATH_PROGS arguments.
+
+       * tools/Makefile.am (TOOLS_ZIP),
+       lib/Makefile.am (collections.jar, glibj.zip): 
+       Quote FASTJAR in case it's in a path with 
+       whitespace.
+
+2007-12-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+        PR classpath/34580:
+       * java/awt/Desktop.java:
+       (isDesktopSupported()): Made public.
+       
+2007-12-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+        PR classpath/34577:
+       * javax/swing/JFrame.java:
+       (addImpl(Component,Object,int)): Add a similar
+       check for the root pane as in remove, adding using
+       the superclass when this occurs rather than the
+       content pane.
+       
+2007-12-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+        PR classpath/34576:
+       * java/awt/Container.java:
+       (isAncestorOf(Component)): Swap ordering so that
+       the parent is retrieved prior to checking against 
+       this, thus preventing a component being an ancestor of
+       itself.
+
+2007-12-11  Robert Schuster  <robertschuster@fsfe.org>
+
+  * AUTHORS: Added my name to the list.
+
+2007-12-10  Robert Schuster  <robertschuster@fsfe.org>
+
+  * THANKYOU: Added my name to the list.
+
+2007-12-10  Robert Schuster  <robertschuster@fsfe.org>
+
+        PR classpath/32516:
+  * tools/gnu/classpath/tools/jar/Entry.java:
+  (Entry(File, String)): Added loop to remove all dot-file separator
+  prefixes.
+  (Entry(File)): Call Entry(File, String) constructor variant.
+
+2007-12-10  Robert Schuster  <robertschuster@fsfe.org>
+
+  * native/jni/native-lib/cpio.c:
+  (cpio_df): Mark arguments as possibly unused.
+
+2007-12-10  Robert Schuster  <robertschuster@fsfe.org>
+
+  * javax/swing/text/GlyphView.java:
+  (paint): Removed debug output.
+
+2007-12-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+        PR classpath/34276:
+       * gnu/javax/management/Translator.java:
+       (translate(String)): Select only public methods
+       from a composite type, try this translation in all
+       cases and exit only when no fields are translated.
+       
+2007-11-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+        PR classpath/34276:
+       * gnu/java/lang/management/BeanImpl.java:
+       (getDescription(MBeanConstructorInfo,MBeanParameterInfo,int)):
+       Added to provide a default description if the current one is null.
+       (getDescription(MBeanOperationInfo,MBeanParameterInfo,int)):
+       Likewise.
+       (getParameterName(MBeanConstructorInfo,MBeanParameterInfo,int)):
+       Likewise for the name.
+       (getParameterName(MBeanOperationInfo,MBeanParameterInfo,int)):
+       Likewise.
+       * gnu/javax/management/Server.java:
+       (getMBeanInfo()): Try using a StandardMBean wrapper if reflection
+       fails to find getMBeanInfo().
+       
+2007-11-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * examples/gnu/classpath/examples/management/TestBeans.java:
+       Simplify so that it uses the management server.
+       * examples/gnu/classpath/examples/management/TestClassLoading.java:
+       Test via the server and the proxy as well.
+
+2007-11-27  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+       * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
+       native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
+       (isWindowUnderMouse): New method.
+       * include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h:
+       Regenerate.
+       * gnu/java/awt/peer/gtk/GtkComponentPeer.java
+       (getLocationOnScreen): Move WindowPeer section to...
+       * gnu/java/awt/peer/gtk/GtkWindowPeer.java (getLocationOnScreen):
+       New method.
+       * gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java
+       (isWindowUnderMouse): Implement.
+       * java/awt/Component.java (getMousePosition): New method.
+       (getMousePositionHelper): Likewise.
+       (mouseOverComponent): Likewise.
+       * java/awt/Container.java (getMousePosition): New method.
+       (mouseOverComponent): Likewise.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c:
+       Revert 2007-09-11 changes.
+
+2007-11-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/package.html: Added.
+       * javax/management/remote/package.html: Likewise.
+       
+2007-11-24  Mario Torre  <neugens@limasoftware.net>
+
+       * java/util/concurrent/CopyOnWriteArrayList.java: 
+       (addAll): fix implementation, now add elements in the correct position.
+       (addAllAbsent): fixed typos (whoops!).
+       (remove(int)): fixed range in arraycopy that was causing for incorrect
+       values to be inserted in the list. Refactored to give variables better
+       names.
+       (remove(Object)): refactored to give better names to variable.
+       (listIterator): fix to set the starting index.
+       (listIterator.previous): fix to decrement element position before
+       returning the previous element in the iterator.  
+
+2007-11-23  Mario Torre  <neugens@limasoftware.net>
+
+       * gnu/java/util/prefs/EventDispatcher.java: class removed.
+       * gnu/classpath/toolkit/DefaultDaemonThreadFactory.java: new file.
+       * java/util/prefs/AbstractPreferences.java: (fire(PreferenceChangeEvent)):
+       Use DefaultDaemonThreadFactory and Executors.newSingleThreadExecutor
+       instead of EventDispatcher. Import statement refactored accordingly.
+       Also refactored to use 1.5 enhanced for loop and generics.
+       (fire(NodeChangeEvent, boolean)): likewise.
+       * gnu/java/util/prefs/GConfBasedPreferences.java (childSpi):
+       removed startWatchingNode call.
+       * gnu/java/util/prefs/gconf/GConfNativePeer.java:
+       (GConfNativePeer): removed use of semaphore. 
+       (gconf_all_nodes): method name shortened, renamed from
+       gconf_client_all_nodes (removed client_ from method signature) and
+       declared synchronized. 
+       (gconf_suggest_sync): likewise.
+       (gconf_get_string): likewise.
+       (gconf_unescape_key): likewise.
+       (gconf_set_string): likewise.
+       (gconf_escape_key):  likewise.
+       (gconf_all_keys): likewise.
+       (gconf_dir_exists): likewise.
+       (getKeys): refactored to use new native method name.
+       (getKey): likewise.
+       (setString): likewise.
+       (getChildrenNodes): likewise.
+       (unset): likewise.
+       (suggestSync): likewise.
+       (finalize): likewise.
+       (nodeExist): likewise.
+       (gconf_client_add_dir): removed, not needed anymore.
+       (gconf_client_remove_dir): likewise.
+       (startWatchingNode): likewise.
+       (stopWatchingNode): likewise.
+       * native/jni/conf-peer/GConfNativePeer.c:
+       All native methods renamed to match changes in GConfNativePeer.java
+       Now use GConfEngine instead of GConfClient.
+       Removed gdk_thread_enter/leave locking from all methods.
+       (Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1add_1dir):
+       removed.
+       (Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1dir_1exists):
+       likewise.
+       * include/gnu_java_util_prefs_gconf_GConfNativePeer.h: regenerated.
+
+2007-11-23  Mario Torre  <neugens@limasoftware.net>
+
+       * java/util/concurrent/CopyOnWriteArrayList.java: 
+       Added javadoc.
+       (serialVersionUID): new field. 
+       (iterator): new method, override from base class.
+       (remove): likewise.
+       (listIterator): likewise.
+       (removeAll): likewise.
+       (retainAll): likewise.
+       (contains): fixed typo in javadoc.
+       (addIfAbsent): added javadoc.
+       (addAllAbsent): Rewrite to improve performance. Also add javadoc.
+
+2007-11-23  Ian Rogers  <ian.rogers@manchester.ac.uk>
+
+       * java/io/FileOutputStream.java,
+       * java/io/PrintStream.java,
+       * java/util/Locale.java:
+       Make fields that can be final, final.
+       * gnu/java/nio/charset/ByteCharset.java,
+       * gnu/java/nio/charset/Cp424.java,
+       * gnu/java/nio/charset/Cp437.java,
+       * gnu/java/nio/charset/Cp737.java,
+       * gnu/java/nio/charset/Cp775.java,
+       * gnu/java/nio/charset/Cp850.java,
+       * gnu/java/nio/charset/Cp852.java,
+       * gnu/java/nio/charset/Cp855.java,
+       * gnu/java/nio/charset/Cp857.java,
+       * gnu/java/nio/charset/Cp860.java,
+       * gnu/java/nio/charset/Cp861.java,
+       * gnu/java/nio/charset/Cp862.java,
+       * gnu/java/nio/charset/Cp863.java,
+       * gnu/java/nio/charset/Cp864.java,
+       * gnu/java/nio/charset/Cp865.java,
+       * gnu/java/nio/charset/Cp866.java,
+       * gnu/java/nio/charset/Cp869.java,
+       * gnu/java/nio/charset/Cp874.java,
+       * gnu/java/nio/charset/EncodingHelper.java,
+       * gnu/java/nio/charset/ISO_8859_13.java,
+       * gnu/java/nio/charset/ISO_8859_15.java,
+       * gnu/java/nio/charset/ISO_8859_1.java,
+       * gnu/java/nio/charset/ISO_8859_2.java,
+       * gnu/java/nio/charset/ISO_8859_3.java,
+       * gnu/java/nio/charset/ISO_8859_4.java,
+       * gnu/java/nio/charset/ISO_8859_5.java,
+       * gnu/java/nio/charset/ISO_8859_6.java,
+       * gnu/java/nio/charset/ISO_8859_7.java,
+       * gnu/java/nio/charset/ISO_8859_8.java,
+       * gnu/java/nio/charset/ISO_8859_9.java,
+       * gnu/java/nio/charset/KOI_8.java,
+       * gnu/java/nio/charset/MacCentralEurope.java,
+       * gnu/java/nio/charset/MacCroatian.java,
+       * gnu/java/nio/charset/MacCyrillic.java,
+       * gnu/java/nio/charset/MacDingbat.java,
+       * gnu/java/nio/charset/MacGreek.java,
+       * gnu/java/nio/charset/MacIceland.java,
+       * gnu/java/nio/charset/MacRomania.java,
+       * gnu/java/nio/charset/MacRoman.java,
+       * gnu/java/nio/charset/MacSymbol.java,
+       * gnu/java/nio/charset/MacThai.java,
+       * gnu/java/nio/charset/MacTurkish.java,
+       * gnu/java/nio/charset/MS874.java,
+       * gnu/java/nio/charset/Provider.java,
+       * gnu/java/nio/charset/US_ASCII.java,
+       * gnu/java/nio/charset/Windows1250.java,
+       * gnu/java/nio/charset/Windows1251.java,
+       * gnu/java/nio/charset/Windows1252.java,
+       * gnu/java/nio/charset/Windows1253.java,
+       * gnu/java/nio/charset/Windows1254.java,
+       * gnu/java/nio/charset/Windows1255.java,
+       * gnu/java/nio/charset/Windows1256.java,
+       * gnu/java/nio/charset/Windows1257.java,
+       * gnu/java/nio/charset/Windows1258.java,
+       * gnu/java/nio/charset/ByteDecodeLoopHelper.java,
+        * gnu/java/nio/charset/ByteEncodeLoopHelper.java:
+       Optimize for array based buffers.
+        * native/jni/gtk-peer/gtkpeer.c:
+       Make 32bit pointer a global JNI reference.
+       * java/lang/String:
+       (toLowerCaseTurkish): new method.
+       (toUpperCaseTurkish): new method.
+       (toLowerCase): special case Turkish
+       (toUpperCase): likewise.
+       * java/lang/Long:
+       (valueOf): remove unnecessary synchronized.
+
+2007-11-08  Jeroen Frijters  <jeroen@frijters.net>
+
+       * java/util/Locale.java
+        (Locale): Always intern strings.
+
+2007-11-06  Mario Torre  <neugens@limasoftware.net>
+
+       * vm/reference/java/io/VMFile.java: 
+       (getTotalSpace): new method.
+       (getUsableSpace): likewise.
+       (getFreeSpace): likewise.
+       * java/io/File.java: (getTotalSpace): new method. 
+       (getUsableSpace): likewise.
+       (getFreeSpace): likewise.
+       * native/jni/java-io/java_io_VMFile.c:
+       (Java_java_io_VMFile_getTotalSpace): new function.
+       (Java_java_io_VMFile_getFreeSpace): likewise.
+       (Java_java_io_VMFile_getUsableSpace): likewise.
+       * native/jni/native-lib/cpio.h: (cpio_df): new function.
+       (CPFILE_DF_TYPE): enum type for cpio_df.
+       * native/jni/native-lib/cpio.c: (cpio_df): new function.
+       * include/java_io_VMFile.h: regenerated.
+       * configure.ac: added check for statvfs.
+
+2007-11-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+        PR classpath/33385:
+       * tools/com/sun/tools/javac/Main.java:
+       Make our wrapper 1.5 capable.
+       
+2007-11-04  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/java/lang/MainThread.java:
+       Fix varargs warning.
+       * lib/Makefile.am:
+       Remove restriction on ecj printing varargs warnings.
+
+2007-11-01  Mario Torre  <neugens@limasoftware.net>
+
+       PR classpath/33982:
+       * configure.ac: add GDK_CFLAGS for the GStreamer peer.
+
+2007-11-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/java/awt/java2d/ScanlineCoverage.java,
+       * gnu/javax/net/ssl/provider/ServerHandshake.java:
+       Fix non-ASCII characters in the Javadoc comments.
+       * gnu/java/lang/management/BeanImpl.java,
+       * gnu/javax/management/Server.java,
+       * gnu/xml/pipeline/EventFilter.java,
+       * java/awt/AWTKeyStroke.java,
+       * java/beans/DefaultPersistenceDelegate.java,
+       * java/beans/EventHandler.java,
+       * java/io/ObjectStreamClass.java,
+       * java/lang/Class.java,
+       * java/lang/reflect/Proxy.java,
+       * javax/management/NotificationBroadcasterSupport.java,
+       * javax/management/StandardMBean.java,
+       * javax/swing/TransferHandler.java:
+       Fix warnings from use of varargs methods.
+
+2007-10-27  Ian Rogers  <ian.rogers@manchester.ac.uk>
+
+       * java/beans/PropertyChangeSupport.java,
+       * java/beans/VetoableChangeSupport.java,
+       * java/io/ObjectStreamClass.java,
+       * java/lang/reflect/Array.java, 
+       * java/net/DatagramSocket.java,
+       * java/net/ServerSocket.java,
+       * java/net/Socket.java,
+       * java/nio/charset/CoderResult.java, 
+       * java/security/Security.java,
+       * java/security/spec/RSAKeyGenParameterSpec.java, 
+       * java/text/ChoiceFormat.java, 
+       * java/text/DecimalFormat.java, 
+       * java/text/MessageFormat.java:
+       Make use of new valueOf methods.
+       
+2007-10-27  Ian Rogers  <ian.rogers@manchester.ac.uk>
+
+       * java/io/OutputStreamWriter.java:
+       Make fields of this class that can be final, final.
+
+2007-10-27  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+        PR classpath/33385:
+       * tools/com/sun/tools/javac/Main.java:
+       Revert patch that adds bootclasspath.
+       
+2007-10-22  Dalibor Topic  <robilad@kaffe.org>
+
+       * native/jni/java-nio/gnu_java_nio_EpollSelectorImpl.c:
+       Include config-int.h for uint32_t.
+
+2007-10-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * NEWS: Kickoff updates for 0.97.
+       * configure.ac: Set version to 0.97-pre.
+       * doc/www.gnu.org/newsitems.txt: Add 0.96.1.
+       * doc/www.gnu.org/downloads/downloads.wml: Likewise.
+       * doc/www.gnu.org/announce/20071015.wml: Add missing URLs.
+       * doc/www.gnu.org/announce/20071016.wml: New file.
+
+2007-10-16  Mark Wielaard  <mark@klomp.org>
+
+       * NEWS: Mention small compile/configure/build fixes.
+       * configure.ac: Set version to 0.96.1
+
+2007-10-16  from  Alexandre Oliva  <aoliva@redhat.com>
+
+       * scripts/check_jni_methods.sh: Don't depend on diff -b ignoring
+       a single trailing whitespace.
+
+2007-10-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * m4/acinclude.m4: Add -sourcepath so that
+       some proprietary JDKs don't try to compile the
+       whole of Classpath when testing the compiler.
+
+2007-10-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * doc/www.gnu.org/newsitems.txt: Add 0.96.
+       * doc/www.gnu.org/downloads/downloads.wml: Likewise.
+       * doc/www.gnu.org/announce/20071015.wml: New file.
+
+2007-10-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * NEWS: Kickoff updates for 0.97.
+       * configure.ac: Set version to 0.97-pre.
+
+2007-10-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * NEWS: Add date of 0.96 release.
+       * configure.ac: Set version to 0.96.
+
+2007-10-15  Mario Torre  <neugens@limasoftware.net>
+
+       * doc/cp-hacking.texinfo: Update GConf requirement, and added information
+       about the GStreamer Sound peer.
+       
+2007-10-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * README.gstreamer: Correct a few typos.
+       * doc/cp-hacking.texinfo: Update to match current status
+       (e.g. mention cacao, use of 1.5, etc.)
+
+2007-10-15  Roman Kennke  <roman.kennke@aicas.com>
+
+       * java/awt/event/MouseEvent.java
+       (MouseEvent): For the no-absX/absY constructor, set the
+       absX/absY to 0, instead of calling into getLocationOnScreen(),
+       which might cause nasty deadlocks.
+
+2007-10-15  Mario Torre  <neugens@limasoftware.net>
+
+       * javax/swing/text/DefaultStyledDocument.java (ElementBuffer.insertElement):
+       Added check for empty stack to avoid EmptyStackException. 
+
+2007-10-15  Roman Kennke  <roman.kennke@aicas.com>
+
+       * java/awt/LightweightDispatcher.java
+       (dispatchEvent): Don't synchronize on the AWT lock here,
+       this causes a deadlock in some situations.
+
+2007-10-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+        PR classpath/33385:
+       * tools/com/sun/tools/javac/Main.java:
+       Add bootclasspath and 1.5 options so the compiler
+       can run.
+       
+2007-10-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/33622:
+       * lib/Makefile.am: Use JAVAC_ARGS variable.
+       * m4/acinclude.m4: Check javac is 1.5 compliant
+       and whether it supports -J.
+       
+2007-10-12  Mario Torre  <neugens@limasoftware.net>
+
+       * gnu/javax/swing/text/html/css/FontSize.java (mapPercent): 
+       (mapPoints): prevent a NumberFormatException when a floating point is given
+       instead of a integer.
+       (mapPixels): likewise.
+       (mapPercent): likewise.
+
+2007-10-12  Mario Torre  <neugens@limasoftware.net>
+
+       * gnu/javax/sound/AudioSecurityManager.java: Added Copyright header.
+       (Permission): added missing javadoc.
+       (checkPermissions): likewise.
+
+2007-10-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/33622:
+       * lib/Makefile.am: Add -J-mX512M option to
+       allow javac enough memory to build Classpath.
+
+2007-10-12  Roman Kennke  <roman.kennke@aicas.com>
+
+       * NEWS: Added entry for Escher peers.
+
+2007-10-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * NEWS: Updated for 0.96
+
+2007-10-12  Robin Garner  <robin.garner@anu.edu.au>
+
+       PR classpath/32541:
+       * java/io/OutputStreamWriter.java:
+       Provide buffering when not converting to improve
+       performance.
+       
+2007-10-12  Ian Rogers  <ian.rogers@manchester.ac.uk>
+
+       PR classpath/33746:
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c:
+       Remove atexit call that makes JikesRVM deadlock.
+       
+2007-10-12  Ian Rogers  <ian.rogers@manchester.ac.uk>
+2007-10-12  Andrew Haley  <aph@redhat.com>
+
+       PR classpath/33741:
+       * java/lang/Double.java:
+       (compare(double,double)): Increase performance
+       of this method.
+       * java/lang/Float.java:
+       (compare(float,float)): Likewise.
+       
+2007-10-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/33623:
+       * m4/acinclude.m4:
+       Fix typo which prevents --with-ecj being used.
+
+2007-10-11  Roman Kennke  <roman.kennke@aicas.com>
+
+       * javax/swing/plaf/basic/BasicTreeUI.java
+       (EDIT): Removed obsolete constant.
+
+2007-10-10  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       Recommitting patch by Dalibor Topic from 2007-09-21.
+       * java/lang/management/ThreadInfo.java:
+       Removed unused private constructors.
+
+2007-10-09  Mario Torre  <neugens@limasoftware.net>
+
+       * README.gstreamer: new file.
+
+2007-10-08  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/33623:
+       * examples/Makefile.am:
+       Exit with no compiler.
+       * lib/Makefile.am: Likewise.
+       * m4/acinclude.m4: Handle ecj and javac
+       using separate variables and catch when JAVAC/ECJ is
+       empty.
+       
+2007-10-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       PR classpath/23854:
+       * java/util/zip/ZipEntry.java:
+       (parseExtra()): Pass time to setTime in milliseconds
+       rather than seconds by multiplying by 1000.
+       
+2007-09-27  Mario Torre  <neugens@limasoftware.net>
+
+       * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java:
+       (gstreamer_get_audio_format_stream): Removed parameter from javadoc.
+       (gstreamer_get_audio_format_file): likewise.
+       * gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java:
+       Added class javadoc and implementation notes.
+       (READ): new constant.
+       (WRITE): likewise.
+       (QUEUED): likewise.
+       (CAPACITY_KEY): likewise.
+       (lock): likewise.
+       (prefs): new variable.
+       (GstPipeline constructor): added OS independent rutines to detect
+       filesystem pipes size plus save and restores this information via
+       preferences. Now closes open pipe on user abort at VM exit.
+       (open_native_pipe): new native method.
+       (close_native_pipe): likewise.
+       (detect_pipe_size): likewise.
+       (createForWrite): update to use new native methods.
+       (setState): removed hack to synchronize reading and writing of the
+       filesystme named pipe.
+       (available): implemented.
+       (drain): new implementation, now correctly waits for data to be consumed
+       in the pipeline.
+       (prepareWrite): removed hack to synchronize reading and writing of the
+       filesystme named pipe.
+       (CleanPipeline): new inner class, used for cleaning of native pipelines
+       still opened at VM exit.
+       * gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine:
+       (getFramePosition): method still stubbed, now output "implement me"
+       note when called (used for testing).
+       (getLongFramePosition): likewise.
+       (getMicrosecondPosition): likewise.
+       * include/gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h:
+       regenerated.
+       * native/jni/gstreamer-peer/gst_native_data_line.c:
+       (setup_pipeline): Changed signature, now uses a file descriptor instead of
+       char with the name of the native pipeline. Also changed to use "fdsrc"
+       when creating the GStreamer pipeline.
+       (Java_gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine_setup_1sink_1pipeline):
+       now uses gst_native_pipeline_get_pipeline_fd to get the file descriptor
+       of the native pipeline, instead of gst_native_pipeline_get_pipeline_name.
+       Chaged to use "autoaudiosink" as GStreamer audio sink.
+       (gst_newpad): fix indentation.
+       * native/jni/gstreamer-peer/gst_native_pipeline.c: include new headers for
+       compilation.
+       (capacityFID): new filed for caching.
+       (GST_DETECTED_PIPE_CAPACITY): new field.
+       (enum): maps READ and WRITE in GstPipeline class.
+       (_GstNativePipelinePrivate.fd): new field.
+       (create_name): new function.
+       (init_pointer_IDs): likewise.
+       (get_free_space): likewise.
+       (Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_init_1id_1cache):
+       cache capacityFID.
+       (Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_init_1instance):
+       get value for GST_DETECTED_PIPE_CAPACITY from mapped class.
+       (Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_set_1state):
+       removed "unused" attribute from parameters, clean pipeline name on exit.
+       (Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_open_1native_1pipe):
+       new function.
+       (Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_close_1native_1pipe):
+       likewise.
+       (Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_create_1named_1pipe):
+       pipe name created with a dedicated function.
+       (Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_available): new
+       function.
+       * native/jni/gstreamer-peer/gst_native_pipeline.h:
+       (gst_native_pipeline_clean): removed.
+       (gst_native_pipeline_get_pipeline_fd): new function.
+       * native/jni/gstreamer-peer/gst_peer.h: new defines used by the peer.
+       * native/jni/gstreamer-peer/gstreamer_io_peer.c: (_GST_MALLOC_SIZE_): moved
+       in gst_peer.h.
+
+2007-09-27  Dalibor Topic  <robilad@kaffe.org>
+
+       * native/fdlibm/dtoa.c: Include mprec.h after system includes.
+       * native/fdlibm/mprec.h [_EXFUN]: Only define _EXFUN if it is not 
+       already defined.
+
+2007-09-24  Dalibor Topic  <robilad@kaffe.org>
+
+       * java/lang/management/ThreadInfo.java: Reverted patch from 
+       2007-09-21, as it breaks JikesRVM.
+
+2007-09-23  Mark Wielaard  <mark@klomp.org>
+
+       * doc/www.gnu.org/include/layout.wml: Fix Planet Classpath link.
+       * doc/www.gnu.org/faq/faq.wml: Fix typo prorietary.
+
+2007-09-22  Paul Jenner  <psj@harker.dyndns.org>
+
+       * doc/www.gnu.org/include/layout.wml: Added link to Wiki.
+
+2007-09-21  Dalibor Topic  <robilad@kaffe.org>
+
+       * gnu/java/rmi/server/RMIClassLoaderImpl.java,
+       java/beans/beancontext/BeanContextServicesSupport.java,
+       java/lang/management/ThreadInfo.java:
+       Removed unused private constructors.
+
+2007-09-21  Dalibor Topic  <robilad@kaffe.org>
+
+       * gnu/CORBA/CDR/AbstractCdrInput.java,
+       gnu/CORBA/CDR/Vio.java,
+       gnu/CORBA/DynAn/gnuDynUnion.java,
+       gnu/CORBA/GIOP/MessageHeader.java,
+       gnu/CORBA/IorDelegate.java,
+       gnu/java/security/key/dss/FIPS186.java,
+       gnu/javax/crypto/key/dh/RFC2631.java,
+       gnu/javax/swing/text/html/parser/support/Parser.java,
+       gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.java,
+       gnu/xml/aelfred2/XmlParser.java,
+       java/awt/im/InputContext.java:
+       Removed unused labels.
+
+2007-09-21  Roman Kennke  <roman.kennke@aicas.com>
+
+       * javax/swing/plaf/basic/BasicGraphicsUtils.java
+       (drawStringUnderlineCharAt): Fix Y location of underline.
+
+2007-09-21  Roman Kennke  <roman.kennke@aicas.com>
+
+       * java/awt/LightweightDispatcher.java
+       (dispatchEvent): Lock the component's tree to avoid threading
+       problems.
+       (redispatch): Only redispatch when component is showing.
+
+2007-09-21  Roman Kennke  <roman.kennke@aicas.com>
+
+       * java/awt/Font.java
+       (hashCode): New field. Stores a cached hash code.
+       (hashCode()): Re-implemented. Don't create new string here, instead
+       make hashcode of name, style, size and transform. Cache hashcode.
+
+2007-09-20  Roman Kennke  <roman.kennke@aicas.com>
+
+       * gnu/java/awt/font/GNUGlyphVector.java
+       (cleanOutline): New field, caches the untransformed outline.
+       (getOutline()): No need to validate here. Already done in
+       getOutline(float,float).
+       (getOutline(float,float)): Cache untransformed outlines. Protect
+       returned shape from modification by wrapping in ShapeWrapper
+       object.
+       * gnu/java/awt/font/OpenTypeFontPeer.java: New class. Implements
+       ClasspathFontPeer for OpenType fonts.
+       * gnu/java/awt/java2d/AbstractGraphics2D.java
+       (DEFAULT_TEXT_AA): New constant/property for controlling
+       default anti-aliasing for text.
+       (GC_CACHE_SIZE): New constant for the size of the glyph vector
+       cache.
+       (shapeCache): Don't make shapeCache thread local. This wouldn't
+       gain much, because the event dispatch thread is restarted quite
+       often.
+       (scanlineConverters): Don't make scanlineConverters thread local,
+       but instead pool them into a list.
+       (gvCache): New cache for glyph vectors.
+       (searchTextKey): New static field, a shared key used for GV caching.
+       (drawString): Cache glyph vectors.
+       (getFontRenderContext): Protect the current transform from beeing
+       changed.
+       (clone): Check clip for null when cloning.
+       (drawLine): Use shared shape cache. No need for calling a method here.
+       (drawRect): Likewise. Add translation to rectangle coordinates.
+       (fillRect): Use shared shape cache. No need for calling a method here.
+       (drawRoundRect): Likewise.
+       (fillRoundRect): Likewise.
+       (drawOval): Likewise.
+       (fillOval): Likewise.
+       (drawArc): Likewise.
+       (fillArc): Likewise.
+       (drawPolyline): Likewise.
+       (drawPolygon): Likewise.
+       (fillPolygon): Likewise.
+       (fillShape): Check property for default text AA. Set Y resolution.
+       (rawDrawLine): Use shared shape cache. No need for calling a method
+       here.
+       (rawDrawRect): Likewise.
+       (rawFillRect): Likewise.
+       (rawDrawString): Removed. Subclasses override drawString() instead.
+       (getShapeCache): Removed. No longer needed.
+       (getScanlineConverter): New helper method for pooling
+       scanline converters.
+       (freeScanlineConverter): New helper method for pooling
+       scanline converters.
+       * gnu/java/awt/java2d/PixelCoverage.java: New class. Used by the
+       reworked scanline converter.
+       * gnu/java/awt/java2d/ScanlineConverter.java
+       (Y_RESOLUTION): Removed. The Y resolution is now specified
+       by the caller.
+       (yResolution): New field. Stores the Y resolution.
+       (renderShape): Take y resolution as argument.
+       (setResolution): Take y resolution as argument.
+       * gnu/java/awt/java2d/ShapeWrapper.java: New class. Protects
+       shape objects from modification by application code.
+       * gnu/java/awt/java2d/TextCacheKey.java: New class. Used for
+       caching GlyphVectors.
+       * gnu/java/awt/peer/x/XFontPeer2.java: Removed. This is now
+       implemented in OpenTypeFontPeer now.
+       * gnu/java/awt/peer/x/XEventPump.java
+       (handleEvent): Check insets.
+       * gnu/java/awt/peer/x/XFontPeer.java
+       Changed class and method names for changed Escher API.
+       (clinit): Use font properties from xfonts.properties.
+       (canDisplay): Changed to take int argument.
+       * gnu/java/awt/peer/x/XFramePeer.java
+       (XFramePeer): Set the title of the frame on creation time.
+       (setTitle): Implemented.
+       * gnu/java/awt/peer/x/XGraphics2D.java
+       (imageCache): New field. Caches native representations for
+       images.
+       (drawString): New method. Optimized version for X fonts.
+       (fillScanline): Removed.
+       (fillScanlineAA): Removed.
+       (rawDrawImage): Optimized drawing for ZPixmap-backed images.
+       (rawDrawRect): Optimized rectangle drawing.
+       (renderScanline): Added compositing code.
+       (setFont): Overridden for X font support.
+       (setPaint): Added TODO.
+       * gnu/java/awt/peer/x/XGraphicsConfiguration.java
+       (getSize): New helper method for XToolkit.
+       (getResolution): New helper method for XToolkit.
+       * gnu/java/awt/peer/x/XGraphicsEnvironment.java
+       (getAvailableFontFamilyNames): Implemented.
+       * gnu/java/awt/peer/x/XToolkit.java
+       (fontCache): New field for caching fonts.
+       (getClasspathFontPeer): Cache fonts.
+       (getScreenSize): Implemented.
+       (getScreenResolution): Implemented.
+       (getFontList): Implemented.
+       (isModalExclusionTypeSupported): New method.
+       (isModalityTypeSupported): New method.
+       * gnu/java/awt/peer/x/XWindowPeer.java
+       (insets): New field for storing the insets of the frame.
+       (XWindowPeer): Set correct decoration.
+       (getGraphics): Set foreground, background and font.
+       (show): Determine the correct frame extents.
+       (reshape): Only resize when not inside callback.
+       (insets): Implemented correctly.
+       (getFontMetrics): Use OpenTypeFontPeer.
+       * gnu/java/awt/peer/x/ZPixmapDataBuffer.java
+       (getZPixmap): New method. This is used in XGraphics2D for drawing
+       the buffer.
+       * gnu/java/util/LRUCache.java: New class. Implements an LRU cache.
+
+2007-09-19  Dalibor Topic  <robilad@kaffe.org>
+
+        * native/jni/native-lib/Makefile.am 
+        (AM_LDFLAGS) Use CLASSPATH_CONVENIENCE flags, as it is a convenience library.
+
+2007-09-19  Dalibor Topic  <robilad@kaffe.org>
+
+        * native/fdlibm/dtoa.c: Include stdlib.h to have a declaration for free.
+
+2007-09-18  Dalibor Topic  <robilad@kaffe.org>
+
+       * examples/gnu/classpath/examples/management/TestMemoryPool.java,
+       examples/gnu/classpath/examples/swing/DocumentFilterDemo.java,
+       examples/gnu/classpath/examples/swing/TableDemo.java,
+       gnu/CORBA/BigDecimalHelper.java,
+       gnu/CORBA/ByteArrayComparator.java,
+       gnu/CORBA/CollocatedOrbs.java,
+       gnu/CORBA/EmptyExceptionHolder.java,
+       gnu/CORBA/IorDelegate.java,
+       gnu/CORBA/OrbRestricted.java,
+       gnu/CORBA/ServiceRequestAdapter.java,
+       gnu/CORBA/gnuContextList.java,
+       gnu/CORBA/gnuExceptionList.java,
+       gnu/CORBA/gnuRequest.java,
+       gnu/CORBA/CDR/LittleEndianInputStream.java,
+       gnu/CORBA/DynAn/DivideableAny.java,
+       gnu/CORBA/DynAn/gnuDynArray.java,
+       gnu/CORBA/GIOP/CodeSetServiceContext.java,
+       gnu/CORBA/Interceptor/IORInterceptors.java,
+       gnu/CORBA/NamingService/NameParser.java,
+       gnu/CORBA/Poa/gnuPOAManager.java,
+       gnu/classpath/jdwp/event/filters/StepFilter.java,
+       gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java,
+       gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java,
+       gnu/java/awt/ClasspathToolkit.java,
+       gnu/java/awt/EmbeddedWindow.java,
+       gnu/java/awt/peer/KDEDesktopPeer.java,
+       gnu/java/awt/peer/gtk/CairoSurface.java,
+       gnu/java/awt/peer/swing/SwingCheckboxPeer.java,
+       gnu/java/awt/peer/swing/SwingTextAreaPeer.java,
+       gnu/java/awt/peer/swing/SwingTextFieldPeer.java,
+       gnu/java/awt/print/PostScriptGraphics2D.java,
+       gnu/java/awt/print/SpooledDocument.java,
+       gnu/java/io/PlatformHelper.java,
+       gnu/java/lang/management/BeanImpl.java,
+       gnu/java/locale/LocaleHelper.java,
+       gnu/java/net/protocol/http/Request.java,
+       gnu/java/nio/DatagramChannelImpl.java,
+       gnu/java/nio/KqueueSelectionKeyImpl.java,
+       gnu/java/nio/NIOSocket.java,
+       gnu/java/nio/ServerSocketChannelImpl.java,
+       gnu/java/nio/SocketChannelImpl.java,
+       gnu/java/rmi/server/RMIObjectInputStream.java,
+       gnu/java/util/regex/RE.java,
+       gnu/javax/imageio/bmp/DecodeBF16.java,
+       gnu/javax/imageio/bmp/EncodeRGB32.java,
+       gnu/javax/imageio/jpeg/JPEGDecoder.java,
+       gnu/javax/imageio/jpeg/JPEGException.java,
+       gnu/javax/imageio/jpeg/JPEGImageInputStream.java,
+       gnu/javax/imageio/png/PNGChunk.java,
+       gnu/javax/imageio/png/PNGEncoder.java,
+       gnu/javax/imageio/png/PNGFile.java,
+       gnu/javax/imageio/png/PNGGamma.java,
+       gnu/javax/net/ssl/SSLRecordHandler.java,
+       gnu/javax/net/ssl/StaticTrustAnchors.java,
+       gnu/javax/net/ssl/provider/CertificateRequestBuilder.java,
+       gnu/javax/net/ssl/provider/ClientHandshake.java,
+       gnu/javax/net/ssl/provider/ClientPSKParameters.java,
+       gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.java,
+       gnu/javax/net/ssl/provider/ContentType.java,
+       gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.java,
+       gnu/javax/net/ssl/provider/Handshake.java,
+       gnu/javax/net/ssl/provider/InputSecurityParameters.java,
+       gnu/javax/net/ssl/provider/OutputSecurityParameters.java,
+       gnu/javax/net/ssl/provider/ProtocolVersion.java,
+       gnu/javax/net/ssl/provider/Random.java,
+       gnu/javax/net/ssl/provider/SRPTrustManagerFactory.java,
+       gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.java,
+       gnu/javax/net/ssl/provider/SessionImpl.java,
+       gnu/javax/net/ssl/provider/Signature.java,
+       gnu/javax/net/ssl/provider/SimpleSessionContext.java,
+       gnu/javax/net/ssl/provider/TLSHMac.java,
+       gnu/javax/net/ssl/provider/TrustedAuthorities.java,
+       gnu/javax/net/ssl/provider/UnresolvedExtensionValue.java,
+       gnu/javax/net/ssl/provider/X509KeyManagerFactory.java,
+       gnu/javax/security/auth/Password.java,
+       gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java,
+       gnu/javax/sound/midi/file/MidiFileWriter.java,
+       gnu/javax/sound/sampled/AU/AUReader.java,
+       gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java,
+       gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java,
+       gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.java,
+       gnu/xml/dom/html2/DomHTMLButtonElement.java,
+       gnu/xml/dom/html2/DomHTMLCollection.java,
+       gnu/xml/dom/html2/DomHTMLParser.java,
+       gnu/xml/stream/EndDocumentImpl.java,
+       gnu/xml/stream/SAXParser.java,
+       gnu/xml/stream/XIncludeFilter.java,
+       gnu/xml/stream/XMLEventImpl.java,
+       gnu/xml/transform/StreamSerializer.java,
+       gnu/xml/transform/Stylesheet.java,
+       gnu/xml/validation/datatype/Base64BinaryType.java,
+       gnu/xml/validation/datatype/BooleanType.java,
+       gnu/xml/validation/datatype/DecimalType.java,
+       gnu/xml/validation/datatype/DoubleType.java,
+       gnu/xml/validation/datatype/FloatType.java,
+       gnu/xml/validation/datatype/HexBinaryType.java,
+       gnu/xml/validation/datatype/NotationType.java,
+       gnu/xml/validation/datatype/SimpleType.java,
+       gnu/xml/validation/datatype/StringType.java,
+       gnu/xml/validation/datatype/Type.java,
+       gnu/xml/validation/datatype/TypeBuilder.java,
+       gnu/xml/validation/relaxng/FullSyntaxBuilder.java,
+       gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.java,
+       gnu/xml/validation/xmlschema/XMLSchemaBuilder.java,
+       gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.java,
+       gnu/xml/xpath/XPathParser.java,
+       java/awt/MenuShortcut.java,
+       java/awt/font/LineBreakMeasurer.java,
+       java/awt/font/TextMeasurer.java,
+       java/awt/image/BufferedImage.java,
+       java/beans/beancontext/BeanContextServicesSupport.java,
+       java/security/SecureClassLoader.java,
+       java/security/cert/CertificateFactory.java,
+       javax/imageio/metadata/IIOMetadataFormatImpl.java,
+       javax/imageio/stream/MemoryCacheImageInputStream.java,
+       javax/management/ObjectName.java,
+       javax/management/openmbean/ArrayType.java,
+       javax/net/ssl/HttpsURLConnection.java,
+       javax/print/attribute/standard/JobStateReasons.java,
+       javax/swing/RepaintManager.java,
+       javax/swing/plaf/basic/BasicDirectoryModel.java,
+       javax/swing/plaf/basic/BasicFileChooserUI.java,
+       javax/swing/plaf/basic/BasicLabelUI.java,
+       javax/swing/plaf/metal/MetalScrollButton.java,
+       javax/swing/table/DefaultTableCellRenderer.java,
+       javax/swing/text/ParagraphView.java,
+       javax/swing/text/html/ResetableToggleButtonModel.java,
+       javax/swing/text/html/parser/Entity.java,
+       javax/swing/tree/DefaultTreeCellRenderer.java,
+       javax/xml/datatype/DatatypeFactory.java,
+       javax/xml/stream/XMLEventFactory.java,
+       javax/xml/stream/XMLInputFactory.java,
+       org/omg/IOP/TaggedComponentHelper.java,
+       sun/reflect/annotation/ExceptionProxy.java,
+       tools/gnu/classpath/tools/appletviewer/Main.java,
+       tools/gnu/classpath/tools/appletviewer/PluginAppletWindow.java,
+       tools/gnu/classpath/tools/orbd/Main.java,
+       tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java,
+       tools/gnu/classpath/tools/rmic/Main.java,
+       tools/gnu/classpath/tools/rmid/Main.java,
+       tools/gnu/classpath/tools/tnameserv/Main.java,
+       vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java,
+       vm/reference/java/lang/VMClass.java,
+       vm/reference/java/security/VMSecureRandom.java:
+       Removed unused imports.
+
+2007-09-18  Dalibor Topic  <robilad@kaffe.org>
+
+       * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToPassHelper.java,
+       examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/StructureToReturnHelper.java, 
+       examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/TreeNodeHelper.java,
+       examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/WeThrowThisExceptionHelper.java,
+       examples/gnu/classpath/examples/awt/AnimationApplet.java: Removed unused imports.
+
+2007-09-18  Dalibor Topic  <robilad@kaffe.org>
+
+       * .classpath: Reverted escher-specific changes that break 
+       the build under Eclipse.
+
+2007-09-16  Mark Wielaard  <mark@klomp.org>
+
+       * examples/Makefile.am (JCOMPILER): Add tools.zip for ecj.
+
+2007-09-14  Roman Kennke  <roman@kennke.org>
+
+       * .classpath: Include javah in Eclipse build.
+
+2007-09-13  David P Grove  <groved@us.ibm.com>
+
+       PR 30275
+       * native/fdlibm/fdlibm.h [_AIX]: Define _ALL_SOURCE
+       rather than _XOPEN_SOURCE to fix build on AIX 5.
+
+2007-09-12  Robert Schuster  <robertschuster@fsfe.org>
+
+       * native/jni/java-net/gnu_java_net_local_LocalSocketImpl.c:
+       Add #ifndef guard around definition of _GNU_SOURCE.
+
+2007-09-12  Dalibor Topic  <robilad@kaffe.org>
+
+       * examples/Makefile.am, tools/Makefile.am 
+       (GLIBJ_CLASSPATH): Removed unnecessary paths to avoid 
+       using unix path separators on windows. 
+       (JCOMPILER) Don't add '.' to classpath for javac.
+       Fixes the build on Cygwin.
+
+2007-09-11  Roman Kennke  <roman@kennke.org>
+
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
+       Removed unused includes.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
+       Removed unused includes.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
+       Removed unusued excludes. Put Xrender includes in HAVE_XRENDER
+       conditional.
+       (flush): Use gdk_display_flush() instead of XFlush().
+       (initState): Use GDK/Cairo functions to get cairo_t object.
+       (initFromVolatile): Likewise.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
+       Removed unused includes.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c
+       Use HAVE_XTEST conditionals for code that uses XTest.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
+       Removed unused includes.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
+       Removed unused includes.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c
+       Removed unused includes.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
+       Removed unused includes. Rewrote frame-extents code to use
+       gdk_window_get_frame_extents() rather than the X window properties
+       directly.
+       * include/gnu_java_awt_peer_gtk_ComponentGraphics.h
+       (initFromVolatile): Removed width and height parameters.
+       * gnu/java/awt/peer/gtk/ComponentGraphics.java
+       (initFromVolatile): Remove width and height parameters.
+       * gnu/java/awt/peer/gtk/VolatileImageGraphics.java
+       (VolatileImageGraphics): Use initFromVolatile without width and
+       height.
+       * configure.ac: Check for presence of XTest, and define HAVE_XTEST
+       accordingly.
+
+2007-09-08  Michael Koch  <konqueror@gmx.de>
+
+       * native/jni/midi-alsa/Makefile.am (AM_CFLAGS):
+       Removed @ERROR_CFLAGS@ to not fail build with GCC 4.2.
+
+2007-09-05  Andrew Haley  <aph@redhat.com>
+
+       * gnu/javax/crypto/jce/DiffieHellmanImpl.java (engineDoPhase):
+       Don't check the length of q.
+
+2007-08-30  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       * include/jni.h (jobjectRefType): New type.
+       (JNI_VERSION_1_6): Added.
+       (JNINativeInterface_): Added GetObjectRefType.
+       (_Jv_JNIEnv): Likewise.
+
+2007-08-28  John X  <johnx@dodgit.com>
+
+       PR classpath/33206:
+       * java/math/BigInteger.java (isProbablePrime): Handle case of
+       large 'b'.
+
+2007-08-24  Mark Wielaard  <mark@klomp.org>
+
+       * include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: Regenerated.
+
+2007-08-23  Francis Kung  <fkung@redhat.com>
+
+       * gnu/java/awt/peer/gtk/GtkComponentPeer.java:
+       (getLocationOnScreen): Check for GTK main thread.
+       (gtkWidgetGetLocationOnScreenUnlocked): New native method.
+       (gtkWindowGetLocationOnScreenUnlocked): New native method.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c:
+       (Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreen):
+       Delegate to unlocked function.
+       (Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreenUnlocked):
+       New function.
+       (Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen):
+       Delegate to unlocked function.
+       (Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreenUnlocked):
+       New function.
+
+2007-08-22  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/util/EnumSet.java:
+       Documented.
+       (complementOf(EnumSet)): Fixed to flip only
+       the bits used by the enumset.
+       
+2007-08-20  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * vm/reference/java/lang/VMClass.java:
+       (getCanonicalName(Class)): Fix handling of member
+       classes so we don't fall out of the if block.
+       (getSimpleName(Class)): Handle class names which include
+       the $ sign to break up anonymous/inner/member classes.
+
+2007-08-19  Mario Torre  <neugens@limasoftware.net>
+
+       * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java: 
+       (getAudioFileFormat (File)): method implemented.
+       (getAudioFileFormat (InputStream)): likewise.
+       (getAudioFileFormat(InputStream, String)): new method.
+       (getAudioInputStream): better exception handling.
+       * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java
+       (getAudioFormat): added basic extension detection for known files.
+       * gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java:
+       (BASIC_FORMATS): removed, unused.
+       (GST_TYPE_NAME): new constant.
+       (GST_FILE_EXTENSION): likewise.
+       
+2007-08-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader:
+       Removed.
+       * resource/META-INF/services/javax.sound.sampled.spi.MixerProvider:
+       Likewise.
+       * resource/META-INF/services/.cvsignore: Updated to reflect this.
+       
+2007-08-19  Mario Torre  <neugens@limasoftware.net>
+
+       * native/jni/gstreamer-peer/gst_native_pipeline.c:
+       (init_pointer_IDs):     fix typo that prevents compilation on 64 bit systems.
+
+2007-08-19  Mario Torre  <neugens@limasoftware.net>
+
+       * resource/META-INF/services/javax.sound.sampled.spi.MixerProvider:
+       regenerated to avoid listing by default of the
+       gnu.javax.sound.sampled.gstreamer.GStreamerMixerProvider class, as the
+       GStreamer Sound peer is not enabled unless specified at configure time.
+
+2007-08-18  Mario Torre  <neugens@limasoftware.net>
+
+       * examples/gnu/classpath/examples/sound/AudioPlayerSample.java: new file.
+       * gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java: removed
+       unused import.
+       * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.java: likewise.
+       * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java: 
+       (gstreamer_get_audio_format_stream): changed signature tu accept a Pointer
+       object instead of a BufferedInputStream.
+       (GstHeader): 
+       (getAudioFormat(InputStream, GstHeader)): new private method.
+       (getAudioFormat(public)): refactored to use the private getAudioFormat
+       with shared functionality.
+       (getAudioFormat(GstHeader header)): removed a redundant check.
+       (init_id_cache): new native method.
+       * gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java: new file.
+       * gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java:
+       (GstDataLine.State): removed enum.
+       (state): removed local variable.
+       (isRunning): removed method.
+       (open): likewise.
+       (setFormat): new methods.
+       (setOpen): likewise.
+       (setBufferSize): likewise.
+       * gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java: 
+       (createSourcePipeline): new method.
+       (setup_sink_pipeline): likewise.
+       (init_id_cache): likewise. Added to the static initializer.
+       * gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java: 
+       (GstPipeline.State): new enum.
+       (state): new local variable.
+       (name): likewise.
+       (output): likewise.
+       (source): likewise.
+       (ready): likewise.
+       (getState): new method.
+       (closePipe): likewise.
+       (create_named_pipe): likewise.
+       (set_state): likewise.
+       (available): likewise.
+       (drain): likewise.
+       (GstPipeline): likewise.
+       (close): likewise.
+       (prepareWrite): likewise.
+       (flush): likewise.
+       (write): likewise.
+       (init_instance): likewise.
+       (read): likewise.
+       (createForWrite): likewise.
+       (setState): likewise.
+       (getNativeClass): likewise.
+       (init_id_cache): likewise.
+       * gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java:
+       (pipeline): new local variable.
+       (opne): likewise.
+       (isActive): method implemented.
+       (stop): likewise.
+       (open): likewise.
+       (flush): likewise.
+       (isRunning): likewise.
+       (start): likewise.
+       (write): likewise.
+       (available): likewise.
+       (drain): likewise.
+       (close): likewise.
+       * include/Makefile.am: added entry to generate new header file.
+       * include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h:
+       regenerated.
+       * include/gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h: likewise.
+       * include/gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h:
+       likewise.
+       * include/gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h:
+       likewise.
+       * native/jni/gstreamer-peer/gstclasspathsrc.c: removed.
+       * native/jni/gstreamer-peer/gstinputstream.c: likewise.
+       * native/jni/gstreamer-peer/GStreamerIOPeer.c: likewise.
+       * native/jni/gstreamer-peer/gstinputstream.h: likewise.
+       * native/jni/gstreamer-peer/gstclasspathsrc.h: likewise.
+       * native/jni/gstreamer-peer/Makefile.am: new file added for compilation.
+       code reformat to keep the 80 columns constraint.
+       * native/jni/gstreamer-peer/gst_native_pipeline.h: new file.
+       * native/jni/gstreamer-peer/gst_input_stream.c: likewise.
+       * native/jni/gstreamer-peer/gst_input_stream.h: likewise.
+       * native/jni/gstreamer-peer/gst_classpath_src.c: likewise.
+       * native/jni/gstreamer-peer/gst_native_pipeline.c: likewise.
+       * native/jni/gstreamer-peer/gst_native_data_line.c: likewise.
+       * native/jni/gstreamer-peer/gst_classpath_src.h: likewise.
+       * native/jni/gstreamer-peer/gstreamer_io_peer.c: likewise.
+       * native/jni/gstreamer-peer/gst_peer.c: likewise.
+       * native/jni/gstreamer-peer/gst_peer.h: likewise.
+       
+2007-08-16  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * NEWS: Update with info on VM changes.
+       * vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java:
+       (getHeapMemoryUsage()): New default implementation.
+       (getNonHeapMemoryUsage()): Likewise.
+       
+2007-08-15  Tom Tromey  <tromey@redhat.com>
+
+       * java/util/LinkedHashSet.java (LinkedHashSet): Fix typo.
+
+2007-08-15  Tom Tromey  <tromey@redhat.com>
+
+       * java/lang/Class.java (internalGetFields): Use LinkedHashSet.
+
+2007-08-08  Mario Torre  <neugens@limasoftware.net>
+
+       * java/io/PipedInputStream.java:
+       (buffer): variable now initialized in constructors.
+       (PipedInputStream(int)): new constructor, creates the buffer
+       storage of size int.
+       (PipedInputStream()): now calls PipedInputStream(int) with
+       default capacity.
+       (PipedInputStream(PipedOutputStream)): now calls PipedInputStream().
+       (PipedInputStream(PipedOutputStream, int)): new constructor.
+
+2007-07-31  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       * tools/gnu/classpath/tools/javah/Main.java (writeHeaders):
+       Renamed filename to file.
+       * tools/gnu/classpath/tools/javah/CniIncludePrinter.java
+       (printClass): Likewise.
+       * tools/gnu/classpath/tools/javah/JniIncludePrinter.java
+       (printClass): Replace '$' with '_' in filename.
+
+2007-07-31  Dalibor Topic  <robilad@kaffe.org>
+
+       PR 32844
+       * java/util/EnumSet.java:
+       Made class abstract per API spec.
+       (size, iterator, add, addAll, clear, contains,
+       containsAll, remove, removeAll, retainAll) Moved 
+       into an anonymous inner class in of(T).
+       (allOf, noneOf, copyOf, of, range) Made more 
+       implementation independent.
+       (of(T)) return an instance of an anonymous class
+       implementing EmptySet.
+
+2007-07-28  Matthias Klose  <doko@ubuntu.com>
+
+       * include/jvmti.h (jniNativeInterface): Rename type.
+
+2007-07-28  Chris Burdess  <dog@gnu.org>
+
+       PR 32539
+       * gnu/xml/stream/XMLParser.java: don't call next() during hasNext().
+
+2007-07-24  Tom Tromey  <tromey@redhat.com>
+
+       PR java/32862:
+       * java/util/EnumMap.java (get): Special case emptySlot.
+       (clone): Rewrote.
+
+2007-07-23  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       * gnu/java/nio/charset/ISO_8859_1.java: Added ISO8859-1 to
+       aliases.
+
+2007-07-23  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       * vm/reference/sun/misc/Unsafe.java (unpark): Changed signature to
+       be compatible with OpenJDK.
+
+2007-07-13  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/awt/java2d/AbstractGraphics2D.java
+       (clip(Shape)): Call setClip when the clip changes.
+       (drawImage): Add translation.
+       (drawLine): Add translation.
+       * gnu/java/awt/peer/x/PixmapVolatileImage.java
+       (getPixmap): New method.
+       * gnu/java/awt/peer/x/XEventPump.java
+       (XEventPump): Name thread. Start as daemon thread.
+       * gnu/java/awt/peer/x/XGraphics2D.java
+       (rawDrawImage): Special handling for PixmapVolatileImage.
+       (rawDrawLine): Don't add translation here. This is done in
+       the superclass.
+       (rawFillRect): Don't add translation here. This is done in
+       the superclass.
+       (renderScanline): Added null check.
+
+2007-07-13  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/awt/peer/x/PixmapVolatileImage.java: New class.
+       * gnu/java/awt/peer/x/XGraphicsConfiguration.java
+       (createCompatibleImage(int,int)): Delegate to the 3-int overload.
+       (createCompatibleImage(int,int,int)): Implemented. Using
+       the ZPixmapDataBuffer for OPAQUE images.
+       (createCompatibleVolatileImage(int,int)): Delegate to the 3-int
+       overload.
+       (createCompatibleVolatileImage(int,int,int)): Implemented. Using
+       PixmapVolatileImage.
+       * gnu/java/awt/peer/x/XWindowPeer.java
+       (createImage): Return a PixmapVolatileImage (for now).
+       (createVolatileImage): Implemented, using PixmapVolatileImage.
+       * gnu/java/awt/peer/x/ZPixmapDataBuffer.java
+       New class.
+
+2007-07-10  Roman Kennke  <roman@kennke.org>
+
+       PR 32645
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
+       (copyPixbuf): Swap asserts.
+
+2007-07-09  Chris Burdess  <dog@gnu.org>
+
+       Fixes #32672
+       * gnu/xml/dom/DomElement.java,
+       * gnu/xml/dom/DomNamedNodeMap.java: don't check owner in
+         setNamedNode when cloning.
+
+2007-07-08  Mario Torre  <neugens@limasoftware.net>
+
+       * gnu/javax/sound/sampled/gstreamer: new package hierarchy.
+       * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java: new file.
+       * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java:
+       likewise.
+       * gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java: likewise.
+       * gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java: likewise.
+       * gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java: likewise.
+       * gnu/javax/sound/AudioSecurityManager.java: likewise. 
+       * gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java: likewise.
+       * gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java: likewise.
+       * gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java: likewise.
+       * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.java: likewise. 
+       * resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in:
+       likewise.
+       * resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in:
+       likewise.
+       * resource/META-INF/services/javax.sound.sampled.spi.MixerProvider:
+       likewise.
+       * native/jni/gstreamer-peer/gstclasspathsrc.c: likewise.
+       * native/jni/gstreamer-peer/gstclasspathsrc.h: likewise.
+       * native/jni/gstreamer-peer/gstinputstream.c: likewise.
+       * native/jni/gstreamer-peer/gstinputstream.h: likewise.
+       * native/jni/gstreamer-peer/GStreamerIOPeer.c: likewise.
+       * native/jni/gstreamer-peer/Makefile.am: likewise.
+       * native/jni/gstreamer-peer/.cvsignore: likewise.
+       * include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h:
+       likewise.
+       * include/Makefile.am: add gstreamer generated headers.
+       * configure.ac: add gstreamer sound backend configuration.
+       The backend is currently disabled by default.
+       * native/jni/Makefile.am: code to allow compilation of the gstreamer
+       sound backend.
+       * javax/sound/sampled/spi/MixerProvider.java (isMixerSupported):
+       indentation fixes.
+       * javax/sound/sampled/AudioFormat.java (toString): fix method to display
+       informations only when available.
+       * javax/sound/sampled/DataLine.java:
+       (Info.isFormatSupported):  indentation fixes.
+       (Info):  indentation fixes.
+       (Info.toString):  indentation fixes.
+       (Info.matches):  indentation fixes.
+
+2007-07-03  Tania Bento  <tbento@redhat.com>
+
+       * java/lang/Integer.java:
+       (parseInt(String,int,boolean)): Throw NumberFormatException if 
+       String is just "+".
+
+2007-07-01  Chris Burdess  <dog@gnu.org>
+
+       * gnu/xml/transform/WithParam.java: Handle case where content is
+         empty.
+
+2007-06-28  Tom Tromey  <tromey@redhat.com>
+
+       * include/jni.h: Fixed local variables.
+
+2007-06-26  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+
+       * ChangeLog: Correction of a bug fix number.
+
+2007-06-25  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/awt/peer/ClasspathFontPeer.java
+       (canDisplay): Take character as integer codepoint.
+       * gnu/java/awt/peer/gtk/GdkFontPeer.java
+       (canDisplay): Take character as integer codepoint.
+       * gnu/java/awt/peer/gtk/GtkComponentPeer.java
+       (postMouseEvent): Use MouseEvent constructor with absolute coordinates
+       to avoid deadlock (over getLocationOnScreen()).
+       * gnu/java/awt/peer/gtk/VolatileImageGraphics.java
+       (getDeviceConfiguration): Fall back to the default configuration
+       if the component is not set.
+       * gnu/java/awt/peer/qt/QtFontMetrics.java
+       (canDisplay): Take character as integer codepoint.
+       * gnu/java/awt/peer/qt/QtFontPeer.java
+       (canDisplay): Take character as integer codepoint.
+       * gnu/java/awt/peer/x/XFontPeer2.java
+       (canDisplay): Take character as integer codepoint.
+       * include/gnu_java_awt_peer_qt_QtFontMetrics.h
+       (canDisplay): Take character as integer codepoint.
+       * java/awt/Font.java
+       (DIALOG): New constant.
+       (DIALOG_INPUT): New constant.
+       (MONOSPACED): New constant.
+       (SANS_SERIF): New constant.
+       (SERIF): New constant.
+       (Font(Font)): New constructor.
+       (canDisplay(char)): Use new canDisplay(int) method.
+       (canDisplay(int)): New method.
+       (hasLayoutAttributes): New method.
+       * java/awt/event/MouseEvent.java
+       (absX,absY): New fields.
+       (MouseEvent): New constructor with absolute coordinates.
+       (getLocationOnScreen): New method.
+       (getXOnScreen): New method.
+       (getYOnScreen): New method.
+       * native/jni/qt-peer/qtfontmetrics.cpp
+       (canDisplay): Take character as integer codepoint.
+
+2007-06-25  Mark Wielaard  <mark@klomp.org>
+
+       * native/jni/native-lib/cpnet.c
+       (cpnet_aton) Moved variable declaration of inet6_addr so it is
+       actually in the scope of its use.
+
+2007-06-25  Dalibor Topic  <robilad@kaffe.org>
+
+       * native/jni/java-net/gnu_java_net_VMPlainSocketImpl.c
+       (THROW_NO_IPV6): New macro.
+       (Java_gnu_java_net_VMPlainSocketImpl_bind6) Conditionally
+       build code if IPv6 facilities are available, otherwise
+       throw an error.
+       (Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface6, 
+       Java_gnu_java_net_VMPlainSocketImpl_join6,
+       Java_gnu_java_net_VMPlainSocketImpl_leave6,
+       Java_gnu_java_net_VMPlainSocketImpl_joinGroup6,
+       Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6)
+       Use THROW_NO_IPV6.
+
+       * native/jni/java-net/java_net_VMInetAddress.c
+       (Java_java_net_VMInetAddress_getHostByAddr,
+       Java_java_net_VMInetAddress_getHostByName,
+       Java_java_net_VMInetAddress_aton) Build IPv6 dependant
+       code conditionally on IPv6 facilities being available.
+       Switched if-else blocks where necessary to allow that.
+
+       * native/jni/java-net/javanet.c
+       (_javanet_get_ip_netaddr) Build IPv6 dependant code conditionally 
+       on IPv6 facilities being available.
+
+       * native/jni/native-lib/cpnet.c
+       (cpnet_getHostByName, cpnet_getHostByAddr) Build IPv6 dependant 
+       code conditionally on IPv6 facilities being available.
+       (cpnet_aton) Moved variable declaration of inet6_addr to the scope
+       of its use. Build IPv6 dependant code conditionally 
+       on IPv6 facilities being available.
+
+       * native/jni/native-lib/cpnet.h (cpnet_newIPV6Address, 
+       cpnet_isIPV6Address, cpnet_IPV6AddressToBytes, 
+       cpnet_bytesToIPV6Address): Make IPv6 dependant utility functions 
+       available conditionally on IPv6 facilities being available.
+
+2007-06-25  Dalibor Topic  <robilad@kaffe.org>
+
+       * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAC): If the user passes an
+       explicit argument to configure, just use it, and don't attempt to
+       run AC_CHECK_PROG. This makes --with-javac="javac -J-Xmx512M" work.
+
+2007-06-25  Dalibor Topic  <robilad@kaffe.org>
+
+       * configure.ac: Check for MSG_WAITALL, since it does not exist on
+       Cygwin.
+
+       * native/jni/java-nio/gnu_java_nio_VMChannel.c 
+       (Java_gnu_java_nio_VMChannel_receive): Define MSG_WAITALL as 0 if 
+       it does not exist.
+
+2007-06-24  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+
+       Fixes bug #31927
+       * native/jni/java-nio/gnu_java_nio_VMChannel.c
+       (Java_gnu_java_nio_VMChannel_available): Retry using fstat if ioctl
+       fails with ENOTTY.
+
+2007-06-22  Tania Bento  <tbento@redhat.com>
+
+       * java/util/Currency.java:  
+       (getInstance (Locale)): Check that the country of the
+       locale given is valid.  If it is not, throw an
+       IllegalArgumentException.
+
+2007-06-22  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/awt/peer/GLightweightPeer.java
+       * gnu/java/awt/peer/gtk/GdkRobotPeer.java
+       * gnu/java/awt/peer/gtk/GtkCompoonentPeer.java
+       * gnu/java/awt/peer/gtk/GtkFramePeer.java
+       * gnu/java/awt/peer/gtk/GtkWindowPeer.java
+       * gnu/java/awt/peer/qt/QtComponentPeer.java
+       * gnu/java/awt/peer/qt/QtFramePeer.java
+       * gnu/java/awt/peer/qt/QtWindowPeer.java
+       * gnu/java/awt/peer/swing/SwingComponentPeer.java
+       * gnu/java/awt/peer/swing/SwingWindowPeer.java
+       * gnu/java/awt/peer/x/XFramePeer.java:
+       Removed @Override annotations from some interface implementation
+       methods to ensure 1.5 compatibility.
+
+2007-06-22  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       * include/jni.h (JNINativeInterface): Renamed to
+       JNINativeInterface_, added const to arguments where necessary.
+       (JNIInvokeInterface): Renamed to JNIInvokeInterface_.
+
+2007-06-22  Roman Kennke  <roman@kennke.org>
+
+       * sun/awt/CausedFocusEvent.java: New class. Needed for compatibility
+       in java.awt.peer.
+       * java/awt/Dialog.java
+       (ModalExclusionType): New enum.
+       (ModalityType): New enum.
+       * java/awt/Toolkit.java
+       (isModalExclusionTypeSupported): New abstract method.
+       (isModalityTypeSupported): New abstract method.
+       * java/awt/peer/ComponentPeer.java
+       (requestFocus): New method.
+       * java/awt/peer/FramePeer.java
+       (getBoundsPrivate): New method.
+       * java/awt/peer/RobotPeer.java
+       (dispose): New method.
+       * java/awt/peer/WindowPeer.java
+       (setAlwaysOnTop): New method.
+       (updateFocusableWindowState): New method.
+       (setModalBlocked): New method.
+       (updateMinimumSize): New method.
+       (updateIconImages): New method.
+       * gnu/java/awt/peer/GLightweightPeer.java
+       (requestFocus): New method.
+       * gnu/java/awt/peer/gtk/GdkRobotPeer.java
+       (dispose): New method.
+       * gnu/java/awt/peer/gtk/GtkComponentPeer.java
+       (requestFocus): New method.
+       * gnu/java/awt/peer/gtk/GtkFramePeer.java
+       (getBoundsPrivate): New method.
+       * gnu/java/awt/peer/gtk/GtkToolkit.java
+       (isModalExclusionTypeSupported): New method.
+       (isModalityTypeSupported): New method.
+       * gnu/java/awt/peer/gtk/GtkWindowPeer.java
+       (updateIconImages): New method.
+       (updateMinimumSize): New method.
+       (setModalBlocked): New method.
+       (updateFocusableWindowState): New method.
+       (setAlwaysOnTop): New method.
+       * gnu/java/awt/peer/headless/HeadlessToolkit.java
+       (isModalExclusionTypeSupported): New method.
+       (isModalityTypeSupported): New method.
+       * gnu/java/awt/peer/qt/QtComponentPeer.java
+       (requestFocus): New method.
+       * gnu/java/awt/peer/qt/QtFramePeer.java
+       (getBoundsPrivate): New method.
+       * gnu/java/awt/peer/qt/QtToolkit.java
+       (isModalExclusionTypeSupported): New method.
+       (isModalityTypeSupported): New method.
+       * gnu/java/awt/peer/qt/QtWindowPeer.java
+       (updateIconImages): New method.
+       (updateMinimumSize): New method.
+       (setModalBlocked): New method.
+       (updateFocusableWindowState): New method.
+       (setAlwaysOnTop): New method.
+       * gnu/java/awt/peer/swing/SwingComponentPeer.java
+       (requestFocus): New method.
+       * gnu/java/awt/peer/swing/SwingToolkit.java
+       (isModalExclusionTypeSupported): New method.
+       (isModalityTypeSupported): New method.
+       * gnu/java/awt/peer/swing/SwingWindowPeer.java
+       (updateIconImages): New method.
+       (updateMinimumSize): New method.
+       (setModalBlocked): New method.
+       (updateFocusableWindowState): New method.
+       (setAlwaysOnTop): New method.
+       * gnu/java/awt/peer/x/XFramePeer.java
+       (getBoundsPrivate): New method.
+       * gnu/java/awt/peer/x/XToolkit.java
+       (isModalExclusionTypeSupported): New method.
+       (isModalityTypeSupported): New method.
+
+2007-06-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * tools/Makefile.am:
+       Compile in com.sun.tools.javah
+       * tools/com/sun/tools/javah/Main.java:
+       Javah Sun-->Classpath wrapper.
+       
+2007-06-21  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       * javax/swing/text/html/parser/AttributeList.java (getValues):
+       Check if values is null.
+
+2007-06-21  Roman Kennke  <roman@kennke.org>
+
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c:
+       Fix some type signatures.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c:
+       Fix intendation.
+
+2007-06-21  Jeroen Frijters  <jeroen@frijters.net>
+
+       * java/io/ObjectStreamClass.java (getClassUID): Return 0L for
+       enums and proxies.
+
+2007-06-21  Jeroen Frijters  <jeroen@frijters.net>
+
+       * java/net/URLClassLoader.java
+       (URLClassLoader(URL[],ClassLoader,URLStreamHandlerFactory):
+       Add factory to cache before calling addURLS.
+       (run): Don't call initCause() on ClassNotFoundException.
+
+2007-06-21  Jeroen Frijters  <jeroen@frijters.net>
+
+       Fixes #32356
+       * java/lang/reflect/Array.java
+       (newInstance(Class,int[])): Call createMultiArray correctly.
+       (createMultiArray): Fixed dimensions processing order.
+
+2007-06-21  Jeroen Frijters  <jeroen@frijters.net>
+
+       * gnu/java/net/loader/URLLoader.java
+       (URLLoader(URLClassLoader,URLStreamHandlerCache,
+       URLStreamHandlerFactory,URL,URL)): Disabiguate CodeSource constructor
+       invocation.
+       * java/awt/AWTKeyStroke.java
+       (LinkedHashMap.removeEldestEntry): Use Map.Entry to fix compile
+       error when compiled against OpenJDK java.util package.
+       * java/awt/AlphaComposite.java
+       (LinkedHashMap.removeEldestEntry): Use Map.Entry to fix compile
+       error when compiled against OpenJDK java.util package.
+
+2007-06-21  Jeroen Frijters  <jeroen@frijters.net>
+
+       * gnu/java/security/Engine.java
+       (getInstance(String,String,Provider,Object[]): Use correctly cased
+       property name.
+
+2007-07-19  Keith Seitz  <keiths@redhat.com>
+
+       * classpath/gnu/classpath/jdwp/value/StringValue.java
+       (StringValue): Tag of StringValue is STRING not OBJECT.
+       (write): String values are written to the wire as tag byte
+       and object ID, not JdwpString.
+
+2007-07-19  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/processor/ClassTypeCommandSet.java
+       (executeInvokeMethod): No need to use ValueFactory any more;
+       MethodResult.getReturnedValue now returns a Value.
+       (executeNewInstance): Double-check that return result is 
+       an ObjectValue; throw JdwpInternalErrorException if it is not.
+       (invokeMethod): Method IDs come from VMMethod, not VMIdManager.
+       Arguments are Values not Objects.
+       Use ValueFactory to create arguments.
+       Pass invocation options to VMVirtualMachine.executeMethod.
+       Don't do any thread suspend/resume work: VMVM.executeMethod
+       will take care of it.
+       * gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java
+       (executeInvokeMethod): Method IDs come from VMMethod, not
+       VMIdManager.
+       Arguments should be Values instead of Objects.
+       Use ValueFactory to create Values.
+       Remove specific option handling and pass options to
+       VMVirtualMachine.executeMethod.
+       Remove thread suspension.
+       Use MethodResult.getReturnedValue to get method's result.
+       * gnu/classpath/jdwp/util/MethodResult.java
+       (returnedValue): Change type to Value.
+       (thrownException): Change type to Throwable.
+       (resType): Remove.
+       (MethodResult): New constructor.
+       (setReturnedValue): Remove.
+       (SetThrownException): Remove.
+       (getResultType): Remove.
+       (setResultType): Remove.
+       * gnu/classpath/jdwp/value/ObjectValue.java (getValue): 
+       New method.
+       * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
+       (executeMethod): Replace "nonVirtual" parameter with more
+       generic "options" parameter.
+       Replace java.lang.reflect.Method parameter with VMMethod.
+       Replace Objet[] parameter with Value[] parameter.
+
+2007-07-10  Dalibor Topic  <robilad@kaffe.org>
+
+       * configure.ac (FOUND_CACAO): Removed.
+
+2007-06-01  Robin Garner  <robin.garner@anu.edu.au>
+
+       Fixes #32162
+       * gnu/xml/dom/DomNode.java: Correct concurrency problem when deep
+         cloning nodes.
+
+2007-05-30  Mark Wielaard  <mark@klomp.org>
+
+       Fixes bug #32030 reported by Steve.Blackburn@anu.edu.au
+       * native/jni/java-nio/gnu_java_nio_VMChannel.c
+       (Java_gnu_java_nio_VMChannel_open): Only set O_TRUNC when
+       CPNIO_APPEND is not, but O_WRONLY is set.
+
+2007-05-25  Robert Schuster  <robertschuster@fsfe.org>
+
+       * gnu/java/awt/peer/x/XGraphics2D.java:
+       (rawDrawLine): Added addition of translation.
+       (rawFillRect): Dito.
+
+2007-05-25  Robert Schuster  <robertschuster@fsfe.org>
+
+       * gnu/java/awt/font/opentype/OpenTypeFont.java:
+       (getGlyphIndex): Call getGlyphCharMap() instead of
+       accessing cmap field directly.
+
+2007-05-24  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+
+       * native/jni/java-nio/gnu_java_nio_VMChannel.c
+       (Java_gnu_java_nio_VMChannel_available): Use fstat or select as an
+       alternative to ioctl.
+       * native/jni/native-lib/cpio.c(cpio_availableBytes): Corrected typo.
+
+2007-05-24  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/math/Fixed.java
+       (trunc): New method.
+
+2007-05-24  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/awt/java2d/AbstractGraphics2D.java
+       (fillShape): Pass rendering hints to scanline converter.
+       * gnu/java/awt/java2d/ScanlineConverter.java
+       (ONE): New constant for the number 1 as fixed point number.
+       (Y_RESOLUTION): New constant for the Y resolution.
+       (doScanline): Handle the Y resolution.
+       (renderShape): Accept rendering hints.
+       (setResolution): Adjust maximum resolution with Y resolution.
+       * gnu/java/awt/java2d/ScanlineCoverage.java
+       (Iterator.handledPixelCoverage): New field.
+       (Iterator.next): Handle single pixel coverage.
+       (Iterator.hasNext): Handle single pixel coverage.
+       (Iterator.reset): Reset single pixel coverage.
+       (Range.toString): New method.
+       (Coverage.pixelCoverage): New field.
+       (add): Include Y (pixel) coverage.
+       (findOrInsert): Reset Y coverage in reused entries.
+
+2007-05-24  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/awt/java2d/ScanlineCoverage.java
+       (Iterator): New class.
+       (Range): New class.
+       (Coverage.covDelta): Made field package private.
+       (Coverage.xPos): Made field package private.
+       (iterator): New field. Stores the iterator that is reused.
+       (ScanlineCoverage): Initialize iterator.
+       (assertion): Removed.
+       (isEmpty): Refined conditions.
+       (iterate): Return Iterator instance.
+       (next): Removed. This is done by the Iterator class now.
+       (test): Removed.
+       * gnu/java/awt/java2d/ScanlineConverter.java
+       (main): Removed.
+       * gnu/java/awt/peer/x/XGraphics2D.java
+       (renderScanline): Adjust to new coverage iterator stuff.
+       * gnu/java/awt/java2d/AbstractGraphics2D.java
+       (renderScanline): Adjust to new coverage iterator stuff.
+
+2007-05-23  Jeroen Frijters  <jeroen@frijters.net>
+
+       * java/util/Arrays.java
+       (copyOfRange(T,int,int)): Fixed to instantiate right array type.
+
+2007-05-22  Robert Schuster  <robertschuster@fsfe.org>
+
+        * gnu/java/awt/peer/x/XEventQueue.java:
+        (handleEvent): Calculate modifier value for mouse presse
+        and release events, clip button values.
+        (buttonToModifier): New method.
+        * gnu/java/awt/peer/x/KeyboardMapping.java:
+        (mapModifiers): Added cases for alt gr and the meta key.
+
+2007-05-22  Robert Schuster  <robertschuster@fsfe.org>
+
+        * gnu/java/awt/peer/x/XEventQueue.java:
+        (handleEvent): Use Input.event_window_id for 
+        key presses/releases.
+
+2007-05-22  Robert Schuster  <robertschuster@fsfe.org>
+
+        * gnu/java/awt/peer/x/XEventQueue.java:
+        (handleEvent): Use Input.event_window_id instead of
+        Input.child_window_id for mouse presses/releases &
+        movement.
+
+2007-05-22  Roman Kennke  <roman@kennke.org>
+
+        * gnu/java/awt/peer/x/XFontPeer2.java
+        (XFontMetrics.charWidth): Use cached Point2D instance.
+        * gnu/java/awt/peer/x/XGraphics2D.java
+        (renderScanline): New method. Renders a scanline according to
+        the coverage information.
+        (setPaint): Call super, so that the state is updated correctly.
+
+2007-05-19  Andreas Tobler  <a.tobler@schweiz.org>
+
+       PR libgcj/31659
+       * m4/ax_create_stdint_h.m4: Apply patch from PR31659.
+
+2007-05-18  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * autogen.sh (have_libtool): Update comments for Darwin.
+
+2007-05-18  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/awt/java2d/AbstractGraphics2D.java
+       (fillScanlineAA): Removed. Replaced by renderScanline().
+       (fillScanline): Dito.
+       (renderScanline): New method. Renders a scanline according to
+       the coverage information from the scanline converter.
+       * gnu/java/awt/java2d/Pixelizer.java: New interface. Describes
+       the targets of the rasterizer.
+       * gnu/java/awt/java2d/ScanlineConverter.java
+       (alphaRes): Removed.
+       (ONE): Removed.
+       (scanlineCoverage): New field. Manages the coverage information.
+       (scanlinesPerPixel): Removed.
+       (scanlineXCov): Removed.
+       (scanlineYCov): Removed.
+       (slPix0): Removed.
+       (ScanlineConverter): Initialize scanline coverage data structure.
+       (clear): Also clear the scanline coverage.
+       (doScanline): Work with Pixelizer objects.
+       Use the ScanlineCoverage datastructure.
+       (main): New method. Performs some tests.
+       (renderShape): Work with pixelizer objects rather than directly
+       on AbstractGraphic2D. Adjust to use ScanlineCoverage datastructure.
+       (setResolution): Set resolution on ScanlineCoverage data too.
+       * gnu/java/awt/java2d/ScanlineCoverage.java: New class. Stores
+       and manages scanline coverage information.
+
+2007-05-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/rmi/MarshelledObject.java,
+       * java/rmi/activation/Activatable.java,
+       * java/rmi/activation/ActivationDesc.java,
+       * java/rmi/activation/ActivationGroup.java,
+       * java/rmi/activation/ActivationGroupDesc.java,
+       * java/rmi/activation/ActivationInstantiator.java,
+       * java/rmi/activation/ActivationMonitor.java,
+       * java/rmi/activation/Activator.java:
+       Genericized.
+
+2007-05-13  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * configure.ac:
+       Check if nsl library is needed for inet_pton.
+       * tools/gappletviewer.in,
+       * tools/gjar.in,
+       * tools/gjarsigner.in,
+       * tools/gjavah.in,
+       * tools/gkeytool.in,
+       * tools/gnative2ascii.in,
+       * tools/gorbd.in,
+       * tools/grmic.in,
+       * tools/grmid.in,
+       * tools/grmiregistry.in,
+       * tools/gserialver.in,
+       * tools/gtnameserv.in:
+       Remove spaces around '=' in setting of datarootdir.
+       
+2007-05-11  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
+       (executeMethods): Remove cast to ClassReferenceTypeId.
+
+2007-05-11  Jeroen Frijters  <jeroen@frijters.net>
+
+       * java/lang/Float.java
+       (toString(float)): Call VMFloat instead of VMDouble.
+       (parseFloat): Call VMFloat. Fixed comment.
+       * vm/reference/java/lang/VMFloat.java
+       (toString, parseFloat): New methods.
+       NEWS: added note about these changes.
+
+2007-05-08  Kyle Galloway  <kgallowa@redhat.com>
+
+       * vm/reference/VMFrame.java (<init>): Add a parameter for the "this"
+       pointer of the frame.
+
+2007-05-08  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/awt/peer/x/XFontPeer.java: Removed.
+       * gnu/java/awt/peer/x/XGraphics.java: Removed
+       * gnu/java/awt/peer/x/XFontPeer2.java
+       (XLineMetrics.getDescent): Use cached idendity transform.
+       (XFontMetrics.cachedPoint): New field. Caches a Point2D instance
+       for reuse.
+       (XFontMetrics.getAscent): Use cached idendity transform.
+       (XFontMetrics.getDescent): Use cached idendity transform.
+       (XFontMetrics.getHeight): Use cached idendity transform.
+       (XFontMetrics.charWidth): Map character to glyph index first.
+       (XFontMetrics.stringWidth): Use cached idendity transform.
+       (IDENDITY): New static field. A reused AffineTransform instance.
+
+2007-05-08  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/awt/font/FontDelegate.java
+       (getGlyphIndex): New method. Maps characters to their
+       glyph index in the font.
+       M gnu/java/awt/font/opentype/OpenTypeFont.java
+       (getGlyphIndex): New method. Maps characters to their
+       glyph index in the font.
+
+2007-05-08  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/awt/java2d/AbstractGraphics2D.java
+       (AA_SAMPLING): Removed.
+       (alpha): Removed field.
+       (edgeTable): Removed field.
+       (fillScanlineAA): Removed obsolete method.
+       (drawPolyline): Implemented by using a GeneralPath.
+       (drawPolygon): Reset the cached polygon.
+       (fillPolygon): Reset the cached polygon.
+       (fillShape): Default to antialias on for text.
+       (rawDrawLine): Use ShapeCache.
+       (rawDrawRect): Use ShapeCache.
+       (rawFillRect): Use ShapeCache.
+       (fillScanlineAA): New method for antialiased rendering. 
+       * gnu/java/awt/java2d/ScanlineConverter.java
+       (scanlinesPerPixel): New field.
+       (minX,maxX): New fields.
+       (scanlineYCov,scanlineXCov): New fields.
+       (slPix0): New field.
+       (alphaRes): New field.
+       (renderShape): Add antialiasing functionality.
+       (doScanline): Add antialiasing functionality.
+       (setResolution): Add antialiasing functionality.
+       (addShape): Determine span in X direction.
+       (fit): Fix thinko.
+       * gnu/java/awt/java2d/ShapeCache.java
+       (polyline): New field for caching polylines.
+
+2007-05-08  Roman Kennke  <roman@kennke.org>
+
+       * examples/gnu/classpath/examples/awt/HintingDemo.java
+       Add support for showing the original vs the hinted glyphs plus
+       a grid.
+
+2007-05-08  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * lib/Makefile.am: Print property files as well.
+
+2007-05-08  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * native/jni/gtk-peer/gtkpeer.c:
+       Added support for 64-bit architectures.
+       
+2007-05-04  Chris Burdess  <dog@gnu.org>
+
+       Fixes PR #31814
+       * gnu/xml/dom/DomDocument.java,
+         gnu/xml/dom/ls/SAXEventSink.java: Don't default attribute when mode is
+         #IMPLIED and value is not specified.
+       * gnu/xml/stream/XMLParser.java: Add debugging info.
+
+2007-05-03  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/Jdwp.java (notify): Rewrite to call
+       new array-based method.
+       (notify): New function.
+       (sendEvent): Rewrite to use sendEvents.
+       (sendEvents): New method.
+       * gnu/classpath/jdwp/event/Event.java (toPacket): Make static.
+       Change parameters to use arrays for events and requests.
+       Add suspendPolicy parameter.
+       Move per-event data transformation to...
+       (_toData): ... here.
+       * gnu/classpath/jdwp/transport/JdwpConnection.java
+       (sendEvent): Renamed to ...
+       (sendEvents): ... this.
+       Change parameters to use arrays for events and requests.
+       Add suspendPolicy parameter.
+
+2007-05-03  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+       https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=237304
+       * javax/swing/text/html/HTMLEditorKit.java
+       (getStyleSheet): Throw RuntimeException when style loading fails.
+       * lib/Makefile.am: Treat css files as a property files.
+       * javax/swing/text/html/default.css: Move to...
+       * resource/javax/swing/text/html/default.css: New file.
+
+2007-05-03  Andrew Haley  <aph@redhat.com>
+
+       * gnu/javax/management/Server.java (Server): Record the delegate.
+       (registerMBean): Notify the delegate.
+       (unregisterMBean): Likewise.
+       (notify): New method.
+
+2007-04-30  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/awt/peer/x/XLightweightPeer.java: Removed.
+       * gnu/java/awt/peer/x/XEventPump.java
+       (handleEvent): Improved handling of event ids to window mapping.
+       * gnu/java/awt/peer/x/XFontPeer2.java:
+       Load font.properties at startup.
+       (XLineMetrics.glyphVector): New field.
+       (XLineMetrics.XLineMetrics): Get glyphVector from font delegate.
+       (XLineMetrics.getHeight): Implemented using glyph vector.
+       (XLineMetrics.getLeading): Implemented.
+       (XFontPeer2): Change hardwired font to something more common.
+       (encodeFont): New methods, encodes a font to the font.properties
+       format.
+       (validName): New method. Checks and returns a valid font name.
+       * gnu/java/awt/peer/x/XGraphics2D.java
+       (foreground): New field.
+       (rawSetPixel): Removed.
+       (rawDrawLine): Draw a segment.
+       (rawSetForeground): Removed.
+       (fillScanline): New method.
+       (fillScanlineAA): New method.
+       (setPaint): Set the foreground color.
+       (fillShape): Synchronize super behaviour.
+       (rawDrawImage): Optimize XImage.
+       * gnu/java/awt/peer/x/XGraphicsDevice.java
+       (getDisplay): Improve creation of socket.
+       (createLocalSocket): New helper method to create a local socket.
+       * gnu/java/awt/peer/x/XImage.java
+       (getGraphics): Return an XGraphics2D.
+       * gnu/java/awt/peer/x/XToolkit.java
+       (getClasspathFontPeer): Use XFontPeer2.
+       (createComponent): Removed.
+       * gnu/java/awt/peer/x/XWindowPeer.java
+       (getGraphics): Return an XGraphics2D.
+       (show): Clear the window.
+       (getFontMetrics): Use XFontPeer2.
+
+2007-04-30  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/awt/peer/swing/SwingButtonPeer.java
+       (SwingButton.handleFocusEvent): New method. Handles focus events.
+       (SwingButton.requestFocus): Overridden to avoid loop into peer
+       and back.
+       (SwingButton.requestFocus(boolean)): Overridden to avoid loop
+       into peer and back.
+       * gnu/java/awt/peer/swing/SwingCheckboxPeer.java: New class.
+       Implements CheckboxPeer for Swing toolkit.
+       * gnu/java/awt/peer/swing/SwingComponent.java
+       (handleFocusEvent): New method. Handles focus events.
+       * gnu/java/awt/peer/swing/SwingComponentPeer.java
+       (getMinimumSize): Delegate to minimumSize().
+       (getPreferredSize): Delegate to preferredSize().
+       (handleEvent): Only paint when component is showing. Coalesce
+       paint event in any case. Reformat. Handle focus events.
+       (requestFocus): Post FOCUS_GAINED event.
+       (handleFocusEvent): New method. Delegate to SwingComponent
+       object.
+       * gnu/java/awt/peer/swing/SwingContainerPeer.java
+       (addHeavyweightDescendent): Make this protected.
+       (removeHeavyweightDescendent): Make this protected.
+       (getHeavyweightDescendents): New method. Returns all registered
+       heavyweights.
+       (handleKeyEvent): Delegate to peer's handleEvent() method.
+       * gnu/java/awt/peer/swing/SwingLabelPeer.java
+       (SwingLabel.handleFocusEvent): New method.
+       * gnu/java/awt/peer/swing/SwingListPeer.java
+       (SwingList.handleFocusEvent): New method.
+       * gnu/java/awt/peer/swing/SwingPanelPeer.java
+       Fix typo and import.
+       * gnu/java/awt/peer/swing/SwingTextAreaPeer.java
+       Wrap up text area in viewport.
+       * gnu/java/awt/peer/swing/SwingTextFieldPeer.java
+       (SwingTextField.handleFocusEvent): New method.
+       (SwingTextField.requestFocus): New method.
+       (SwingTextField.requestFocus(boolean)): New method.
+
+2007-04-27  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/event/EventManager.java
+       (getEventRequest): Rename to...
+       (getEventRequests): ...this.
+       Change return type to array of requests.
+       Construct a list of all matching events and return
+       them all.
+       * gnu/classpath/jdwp/Jdwp.java (notify): Use getEventRequests
+       and send event notifications for all matching requests.
+
+2007-04-27  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/event/filters/LocationOnlyFilter.java
+       (matches): Use Location.equals to determine equality.
+       * vm/reference/gnu/classpath/jdwp/VMMethod.java (equals): 
+       New method.
+       * gnu/classpath/jdwp/util/Location.java (equals):
+       New method.     
+
+2007-04-27  Roman Kennke  <roman@kennke.org>
+
+       * java/nio/CharViewBufferImpl.java
+       (slice): Fixed offset for slice buffer.
+       * java/nio/DoubleViewBufferImpl.java
+       (slice): Fixed offset for slice buffer.
+       * java/nio/FloatViewBufferImpl.java
+       (slice): Fixed offset for slice buffer.
+       * java/nio/IntViewBufferImpl.java
+       (slice): Fixed offset for slice buffer.
+       * java/nio/LongViewBufferImpl.java
+       (slice): Fixed offset for slice buffer.
+       * java/nio/ShortViewBufferImpl.java
+       (slice): Fixed offset for slice buffer.
+
+2007-04-25  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/awt/peer/gtk/GdkFontPeer.java,
+       * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java,
+       * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
+       * gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java,
+       * gnu/java/awt/peer/gtk/GtkGenericPeer.java,
+       * gnu/java/awt/peer/gtk/GtkToolkit.java:
+       Added fields to hold the native state. Added class initialization
+       things to fetch the JNI field IDs.
+       * include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h,
+       * include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h,
+       * include/gnu_java_awt_peer_gtk_GtkGenericPeer.h,
+       * include/gnu_java_awt_peer_gtk_GtkToolkit.h:
+       Added / changed class init methods for field ID initialization.
+       * native/jni/classpath/Makefile.am: Removed native_state stuff.
+       * native/jni/classpath/native_state.c,
+       * native/jni/classpath/native_state.h: Removed.
+       * native/jni/gconf-peer/Makefile.am: Removed native_state stuff.
+       * native/jni/gtk-peer/Makefile.am: Removed native_state stuff.
+       * native/jni/gtk-peer/cairographics2d.h,
+       * native/jni/gtk-peer/gdkdisplay.h,
+       * native/jni/gtk-peer/gdkfont.h,
+       * native/jni/gtk-peer/GtkDragSourceContextPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c,
+       * native/jni/gtk-peer/gtk_jawt.c:
+       Removed native state stuff and replaced that with an approach
+       to store the native state of an object directly in that object.
+       * native/jni/gtk-peer/gtkpeer.c: New file. Implements the new native
+       state management.
+       * native/jni/gtk-peer/gtkpeer.h: Remove NSA stuff and added
+       prototypes for new native state handling.
+
+2007-04-23  Mark Wielaard  <mark@klomp.org>
+
+       * doc/www.gnu.org/newsitems.txt: Add 0.95.
+       * doc/www.gnu.org/downloads/downloads.wml: Likewise.
+       * doc/www.gnu.org/announce/20070423.wml: New file.
+
+2007-04-23  Mark Wielaard  <mark@klomp.org>
+
+       * NEWS: Add new 0.95 features.
+
+2007-04-23  Jeroen Frijters  <jeroen@frijters.net>
+
+       PR classpath/31646:
+       * java/util/Arrays.java (qsort): Corrected initial median calculation.
+
+2007-04-22  Dalibor Topic  <robilad@kaffe.org>
+
+       * Makefile.am (ACLOCAL_AMFLAGS): Add contents of env var 
+       LOCAL_AUTORECONF_AMFLAGS to allow for systems where the user
+       has a mix of system & hacked-up autotools.
+
+2007-04-22  Dalibor Topic  <robilad@kaffe.org>
+
+       * autogen.sh: Removed unnecessary -I m4 flag.
+
+2007-04-19  Casey Marshall  <csm@gnu.org>
+
+       PR classpath/31626:
+       * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java
+       (createSocket): New method.
+
+2007-04-19  Dalibor Topic  <robilad@kaffe.org>
+
+       * tools/gappletviewer.in,
+       tools/gjar.in,
+       tools/gjarsigner.in,
+       tools/gjavah.in,
+       tools/gkeytool.in,
+       tools/gnative2ascii.in,
+       tools/gorbd.in,
+       tools/grmic.in,
+       tools/grmid.in,
+       tools/grmiregistry.in,
+       tools/gserialver.in,
+       tools/gtnameserv.in: Set datarootdir to fix a warning from 
+       configure.
+
+2007-04-19  Dalibor Topic  <robilad@kaffe.org>
+
+       * INSTALL: Removed file generated by autogen.sh.
+
+       * .cvsignore: Added INSTALL.
+
+2007-04-19  Dalibor Topic  <robilad@kaffe.org>
+
+       * INSTALL: Replaced by generic install file.
+
+       * autogen.sh: Removed redundant and no longer necessary 
+       sections. Use autoreconf.
+
+2007-04-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * m4/acinclude.m4
+       (CLASSPATH_FIND_JAVAC): Allow detected JAVAC.
+
+2007-04-19  Dalibor Topic  <robilad@kaffe.org>
+
+       * lib/Makefile.am (propertyfiles, cssfiles, metafiles, 
+       iconfiles) Removed variables, inlined them into resource
+       target to avoid use of shell construct and fix portability
+       warning from automake 1.10.
+
+2007-04-18  Tom Tromey  <tromey@redhat.com>
+
+       * tools/gnu/classpath/tools/javah/MethodHelper.java (print):
+       Changed arguments.  Directly print method name.
+       * tools/gnu/classpath/tools/javah/ClassWrapper.java
+       (methodNameMap): New field.
+       (makeVtable): Initialize it.
+       (printMethods): Compute name for bridge targets.
+
+2007-04-18  Andrew Haley  <aph@redhat.com>
+
+       * gnu/java/rmi/server/UnicastConnectionManager.java
+       (UnicastConnectionManager(int port, RMIServerSocketFactory)):
+       Listen on "localhost", not localhost.
+
+2007-04-18  Dalibor Topic  <robilad@kaffe.org>
+
+       * include/GtkDragSourceContextPeer.h: Removed, renamed to ..
+
+       * include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h:
+       New file.
+
+       * native/jni/gtk-peer/GtkDragSourceContextPeer.c: Include 
+       gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h.
+
+       * include/Makefile.am (GTKPEER_H_FILES): Renamed
+       GtkDragSourceContextPeer.h to 
+       gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h
+       per current convention. Use portable construct to create
+       gtk and libxmlj peer headers. Depend on the java source code, 
+       rather then the class files in order to avoid spurious 
+       regeneration.
+
+2007-04-18  Dalibor Topic  <robilad@kaffe.org>
+
+       * include/Makefile.am: Use portable construct to create
+       qt peer headers. Depend on the java source code, 
+       rather then the class files in order to avoid spurious 
+       regeneration.
+
+2007-04-18  Dalibor Topic  <robilad@kaffe.org>
+
+       * include/Makefile.am: Use portable construct to create
+       alsa and dssi peer headers. Depend on the java source code, 
+       rather then the class files in order to avoid spurious 
+       regeneration.
+       
+2007-04-18  Dalibor Topic  <robilad@kaffe.org>
+
+       * include/Makefile.am: Use portable construct to create
+       gconf peer header. Depend on the java source code, rather
+       the class file to avoid spurious regeneration.
+
+2007-04-18  Dalibor Topic  <robilad@kaffe.org>
+
+       * include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h:
+       Removed empty header file.
+
+       * include/Makefile.am (QTPEER_H_FILES):
+       Removed gnu_java_awt_peer_qt_QtGraphicsEnvironment.h.
+
+2007-04-18  Dalibor Topic  <robilad@kaffe.org>
+
+       * native/jni/xmlj/xmlj_xpath.c: Don't include 
+       gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h.
+
+       * include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h:
+       Removed empty header file.
+
+       * include/Makefile.am (XMLJ_H_FILES): Removed
+       gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h.
+
+2007-04-18  Dalibor Topic  <robilad@kaffe.org>
+
+       * include/gnu_java_awt_peer_qt_QtContainerPeer.h: Removed
+       empty header file.
+
+       * include/Makefile.am (QTPEER_H_FILES): Removed 
+       gnu_java_awt_peer_qt_QtContainerPeer.h.
+
+2007-04-17  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * native/jni/java-net/local.c:
+       Fix import of FIONREAD.
+       * native/jni/java-nio/gnu_java_nio_VMChannel.c,
+       * native/jni/native-lib/cpnet.c:
+       Likewise.
+       
+2007-04-17  Dalibor Topic  <robilad@kaffe.org>
+
+       * m4/acinclude.m4 (CLASSPATH_CHECK_JAVAH):
+       Use AC_CHECK_PROGS and AC_MSG_ERROR. Check for
+       gjavah, gcjh-wrapper-4.1 and gcjh-4.1. Error out
+       when no javah implementation can be found.
+
+2007-04-17  Dalibor Topic  <robilad@kaffe.org>
+
+       * configure.ac (CLASSPATH_WITH_JAVAH): Only check if
+       the JNI headers need to be regenerated.
+
+       * m4/acinclude.m4 (USER_SPECIFIED_JAVAH): Removed unused
+       conditional.
+
+2007-04-17  Dalibor Topic  <robilad@kaffe.org>
+
+       * lib/Makefile.am (JAVAH): Removed unused variable.
+
+2007-04-17  Casey Marshall  <csm@gnu.org>
+
+       PR classpath/31302:
+       * gnu/javax/net/ssl/provider/SSLSocketImpl.java (SSLSocketImpl):
+       Always make a new socket.
+       (bind, connect, getInetAddress, getLocalAddress, getPort,
+       getLocalPort, getRemoteSocketAddress, getLocalSocketAddress,
+       setTcpNoDelay, getTcpNoDelay, setSoLinger, getSoLinger,
+       setOOBInline, getOOBInline, setSoTimeout, getSoTimeout,
+       setSendBufferSize, getSendBufferSize, setReceiveBufferSize,
+       getReceiveBufferSize, setKeepAlive, getKeepAlive, setTrafficClass,
+       getTrafficClass, setReuseAddress, getReuseAddress, close,
+       shutdownInput, shutdownOutput, isConnected, isBound, isClosed,
+       isInputShutdown, isOutputShutdown): Always use
+       'underlyingSocket'.
+
+2007-04-16  Dalibor Topic  <robilad@kaffe.org>
+
+       * configure.ac (AM_PROG_CC_C_O): Added to fix automake 1.10
+       warning.
+
+2007-04-16  Dalibor Topic  <robilad@kaffe.org>
+
+       * native/plugin/Makefile.am (libgcjwebplugin_la_LDFLAGS):
+       Added AM_LDFLAGS for automake 1.10.
+
+2007-04-16  Tom Tromey  <tromey@redhat.com>
+
+       https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=236614
+       * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java
+       (createSocket): Change order of delegation.
+
+2007-04-16  Andrew Haley  <aph@redhat.com>
+
+       * java/io/ObjectInputStream.java: (parseContent):  Call (String,
+       Object) version of dumpElementln.
+       (dumpElementln(String, Object)): New method.
+       * java/io/ObjectOutputStream.java (writeObject): Call (String,
+       Object) version of dumpElementln.
+       (dumpElementln(String, Object)): New method.
+
+2007-04-16  Mark Wielaard  <mark@klomp.org>
+
+       Fixes bug #31590
+       * java/net/URI.java (parseServerAuthority): Allow empty portStr.
+
+2007-04-16  Andrew Haley  <aph@redhat.com>
+
+       * org/omg/IOP/TaggedComponentHelper.java (read): Use
+       read_octet_array(), not read().
+       (write): Use write_octet_array(), not write().
+
+       * org/omg/PortableServer/Servant.java (_get_delegate): Throw if no
+       delegate has been set.
+
+2007-04-16  Chris Burdess  <dog@gnu.org>
+
+       * gnu/xml/stream/XMLParser.java: Work around a problem with incorrectly
+         formatted file URLs.
+
+2007-04-15  Dalibor Topic  <robilad@kaffe.org>
+
+       * native/jni/java-lang/Makefile.am (libjavalang_la_LIBADD):
+       Fix portability warnings from automake 1.10.
+
+2007-04-15  Dalibor Topic  <robilad@kaffe.org>
+
+       * Makefile.am (EXTRA_DIST): Add ChangeLog-2006.
+
+2007-04-15  Dalibor Topic  <robilad@kaffe.org>
+
+       * native/target/.cvsignore: Removed.
+
+2007-04-15  Dalibor Topic  <robilad@kaffe.org>
+
+       * doc/Makefile.am: Fix portability warnings from
+       automake 1.10.
+
+2007-04-15  Roman Kennke  <roman@kennke.org>
+
+       * native/target/Linux/.cvsignore,
+       * native/target/generic/.cvsignore: Removed.
+
+2007-04-15  Dalibor Topic  <robilad@kaffe.org>
+
+       * depcomp, install-sh, missing, mkinstalldirs,
+       doc/texinfo.tex: Removed files generated by autogen.sh.
+
+       * .cvsignore: Ignore generated files depcomp, install-sh, 
+       missing, mkinstalldirs.
+
+       * doc/.cvsignore: Ignore generated file doc/texinfo.tex.
+
+2007-04-15  Dalibor Topic  <robilad@kaffe.org>
+
+       * doc/cp-hacking.texinfo: Updated with information from
+       INSTALL file. Removed duplicate and outdated information.
+       Updated compiler information. Fixed versioning information
+       where entries diverged. Turned command, option, file and
+       URL strings into proper texinfo elements.
+
+2007-04-15  Dalibor Topic  <robilad@kaffe.org>
+
+       * configure.ac: Added support for Iceape libraries as 
+       a substitute for Mozilla for Debian.
+
+2007-04-12  Roman Kennke  <roman@kennke.org>
+
+       * java/nio/Buffer.java
+       (array): New abstract method.
+       (hasArray): New abstract method.
+       (arrayOffset): New abstract method.
+       (isDirect): New abstract method.
+
+2007-04-12  Roman Kennke  <roman@kennke.org>
+
+       * java/nio/CharBuffer.java
+       (wrap(CharSequence,int,int)): Reimplemented using specialized
+       subclass.
+       * java/nio/CharSequenceBuffer.java: New class. Implements char
+       buffers that wrap CharSequences.
+
+2007-04-12  Francis Kung  <fkung@redhat.com>
+
+       PR 23887
+       * gnu/java/awt/peer/gtk/CairoGraphics2D.java
+       (drawGlyphVector): Check for transforms before using optimized path.
+       * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
+       (FreetypeGlyphVector(FreetypeGlyphVector)): Initialize glyphTransforms array
+       to null and check for nulls in copied array.
+       (hasTransforms): New method.
+       (performDefaultLayout): Check for identity transform.
+       (setGlyphTransform): Check for equality before making changes.
+
+2007-04-12  Francis Kung  <fkung@redhat.com>
+
+       PR 23887
+       * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
+       (getGlyphLogicalBounds): Fix number of coordinates in transform call.
+       (performDefaultLayout): Respect transformation in font attributes.
+       * javax/swing/plaf/basic/BasicProgressBarUI.java
+       (getStringPlacement): Handle vertical orientations.
+       (paintString): Space vertical text properly.
+
+2007-04-12  Francis Kung  <fkung@redhat.com>
+
+       PR 31539
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
+       (ft2_map): New static variable.
+       (Java_gnu_java_awt_peer_gtk_GdkFontPeer_initStaticState): Set up ft2_map.
+       (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Use cached ft2_map.
+
+2007-04-12  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
+       (clipboard_get_func): Call DeleteLocalRef.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
+       (clipboard_targets_received): Likewise.
+       (clipboard_uris_received): Likewise.
+
+2007-04-12  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       * LICENSE: Added m4/ax_func_which_gethostbyname_r.m4 license.
+       * configure.ac: Added AX_FUNC_WHICH_GETHOSTBYNAME_R check.
+       * m4/ax_func_which_gethostbyname_r.m4: New file.
+       * native/jni/native-lib/cpnet.c (cpnet_getHostByName): Check for
+       different number of arguments of gethostbyname_r.
+
+2007-04-12  Mark Wielaard  <mark@klomp.org>
+
+       * gnu/java/awt/peer/ClasspathFontPeer.java (LRUCache): New static
+       inner class.
+       (transCache): New static LRUChache field.
+       (copyTransformToAttrs): Check whether a TransformAttribute already
+       exists in the transCache for the given AffineTransform.
+
+2007-04-12  Mark Wielaard  <mark@klomp.org>
+
+       * configure.ac (COMPILE_GTK_PEER): Add check for cairo >= 1.1.8.
+
+2007-04-11  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       * native/jni/java-nio/javanio.c: Include fcntl.h instead of
+       sys/fcntl.h.
+
+2007-04-11  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       * native/jni/native-lib/cpproc.c (cpproc_forkAndExec): Fixed
+       warning on some compilers, e.g. MIPSpro.
+
+2007-04-11  Francis Kung  <fkung@redhat.com>
+
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
+       (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphs): Avoid unneeded
+       object reference.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
+       (Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics): Unlock font.
+       (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Remove redundant checks.
+
+2007-04-11  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       * configure.ac: Added AC_C_INLINE.
+
+2007-04-10  Mark Wielaard  <mark@klomp.org>
+
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
+       (Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile):
+       Destroy surface after it is used to create a cairo context.
+
+2007-04-09  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/ObjectName.java:
+       (parse(String)): Catch multiple wildcards,
+       initialise with an empty string (so null isn't
+       appended), and emit comma even when wildcard
+       ends the list.
+       (checkComponents()): Catch newlines.
+       (quote(String)): Handle newlines and quotes
+       correctly.
+
+2007-04-09  Francis Kung  <fkung@redhat.com>
+
+       PR 31311
+       * gnu/java/awt/peer/gtk/ComponentGraphics.java
+       (dispose): Removed method.
+       (disposeSurface): Removed method.
+       * gnu_java_awt_peer_gtk_ComponentGraphics.h: Regenerated.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
+       (Java_gnu_java_awt_peer_gtk_ComponentGraphics_disposeSurface): Removed.
+       (Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState): Destroy surface
+       after it is used to create a cairo context.
+
+2007-04-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/ObjectName.java:
+       (propertyValuePattern): New cache variable.
+       (parse(String)): Record in propertyListPattern
+       not propertyPattern and set propertyValuePattern.
+       (isPropertyPattern()): Semantics altered to be the
+       OR of isPropertyListPattern() and isPropertyValuePattern().
+       (isPropertyListPattern()): Implemented.
+       (isPropertyValuePattern()): Implemented.
+       (isPropertyValuePattern(String)): Implemented.
+       
+2007-04-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/ObjectName.java:
+       (parse(String)): Fix result of getKeyPropertyListString().
+       
+2007-04-07  Mark Wielaard  <mark@klomp.org>
+
+       * resource/META-INF/services/javax.xml.parsers.DocumentBuilderFactor,
+       resource/META-INF/services/javax.xml.parsers.SAXParserFactory,
+       resource/META-INF/services/javax.xml.parsers.TransformerFactory,
+       resource/META-INF/services/org.relaxng.datatype.DatatypeLibraryFactory,
+       resource/META-INF/services/org.w3c.dom.DOMImplementationSourceList,
+       resource/META-INF/services/org.xml.sax.driver: Removed.
+
+2007-04-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/ObjectName.java:
+       (checkComponents()): Separate value and
+       key illegal characters to allow value wildcards.
+       
+2007-04-07  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/ObjectName.java
+       (parse(String)): Fix parsing where the wildcard
+       is juxtaposed between other pairs.
+       
+2007-04-06  Mark Wielaard  <mark@klomp.org>
+
+       * configure.ac (VERSION): Set to 0.96-pre.
+
+2007-04-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/MBeanAttributeInfo.java:
+       (serialVersionUID):  Added.
+       * javax/management/MBeanFeatureInfo.java:
+       (writeObject(ObjectOutputStream)): Added for
+       later 1.6 support.
+       * javax/management/Notification.java:
+       (serialVersionUID): Added.
+       (Notification(String,Object,long,long)): Make
+       default message the empty string not null.
+       (Notification(String,Object,long,long,String)):
+       Set source explicitly.
+       (writeObject(ObjectOutputStream)): Added to match
+       Sun.
+       
+2007-04-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/util/Hashtable.java:
+       (putAllInternal(Map)): Remove redundant semi-colon.
+       
+2007-04-06  Mark Wielaard  <mark@klomp.org>
+
+       * lib/mkcollections.pl.in: Add externalclasses.
+       * java/util/Collections.java: Unroll enhanced for loops.
+       * java/util/HashMap.java: Likewise.
+       * java/util/Hashtable.java: Likewise.
+       * java/util/TreeMap.java: Likewise.
+
+2007-04-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/javax/management/Translator.java:
+       (getTypeName(type)): Move type name creation to its own method.
+       * javax/management/ObjectName.java:
+       (WILDCARD): Added.
+       
+2007-04-04  Andrew Haley  <aph@redhat.com>
+
+       * javax/management/ObjectName.java:
+       (serialVersionUID): Declare.
+       Make all fields transient.
+       (parse): Break out from constructor.
+       (writeObject, readObject): New methods.
+       
+2007-04-05  Francis Kung  <fkung@redhat.com>
+
+       * include/Makefile.am: Remove old entry.
+
+2007-04-05  Francis Kung  <fkung@redhat.com>
+
+       * gnu/java/awt/peer/gtk/GtkToolkit.java
+       (createDragGestureRecognizer): Remove failing subClass call.
+
+2007-04-05  Gary Benson  <gbenson@redhat.com>
+
+       * java/util/GregorianCalendar.java
+       (computeFields): Fix WEEK_OF_MONTH calculation.
+
+2007-04-05  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       PR classpath/22800:
+       * native/jni/java-lang/java_lang_VMDouble.c (doubleToLongBits)
+       (doubleToRawLongBits, longBitsToDouble): Swap the byte
+       ordering for little-endian arms without VFP.
+
+2007-04-05  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       * native/jni/java-net/java_net_VMNetworkInterface.c
+       [HAVE_IFADDRS_H && HAVE_GETIFADDRS] (free_netif_list): Added
+       #ifdef.
+       (getVMInterfaces): Added UNUSED argument attribute.
+
+2007-04-05  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+
+       * native/jni/java-nio/gnu_java_nio_charset_iconv_IconvDecoder.c,
+       native/jni/java-nio/gnu_java_nio_charset_iconv_IconvEncoder.c
+       [HAVE_ICONV] (createRawData, getData, infid, outfid): Added
+       #ifdef.
+       (openIconv): Added UNUSED argument attribute, so we can build with
+       -Werror.
+       (decode): Likewise.
+       (closeIconv): Likewise.
+
+2007-04-05  Mark Wielaard  <mark@klomp.org>
+
+       * autogen.sh: Recognize automake 1.10.
+       * configure.ac (AM_INIT_AUTOMAKE): Add -Wno-portability.
+       * native/jawt/Makefile.am (libjawt_la_LDFLAGS): Add AM_LDFLAGS.
+       * native/jni/gconf-peer/Makefile.am (libgconfpeer_la_LDFLAGS): Likewise.
+       * native/jni/gtk-peer/Makefile.am (libgtkpeer_la_LDFLAGS): Likewise.
+       * native/jni/midi-alsa/Makefile.am (libgjsmalsa_la_LDFLAGS): Likewise.
+       * native/jni/midi-dssi/Makefile.am (libgjsmdssi_la_LDFLAGS): Likewise.
+       * native/jni/qt-peer/Makefile.am (libqtpeer_la_LDFLAGS): Likewise.
+
+2007-04-04  Mark Wielaard  <mark@klomp.org>
+
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
+       (cp_gtk_image_get_pixbuf): Return NULL when pointer is NULL.
+       * gnu/java/awt/peer/gtk/GtkImage.java (setImage): Set loaded and
+       call deliver() after pixels have been set.
+       * gnu/java/awt/peer/gtk/GtkFramePeer.java (setIconImage): Only
+       set icon when image has been properly loaded.
+
+2007-04-04  Francis Kung  <fkung@redhat.com>
+
+       * gnu/java/awt/peer/gtk/CairoGraphics2D.java
+       (drawCairoSurface): Made protected.
+       * gnu/java/awt/peer/gtk/ComponentGraphics.java
+       (cairoDrawGlyphVector): Removed method.
+       (cairoSetFont): Removed method.
+       (disposeNative): Removed method.
+       (drawCairoSurface): New method.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
+       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector): Added
+       locking.
+       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFont): Added locking.
+       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_disposeNative): Added locking.
+
+2007-04-04  Gary Benson  <gbenson@redhat.com>
+
+       * java/util/GregorianCalendar.java
+       (GregorianCalendar(TimeZone, Locale)): Remove redundant complete().
+
+2007-04-04  Roman Kennke  <roman@kennke.org>
+
+       * java/nio/channels/spi/SelectorProvider.java
+       (inheritedChannel): Make method concrete and move default impl
+       to here. Perform security checks as mandated by the spec.
+       * gnu/java/nio/SelectorProviderImpl.java
+       (inheritedChannel): Removed. Default impl is in SelectorProvider.
+
+2007-04-04  Roman Kennke  <roman@kennke.org>
+
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
+       (init_glib_threads): Create global reference on lock object.
+
+2007-04-04  Roman Kennke  <roman@kennke.org>
+
+       * java/awt/Frame.java
+       (weakFrames): Make private.
+       (weakFramesQueue): New field. A reference queue to collect
+       GCed references.
+       (getFrames): Only do one iterations to avoid collecting null
+       references.
+       (hasDisplayableFrames): New helper method. Checks if there
+       are any displayable frames. This is used by the event queue
+       shutdown check.
+       (noteFrame): Clean up GCed frames in the list.
+       * java/awt/EventQueue.java
+       (isShutdown): Move frame checking code into Frame.
+
+2007-04-03  Roman Kennke  <roman@kennke.org>
+
+       * java/lang/System.java
+       (inheritedChannel): New method, wraps
+       SelectorProvider.inheritedChannel().
+       * java/nio/channels/spi/SelectorProvider.java
+       (inheritedChannel): New abstract method.
+       * gnu/java/nio/SelectorProviderImpl.java
+       (inheritedChannel): New method, return null as default.
+
+2007-04-03  Roman Kennke  <roman@kennke.org>
+
+       * java/nio/ByteOrder.java
+       (nativeByteOrder): Let this fail when the corresponding
+       property is not set properly.
+
+2007-04-03  Roman Kennke  <roman@kennke.org>
+
+       * javax/swing/plaf/basic/BasicTreeUI.java
+       (getPathBounds): Consider the tree's insets. Added a bunch of
+       null checks.
+
+2007-04-03  Roman Kennke  <roman@kennke.org>
+
+       * javax/swing/plaf/basic/BasicLabelUI.java
+       (cachedInsets): New field. Used for reusing the insets instance.
+       (getFontMetrics): New helper method for fetching a suitable
+       FontMetrics object.
+       (getPreferredSize): Use new helper method for font metrics.
+       (paint): Only do something if we have an icon or text.
+       Use cached Insets instance and new font metrics helper.
+       (paintDisabledText): Don't restore the graphics' color.
+       (paintEnabledText): Don't restore the graphics' color.
+
+2007-04-03  Roman Kennke  <roman@kennke.org>
+
+       * javax/swing/plaf/metal/MetalButtonUI.java
+       (paintButtonPressed): Fill the whole button not only visibleRect.
+       * javax/swing/plaf/metal/MetalLookAndFeel.java
+       (LAF_defaults): Removed.
+       (getDefaults): Always fetch super's defaults.
+       * javax/swing/plaf/metal/MetalMenuBarUI.java
+       (update): Don't leave 2 pixel gap.
+
+2007-04-03  Roman Kennke  <roman@kennke.org>
+
+       * native/target/.cvsignore,
+       * native/target/Linux/.cvsignore,
+       * native/target/generic/.cvsignore: Some new ignores.
+
+2007-04-03  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/awt/peer/gtk/GThreadMutex.java,
+       * gnu/java/awt/peer/gtk/GThreadNativeMethodRunner.java,
+       * include/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.h,
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c,
+       * native/jni/gtk-peer/gthread-jni.c,
+       * native/jni/gtk-peer/gthread-jni.h: Removed.
+       * native/jni/gtk-peer/Makefile.am: Removed obsolete entries
+       for removed files.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
+       Removed unused bits from gthread-jni.c.
+
+2007-04-03  Francis Kung  <fkung@redhat.com>
+
+       * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
+       (getGlyphs(int[], int[], long[])): Return void.
+
+2007-04-03  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/value/ArrayValue.java: New file. 
+
+2007-04-03  Roman Kennke  <roman@kennke.org>
+
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
+       (global_lock): New global variable that holds the object reference
+       to the global GTK lock.
+       (init_glib_threads): Add lock argument. Use
+       gdk_threads_set_lock_functions to replace GTK's locking function
+       with two callbacks that allow reentrant locking, based on
+       JNI's MonitorEnter() and MonitorExit().
+       (jni_lock_cb): New callback function for GTK locking.
+       (jni_unlock_cb): New callback function for GTK unlocking.
+       (Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Add lock argument.
+       Call init_glib_threads() with lock object.
+       * include/gnu_java_awt_peer_gtk_GtkToolkit.h
+       Regenerated.
+       * gnu/java/awt/peer/gtk/GtkToolkit.java
+       (GTK_LOCK): New static field. This is used as the global lock for
+       GTK.
+       (gtkInit): Add lock parameter.
+       (static_init): Initialize global lock and call gtkInit() with
+       that lock.
+
+2007-04-02  Francis Kung  <fkung@redhat.com>
+
+       * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
+       (fontSet): Initialize to null.
+       (FreetypeGlyphVector(Font, int[], FontRenderContext)): Populate fontSet
+       array with default font if needed.
+       (FreetypeGlyphVector(FreetypeGlyphVector)): Clone all fields.
+       (getNativeFontPointer): New native method.
+       * include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: Regenerated.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
+       (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getNativeFontPointer):
+       New function.
+
+2007-04-02  Francis Kung  <fkung@redhat.com>
+
+       * INSTALL: Document known bug in at-spi, atk, and gail packages prior to
+       version 1.18.0.
+
+2007-04-02  Francis Kung  <fkung@redhat.com>
+
+       * gnu/java/awt/peer/gtk/CairoGraphics2D.java
+       (cairoDrawGlyphVector): Added parameter.
+       (drawGlyphVector): Retrieve and pass fontset parameter.
+       * gnu/java/awt/peer/gtk/ComponentGraphics.java
+       (cairoDrawGlyphVector): Added parameter.
+       (lock): Removed unnecessary cast.
+       (unlock): Removed unnecessary cast and explicitly set to ONE variable.
+       * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
+       (fontSet): New field.
+       (dispose): New native method.
+       (finalize): New method.
+       (getGlyphFonts): New method.
+       (getGlyphOutline): Pass fontSet parameter to native method.
+       (getGlyphOutlineNative): Added parameter.
+       (getGlyphs): Pass extra parameters to native method.
+       (getGlyphsNative): Added parameters.
+       (getKerning): Added fontSet parameter.
+       (getMetricsNative): Added fontSet parameter.
+       (performDefaultLayout): Only check kerning if glyphs use the same font.
+       (setupGlyphMetrics): Pass extra parameters to native methods.
+       * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h,
+       * include/gnu_java_awt_peer_gtk_FreetypGlyphVector.h: Regenerated.
+       * native/jni/gtk-peer/gdkfont.h: Enable pango engine.
+       (peerfont): Add variable for fontset.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
+       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector): Accept
+       array of font pointers to use when drawing glyphs.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
+       (getFontSet): New function.
+       (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_dispose): New function.
+       (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphOutlineNative):
+       Added and use new fontSet parameter.
+       (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphs): Use pango
+       to retrieve glyphs and estimate font, if the current font does not contain
+       a requested glyph.
+       (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getKerning): Added and use
+       new fontSet parameter.
+       (Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getMetricsNative): Added
+       and use new fontSet parameter.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
+       (Java_gnu_java_awt_peer_gtk_GdkFontPeer_dispose): Free fontset.
+       (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Load fontset.
+
+2007-04-02  Andrew Haley  <aph@redhat.com>
+
+       * javax/management/ObjectName.java: Handle 0-length names.
+       * javax/management/MBeanServerFactory.java: Use the domain that
+       we've been passed, not the fixed string "DefaultDomain".
+
+2007-04-01  Mark Wielaard  <mark@klomp.org>
+
+       * org/omg/CORBA/DynAny.java: Mark as deprecated.
+       * org/omg/CORBA/DynArray.java: Likewise.
+       * org/omg/CORBA/DynEnum.java: Likewise.
+       * org/omg/CORBA/DynFixed.java: Likewise.
+       * org/omg/CORBA/DynSequence.java: Likewise.
+       * org/omg/CORBA/DynStruct.java: Likewise.
+       * org/omg/CORBA/DynUnion.java: Likewise.
+       * org/omg/CORBA/DynValue.java: Likewise.
+       * org/omg/CORBA/ORB.java (create_basic_dyn_any): Likewise.
+       (create_dyn_any): Likewise.
+       (create_dyn_array): likewise.
+       (create_dyn_enum): Likewise.
+       (create_dyn_sequence): Likewise.
+       (create_dyn_struct): Likewise.
+       (create_dyn_union): Likewise.
+
+2007-04-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/javax/management/Translator.java:
+       (fromJava(Object[],Method)): Use the array from the
+       parameter not the newly created one...
+       (fromJava(Object, Type)): Support MXBeans.
+       * javax/management/JMX.java:
+       (newMXBeanProxy(MBeanServerConnection,ObjectName,Class)):
+       Call newMXBeanProxy rather than newMBeanProxy.
+       * javax/management/StandardMBean.java:
+       (setAttribute(Attribute)): Use InvocationTargetException
+       as cause.
+       
+2007-03-31  Jeroen Frijters  <jeroen@frijters.net>
+
+       PR classpath/31402:
+       * java/util/concurrent/CopyOnWriteArrayList.java
+       (remove): Fixed ArrayIndexOutOfBoundsException when index == 0.
+
+2007-03-30  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/openmbean/CompositeDataInvocationHandler.java:
+       New file.
+       
+2007-03-30  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/util/VariableTable.java: Make argCnt and slots ints.
+       (write): Replace writeLong with writeInt for above.
+
+2007-03-30  Tom Tromey  <tromey@redhat.com>
+
+       PR libgcj/29869:
+       * gnu/java/util/jar/JarUtils.java (log): Commented out.
+       (readSFManifest): Don't log.
+
+2007-03-29  Tom Tromey  <tromey@redhat.com>
+
+       PR libgcj/29869:
+       * java/util/logging/LogManager.java (readConfiguration): Handle
+       comma-separated 'handlers'.  Don't try to add a non-existing
+       handler.
+
+2007-03-29  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/event/ThreadStartEvent.java (Event):
+       Event type is "THREAD_START" not "THERAD_END".
+
+       * gnu/classpath/jdwp/transport/SocketTransport.java (ITransport):
+       Handle configure strings ":port" and "port".
+
+2007-03-29  Francis Kung  <fkung@redhat.com>
+
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
+       (Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Revert last patch.
+
+2007-03-29  Mark Wielaard  <mark@klomp.org>
+
+       * native/jni/java-nio/Makefile.am (LIBADD): Add libclasspathnative.
+
+2007-03-28  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/StandardMBean.java:
+       (setAttribute(Attribute)): Add handling of primitive
+       types and subtype parameters.
+       (getMutator(String,Class<?>)): New helper method to
+       return the mutator.
+       
+2007-03-28  Roman Kennke  <roman@kennke.org>
+
+       * java/io/OutputStreamWriter.java,
+       * java/io/InputStreamReader.java: Revert big stream patch due to
+       problems.
+
+2007-03-28  Tom Tromey  <tromey@redhat.com>
+
+       PR classpath/31303:
+       * external/sax/org/xml/sax/helpers/XMLReaderFactory.java
+       (createXMLReader): Code in Classpath default.
+
+2007-03-28  Tom Tromey  <tromey@redhat.com>
+
+       PR classpath/31276:
+       * native/jni/java-lang/java_lang_VMDouble.c
+       (parseDoubleFromChars): Use %p, not %i.
+
+2007-03-28  Mark Wielaard  <mark@klomp.org>
+
+       * native/jni/java-nio/Makefile.am (LIBADD): Don't add
+       libclasspathnative.
+       * native/jni/java-nio/gnu_java_nio_VMChannel.c
+       (Java_gnu_java_nio_VMChannel_open): Don't set and reset umask.
+
+2007-03-27  Francis Kung  <fkung@redhat.com>
+
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
+       (Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit): Prevent loading of
+       accessibility modules as temporary workaround for Gnome bug.
+
+2007-03-27  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpth/jdwp/processor/ThreadReferenceCommandSet.java
+       (executeResume): Change to call VMVirtualMachine.resumeThread. 
+
+2007-03-27  Roman Kennke  <roman@kennke.org>
+
+       * java/io/InputStreamReader.java
+       (BUFFER_SIZE): New constant.
+       (bytesCache): Removed.
+       (cacheLock): Removed.
+       (hasSavedSurrogate): Removed.
+       (lastArray): New field. Used for caching CharBuffers.
+       (lastBuffer): New field. Used for caching CharBuffers.
+       (maxBytesPerChar): Removed.
+       (oneChar): New field. Caches a char array for read().
+       (savedSurrogate): New field.
+       (InputStreamReader): (all constructors) Cleaned up.
+       Use initDecoderAndBuffer() method. Check for null parameters.
+       Use new EncodingHelper.getDefaultCharset() for fetching the
+       default charset.
+       (decode): New helper method. Decodes using the NIO decoder or
+       using a raw Latin1 decoding.
+       (getCharBuffer): New helper method. Implements caching of
+       CharBuffers for output arrays.
+       (initDecoderAndBuffer): New helper method. Initializes the decoder
+       and input buffer.
+       (read): Use cached array.
+       (read(char[],int,int)): Reworked using a cleaner NIO based
+       implementation. This decodes the incoming data in bigger chunks
+       rather then calling the decoder for each character.
+       (ready): Also check the input buffer.
+       (refillInputBuffer): New helper methods. Refills the input buffer
+       when it runs out of data.
+       * java/io/OutputStreamWriter.java
+       (lastArray): Implements caching of the output array buffer.
+       (lastBuffer): Implements caching of the output array buffer.
+       (oneChar): New field. Caches a char array for write().
+       (outputBuffer): Make this a ByteBuffer.
+       (OutputStreamWriter): (all constructors) Cleaned up.
+       Use initEncoderAndBuffer() method. Check for null parameters.
+       Use new EncodingHelper.getDefaultCharset() for fetching the
+       default charset.
+       (encode): New helper method. Encodes the input buffer to the output
+       buffer using either the NIO encoder or a raw Latin1 encoding.
+       (encodeChars): New helper method. The encoding loop.
+       (flush): Directly use the array of the output buffer.
+       (getCharBuffer): New helper method. Implements caching of the
+       output buffer.
+       (initEncoderAndBuffer): New helper method for initialization.
+       (write(char[],int,int)): Reworked to make better use of the NIO
+       encoders.
+       (write): Use cached array.
+       (write(String,int,int)): Don't copy the string but rather wrap it
+       and handle it the same as the wrapped char array.
+       (writeConvert): Removed.
+       * gnu/java/nio/charset/EncodingHelper.java
+       (getDefaultCharset): New method. Returns the default charset for
+       the case when the file.encoding charset is not valid. This
+       always returns an UTF8 codec.
+
+2007-03-27  Roman Kennke  <kennke@aicas.com>
+
+       * java/awt/Frame.java
+       (weakFrames): Make this generic and package private.
+       (noteFrame): Use generic WeakReference.
+       * java/awt/EventQueue.java
+       (isShutdown): Iterate over the weakFrames directly, rather than
+       using Frame.getFrames(). The latter iterates several times over
+       weakFrames completely and creates a new array on each call. The
+       former iterates only once and aborts when it finds a frame which
+       is displayable.
+
+2007-03-27  Roman Kennke  <kennke@aicas.com>
+
+       * javax/swing/JScrollBar.java
+       (getUnitIncrement(int)): Don't multiply direction parameter.
+       (getBlockIncrement(int)): Don't multiply direction parameter.
+
+2007-03-26  Tom Tromey  <tromey@redhat.com>
+
+       * doc/cp-tools.texinfo (gcjh Tool): Added more text.
+       (rmid Tool): Likewise.
+
+2007-03-26  Stepan Kasal  <skasal@redhat.com>
+
+       * tools/gnu/classpath/tools/javah/Main.java (cniOrJniSeen): New
+       field.
+       (getParser): Use new field.
+
+2007-03-25  Dalibor Topic  <robilad@kaffe.org>
+
+       * doc/cp-tools.texinfo: Fix node ordering.
+
+2007-03-19  Matthias Klose  <doko@ubuntu.com>
+
+       * doc/Makefile.am: Build a gcjh(1) man page.
+       * doc/cp-tools.texinfo: Add documentation for gcjh.
+
+2007-03-23  Jeroen Frijters  <jeroen@frijters.net>
+
+       * java/net/ServerSocket.java (implAccept): set implCreated flag on
+       socket.
+       * java/net/Socket.java (implCreated): Make package accessible for
+       ServerSocket.
+
+2007-03-22  Casey Marshall  <csm@gnu.org>
+
+       * gnu/javax/net/ssl/provider/ClientHandshake.java (RSAGen.implRun):
+       check keyEncipherment bit of the certificate, and just pass the public
+       key to the cipher.
+
+2007-03-20  Mario Torre  <neugens@limasoftware.net>
+
+       * configure.ac: GConf requirement for building the java.util.prefs backend
+       are relaxed down to version 2.6.0 (instead of 2.11.2).
+
+2007-03-19  Mario Torre  <neugens@limasoftware.net>
+
+       * gnu/java/awt/peer/KDEDesktopPeer.java: 
+       (mail): Fixed error dialog in KDE when the mail method is called without
+       argument; now opens the default mailer with a blank window.
+       (getCommand): Handle the use of kprinter as default print command for KDE.
+       (supportCommand): Enable the print command when a KDE desktop is detected.
+
+2007-03-19  Jeroen Frijters  <jeroen@frijters.net>
+
+       * java/net/Socket.java
+       (implCreated): New field.
+       (getImpl): Call impl.create() if it hasn't been called yet.
+       (bind): Removed explicit impl.create() call.
+
+2007-03-18  Mark Wielaard  <mark@klomp.org>
+
+       * javax/crypto/CipherOutputStream.java (write): Use out.write()
+       not super.write().
+
+2007-03-18  Mark Wielaard  <mark@klomp.org>
+
+       * configure.ac (COMPILE_PLUGIN): Check for gtk+-2.0 >= 2.8
+       gthread-2.0 >= 2.2 and gdk-pixbuf-2.0
+
+2007-03-16  Tom Tromey  <tromey@redhat.com>
+
+       * tools/gnu/classpath/tools/javah/Main.java (run): Use class'
+       name in File case.
+
+2007-03-16  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+       * resource/com/sun/tools/javac/messages.properties
+       (Main.FailedToRead, Main.MalformedURL, Main.FailedToLoad): Clarify
+       messages for when --with-ecj-jar is not specified.
+
+       * configure.ac (FOUND_ECJ_JAR): Remove conditional.
+       * tools/Makefile.am: Build com.sun.tools.javac package
+       unconditionally.
+
+2007-03-16  Mark Wielaard  <mark@klomp.org>
+
+       * configure.ac (COMPILE_PLUGIN): Stop when no plugin headers found.
+       Also check for gtk+ dependency.
+
+2007-03-16  Tom Tromey  <tromey@redhat.com>
+
+       * tools/gnu/classpath/tools/javah/JniStubPrinter.java
+       (printClass): Added filename argument.
+       * tools/gnu/classpath/tools/javah/JniIncludePrinter.java
+       (printClass): Added filename argument.
+       * tools/gnu/classpath/tools/javah/CniIncludePrinter.java
+       (printClass): Use user's file name.
+       * tools/gnu/classpath/tools/javah/CniStubPrinter.java
+       (printClass): Use user's file name.
+       * tools/gnu/classpath/tools/javah/Printer.java (printClass): Added
+       filename argument.
+       * tools/gnu/classpath/tools/javah/Main.java (getParser): Fix '-v'
+       argument order.
+       (writeHeaders): Use a HashMap.
+       (run): Put class name into HashMap for writeHeaders.
+
+2007-03-16  Francis Kung  <fkung@redhat.com>
+
+       * gnu/java/awt/peer/gtk/CairoGraphics2D.java
+       (cairoArc): Make protected rather than private so it can be over-ridden.
+       (cairoClip): Likewise.
+       (cairoClosePath): Likewise.
+       (cairoCurveTo): Likewise.
+       (cairoDrawGlyphVector): Likewise.
+       (cairoFill): Likewise.
+       (cairoLineTo): Likewise.
+       (cairoMoveTo): Likewise.
+       (cairoNewPath): Likewise.
+       (cairoRectangle): Likewise.
+       (cairoResetClip): Likewise.
+       (cairoRestore): Likewise.
+       (cairoSave): Likewise.
+       (cairoScale): Likewise.
+       (cairoSetAntialias): Likewise.
+       (cairoSetDash): Likewise.
+       (cairoSetFillRule): Likewise.
+       (cairoSetFont): Likewise.
+       (cairoSetLine): Likewise.
+       (cairoSetMatrix): Likewise.
+       (cairoSetOperator): Likewise.
+       (cairoSetRGBAColor): Likewise.
+       (cairoStroke): Likewise.
+       (drawPixels): Likewise.
+       (init): Likewise.
+       (setGradient): Likewise.
+       (setPaintPixels): Likewise.
+       (cairoDrawLine): Removed.
+       (cairoDrawRect): Removed.
+       (cairoFillRect): Removed.
+       (cairoPreserveClip): Removed.
+       (cairoRelCurveTo): Removed.
+       (cairoRelLineTo): Removed.
+       (cairoRelMoveTo): Removed.
+       * gnu/java/awt/peer/gtk/ComponentGraphics.java
+       (cairoArc): New method wrapping superclass method in locks.
+       (cairoClip): Likewise.
+       (cairoClosePath): Likewise.
+       (cairoCurveTo): Likewise.
+       (cairoDrawGlyphVector): Likewise.
+       (cairoFill): Likewise.
+       (cairoLineTo): Likewise.
+       (cairoMoveTo): Likewise.
+       (cairoNewPath): Likewise.
+       (cairoRectangle): Likewise.
+       (cairoResetClip): Likewise.
+       (cairoRestore): Likewise.
+       (cairoSave): Likewise.
+       (cairoScale): Likewise.
+       (cairoSetAntialias): Likewise.
+       (cairoSetDash): Likewise.
+       (cairoSetFillRule): Likewise.
+       (cairoSetFont): Likewise.
+       (cairoSetLine): Likewise.
+       (cairoSetMatrix): Likewise.
+       (cairoSetOperator): Likewise.
+       (cairoSetRGBAColor): Likewise.
+       (cairoStroke): Likewise.
+       (disposeNative): Likewise.
+       (drawPixels): Likewise.
+       (init): Likewise.
+       (setGradient): Likewise.
+       (setPaintPixels): Likewise.
+       (draw): Do not lock, as locking is now done in the wrapped native methods.
+       (drawComposite): Likewise.
+       (drawGlyphVector): Likewise.
+       (drawImage): Likewise.
+       (drawRenderedImage): Likewise.
+       (fill): Likewise.
+       (setClip): Removed.
+       (lock): Added documentation.
+       (unlock): Added documentation.
+       * include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: Regenerated.
+       * include/gnu_java_awt_peer_gtk_CairoSurface.h: Regenerated.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
+       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawLine): Removed.
+       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawRect): Removed.
+       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoFillRect): Removed.
+       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoPreserveClip): Removed.
+       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoRelCurveTo): Removed.
+       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoRelLineTo): Removed.
+       (Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoRelMoveTo): Removed.
+
+2007-03-11  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/openmbean/ArrayType.java:
+       (getArrayClassName(String, int)): Replaced by...
+       (getArrayClassName(OpenType, int, boolean)):
+       Returns appropriate class name for the array.
+       (getDimensions(OpenType, int)): New method.
+       (getPrimitiveType(Class<?>)): Likewise.
+       (getPrimitiveTypeClass(OpenType<?>)): Likewise.
+       (getElementType(OpenType<?>)): Likewise.
+       (getElementTypeName(OpenType<?>)): Likewise.
+       (ArrayType(int, OpenType<?>)): Rewritten
+       to handle ArrayTypes as input.
+       (ArrayType(SimpleType<?>, boolean)): New constructor.
+       (equals(Object)): Handle primitiveArray flag.
+       (hashCode()): Likewise.
+       (getArrayType(OpenType<E>)): New method.
+       (getPrimitiveArrayType(Class<T>)): Likewise.
+       (isPrimitiveArray()): Likewise.
+       (toString()): Updated to list primitiveArray
+       flag.
+       * javax/management/openmbean/OpenType.java:
+       (OpenType(String,String,String)): Use Class.forName()
+       and methods of Class to validate arrays.
+       * javax/management/openmbean/SimpleType.java:
+       Include causal exception when creating pre-defined types
+       throws an exception.
+       
+2007-03-09  Andreas Tobler  <a.tobler@schweiz.org>
+
+       Port change from gcc:
+
+       2007-03-06  Matthias Klose  <doko@ubuntu.com>
+
+       * doc/Makefile.am(gkeytool.pod): Don't use sed -i.
+
+2007-03-09  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/exception/InvalidTagException.java: New file.
+       * gnu/classpath/jdwp/processor/ArrayReferenceCommandSet.java
+       (executeGetValues): Use Value type.
+       (exectureSetValues): Ditto.  
+       * gnu/classpath/jdwp/processor/ClassTypeCommandSet.java
+       (executeGetValues): Use Value type.
+       (executeSetValues): Ditto.
+       (invokeMethod): Record method return type.
+       * gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java
+       (executeGetValues): Use Value type.
+       (executeSetValues): Ditto.
+       * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
+       (executeGetValues): Use Value type.
+       * gnu/classpath/jdwp/processor/StackFrameCommandSet.java
+       (executeGetValues): Use Value type.
+       (executeSetValues): Ditto.
+       * gnu/classpath/jdwp/util/MethodResult.java: Add resType to store return
+       type.
+       (getResultType): New Method.
+       (setResultType): Ditto.
+       * gnu/classpath/jdwp/util/Value.java: Remove.
+       * gnu/classpath/jdwp/value: New Package.
+       * gnu/classpath/jdwp/value/Value.java: New file.
+       * gnu/classpath/jdwp/value/BooleanValue.java: New file.
+       * gnu/classpath/jdwp/value/ByteValue.java: New file.
+       * gnu/classpath/jdwp/value/CharValue.java: New file.
+       * gnu/classpath/jdwp/value/DoubleValue.java: New file.
+       * gnu/classpath/jdwp/value/FloatValue.java: New file.
+       * gnu/classpath/jdwp/value/IntValue.java: New file.
+       * gnu/classpath/jdwp/value/LongValue.java: New file.
+       * gnu/classpath/jdwp/value/ObjectValue.java: New file.
+       * gnu/classpath/jdwp/value/ShortValue.java: New file.
+       * gnu/classpath/jdwp/value/StringValue.java: New file.
+       * gnu/classpath/jdwp/value/ValueFactory.java: New file.
+       * gnu/classpath/jdwp/value/VoidValue.java: New file.
+
+2007-03-09  Roman Kennke  <kennke@aicas.com>
+
+       * java/awt/image/SinglePixelPackageSampleModel.java
+       (createDataBuffer): Avoid use of Buffers class and create
+       DataBuffer directly in place.
+
+2007-03-09  Roman Kennke  <kennke@aicas.com>
+
+       * java/awt/image/ComponentSampleModel.java
+       (tightPixelPacking): Removed.
+       (ComponentSampleModel): Removed unnecessary 'optimization' code.
+       (createDataBuffer): Avoid use of Buffers helper class.
+       (getDataElements(int,int,int,int,Object,DataBuffer): Removed.
+       (getDataElements(int,int,Object,DataBuffer): Do not use Buffers
+       helper class and instead fetch the values directly. Don't expect
+       any specific DataBuffer subclass.
+       (setDataElements(int,int,int,int,Object,DataBuffer): Removed.
+       (setDataElements(int,int,Object,DataBuffer): Do not use Buffers
+       helper class and instead set the values directly. Don't expect
+       any specific DataBuffer subclass.
+
+2007-03-08  Tom Tromey  <tromey@redhat.com>
+
+       PR libgcj/31093:
+       * java/net/MulticastSocket.java (setTimeToLive): Allow ttl==0.
+
+2007-03-08  Gary Benson  <gbenson@redhat.com>
+
+       PR classpath/30983:
+       * gnu/xml/dom/ls/DomLSParser.java (getInputSource):
+       Do not use the entity resolver to resolve the top-level document.
+
+2007-03-07  Tom Tromey  <tromey@redhat.com>
+
+       PR classpath/31057:
+       * java/util/regex/Pattern.java (toString): New method.
+
+2007-03-07  Gary Benson  <gbenson@redhat.com>
+
+       PR classpath/30906:
+       * resource/META-INF/services/org.w3c.dom.DOMImplementationSourceList:
+       New file.
+
+2007-03-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/java/lang/management/BeanImpl.java:
+       (translate(String)): Add horrible generics hacks
+       to make things work with the new type signatures.
+       * javax/management/loading/ClassLoaderRepository.java:
+       Added generic types.
+       * javax/management/openmbean/CompositeDataSupport.java:
+       Likewise.
+       * javax/management/openmbean/OpenMBeanOperationInfo.java:
+       Likewise.
+       * javax/management/openmbean/OpenMBeanParameterInfo.java:
+       Likewise.
+
+2007-03-06  Francis Kung  <fkung@redhat.com>
+
+       * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
+       (getGlyphOutline): Apply glyph position translation.
+       (getOutline): Do not apply glyph position translation.
+
+2007-03-06  Tom Tromey  <tromey@redhat.com>
+
+       * tools/gnu/classpath/tools/javah/Main.java (getName): New
+       method.
+       (getParser): Now protected.  Use getName.  Add '-v' alias for
+       --verbose.
+       (postParse): New method.
+       (run): Now protected.  Use postParse.
+       * tools/gnu/classpath/tools/javah/GcjhMain.java: New file.
+
+2007-03-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/javax/management/Translator.java:
+       (translate(String)): Use a Boolean array to
+       comply with the new typing.
+       * javax/management/openmbean/ArrayType.java:
+       Added generic types and updated copyright headers.
+       * javax/management/openmbean/CompositeData.java:
+       Likewise.
+       * javax/management/openmbean/CompositeDataSupport.java:
+       Likewise.       
+       * javax/management/openmbean/CompositeType.java:
+       Likewise.       
+       * javax/management/openmbean/OpenMBeanAttributeInfoSupport.java:
+       Likewise.       
+       * javax/management/openmbean/OpenMBeanOperationInfoSupport.java:
+       Likewise.       
+       * javax/management/openmbean/OpenMBeanParameterInfoSupport.java:
+       Likewise.       
+       * javax/management/openmbean/OpenType.java:
+       Updated copyright header.       
+       * javax/management/openmbean/SimpleType.java:
+       Added generic types and updated copyright headers.
+       * javax/management/openmbean/TabularData.java:
+       Likewise.
+       * javax/management/openmbean/TabularDataSupport.java:
+       Likewise.
+       * javax/management/openmbean/TabularType.java:
+       Likewise.
+       
+2007-03-05  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/java/lang/management/BeanImpl.java:
+       Reference the new Translator class.
+       (translate(String)): Moved to Translator.
+       * gnu/javax/management/Translator.java:
+       New file.
+       * javax/management/JMX.java:
+       Likewise.
+       * javax/management/MBeanServerInvocationHandler.java:
+       Likewise.
+       * javax/management/MXBean.java:
+       Likewise.
+       * javax/management/ObjectName.java:
+       (ObjectName(String)): Catch a key without a value.
+       * javax/management/StandardMBean.java:
+       (StandardMBean(Class<?>)): Handle MXBeans.
+       (StandardMBean(Object, Class<?>)): Likewise.
+       (invoke(String,Object[],String[])): Disallow
+       calling attribute methods and handle null signatures.
+       (setAttribute(Attribute)): Search for mutators
+       with the appropriate signature.
+       * javax/management/openmbean/OpenType.java:
+       Add generic typing.
+       (ALLOWED_CLASSNAMES_LIST): New field.
+       
+2007-03-02  Mario Torre  <neugens@limasoftware.net>
+
+       PR classpath/31017:
+       committed for Petteri Räty <betelgeuse@gentoo.org>
+       * configure.ac: fix broken build for gcj browser plugin
+       
+2007-03-02  Mario Torre  <neugens@limasoftware.net>
+
+       * java/awt/Desktop.java: new java 1.6 class.
+       * java/awt/peer/DesktopPeer.java: new inteface.
+       * gnu/java/awt/peer/GnomeDesktopPeer.java: new class.
+       * gnu/java/awt/peer/ClasspathDesktopPeer.java: new class.
+       * gnu/java/awt/peer/KDEDesktopPeer.java: new class.
+       * java/awt/Toolkit.java (createDesktopPeer): new method to support the
+       creation of DesktopPeer instances.
+       * gnu/java/awt/peer/qt/QtToolkit.java: update copyright notice and
+       organize import.
+       * gnu/java/awt/ClasspathToolkit.java (createDesktopPeer): new method.
+
+2007-02-28  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/processor/EventRequestCommandSet.java
+       (executeSet): Check if VM has capability for field access
+       or modification events.
+       * gnu/classpath/jdwp/processor/MethodCommandSet.java
+       (executeByteCodes): Check if VM has capability and
+       implement.
+       * gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.java
+       (executeMonitorInfo): Likewise.
+       * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
+       (executeSourceDebugExtension): Likewise.
+       * gnu/classpath/jdwp/processor/StackFrameCommandSet.java
+       (executePopFrames): Likewise.
+       * gnu/classpath/jdwp/processor/ThreadReferenceCommandSet.java
+       (executeOwnedMonitors): Likewise.
+       (executeCurrentContendedMonitor): Likewise.
+       * gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
+       (executeCapabilities): Rewrite using new VMVirtualMachine
+       capabilities.
+       (executeRedefineClasses): Check if VM has capability and
+       implement.
+       (executeSetDefaultStratum): Likewise.
+       * gnu/classpath/jdwp/util/MonitorInfo.java; New file.
+       * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
+       (canWatchFieldModification): New class constant.
+       (canWatchFieldAccess): Likewise.
+       (canGetBytecodes): Likewise.
+       (canGetSyntheticAttribute): Likewise.
+       (canGetOwnedMonitorInfo): Likewise.
+       (canGetCurrentContendedMonitor): Likewise.
+       (canGetMonitorInfo): Likewise.
+       (canRedefineClasses): Likewise.
+       (canAddMethod): Likewise.
+       (canUnrestrictedlyRedefineClasses): Likewise.
+       (canPopFrames): Likewise.
+       (canUseInstanceFilters): Likewise.
+       (canGetSourceDebugExtension): Likewise.
+       (canRequestVMDeathEvent): Likewise.
+       (canSetDefaultStratum): Likewise.
+       (redefineClasses): New method.
+       (setDefaultStratum): Likewise.
+       (getSourceDebugExtension): Likewise.
+       (getBytecodes): Likewise.
+       (getMonitorInfo): Likewise.
+       (getOwnedMonitors): Likewise.
+       (getCurrentContendedMonitor): Likewise.
+       (popFrames): Likewise.
+
+2007-03-01  Roman Kennke  <kennke@aicas.com>
+
+       * java/awt/Canvas.java
+       (graphicsConfiguration): Removed duplicate (from Component) field.
+       (Canvas(GraphicsConfiguration)): Set the Component's graphicsConfig
+       field.
+       (getGraphicsConfigurationImpl): Removed.
+       * java/awt/Component.java
+       (getGraphicsConfiguration): Moved implementation here. Synchronize
+       on tree lock to prevent threading nastiness. Don't query peer
+       and instead return the setting of the graphicsConfig field.
+       (getGraphicsConfigurationImpl): Removed.
+       * java/awt/Window.java
+       (graphicsConfiguration): Removed duplicate (from Component) field.
+       (Window): Set the Component's graphicsConfig field.
+       (Window(GraphicsConfiguration)): Set the Component's graphicsConfig
+       field.
+       (Window(Window,GraphicsConfiguration)): Set the Component's 
+       graphicsConfig field.
+       (getGraphicsConfigurationImpl): Removed.
+       (getGraphicsConfiguration): Fetch the local graphics env here
+       if not already done and return that.
+
+2007-02-28  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+       * INSTALL: Document --with-ecj-jar configure option and ecj jar
+       requirement for com.sun.tools.javac support.
+       * configure.ac: Add --with-ecj-jar configure option.
+       * gnu/classpath/Configuration.java.in (ECJ_JAR): New field.
+       * tools/Makefile.am: Build decendents of com and sun directories.
+       * resource/com/sun/tools/javac/messages.properties,
+       resource/sun/rmi/rmic/messages.properties,
+       tools/com/sun/javadoc/ClassDoc.java,
+       tools/com/sun/javadoc/ConstructorDoc.java,
+       tools/com/sun/javadoc/Doc.java,
+       tools/com/sun/javadoc/DocErrorReporter.java,
+       tools/com/sun/javadoc/Doclet.java,
+       tools/com/sun/javadoc/ExecutableMemberDoc.java,
+       tools/com/sun/javadoc/FieldDoc.java,
+       tools/com/sun/javadoc/MemberDoc.java,
+       tools/com/sun/javadoc/MethodDoc.java,
+       tools/com/sun/javadoc/PackageDoc.java,
+       tools/com/sun/javadoc/ParamTag.java,
+       tools/com/sun/javadoc/Parameter.java,
+       tools/com/sun/javadoc/ProgramElementDoc.java,
+       tools/com/sun/javadoc/RootDoc.java,
+       tools/com/sun/javadoc/SeeTag.java,
+       tools/com/sun/javadoc/SerialFieldTag.java,
+       tools/com/sun/javadoc/SourcePosition.java,
+       tools/com/sun/javadoc/Tag.java,
+       tools/com/sun/javadoc/ThrowsTag.java,
+       tools/com/sun/javadoc/Type.java,
+       tools/com/sun/javadoc/TypeVariable.java,
+       tools/com/sun/tools/doclets/Taglet.java,
+       tools/com/sun/tools/javac/Main.java,
+       tools/com/sun/tools/javac/Messages.java,
+       tools/sun/rmi/rmic/Main.java, tools/sun/rmi/rmic/Messages.java:
+       New files.
+
+2007-02-28  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/processor/MethodCommandSet.java
+       (executeLineTable): Use ReferenceTypeId instead of
+       ClassReferenceTypeId.
+       (executeVariableTable): Likewise.
+       (executeVariableTableWithGeneric): Fix error message.
+       * gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.java
+       (executeSignatureWithGeneric): Fix error message.
+       (executeFieldWithGeneric): Likewise.
+       (executeMethodsWithGeneric): Likewise.
+       * gnu/classpath/jdwp/processor/StackFrameCommandSet.java
+       (executeGetValues): Use ThreadId instead of ObjectId.
+       (executeSetValues): Likewise.
+       (executeThisObject): Likewise.
+
+2007-02-28  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/id/NullObjectId.java: New class.
+       * gnu/classpath/jdwp/util/NullObject.java: New class.
+       * vm/reference/gnu/classpath/jdwp/VMIdManager.java
+       (getObjectId): Handle null object.
+       (get): Handle objectId of 0. 
+
+2007-02-26  Francis Kung  <fkung@redhat.com>
+
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
+       (Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont): Stop using deprecated
+       function for creating new font map.
+
+2007-02-26  Francis Kung  <fkung@redhat.com>
+
+       * gnu/java/awt/peer/gtk/CairoGraphics2D.java
+       (drawCairoSurface): Do not reset clip.
+       (drawImage(Image,AffineTransform,Color,ImageObserver)): Likewise.
+
+2007-02-23  Francis Kung  <fkung@redhat.com>
+
+       * gnu/java/awt/peer/gtk/CairoGraphics2D.java
+       (drawCairoSurface): New method.
+       (drawImage(Image,AffineTransform,Color,ImageObserver)): Use new
+       drawCairoSurface() method.
+       * gnu/java/awt/peer/gtk/CairoSurface.java
+       (CairoSurface(SampleModel,CairoSurface,Rectangle,Point)): Copy correct
+       width/height values, and copy sharedBuffer value.
+       (createWritableChild): Remove debug line.
+       (drawSurface): Removed method.
+       * gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java
+       (drawComposite): Translate image when drawing.
+
+2007-02-23  Gary Benson  <gbenson@redhat.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR libgcj/17002
+       PR classpath/28550
+       * java/util/Date.java (parse): Properly parse 09:01:02 as
+       hours/minutes/seconds, not as hours/minutes/year.
+       * java/util/SimpleTimeZone.java (SimpleTimeZone): Simplify
+       {start,end}TimeMode constructor by calling shorter constructor,
+       set {start,end}TimeMode fields after it returns.
+       (setStartRule): Don't adjust startTime into WALL_TIME.  Set
+       startTimeMode to WALL_TIME.
+       (endStartRule): Similarly.
+       (getOffset): Handle properly millis + dstOffset overflowing into the
+       next day.  Adjust startTime resp. endTime based on startTimeMode
+       resp. endTimeMode.
+       * java/util/TimeZone.java (zoneinfo_dir, availableIDs, aliases0): New
+       static fields.
+       (timezones): Remove synchronized keyword.  Set zoneinfo_dir.
+       If non-null, set up aliases0 and don't put anything into
+       timezones0.
+       (defaultZone): Call getTimeZone instead of timezones().get.
+       (getDefaultTimeZone): Fix parsing of EST5 or EST5EDT6.  Use
+       getTimeZoneInternal instead of timezones().get.
+       (parseTime): Parse correctly hour:minute.
+       (getTimeZoneInternal): New private method.
+       (getTimeZone): Do the custom ID checking first, canonicalize
+       ID for custom IDs as required by documentation.  Call
+       getTimeZoneInternal to handle the rest.
+       (getAvailableIDs(int)): Add locking.  Handle zoneinfo_dir != null.
+       (getAvailableIDs(File,String,ArrayList)): New private method.
+       (getAvailableIDs()): Add locking.  Handle zoneinfo_dir != null.
+       * vm/reference/java/util/VMTimeZone.java (getDefaultTimeZoneId):
+       To read /etc/localtime, use ZoneInfo.readTZFile instead of
+       VMTimeZone.readtzFile.  Get better timezone name for
+       /etc/localtime, either if it is a symlink or through
+       /etc/sysconfig/clock.
+       (readSysconfigClockFile): New static method.
+       (readtzFile): Removed.
+       * gnu/java/util/ZoneInfo.java: New file.        
+       * java/lang/System.java: Add gnu.java.util.zoneinfo.dir to comments.
+        * NEWS: Documented TimeZone interface changes.
+
+2007-02-23  Francis Kung  <fkung@redhat.com>
+
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
+       (Java_gnu_java_awt_peer_gtk_CairoSurface_create): Remove debug line.
+
+2007-02-22  Keith Seitz  <keiths@redhat.ecom>
+
+       * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java
+       (getAllLoadedClassesCount): Remove.
+       (getAllLoadedClasses): Return a Collection.
+       * gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
+       (executeClassesBySignature): VMVirtualMachine.getAllLoadedClasses
+       now returns Collection.
+       (executeAllClasses): Likewise.
+       Get size of return from Colleciton instead of calling
+       getAllLoadedClassesCount.
+
+2007-02-22  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/processor/StackFrameCommandSet.java 
+       (executeGetValues): Pass a signature byte to VMFrame.getValue.
+       * vm/reference/gnu/classpath/jdwp/VMFrame.java (getValue): Add
+       signature parameter.
+
+2007-02-22  Francis Kung  <fkung@redhat.com>
+
+       * gnu/java/awt/peer/gtk/CairoSurface.java
+       (copyAreaNative): Pass surface pointer into copyAreaNative2().
+       (copyAreaNative2): Add parameter for surface pointer.
+       (getFlippedBuffer): Add parameter for surface pointer.
+       (getGtkImage): Pass surface pointer into getFlippedBuffer().
+
+2007-02-21  Francis Kung  <fkung@redhat.com>
+
+       * gnu/java/awt/peer/gtk/BufferedImageGraphcs.java
+       (constructor): Add pre-multiplied colour model to types available for
+       optimization.
+       (updateBufferedImage): Change surface.getPixels() call to surface.getData().
+       * gnu/java/awt/peer/gtk/CairoGraphics2D.java
+       (drawImage): Add checks before using CairoSurface optimization.
+       * gnu/java/awt/peer/gtk/CairoSurface.java
+       (bufferPointer): Removed field.
+       (sharedBuffer): New field.
+       (CairoSurface(GtkImage)): Copy array rather than using setPixels() call.
+       (CairoSurface(int,int,int)): Use getData() convenience method.
+       (CairoSurface(SampleModel,CairoSurface,Rectangle,Point)): Remove reference
+       to deleted bufferPointer field.
+       (copyAreaNative): Update documentation, remove reference to bufferPointer.
+       (copyAreaNative2): Remove reference to deleted bufferPointer field.
+       (destroy): Remove reference to deleted bufferPointer field.
+       (dispose): Updated to reflect new method signature for destroy().
+       (drawSurface): Added documentation.
+       (getData): New convience method.
+       (getFlippedBuffer): Removed method parameters.
+       (getGtkImage): Updated to reflect new method signature.
+       (getPixels): Removed method.
+       (nativeGetElem): Removed method.
+       (netiveGetPixels): Removed method.
+       (nativeSetElem): Removed method.
+       (nativeSetPixels): Removed method.
+       (setPixels): Removed method.
+       (syncJavaToNative): New method.
+       (syncNativeToJava): New method.
+       * gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java
+       (draw): Sync buffers if necessary.
+       (drawGlyphVector): Likewise.
+       (drawImage): Likewise.
+       (drawRenderedImage): Likewise,
+       (fill): Likewise.
+       * include/gnu_java_awt_peer_gtk_CairoSurface.h: Regenerated.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
+       (Java_gnu_java_awt_peer_gtk_CairoSurface_copyAreaNative2): Use pointer to
+       surface rather than pointer to buffer.
+       (Java_gnu_java_awt_peer_gtk_CairoSurface_create): Provide fall-back for
+       copied arrays.
+       (Java_gnu_java_awt_peer_gtk_CairoSurface_destroy): Handle copied arrays.
+       (Java_gnu_java_awt_peer_gtk_CairoSurface_getFlippedBuffer): Retrieve
+       information on size using JNI calls.
+       (Java_gnu_java_awt_peer_gtk_CairoSurface_getElem): Removed.
+       (Java_gnu_java_awt_peer_gtk_CairoSurface_getPixels): Removed.
+       (Java_gnu_java_awt_peer_gtk_CairoSurface_setElem): Removed.
+       (Java_gnu_java_awt_peer_gtk_CairoSurface_setPixels): Removed.
+       (Java_gnu_java_awt_peer_gtk_CairoSurface_syncJavaToNative): New function.
+       (Java_gnu_java_awt_peer_gtk_CairoSurface_syncNativeToJava): New function.
+       (BUFFER): Removed constant.
+       (SHARED): New constant.
+
+2007-02-20  Gary Benson  <gbenson@redhat.com>
+
+       * javax/management/ObjectName.java
+       (domainMatches): New method.
+       (apply): Rearranged to use the above.
+
+2007-02-19  Mark Wielaard  <mark@klomp.org>
+
+       * doc/.cvsignore: Add *.1.
+       * doc/Makefile.am (CLEANFILES): Add Tools_MANFILES.
+
+2007-02-19  Dalibor Topic  <robilad@kaffe.org>
+
+       * cp-hacking.texinfo, cp-tools.texinfo, 
+       cp-vmintegration.texinfo: Prefix output file name
+       with cp.
+
+2007-02-19  Gary Benson  <gbenson@redhat.com>
+
+       * javax/management/ObjectName.java
+       (properties): Initialize when declared.
+       (ObjectName(String)): Don't initialize properties here.
+       (ObjectName(String, String, String): Likewise.
+
+2007-02-19  Chris Burdess  <dog@gnu.org>
+
+       Fixes #30831
+       * gnu/xml/dom/ls/SAXEventSink.java: Only set extended document
+         properties when reader is available.
+
+2007-02-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/MBeanServer.java:
+       (queryMBeans(ObjectName,QueryExp)): Returned
+       generically-typed Set.
+       (queryNames(ObjectName,QueryExp)): Likewise.
+       * javax/management/MBeanServerConnection.java:
+       (queryMBeans(ObjectName,QueryExp)): Returned
+       generically-typed Set.
+       (queryNames(ObjectName,QueryExp)): Likewise.
+       * javax/management/ObjectName.java:
+       Use a generically-typed TreeMap.
+       (ObjectName(String,Hashtable<String,String>):
+       Genericized.
+       (getKeyPropertyList()): Likewise.
+       * javax/management/StandardMBean.java:
+       Use a generically-typed interface class.
+       (StandardMBean(Class<?>)): Genericized.
+       (StandardMBean(T, Class<T>)): Likewise.
+       (getImplementationClass()): Likewise.
+       (getMBeanInterface()): Likewise.
+       
+2007-02-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/Descriptor.java:
+       New file.
+       * javax/management/DescriptorRead.java:
+       Likewise.
+       * javax/management/DescriptorAccess.java:
+       Likewise.
+       
+2007-02-16  Matthias Klose  <doko@ubuntu.com>
+
+       * doc/Makefile.am: Add rules to build and install man pages
+       from texinfo docs.
+       * doc/hacking.texinfo doc/tools.texinfo, doc/vmintegration.texinfo:
+       Rename, prefix files with "cp-".
+       * doc/cp-tools.texinfo: Add markup for man page generation,
+       add documentation for command line options for gjar, gjavah,
+       gnative2ascii, gorbd, grmid, grmiregistry, gserialver, gtnameserv.
+       doc/texi2pod.pl: New, taken from the GCC sources.
+
+2007-02-16  Francis Kung  <fkung@redhat.com>
+
+       * gnu/java/awt/ClasspathGraphicsEnvironment.java: New file.
+       * gnu/java/awt/peer/gtk/CairoSurface.java
+       (CairoDataBuffer): Removed inner class.
+       (CairoSurface(int,int,int,int)): New constructor.
+       (CairoSurface(int,int)): Delegate to new constructor.
+       (CairoSurface(SampleModel,CairoSurface,Rectangle,Point)): New constructor
+       for creating child rasters.
+       (create): Added int[] parameter.
+       (createChild): New method.
+       (createCompatibleWritableRaster): New methods.
+       (createTranslatedChild): New method.
+       (createWritableChild): New method.
+       (createWritableTranslatedChild): New method.
+       (destroy): Added int[] parameter.
+       (dispose): Only free native resources if this Surface has no parents.
+       (isCompatibleColorModel): New method.
+       (isCompatibleSampleModel): New method.
+       * gnu/java/awt/peer/gtk/CairoSurfaceGraphics.java
+       (draw): Set transform, smarter bounds generation.
+       (drawComposite): Improved clipping.
+       (drawImage): Fixed bounds translation.
+       (drawRenderedImage): Set transform in buffer.
+       (fill): Set transform in buffer.
+       * gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
+       (createRaster): New method.
+       * java/awt/image/BufferedImage.java
+       (BufferedImage(int,int,int)): Use optimized raster if possible.
+       * include/gnu_java_awt_peer_gtk_CairoSurface.h: Regenerated.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
+       (Java_gnu_java_awt_peer_gtk_CairoSurface_create): Share data buffer between
+       Cairo and Java.
+       (Java_gnu_java_awt_peer_gtk_CairoSurface_destroy): Free data array.
+
+2007-02-16  Francis Kung  <fkung@redhat.com>
+
+       * javax/management/NotificationBroadcasterSupport.java: Update imports.
+
+2007-02-16  Andrew Haley  <aph@redhat.com>
+
+        * gnu/java/lang/management/MemoryMXBeanImpl.java,
+        javax/management/MBeanServerDelegate.java: Use
+        gnu.javax.management.ListenerData rather than
+        gnu.classpath.ListenerData.
+        * gnu/javax/management/ListenerData.java: Move here from
+        gnu/classpath/ListenerData.java.
+
+2006-10-14  Edwin Steiner  <edwin.steiner@gmx.net>
+
+       PR classpath/28652:
+       * javax/management/MBeanInfo.java (MBeanInfo): 
+       Use clone to duplicate the arrays in order to
+       preserve the array type.
+       
+2007-02-15  Gary Benson  <gbenson@redhat.com>
+
+       * gnu/javax/management/Server.java
+       (registerMBean): Always register objects that implement the
+       MBeanRegistration interface, and check the name returned by
+       preRegister before using it.
+
+2007-02-15  Roman Kennke  <kennke@aicas.com>
+
+       * java/nio/ByteOrder.java
+       (nativeOrder): Avoid NPE when comparing a system property.
+
+2007-02-13  Gary Benson  <gbenson@redhat.com>
+
+       * javax/management/ObjectName.java
+       (toString): Return this item's canonical name.
+
+2007-02-12  Francis Kung  <fkung@redhat.com>
+
+       * gnu/java/awt/ClasspathToolkit.java: 
+       * gnu/java/awt/peer/gtk/AsyncImage.java,
+       * gnu/java/awt/peer/gtk/BufferedImageGraphics.java,
+       * gnu/java/awt/peer/gtk/CairoGraphics2D.java,
+       * gnu/java/awt/peer/gtk/CairoSurface.java,
+       * gnu/java/awt/peer/gtk/ComponentGraphics.java,
+       * gnu/java/awt/peer/gtk/FreetypeGlyphVector.java,
+       * gnu/java/awt/peer/gtk/GdkFontPeer.java,
+       * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java,
+       * gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java,
+       * gnu/java/awt/peer/gtk/GtkCheckboxPeer.java,
+       * gnu/java/awt/peer/gtk/GtkChoicePeer.java,
+       * gnu/java/awt/peer/gtk/GtkClipboard.java,
+       * gnu/java/awt/peer/gtk/GtkClipboardNotifier.java,
+       * gnu/java/awt/peer/gtk/GtkComponentPeer.java,
+       * gnu/java/awt/peer/gtk/GtkFileDialogPeer.java,
+       * gnu/java/awt/peer/gtk/GtkFramePeer.java,
+       * gnu/java/awt/peer/gtk/GtkImage.java,
+       * gnu/java/awt/peer/gtk/GtkImageConsumer.java,
+       * gnu/java/awt/peer/gtk/GtkLabelPeer.java,
+       * gnu/java/awt/peer/gtk/GtkListPeer.java,
+       * gnu/java/awt/peer/gtk/GtkMainThread.java,
+       * gnu/java/awt/peer/gtk/GtkMenuBarPeer.java,
+       * gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java,
+       * gnu/java/awt/peer/gtk/GtkMenuPeer.java,
+       * gnu/java/awt/peer/gtk/GtkMouseInfoPeer.java,
+       * gnu/java/awt/peer/gtk/GtkScrollbarPeer.java,
+       * gnu/java/awt/peer/gtk/GtkScrollPanePeer.java,
+       * gnu/java/awt/peer/gtk/GtkSelection.java,
+       * gnu/java/awt/peer/gtk/GtkTextAreaPeer.java,
+       * gnu/java/awt/peer/gtk/GtkTextFieldPeer.java,
+       * gnu/java/awt/peer/gtk/GtkToolkit.java,
+       * gnu/java/awt/peer/gtk/GtkWindowPeer.java,
+       * gnu/java/awt/peer/gtk/VolatileImageGraphics.java,
+       * java/awt/RenderingHints.java,
+       * java/awt/image/BufferedImage.java: Reformatted and added generics.
+
+2007-02-12  Tom Tromey  <tromey@redhat.com>
+
+       * java/net/Socket.java (bind): Typo fix.
+
+2007-02-12  Tom Tromey  <tromey@redhat.com>
+
+       * vm/reference/java/lang/reflect/Method.java (getDefaultValue):
+       New method.
+       * sun/reflect/annotation/AnnotationInvocationHandler.java (create):
+       New method.
+       (arrayClone): New method.
+       (invoke): Clone array return results.
+
+2007-02-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR 23566
+       * scripts/timezones.pl: Parse each file in 2 passes, in one parse
+       just Rule lines, in the other everything else.  Pass 0 instead of
+       $savings as second argument to parseRule when parsing the start
+       rule.
+       * java/util/TimeZone.java (timezones): Regenerate from tzdata2007a.
+
+2007-02-12  Jakub Jelinek  <jakub@redhat.com>
+
+       * vm/reference/java/util/VMTimeZone.java: Rewrite to handle both
+       the old 'TZif\0' format and the new one.
+       * java/util/TimeZone.java: Handle default (one hour) daylight
+       savings.
+
+2007-02-12  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/Query.java:
+       New file.
+       * javax/management/StandardMBean.java:
+       Use the implementation's class loader.
+       
+2007-02-10  Mark Wielaard  <mark@klomp.org>
+
+       * javax/swing/plaf/metal/MetalFileChooserUI.java: Import Date from
+       java.util, not from java.sql.
+
+2007-02-10  Roman Kennke  <kennke@aicas.com>
+
+       * javax/imageio/stream/ImageOutputStreamImpl.java
+       (flushBits): Implemented.
+       (writeBit): Implemented.
+       (writeBits): Implemented.
+
+2007-02-10  Roman Kennke  <kennke@aicas.com>
+
+       * javax/swing/TransferHandler.java
+       (SwingDragGestureRecognizer): New inner class.
+       (SwingDragHandler): New inner class.
+       (recognizer): New field.
+       (exportAsDrag): Implemented missing method.
+
+2007-02-10  Roman Kennke  <kennke@aicas.com>
+
+       * java/awt/GraphicsConfiguration.java
+       (createCompatibleVolatileImage(int,int,ImageCapabilities): Provide
+       default implementation that delegates to
+       createCompatibleVolatileImage(int,int).
+       (createCompatibleVolatileImage(int,int,ImageCapabilities,int):
+       New method from JDK5 spec. Default implementation by delegating to
+       (createCompatibleVolatileImage(int,int,int).
+
+2007-02-09  Tom Tromey  <tromey@redhat.com>
+
+       PR libgcj/30647:
+       * configure.ac: Also check for jack/jack.h.
+
+2007-02-09  Mario Torre  <neugens@limasoftware.net>
+
+       * java/io/File.java: remove import for
+       gnu.classpath.NotImplementedException.
+       (getUsableSpace): removed stub.
+       (getFreeSpace): likewise.
+       (getTotalSpace): likewise.
+
+2007-02-09  Mario Torre  <neugens@limasoftware.net>
+
+       * vm/reference/java/io/VMFile.java: 
+       (canExecute): new 1.6 native method.
+       (setReadable): likewise.
+       (setWritable): likewise.
+       (setExecutable): likewise.
+       * java/io/File.java: added import for gnu.classpath.NotImplementedException.
+       (setReadOnly): new 1.6 method.
+       (canExecute): likewise. 
+       (setReadable): likewise. 
+       (setWritable): likewise.
+       (setExecutable): likewise.
+       (getUsableSpace): added stub for new 1.6 method.
+       (getFreeSpace): likewise.
+       (getTotalSpace): likewise.
+       (checkExec): new private method to support new 1.6 additions.
+       * native/jni/java-io/java_io_VMFile.c:
+       set_file_permissions: new helper function.
+       Java_java_io_VMFile_setReadable: new native method to bakcup 1.6 methods
+       in VMFile.java.
+       Java_java_io_VMFile_setWritable: likewise. 
+       Java_java_io_VMFile_setExecutable: likewise. 
+       Java_java_io_VMFile_canExecute: likewise. 
+       * native/jni/native-lib/cpio.h: added new flags: CPFILE_FLAG_EXEC,
+       CPFILE_FLAG_USR and CPFILE_FLAG_OFF.
+       cpio_chmod: new function declaration.
+       cpio_checkAccess: likewise.
+       * native/jni/native-lib/cpio.c:
+       cpio_chmod: new function definition.
+       cpio_checkAccess: likewise.
+
+2007-02-09  Gary Benson  <gbenson@redhat.com>
+
+       * javax/management/ObjectName.java
+       (quote): Initialize StringBuilder correctly.
+
+2007-02-09  Francis Kung  <fkung@redhat.com>
+
+       * java/awt/image/BufferedImage: Reformatted.
+
+2007-02-09  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+
+       Fixes bug #30732
+       * gnu/java/util/regex/RETokenChar.java(chain): Check whether the next
+       token has a next token.
+
+2007-02-08  Roman Kennke  <kennke@aicas.com>
+
+       PR 30347
+       * javax/swing/JViewport.java
+       (scrollRectToVisible): Use correct X/Y offset for calculations.
+       (paintBackingStore): Update backbuffer when we are not the paint
+       root.
+
+2007-02-08  Roman Kennke  <kennke@aicas.com>
+
+       * java/awt/image/SinglePixelPackedSampleModel.java
+       (getDataElements(int,int,Object,DataBuffer)):
+       Replace DataBuffer using method with simple
+       switch. This does not check for the exact type (class) of the
+       DataBuffer but instead checks the transfer type.
+       (getDataElements(int,int,int,intObject,DataBuffer)): Removed.
+       (setDataElements): Fixed indentation.
+       (setPixels): Removed unused statement.
+
+2007-02-07  Tom Tromey  <tromey@redhat.com>
+
+       * tools/gnu/classpath/tools/javah/PathOptionGroup.java
+       (PathOptionGroup): Allow '-cp' as well.
+
+2007-02-07  Chris Burdess  <dog@gnu.org>
+
+       Fixes PR 30718.
+       * gnu/xml/dom/ls/SAXEventSink.java: Add public accessor/mutators.
+       * gnu/xml/transform/XSLURIResolver.java: Add support for custom
+         SAXSources without a backing URL or stream.
+
+2007-02-06  Tom Tromey  <tromey@redhat.com>
+
+       PR libgcj/30707:
+       * tools/gnu/classpath/tools/javah/JniIncludePrinter.java
+       (printClass): Always print a header.
+
+2007-02-06  Chris Burdess  <dog@gnu.org>
+
+       Fixes PR 27710.
+       * gnu/xml/dom/DomDocumentBuilderFactory.java: Fall back to synchronous
+         LSParser if implementation does not support asynchronous.
+       * gnu/xml/stream/XMLParser.java,
+         gnu/xml/stream/XIncludeFilter.java: Use custom code instead of
+         java.net.URL to resolve to an an absolute URI, to avoid nonexistent
+         protocol handler problems.
+
+2007-02-05  Andrew Haley  <aph@redhat.com>
+
+        PR cp-tools/30706
+        * tools/gnu/classpath/tools/javah/JniIncludePrinter.java:
+        (printClass): Replace '/' in filenames with '_'.
+        * tools/gnu/classpath/tools/javah/JniStubPrinter.java
+        (printClass): Likewise.
+
+2007-02-05  Tom Tromey  <tromey@redhat.com>
+
+       * java/net/Proxy.java (equals): Handle case where address==null.
+       (hashCode): Likewise.
+       (toString): Likewise.
+
+2007-02-04  Jeroen Frijters  <jeroen@frijters.net>
+
+       * java/lang/Class.java
+       (newInstance): Moved setAccessible call to helper method.
+       (getEnumConstants): Call new helper method to allow values method to be
+       called on non-public enum classes.
+       (setAccessible): New helper method.
+       * java/lang/Enum.java
+       (valueOf): Call new helper method in class to allow field value to
+       be read on non-public enum classes.
+
+2007-02-04  Jeroen Frijters  <jeroen@frijters.net>
+
+       Fix for #30693
+       * gnu/java/nio/charset/ByteCharset.java
+       (ByteCharset.Decoder.decodeLoop): Reset input buffer position if
+       the byte read was unmappable.
+
+2007-02-02  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/processor/StackFrameCommandSet.java
+       (executeGetValues): Changed getFrame to use a jlong to pass frameID.
+       (executeSetValues): Ditto.
+       (executeThisObject): Ditto.
+       * vm/reference/gnu/classpath/jdwp/VMFrame.java: Added thread field and a
+       constructor used to create VMFrames.
+       (getThread): New method.
+       * vm/reference/gnu/classpath/jdwp/VMVirtualMachine.java(getFrame): Changed
+       to take a long instead of a ByteBuffer to pass the frameID.
+
+2007-02-01  Tom Tromey  <tromey@redhat.com>
+
+       * java/util/logging/LogManager.java (reset): Remove bogus
+       'while'.
+
+2007-01-31  Casey Marshall  <csm@gnu.org>
+
+       * gnu/javax/net/ssl/Base64.java: move to `gnu/java/util/Base64.java.' 
+       * gnu/javax/net/ssl/PrivateCredentials.java: clean up unused imports.
+       (add): use `gnu.java.util.Base64.'
+       * gnu/java/net/protocol/http/Request.java (authenticate): use
+       `gnu.java.util.Base64.'
+       * tools/gnu/classpath/tools/jarsigner/HashUtils.java (hashStream):
+       likewise.
+       * tools/gnu/classpath/tools/keytool/CertReqCmd.java (start): likewise.
+       * tools/gnu/classpath/tools/keytool/ExportCmd.java (start): likewise.
+       * tools/gnu/classpath/tools/keytool/ListCmd.java (printRFC1421):
+       likewise.
+       * gnu/java/net/Base64.java: removed.
+       * gnu/java/security/util/Base64.java: removed.
+
+2007-01-31  Casey Marshall  <csm@gnu.org>
+
+       Fixes PR classpath/24191.
+       Fix suggested by Rafael Teixeira <monoman@gmail.com>.
+       * javax/crypto/CipherOutputStream.java (write): check return value
+       of `update' for null.
+
+2007-01-31  Tom Tromey  <tromey@redhat.com>
+
+       * resource/gnu/classpath/tools/jar/messages.properties
+       (Main.Stdin): New message.
+       * tools/gnu/classpath/tools/jar/Main.java (initializeParser): Add
+       '-@' option.
+       (readNames): New method.
+       (run): Use it.
+
+2007-01-30  Roman Kennke  <kennke@aicas.com>
+
+       PR 20577
+       * javax/swing/DefaultDesktopManager.java
+       (activateFrame): Added a bunch of null checks. Don't call
+       JInternalFrame.setSelected() to avoid recursion.
+
+2007-01-29  Andrew Haley  <aph@redhat.com>
+
+       * java/lang/SecurityManager.java (SecurityManager): Load and
+       initialize java.security.Security.
+
+2007-01-28  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+
+       * native/jni/java-nio/gnu_java_nio_VMChannel.c
+       (Java_gnu_java_nio_VMChannel_accept): Throw SocketTimeoutException
+       in case of timeout.
+       * native/jni/java-nio/javanio.c(cpnio_accept): Call select() if
+       SO_RCVTIMEO is set.
+
+2007-01-26  Tom Tromey  <tromey@redhat.com>
+
+       * tools/gnu/classpath/tools/javah/FieldHelper.java (print): Print
+       'volatile' after field type.
+
+2007-01-26  Chris Burdess  <dog@gnu.org>
+
+       Fixes #30597
+       * gnu/xml/dom/DomDocumentBuilder.java: Throw IOException where cause
+         of LSException is an IOException.
+       * gnu/xml/dom/ls/DomLSParser.java,
+         gnu/xml/stream/SAXParser.java: Ensure coalescing feature is set
+         correctly during LS parsing.
+
+2007-01-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/PersistentMBean.java:
+       New file.
+       
+2007-01-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/AttributeChangeNotificationFilter.java:
+       Correct typo.
+       * javax/management/NotificationFilterSupport.java:
+       New file.
+       
+2007-01-21  Mark Wielaard  <mark@klomp.org>
+
+       * java/security/SecureClassLoader.java (defineClass): Method returns
+       Class<?>.
+       * java/security/SignatureSpi.java (engineUpdate(ByteBuffer):
+       Does not throw SignatureException. Chain SignatureException inside
+       IllegalStateException.
+
+2007-01-21  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/NotificationBroadcasterSupport.java:
+       New file.
+       
+2007-01-20  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+
+       * java/text/DecimalFormat.java(parse): Corrected the ParsePosition
+       settings.
+
+2007-01-20  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+
+       * java/text/SimpleDateFormat(parse): Corrected the usage of
+               NumberFormat.
+
+2007-01-20  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+
+       Fixes bug #30488
+       * native/jni/native-lib/cpnet.c(SOCKET_NOSIGNAL): Deleted,
+       (setsockopt_NOSIGPIPE): New function,
+       (cpnet_send): Corrected the option setting to send(),
+       (cpnet_sendTo): Corrected the option setting to sendto(). 
+
+2007-01-19  Marco Trudel  <mtrudel@gmx.ch>
+
+       * java/util/Arrays.java (binarySearch): Change comparison order.
+
+2007-01-17  Keith Seitz  <keiths@redhat.com>
+
+       * gnu/classpath/jdwp/events/filters/StepFilter.java:
+       Update javadoc. 
+       (matches): Implement.
+
+       * gnu/classpath/jdwp/event/EventManager.java (EventManager): Honor
+       agent startup suspension for VM_INIT.
+
+2007-01-17  Tom Tromey  <tromey@redhat.com>
+
+       * tools/gnu/classpath/tools/javah/PathOptionGroup.java
+       (PathOptionGroup): Set default boot class path.
+
+2007-01-17  Mark Wielaard  <mark@klomp.org>
+
+       * javax/activity/ActivityCompletedException.java: Make constructors
+       public.
+       * javax/activity/ActivityRequiredException.java: Likewise.
+       * javax/activity/InvalidActivityException.java: Likewise.
+
+2007-01-17  Roman Kennke  <kennke@aicas.com>
+
+       * javax/swing/plaf/basic/BasicRadioButtonUI.java
+       (paint): Use helper method to figure out icon. Don't override
+       the icon field in that class. Check for null icons.
+       (getCurrentIcon): New helper function to determine icon to be
+       painted.
+
+2007-01-17  Mark Wielaard  <mark@klomp.org>
+
+       * javax/activity/ActivityCompletedException.java: New file.
+       * javax/activity/ActivityRequiredException.java: Likewise.
+       * javax/activity/InvalidActivityException.java: Likewise.
+       * javax/activity/package.html: Likewise.
+
+2007-01-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/DefaultLoaderRepository.java:
+       (loadClass(String)): Made static.
+       (loadClassWithout(String,ClassLoader)): Likewise.
+
+2007-01-15  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/exception/TypeMismatchException.java: New file.
+       * gnu/classpath/jdwp/exception/InvalidFrameException.java: Fix indentation.
+       * gnu/classpath/jdwp/exception/InvalidSlotException.java: Fix indentation.
+       
+2007-01-15  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/AttributeValueExp.java:
+       Corrected serialVersionUID typo.
+       * javax/management/DefaultLoaderRepository.java:
+       New file.
+       * javax/management/MBeanServerFactory.java:
+       Add generic typing.
+       
+2007-01-15  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/exception/InvalidFrameException.java: New file.
+
+2007-01-15  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/exception/AbsentInformationException.java: New file.
+
+2007-01-15  Kyle Galloway  <kgallowa@redhat.com>
+
+       * gnu/classpath/jdwp/exception/InvalidSlotException.java: New file.
+
+2007-01-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/AttributeValueExp.java: New file.
+       * javax/management/QueryEval.java: Likewise.
+       * javax/management/StringValueExp.java: Likewise.
+       
+2007-01-14  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/AttributeChangeNotificationFilter.java:
+       New file.
+       
+2007-01-11  Andreas Tobler  <a.tobler@schweiz.org>
+
+       * examples/gnu/classpath/examples/awt/AicasGraphicsBenchmark.java
+       (AicasGraphicsBenchmark): Load images from ../icons.
+       * examples/gnu/classpath/examples/java2d/J2dBenchmark.java (init):
+       Likewise.
+       * examples/Makefile.am (EXAMPLE_ICONS): Add rule to copy *.gif files
+       to icons.
+       * examples/gnu/classpath/examples/awt/aicas.png: Move to ../icons.
+       Delete here.
+       * examples/gnu/classpath/examples/awt/palme.gif: Likewise.
+       * examples/gnu/classpath/examples/java2d/aicas.png: Likewise.
+       * examples/gnu/classpath/examples/java2d/palme.gif: Likewise.
+       * examples/gnu/classpath/examples/icons/aicas.png: Moved.
+       * examples/gnu/classpath/examples/icons/palme.gif: Likewise.
+
+2007-01-09  Tania Bento  <tbento@redhat.com>
+
+       * java/security/Permission.java:
+       (toString): If there are no actions, then there should not 
+       be a space between its name and ')'.
+
+2007-01-08  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * javax/management/AttributeChangeNotification.java:
+       New file.
+       
+2007-01-08  Cameron McCormack  <cam@mcc.id.au>
+
+       PR 30355
+       * java/util/Arrays.java:
+       (binarySearch(byte[],byte)): Added check for zero-length array.
+       (binarySearch(short[],short)): Likewise.
+       (binarySearch(int[],int)): Likewise.
+       (binarySearch(long[],long)): Likewise.
+       (binarySearch(char[],char)): Likewise.
+       (binarySearch(float[],float)): Likewise.
+       (binarySearch(double[],double)): Likewise.
+       (binarySearch(Object[],Object)): Likewise.
+       (binarySearch(T[],T,Comparator)): Likewise.
+
+2007-01-08  Tom Tromey  <tromey@redhat.com>
+
+       * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java (run):
+       Fix length check.  PR classpath/30346.
+
+2007-01-09  Raif S. Naffah  <classpath@naffah-raif.name>
+
+       * tools/gnu/classpath/tools/jarsigner/SFHelper.java: Updated copyright year.
+       (sfEntries): Use generics.
+       (writeDSA()): Likewise.
+       (startSigning()): Likewise.
+       (updateEntry()): Likewise.
+       * tools/gnu/classpath/tools/jarsigner/Messages.java: Updated copyright year.
+       (CACHED_FORMATS): Use generics.
+       (getFormattedString()): Likewise.
+       * tools/gnu/classpath/tools/jarsigner/Main.java: Updated copyright year.
+       (fileAndAlias): Use generics.
+       (ToolParser.validate()): Likewise.
+       * tools/gnu/classpath/tools/jarsigner/JarVerifier.java:
+       Updated copyright year.
+       Re-ordered imports and removed unused entries.
+       (entryHashes): Use generics.
+       (start()): Likewise.
+       (verifySFEntries()): Likewise.
+       Use map's entrySet() instead of its keySet().
+
+2007-01-08  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/text/DateFormat.java:
+       (computeInstance(int,int,Locale,boolean,boolean)):
+       Throw an exception when locale info. is unavailable.
+       (computeDefault(int,int,boolean,boolean)): New method.
+       (getDateInstance(int,Locale)): Check providers.
+       (getDateTimeInstance(int,int,Locale)): Likewise.
+       (getTimeInstance(int,Locale)): Likewise.
+       * java/text/DateFormatSymbols.java:
+       Update documentation to match DecimalFormatSymbols.
+       * java/text/DecimalFormatSymbols.java:
+       (DecimalFormatSymbols(Locale)): Reordered.
+       (getInstance()): Implemented.
+       (getInstance(Locale)): Implemented.
+       * java/text/NumberFormat.java:
+       (computeInstance(Locale,String,String)):
+       Throw an exception when locale info is unavailable.
+       (getCurrencyInstance(Locale)): Check providers.
+       (getIntegerInstance(Locale)): Likewise.
+       (getNumberInstance(Locale)): Likewise.
+       (getPercentInstance(Locale)): Likewise.
+       * java/text/spi/DateFormatProvider.java: New file.
+       * java/text/spi/DecimalFormatSymbolsProvider.java: Likewise.
+       * java/text/spi/NumberFormatProvider.java: Likewise.
+       
+2007-01-07  Ito Kazumitsu  <kaz@maczuka.gcd.org>
+
+       Fixes bug #30377
+       * native/jni/native-lib/cpnet.h: Add some include files.
+
+2007-01-07  Roman Kennke  <roman@kennke.org>
+
+       PR 30337
+       * java/awt/Component.java
+       (getFontImpl): Return null when the component has no font set
+       and also has no parent yet.
+       * javax/swing/plaf/basic/BasicComboBoxUI.java
+       (PropertyChangeHandler.propertyChange): Only add editor when combo
+       box is editable. Avoid fetching the property name repeatedly.
+       Invalidate when renderer or prototypeDisplayValue change.
+       (uninstallComponents): Unconfigure everything and then remove all
+       components.
+       * javax/swing/plaf/basic/BasicComboPopup.java
+       (uninstallingUI): Don't nullify list model.
+       * javax/swing/plaf/metal/MetalComboBoxUI.java
+       (createArrowButton): Pass currentValuePane to the MetalComboBoxButton
+       constructor rather than a new (unconnected) CellRendererPane.
+
+2007-01-06  Roman Kennke  <roman@kennke.org>
+
+       PR 30337
+       * javax/swing/plaf/basic/BasicComboBoxUI.java
+       (installUI): Install popup and list here.
+       Don't configure the arrow button and editor here.
+       (installComponents): Don't install popup and list here. (Moved
+       to installUI). Configure arrow button here and check for null.
+       (addEditor): Configure editor here.
+       (configureArrowButton): Directly fetch listeners from popup.
+       (paintCurrentValue): Removed unused local variables.
+       (layoutContainer): Removed unused local variables.
+       (PropertyChangeHandler.propertyChange): Don't invalidate minimumSize
+       on each property change. Avoid calling getPropertyName() repeatedly.
+       Clean up. Call addEditor() when editor changes. Configure and
+       unconfigure editor when editable changes. Use 'model' instead
+       of non-existing 'dataModel' property.
+       * javax/swing/plaf/basic/BasicComboPopup.java
+       (uninstallingUI): Remove property change listener and item listener
+       here. Uninstall list listeners. Set model to null to prevent leakage.
+       (configureList): Don't sync list selection there.
+       (uninstallComboBoxListeners): Moved to uninstallingUI.
+       (uninstallListeners): Moved to uninstallingUI.
+       * javax/swing/plaf/metal/MetalComboBoxUI.java
+       (createPopup): Call super.
+       (getMinimumSize): Removed unused statement.
+
+2007-01-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/text/Collator.java:
+       (getInstance(Locale)): Check providers.
+       * java/text/spi/CollatorProvider.java:
+       New file.
+       
+2007-01-04  Roman Kennke  <roman@kennke.org>
+
+       PR 30122
+       * java/awt/Component.java
+       (getFont): Don't synchronize on tree lock here. The method is
+       thread-safe 'enough' by fetching local variables in getFontImpl().
+
+2007-01-04  Roman Kennke  <roman@kennke.org>
+
+       * java/awt/AWTEvent.java
+       (toString): Don't include the whole component in the output,
+       only its name.
+       * java/awt/Component.java
+       (isShowing): Create local copy of parent field for better
+       thread safety and efficiency.
+       * java/awt/EventDispatchThread.java
+       (EventDispatchThread): Make sure the event thread is not a daemon
+       thread in case it gets started by a daemon thread.
+       * java/awt/image/IndexColorModel.java
+       (createColorMap): New helper method for creating the color map.
+       (IndexColorModel): (all constructors) use createColorMap() helper
+       method.
+
+2007-01-04  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/awt/font/autofit/GlyphHints.java
+       (alignStrongPoints): Don't special case the vertical dimension.
+       (computeInflectionPoints): Corrected computation of inflection
+       points.
+       * gnu/java/awt/font/autofit/Utils.java
+       (ANGLE_4PI): Removed.
+       (ANGLE_PI2): New constant for PI/2.
+       (ANGLE_PI4): New constant for PI/4.
+       (angleDiff): Fixed.
+       (atan): Fixed.
+
+2007-01-03  Cameron McCormack  <cam@mcc.id.au>
+
+       Fixes bug #29246
+       * java/awt/Toolkit.java (getLockingKeyState): Use AWTUtilities
+       isValidKey method. Throw UnsupportedOperationException on a valid
+       key (for which no locking state can be given).
+       * gnu/java/awt/AWTUtilities.java (isValidKey): New method.
+       * gnu/java/awt/peer/gtk/GtkToolkit.java (getLockingKeyState): New
+       method.
+       * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
+       (Java_gnu_java_awt_peer_gtk_GtkToolkit_getLockState): New method.
+       * include/gnu_java_awt_peer_gtk_GtkToolkit.h: Regenerated.
+
+2007-01-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/text/BreakIterator.java:
+       (getCharacterInstance(Locale)): Check providers.
+       (getLineInstance(Locale)): Likewise.
+       (getSentenceInstance(Locale)): Likewise.
+       (getWordInstance(Locale)): Likewise.
+       * java/text/spi/BreakIteratorProvider.java:
+       New file.
+       * java/text/spi/DateFormatSymbolsProvider.java:
+       Update header text.
+       * java/util/ServiceConfigurationError.java:
+       Add serialVersionUID.
+       
+2007-01-03  Francis Kung  <fkung@redhat.com>
+
+       * gnu/java/awt/peer/gtk/CairoGraphics2D.java:
+       (copy): Copy and set antialias value.
+
+2007-01-03  Tania Bento  <tbento@redhat.com>
+
+       * java/awt/CardLayout.java:
+       (maximumLayoutSize): Return a new Dimension with a width of value
+       Integer.MAX_VALUE and a height of value Integer.MAX_VALUE if Component
+       has no components.
+
+2007-01-03  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/text/DateFormatSymbols.java:
+       (getZoneStrings(ResourceBundle)): Changed to...
+       (getZoneStrings(ResourceBundle,Locale)): Added
+       use of TimeZoneNamesProvider.
+       (getZoneStrings()): Return either mutated zone
+       strings or initial ones.
+       (getInstance(Locale)): Check DateFormatSymbolsProvider
+       instances.
+       * java/text/spi/DateFormatSymbolsProvider.java:
+       New file.
+       * java/text/spi/package.html: New file.
+       
+2007-01-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * java/util/Currency.java:
+       (getSymbol(Locale)): Removed unneeded variable
+       and terminate loop early.
+       * java/util/Locale.java:
+       (getDisplayLanguage(Locale)): Fixed to use
+       LocaleNameProvider.
+       (getDisplayCountry(Locale)): Likewise.
+       (getDisplayVariant(Locale)): Likewise.
+       * java/util/spi/LocaleNameProvider.java:
+       New file.
+       * java/util/spi/TimeZoneNameProvider.java:
+       Likewise.
+       
+2007-01-02  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * gnu/java/locale/LocaleHelper.java:
+       (getLocalizedString(Locale,String,String,boolean,
+       boolean)): Removed, no longer needed.
+       (getFallbackLocale(Locale)): Implemented.
+       * java/lang/String.java:
+       (isEmpty()): Implemented.
+       * java/util/Currency.java:
+       (getSymbol(Locale)): Reimplemented to use SPI.
+       * java/util/Locale.java:
+       (ROOT): Added.
+       * java/util/spi/CurrencyNameProvider.java:
+       New file.
+       * java/util/spi/LocaleServiceProvider.java:
+       Likewise.
+       * java/util/spi/package.html: Likewise.
+       
+2007-01-02  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/awt/java2d/AbstractGraphics2D.java
+       (FONT): New constant field. This is the default font to use as long
+       as nothing else is set.
+       (paintContext): New field. Temporarily stores the paint context.
+       (scanlineConverters): New field. Stores the scanline converters
+       for each thread.
+       (shapeCache): Genericified.
+       (STANDARD_HINTS): New constant field. The standard rendering hints
+       as long as nothing else is set.
+       (STANDARD_STROKE): New constant field. The standard stroke as long
+       as nothing else is set.
+       (static_initializer): Initialize standard hints.
+       (AbstractGraphics2D): Use constant fields for hints and stroke.
+       (drawGlyphVector): Use simpler method to draw the outline.
+       (fillScanline): Use paintContext field.
+       (fillShape): Use new ScanlineConverter to fill shapes.
+       (fillShapeAntialias): Removed. This will be done in fillShape.
+       (fillShapeImpl): Removed. This is done now in the ScanlineConverter
+       class.
+       (getScanlineConverter): New method. Returns the scanline converter
+       for each thread.
+       (getSegments): Removed. This is now implemented in ScanlineConverter.
+       (getShapeCache): Use genericified shapeCache field.
+       (init): Use fixed default font. Don't fetch destination raster here.
+       * gnu/java/awt/java2d/ActiveEdges.java: New class. Stores a set
+       of active edges for scanline conversion.
+       * gnu/java/awt/java2d/PolyEdge.java
+       (poolNext): Implements linked list for edge pool.
+       (scanlineNext): Implements linked list for scanline edge lists.
+       (slope): Use fixed point decimal.
+       (slope,x0,y0,x1,y1,xIntersection): Use fixed point decimal.
+       (PolyEdge()): New constructor.
+       (PolyEdge): Use fixed point decimals.
+       (init): Use fixed point decimals.
+       (intersect): New method. Intersects this edge with a scanline.
+       * gnu/java/awt/java2d/Scanline.java: New class. A list of edges
+       for a scanline plus utilities.
+       * gnu/java/awt/java2d/ScanlineConverter.java: New class. Implements
+       an efficient scanline converter for rendering Shape objects.
+
+2007-01-02  Roman Kennke  <roman@kennke.org>
+
+       * gnu/java/math/Fixed.java: New class. Fixed point arithmetics
+       utilities.
+
+2007-01-01  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+       * ChangeLog-2006: New file.
+       * gnu/classpath/ServiceFactory.java:
+       Add option of throwing a ServiceConfigurationError.
+       (lookupProviders(Class,ClassLoader,boolean)): Implemented.
+       * java/util/ServiceConfigurationError.java: New file.
+       * java/util/ServiceLoader.java: Likewise.
+       
+
+\f
+Local Variables:
+coding: iso-latin-1-unix       
+End:
index 7dc67d278848d4cbee45772b3d9775f3def70bb6..010aad3ebb07944688d4719fd95fa444f5b7fc3a 100644 (file)
@@ -1,3 +1,14 @@
+2008-06-28  Matthias Klose  <doko@ubuntu.com>
+
+       * m4/ac_prog_javac.m4: Disable check for JAVAC, when
+       not configured with --enable-java-maintainer-mode.
+       * aclocal.m4, configure: Regenerate.
+       * native/jni/gstreamer-peer/Makefile.am: Do not link with
+       libclasspathnative.
+       * native/jni/gstreamer-peer/Makefile.in: Regenerate.
+       * tools/Makefile.am, lib/Makefile.am: Use JAVAC for setting
+       JCOMPILER, drop flags not understood by gcj.
+
 2008-06-24  Tom Tromey  <tromey@redhat.com>
 
        PR libgcj/32198:
@@ -6,6 +17,62 @@
        * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class:
         Rebuilt.
 
+2008-04-18  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR bootstrap/35457
+       * aclocal.m4: Regenerate.
+       * configure: Regenerate.
+
+2008-04-18  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * lib/gen-classlist.sh.in: Avoid grepping each omission, by
+       building an awk script with a hash for literal files, and
+       awk regular expressions for the rest.
+       * configure.ac: Call AC_PROG_AWK.
+       * configure: Regenerate.
+
+       * m4/gcc_attribute.m4 (GCC_ATTRIBUTE): Fix cache variable name.
+       * tools/Makefile.am (gappletviewer, gjarsigner, gkeytool, gjar)
+       (gnative2ascii, gserialver, gjavah, grmiregistry, gtnameserv)
+       (gorbd, grmid, grmic) [!CREATE_WRAPPERS]: Add stub dependencies
+       for these scripts, to trick automake into hiding the respective
+       rules for the programs below the CREATE_WRAPPERS conditional.
+       * aclocal.m4: Regenerate.
+       * configure: Likewise.
+       * Makefile.in: Likewise.
+       * native/jni/Makefile.in: Likewise.
+       * native/jni/classpath/Makefile.in: Likewise.
+       * native/jni/gstreamer-peer/Makefile.in: Likewise.
+       * native/jni/midi-dssi/Makefile.in: Likewise.
+       * native/jni/gconf-peer/Makefile.in: Likewise.
+       * native/jni/java-io/Makefile.in: Likewise.
+       * native/jni/native-lib/Makefile.in: Likewise.
+       * native/jni/java-util/Makefile.in: Likewise.
+       * native/jni/java-lang/Makefile.in: Likewise.
+       * native/jni/midi-alsa/Makefile.in: Likewise.
+       * native/jni/java-nio/Makefile.in: Likewise.
+       * native/jni/java-net/Makefile.in: Likewise.
+       * native/jni/xmlj/Makefile.in: Likewise.
+       * native/jni/qt-peer/Makefile.in: Likewise.
+       * native/jni/gtk-peer/Makefile.in: Likewise.
+       * native/Makefile.in: Likewise.
+       * native/jawt/Makefile.in: Likewise.
+       * native/fdlibm/Makefile.in: Likewise.
+       * native/plugin/Makefile.in: Likewise.
+       * resource/Makefile.in: Likewise.
+       * scripts/Makefile.in: Likewise.
+       * tools/Makefile.in: Likewise.
+       * doc/Makefile.in: Likewise.
+       * doc/api/Makefile.in: Likewise.
+       * lib/Makefile.in: Likewise.
+       * external/Makefile.in: Likewise.
+       * external/jsr166/Makefile.in: Likewise.
+       * external/sax/Makefile.in: Likewise.
+       * external/w3c_dom/Makefile.in: Likewise.
+       * external/relaxngDatatype/Makefile.in: Likewise.
+       * include/Makefile.in: Likewise.
+       * examples/Makefile.in: Likewise.
+
 2008-04-17  Tom Tromey  <tromey@redhat.com>
 
        PR libgcj/35950:
        Classpath.
        * tools/classes/gnu/classpath/tools/jar/Entry.class: Update.
 
+2008-03-10  Jim Meyering  <meyering@redhat.com>
+
+       Don't leak upon failed realloc.
+       * native/jni/classpath/jcl.c (JCL_realloc): Upon failed realloc,
+       free the original buffer before throwing the exception.
+
+2008-03-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * doc/cp-hacking.texinfo: Fix spacing after periods.
+       * doc/cp-tools.texinfo: Likewise.
+       * doc/cp-vmintegration.texinfo: Likewise.
+
+       * doc/cp-hacking.texinfo: Fix some typos.
+       * doc/cp-tools.texinfo: Likewise.
+       * doc/cp-vmintegration.texinfo: Likewise.
+
 2008-03-02  Jakub Jelinek  <jakub@redhat.com>
 
        * gnu/java/rmi/registry/RegistryImpl.java (version): Update
        * tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$3.class:
        Added.
 
+2008-01-27  Bernhard Fischer  <rep.dot.nop@gmail.com>
+
+       * java/util/SimpleTimeZone.java (SimpleTimeZone): Fix typo in comment.
+       * gnu/CORBA/GIOP/v1_2/RequestHeader.java (RequestHeader): Fix typo in
+       exception message.
+
+2008-01-27  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * doc/README.jaxp: Fix typos.
+
 2007-09-04  Matthias Klose  <doko@ubuntu.com>
 
        * configure.ac: Append libgcj soversion to nativeexeclibdir.
index 23e5f25d0e5f85798dcfb368ecb2f04f59777f61..d3c5b40a94091285c27361905f591af64c1f7b21 100644 (file)
@@ -1,8 +1,8 @@
 Installation Instructions
 *************************
 
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
-Software Foundation, Inc.
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006, 2007 Free Software Foundation, Inc.
 
 This file is free documentation; the Free Software Foundation gives
 unlimited permission to copy, distribute and modify it.
@@ -10,7 +10,10 @@ unlimited permission to copy, distribute and modify it.
 Basic Installation
 ==================
 
-These are generic installation instructions.
+Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package.  The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.
 
    The `configure' shell script attempts to guess correct values for
 various system-dependent variables used during compilation.  It uses
@@ -23,9 +26,9 @@ debugging `configure').
 
    It can also use an optional file (typically called `config.cache'
 and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring.  (Caching is
+the results of its tests to speed up reconfiguring.  Caching is
 disabled by default to prevent problems with accidental use of stale
-cache files.)
+cache files.
 
    If you need to do unusual things to compile the package, please try
 to figure out how `configure' could check whether to do them, and mail
@@ -35,20 +38,17 @@ some point `config.cache' contains results you don't want to keep, you
 may remove or edit it.
 
    The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'.  You only need
-`configure.ac' if you want to change it or regenerate `configure' using
-a newer version of `autoconf'.
+`configure' by a program called `autoconf'.  You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
 
 The simplest way to compile this package is:
 
   1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.  If you're
-     using `csh' on an old version of System V, you might need to type
-     `sh ./configure' instead to prevent `csh' from trying to execute
-     `configure' itself.
+     `./configure' to configure the package for your system.
 
-     Running `configure' takes awhile.  While running, it prints some
-     messages telling which features it is checking for.
+     Running `configure' might take a while.  While running, it prints
+     some messages telling which features it is checking for.
 
   2. Type `make' to compile the package.
 
@@ -67,6 +67,9 @@ The simplest way to compile this package is:
      all sorts of other programs in order to regenerate files that came
      with the distribution.
 
+  6. Often, you can also type `make uninstall' to remove the installed
+     files again.
+
 Compilers and Options
 =====================
 
@@ -78,7 +81,7 @@ details on some of the pertinent environment variables.
 by setting variables in the command line or in the environment.  Here
 is an example:
 
-     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
 
    *Note Defining Variables::, for more details.
 
@@ -87,17 +90,15 @@ Compiling For Multiple Architectures
 
 You can compile the package for more than one kind of computer at the
 same time, by placing the object files for each architecture in their
-own directory.  To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+own directory.  To do this, you can use GNU `make'.  `cd' to the
 directory where you want the object files and executables to go and run
 the `configure' script.  `configure' automatically checks for the
 source code in the directory that `configure' is in and in `..'.
 
-   If you have to use a `make' that does not support the `VPATH'
-variable, you have to compile the package for one architecture at a
-time in the source code directory.  After you have installed the
-package for one architecture, use `make distclean' before reconfiguring
-for another architecture.
+   With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory.  After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
 
 Installation Names
 ==================
@@ -190,12 +191,12 @@ them in the `configure' command line, using `VAR=value'.  For example:
      ./configure CC=/usr/local2/bin/gcc
 
 causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script).  Here is a another example:
+overridden in the site shell script).
 
-     /bin/bash ./configure CONFIG_SHELL=/bin/bash
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug.  Until the bug is fixed you can use this workaround:
 
-Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
-configuration-related scripts to be executed by `/bin/bash'.
+     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
 
 `configure' Invocation
 ======================
index 4434026c331b5aebbb6ff74930ab730afb9ff406..fec369bad7f5df2b4789de4767cd48b33c1b9c3b 100644 (file)
@@ -1,6 +1,7 @@
 ## Input file for automake to generate the Makefile.in used by configure
 
 # lib first, to compile .class files before native code, last examples
+## GCJ LOCAL: unconditionally build tools subdur
 SUBDIRS = lib doc external include native resource scripts tools $(EXAMPLESDIR)
 DIST_SUBDIRS = lib doc external include native resource scripts tools examples
 
@@ -15,7 +16,8 @@ EXTRA_DIST = HACKING BUGS THANKYOU mauve-classpath LICENSE \
              ChangeLog.gnujaxp.1 ChangeLog.gnujaxp.2 ChangeLog.libxmlj \
             autogen.sh
 
-#DISTCHECK_CONFIGURE_FLAGS = --enable-gjdoc
+DISTCHECK_CONFIGURE_FLAGS = --with-gjdoc --enable-gstreamer-peer \
+       --enable-xmlj --enable-qt-peer
 
 dist-hook:
        -$(mkinstalldirs) $(distdir)/include
index 05898b48a7ef31a3c6e7fa614c689eed24621503..73e52f364c2b818f1e3bccaf0af14fce6512734b 100644 (file)
@@ -67,6 +67,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -177,7 +179,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -189,19 +190,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -233,15 +223,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -289,10 +276,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -376,6 +361,9 @@ EXTRA_DIST = HACKING BUGS THANKYOU mauve-classpath LICENSE \
              ChangeLog.gnujaxp.1 ChangeLog.gnujaxp.2 ChangeLog.libxmlj \
             autogen.sh
 
+DISTCHECK_CONFIGURE_FLAGS = --with-gjdoc --enable-gstreamer-peer \
+       --enable-xmlj --enable-qt-peer
+
 all: all-recursive
 
 .SUFFIXES:
@@ -828,8 +816,6 @@ uninstall-info: uninstall-info-recursive
 
 native: lib
 
-#DISTCHECK_CONFIGURE_FLAGS = --enable-gjdoc
-
 dist-hook:
        -$(mkinstalldirs) $(distdir)/include
        -cp -f $(top_srcdir)/include/*.in $(distdir)/include
index c46be603589226b9efd78b29a4cffc1368f2a3bb..0a9e4620e87983000882f375bf06f6dc1e82e41e 100644 (file)
@@ -1,9 +1,61 @@
-New in release 0.96
+Bug fixes in release 0.97.2 (Jun 06, 2007)
+
+* Include headers in the release tarball.
+* Allow the building of tools to be optional.
+* Only check for a Java compiler when required.
+* Allow VMOperatingSystemMXBeanImpl to compile on Solaris.
+* Documentation typo fixes
+* Fix memory leak in native/jni/classpath/jcl.c
+* Web page updates (PR classpath/22883)
+* Fixes to pass the JSR166 TCK
+* Use awk to construct the classlist on building
+* Fix deadlock in Logger (PR classpath/35974)
+* Fix regression in java.lang.String (PR classpath/35482)
+* Allow Classpath tools to handle @file options.
+* Allow parseInt to handle a + prefix correctly.
+* Remove use of 1.5 language constructs in the VM layer.
+
+Bug fixes in release 0.97.1 (Mar 11, 2007)
+
+* Include documentation for JSR166 (java.util.concurrent)
+* Fix STaX API compatability.
+* Include the tools properties file in the release tarball.
+
+New in release 0.97 (Feb 22, 2007)
+
+Build changes:
+
+* A copy of javah (to produce C header files from Java source code)
+is now required to generate the files in include.
+* The javac check has been changed so that it attempts to find ecj,
+javac and gcj (in that order).  You may override this by using
+JAVAC=<preferred javac>
+
+Runtime interface changes:
+
+* Removed VMFloat.floatToIntBits amd VMDouble.doubleToLongBits.
+* Added new getParameterAnnotations() methods in Constructor and Method.
+
+New in release 0.96.1 (Oct 16, 2007)
+
+* Small compile, configure and build fixes.
+
+New in release 0.96 (Oct 15, 2007)
+
+* New experimental GStreamer javax.sound peer (see README.gstreamer)
+* The JNI interface has been updated to 1.6
+* Better support for the OpenJDK javac compiler
+* Support for using javah via tools.zip and com.sun.tools.javah.Main
+* Much improved Escher AWT peers
+* Many bug fixes including improvements to AWT and Swing support
 
 Runtime interface changes:
 
 * Add VMFloat.toString(float) and VMFloat.parseFloat(String). Default
   implementations are the same as previous behavior.
+* Add new default implementations of VMMemoryMXBean.getHeapUsage()
+  and VMMemoryMXBean.getNonHeapUsage() via iteration over the memory
+  pools of the appropriate type.
 
 New in release 0.95 (Apr 23, 2007)
 
index cb93e25b197a2e355567387df9baddae7f895712..036bd0857b4210ced4bccfff08802547a889bfd8 100644 (file)
@@ -41,6 +41,7 @@ Patrik Reali (reali@inf.ethz.ch)
 Petter Reinholdtsen (pere@hungry.com)
 Julian Scheid (julian.scheid@sektor37.de)
 Martin Schröder (ms@artcom-gmbh.de)
+Robert Schuster (robertschuster@fsfe.org)
 Gaute Smaaland (gs@sevenmountains.no)
 Michael Smith (msmith@spinnakernet.com)
 J. Russell Smyth (drfish@uswest.net)
index be4d5cb7ca6d63f92168cdbdaa4e1793f87a420e..2639d47c37f42343cdd73fc544149b33bb0038b1 100644 (file)
@@ -911,6 +911,8 @@ m4_include([../../libtool.m4])
 m4_include([../../ltoptions.m4])
 m4_include([../../ltsugar.m4])
 m4_include([../../ltversion.m4])
+m4_include([m4/ac_prog_javac.m4])
+m4_include([m4/ac_prog_javac_works.m4])
 m4_include([m4/acattribute.m4])
 m4_include([m4/accross.m4])
 m4_include([m4/acinclude.m4])
index 2b03b482280a3280c0705c4c85c3021dd8563ea2..c7607c74f1b8db4387a814a64dc12b21145e02e6 100755 (executable)
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
-#   Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   Free Software Foundation, Inc.
 
-timestamp='2006-12-08'
+timestamp='2008-04-14'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -56,8 +56,8 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -330,7 +330,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
        echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
        exit ;;
-    i86pc:SunOS:5.*:*)
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
        echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
        exit ;;
     sun4*:SunOS:6*:*)
@@ -532,7 +532,7 @@ EOF
                echo rs6000-ibm-aix3.2
        fi
        exit ;;
-    *:AIX:*:[45])
+    *:AIX:*:[456])
        IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
        if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
                IBM_ARCH=rs6000
@@ -781,7 +781,7 @@ EOF
     i*:CYGWIN*:*)
        echo ${UNAME_MACHINE}-pc-cygwin
        exit ;;
-    i*:MINGW*:*)
+    *:MINGW*:*)
        echo ${UNAME_MACHINE}-pc-mingw32
        exit ;;
     i*:windows32*:*)
@@ -791,12 +791,18 @@ EOF
     i*:PW*:*)
        echo ${UNAME_MACHINE}-pc-pw32
        exit ;;
-    x86:Interix*:[3456]*)
-       echo i586-pc-interix${UNAME_RELEASE}
-       exit ;;
-    EM64T:Interix*:[3456]* | authenticamd:Interix*:[3456]*)
-       echo x86_64-unknown-interix${UNAME_RELEASE}
-       exit ;;
+    *:Interix*:[3456]*)
+       case ${UNAME_MACHINE} in
+           x86)
+               echo i586-pc-interix${UNAME_RELEASE}
+               exit ;;
+           EM64T | authenticamd)
+               echo x86_64-unknown-interix${UNAME_RELEASE}
+               exit ;;
+           IA64)
+               echo ia64-unknown-interix${UNAME_RELEASE}
+               exit ;;
+       esac ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
        echo i${UNAME_MACHINE}-pc-mks
        exit ;;
@@ -830,7 +836,14 @@ EOF
        echo ${UNAME_MACHINE}-pc-minix
        exit ;;
     arm*:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-gnu
+       eval $set_cc_for_build
+       if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+           | grep -q __ARM_EABI__
+       then
+           echo ${UNAME_MACHINE}-unknown-linux-gnu
+       else
+           echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+       fi
        exit ;;
     avr32*:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
@@ -951,8 +964,8 @@ EOF
     x86_64:Linux:*:*)
        echo x86_64-unknown-linux-gnu
        exit ;;
-    xtensa:Linux:*:*)
-       echo xtensa-unknown-linux-gnu
+    xtensa*:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-gnu
        exit ;;
     i*86:Linux:*:*)
        # The BFD linker knows what the default object file format is, so
@@ -972,9 +985,6 @@ EOF
          a.out-i386-linux)
                echo "${UNAME_MACHINE}-pc-linux-gnuaout"
                exit ;;
-         coff-i386)
-               echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-               exit ;;
          "")
                # Either a pre-BFD a.out linker (linux-gnuoldld) or
                # one that does not give us useful --help.
@@ -1203,6 +1213,9 @@ EOF
     BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
        echo i586-pc-beos
        exit ;;
+    BePC:Haiku:*:*)    # Haiku running on Intel PC compatible.
+       echo i586-pc-haiku
+       exit ;;
     SX-4:SUPER-UX:*:*)
        echo sx4-nec-superux${UNAME_RELEASE}
        exit ;;
@@ -1218,6 +1231,9 @@ EOF
     SX-8:SUPER-UX:*:*)
        echo sx8-nec-superux${UNAME_RELEASE}
        exit ;;
+    SX-8R:SUPER-UX:*:*)
+       echo sx8r-nec-superux${UNAME_RELEASE}
+       exit ;;
     Power*:Rhapsody:*:*)
        echo powerpc-apple-rhapsody${UNAME_RELEASE}
        exit ;;
@@ -1468,9 +1484,9 @@ This script, last modified $timestamp, has failed to recognize
 the operating system you are using. It is advised that you
 download the most up to date version of the config scripts from
 
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 and
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
 
 If the version you run ($0) is already up to date, please
 send the following data and any information you think might be
index b91a4bc4f29298f9a50762827dcb6d73e9a24d05..63bfff0307009984507fdb8eae89c9ebf7121817 100755 (executable)
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
-#   Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   Free Software Foundation, Inc.
 
-timestamp='2006-12-08'
+timestamp='2008-04-14'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -72,8 +72,8 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -250,13 +250,14 @@ case $basic_machine in
        | i370 | i860 | i960 | ia64 \
        | ip2k | iq2000 \
        | m32c | m32r | m32rle | m68000 | m68k | m88k \
-       | maxq | mb | microblaze | mcore \
-       | mep \
+       | maxq | mb | microblaze | mcore | mep | metag \
        | mips | mipsbe | mipseb | mipsel | mipsle \
        | mips16 \
        | mips64 | mips64el \
-       | mips64vr | mips64vrel \
+       | mips64octeon | mips64octeonel \
        | mips64orion | mips64orionel \
+       | mips64r5900 | mips64r5900el \
+       | mips64vr | mips64vrel \
        | mips64vr4100 | mips64vr4100el \
        | mips64vr4300 | mips64vr4300el \
        | mips64vr5000 | mips64vr5000el \
@@ -332,13 +333,14 @@ case $basic_machine in
        | ip2k-* | iq2000-* \
        | m32c-* | m32r-* | m32rle-* \
        | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-       | m88110-* | m88k-* | maxq-* | mcore-* \
+       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
        | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-       | mep-* \
        | mips16-* \
        | mips64-* | mips64el-* \
-       | mips64vr-* | mips64vrel-* \
+       | mips64octeon-* | mips64octeonel-* \
        | mips64orion-* | mips64orionel-* \
+       | mips64r5900-* | mips64r5900el-* \
+       | mips64vr-* | mips64vrel-* \
        | mips64vr4100-* | mips64vr4100el-* \
        | mips64vr4300-* | mips64vr4300el-* \
        | mips64vr5000-* | mips64vr5000el-* \
@@ -366,15 +368,19 @@ case $basic_machine in
        | sparclite-* \
        | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
        | tahoe-* | thumb-* \
-       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
        | tron-* \
        | v850-* | v850e-* | vax-* \
        | we32k-* \
        | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
-       | xstormy16-* | xtensa-* \
+       | xstormy16-* | xtensa*-* \
        | ymp-* \
        | z8k-*)
                ;;
+       # Recognize the basic CPU types without company name, with glob match.
+       xtensa*)
+               basic_machine=$basic_machine-unknown
+               ;;
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
        386bsd)
@@ -445,6 +451,14 @@ case $basic_machine in
                basic_machine=ns32k-sequent
                os=-dynix
                ;;
+       blackfin)
+               basic_machine=bfin-unknown
+               os=-linux
+               ;;
+       blackfin-*)
+               basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
        c90)
                basic_machine=c90-cray
                os=-unicos
@@ -477,8 +491,8 @@ case $basic_machine in
                basic_machine=craynv-cray
                os=-unicosmp
                ;;
-       cr16c)
-               basic_machine=cr16c-unknown
+       cr16)
+               basic_machine=cr16-unknown
                os=-elf
                ;;
        crds | unos)
@@ -516,6 +530,10 @@ case $basic_machine in
                basic_machine=m88k-motorola
                os=-sysv3
                ;;
+       dicos)
+               basic_machine=i686-pc
+               os=-dicos
+               ;;
        djgpp)
                basic_machine=i586-pc
                os=-msdosdjgpp
@@ -670,6 +688,14 @@ case $basic_machine in
                basic_machine=m68k-isi
                os=-sysv
                ;;
+       m68knommu)
+               basic_machine=m68k-unknown
+               os=-linux
+               ;;
+       m68knommu-*)
+               basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
        m88k-omron*)
                basic_machine=m88k-omron
                ;;
@@ -685,6 +711,10 @@ case $basic_machine in
                basic_machine=i386-pc
                os=-mingw32
                ;;
+       mingw32ce)
+               basic_machine=arm-unknown
+               os=-mingw32ce
+               ;;
        miniframe)
                basic_machine=m68000-convergent
                ;;
@@ -811,6 +841,14 @@ case $basic_machine in
                basic_machine=i860-intel
                os=-osf
                ;;
+       parisc)
+               basic_machine=hppa-unknown
+               os=-linux
+               ;;
+       parisc-*)
+               basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=-linux
+               ;;
        pbd)
                basic_machine=sparc-tti
                ;;
@@ -1019,6 +1057,10 @@ case $basic_machine in
                basic_machine=tic6x-unknown
                os=-coff
                ;;
+       tile*)
+               basic_machine=tile-unknown
+               os=-linux-gnu
+               ;;
        tx39)
                basic_machine=mipstx39-unknown
                ;;
@@ -1224,7 +1266,7 @@ case $os in
              | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
              | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
              | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-             | -skyos* | -haiku* | -rdos* | -toppers*)
+             | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        -qnx*)
@@ -1354,6 +1396,9 @@ case $os in
        -zvmoe)
                os=-zvmoe
                ;;
+       -dicos*)
+               os=-dicos
+               ;;
        -none)
                ;;
        *)
@@ -1419,6 +1464,9 @@ case $basic_machine in
        m68*-cisco)
                os=-aout
                ;;
+        mep-*)
+               os=-elf
+               ;;
        mips*-cisco)
                os=-elf
                ;;
index 6a10d6cacdb9b5597081a9e3a11d7b338dfaea78..966fcbd54f9a1b61c392414d5599983387b31ba7 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for GNU Classpath 0.96-pre.
+# Generated by GNU Autoconf 2.59 for GNU Classpath 0.97.2.
 #
 # Report bugs to <classpath@gnu.org>.
 #
@@ -418,8 +418,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='GNU Classpath'
 PACKAGE_TARNAME='classpath'
-PACKAGE_VERSION='0.96-pre'
-PACKAGE_STRING='GNU Classpath 0.96-pre'
+PACKAGE_VERSION='0.97.2'
+PACKAGE_STRING='GNU Classpath 0.97.2'
 PACKAGE_BUGREPORT='classpath@gnu.org'
 
 ac_unique_file="java/lang/System.java"
@@ -461,7 +461,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE GENINSRC_TRUE GENINSRC_FALSE multi_basedir LIBVERSION CLASSPATH_MODULE CLASSPATH_CONVENIENCE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CREATE_COLLECTIONS_TRUE CREATE_COLLECTIONS_FALSE CREATE_JNI_LIBRARIES_TRUE CREATE_JNI_LIBRARIES_FALSE CREATE_CORE_JNI_LIBRARIES_TRUE CREATE_CORE_JNI_LIBRARIES_FALSE CREATE_GCONF_PEER_LIBRARIES_TRUE CREATE_GCONF_PEER_LIBRARIES_FALSE CREATE_GSTREAMER_PEER_LIBRARIES_TRUE CREATE_GSTREAMER_PEER_LIBRARIES_FALSE default_toolkit CREATE_XMLJ_LIBRARY_TRUE CREATE_XMLJ_LIBRARY_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP CREATE_ALSA_LIBRARIES_TRUE CREATE_ALSA_LIBRARIES_FALSE CREATE_DSSI_LIBRARIES_TRUE CREATE_DSSI_LIBRARIES_FALSE CREATE_GTK_PEER_LIBRARIES_TRUE CREATE_GTK_PEER_LIBRARIES_FALSE CREATE_QT_PEER_LIBRARIES_TRUE CREATE_QT_PEER_LIBRARIES_FALSE CREATE_PLUGIN_TRUE CREATE_PLUGIN_FALSE toolexeclibdir nativeexeclibdir glibjdir VM_BINARY CREATE_JNI_HEADERS_TRUE CREATE_JNI_HEADERS_FALSE CREATE_WRAPPERS_TRUE CREATE_WRAPPERS_FALSE LN_S LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM AR ac_ct_AR RANLIB ac_ct_RANLIB lt_ECHO CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP PERL COLLECTIONS_PREFIX LIBMAGIC LIBICONV LTLIBICONV WARNING_CFLAGS EXTRA_CFLAGS STRICT_WARNING_CFLAGS ERROR_CFLAGS PKG_CONFIG XML_CFLAGS XML_LIBS XSLT_CFLAGS XSLT_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CFLAGS GTK_LIBS FREETYPE2_CFLAGS FREETYPE2_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS CAIRO_CFLAGS CAIRO_LIBS XTEST_LIBS GCONF_CFLAGS GCONF_LIBS GDK_CFLAGS GDK_LIBS GSTREAMER_CFLAGS GSTREAMER_LIBS GSTREAMER_BASE_CFLAGS GSTREAMER_BASE_LIBS GSTREAMER_PLUGINS_BASE_CFLAGS GSTREAMER_PLUGINS_BASE_LIBS GST_PLUGIN_LDFLAGS GSTREAMER_FILE_READER GSTREAMER_MIXER_PROVIDER QT_CFLAGS QT_LIBS MOC MOZILLA_CFLAGS MOZILLA_LIBS GLIB_CFLAGS GLIB_LIBS PLUGIN_DIR USER_JAVAH CLASSPATH_INCLUDES GCJ JIKES JIKESENCODING JIKESWARNINGS KJC ECJ JAVAC FOUND_GCJ_TRUE FOUND_GCJ_FALSE FOUND_JIKES_TRUE FOUND_JIKES_FALSE FOUND_ECJ_TRUE FOUND_ECJ_FALSE FOUND_JAVAC_TRUE FOUND_JAVAC_FALSE FOUND_KJC_TRUE FOUND_KJC_FALSE USER_CLASSLIB USER_SPECIFIED_CLASSLIB_TRUE USER_SPECIFIED_CLASSLIB_FALSE vm_classes MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBDEBUG INIT_LOAD_LIBRARY ECJ_JAR JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION REMOVE MKDIR CP DATE FIND ZIP FASTJAR INSTALL_GLIBJ_ZIP_TRUE INSTALL_GLIBJ_ZIP_FALSE INSTALL_CLASS_FILES_TRUE INSTALL_CLASS_FILES_FALSE BUILD_CLASS_FILES_TRUE BUILD_CLASS_FILES_FALSE EXAMPLESDIR GJDOC CREATE_API_DOCS_TRUE CREATE_API_DOCS_FALSE JAY JAY_SKELETON REGEN_PARSERS_TRUE REGEN_PARSERS_FALSE USE_PREBUILT_GLIBJ_ZIP_TRUE USE_PREBUILT_GLIBJ_ZIP_FALSE PATH_TO_GLIBJ_ZIP USE_ESCHER_TRUE USE_ESCHER_FALSE PATH_TO_ESCHER ENABLE_LOCAL_SOCKETS_TRUE ENABLE_LOCAL_SOCKETS_FALSE DEFAULT_PREFS_PEER LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE GENINSRC_TRUE GENINSRC_FALSE multi_basedir LIBVERSION CLASSPATH_MODULE CLASSPATH_CONVENIENCE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CREATE_COLLECTIONS_TRUE CREATE_COLLECTIONS_FALSE CREATE_JNI_LIBRARIES_TRUE CREATE_JNI_LIBRARIES_FALSE CREATE_CORE_JNI_LIBRARIES_TRUE CREATE_CORE_JNI_LIBRARIES_FALSE CREATE_GCONF_PEER_LIBRARIES_TRUE CREATE_GCONF_PEER_LIBRARIES_FALSE CREATE_GSTREAMER_PEER_LIBRARIES_TRUE CREATE_GSTREAMER_PEER_LIBRARIES_FALSE default_toolkit CREATE_XMLJ_LIBRARY_TRUE CREATE_XMLJ_LIBRARY_FALSE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP EGREP CREATE_ALSA_LIBRARIES_TRUE CREATE_ALSA_LIBRARIES_FALSE CREATE_DSSI_LIBRARIES_TRUE CREATE_DSSI_LIBRARIES_FALSE CREATE_GTK_PEER_LIBRARIES_TRUE CREATE_GTK_PEER_LIBRARIES_FALSE CREATE_QT_PEER_LIBRARIES_TRUE CREATE_QT_PEER_LIBRARIES_FALSE CREATE_PLUGIN_TRUE CREATE_PLUGIN_FALSE toolexeclibdir nativeexeclibdir glibjdir VM_BINARY CREATE_JNI_HEADERS_TRUE CREATE_JNI_HEADERS_FALSE CREATE_WRAPPERS_TRUE CREATE_WRAPPERS_FALSE LN_S LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM AR ac_ct_AR RANLIB ac_ct_RANLIB lt_ECHO CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP PERL COLLECTIONS_PREFIX LIBMAGIC LIBICONV LTLIBICONV WARNING_CFLAGS EXTRA_CFLAGS STRICT_WARNING_CFLAGS ERROR_CFLAGS PKG_CONFIG XML_CFLAGS XML_LIBS XSLT_CFLAGS XSLT_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CFLAGS GTK_LIBS FREETYPE2_CFLAGS FREETYPE2_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS CAIRO_CFLAGS CAIRO_LIBS XTEST_LIBS GCONF_CFLAGS GCONF_LIBS GDK_CFLAGS GDK_LIBS GSTREAMER_CFLAGS GSTREAMER_LIBS GSTREAMER_BASE_CFLAGS GSTREAMER_BASE_LIBS GSTREAMER_PLUGINS_BASE_CFLAGS GSTREAMER_PLUGINS_BASE_LIBS GST_PLUGIN_LDFLAGS GSTREAMER_FILE_READER GSTREAMER_MIXER_PROVIDER QT_CFLAGS QT_LIBS MOC MOZILLA_CFLAGS MOZILLA_LIBS GLIB_CFLAGS GLIB_LIBS PLUGIN_DIR USER_JAVAH CLASSPATH_INCLUDES vm_classes MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBDEBUG INIT_LOAD_LIBRARY ECJ_JAR JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION REMOVE MKDIR CP DATE FIND ZIP FASTJAR INSTALL_GLIBJ_ZIP_TRUE INSTALL_GLIBJ_ZIP_FALSE INSTALL_CLASS_FILES_TRUE INSTALL_CLASS_FILES_FALSE BUILD_CLASS_FILES_TRUE BUILD_CLASS_FILES_FALSE EXAMPLESDIR TOOLSDIR GJDOC CREATE_API_DOCS_TRUE CREATE_API_DOCS_FALSE JAY JAY_SKELETON REGEN_PARSERS_TRUE REGEN_PARSERS_FALSE USE_PREBUILT_GLIBJ_ZIP_TRUE USE_PREBUILT_GLIBJ_ZIP_FALSE PATH_TO_GLIBJ_ZIP JAVAC JAVAC_MEM_OPT USE_ESCHER_TRUE USE_ESCHER_FALSE PATH_TO_ESCHER ENABLE_LOCAL_SOCKETS_TRUE ENABLE_LOCAL_SOCKETS_FALSE DEFAULT_PREFS_PEER LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 ac_pwd=`pwd`
 
@@ -943,7 +943,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GNU Classpath 0.96-pre to adapt to many kinds of systems.
+\`configure' configures GNU Classpath 0.97.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1014,7 +1014,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GNU Classpath 0.96-pre:";;
+     short | recursive ) echo "Configuration of GNU Classpath 0.97.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1059,7 +1059,8 @@ Optional Features:
                           default=no
   --disable-plugin        compile gcjwebplugin (disabled by --disable-plugin)
                           default=yes
-  --enable-regen-headers  automatically regenerate JNI headers default=no
+  --enable-regen-headers  automatically regenerate JNI headers default=yes if
+                          headers don't exist
   --enable-tool-wrappers  create tool wrapper binaries default=no
   --enable-static[=PKGS]
                           build static libraries [default=no]
@@ -1077,6 +1078,7 @@ Optional Features:
                           will the VM explicitly invoke java.lang.System's
                           static initialization methods default=no
   --enable-examples       enable build of the examples default=yes
+  --enable-tools          enable build of the tools default=yes
   --enable-portable-native-sync
                           synchronize VM threads portably
   --enable-local-sockets  enables local (AF_LOCAL) socket API default: no
@@ -1100,12 +1102,6 @@ Optional Packages:
   --with-qt4dir=DIR       Qt4 installation directory used for OS-X. For other
                           systems use pkg-config.
   --with-javah            specify path or name of a javah-like program
-  --with-gcj              bytecode compilation with gcj
-  --with-jikes            bytecode compilation with jikes
-  --with-kjc              bytecode compilation with kjc
-  --with-ecj              bytecode compilation with ecj
-  --with-javac            bytecode compilation with javac
-  --with-classpath        specify path to a classes.zip like file
   --with-vm-classes       specify path to VM override source files
   --with-ecj-jar=ABS.PATH specify jar file containing the Eclipse Java
                           Compiler
@@ -1113,8 +1109,7 @@ Optional Packages:
   --with-glibj            define what to install (zip|flat|both|none|build)
                           [default=zip]
   --with-gjdoc            generate documentation using gjdoc (default is NO)
-  --with-jay              Regenerate the parsers with jay must be given the
-                          path to the jay executable
+  --with-jay=DIR|PATH     Regenerate the parsers with jay
   --with-glibj-zip=ABS.PATH
                           use prebuilt glibj.zip class library
   --with-escher=ABS.PATH  specify path to escher dir or JAR for X peers
@@ -1230,7 +1225,7 @@ fi
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-GNU Classpath configure 0.96-pre
+GNU Classpath configure 0.97.2
 generated by GNU Autoconf 2.59
 
 Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1244,7 +1239,7 @@ cat >&5 <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GNU Classpath $as_me 0.96-pre, which was
+It was created by GNU Classpath $as_me 0.97.2, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   $ $0 $@
@@ -2105,7 +2100,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='classpath'
- VERSION='0.96-pre'
+ VERSION='0.97.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4852,10 +4847,14 @@ if test "${enable_regen_headers+set}" = set; then
   case "${enableval}" in
                 yes) REGENERATE_JNI_HEADERS=yes ;;
                 no) REGENERATE_JNI_HEADERS=no ;;
-                *) REGENERATE_JNI_HEADERS=no ;;
+                *) REGENERATE_JNI_HEADERS=yes ;;
               esac
 else
-  REGENERATE_JNI_HEADERS=no
+  if test -e include/java_lang_VMSystem.h; then
+                       REGENERATE_JNI_HEADERS=no ;
+                  else
+                       REGENERATE_JNI_HEADERS=yes ;
+              fi
 fi;
 
 
@@ -5753,13 +5752,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:5756: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:5755: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5759: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:5758: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5762: output\"" >&5)
+  (eval echo "\"\$as_me:5761: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -6803,7 +6802,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 6806 "configure"' > conftest.$ac_ext
+  echo '#line 6805 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -7435,11 +7434,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7438: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7437: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7442: \$? = $ac_status" >&5
+   echo "$as_me:7441: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -7757,11 +7756,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7760: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7759: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7764: \$? = $ac_status" >&5
+   echo "$as_me:7763: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -7862,11 +7861,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7865: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7864: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:7869: \$? = $ac_status" >&5
+   echo "$as_me:7868: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -7917,11 +7916,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:7920: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7919: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:7924: \$? = $ac_status" >&5
+   echo "$as_me:7923: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -10769,7 +10768,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 10772 "configure"
+#line 10771 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -10869,7 +10868,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 10872 "configure"
+#line 10871 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -15312,11 +15311,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15315: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15314: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:15319: \$? = $ac_status" >&5
+   echo "$as_me:15318: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -15411,11 +15410,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15414: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15413: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:15418: \$? = $ac_status" >&5
+   echo "$as_me:15417: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -15463,11 +15462,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15466: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15465: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:15470: \$? = $ac_status" >&5
+   echo "$as_me:15469: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
 
 
 
+
+
+
+
 
 
 
@@ -17117,7 +17120,9 @@ for ac_header in unistd.h sys/types.h sys/config.h sys/ioctl.h \
                    sys/mman.h \
                    magic.h \
                     sys/event.h sys/epoll.h \
-                   ifaddrs.h
+                   ifaddrs.h \
+                   netinet/in_systm.h netinet/ip.h net/if.h \
+                   sys/loadavg.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
@@ -17533,6 +17538,7 @@ fi
 
 
 
+
 
 
 for ac_func in ftruncate fsync select \
@@ -17543,11 +17549,12 @@ for ac_func in ftruncate fsync select \
                  gethostbyname_r localtime_r \
                  strerror_r \
                   fcntl \
+                 statvfs \
                  mmap munmap mincore msync madvise getpagesize sysconf \
                  lstat readlink \
                  inet_aton inet_addr inet_pton \
                  getifaddrs kqueue kevent epoll_create \
-                  readdir_r getloadavg
+                  getloadavg
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -19945,7 +19952,7 @@ ac_x_header_dirs='
 /usr/openwin/share/include'
 
 if test "$ac_x_includes" = no; then
-  # Guess where to find include files, by looking for Xlib.h.
+  # Guess where to find include files, by looking for Intrinsic.h.
   # First, try using that file with no special directory specified.
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -19953,7 +19960,7 @@ _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <X11/Xlib.h>
+#include <X11/Intrinsic.h>
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
@@ -19980,7 +19987,7 @@ else
 sed 's/^/| /' conftest.$ac_ext >&5
 
   for ac_dir in $ac_x_header_dirs; do
-  if test -r "$ac_dir/X11/Xlib.h"; then
+  if test -r "$ac_dir/X11/Intrinsic.h"; then
     ac_x_includes=$ac_dir
     break
   fi
@@ -19994,7 +20001,7 @@ if test "$ac_x_libraries" = no; then
   # See if we find them without any special options.
   # Don't add to $LIBS permanently.
   ac_save_LIBS=$LIBS
-  LIBS="-lX11 $LIBS"
+  LIBS="-lXt $LIBS"
   if test x$gcc_no_link = xyes; then
   { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
 echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
@@ -20006,11 +20013,11 @@ _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <X11/Xlib.h>
+#include <X11/Intrinsic.h>
 int
 main ()
 {
-XrmInitialize ()
+XtMalloc (0)
   ;
   return 0;
 }
@@ -21323,7 +21330,7 @@ fi
 echo "$as_me: error: GTK+ peers requested but no X library available" >&2;}
    { (exit 1); exit 1; }; }
     fi
-        echo "$as_me:$LINENO: checking for XTestQueryExtension in -lXtst" >&5
+            echo "$as_me:$LINENO: checking for XTestQueryExtension in -lXtst" >&5
 echo $ECHO_N "checking for XTestQueryExtension in -lXtst... $ECHO_C" >&6
 if test "${ac_cv_lib_Xtst_XTestQueryExtension+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 echo "$as_me:$LINENO: result: $ac_cv_lib_Xtst_XTestQueryExtension" >&5
 echo "${ECHO_T}$ac_cv_lib_Xtst_XTestQueryExtension" >&6
 if test $ac_cv_lib_Xtst_XTestQueryExtension = yes; then
-  XTEST_LIBS="$XTEST_LIBS -lX11 -lXtst"
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_XTEST 1
+_ACEOF
+XTEST_LIBS="$XTEST_LIBS -X11 -lXtst"
 else
-  { { echo "$as_me:$LINENO: error: libXtst NOT found, required for GdkRobot" >&5
-echo "$as_me: error: libXtst NOT found, required for GdkRobot" >&2;}
-   { (exit 1); exit 1; }; }
+  true
 fi
 
 
 
+
   succeeded=no
 
   if test -z "$PKG_CONFIG"; then
@@ -22165,7 +22175,7 @@ echo "$as_me: error: Library requirements (gdk-2.0 >= 2.8) not met; consider adj
 
                 USE_GCONF_PREFS_PEER=$enable_default_preferences_peer
     if test "$USE_GCONF_PREFS_PEER" = ""; then
-       DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory
+      DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory
     fi
   fi
 
@@ -22479,6 +22489,107 @@ echo "$as_me: error: Library requirements (gstreamer-plugins-base-$GST_MAJORMINO
        GST_PLUGIN_LDFLAGS='-module -avoid-version -Wno-unused-parameter -no-undefined'
 
 
+
+  succeeded=no
+
+  if test -z "$PKG_CONFIG"; then
+    # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  case $PKG_CONFIG in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
+  ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+
+if test -n "$PKG_CONFIG"; then
+  echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  fi
+
+  if test "$PKG_CONFIG" = "no" ; then
+     echo "*** The pkg-config script could not be found. Make sure it is"
+     echo "*** in your path, or set the PKG_CONFIG environment variable"
+     echo "*** to the full path to pkg-config."
+     echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
+  else
+     PKG_CONFIG_MIN_VERSION=0.9.0
+     if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+        echo "$as_me:$LINENO: checking for gdk-2.0 >= 2.8" >&5
+echo $ECHO_N "checking for gdk-2.0 >= 2.8... $ECHO_C" >&6
+
+        if $PKG_CONFIG --exists "gdk-2.0 >= 2.8" ; then
+            echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+            succeeded=yes
+
+            echo "$as_me:$LINENO: checking GDK_CFLAGS" >&5
+echo $ECHO_N "checking GDK_CFLAGS... $ECHO_C" >&6
+            GDK_CFLAGS=`$PKG_CONFIG --cflags "gdk-2.0 >= 2.8"`
+            echo "$as_me:$LINENO: result: $GDK_CFLAGS" >&5
+echo "${ECHO_T}$GDK_CFLAGS" >&6
+
+            echo "$as_me:$LINENO: checking GDK_LIBS" >&5
+echo $ECHO_N "checking GDK_LIBS... $ECHO_C" >&6
+            GDK_LIBS=`$PKG_CONFIG --libs "gdk-2.0 >= 2.8"`
+            echo "$as_me:$LINENO: result: $GDK_LIBS" >&5
+echo "${ECHO_T}$GDK_LIBS" >&6
+        else
+            GDK_CFLAGS=""
+            GDK_LIBS=""
+            ## If we have a custom action on failure, don't print errors, but
+            ## do set a variable so people can do so.
+            GDK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gdk-2.0 >= 2.8"`
+            echo $GDK_PKG_ERRORS
+        fi
+
+
+
+     else
+        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+        echo "*** See http://www.freedesktop.org/software/pkgconfig"
+     fi
+  fi
+
+  if test $succeeded = yes; then
+     :
+  else
+     { { echo "$as_me:$LINENO: error: Library requirements (gdk-2.0 >= 2.8) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5
+echo "$as_me: error: Library requirements (gdk-2.0 >= 2.8) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;}
+   { (exit 1); exit 1; }; }
+  fi
+
+
+
+
                GSTREAMER_FILE_READER=gnu.javax.sound.sampled.gstreamer.io.GstAudioFileReader
        GSTREAMER_MIXER_PROVIDER=gnu.javax.sound.sampled.gstreamer.GStreamerMixerProvider
   fi
@@ -23805,7 +23916,7 @@ fi
 
     fi
   else
-    for ac_prog in gjavah gcjh-wrapper-4.1 gcjh-4.1 gcjh javah
+    for ac_prog in gjavah gjavah-4.3 gjavah-4.2 gjavah-4.1 gcjh-wrapper-4.1 gcjh-4.1 javah
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -23904,7 +24015,7 @@ fi
 
     fi
   else
-    for ac_prog in gjavah gcjh-wrapper-4.1 gcjh-4.1 gcjh javah
+    for ac_prog in gjavah gjavah-4.3 gjavah-4.2 gjavah-4.1 gcjh-wrapper-4.1 gcjh-4.1 javah
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -24006,7 +24117,7 @@ fi
 
     fi
   else
-    for ac_prog in gjavah gcjh-wrapper-4.1 gcjh-4.1 gcjh javah
+    for ac_prog in gjavah gjavah-4.3 gjavah-4.2 gjavah-4.1 gcjh-wrapper-4.1 gcjh-4.1 javah
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -24091,30 +24202,121 @@ echo "$as_me: WARNING: no" >&2;}
 fi
 
 
-  user_specified_javac=
 
+# Check whether --with-vm-classes or --without-vm-classes was given.
+if test "${with_vm_classes+set}" = set; then
+  withval="$with_vm_classes"
+  vm_classes="$with_vm_classes"
+else
+  vm_classes='${top_srcdir}/vm/reference'
+fi;
 
 
-# Check whether --with-gcj or --without-gcj was given.
-if test "${with_gcj+set}" = set; then
-  withval="$with_gcj"
 
-    if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
+echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
+    # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
+if test "${enable_maintainer_mode+set}" = set; then
+  enableval="$enable_maintainer_mode"
+  USE_MAINTAINER_MODE=$enableval
+else
+  USE_MAINTAINER_MODE=no
+fi;
+  echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
+echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
 
-  if test "x${withval}" != x; then
-    if test -f "${withval}"; then
-      GCJ="${withval}"
-    else
-      # Extract the first word of ""${withval}"", so it can be a program name with args.
-set dummy "${withval}"; ac_word=$2
+
+if test $USE_MAINTAINER_MODE = yes; then
+  MAINTAINER_MODE_TRUE=
+  MAINTAINER_MODE_FALSE='#'
+else
+  MAINTAINER_MODE_TRUE='#'
+  MAINTAINER_MODE_FALSE=
+fi
+
+  MAINT=$MAINTAINER_MODE_TRUE
+
+
+
+# Check whether --enable-debug or --disable-debug was given.
+if test "${enable_debug+set}" = set; then
+  enableval="$enable_debug"
+  case "${enableval}" in
+                yes)
+               LIBDEBUG="true"
+
+cat >>confdefs.h <<\_ACEOF
+#define DEBUG 1
+_ACEOF
+
+               ;;
+                no)   LIBDEBUG="false" ;;
+                *)     { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug" >&5
+echo "$as_me: error: bad value ${enableval} for --enable-debug" >&2;}
+   { (exit 1); exit 1; }; } ;;
+              esac
+else
+  LIBDEBUG="false"
+fi;
+
+
+# Check whether --enable-load-library or --disable-load-library was given.
+if test "${enable_load_library+set}" = set; then
+  enableval="$enable_load_library"
+  case "${enableval}" in
+                yes) INIT_LOAD_LIBRARY="true" ;;
+                no) INIT_LOAD_LIBRARY="false" ;;
+                *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-load-library" >&5
+echo "$as_me: error: bad value ${enableval} for --enable-load-library" >&2;}
+   { (exit 1); exit 1; }; } ;;
+              esac
+else
+  INIT_LOAD_LIBRARY="true"
+fi;
+
+
+
+
+# Check whether --with-ecj-jar or --without-ecj-jar was given.
+if test "${with_ecj_jar+set}" = set; then
+  withval="$with_ecj_jar"
+  ECJ_JAR=$withval
+else
+  if test -f $multi_basedir/ecj.jar; then
+              ECJ_JAR='$(jardir)/ecj.jar'
+            fi
+fi;
+
+
+# Check whether --enable-java-lang-system-explicit-initialization or --disable-java-lang-system-explicit-initialization was given.
+if test "${enable_java_lang_system_explicit_initialization+set}" = set; then
+  enableval="$enable_java_lang_system_explicit_initialization"
+  case "${enableval}" in
+                yes|true) JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION="true" ;;
+                no|false) JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION="false" ;;
+                *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-java-lang-system-explicit-initialization" >&5
+echo "$as_me: error: bad value ${enableval} for --enable-java-lang-system-explicit-initialization" >&2;}
+   { (exit 1); exit 1; }; } ;;
+              esac
+else
+  JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION="false"
+fi;
+
+
+
+REMOVE=""
+
+
+# Extract the first word of "mkdir", so it can be a program name with args.
+set dummy mkdir; ac_word=$2
 echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_GCJ+set}" = set; then
+if test "${ac_cv_path_MKDIR+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  case $GCJ in
+  case $MKDIR in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_GCJ="$GCJ" # Let the user override the test with a path.
+  ac_cv_path_MKDIR="$MKDIR" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -24124,7 +24326,7 @@ do
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
   if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_GCJ="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_MKDIR="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -24134,28 +24336,26 @@ done
   ;;
 esac
 fi
-GCJ=$ac_cv_path_GCJ
+MKDIR=$ac_cv_path_MKDIR
 
-if test -n "$GCJ"; then
-  echo "$as_me:$LINENO: result: $GCJ" >&5
-echo "${ECHO_T}$GCJ" >&6
+if test -n "$MKDIR"; then
+  echo "$as_me:$LINENO: result: $MKDIR" >&5
+echo "${ECHO_T}$MKDIR" >&6
 else
   echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 fi
 
-    fi
-  else
-    # Extract the first word of ""gcj"", so it can be a program name with args.
-set dummy "gcj"; ac_word=$2
+# Extract the first word of "cp", so it can be a program name with args.
+set dummy cp; ac_word=$2
 echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_GCJ+set}" = set; then
+if test "${ac_cv_path_CP+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  case $GCJ in
+  case $CP in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_GCJ="$GCJ" # Let the user override the test with a path.
+  ac_cv_path_CP="$CP" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -24165,7 +24365,7 @@ do
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
   if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_GCJ="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
   ;;
 esac
 fi
-GCJ=$ac_cv_path_GCJ
+CP=$ac_cv_path_CP
 
-if test -n "$GCJ"; then
-  echo "$as_me:$LINENO: result: $GCJ" >&5
-echo "${ECHO_T}$GCJ" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  fi
-    if test "x$GCJ" != x; then
-    echo "$as_me:$LINENO: checking gcj version 4.0" >&5
-echo $ECHO_N "checking gcj version 4.0... $ECHO_C" >&6
-    ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-    cat >conftest.$ac_ext <<_ACEOF
-#if __GNUC__ <= 3
-    #error GCJ 4.0.0 or higher is required
-    #endif
-
-_ACEOF
-    $GCJ -E conftest.c > /dev/null
-    gcj_4_result=$?
-    if test "x$gcj_4_result" = "x0"; then
-      echo "$as_me:$LINENO: result: 4.0 or higher found" >&5
-echo "${ECHO_T}4.0 or higher found" >&6
-    else
-      { echo "$as_me:$LINENO: WARNING: 4.0 or higher required" >&5
-echo "$as_me: WARNING: 4.0 or higher required" >&2;}
-    fi
-    ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-  fi
-
-    else
-      if test "x${withval}" != xno; then
-
-  if test "x" != x; then
-    if test -f ""; then
-      GCJ=""
-    else
-      # Extract the first word of """", so it can be a program name with args.
-set dummy ""; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $GCJ in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GCJ="$GCJ" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_GCJ="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-GCJ=$ac_cv_path_GCJ
-
-if test -n "$GCJ"; then
-  echo "$as_me:$LINENO: result: $GCJ" >&5
-echo "${ECHO_T}$GCJ" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    fi
-  else
-    # Extract the first word of ""gcj"", so it can be a program name with args.
-set dummy "gcj"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $GCJ in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GCJ="$GCJ" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_GCJ="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-GCJ=$ac_cv_path_GCJ
-
-if test -n "$GCJ"; then
-  echo "$as_me:$LINENO: result: $GCJ" >&5
-echo "${ECHO_T}$GCJ" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  fi
-    if test "x$GCJ" != x; then
-    echo "$as_me:$LINENO: checking gcj version 4.0" >&5
-echo $ECHO_N "checking gcj version 4.0... $ECHO_C" >&6
-    ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-    cat >conftest.$ac_ext <<_ACEOF
-#if __GNUC__ <= 3
-    #error GCJ 4.0.0 or higher is required
-    #endif
-
-_ACEOF
-    $GCJ -E conftest.c > /dev/null
-    gcj_4_result=$?
-    if test "x$gcj_4_result" = "x0"; then
-      echo "$as_me:$LINENO: result: 4.0 or higher found" >&5
-echo "${ECHO_T}4.0 or higher found" >&6
-    else
-      { echo "$as_me:$LINENO: WARNING: 4.0 or higher required" >&5
-echo "$as_me: WARNING: 4.0 or higher required" >&2;}
-    fi
-    ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-  fi
-
-      fi
-    fi
-    user_specified_javac=gcj
-
-else
-
-
-  if test "x" != x; then
-    if test -f ""; then
-      GCJ=""
-    else
-      # Extract the first word of """", so it can be a program name with args.
-set dummy ""; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $GCJ in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GCJ="$GCJ" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_GCJ="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-GCJ=$ac_cv_path_GCJ
-
-if test -n "$GCJ"; then
-  echo "$as_me:$LINENO: result: $GCJ" >&5
-echo "${ECHO_T}$GCJ" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    fi
-  else
-    # Extract the first word of ""gcj"", so it can be a program name with args.
-set dummy "gcj"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $GCJ in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GCJ="$GCJ" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_GCJ="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-GCJ=$ac_cv_path_GCJ
-
-if test -n "$GCJ"; then
-  echo "$as_me:$LINENO: result: $GCJ" >&5
-echo "${ECHO_T}$GCJ" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  fi
-    if test "x$GCJ" != x; then
-    echo "$as_me:$LINENO: checking gcj version 4.0" >&5
-echo $ECHO_N "checking gcj version 4.0... $ECHO_C" >&6
-    ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-    cat >conftest.$ac_ext <<_ACEOF
-#if __GNUC__ <= 3
-    #error GCJ 4.0.0 or higher is required
-    #endif
-
-_ACEOF
-    $GCJ -E conftest.c > /dev/null
-    gcj_4_result=$?
-    if test "x$gcj_4_result" = "x0"; then
-      echo "$as_me:$LINENO: result: 4.0 or higher found" >&5
-echo "${ECHO_T}4.0 or higher found" >&6
-    else
-      { echo "$as_me:$LINENO: WARNING: 4.0 or higher required" >&5
-echo "$as_me: WARNING: 4.0 or higher required" >&2;}
-    fi
-    ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-  fi
-
-
-fi;
-
-
-
-
-# Check whether --with-jikes or --without-jikes was given.
-if test "${with_jikes+set}" = set; then
-  withval="$with_jikes"
-
-    if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
-
-  if test "x${withval}" != x; then
-    if test -f "${withval}"; then
-      JIKES="${withval}"
-    else
-      # Extract the first word of ""${withval}"", so it can be a program name with args.
-set dummy "${withval}"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_JIKES+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $JIKES in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_JIKES="$JIKES" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_JIKES="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-JIKES=$ac_cv_path_JIKES
-
-if test -n "$JIKES"; then
-  echo "$as_me:$LINENO: result: $JIKES" >&5
-echo "${ECHO_T}$JIKES" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    fi
-  else
-    # Extract the first word of ""jikes"", so it can be a program name with args.
-set dummy "jikes"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_JIKES+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $JIKES in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_JIKES="$JIKES" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_JIKES="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-JIKES=$ac_cv_path_JIKES
-
-if test -n "$JIKES"; then
-  echo "$as_me:$LINENO: result: $JIKES" >&5
-echo "${ECHO_T}$JIKES" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  fi
-  if test "x$JIKES" != "x"; then
-        echo "$as_me:$LINENO: checking jikes version" >&5
-echo $ECHO_N "checking jikes version... $ECHO_C" >&6
-    JIKES_VERSION=`$JIKES --version | awk '/^Jikes Compiler/' | cut -d ' ' -f 5`
-    JIKES_VERSION_MAJOR=`echo "$JIKES_VERSION" | cut -d '.' -f 1`
-    JIKES_VERSION_MINOR=`echo "$JIKES_VERSION" | cut -d '.' -f 2`
-    if expr "$JIKES_VERSION_MAJOR" = 1 > /dev/null; then
-      if expr "$JIKES_VERSION_MINOR" \< 19 > /dev/null; then
-        JIKES=""
-      fi
-    fi
-    if test "x$JIKES" != "x"; then
-      echo "$as_me:$LINENO: result: $JIKES_VERSION" >&5
-echo "${ECHO_T}$JIKES_VERSION" >&6
-    else
-      { echo "$as_me:$LINENO: WARNING: $JIKES_VERSION: jikes 1.19 or higher required" >&5
-echo "$as_me: WARNING: $JIKES_VERSION: jikes 1.19 or higher required" >&2;}
-    fi
-
-    JIKESENCODING=
-    if test -n "`$JIKES --help 2>&1 | grep encoding`"; then
-      JIKESENCODING='-encoding UTF-8'
-    fi
-
-
-    JIKESWARNINGS="+Pno-switchcheck"
-    if test "x$JIKES_VERSION_MAJOR" = x"1" ; then
-      if ! test "x$JIKES_VERSION_MINOR" = x"19"; then
-        JIKESWARNINGS="$JIKESWARNINGS +Pno-shadow"
-      fi
-    fi
-
-
-  fi
-
-    else
-      if test "x${withval}" != xno; then
-
-  if test "x" != x; then
-    if test -f ""; then
-      JIKES=""
-    else
-      # Extract the first word of """", so it can be a program name with args.
-set dummy ""; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_JIKES+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $JIKES in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_JIKES="$JIKES" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_JIKES="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-JIKES=$ac_cv_path_JIKES
-
-if test -n "$JIKES"; then
-  echo "$as_me:$LINENO: result: $JIKES" >&5
-echo "${ECHO_T}$JIKES" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    fi
-  else
-    # Extract the first word of ""jikes"", so it can be a program name with args.
-set dummy "jikes"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_JIKES+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $JIKES in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_JIKES="$JIKES" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_JIKES="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-JIKES=$ac_cv_path_JIKES
-
-if test -n "$JIKES"; then
-  echo "$as_me:$LINENO: result: $JIKES" >&5
-echo "${ECHO_T}$JIKES" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  fi
-  if test "x$JIKES" != "x"; then
-        echo "$as_me:$LINENO: checking jikes version" >&5
-echo $ECHO_N "checking jikes version... $ECHO_C" >&6
-    JIKES_VERSION=`$JIKES --version | awk '/^Jikes Compiler/' | cut -d ' ' -f 5`
-    JIKES_VERSION_MAJOR=`echo "$JIKES_VERSION" | cut -d '.' -f 1`
-    JIKES_VERSION_MINOR=`echo "$JIKES_VERSION" | cut -d '.' -f 2`
-    if expr "$JIKES_VERSION_MAJOR" = 1 > /dev/null; then
-      if expr "$JIKES_VERSION_MINOR" \< 19 > /dev/null; then
-        JIKES=""
-      fi
-    fi
-    if test "x$JIKES" != "x"; then
-      echo "$as_me:$LINENO: result: $JIKES_VERSION" >&5
-echo "${ECHO_T}$JIKES_VERSION" >&6
-    else
-      { echo "$as_me:$LINENO: WARNING: $JIKES_VERSION: jikes 1.19 or higher required" >&5
-echo "$as_me: WARNING: $JIKES_VERSION: jikes 1.19 or higher required" >&2;}
-    fi
-
-    JIKESENCODING=
-    if test -n "`$JIKES --help 2>&1 | grep encoding`"; then
-      JIKESENCODING='-encoding UTF-8'
-    fi
-
-
-    JIKESWARNINGS="+Pno-switchcheck"
-    if test "x$JIKES_VERSION_MAJOR" = x"1" ; then
-      if ! test "x$JIKES_VERSION_MINOR" = x"19"; then
-        JIKESWARNINGS="$JIKESWARNINGS +Pno-shadow"
-      fi
-    fi
-
-
-  fi
-
-      fi
-    fi
-    user_specified_javac=jikes
-
-else
-
-
-  if test "x" != x; then
-    if test -f ""; then
-      JIKES=""
-    else
-      # Extract the first word of """", so it can be a program name with args.
-set dummy ""; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_JIKES+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $JIKES in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_JIKES="$JIKES" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_JIKES="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-JIKES=$ac_cv_path_JIKES
-
-if test -n "$JIKES"; then
-  echo "$as_me:$LINENO: result: $JIKES" >&5
-echo "${ECHO_T}$JIKES" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    fi
-  else
-    # Extract the first word of ""jikes"", so it can be a program name with args.
-set dummy "jikes"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_JIKES+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $JIKES in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_JIKES="$JIKES" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_JIKES="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-JIKES=$ac_cv_path_JIKES
-
-if test -n "$JIKES"; then
-  echo "$as_me:$LINENO: result: $JIKES" >&5
-echo "${ECHO_T}$JIKES" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  fi
-  if test "x$JIKES" != "x"; then
-        echo "$as_me:$LINENO: checking jikes version" >&5
-echo $ECHO_N "checking jikes version... $ECHO_C" >&6
-    JIKES_VERSION=`$JIKES --version | awk '/^Jikes Compiler/' | cut -d ' ' -f 5`
-    JIKES_VERSION_MAJOR=`echo "$JIKES_VERSION" | cut -d '.' -f 1`
-    JIKES_VERSION_MINOR=`echo "$JIKES_VERSION" | cut -d '.' -f 2`
-    if expr "$JIKES_VERSION_MAJOR" = 1 > /dev/null; then
-      if expr "$JIKES_VERSION_MINOR" \< 19 > /dev/null; then
-        JIKES=""
-      fi
-    fi
-    if test "x$JIKES" != "x"; then
-      echo "$as_me:$LINENO: result: $JIKES_VERSION" >&5
-echo "${ECHO_T}$JIKES_VERSION" >&6
-    else
-      { echo "$as_me:$LINENO: WARNING: $JIKES_VERSION: jikes 1.19 or higher required" >&5
-echo "$as_me: WARNING: $JIKES_VERSION: jikes 1.19 or higher required" >&2;}
-    fi
-
-    JIKESENCODING=
-    if test -n "`$JIKES --help 2>&1 | grep encoding`"; then
-      JIKESENCODING='-encoding UTF-8'
-    fi
-
-
-    JIKESWARNINGS="+Pno-switchcheck"
-    if test "x$JIKES_VERSION_MAJOR" = x"1" ; then
-      if ! test "x$JIKES_VERSION_MINOR" = x"19"; then
-        JIKESWARNINGS="$JIKESWARNINGS +Pno-shadow"
-      fi
-    fi
-
-
-  fi
-
-
-fi;
-
-
-
-
-# Check whether --with-kjc or --without-kjc was given.
-if test "${with_kjc+set}" = set; then
-  withval="$with_kjc"
-
-    if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
-
-  if test "x${withval}" != x; then
-    if test -f "${withval}"; then
-      KJC="${withval}"
-    else
-      # Extract the first word of ""${withval}"", so it can be a program name with args.
-set dummy "${withval}"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_KJC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $KJC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_KJC="$KJC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_KJC="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-KJC=$ac_cv_path_KJC
-
-if test -n "$KJC"; then
-  echo "$as_me:$LINENO: result: $KJC" >&5
-echo "${ECHO_T}$KJC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    fi
-  else
-    # Extract the first word of ""kJC"", so it can be a program name with args.
-set dummy "kJC"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_KJC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $KJC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_KJC="$KJC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_KJC="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-KJC=$ac_cv_path_KJC
-
-if test -n "$KJC"; then
-  echo "$as_me:$LINENO: result: $KJC" >&5
-echo "${ECHO_T}$KJC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  fi
-
-    else
-      if test "x${withval}" != xno; then
-
-  if test "x" != x; then
-    if test -f ""; then
-      KJC=""
-    else
-      # Extract the first word of """", so it can be a program name with args.
-set dummy ""; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_KJC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $KJC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_KJC="$KJC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_KJC="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-KJC=$ac_cv_path_KJC
-
-if test -n "$KJC"; then
-  echo "$as_me:$LINENO: result: $KJC" >&5
-echo "${ECHO_T}$KJC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    fi
-  else
-    # Extract the first word of ""kJC"", so it can be a program name with args.
-set dummy "kJC"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_KJC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $KJC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_KJC="$KJC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_KJC="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-KJC=$ac_cv_path_KJC
-
-if test -n "$KJC"; then
-  echo "$as_me:$LINENO: result: $KJC" >&5
-echo "${ECHO_T}$KJC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  fi
-
-      fi
-    fi
-    user_specified_javac=kjc
-
-else
-
-
-  if test "x" != x; then
-    if test -f ""; then
-      KJC=""
-    else
-      # Extract the first word of """", so it can be a program name with args.
-set dummy ""; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_KJC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $KJC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_KJC="$KJC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_KJC="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-KJC=$ac_cv_path_KJC
-
-if test -n "$KJC"; then
-  echo "$as_me:$LINENO: result: $KJC" >&5
-echo "${ECHO_T}$KJC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    fi
-  else
-    # Extract the first word of ""kJC"", so it can be a program name with args.
-set dummy "kJC"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_KJC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $KJC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_KJC="$KJC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_KJC="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-KJC=$ac_cv_path_KJC
-
-if test -n "$KJC"; then
-  echo "$as_me:$LINENO: result: $KJC" >&5
-echo "${ECHO_T}$KJC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  fi
-
-
-fi;
-
-
-
-
-# Check whether --with-ecj or --without-ecj was given.
-if test "${with_ecj+set}" = set; then
-  withval="$with_ecj"
-
-    if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
-
-  if test "x${withval}" != x; then
-    if test -f "${withval}"; then
-      ECJ="${withval}"
-    else
-      # Extract the first word of ""${withval}"", so it can be a program name with args.
-set dummy "${withval}"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_ECJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $ECJ in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ECJ="$ECJ" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_ECJ="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-ECJ=$ac_cv_path_ECJ
-
-if test -n "$ECJ"; then
-  echo "$as_me:$LINENO: result: $ECJ" >&5
-echo "${ECHO_T}$ECJ" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    fi
-  else
-    # Extract the first word of ""ecj"", so it can be a program name with args.
-set dummy "ecj"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_ECJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $ECJ in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ECJ="$ECJ" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_ECJ="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-ECJ=$ac_cv_path_ECJ
-
-if test -n "$ECJ"; then
-  echo "$as_me:$LINENO: result: $ECJ" >&5
-echo "${ECHO_T}$ECJ" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  fi
-
-    else
-      if test "x${withval}" != xno; then
-
-  if test "x" != x; then
-    if test -f ""; then
-      ECJ=""
-    else
-      # Extract the first word of """", so it can be a program name with args.
-set dummy ""; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_ECJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $ECJ in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ECJ="$ECJ" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_ECJ="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-ECJ=$ac_cv_path_ECJ
-
-if test -n "$ECJ"; then
-  echo "$as_me:$LINENO: result: $ECJ" >&5
-echo "${ECHO_T}$ECJ" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    fi
-  else
-    # Extract the first word of ""ecj"", so it can be a program name with args.
-set dummy "ecj"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_ECJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $ECJ in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ECJ="$ECJ" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_ECJ="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-ECJ=$ac_cv_path_ECJ
-
-if test -n "$ECJ"; then
-  echo "$as_me:$LINENO: result: $ECJ" >&5
-echo "${ECHO_T}$ECJ" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  fi
-
-      fi
-    fi
-    user_specified_javac=ecj
-
-else
-
-
-  if test "x" != x; then
-    if test -f ""; then
-      ECJ=""
-    else
-      # Extract the first word of """", so it can be a program name with args.
-set dummy ""; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_ECJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $ECJ in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ECJ="$ECJ" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_ECJ="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-ECJ=$ac_cv_path_ECJ
-
-if test -n "$ECJ"; then
-  echo "$as_me:$LINENO: result: $ECJ" >&5
-echo "${ECHO_T}$ECJ" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-    fi
-  else
-    # Extract the first word of ""ecj"", so it can be a program name with args.
-set dummy "ecj"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_ECJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $ECJ in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ECJ="$ECJ" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_ECJ="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-ECJ=$ac_cv_path_ECJ
-
-if test -n "$ECJ"; then
-  echo "$as_me:$LINENO: result: $ECJ" >&5
-echo "${ECHO_T}$ECJ" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  fi
-
-
-fi;
-
-
-
-
-# Check whether --with-javac or --without-javac was given.
-if test "${with_javac+set}" = set; then
-  withval="$with_javac"
-
-    if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
-
-  if test "x${withval}" != x; then
-    JAVAC="${withval}"
-  else
-    # Extract the first word of ""javac"", so it can be a program name with args.
-set dummy "javac"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_JAVAC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $JAVAC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_JAVAC="$JAVAC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_JAVAC="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-JAVAC=$ac_cv_path_JAVAC
-
-if test -n "$JAVAC"; then
-  echo "$as_me:$LINENO: result: $JAVAC" >&5
-echo "${ECHO_T}$JAVAC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  fi
-
-    else
-      if test "x${withval}" != xno; then
-
-  if test "x" != x; then
-    JAVAC=""
-  else
-    # Extract the first word of ""javac"", so it can be a program name with args.
-set dummy "javac"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_JAVAC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $JAVAC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_JAVAC="$JAVAC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_JAVAC="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-JAVAC=$ac_cv_path_JAVAC
-
-if test -n "$JAVAC"; then
-  echo "$as_me:$LINENO: result: $JAVAC" >&5
-echo "${ECHO_T}$JAVAC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  fi
-
-      fi
-    fi
-    user_specified_javac=javac
-
-else
-
-
-  if test "x" != x; then
-    JAVAC=""
-  else
-    # Extract the first word of ""javac"", so it can be a program name with args.
-set dummy "javac"; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_JAVAC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $JAVAC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_JAVAC="$JAVAC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_JAVAC="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-JAVAC=$ac_cv_path_JAVAC
-
-if test -n "$JAVAC"; then
-  echo "$as_me:$LINENO: result: $JAVAC" >&5
-echo "${ECHO_T}$JAVAC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  fi
-
-
-fi;
-
-
-
-  if test "x${user_specified_javac}" = x; then
-
-
-if test "x${GCJ}" != x; then
-  FOUND_GCJ_TRUE=
-  FOUND_GCJ_FALSE='#'
-else
-  FOUND_GCJ_TRUE='#'
-  FOUND_GCJ_FALSE=
-fi
-
-
-
-if test "x${JIKES}" != x; then
-  FOUND_JIKES_TRUE=
-  FOUND_JIKES_FALSE='#'
-else
-  FOUND_JIKES_TRUE='#'
-  FOUND_JIKES_FALSE=
-fi
-
-
-
-if test "x${ECJ}" != x; then
-  FOUND_ECJ_TRUE=
-  FOUND_ECJ_FALSE='#'
-else
-  FOUND_ECJ_TRUE='#'
-  FOUND_ECJ_FALSE=
-fi
-
-
-
-if test "x${JAVAC}" != x; then
-  FOUND_JAVAC_TRUE=
-  FOUND_JAVAC_FALSE='#'
-else
-  FOUND_JAVAC_TRUE='#'
-  FOUND_JAVAC_FALSE=
-fi
-
-  else
-
-
-if test "x${user_specified_javac}" = xgcj; then
-  FOUND_GCJ_TRUE=
-  FOUND_GCJ_FALSE='#'
-else
-  FOUND_GCJ_TRUE='#'
-  FOUND_GCJ_FALSE=
-fi
-
-
-
-if test "x${user_specified_javac}" = xjikes; then
-  FOUND_JIKES_TRUE=
-  FOUND_JIKES_FALSE='#'
-else
-  FOUND_JIKES_TRUE='#'
-  FOUND_JIKES_FALSE=
-fi
-
-
-
-if test "x${user_specified_javac}" = xecj; then
-  FOUND_ECJ_TRUE=
-  FOUND_ECJ_FALSE='#'
-else
-  FOUND_ECJ_TRUE='#'
-  FOUND_ECJ_FALSE=
-fi
-
-
-
-if test "x${user_specified_javac}" = xjavac; then
-  FOUND_JAVAC_TRUE=
-  FOUND_JAVAC_FALSE='#'
-else
-  FOUND_JAVAC_TRUE='#'
-  FOUND_JAVAC_FALSE=
-fi
-
-  fi
-
-
-if test "x${user_specified_javac}" = xkjc; then
-  FOUND_KJC_TRUE=
-  FOUND_KJC_FALSE='#'
-else
-  FOUND_KJC_TRUE='#'
-  FOUND_KJC_FALSE=
-fi
-
-
-  ## GCJ LOCAL
-  if test "x${GCJ}" = x && test "x${JIKES}" = x && test "x${ECJ}" = x \
-     && test "x${JAVAC}" = x && test "x${user_specified_javac}" != xkjc
-  then
-      { { echo "$as_me:$LINENO: error: cannot find javac, try --with-ecj" >&5
-echo "$as_me: error: cannot find javac, try --with-ecj" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  ## END GCJ LOCAL
-
-
-
-
-# Check whether --with-classpath or --without-classpath was given.
-if test "${with_classpath+set}" = set; then
-  withval="$with_classpath"
-
-    if test "x${withval}" = xyes; then
-      # set user classpath to CLASSPATH from env
-      echo "$as_me:$LINENO: checking for classlib" >&5
-echo $ECHO_N "checking for classlib... $ECHO_C" >&6
-      USER_CLASSLIB=${CLASSPATH}
-
-      echo "$as_me:$LINENO: result: ${USER_CLASSLIB}" >&5
-echo "${ECHO_T}${USER_CLASSLIB}" >&6
-      conditional_with_classlib=true
-    elif test "x${withval}" != x && test "x${withval}" != xno; then
-      # set user classpath to specified value
-      echo "$as_me:$LINENO: checking for classlib" >&5
-echo $ECHO_N "checking for classlib... $ECHO_C" >&6
-      USER_CLASSLIB=${withval}
-
-      echo "$as_me:$LINENO: result: ${withval}" >&5
-echo "${ECHO_T}${withval}" >&6
-      conditional_with_classlib=true
-    fi
-
-else
-   conditional_with_classlib=false
-fi;
-
-
-if test "x${conditional_with_classlib}" = xtrue; then
-  USER_SPECIFIED_CLASSLIB_TRUE=
-  USER_SPECIFIED_CLASSLIB_FALSE='#'
-else
-  USER_SPECIFIED_CLASSLIB_TRUE='#'
-  USER_SPECIFIED_CLASSLIB_FALSE=
-fi
-
-
-
-# Check whether --with-vm-classes or --without-vm-classes was given.
-if test "${with_vm_classes+set}" = set; then
-  withval="$with_vm_classes"
-  vm_classes="$with_vm_classes"
-else
-  vm_classes='${top_srcdir}/vm/reference'
-fi;
-
-
-
-echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
-echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
-    # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
-  enableval="$enable_maintainer_mode"
-  USE_MAINTAINER_MODE=$enableval
-else
-  USE_MAINTAINER_MODE=no
-fi;
-  echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
-echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
-
-
-if test $USE_MAINTAINER_MODE = yes; then
-  MAINTAINER_MODE_TRUE=
-  MAINTAINER_MODE_FALSE='#'
-else
-  MAINTAINER_MODE_TRUE='#'
-  MAINTAINER_MODE_FALSE=
-fi
-
-  MAINT=$MAINTAINER_MODE_TRUE
-
-
-
-# Check whether --enable-debug or --disable-debug was given.
-if test "${enable_debug+set}" = set; then
-  enableval="$enable_debug"
-  case "${enableval}" in
-                yes)
-               LIBDEBUG="true"
-
-cat >>confdefs.h <<\_ACEOF
-#define DEBUG 1
-_ACEOF
-
-               ;;
-                no)   LIBDEBUG="false" ;;
-                *)     { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-debug" >&5
-echo "$as_me: error: bad value ${enableval} for --enable-debug" >&2;}
-   { (exit 1); exit 1; }; } ;;
-              esac
-else
-  LIBDEBUG="false"
-fi;
-
-
-# Check whether --enable-load-library or --disable-load-library was given.
-if test "${enable_load_library+set}" = set; then
-  enableval="$enable_load_library"
-  case "${enableval}" in
-                yes) INIT_LOAD_LIBRARY="true" ;;
-                no) INIT_LOAD_LIBRARY="false" ;;
-                *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-load-library" >&5
-echo "$as_me: error: bad value ${enableval} for --enable-load-library" >&2;}
-   { (exit 1); exit 1; }; } ;;
-              esac
-else
-  INIT_LOAD_LIBRARY="true"
-fi;
-
-
-
-
-# Check whether --with-ecj-jar or --without-ecj-jar was given.
-if test "${with_ecj_jar+set}" = set; then
-  withval="$with_ecj_jar"
-  ECJ_JAR=$withval
-else
-  if test -f $multi_basedir/ecj.jar; then
-              ECJ_JAR='$(jardir)/ecj.jar'
-            fi
-fi;
-
-
-# Check whether --enable-java-lang-system-explicit-initialization or --disable-java-lang-system-explicit-initialization was given.
-if test "${enable_java_lang_system_explicit_initialization+set}" = set; then
-  enableval="$enable_java_lang_system_explicit_initialization"
-  case "${enableval}" in
-                yes|true) JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION="true" ;;
-                no|false) JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION="false" ;;
-                *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-java-lang-system-explicit-initialization" >&5
-echo "$as_me: error: bad value ${enableval} for --enable-java-lang-system-explicit-initialization" >&2;}
-   { (exit 1); exit 1; }; } ;;
-              esac
-else
-  JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION="false"
-fi;
-
-
-
-REMOVE=""
-
-
-# Extract the first word of "mkdir", so it can be a program name with args.
-set dummy mkdir; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_MKDIR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $MKDIR in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_MKDIR="$MKDIR" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_MKDIR="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-MKDIR=$ac_cv_path_MKDIR
-
-if test -n "$MKDIR"; then
-  echo "$as_me:$LINENO: result: $MKDIR" >&5
-echo "${ECHO_T}$MKDIR" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-# Extract the first word of "cp", so it can be a program name with args.
-set dummy cp; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_path_CP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  case $CP in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_CP="$CP" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-  ;;
-esac
-fi
-CP=$ac_cv_path_CP
-
-if test -n "$CP"; then
-  echo "$as_me:$LINENO: result: $CP" >&5
-echo "${ECHO_T}$CP" >&6
+if test -n "$CP"; then
+  echo "$as_me:$LINENO: result: $CP" >&5
+echo "${ECHO_T}$CP" >&6
 else
   echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
@@ -26023,8 +24517,10 @@ echo $ECHO_N "checking for user supplied fastjar... $ECHO_C" >&6
 echo "${ECHO_T}${FASTJAR}" >&6
 
 else
-  # Extract the first word of "fastjar", so it can be a program name with args.
-set dummy fastjar; ac_word=$2
+  for ac_prog in fastjar gjar jar
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
 echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_path_FASTJAR+set}" = set; then
@@ -26062,6 +24558,9 @@ else
 echo "${ECHO_T}no" >&6
 fi
 
+  test -n "$FASTJAR" && break
+done
+
 fi;
   if test x"${FASTJAR}" != x; then
     ZIP=""
@@ -26153,6 +24652,24 @@ fi;
   fi
 
 
+  # Check whether --enable-tools or --disable-tools was given.
+if test "${enable_tools+set}" = set; then
+  enableval="$enable_tools"
+  case "${enableval}" in
+                 yes) TOOLSDIR="tools" ;;
+                 no) TOOLSDIR="" ;;
+                 *) { { echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-tools" >&5
+echo "$as_me: error: bad value ${enableval} for --enable-tools" >&2;}
+   { (exit 1); exit 1; }; } ;;
+               esac
+else
+  TOOLSDIR="tools"
+fi;
+  if test "x${use_zip}" = xno && test "x${install_class_files}" = xno; then
+    TOOLSDIR=""
+  fi
+
+
 
 
 
 if test "${with_jay+set}" = set; then
   withval="$with_jay"
 
-    if test -d "${withval}"; then
+    echo "$as_me:$LINENO: checking whether to regenerate parsers with jay" >&5
+echo $ECHO_N "checking whether to regenerate parsers with jay... $ECHO_C" >&6
+    JAY_FOUND=no
+    JAY_DIR_PATH=
+    if test "x${withval}" = xno; then
+      echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+    elif test "x${withval}" = xyes; then
+      echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+      JAY_DIR_PATH="/usr/share/jay"
+    elif test -d "${withval}"; then
+      echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
       JAY_DIR_PATH="${withval}"
+    elif test -f "${withval}"; then
+      echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+      JAY_DIR_PATH=`dirname "${withval}"`
+      JAY="${withval}"
+    else
+        { { echo "$as_me:$LINENO: error: jay not found at ${withval}" >&5
+echo "$as_me: error: jay not found at ${withval}" >&2;}
+   { (exit 1); exit 1; }; }
+    fi
+
+    if test "x${JAY_DIR_PATH}" != x; then
       # Extract the first word of "jay", so it can be a program name with args.
 set dummy jay; ac_word=$2
 echo "$as_me:$LINENO: checking for $ac_word" >&5
@@ -26275,7 +24817,8 @@ else
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in ${JAY_DIR_PATH}
+as_dummy="${JAY_DIR_PATH}:${PATH}"
+for as_dir in $as_dummy
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
@@ -26303,17 +24846,12 @@ echo "${ECHO_T}no" >&6
 fi
 
       if test "x${JAY}" = xno; then
-        { { echo "$as_me:$LINENO: error: \"jay executable not found\"" >&5
-echo "$as_me: error: \"jay executable not found\"" >&2;}
+        { { echo "$as_me:$LINENO: error: jay executable not found" >&5
+echo "$as_me: error: jay executable not found" >&2;}
    { (exit 1); exit 1; }; };
       fi
-    else
-      JAY_DIR_PATH=`dirname "${withval}"`
-      JAY="${withval}"
-
-    fi
-    JAY_SKELETON="${JAY_DIR_PATH}/skeleton"
-    as_ac_File=`echo "ac_cv_file_${JAY_SKELETON}" | $as_tr_sh`
+      JAY_SKELETON="${JAY_DIR_PATH}/skeleton"
+      as_ac_File=`echo "ac_cv_file_${JAY_SKELETON}" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for ${JAY_SKELETON}" >&5
 echo $ECHO_N "checking for ${JAY_SKELETON}... $ECHO_C" >&6
 if eval "test \"\${$as_ac_File+set}\" = set"; then
@@ -26334,15 +24872,20 @@ echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6
 if test `eval echo '${'$as_ac_File'}'` = yes; then
   :
 else
-  { { echo "$as_me:$LINENO: error: \"Expected skeleton file in \`dirname ${withval}\`\"" >&5
-echo "$as_me: error: \"Expected skeleton file in \`dirname ${withval}\`\"" >&2;}
+  { { echo "$as_me:$LINENO: error: Expected skeleton file in ${JAY_DIR_PATH}" >&5
+echo "$as_me: error: Expected skeleton file in ${JAY_DIR_PATH}" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
-    JAY_FOUND=yes
+      JAY_FOUND=yes
+    fi
 
 else
 
+    echo "$as_me:$LINENO: checking whether to regenerate parsers with jay" >&5
+echo $ECHO_N "checking whether to regenerate parsers with jay... $ECHO_C" >&6
+    echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
     JAY_FOUND=no
 
 fi;
 
 
 
+# Check for javac if we need to build either the class library,
+# the examples or the tools
+if test "x${use_glibj_zip}" = xfalse || \
+   test "x${EXAMPLESDIR}" != x || \
+   test "x${TOOLSDIR}" != x && \
+   test "x${build_class_files}" != xno; then
+
+if test "x$JAVAPREFIX" = x; then
+        test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT -warn:-deprecation,serial,unusedImport" "ecj-3.3$EXEEXT -warn:-deprecation,serial,unusedImport" "ecj-3.2$EXEEXT -warn:-deprecation,serial,unusedImport" "javac$EXEEXT -Xlint:unchecked" "gcj$EXEEXT -C"
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_JAVAC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$JAVAC"; then
+  ac_cv_prog_JAVAC="$JAVAC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_JAVAC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+JAVAC=$ac_cv_prog_JAVAC
+if test -n "$JAVAC"; then
+  echo "$as_me:$LINENO: result: $JAVAC" >&5
+echo "${ECHO_T}$JAVAC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$JAVAC" && break
+done
+
+else
+        test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT -warn:-deprecation,serial,unusedImport" "ecj-3.3$EXEEXT -warn:-deprecation,serial,unusedImport" "ecj-3.2$EXEEXT -warn:-deprecation,serial,unusedImport" "javac$EXEEXT -Xlint:unchecked" "gcj$EXEEXT -C"
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+if test "${ac_cv_prog_JAVAC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$JAVAC"; then
+  ac_cv_prog_JAVAC="$JAVAC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_JAVAC="$ac_prog"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+JAVAC=$ac_cv_prog_JAVAC
+if test -n "$JAVAC"; then
+  echo "$as_me:$LINENO: result: $JAVAC" >&5
+echo "${ECHO_T}$JAVAC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+  test -n "$JAVAC" && break
+done
+test -n "$JAVAC" || JAVAC="$JAVAPREFIX"
+
+fi
+test "x$JAVAC" = x && { { echo "$as_me:$LINENO: error: no acceptable Java compiler found in \$PATH" >&5
+echo "$as_me: error: no acceptable Java compiler found in \$PATH" >&2;}
+   { (exit 1); exit 1; }; }
+if test "$enable_java_maintainer_mode" = yes; then
+
+echo "$as_me:$LINENO: checking if $JAVAC works" >&5
+echo $ECHO_N "checking if $JAVAC works... $ECHO_C" >&6
+if test "${ac_cv_prog_javac_works+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+JAVA_TEST=Object.java
+CLASS_TEST=Object.class
+cat << \EOF > $JAVA_TEST
+/* #line 27957 "configure" */
+package java.lang;
+
+public class Object
+{
+  static <T> void doStuff()
+  {
+  }
+}
+EOF
+if { ac_try='$JAVAC $JAVA_TEST'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } >/dev/null 2>&1; then
+  ac_cv_prog_javac_works=yes
+else
+  { { echo "$as_me:$LINENO: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&5
+echo "$as_me: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&2;}
+   { (exit 1); exit 1; }; }
+  echo "configure: failed program was:" >&5
+  cat $JAVA_TEST >&5
+fi
+rm -f $JAVA_TEST $CLASS_TEST
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_javac_works" >&5
+echo "${ECHO_T}$ac_cv_prog_javac_works" >&6
+
+fi
+
+
+  JAVA_TEST=Test.java
+  CLASS_TEST=Test.class
+  cat << \EOF > $JAVA_TEST
+  /* #line 27993 "configure" */
+  public class Test
+  {
+    public static void main(String args)
+    {
+      System.out.println("Hello World");
+    }
+  }
+EOF
+  echo "$as_me:$LINENO: checking whether javac supports -J" >&5
+echo $ECHO_N "checking whether javac supports -J... $ECHO_C" >&6
+  $JAVAC $JAVACFLAGS -J-Xmx768M -sourcepath '' $JAVA_TEST
+  javac_result=$?
+  if test "x$javac_result" = "x0"; then
+    echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+    JAVAC_MEM_OPT="-J-Xmx768M"
+  else
+    echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+  fi
+  rm -f $JAVA_TEST $CLASS_TEST
+
+
+fi
+
 
 # Check whether --with-escher or --without-escher was given.
 if test "${with_escher+set}" = set; then
@@ -29630,7 +28340,7 @@ fi
 
 
 
-                                                                                                                                                                                                                                                                                                                                                                                                                                              ac_config_files="$ac_config_files Makefile doc/Makefile doc/api/Makefile external/Makefile external/sax/Makefile external/w3c_dom/Makefile external/relaxngDatatype/Makefile external/jsr166/Makefile gnu/classpath/Configuration.java gnu/java/security/Configuration.java include/Makefile native/Makefile native/fdlibm/Makefile native/jawt/Makefile native/jni/Makefile native/jni/classpath/Makefile native/jni/java-io/Makefile native/jni/java-lang/Makefile native/jni/java-net/Makefile native/jni/java-nio/Makefile native/jni/java-util/Makefile native/jni/gtk-peer/Makefile native/jni/gconf-peer/Makefile native/jni/gstreamer-peer/Makefile native/jni/qt-peer/Makefile native/jni/xmlj/Makefile native/jni/midi-alsa/Makefile native/jni/midi-dssi/Makefile native/jni/native-lib/Makefile native/plugin/Makefile resource/Makefile resource/META-INF/services/java.util.prefs.PreferencesFactory resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader resource/META-INF/services/javax.sound.sampled.spi.MixerProvider scripts/Makefile scripts/classpath.spec lib/Makefile lib/gen-classlist.sh lib/copy-vmresources.sh tools/Makefile examples/Makefile examples/Makefile.jawt examples/Makefile.java2d"
+                                                                                                                                                                                                                                                                                                                                                                                                                                                        ac_config_files="$ac_config_files Makefile doc/Makefile doc/api/Makefile external/Makefile external/sax/Makefile external/w3c_dom/Makefile external/relaxngDatatype/Makefile external/jsr166/Makefile gnu/classpath/Configuration.java gnu/java/security/Configuration.java include/Makefile native/Makefile native/fdlibm/Makefile native/jawt/Makefile native/jni/Makefile native/jni/classpath/Makefile native/jni/java-io/Makefile native/jni/java-lang/Makefile native/jni/java-net/Makefile native/jni/java-nio/Makefile native/jni/java-util/Makefile native/jni/gtk-peer/Makefile native/jni/gconf-peer/Makefile native/jni/gstreamer-peer/Makefile native/jni/qt-peer/Makefile native/jni/xmlj/Makefile native/jni/midi-alsa/Makefile native/jni/midi-dssi/Makefile native/jni/native-lib/Makefile native/plugin/Makefile resource/Makefile resource/META-INF/services/java.util.prefs.PreferencesFactory resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader resource/META-INF/services/javax.sound.sampled.spi.MixerProvider scripts/Makefile scripts/classpath.spec lib/Makefile lib/gen-classlist.sh lib/copy-vmresources.sh scripts/check_jni_methods.sh tools/Makefile examples/Makefile examples/Makefile.jawt examples/Makefile.java2d"
 
 
 if test "x${COMPILE_WRAPPERS}" = xno
@@ -29898,76 +28608,6 @@ echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
-if test -z "${FOUND_GCJ_TRUE}" && test -z "${FOUND_GCJ_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"FOUND_GCJ\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"FOUND_GCJ\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test -z "${FOUND_JIKES_TRUE}" && test -z "${FOUND_JIKES_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"FOUND_JIKES\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"FOUND_JIKES\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test -z "${FOUND_ECJ_TRUE}" && test -z "${FOUND_ECJ_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"FOUND_ECJ\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"FOUND_ECJ\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test -z "${FOUND_JAVAC_TRUE}" && test -z "${FOUND_JAVAC_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"FOUND_JAVAC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"FOUND_JAVAC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test -z "${FOUND_GCJ_TRUE}" && test -z "${FOUND_GCJ_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"FOUND_GCJ\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"FOUND_GCJ\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test -z "${FOUND_JIKES_TRUE}" && test -z "${FOUND_JIKES_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"FOUND_JIKES\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"FOUND_JIKES\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test -z "${FOUND_ECJ_TRUE}" && test -z "${FOUND_ECJ_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"FOUND_ECJ\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"FOUND_ECJ\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test -z "${FOUND_JAVAC_TRUE}" && test -z "${FOUND_JAVAC_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"FOUND_JAVAC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"FOUND_JAVAC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test -z "${FOUND_KJC_TRUE}" && test -z "${FOUND_KJC_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"FOUND_KJC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"FOUND_KJC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-if test -z "${USER_SPECIFIED_CLASSLIB_TRUE}" && test -z "${USER_SPECIFIED_CLASSLIB_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"USER_SPECIFIED_CLASSLIB\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"USER_SPECIFIED_CLASSLIB\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
 if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -30302,7 +28942,7 @@ _ASBOX
 } >&5
 cat >&5 <<_CSEOF
 
-This file was extended by GNU Classpath $as_me 0.96-pre, which was
+This file was extended by GNU Classpath $as_me 0.97.2, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -30368,7 +29008,7 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-GNU Classpath config.status 0.96-pre
+GNU Classpath config.status 0.97.2
 configured by $0, generated by GNU Autoconf 2.59,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
@@ -30880,6 +29520,7 @@ do
   "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
   "lib/gen-classlist.sh" ) CONFIG_FILES="$CONFIG_FILES lib/gen-classlist.sh" ;;
   "lib/copy-vmresources.sh" ) CONFIG_FILES="$CONFIG_FILES lib/copy-vmresources.sh" ;;
+  "scripts/check_jni_methods.sh" ) CONFIG_FILES="$CONFIG_FILES scripts/check_jni_methods.sh" ;;
   "tools/Makefile" ) CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;;
   "examples/Makefile" ) CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
   "examples/Makefile.jawt" ) CONFIG_FILES="$CONFIG_FILES examples/Makefile.jawt" ;;
@@ -31165,26 +29806,6 @@ s,@GLIB_LIBS@,$GLIB_LIBS,;t t
 s,@PLUGIN_DIR@,$PLUGIN_DIR,;t t
 s,@USER_JAVAH@,$USER_JAVAH,;t t
 s,@CLASSPATH_INCLUDES@,$CLASSPATH_INCLUDES,;t t
-s,@GCJ@,$GCJ,;t t
-s,@JIKES@,$JIKES,;t t
-s,@JIKESENCODING@,$JIKESENCODING,;t t
-s,@JIKESWARNINGS@,$JIKESWARNINGS,;t t
-s,@KJC@,$KJC,;t t
-s,@ECJ@,$ECJ,;t t
-s,@JAVAC@,$JAVAC,;t t
-s,@FOUND_GCJ_TRUE@,$FOUND_GCJ_TRUE,;t t
-s,@FOUND_GCJ_FALSE@,$FOUND_GCJ_FALSE,;t t
-s,@FOUND_JIKES_TRUE@,$FOUND_JIKES_TRUE,;t t
-s,@FOUND_JIKES_FALSE@,$FOUND_JIKES_FALSE,;t t
-s,@FOUND_ECJ_TRUE@,$FOUND_ECJ_TRUE,;t t
-s,@FOUND_ECJ_FALSE@,$FOUND_ECJ_FALSE,;t t
-s,@FOUND_JAVAC_TRUE@,$FOUND_JAVAC_TRUE,;t t
-s,@FOUND_JAVAC_FALSE@,$FOUND_JAVAC_FALSE,;t t
-s,@FOUND_KJC_TRUE@,$FOUND_KJC_TRUE,;t t
-s,@FOUND_KJC_FALSE@,$FOUND_KJC_FALSE,;t t
-s,@USER_CLASSLIB@,$USER_CLASSLIB,;t t
-s,@USER_SPECIFIED_CLASSLIB_TRUE@,$USER_SPECIFIED_CLASSLIB_TRUE,;t t
-s,@USER_SPECIFIED_CLASSLIB_FALSE@,$USER_SPECIFIED_CLASSLIB_FALSE,;t t
 s,@vm_classes@,$vm_classes,;t t
 s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
 s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
@@ -31207,6 +29828,7 @@ s,@INSTALL_CLASS_FILES_FALSE@,$INSTALL_CLASS_FILES_FALSE,;t t
 s,@BUILD_CLASS_FILES_TRUE@,$BUILD_CLASS_FILES_TRUE,;t t
 s,@BUILD_CLASS_FILES_FALSE@,$BUILD_CLASS_FILES_FALSE,;t t
 s,@EXAMPLESDIR@,$EXAMPLESDIR,;t t
+s,@TOOLSDIR@,$TOOLSDIR,;t t
 s,@GJDOC@,$GJDOC,;t t
 s,@CREATE_API_DOCS_TRUE@,$CREATE_API_DOCS_TRUE,;t t
 s,@CREATE_API_DOCS_FALSE@,$CREATE_API_DOCS_FALSE,;t t
@@ -31217,6 +29839,8 @@ s,@REGEN_PARSERS_FALSE@,$REGEN_PARSERS_FALSE,;t t
 s,@USE_PREBUILT_GLIBJ_ZIP_TRUE@,$USE_PREBUILT_GLIBJ_ZIP_TRUE,;t t
 s,@USE_PREBUILT_GLIBJ_ZIP_FALSE@,$USE_PREBUILT_GLIBJ_ZIP_FALSE,;t t
 s,@PATH_TO_GLIBJ_ZIP@,$PATH_TO_GLIBJ_ZIP,;t t
+s,@JAVAC@,$JAVAC,;t t
+s,@JAVAC_MEM_OPT@,$JAVAC_MEM_OPT,;t t
 s,@USE_ESCHER_TRUE@,$USE_ESCHER_TRUE,;t t
 s,@USE_ESCHER_FALSE@,$USE_ESCHER_FALSE,;t t
 s,@PATH_TO_ESCHER@,$PATH_TO_ESCHER,;t t
index 96db95d9749c56c3a11fdb5a09a66dbcecd5e5d7..a14d2c128c378749695dffc2b0e3587d50eb2094 100644 (file)
@@ -6,7 +6,7 @@ dnl -----------------------------------------------------------
 dnl define([AC_CACHE_LOAD], )dnl
 dnl define([AC_CACHE_SAVE], )dnl
 
-AC_INIT([GNU Classpath],[0.96-pre],[classpath@gnu.org],[classpath])
+AC_INIT([GNU Classpath],[0.97.2],[classpath@gnu.org],[classpath])
 AC_CONFIG_SRCDIR(java/lang/System.java)
 
 dnl GCJ LOCAL
@@ -338,13 +338,17 @@ dnl -----------------------------------------------------------
 dnl Regenerate headers at build time (disabled by default)
 dnl -----------------------------------------------------------
 AC_ARG_ENABLE([regen-headers],
-              [AS_HELP_STRING(--enable-regen-headers,automatically regenerate JNI headers [default=no])],
+              [AS_HELP_STRING(--enable-regen-headers,automatically regenerate JNI headers [default=yes if headers don't exist])],
               [case "${enableval}" in
                 yes) REGENERATE_JNI_HEADERS=yes ;;
                 no) REGENERATE_JNI_HEADERS=no ;;
-                *) REGENERATE_JNI_HEADERS=no ;;
+                *) REGENERATE_JNI_HEADERS=yes ;;
               esac],
-              [REGENERATE_JNI_HEADERS=no])
+              [if test -e include/java_lang_VMSystem.h; then
+                       REGENERATE_JNI_HEADERS=no ;
+                  else
+                       REGENERATE_JNI_HEADERS=yes ;
+              fi])
 AM_CONDITIONAL(CREATE_JNI_HEADERS, test "x${REGENERATE_JNI_HEADERS}" = xyes)
 
 dnl -----------------------------------------------------------
@@ -416,6 +420,8 @@ if test "x${COMPILE_JNI}" = xyes; then
   dnl On that system, sys/ioctl.h will not include sys/filio.h unless
   dnl BSD_COMP is defined; just including sys/filio.h is simpler.
   dnl Check for crt_externs.h on Darwin.
+  dnl Check for netinet/in_systm.h, netinet/ip.h and net/if.h for Windows CE.
+  dnl Check for sys/loadavg.h for getloadavg() on Solaris 9.
   AC_CHECK_HEADERS([unistd.h sys/types.h sys/config.h sys/ioctl.h \
                    asm/ioctls.h \
                    inttypes.h stdint.h utime.h sys/utime.h sys/filio.h \
@@ -426,7 +432,9 @@ if test "x${COMPILE_JNI}" = xyes; then
                    sys/mman.h \
                    magic.h \
                     sys/event.h sys/epoll.h \
-                   ifaddrs.h])
+                   ifaddrs.h \
+                   netinet/in_systm.h netinet/ip.h net/if.h \
+                   sys/loadavg.h])
 
   AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
   AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
@@ -442,11 +450,12 @@ if test "x${COMPILE_JNI}" = xyes; then
                  gethostbyname_r localtime_r \
                  strerror_r \
                   fcntl \
+                 statvfs \  
                  mmap munmap mincore msync madvise getpagesize sysconf \
                  lstat readlink \
                  inet_aton inet_addr inet_pton \
                  getifaddrs kqueue kevent epoll_create \
-                  readdir_r getloadavg])
+                  getloadavg])
 
   LIBMAGIC=
   AC_CHECK_LIB(magic, magic_open, LIBMAGIC=-lmagic)
@@ -539,11 +548,13 @@ if test "x${COMPILE_JNI}" = xyes; then
     if test "$no_x" = yes; then
         AC_MSG_ERROR([GTK+ peers requested but no X library available])
     fi
-    dnl We explicitly want the XTest Extension for Robot support.
+    dnl Check if we can link against the XTest library and set
+    dnl HAVE_XTEST accordingly.
     AC_CHECK_LIB([Xtst], [XTestQueryExtension],
-                [XTEST_LIBS="$XTEST_LIBS -lX11 -lXtst"],
-                [AC_MSG_ERROR([libXtst NOT found, required for GdkRobot])],
-                [${X_LIBS}])
+                 [AC_DEFINE(HAVE_XTEST, 1, [Define to 1 if you have libXtst.])[XTEST_LIBS="$XTEST_LIBS -X11 -lXtst"]],
+                 [true],
+                 [${X_LIBS}])
+
 
     PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.8 gthread-2.0 >= 2.2 gdk-pixbuf-2.0)
     PKG_CHECK_MODULES(FREETYPE2, freetype2)
@@ -586,7 +597,7 @@ if test "x${COMPILE_JNI}" = xyes; then
     dnl compiled in
     USE_GCONF_PREFS_PEER=$enable_default_preferences_peer
     if test "$USE_GCONF_PREFS_PEER" = ""; then
-       DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory
+      DEFAULT_PREFS_PEER=gnu.java.util.prefs.GConfBasedFactory
     fi
   fi
 
@@ -614,6 +625,10 @@ if test "x${COMPILE_JNI}" = xyes; then
 
        GST_PLUGIN_LDFLAGS='-module -avoid-version -Wno-unused-parameter -no-undefined'
        AC_SUBST(GST_PLUGIN_LDFLAGS)
+
+    PKG_CHECK_MODULES(GDK, gdk-2.0 >= 2.8)
+    AC_SUBST(GDK_CFLAGS)
+    AC_SUBST(GDK_LIBS)
        
        dnl set the gstreamer based file reader, writer and mixer
        GSTREAMER_FILE_READER=gnu.javax.sound.sampled.gstreamer.io.GstAudioFileReader
@@ -773,8 +788,6 @@ if test "x${COMPILE_JNI}" = xyes; then
   AC_CONFIG_LINKS([$ac_config_links_1])
 fi
 
-CLASSPATH_FIND_JAVAC
-
 CLASSPATH_WITH_CLASSLIB
 
 dnl -----------------------------------------------------------
@@ -935,6 +948,16 @@ esac;
 AM_CONDITIONAL(USE_PREBUILT_GLIBJ_ZIP, test x$use_glibj_zip = xtrue)
 AC_SUBST(PATH_TO_GLIBJ_ZIP)
 
+# Check for javac if we need to build either the class library,
+# the examples or the tools
+if test "x${use_glibj_zip}" = xfalse || \
+   test "x${EXAMPLESDIR}" != x || \
+   test "x${TOOLSDIR}" != x && \
+   test "x${build_class_files}" != xno; then   
+       AC_PROG_JAVAC
+       CLASSPATH_JAVAC_MEM_CHECK
+fi
+
 dnl -----------------------------------------------------------
 dnl Build with Escher based X peers.
 dnl -----------------------------------------------------------
@@ -1030,6 +1053,7 @@ scripts/classpath.spec
 lib/Makefile
 lib/gen-classlist.sh
 lib/copy-vmresources.sh
+scripts/check_jni_methods.sh
 tools/Makefile
 examples/Makefile
 examples/Makefile.jawt
index 04701da536f33a7c39d7bb01b87a70ae3a776df5..e5f9736c7239301c765e2d7abefb9bb9b9237ac5 100755 (executable)
@@ -1,9 +1,10 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2005-07-09.11
+scriptversion=2007-03-29.01
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software
+# Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -91,7 +92,20 @@ gcc3)
 ## gcc 3 implements dependency tracking that does exactly what
 ## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
 ## it if -MD -MP comes after the -MF stuff.  Hmm.
-  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am.  Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+  for arg
+  do
+    case $arg in
+    -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+    *)  set fnord "$@" "$arg" ;;
+    esac
+    shift # fnord
+    shift # $arg
+  done
+  "$@"
   stat=$?
   if test $stat -eq 0; then :
   else
@@ -201,34 +215,39 @@ aix)
   # current directory.  Also, the AIX compiler puts `$object:' at the
   # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.
-  stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
-  tmpdepfile="$stripped.u"
+  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+  test "x$dir" = "x$object" && dir=
+  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
   if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$base.u
+    tmpdepfile3=$dir.libs/$base.u
     "$@" -Wc,-M
   else
+    tmpdepfile1=$dir$base.u
+    tmpdepfile2=$dir$base.u
+    tmpdepfile3=$dir$base.u
     "$@" -M
   fi
   stat=$?
 
-  if test -f "$tmpdepfile"; then :
-  else
-    stripped=`echo "$stripped" | sed 's,^.*/,,'`
-    tmpdepfile="$stripped.u"
-  fi
-
   if test $stat -eq 0; then :
   else
-    rm -f "$tmpdepfile"
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
     exit $stat
   fi
 
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
   if test -f "$tmpdepfile"; then
-    outname="$stripped.o"
     # Each line is of the form `foo.o: dependent.h'.
     # Do two passes, one to just change these to
     # `$object: dependent.h' and one to simply `dependent.h:'.
-    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
-    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
+    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+    # That's a tab and a space in the [].
+    sed -e 's,^.*\.[a-z]*:[     ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
   else
     # The sourcefile does not contain any dependencies, so just
     # store a dummy comment line, to avoid errors with the Makefile
@@ -276,6 +295,46 @@ icc)
   rm -f "$tmpdepfile"
   ;;
 
+hp2)
+  # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+  # compilers, which have integrated preprocessors.  The correct option
+  # to use with these is +Maked; it writes dependencies to a file named
+  # 'foo.d', which lands next to the object file, wherever that
+  # happens to be.
+  # Much of this is similar to the tru64 case; see comments there.
+  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+  test "x$dir" = "x$object" && dir=
+  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  if test "$libtool" = yes; then
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir.libs/$base.d
+    "$@" -Wc,+Maked
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    "$@" +Maked
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+     rm -f "$tmpdepfile1" "$tmpdepfile2"
+     exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  if test -f "$tmpdepfile"; then
+    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+    # Add `dependent.h:' lines.
+    sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
+  else
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile" "$tmpdepfile2"
+  ;;
+
 tru64)
    # The Tru64 compiler uses -MD to generate dependencies as a side
    # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
@@ -288,13 +347,13 @@ tru64)
 
    if test "$libtool" = yes; then
       # With Tru64 cc, shared objects can also be used to make a
-      # static library.  This mecanism is used in libtool 1.4 series to
+      # static library.  This mechanism is used in libtool 1.4 series to
       # handle both shared and static libraries in a single compilation.
       # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
       #
       # With libtool 1.5 this exception was removed, and libtool now
       # generates 2 separate objects for the 2 libraries.  These two
-      # compilations output dependencies in in $dir.libs/$base.o.d and
+      # compilations output dependencies in $dir.libs/$base.o.d and
       # in $dir$base.o.d.  We have to check for both files, because
       # one of the two compilations can be disabled.  We should prefer
       # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
index f29a519ff0d83487fc4213c9b7842056f5468b85..7c1b244c5905c2f486c8a72b5bc8f237170c6ae3 100644 (file)
@@ -49,6 +49,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -154,7 +156,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -166,19 +167,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -210,15 +200,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -266,10 +253,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index b63b31f34444ba1d86d54f9e7a4e50502977ffeb..76b35c5f8508387470b612899d750ca7ff8a6da4 100644 (file)
@@ -2,7 +2,7 @@ if CREATE_API_DOCS
 noinst_DATA = html
 endif
 
-sourcepath = $(top_builddir):$(top_srcdir):$(top_srcdir)/vm/reference:$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax
+sourcepath = $(top_builddir):$(top_srcdir):$(top_srcdir)/vm/reference:$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/jsr166
 
 classpathbox = "<span class='logo'><a href='http://www.gnu.org/software/classpath' target='_top'>GNU Classpath</a> ($(VERSION))"
 
index 5166cbed8ce76ada05551ca55ee4f22df78856e3..0412d330f448a756973c8ca1a0249445c0147bf5 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -131,7 +133,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -143,19 +144,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -187,15 +177,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -243,10 +230,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -319,7 +304,7 @@ target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
 vm_classes = @vm_classes@
 @CREATE_API_DOCS_TRUE@noinst_DATA = html
-sourcepath = $(top_builddir):$(top_srcdir):$(top_srcdir)/vm/reference:$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax
+sourcepath = $(top_builddir):$(top_srcdir):$(top_srcdir)/vm/reference:$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/jsr166
 classpathbox = "<span class='logo'><a href='http://www.gnu.org/software/classpath' target='_top'>GNU Classpath</a> ($(VERSION))"
 all: all-am
 
index ee2b8f53cabe8c2c05ac5756fa6a0a60f3d445ec..829b0e40e81556f9670192f52f88b4fc8644ff3d 100644 (file)
@@ -121,12 +121,12 @@ Localization
 @comment node-name, next, previous, up
 @chapter Introduction
 
-The GNU Classpath Project is dedicated to providing a 100% free,
+The GNU Classpath Project is dedicated to providing a 100% free,
 clean room implementation of the standard core class libraries for
 compilers and runtime environments for the java programming language.
 It offers free software developers an alternative core library
 implementation upon which larger java-like programming environments
-can be build.  The GNU Classpath Project was started in the Spring of
+can be built.  The GNU Classpath Project was started in the Spring of
 1998 as an official Free Software Foundation project.  Most of the
 volunteers working on GNU Classpath do so in their spare time, but a
 couple of projects based on GNU Classpath have paid programmers to
@@ -225,7 +225,7 @@ java.net package, there are non-public classes for implementing sockets.
 Without those classes, the public socket interface is useless.  But do
 not feel obligated to completely implement all of the functionality at
 once.  For example, in the java.net package, there are different types
-of protocol handlers for different types of URL's.  Not all of these
+of protocol handlers for different types of URLs.  Not all of these
 need to be written at once.
 
 @item
@@ -278,8 +278,8 @@ While free operating systems are the top priority, the other priorities
 can shift depending on whether or not there is a volunteer to port
 Classpath to those platforms and to test releases.
 
-Eventually we hope the Classpath will support all JVM's that provide
-JNI or CNI support.  However, the top priority is free JVM's.  A small
+Eventually we hope the Classpath will support all JVMs that provide
+JNI or CNI support.  However, the top priority is free JVMs.  A small
 list of Compiler/VM environments that are currently actively
 incorporating GNU Classpath is below.  A more complete overview of
 projects based on GNU classpath can be found online at
@@ -292,38 +292,40 @@ Classpath stories page}.
 @item 
 @uref{http://jamvm.sourceforge.net/,jamvm}
 @item 
-@uref{http://kissme.sourceforge.net/,Kissme}
+@uref{http://www.cacaojvm.org/,cacao}
 @item
-@uref{http://www.ibm.com/developerworks/oss/jikesrvm/,Jikes RVM}
-@item
-@uref{http://www.sablevm.org/,SableVM}
+@uref{http://jikesrvm.org,Jikes RVM}
 @item
 @uref{http://www.kaffe.org/,Kaffe}
+@item
+@uref{http://www.ikvm.net/,IKVM}
 @end enumerate
 
 As with OS platform support, this priority list could change if a
 volunteer comes forward to port, maintain, and test releases for a
 particular JVM@.  Since gcj is part of the GNU Compiler Collective it
 is one of the most important targets.  But since it doesn't currently
-work out of the box with GNU Classpath it is currently not the easiest
-target.  When hacking on GNU Classpath the easiest is to use
-compilers and runtime environments that that work out of the box with
-it, such as the jikes compiler and the runtime environments jamvm and
-kissme.  But you can also work directly with targets like gcj and
-kaffe that have their own copy of GNU Classpath currently.  In that
-case changes have to be merged back into GNU Classpath proper though,
-which is sometimes more work.  SableVM is starting to migrate from an
-integrated GNU Classpath version to being usable with GNU Classpath
-out of the box.
-
-
-The initial target version for Classpath is the 1.1 spec.  Higher
-versions can be implemented (and have been implemented, including lots
-of 1.4 functionality) if desired, but please do not create classes
-that depend on features in those packages unless GNU Classpath already
+work out of the box with GNU Classpath it is not the easiest
+target.  When hacking on GNU Classpath the easiest solution is to use
+compilers and runtime environments that work out of the box with
+it, such as the Eclipse compiler, ecj, and the runtime environments jamvm and
+cacao.  Both Jikes RVM and Kaffe use an included version of GNU Classpath by
+default, but Kaffe can now use a pre-installed version and Jikes RVM supports 
+using a CVS snapshot as well as the latest release.  Working directly with
+targets such as Jikes RVM, gcj and IKVM is possible but can be a little more
+difficult as changes have to be merged back into GNU Classpath proper,
+which requires additional work.  Due to a recent switch to the use of 1.5 language
+features within GNU Classpath, a compiler compatible with these features is required.
+At present, this includes the Eclipse compiler, ecj, and the OpenJDK compiler.
+
+GNU Classpath currently implements the majority of the 1.4 and 1.5 APIs
+(binary compatibility is above 95% for both, but does not take into account
+internal implementations of features such as graphic and sound support).  There
+is support for some 1.6 APIs but this is still nascent.  Please do not create classes
+that depend on features in other packages unless GNU Classpath already
 contains those features.  GNU Classpath has been free of any
 proprietary dependencies for a long time now and we like to keep it
-that way.  But finishing, polishing up, documenting, testing and
+that way.  Finishing, polishing up, documenting, testing and
 debugging current functionality is of higher priority then adding new
 functionality.
 
@@ -332,11 +334,11 @@ functionality.
 @chapter Needed Tools and Libraries
 
 If you want to hack on Classpath, you should at least download and
-install the following tools.  And try to familiarize yourself with
-them.  Although in most cases having these tools installed will be all
+install the following tools and try to familiarize yourself with
+them.  In most cases having these tools installed will be all
 you really need to know about them.  Also note that when working on
-(snapshot) releases only GCC 3.3+ (plus a free VM from the list above
-and the libraries listed below) is needed.  The other tools are only
+(snapshot) releases only a 1.5 compiler (plus a free VM from the list above
+and the libraries listed below) is required.  The other tools are only
 needed when working directly on the CVS version.
 
 @itemize @bullet
@@ -446,8 +448,8 @@ When working from CVS you can run those tools by executing
 
 For building the Java bytecode (.class files), you can select 
 which compiler should be employed using @option{--with-javac} or 
-@option{--with-ecj} as argument to @command{configure}; 
-the present default is @command{ecj}.
+@option{--with-ecj} as an argument to @command{configure}; 
+the present default is @command{ecj} if found.
 
 Instead of @command{ecj}, you can also use @command{javac}, which is 
 available at 
@@ -563,12 +565,25 @@ configuration settings in GNOME.
 
 @end table
 
+The GStreamer backend for javax.sound.sampled (The Java Sound API, not
+including the MIDI portion) needs the following library headers:
+
+@table @b
+@item GStreamer
+@uref{http://gstreamer.freedesktop.org/,GStreamer} version 0.10.10
+(or higher). You will also need at least gstreamer-base and
+gstreamer-plugins-base. More plugins can be used to allow streaming of
+different sound types but are not a compile time requirement. See
+README.gstreamer in the source distribution for more informations.
+
+@end table
+
 For building @command{gcjwebplugin} you'll need the Mozilla plugin
 support headers and libraries, which are available at 
 @uref{http://www.mozilla.org,www.mozilla.org}.
 
 For enabling the com.sun.tools.javac support in tools.zip you
-will a need jar file containing the Eclipse Java Compiler.
+will need a jar file containing the Eclipse Java Compiler.
 Otherwise com.sun.tools.javac will not be included in @file{tools.zip}.
 
 For building the xmlj JAXP implementation (disabled by default, 
@@ -591,7 +606,7 @@ that are not part of GNU Classpath proper, but that have been included
 to provide certain needed functionality.  All these external libraries
 should be clearly marked as such.  In general we try to use as much as
 possible the clean upstream versions of these sources.  That way
-merging in new versions will be easiest.  You should always try to get
+merging in new versions will be easier.  You should always try to get
 bug fixes to these files accepted upstream first.  Currently we
 include the following 'external' libraries.  Most of these sources are
 included in the @file{external} directory.  That directory also
@@ -599,10 +614,24 @@ contains a @file{README} file explaining how to import newer versions.
 
 @table @b
 
-@item GNU jaxp
-Can be found in @file{external/jaxp}.  Provides javax.xml, org.w3c and
-org.xml packages.  Upstream is
-@uref{http://www.gnu.org/software/classpathx/,GNU ClasspathX}.
+@item JSR166 concurrency support
+Can be found in @file{external/jsr166}.  Provides java.util.concurrent
+and its subpackages.  Upstream is
+@uref{http://g.oswego.edu/dl/concurrency-interest/,Doug Lea's Concurrency Interest Site}.
+
+@item RelaxNG Datatype Interfaces
+Can be found in @file{external/relaxngDatatype}.  Provides org.relaxng.datatype
+and its subpackages.  Upstream is
+@uref{http://www.oasis-open.org/committees/relax-ng/}.
+
+@item Simple API for XML (SAX)
+Can be found in @file{external/sax}.  Provides org.xml.sax and its subpackages.
+Upstream is
+@uref{http://www.saxproject.org}.
+
+@item Document Object Model (DOM) bindings
+Can be found in @file{external/w3c_dom}.  Provides org.w3c.dom and its subpackages.
+Upstream locations are listed in @file{external/w3c_dom/README}.
 
 @item fdlibm
 Can be found in @file{native/fdlibm}.  Provides native implementations
@@ -694,6 +723,10 @@ use prebuilt glibj.zip class library
 
 specify jar file containing the Eclipse Java Compiler
 
+@item --with-gstreamer-peer
+
+build the experimental GStreamer peer (see @file{README.gstreamer})
+
 @end table
 
 For more flags run @command{configure --help}.
@@ -770,7 +803,7 @@ The @option{--enable-maintainer-mode} option to @command{configure} currently do
 little and shouldn't be used by ordinary developers or users anyway.
 
 On Windows machines, the native libraries do not currently build, but
-the Java bytecode library will.  Gcj trunk is beginning to work under
+the Java bytecode library will.  GCJ trunk is beginning to work under
 Cygwin.
 
 @node Programming Standards, Hacking Code, Misc. Notes, Top
@@ -1097,7 +1130,7 @@ Patches that are already approved for libgcj or also OK for Classpath.
 patches require you to think whether or not they are really OK and
 non-controversial, or if you would like some feedback first on them
 before committing.  We might get real commit rules in the future, for
-now use your own judgment, but be a bit conservative.
+now use your own judgement, but be a bit conservative.
 
 Always contact the GNU Classpath maintainer before adding anything
 non-trivial that you didn't write yourself and that does not come from
index 8381828de6d8daacab2f6ea04e5540060590c93b..0b2d78c845c97e4d1bf9573e27bbeec314973870 100644 (file)
@@ -526,10 +526,8 @@ compiler, and is specific to the compiler implementation.
 of doubles.
 
 @itemize @bullet
-@item @code{doubleToLongBits(double)} -- Converts the double to the IEEE 754
-bit layout, collapsing NaNs to @code{0x7ff8000000000000L}.
-@item @code{doubleToRawLongBits(double)} -- Same as the above, but preserves
-NaNs.
+@item @code{doubleToRawLongBits(double)} -- Converts the double to the IEEE 754
+bit layout, preserving NaNs.
 @item @code{longBitsToDouble(long)} -- This is the inverse of the last method,
 preserving NaNs so that the output of one can be fed into the other without
 data loss.
@@ -552,10 +550,8 @@ implementation optional.
 @code{VMFloat} provides native support for the conversion of floats.
 
 @itemize @bullet
-@item @code{floatToIntBits(float)} -- Converts the float to the IEEE 754
-bit layout, collapsing NaNs to @code{0x7fc00000}.
-@item @code{floatToRawIntBits(float)} -- Same as the above, but preserves
-NaNs.
+@item @code{floatToRawIntBits(float)} -- Converts the float to the IEEE 754
+bit layout, preserving NaNs.
 @item @code{intBitsToFloat(int)} -- This is the inverse of the last method,
 preserving NaNs so that the output of one can be fed into the other without
 data loss.
index ff2c40654b2f2a17898e7c6623e8f01b0e5481d4..d2b264dd9a50dc138dd62686656861ba196ddd7e 100644 (file)
@@ -3,16 +3,16 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2005-07-05.19}
+\def\texinfoversion{2007-12-02.17}
 %
-% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
-% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software
-% Foundation, Inc.
+% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 2007,
+% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+% 2007 Free Software Foundation, Inc.
 %
-% This texinfo.tex file is free software; you can redistribute it and/or
+% This texinfo.tex file is free software: you can redistribute it and/or
 % modify it under the terms of the GNU General Public License as
-% published by the Free Software Foundation; either version 2, or (at
-% your option) any later version.
+% published by the Free Software Foundation, either version 3 of the
+% License, or (at your option) any later version.
 %
 % This texinfo.tex file is distributed in the hope that it will be
 % useful, but WITHOUT ANY WARRANTY; without even the implied warranty
@@ -20,9 +20,7 @@
 % General Public License for more details.
 %
 % You should have received a copy of the GNU General Public License
-% along with this texinfo.tex file; see the file COPYING.  If not, write
-% to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-% Boston, MA 02110-1301, USA.
+% along with this program.  If not, see <http://www.gnu.org/licenses/>.
 %
 % As a special exception, when this file is read by TeX when processing
 % a Texinfo source document, you may use the result without
@@ -67,7 +65,7 @@
 \everyjob{\message{[Texinfo version \texinfoversion]}%
   \catcode`+=\active \catcode`\_=\active}
 
-\message{Basics,}
+
 \chardef\other=12
 
 % We never want plain's \outer definition of \+ in Texinfo.
 \ifx\putwordDefopt\undefined    \gdef\putwordDefopt{User Option}\fi
 \ifx\putwordDeffunc\undefined   \gdef\putwordDeffunc{Function}\fi
 
-% In some macros, we cannot use the `\? notation---the left quote is
-% in some cases the escape char.
-\chardef\backChar  = `\\
+% Since the category of space is not known, we have to be careful.
+\chardef\spacecat = 10
+\def\spaceisspace{\catcode`\ =\spacecat}
+
+% sometimes characters are active, so we need control sequences.
 \chardef\colonChar = `\:
 \chardef\commaChar = `\,
+\chardef\dashChar  = `\-
 \chardef\dotChar   = `\.
 \chardef\exclamChar= `\!
-\chardef\plusChar  = `\+
+\chardef\lquoteChar= `\`
 \chardef\questChar = `\?
+\chardef\rquoteChar= `\'
 \chardef\semiChar  = `\;
 \chardef\underChar = `\_
 
-\chardef\spaceChar = `\ %
-\chardef\spacecat = 10
-\def\spaceisspace{\catcode\spaceChar=\spacecat}
-
-{% for help with debugging.
- % example usage: \expandafter\show\activebackslash
- \catcode`\! = 0 \catcode`\\ = \active
- !global!def!activebackslash{\}
-}
-
 % Ignore a token.
 %
 \def\gobble#1{}
 \newdimen\cornerthick \cornerthick=.3pt
 \newdimen\topandbottommargin \topandbottommargin=.75in
 
+% Output a mark which sets \thischapter, \thissection and \thiscolor.
+% We dump everything together because we only have one kind of mark.
+% This works because we only use \botmark / \topmark, not \firstmark.
+%
+% A mark contains a subexpression of the \ifcase ... \fi construct.
+% \get*marks macros below extract the needed part using \ifcase.
+%
+% Another complication is to let the user choose whether \thischapter
+% (\thissection) refers to the chapter (section) in effect at the top
+% of a page, or that at the bottom of a page.  The solution is
+% described on page 260 of The TeXbook.  It involves outputting two
+% marks for the sectioning macros, one before the section break, and
+% one after.  I won't pretend I can describe this better than DEK...
+\def\domark{%
+  \toks0=\expandafter{\lastchapterdefs}%
+  \toks2=\expandafter{\lastsectiondefs}%
+  \toks4=\expandafter{\prevchapterdefs}%
+  \toks6=\expandafter{\prevsectiondefs}%
+  \toks8=\expandafter{\lastcolordefs}%
+  \mark{%
+                   \the\toks0 \the\toks2
+      \noexpand\or \the\toks4 \the\toks6
+    \noexpand\else \the\toks8
+  }%
+}
+% \topmark doesn't work for the very first chapter (after the title
+% page or the contents), so we use \firstmark there -- this gets us
+% the mark with the chapter defs, unless the user sneaks in, e.g.,
+% @setcolor (or @url, or @link, etc.) between @contents and the very
+% first @chapter.
+\def\gettopheadingmarks{%
+  \ifcase0\topmark\fi
+  \ifx\thischapter\empty \ifcase0\firstmark\fi \fi
+}
+\def\getbottomheadingmarks{\ifcase1\botmark\fi}
+\def\getcolormarks{\ifcase2\topmark\fi}
+
+% Avoid "undefined control sequence" errors.
+\def\lastchapterdefs{}
+\def\lastsectiondefs{}
+\def\prevchapterdefs{}
+\def\prevsectiondefs{}
+\def\lastcolordefs{}
+
 % Main output routine.
 \chardef\PAGE = 255
 \output = {\onepageout{\pagecontents\PAGE}}
   %
   % Do this outside of the \shipout so @code etc. will be expanded in
   % the headline as they should be, not taken literally (outputting ''code).
+  \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
   \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
+  \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
   \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
   %
   {%
     % before the \shipout runs.
     %
     \indexdummies         % don't expand commands in the output.
+    \normalturnoffactive  % \ in index entries must not stay \, e.g., if
+               % the page break happens to be in the middle of an example.
+               % We don't want .vr (or whatever) entries like this:
+               % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}}
+               % "\acronym" won't work when it's read back in;
+               % it needs to be 
+               % {\code {{\tt \backslashcurfont }acronym}
     \shipout\vbox{%
       % Do this early so pdf references go to the beginning of the page.
       \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
       \pagebody{#1}%
       \ifdim\ht\footlinebox > 0pt
         % Only leave this space if the footline is nonempty.
-        % (We lessened \vsize for it in \oddfootingxxx.)
+        % (We lessened \vsize for it in \oddfootingyyy.)
         % The \baselineskip=24pt in plain's \makefootline has no effect.
-        \vskip 2\baselineskip
+        \vskip 24pt
         \unvbox\footlinebox
       \fi
       %
 % marginal hacks, juha@viisa.uucp (Juha Takala)
 \ifvoid\margin\else % marginal info is present
   \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
-\dimen@=\dp#1 \unvbox#1
+\dimen@=\dp#1\relax \unvbox#1\relax
 \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
 \ifr@ggedbottom \kern-\dimen@ \vfil \fi}
 }
 %
 \def\parsearg{\parseargusing{}}
 \def\parseargusing#1#2{%
-  \def\next{#2}%
+  \def\argtorun{#2}%
   \begingroup
     \obeylines
     \spaceisspace
 \def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{%
   \def\temp{#3}%
   \ifx\temp\empty
-    % We cannot use \next here, as it holds the macro to run;
-    % thus we reuse \temp.
+    % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp:
     \let\temp\finishparsearg
   \else
     \let\temp\argcheckspaces
 % If a _delimited_ argument is enclosed in braces, they get stripped; so
 % to get _exactly_ the rest of the line, we had to prevent such situation.
 % We prepended an \empty token at the very beginning and we expand it now,
-% just before passing the control to \next.
+% just before passing the control to \argtorun.
 % (Similarily, we have to think about #3 of \argcheckspacesY above: it is
 % either the null string, or it ends with \^^M---thus there is no danger
 % that a pair of braces would be stripped.
 %
 % But first, we have to remove the trailing space token.
 %
-\def\finishparsearg#1 \ArgTerm{\expandafter\next\expandafter{#1}}
+\def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}}
 
 % \parseargdef\foo{...}
 %      is roughly equivalent to
@@ -1051,9 +1095,9 @@ where each line of input produces a line of output.}
 % _ active, and distinguish by seeing if the current family is \slfam,
 % which is what @var uses.
 {
-  \catcode\underChar = \active
+  \catcode`\_ = \active
   \gdef\mathunderscore{%
-    \catcode\underChar=\active
+    \catcode`\_=\active
     \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
   }
 }
@@ -1096,15 +1140,24 @@ where each line of input produces a line of output.}
 \def\minus{$-$}
 
 % @dots{} outputs an ellipsis using the current font.
-% We do .5em per period so that it has the same spacing in a typewriter
-% font as three actual period characters.
+% We do .5em per period so that it has the same spacing in the cm
+% typewriter fonts as three actual period characters; on the other hand,
+% in other typewriter fonts three periods are wider than 1.5em.  So do
+% whichever is larger.
 %
 \def\dots{%
   \leavevmode
-  \hbox to 1.5em{%
-    \hskip 0pt plus 0.25fil
-    .\hfil.\hfil.%
-    \hskip 0pt plus 0.5fil
+  \setbox0=\hbox{...}% get width of three periods
+  \ifdim\wd0 > 1.5em
+    \dimen0 = \wd0
+  \else
+    \dimen0 = 1.5em
+  \fi
+  \hbox to \dimen0{%
+    \hskip 0pt plus.25fil
+    .\hskip 0pt plus1fil
+    .\hskip 0pt plus1fil
+    .\hskip 0pt plus.5fil
   }%
 }
 
@@ -1197,28 +1250,28 @@ where each line of input produces a line of output.}
   \fi
 \fi
 
-% PDF uses PostScript string constants for the names of xref targets, to
+% PDF uses PostScript string constants for the names of xref targets,
 % for display in the outlines, and in other places.  Thus, we have to
 % double any backslashes.  Otherwise, a name like "\node" will be
 % interpreted as a newline (\n), followed by o, d, e.  Not good.
 % http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html
 % (and related messages, the final outcome is that it is up to the TeX
 % user to double the backslashes and otherwise make the string valid, so
-% that's we do).
+% that's what we do).
 
 % double active backslashes.
 % 
 {\catcode`\@=0 \catcode`\\=\active
- @gdef@activebackslash{@catcode`@\=@active @otherbackslash}
  @gdef@activebackslashdouble{%
-   @catcode@backChar=@active
+   @catcode`@\=@active
    @let\=@doublebackslash}
 }
 
 % To handle parens, we must adopt a different approach, since parens are
 % not active characters.  hyperref.dtx (which has the same problem as
-% us) handles it with this amazing macro to replace tokens.  I've
-% tinkered with it a little for texinfo, but it's definitely from there.
+% us) handles it with this amazing macro to replace tokens, with minor
+% changes for Texinfo.  It is included here under the GPL by permission
+% from the author, Heiko Oberdiek.
 % 
 % #1 is the tokens to replace.
 % #2 is the replacement.
@@ -1243,21 +1296,87 @@ where each line of input produces a line of output.}
 \def\backslashparens#1{%
   \xdef#1{#1}% redefine it as its expansion; the definition is simply
              % \lastnode when called from \setref -> \pdfmkdest.
-  \HyPsdSubst{(}{\backslashlparen}{#1}%
-  \HyPsdSubst{)}{\backslashrparen}{#1}%
+  \HyPsdSubst{(}{\realbackslash(}{#1}%
+  \HyPsdSubst{)}{\realbackslash)}{#1}%
 }
 
-{\catcode\exclamChar = 0 \catcode\backChar = \other
- !gdef!backslashlparen{\(}%
- !gdef!backslashrparen{\)}%
-}
+\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images
+with PDF output, and none of those formats could be found.  (.eps cannot
+be supported due to the design of the PDF format; use regular TeX (DVI
+output) for that.)}
 
 \ifpdf
-  \input pdfcolor
-  \pdfcatalog{/PageMode /UseOutlines}%
+  %
+  % Color manipulation macros based on pdfcolor.tex.
+  \def\cmykDarkRed{0.28 1 1 0.35}
+  \def\cmykBlack{0 0 0 1}
+  %
+  \def\pdfsetcolor#1{\pdfliteral{#1 k}}
+  % Set color, and create a mark which defines \thiscolor accordingly,
+  % so that \makeheadline knows which color to restore.
+  \def\setcolor#1{%
+    \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}%
+    \domark
+    \pdfsetcolor{#1}%
+  }
+  %
+  \def\maincolor{\cmykBlack}
+  \pdfsetcolor{\maincolor}
+  \edef\thiscolor{\maincolor}
+  \def\lastcolordefs{}
+  %
+  \def\makefootline{%
+    \baselineskip24pt
+    \line{\pdfsetcolor{\maincolor}\the\footline}%
+  }
+  %
+  \def\makeheadline{%
+    \vbox to 0pt{%
+      \vskip-22.5pt
+      \line{%
+        \vbox to8.5pt{}%
+        % Extract \thiscolor definition from the marks.
+        \getcolormarks
+        % Typeset the headline with \maincolor, then restore the color.
+        \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}%
+      }%
+      \vss
+    }%
+    \nointerlineskip
+  }
+  %
+  %
+  \pdfcatalog{/PageMode /UseOutlines}
+  %
+  % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
   \def\dopdfimage#1#2#3{%
-    \def\imagewidth{#2}%
-    \def\imageheight{#3}%
+    \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
+    \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
+    %
+    % pdftex (and the PDF format) support .png, .jpg, .pdf (among
+    % others).  Let's try in that order.
+    \let\pdfimgext=\empty
+    \begingroup
+      \openin 1 #1.png \ifeof 1
+        \openin 1 #1.jpg \ifeof 1
+          \openin 1 #1.jpeg \ifeof 1
+            \openin 1 #1.JPG \ifeof 1
+              \openin 1 #1.pdf \ifeof 1
+                \errhelp = \nopdfimagehelp
+                \errmessage{Could not find image file #1 for pdf}%
+              \else \gdef\pdfimgext{pdf}%
+              \fi
+            \else \gdef\pdfimgext{JPG}%
+            \fi
+          \else \gdef\pdfimgext{jpeg}%
+          \fi
+        \else \gdef\pdfimgext{jpg}%
+        \fi
+      \else \gdef\pdfimgext{png}%
+      \fi
+      \closein 1
+    \endgroup
+    %
     % without \immediate, pdftex seg faults when the same image is
     % included twice.  (Version 3.14159-pre-1.0-unofficial-20010704.)
     \ifnum\pdftexversion < 14
@@ -1265,31 +1384,38 @@ where each line of input produces a line of output.}
     \else
       \immediate\pdfximage
     \fi
-      \ifx\empty\imagewidth\else width \imagewidth \fi
-      \ifx\empty\imageheight\else height \imageheight \fi
+      \ifdim \wd0 >0pt width \imagewidth \fi
+      \ifdim \wd2 >0pt height \imageheight \fi
       \ifnum\pdftexversion<13
-         #1.pdf%
+         #1.\pdfimgext
        \else
-         {#1.pdf}%
+         {#1.\pdfimgext}%
        \fi
     \ifnum\pdftexversion < 14 \else
       \pdfrefximage \pdflastximage
     \fi}
+  %
   \def\pdfmkdest#1{{%
     % We have to set dummies so commands such as @code, and characters
     % such as \, aren't expanded when present in a section title.
-    \atdummies
+    \indexnofonts
+    \turnoffactive
     \activebackslashdouble
+    \makevalueexpandable
     \def\pdfdestname{#1}%
     \backslashparens\pdfdestname
-    \pdfdest name{\pdfdestname} xyz%
-  }}%
+    \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
+  }}
   %
   % used to mark target names; must be expandable.
-  \def\pdfmkpgn#1{#1}%
+  \def\pdfmkpgn#1{#1}
+  %
+  % by default, use a color that is dark enough to print on paper as
+  % nearly black, but still distinguishable for online viewing.
+  \def\urlcolor{\cmykDarkRed}
+  \def\linkcolor{\cmykDarkRed}
+  \def\endlink{\setcolor{\maincolor}\pdfendlink}
   %
-  \let\linkcolor = \Blue  % was Cyan, but that seems light?
-  \def\endlink{\Black\pdfendlink}
   % Adding outlines to PDF; macros for calculating structure of outlines
   % come from Petr Olsak
   \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
@@ -1390,8 +1516,8 @@ where each line of input produces a line of output.}
       % now, I guess we'll just let the pdf reader have its way.
       \indexnofonts
       \setupdatafile
-      \activebackslash
-      \input \jobname.toc
+      \catcode`\\=\active \otherbackslash
+      \input \tocreadfilename
     \endgroup
   }
   %
@@ -1409,11 +1535,19 @@ where each line of input produces a line of output.}
   \else
     \let \startlink \pdfstartlink
   \fi
+  % make a live url in pdf output.
   \def\pdfurl#1{%
     \begingroup
-      \normalturnoffactive\def\@{@}%
+      % it seems we really need yet another set of dummies; have not
+      % tried to figure out what each command should do in the context
+      % of @url.  for now, just make @/ a no-op, that's the only one
+      % people have actually reported a problem with.
+      % 
+      \normalturnoffactive
+      \def\@{@}%
+      \let\/=\empty
       \makevalueexpandable
-      \leavevmode\Red
+      \leavevmode\setcolor{\urlcolor}%
       \startlink attr{/Border [0 0 0]}%
         user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
     \endgroup}
@@ -1440,13 +1574,14 @@ where each line of input produces a line of output.}
     {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
   \def\pdflink#1{%
     \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}}
-    \linkcolor #1\endlink}
+    \setcolor{\linkcolor}#1\endlink}
   \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
 \else
   \let\pdfmkdest = \gobble
   \let\pdfurl = \gobble
   \let\endlink = \relax
-  \let\linkcolor = \relax
+  \let\setcolor = \gobble
+  \let\pdfsetcolor = \gobble
   \let\pdfmakeoutlines = \relax
 \fi  % \ifx\pdfoutput
 
@@ -1481,6 +1616,7 @@ where each line of input produces a line of output.}
 % We don't need math for this font style.
 \def\ttsl{\setfontstyle{ttsl}}
 
+
 % Default leading.
 \newdimen\textleading  \textleading = 13.2pt
 
@@ -1492,8 +1628,12 @@ where each line of input produces a line of output.}
 \def\strutheightpercent{.70833}
 \def\strutdepthpercent {.29167}
 %
+% can get a sort of poor man's double spacing by redefining this.
+\def\baselinefactor{1}
+%
 \def\setleading#1{%
-  \normalbaselineskip = #1\relax
+  \dimen0 = #1\relax
+  \normalbaselineskip = \baselinefactor\dimen0
   \normallineskip = \lineskipfactor\normalbaselineskip
   \normalbaselines
   \setbox\strutbox =\hbox{%
@@ -1502,10 +1642,279 @@ where each line of input produces a line of output.}
   }%
 }
 
+% PDF CMaps.  See also LaTeX's t1.cmap.
+%
+% do nothing with this by default.
+\expandafter\let\csname cmapOT1\endcsname\gobble
+\expandafter\let\csname cmapOT1IT\endcsname\gobble
+\expandafter\let\csname cmapOT1TT\endcsname\gobble
+
+% if we are producing pdf, and we have \pdffontattr, then define cmaps.
+% (\pdffontattr was introduced many years ago, but people still run
+% older pdftex's; it's easy to conditionalize, so we do.)
+\ifpdf \ifx\pdffontattr\undefined \else
+  \begingroup
+    \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
+    \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-OT1-0)
+%%Title: (TeX-OT1-0 TeX OT1 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (OT1)
+/Supplement 0
+>> def
+/CMapName /TeX-OT1-0 def
+/CMapType 2 def
+1 begincodespacerange
+<00> <7F>
+endcodespacerange
+8 beginbfrange
+<00> <01> <0393>
+<09> <0A> <03A8>
+<23> <26> <0023>
+<28> <3B> <0028>
+<3F> <5B> <003F>
+<5D> <5E> <005D>
+<61> <7A> <0061>
+<7B> <7C> <2013>
+endbfrange
+40 beginbfchar
+<02> <0398>
+<03> <039B>
+<04> <039E>
+<05> <03A0>
+<06> <03A3>
+<07> <03D2>
+<08> <03A6>
+<0B> <00660066>
+<0C> <00660069>
+<0D> <0066006C>
+<0E> <006600660069>
+<0F> <00660066006C>
+<10> <0131>
+<11> <0237>
+<12> <0060>
+<13> <00B4>
+<14> <02C7>
+<15> <02D8>
+<16> <00AF>
+<17> <02DA>
+<18> <00B8>
+<19> <00DF>
+<1A> <00E6>
+<1B> <0153>
+<1C> <00F8>
+<1D> <00C6>
+<1E> <0152>
+<1F> <00D8>
+<21> <0021>
+<22> <201D>
+<27> <2019>
+<3C> <00A1>
+<3D> <003D>
+<3E> <00BF>
+<5C> <201C>
+<5F> <02D9>
+<60> <2018>
+<7D> <02DD>
+<7E> <007E>
+<7F> <00A8>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+    }\endgroup
+  \expandafter\edef\csname cmapOT1\endcsname#1{%
+    \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
+  }%
+%
+% \cmapOT1IT
+  \begingroup
+    \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
+    \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-OT1IT-0)
+%%Title: (TeX-OT1IT-0 TeX OT1IT 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (OT1IT)
+/Supplement 0
+>> def
+/CMapName /TeX-OT1IT-0 def
+/CMapType 2 def
+1 begincodespacerange
+<00> <7F>
+endcodespacerange
+8 beginbfrange
+<00> <01> <0393>
+<09> <0A> <03A8>
+<25> <26> <0025>
+<28> <3B> <0028>
+<3F> <5B> <003F>
+<5D> <5E> <005D>
+<61> <7A> <0061>
+<7B> <7C> <2013>
+endbfrange
+42 beginbfchar
+<02> <0398>
+<03> <039B>
+<04> <039E>
+<05> <03A0>
+<06> <03A3>
+<07> <03D2>
+<08> <03A6>
+<0B> <00660066>
+<0C> <00660069>
+<0D> <0066006C>
+<0E> <006600660069>
+<0F> <00660066006C>
+<10> <0131>
+<11> <0237>
+<12> <0060>
+<13> <00B4>
+<14> <02C7>
+<15> <02D8>
+<16> <00AF>
+<17> <02DA>
+<18> <00B8>
+<19> <00DF>
+<1A> <00E6>
+<1B> <0153>
+<1C> <00F8>
+<1D> <00C6>
+<1E> <0152>
+<1F> <00D8>
+<21> <0021>
+<22> <201D>
+<23> <0023>
+<24> <00A3>
+<27> <2019>
+<3C> <00A1>
+<3D> <003D>
+<3E> <00BF>
+<5C> <201C>
+<5F> <02D9>
+<60> <2018>
+<7D> <02DD>
+<7E> <007E>
+<7F> <00A8>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+    }\endgroup
+  \expandafter\edef\csname cmapOT1IT\endcsname#1{%
+    \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
+  }%
+%
+% \cmapOT1TT
+  \begingroup
+    \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
+    \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-OT1TT-0)
+%%Title: (TeX-OT1TT-0 TeX OT1TT 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (OT1TT)
+/Supplement 0
+>> def
+/CMapName /TeX-OT1TT-0 def
+/CMapType 2 def
+1 begincodespacerange
+<00> <7F>
+endcodespacerange
+5 beginbfrange
+<00> <01> <0393>
+<09> <0A> <03A8>
+<21> <26> <0021>
+<28> <5F> <0028>
+<61> <7E> <0061>
+endbfrange
+32 beginbfchar
+<02> <0398>
+<03> <039B>
+<04> <039E>
+<05> <03A0>
+<06> <03A3>
+<07> <03D2>
+<08> <03A6>
+<0B> <2191>
+<0C> <2193>
+<0D> <0027>
+<0E> <00A1>
+<0F> <00BF>
+<10> <0131>
+<11> <0237>
+<12> <0060>
+<13> <00B4>
+<14> <02C7>
+<15> <02D8>
+<16> <00AF>
+<17> <02DA>
+<18> <00B8>
+<19> <00DF>
+<1A> <00E6>
+<1B> <0153>
+<1C> <00F8>
+<1D> <00C6>
+<1E> <0152>
+<1F> <00D8>
+<20> <2423>
+<27> <2019>
+<60> <2018>
+<7F> <00A8>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+    }\endgroup
+  \expandafter\edef\csname cmapOT1TT\endcsname#1{%
+    \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
+  }%
+\fi\fi
+
+
 % Set the font macro #1 to the font named #2, adding on the
 % specified font prefix (normally `cm').
-% #3 is the font's design size, #4 is a scale factor
-\def\setfont#1#2#3#4{\font#1=\fontprefix#2#3 scaled #4}
+% #3 is the font's design size, #4 is a scale factor, #5 is the CMap
+% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass
+% empty to omit).
+\def\setfont#1#2#3#4#5{%
+  \font#1=\fontprefix#2#3 scaled #4
+  \csname cmap#5\endcsname#1%
+}
+% This is what gets called when #5 of \setfont is empty.
+\let\cmap\gobble
+% emacs-page end of cmaps
 
 % Use cm as the default font prefix.
 % To specify the font prefix, you must define \fontprefix
@@ -1530,118 +1939,297 @@ where each line of input produces a line of output.}
 \def\scshape{csc}
 \def\scbshape{csc}
 
+% Definitions for a main text size of 11pt.  This is the default in
+% Texinfo.
+% 
+\def\definetextfontsizexi{%
 % Text fonts (11.2pt, magstep1).
 \def\textnominalsize{11pt}
 \edef\mainmagstep{\magstephalf}
-\setfont\textrm\rmshape{10}{\mainmagstep}
-\setfont\texttt\ttshape{10}{\mainmagstep}
-\setfont\textbf\bfshape{10}{\mainmagstep}
-\setfont\textit\itshape{10}{\mainmagstep}
-\setfont\textsl\slshape{10}{\mainmagstep}
-\setfont\textsf\sfshape{10}{\mainmagstep}
-\setfont\textsc\scshape{10}{\mainmagstep}
-\setfont\textttsl\ttslshape{10}{\mainmagstep}
+\setfont\textrm\rmshape{10}{\mainmagstep}{OT1}
+\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT}
+\setfont\textbf\bfshape{10}{\mainmagstep}{OT1}
+\setfont\textit\itshape{10}{\mainmagstep}{OT1IT}
+\setfont\textsl\slshape{10}{\mainmagstep}{OT1}
+\setfont\textsf\sfshape{10}{\mainmagstep}{OT1}
+\setfont\textsc\scshape{10}{\mainmagstep}{OT1}
+\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
 \font\texti=cmmi10 scaled \mainmagstep
 \font\textsy=cmsy10 scaled \mainmagstep
+\def\textecsize{1095}
 
 % A few fonts for @defun names and args.
-\setfont\defbf\bfshape{10}{\magstep1}
-\setfont\deftt\ttshape{10}{\magstep1}
-\setfont\defttsl\ttslshape{10}{\magstep1}
+\setfont\defbf\bfshape{10}{\magstep1}{OT1}
+\setfont\deftt\ttshape{10}{\magstep1}{OT1TT}
+\setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT}
 \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
 
 % Fonts for indices, footnotes, small examples (9pt).
 \def\smallnominalsize{9pt}
-\setfont\smallrm\rmshape{9}{1000}
-\setfont\smalltt\ttshape{9}{1000}
-\setfont\smallbf\bfshape{10}{900}
-\setfont\smallit\itshape{9}{1000}
-\setfont\smallsl\slshape{9}{1000}
-\setfont\smallsf\sfshape{9}{1000}
-\setfont\smallsc\scshape{10}{900}
-\setfont\smallttsl\ttslshape{10}{900}
+\setfont\smallrm\rmshape{9}{1000}{OT1}
+\setfont\smalltt\ttshape{9}{1000}{OT1TT}
+\setfont\smallbf\bfshape{10}{900}{OT1}
+\setfont\smallit\itshape{9}{1000}{OT1IT}
+\setfont\smallsl\slshape{9}{1000}{OT1}
+\setfont\smallsf\sfshape{9}{1000}{OT1}
+\setfont\smallsc\scshape{10}{900}{OT1}
+\setfont\smallttsl\ttslshape{10}{900}{OT1TT}
 \font\smalli=cmmi9
 \font\smallsy=cmsy9
+\def\smallecsize{0900}
 
 % Fonts for small examples (8pt).
 \def\smallernominalsize{8pt}
-\setfont\smallerrm\rmshape{8}{1000}
-\setfont\smallertt\ttshape{8}{1000}
-\setfont\smallerbf\bfshape{10}{800}
-\setfont\smallerit\itshape{8}{1000}
-\setfont\smallersl\slshape{8}{1000}
-\setfont\smallersf\sfshape{8}{1000}
-\setfont\smallersc\scshape{10}{800}
-\setfont\smallerttsl\ttslshape{10}{800}
+\setfont\smallerrm\rmshape{8}{1000}{OT1}
+\setfont\smallertt\ttshape{8}{1000}{OT1TT}
+\setfont\smallerbf\bfshape{10}{800}{OT1}
+\setfont\smallerit\itshape{8}{1000}{OT1IT}
+\setfont\smallersl\slshape{8}{1000}{OT1}
+\setfont\smallersf\sfshape{8}{1000}{OT1}
+\setfont\smallersc\scshape{10}{800}{OT1}
+\setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
 \font\smalleri=cmmi8
 \font\smallersy=cmsy8
+\def\smallerecsize{0800}
 
 % Fonts for title page (20.4pt):
 \def\titlenominalsize{20pt}
-\setfont\titlerm\rmbshape{12}{\magstep3}
-\setfont\titleit\itbshape{10}{\magstep4}
-\setfont\titlesl\slbshape{10}{\magstep4}
-\setfont\titlett\ttbshape{12}{\magstep3}
-\setfont\titlettsl\ttslshape{10}{\magstep4}
-\setfont\titlesf\sfbshape{17}{\magstep1}
+\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
+\setfont\titleit\itbshape{10}{\magstep4}{OT1IT}
+\setfont\titlesl\slbshape{10}{\magstep4}{OT1}
+\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT}
+\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT}
+\setfont\titlesf\sfbshape{17}{\magstep1}{OT1}
 \let\titlebf=\titlerm
-\setfont\titlesc\scbshape{10}{\magstep4}
+\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
 \font\titlei=cmmi12 scaled \magstep3
 \font\titlesy=cmsy10 scaled \magstep4
 \def\authorrm{\secrm}
 \def\authortt{\sectt}
+\def\titleecsize{2074}
 
 % Chapter (and unnumbered) fonts (17.28pt).
 \def\chapnominalsize{17pt}
-\setfont\chaprm\rmbshape{12}{\magstep2}
-\setfont\chapit\itbshape{10}{\magstep3}
-\setfont\chapsl\slbshape{10}{\magstep3}
-\setfont\chaptt\ttbshape{12}{\magstep2}
-\setfont\chapttsl\ttslshape{10}{\magstep3}
-\setfont\chapsf\sfbshape{17}{1000}
+\setfont\chaprm\rmbshape{12}{\magstep2}{OT1}
+\setfont\chapit\itbshape{10}{\magstep3}{OT1IT}
+\setfont\chapsl\slbshape{10}{\magstep3}{OT1}
+\setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT}
+\setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT}
+\setfont\chapsf\sfbshape{17}{1000}{OT1}
 \let\chapbf=\chaprm
-\setfont\chapsc\scbshape{10}{\magstep3}
+\setfont\chapsc\scbshape{10}{\magstep3}{OT1}
 \font\chapi=cmmi12 scaled \magstep2
 \font\chapsy=cmsy10 scaled \magstep3
+\def\chapecsize{1728}
 
 % Section fonts (14.4pt).
 \def\secnominalsize{14pt}
-\setfont\secrm\rmbshape{12}{\magstep1}
-\setfont\secit\itbshape{10}{\magstep2}
-\setfont\secsl\slbshape{10}{\magstep2}
-\setfont\sectt\ttbshape{12}{\magstep1}
-\setfont\secttsl\ttslshape{10}{\magstep2}
-\setfont\secsf\sfbshape{12}{\magstep1}
+\setfont\secrm\rmbshape{12}{\magstep1}{OT1}
+\setfont\secit\itbshape{10}{\magstep2}{OT1IT}
+\setfont\secsl\slbshape{10}{\magstep2}{OT1}
+\setfont\sectt\ttbshape{12}{\magstep1}{OT1TT}
+\setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT}
+\setfont\secsf\sfbshape{12}{\magstep1}{OT1}
 \let\secbf\secrm
-\setfont\secsc\scbshape{10}{\magstep2}
+\setfont\secsc\scbshape{10}{\magstep2}{OT1}
 \font\seci=cmmi12 scaled \magstep1
 \font\secsy=cmsy10 scaled \magstep2
+\def\sececsize{1440}
 
 % Subsection fonts (13.15pt).
 \def\ssecnominalsize{13pt}
-\setfont\ssecrm\rmbshape{12}{\magstephalf}
-\setfont\ssecit\itbshape{10}{1315}
-\setfont\ssecsl\slbshape{10}{1315}
-\setfont\ssectt\ttbshape{12}{\magstephalf}
-\setfont\ssecttsl\ttslshape{10}{1315}
-\setfont\ssecsf\sfbshape{12}{\magstephalf}
+\setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1}
+\setfont\ssecit\itbshape{10}{1315}{OT1IT}
+\setfont\ssecsl\slbshape{10}{1315}{OT1}
+\setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT}
+\setfont\ssecttsl\ttslshape{10}{1315}{OT1TT}
+\setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1}
 \let\ssecbf\ssecrm
-\setfont\ssecsc\scbshape{10}{1315}
+\setfont\ssecsc\scbshape{10}{1315}{OT1}
 \font\sseci=cmmi12 scaled \magstephalf
 \font\ssecsy=cmsy10 scaled 1315
+\def\ssececsize{1200}
 
 % Reduced fonts for @acro in text (10pt).
 \def\reducednominalsize{10pt}
-\setfont\reducedrm\rmshape{10}{1000}
-\setfont\reducedtt\ttshape{10}{1000}
-\setfont\reducedbf\bfshape{10}{1000}
-\setfont\reducedit\itshape{10}{1000}
-\setfont\reducedsl\slshape{10}{1000}
-\setfont\reducedsf\sfshape{10}{1000}
-\setfont\reducedsc\scshape{10}{1000}
-\setfont\reducedttsl\ttslshape{10}{1000}
+\setfont\reducedrm\rmshape{10}{1000}{OT1}
+\setfont\reducedtt\ttshape{10}{1000}{OT1TT}
+\setfont\reducedbf\bfshape{10}{1000}{OT1}
+\setfont\reducedit\itshape{10}{1000}{OT1IT}
+\setfont\reducedsl\slshape{10}{1000}{OT1}
+\setfont\reducedsf\sfshape{10}{1000}{OT1}
+\setfont\reducedsc\scshape{10}{1000}{OT1}
+\setfont\reducedttsl\ttslshape{10}{1000}{OT1TT}
 \font\reducedi=cmmi10
 \font\reducedsy=cmsy10
+\def\reducedecsize{1000}
+
+% reset the current fonts
+\textfonts
+\rm
+} % end of 11pt text font size definitions
+
+
+% Definitions to make the main text be 10pt Computer Modern, with
+% section, chapter, etc., sizes following suit.  This is for the GNU
+% Press printing of the Emacs 22 manual.  Maybe other manuals in the
+% future.  Used with @smallbook, which sets the leading to 12pt.
+% 
+\def\definetextfontsizex{%
+% Text fonts (10pt).
+\def\textnominalsize{10pt}
+\edef\mainmagstep{1000}
+\setfont\textrm\rmshape{10}{\mainmagstep}{OT1}
+\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT}
+\setfont\textbf\bfshape{10}{\mainmagstep}{OT1}
+\setfont\textit\itshape{10}{\mainmagstep}{OT1IT}
+\setfont\textsl\slshape{10}{\mainmagstep}{OT1}
+\setfont\textsf\sfshape{10}{\mainmagstep}{OT1}
+\setfont\textsc\scshape{10}{\mainmagstep}{OT1}
+\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
+\font\texti=cmmi10 scaled \mainmagstep
+\font\textsy=cmsy10 scaled \mainmagstep
+\def\textecsize{1000}
+
+% A few fonts for @defun names and args.
+\setfont\defbf\bfshape{10}{\magstephalf}{OT1}
+\setfont\deftt\ttshape{10}{\magstephalf}{OT1TT}
+\setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT}
+\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
+
+% Fonts for indices, footnotes, small examples (9pt).
+\def\smallnominalsize{9pt}
+\setfont\smallrm\rmshape{9}{1000}{OT1}
+\setfont\smalltt\ttshape{9}{1000}{OT1TT}
+\setfont\smallbf\bfshape{10}{900}{OT1}
+\setfont\smallit\itshape{9}{1000}{OT1IT}
+\setfont\smallsl\slshape{9}{1000}{OT1}
+\setfont\smallsf\sfshape{9}{1000}{OT1}
+\setfont\smallsc\scshape{10}{900}{OT1}
+\setfont\smallttsl\ttslshape{10}{900}{OT1TT}
+\font\smalli=cmmi9
+\font\smallsy=cmsy9
+\def\smallecsize{0900}
+
+% Fonts for small examples (8pt).
+\def\smallernominalsize{8pt}
+\setfont\smallerrm\rmshape{8}{1000}{OT1}
+\setfont\smallertt\ttshape{8}{1000}{OT1TT}
+\setfont\smallerbf\bfshape{10}{800}{OT1}
+\setfont\smallerit\itshape{8}{1000}{OT1IT}
+\setfont\smallersl\slshape{8}{1000}{OT1}
+\setfont\smallersf\sfshape{8}{1000}{OT1}
+\setfont\smallersc\scshape{10}{800}{OT1}
+\setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
+\font\smalleri=cmmi8
+\font\smallersy=cmsy8
+\def\smallerecsize{0800}
+
+% Fonts for title page (20.4pt):
+\def\titlenominalsize{20pt}
+\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
+\setfont\titleit\itbshape{10}{\magstep4}{OT1IT}
+\setfont\titlesl\slbshape{10}{\magstep4}{OT1}
+\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT}
+\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT}
+\setfont\titlesf\sfbshape{17}{\magstep1}{OT1}
+\let\titlebf=\titlerm
+\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
+\font\titlei=cmmi12 scaled \magstep3
+\font\titlesy=cmsy10 scaled \magstep4
+\def\authorrm{\secrm}
+\def\authortt{\sectt}
+\def\titleecsize{2074}
+
+% Chapter fonts (14.4pt).
+\def\chapnominalsize{14pt}
+\setfont\chaprm\rmbshape{12}{\magstep1}{OT1}
+\setfont\chapit\itbshape{10}{\magstep2}{OT1IT}
+\setfont\chapsl\slbshape{10}{\magstep2}{OT1}
+\setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT}
+\setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT}
+\setfont\chapsf\sfbshape{12}{\magstep1}{OT1}
+\let\chapbf\chaprm
+\setfont\chapsc\scbshape{10}{\magstep2}{OT1}
+\font\chapi=cmmi12 scaled \magstep1
+\font\chapsy=cmsy10 scaled \magstep2
+\def\chapecsize{1440}
+
+% Section fonts (12pt).
+\def\secnominalsize{12pt}
+\setfont\secrm\rmbshape{12}{1000}{OT1}
+\setfont\secit\itbshape{10}{\magstep1}{OT1IT}
+\setfont\secsl\slbshape{10}{\magstep1}{OT1}
+\setfont\sectt\ttbshape{12}{1000}{OT1TT}
+\setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT}
+\setfont\secsf\sfbshape{12}{1000}{OT1}
+\let\secbf\secrm
+\setfont\secsc\scbshape{10}{\magstep1}{OT1}
+\font\seci=cmmi12 
+\font\secsy=cmsy10 scaled \magstep1
+\def\sececsize{1200}
+
+% Subsection fonts (10pt).
+\def\ssecnominalsize{10pt}
+\setfont\ssecrm\rmbshape{10}{1000}{OT1}
+\setfont\ssecit\itbshape{10}{1000}{OT1IT}
+\setfont\ssecsl\slbshape{10}{1000}{OT1}
+\setfont\ssectt\ttbshape{10}{1000}{OT1TT}
+\setfont\ssecttsl\ttslshape{10}{1000}{OT1TT}
+\setfont\ssecsf\sfbshape{10}{1000}{OT1}
+\let\ssecbf\ssecrm
+\setfont\ssecsc\scbshape{10}{1000}{OT1}
+\font\sseci=cmmi10
+\font\ssecsy=cmsy10
+\def\ssececsize{1000}
+
+% Reduced fonts for @acro in text (9pt).
+\def\reducednominalsize{9pt}
+\setfont\reducedrm\rmshape{9}{1000}{OT1}
+\setfont\reducedtt\ttshape{9}{1000}{OT1TT}
+\setfont\reducedbf\bfshape{10}{900}{OT1}
+\setfont\reducedit\itshape{9}{1000}{OT1IT}
+\setfont\reducedsl\slshape{9}{1000}{OT1}
+\setfont\reducedsf\sfshape{9}{1000}{OT1}
+\setfont\reducedsc\scshape{10}{900}{OT1}
+\setfont\reducedttsl\ttslshape{10}{900}{OT1TT}
+\font\reducedi=cmmi9
+\font\reducedsy=cmsy9
+\def\reducedecsize{0900}
+
+% reduce space between paragraphs
+\divide\parskip by 2
+
+% reset the current fonts
+\textfonts
+\rm
+} % end of 10pt text font size definitions
+
+
+% We provide the user-level command
+%   @fonttextsize 10
+% (or 11) to redefine the text font size.  pt is assumed.
+% 
+\def\xword{10}
+\def\xiword{11}
+%
+\parseargdef\fonttextsize{%
+  \def\textsizearg{#1}%
+  \wlog{doing @fonttextsize \textsizearg}%
+  %
+  % Set \globaldefs so that documents can use this inside @tex, since
+  % makeinfo 4.8 does not support it, but we need it nonetheless.
+  % 
+ \begingroup \globaldefs=1
+  \ifx\textsizearg\xword \definetextfontsizex
+  \else \ifx\textsizearg\xiword \definetextfontsizexi
+  \else
+    \errhelp=\EMsimple
+    \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'}
+  \fi\fi
+ \endgroup
+}
+
 
 % In order for the font changes to affect most math symbols and letters,
 % we have to define the \textfont of the standard families.  Since
@@ -1753,7 +2341,7 @@ where each line of input produces a line of output.}
 
 % Set up the default fonts, so we can use them for creating boxes.
 %
-\textfonts \rm
+\definetextfontsizexi
 
 % Define these so they can be easily changed for other fonts.
 \def\angleleft{$\langle$}
@@ -1763,10 +2351,10 @@ where each line of input produces a line of output.}
 \newcount\fontdepth \fontdepth=0
 
 % Fonts for short table of contents.
-\setfont\shortcontrm\rmshape{12}{1000}
-\setfont\shortcontbf\bfshape{10}{\magstep1}  % no cmb12
-\setfont\shortcontsl\slshape{12}{1000}
-\setfont\shortconttt\ttshape{12}{1000}
+\setfont\shortcontrm\rmshape{12}{1000}{OT1}
+\setfont\shortcontbf\bfshape{10}{\magstep1}{OT1}  % no cmb12
+\setfont\shortcontsl\slshape{12}{1000}{OT1}
+\setfont\shortconttt\ttshape{12}{1000}{OT1TT}
 
 %% Add scribe-like font environments, plus @l for inline lisp (usually sans
 %% serif) and @ii for TeX italic
@@ -1829,7 +2417,7 @@ where each line of input produces a line of output.}
   \null
 }
 \def\samp#1{`\tclose{#1}'\null}
-\setfont\keyrm\rmshape{8}{1000}
+\setfont\keyrm\rmshape{8}{1000}{OT1}
 \font\keysy=cmsy9
 \def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
   \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
@@ -1837,6 +2425,7 @@ where each line of input produces a line of output.}
      \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
     \kern-0.4pt\hrule}%
   \kern-.06em\raise0.4pt\hbox{\angleright}}}}
+\def\key #1{{\nohyphenation \uppercase{#1}}\null}
 % The old definition, with no lozenge:
 %\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
 \def\ctrl #1{{\tt \rawbackslash \hat}#1}
@@ -1878,11 +2467,14 @@ where each line of input produces a line of output.}
 % and arrange explicitly to hyphenate at a dash.
 %  -- rms.
 {
-  \catcode`\-=\active
-  \catcode`\_=\active
+  \catcode`\-=\active \catcode`\_=\active
+  \catcode`\'=\active \catcode`\`=\active
   %
   \global\def\code{\begingroup
-    \catcode`\-=\active  \catcode`\_=\active
+    \catcode\rquoteChar=\active \catcode\lquoteChar=\active
+    \let'\codequoteright \let`\codequoteleft
+    %
+    \catcode\dashChar=\active  \catcode\underChar=\active
     \ifallowcodebreaks
      \let-\codedash
      \let_\codeunder
@@ -2118,6 +2710,35 @@ where each line of input produces a line of output.}
   \thiseurofont
 }
 
+% Hacks for glyphs from the EC fonts similar to \euro.  We don't
+% use \let for the aliases, because sometimes we redefine the original
+% macro, and the alias should reflect the redefinition.
+\def\guillemetleft{{\ecfont \char"13}}
+\def\guillemotleft{\guillemetleft}
+\def\guillemetright{{\ecfont \char"14}}
+\def\guillemotright{\guillemetright}
+\def\guilsinglleft{{\ecfont \char"0E}}
+\def\guilsinglright{{\ecfont \char"0F}}
+\def\quotedblbase{{\ecfont \char"12}}
+\def\quotesinglbase{{\ecfont \char"0D}}
+%
+\def\ecfont{%
+  % We can't distinguish serif/sanserif and italic/slanted, but this
+  % is used for crude hacks anyway (like adding French and German
+  % quotes to documents typeset with CM, where we lose kerning), so
+  % hopefully nobody will notice/care.
+  \edef\ecsize{\csname\curfontsize ecsize\endcsname}%
+  \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
+  \ifx\curfontstyle\bfstylename
+    % bold:
+    \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
+  \else
+    % regular:
+    \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
+  \fi
+  \thisecfont
+}
+
 % @registeredsymbol - R in a circle.  The font for the R should really
 % be smaller yet, but lllsize is the best we can do for now.
 % Adapted from the plain.tex definition of \copyright.
@@ -2128,6 +2749,10 @@ where each line of input produces a line of output.}
     }$%
 }
 
+% @textdegree - the normal degrees sign.
+%
+\def\textdegree{$^\circ$}
+
 % Laurent Siebenmann reports \Orb undefined with:
 %  Textures 1.7.7 (preloaded format=plain 93.10.14)  (68K)  16 APR 2004 02:38
 % so we'll define it if necessary.
@@ -2136,6 +2761,12 @@ where each line of input produces a line of output.}
 \def\Orb{\mathhexbox20D}
 \fi
 
+% Quotes.
+\chardef\quotedblleft="5C
+\chardef\quotedblright=`\"
+\chardef\quoteleft=`\`
+\chardef\quoteright=`\'
+
 
 \message{page headings,}
 
@@ -2299,12 +2930,39 @@ where each line of input produces a line of output.}
   %
   % Leave some space for the footline.  Hopefully ok to assume
   % @evenfooting will not be used by itself.
-  \global\advance\pageheight by -\baselineskip
-  \global\advance\vsize by -\baselineskip
+  \global\advance\pageheight by -12pt
+  \global\advance\vsize by -12pt
 }
 
 \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}}
 
+% @evenheadingmarks top     \thischapter <- chapter at the top of a page
+% @evenheadingmarks bottom  \thischapter <- chapter at the bottom of a page
+%
+% The same set of arguments for:
+%
+% @oddheadingmarks
+% @evenfootingmarks
+% @oddfootingmarks
+% @everyheadingmarks
+% @everyfootingmarks
+
+\def\evenheadingmarks{\headingmarks{even}{heading}}
+\def\oddheadingmarks{\headingmarks{odd}{heading}}
+\def\evenfootingmarks{\headingmarks{even}{footing}}
+\def\oddfootingmarks{\headingmarks{odd}{footing}}
+\def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1}
+                          \headingmarks{odd}{heading}{#1} }
+\def\everyfootingmarks#1 {\headingmarks{even}{footing}{#1}
+                          \headingmarks{odd}{footing}{#1} }
+% #1 = even/odd, #2 = heading/footing, #3 = top/bottom.
+\def\headingmarks#1#2#3 {%
+  \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname
+  \global\expandafter\let\csname get#1#2marks\endcsname \temp
+}
+
+\everyheadingmarks bottom
+\everyfootingmarks bottom
 
 % @headings double      turns headings on for double-sided printing.
 % @headings single      turns headings on for single-sided printing.
@@ -2959,6 +3617,7 @@ where each line of input produces a line of output.}
 
 \def\doignore#1{\begingroup
   % Scan in ``verbatim'' mode:
+  \obeylines
   \catcode`\@ = \other
   \catcode`\{ = \other
   \catcode`\} = \other
@@ -2979,16 +3638,16 @@ where each line of input produces a line of output.}
   \gdef\dodoignore#1{%
     % #1 contains the command name as a string, e.g., `ifinfo'.
     %
-    % Define a command to find the next `@end #1', which must be on a line
-    % by itself.
-    \long\def\doignoretext##1^^M@end #1{\doignoretextyyy##1^^M@#1\_STOP_}%
+    % Define a command to find the next `@end #1'.
+    \long\def\doignoretext##1^^M@end #1{%
+      \doignoretextyyy##1^^M@#1\_STOP_}%
+    %
     % And this command to find another #1 command, at the beginning of a
     % line.  (Otherwise, we would consider a line `@c @ifset', for
     % example, to count as an @ifset for nesting.)
     \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}%
     %
     % And now expand that command.
-    \obeylines %
     \doignoretext ^^M%
   }%
 }
@@ -3018,7 +3677,12 @@ where each line of input produces a line of output.}
 }
 
 % Finish off ignored text.
-\def\enddoignore{\endgroup\ignorespaces}
+{ \obeylines%
+  % Ignore anything after the last `@end #1'; this matters in verbatim
+  % environments, where otherwise the newline after an ignored conditional
+  % would result in a blank line in the output.
+  \gdef\enddoignore#1^^M{\endgroup\ignorespaces}%
+}
 
 
 % @set VAR sets the variable VAR to an empty value.
@@ -3221,12 +3885,39 @@ where each line of input produces a line of output.}
   \escapechar = `\\     % use backslash in output files.
   \def\@{@}% change to @@ when we switch to @ as escape char in index files.
   \def\ {\realbackslash\space }%
+  %
   % Need these in case \tex is in effect and \{ is a \delimiter again.
   % But can't use \lbracecmd and \rbracecmd because texindex assumes
   % braces and backslashes are used only as delimiters.
   \let\{ = \mylbrace
   \let\} = \myrbrace
   %
+  % I don't entirely understand this, but when an index entry is
+  % generated from a macro call, the \endinput which \scanmacro inserts
+  % causes processing to be prematurely terminated.  This is,
+  % apparently, because \indexsorttmp is fully expanded, and \endinput
+  % is an expandable command.  The redefinition below makes \endinput
+  % disappear altogether for that purpose -- although logging shows that
+  % processing continues to some further point.  On the other hand, it
+  % seems \endinput does not hurt in the printed index arg, since that
+  % is still getting written without apparent harm.
+  % 
+  % Sample source (mac-idx3.tex, reported by Graham Percival to
+  % help-texinfo, 22may06):
+  % @macro funindex {WORD}
+  % @findex xyz
+  % @end macro
+  % ...
+  % @funindex commtest
+  % 
+  % The above is not enough to reproduce the bug, but it gives the flavor.
+  % 
+  % Sample whatsit resulting:
+  % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}}
+  % 
+  % So:
+  \let\endinput = \empty
+  %
   % Do the redefinitions.
   \commondummies
 }
@@ -3244,6 +3935,7 @@ where each line of input produces a line of output.}
   %
   % Do the redefinitions.
   \commondummies
+  \otherbackslash
 }
 
 % Called from \indexdummies and \atdummies.
@@ -3311,12 +4003,23 @@ where each line of input produces a line of output.}
   \definedummyword\equiv
   \definedummyword\error
   \definedummyword\euro
+  \definedummyword\guillemetleft
+  \definedummyword\guillemetright
+  \definedummyword\guilsinglleft
+  \definedummyword\guilsinglright
   \definedummyword\expansion
   \definedummyword\minus
   \definedummyword\pounds
   \definedummyword\point
   \definedummyword\print
+  \definedummyword\quotedblbase
+  \definedummyword\quotedblleft
+  \definedummyword\quotedblright
+  \definedummyword\quoteleft
+  \definedummyword\quoteright
+  \definedummyword\quotesinglbase
   \definedummyword\result
+  \definedummyword\textdegree
   %
   % We want to disable all macros so that they are not expanded by \write.
   \macrolist
@@ -3330,63 +4033,62 @@ where each line of input produces a line of output.}
 
 % \commondummiesnofonts: common to \commondummies and \indexnofonts.
 %
-% Better have this without active chars.
-{
-  \catcode`\~=\other
-  \gdef\commondummiesnofonts{%
-    % Control letters and accents.
-    \definedummyletter\!%
-    \definedummyaccent\"%
-    \definedummyaccent\'%
-    \definedummyletter\*%
-    \definedummyaccent\,%
-    \definedummyletter\.%
-    \definedummyletter\/%
-    \definedummyletter\:%
-    \definedummyaccent\=%
-    \definedummyletter\?%
-    \definedummyaccent\^%
-    \definedummyaccent\`%
-    \definedummyaccent\~%
-    \definedummyword\u
-    \definedummyword\v
-    \definedummyword\H
-    \definedummyword\dotaccent
-    \definedummyword\ringaccent
-    \definedummyword\tieaccent
-    \definedummyword\ubaraccent
-    \definedummyword\udotaccent
-    \definedummyword\dotless
-    %
-    % Texinfo font commands.
-    \definedummyword\b
-    \definedummyword\i
-    \definedummyword\r
-    \definedummyword\sc
-    \definedummyword\t
-    %
-    % Commands that take arguments.
-    \definedummyword\acronym
-    \definedummyword\cite
-    \definedummyword\code
-    \definedummyword\command
-    \definedummyword\dfn
-    \definedummyword\emph
-    \definedummyword\env
-    \definedummyword\file
-    \definedummyword\kbd
-    \definedummyword\key
-    \definedummyword\math
-    \definedummyword\option
-    \definedummyword\samp
-    \definedummyword\strong
-    \definedummyword\tie
-    \definedummyword\uref
-    \definedummyword\url
-    \definedummyword\var
-    \definedummyword\verb
-    \definedummyword\w
-  }
+\def\commondummiesnofonts{%
+  % Control letters and accents.
+  \definedummyletter\!%
+  \definedummyaccent\"%
+  \definedummyaccent\'%
+  \definedummyletter\*%
+  \definedummyaccent\,%
+  \definedummyletter\.%
+  \definedummyletter\/%
+  \definedummyletter\:%
+  \definedummyaccent\=%
+  \definedummyletter\?%
+  \definedummyaccent\^%
+  \definedummyaccent\`%
+  \definedummyaccent\~%
+  \definedummyword\u
+  \definedummyword\v
+  \definedummyword\H
+  \definedummyword\dotaccent
+  \definedummyword\ringaccent
+  \definedummyword\tieaccent
+  \definedummyword\ubaraccent
+  \definedummyword\udotaccent
+  \definedummyword\dotless
+  %
+  % Texinfo font commands.
+  \definedummyword\b
+  \definedummyword\i
+  \definedummyword\r
+  \definedummyword\sc
+  \definedummyword\t
+  %
+  % Commands that take arguments.
+  \definedummyword\acronym
+  \definedummyword\cite
+  \definedummyword\code
+  \definedummyword\command
+  \definedummyword\dfn
+  \definedummyword\emph
+  \definedummyword\env
+  \definedummyword\file
+  \definedummyword\kbd
+  \definedummyword\key
+  \definedummyword\math
+  \definedummyword\option
+  \definedummyword\pxref
+  \definedummyword\ref
+  \definedummyword\samp
+  \definedummyword\strong
+  \definedummyword\tie
+  \definedummyword\uref
+  \definedummyword\url
+  \definedummyword\var
+  \definedummyword\verb
+  \definedummyword\w
+  \definedummyword\xref
 }
 
 % \indexnofonts is used when outputting the strings to sort the index
@@ -3445,12 +4147,23 @@ where each line of input produces a line of output.}
   \def\equiv{==}%
   \def\error{error}%
   \def\euro{euro}%
+  \def\guillemetleft{<<}%
+  \def\guillemetright{>>}%
+  \def\guilsinglleft{<}%
+  \def\guilsinglright{>}%
   \def\expansion{==>}%
   \def\minus{-}%
   \def\pounds{pounds}%
   \def\point{.}%
   \def\print{-|}%
+  \def\quotedblbase{"}%
+  \def\quotedblleft{"}%
+  \def\quotedblright{"}%
+  \def\quoteleft{`}%
+  \def\quoteright{'}%
+  \def\quotesinglbase{,}%
   \def\result{=>}%
+  \def\textdegree{degrees}%
   %
   % We need to get rid of all macros, leaving only the arguments (if present).
   % Of course this is not nearly correct, but it is the best we can do for now.
@@ -3490,11 +4203,7 @@ where each line of input produces a line of output.}
     %
     \edef\writeto{\csname#1indfile\endcsname}%
     %
-    \ifvmode
-      \dosubindsanitize
-    \else
-      \dosubindwrite
-    \fi
+    \safewhatsit\dosubindwrite
   }%
   \fi
 }
@@ -3531,13 +4240,13 @@ where each line of input produces a line of output.}
   \temp
 }
 
-% Take care of unwanted page breaks:
+% Take care of unwanted page breaks/skips around a whatsit:
 %
 % If a skip is the last thing on the list now, preserve it
 % by backing up by \lastskip, doing the \write, then inserting
 % the skip again.  Otherwise, the whatsit generated by the
-% \write will make \lastskip zero.  The result is that sequences
-% like this:
+% \write or \pdfdest will make \lastskip zero.  The result is that
+% sequences like this:
 % @end defun
 % @tindex whatever
 % @defun ...
@@ -3561,25 +4270,31 @@ where each line of input produces a line of output.}
 %
 \edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname}
 %
+\newskip\whatsitskip
+\newcount\whatsitpenalty
+%
 % ..., ready, GO:
 %
-\def\dosubindsanitize{%
+\def\safewhatsit#1{%
+\ifhmode
+  #1%
+\else
   % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
-  \skip0 = \lastskip
+  \whatsitskip = \lastskip
   \edef\lastskipmacro{\the\lastskip}%
-  \count255 = \lastpenalty
+  \whatsitpenalty = \lastpenalty
   %
   % If \lastskip is nonzero, that means the last item was a
   % skip.  And since a skip is discardable, that means this
-  % -\skip0 glue we're inserting is preceded by a
+  % -\whatsitskip glue we're inserting is preceded by a
   % non-discardable item, therefore it is not a potential
   % breakpoint, therefore no \nobreak needed.
   \ifx\lastskipmacro\zeroskipmacro
   \else
-    \vskip-\skip0
+    \vskip-\whatsitskip
   \fi
   %
-  \dosubindwrite
+  #1%
   %
   \ifx\lastskipmacro\zeroskipmacro
     % If \lastskip was zero, perhaps the last item was a penalty, and
@@ -3593,13 +4308,14 @@ where each line of input produces a line of output.}
     %   Description.
     % would allow a break between the index-whatever whatsit
     % and the "Description." paragraph.
-    \ifnum\count255>9999 \penalty\count255 \fi
+    \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi
   \else
     % On the other hand, if we had a nonzero \lastskip,
     % this make-up glue would be preceded by a non-discardable item
     % (the whatsit from the \write), so we must insert a \nobreak.
-    \nobreak\vskip\skip0
+    \nobreak\vskip\whatsitskip
   \fi
+\fi
 }
 
 % The index entry written in the file actually looks like
@@ -3642,6 +4358,7 @@ where each line of input produces a line of output.}
   %
   \smallfonts \rm
   \tolerance = 9500
+  \plainfrenchspacing
   \everypar = {}% don't want the \kern\-parindent from indentation suppression.
   %
   % See if the index file exists and is nonempty.
@@ -3771,11 +4488,8 @@ where each line of input produces a line of output.}
     % The following is kludged to not output a line of dots in the index if
     % there are no page numbers.  The next person who breaks this will be
     % cursed by a Unix daemon.
-    \def\tempa{{\rm }}%
-    \def\tempb{#1}%
-    \edef\tempc{\tempa}%
-    \edef\tempd{\tempb}%
-    \ifx\tempc\tempd
+    \setbox\boxA = \hbox{#1}%
+    \ifdim\wd\boxA = 0pt
       \ %
     \else
       %
@@ -3799,9 +4513,9 @@ where each line of input produces a line of output.}
   \endgroup
 }
 
-% Like \dotfill except takes at least 1 em.
+% Like plain.tex's \dotfill, except uses up at least 1 em.
 \def\indexdotfill{\cleaders
-  \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill}
+  \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill}
 
 \def\primary #1{\line{#1\hfil}}
 
@@ -3911,6 +4625,34 @@ where each line of input produces a line of output.}
 %
 % All done with double columns.
 \def\enddoublecolumns{%
+  % The following penalty ensures that the page builder is exercised
+  % _before_ we change the output routine.  This is necessary in the
+  % following situation:
+  %
+  % The last section of the index consists only of a single entry.
+  % Before this section, \pagetotal is less than \pagegoal, so no
+  % break occurs before the last section starts.  However, the last
+  % section, consisting of \initial and the single \entry, does not
+  % fit on the page and has to be broken off.  Without the following
+  % penalty the page builder will not be exercised until \eject
+  % below, and by that time we'll already have changed the output
+  % routine to the \balancecolumns version, so the next-to-last
+  % double-column page will be processed with \balancecolumns, which
+  % is wrong:  The two columns will go to the main vertical list, with
+  % the broken-off section in the recent contributions.  As soon as
+  % the output routine finishes, TeX starts reconsidering the page
+  % break.  The two columns and the broken-off section both fit on the
+  % page, because the two columns now take up only half of the page
+  % goal.  When TeX sees \eject from below which follows the final
+  % section, it invokes the new output routine that we've set after
+  % \balancecolumns below; \onepageout will try to fit the two columns
+  % and the final section into the vbox of \pageheight (see
+  % \pagebody), causing an overfull box.
+  %
+  % Note that glue won't work here, because glue does not exercise the
+  % page builder, unlike penalties (see The TeXbook, pp. 280-281).
+  \penalty0
+  %
   \output = {%
     % Split the last of the double-column material.  Leave it on the
     % current page, no automatic page break.
@@ -4020,11 +4762,15 @@ where each line of input produces a line of output.}
   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
 
-% Each @chapter defines this as the name of the chapter.
-% page headings and footings can use it.  @section does likewise.
-% However, they are not reliable, because we don't use marks.
+% Each @chapter defines these (using marks) as the number+name, number
+% and name of the chapter.  Page headings and footings can use
+% these.  @section does likewise.
 \def\thischapter{}
+\def\thischapternum{}
+\def\thischaptername{}
 \def\thissection{}
+\def\thissectionnum{}
+\def\thissectionname{}
 
 \newcount\absseclevel % used to calculate proper heading level
 \newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count
@@ -4325,7 +5071,20 @@ where each line of input produces a line of output.}
 
 \def\chapbreak{\dobreak \chapheadingskip {-4000}}
 \def\chappager{\par\vfill\supereject}
-\def\chapoddpage{\chappager \ifodd\pageno \else \hbox to 0pt{} \chappager\fi}
+% Because \domark is called before \chapoddpage, the filler page will
+% get the headings for the next chapter, which is wrong.  But we don't
+% care -- we just disable all headings on the filler page.
+\def\chapoddpage{%
+  \chappager
+  \ifodd\pageno \else
+    \begingroup
+      \evenheadline={\hfil}\evenfootline={\hfil}%
+      \oddheadline={\hfil}\oddfootline={\hfil}%
+      \hbox to 0pt{}%
+      \chappager
+    \endgroup
+  \fi
+}
 
 \def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
 
@@ -4359,41 +5118,72 @@ where each line of input produces a line of output.}
 \def\Yappendixkeyword{Yappendix}
 %
 \def\chapmacro#1#2#3{%
+  % Insert the first mark before the heading break (see notes for \domark).
+  \let\prevchapterdefs=\lastchapterdefs
+  \let\prevsectiondefs=\lastsectiondefs
+  \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}%
+                        \gdef\thissection{}}%
+  %
+  \def\temptype{#2}%
+  \ifx\temptype\Ynothingkeyword
+    \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
+                          \gdef\thischapter{\thischaptername}}%
+  \else\ifx\temptype\Yomitfromtockeyword
+    \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
+                          \gdef\thischapter{}}%
+  \else\ifx\temptype\Yappendixkeyword
+    \toks0={#1}%
+    \xdef\lastchapterdefs{%
+      \gdef\noexpand\thischaptername{\the\toks0}%
+      \gdef\noexpand\thischapternum{\appendixletter}%
+      \gdef\noexpand\thischapter{\putwordAppendix{} \noexpand\thischapternum:
+                                 \noexpand\thischaptername}%
+    }%
+  \else
+    \toks0={#1}%
+    \xdef\lastchapterdefs{%
+      \gdef\noexpand\thischaptername{\the\toks0}%
+      \gdef\noexpand\thischapternum{\the\chapno}%
+      \gdef\noexpand\thischapter{\putwordChapter{} \noexpand\thischapternum:
+                                 \noexpand\thischaptername}%
+    }%
+  \fi\fi\fi
+  %
+  % Output the mark.  Pass it through \safewhatsit, to take care of
+  % the preceding space.
+  \safewhatsit\domark
+  %
+  % Insert the chapter heading break.
   \pchapsepmacro
+  %
+  % Now the second mark, after the heading break.  No break points
+  % between here and the heading.
+  \let\prevchapterdefs=\lastchapterdefs
+  \let\prevsectiondefs=\lastsectiondefs
+  \domark
+  %
   {%
     \chapfonts \rm
     %
-    % Have to define \thissection before calling \donoderef, because the
+    % Have to define \lastsection before calling \donoderef, because the
     % xref code eventually uses it.  On the other hand, it has to be called
     % after \pchapsepmacro, or the headline will change too soon.
-    \gdef\thissection{#1}%
-    \gdef\thischaptername{#1}%
+    \gdef\lastsection{#1}%
     %
     % Only insert the separating space if we have a chapter/appendix
     % number, and don't print the unnumbered ``number''.
-    \def\temptype{#2}%
     \ifx\temptype\Ynothingkeyword
       \setbox0 = \hbox{}%
       \def\toctype{unnchap}%
-      \gdef\thischapter{#1}%
     \else\ifx\temptype\Yomitfromtockeyword
       \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
       \def\toctype{omit}%
-      \gdef\thischapter{}%
     \else\ifx\temptype\Yappendixkeyword
       \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
       \def\toctype{app}%
-      % We don't substitute the actual chapter name into \thischapter
-      % because we don't want its macros evaluated now.  And we don't
-      % use \thissection because that changes with each section.
-      %
-      \xdef\thischapter{\putwordAppendix{} \appendixletter:
-                        \noexpand\thischaptername}%
     \else
       \setbox0 = \hbox{#3\enspace}%
       \def\toctype{numchap}%
-      \xdef\thischapter{\putwordChapter{} \the\chapno:
-                        \noexpand\thischaptername}%
     \fi\fi\fi
     %
     % Write the toc entry for this chapter.  Must come before the
@@ -4409,6 +5199,7 @@ where each line of input produces a line of output.}
     \donoderef{#2}%
     %
     % Typeset the actual heading.
+    \nobreak % Avoid page breaks at the interline glue.
     \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
           \hangindent=\wd0 \centerparametersmaybe
           \unhbox0 #1\par}%
@@ -4471,45 +5262,95 @@ where each line of input produces a line of output.}
 % the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
 % section number.
 %
+\def\seckeyword{sec}
+%
 \def\sectionheading#1#2#3#4{%
   {%
     % Switch to the right set of fonts.
     \csname #2fonts\endcsname \rm
     %
+    \def\sectionlevel{#2}%
+    \def\temptype{#3}%
+    %
+    % Insert first mark before the heading break (see notes for \domark).
+    \let\prevsectiondefs=\lastsectiondefs
+    \ifx\temptype\Ynothingkeyword
+      \ifx\sectionlevel\seckeyword
+        \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}%
+                              \gdef\thissection{\thissectionname}}%
+      \fi
+    \else\ifx\temptype\Yomitfromtockeyword
+      % Don't redefine \thissection.
+    \else\ifx\temptype\Yappendixkeyword
+      \ifx\sectionlevel\seckeyword
+        \toks0={#1}%
+        \xdef\lastsectiondefs{%
+          \gdef\noexpand\thissectionname{\the\toks0}%
+          \gdef\noexpand\thissectionnum{#4}%
+          \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum:
+                                     \noexpand\thissectionname}%
+        }%
+      \fi
+    \else
+      \ifx\sectionlevel\seckeyword
+        \toks0={#1}%
+        \xdef\lastsectiondefs{%
+          \gdef\noexpand\thissectionname{\the\toks0}%
+          \gdef\noexpand\thissectionnum{#4}%
+          \gdef\noexpand\thissection{\putwordSection{} \noexpand\thissectionnum:
+                                     \noexpand\thissectionname}%
+        }%
+      \fi
+    \fi\fi\fi
+    %
+    % Output the mark.  Pass it through \safewhatsit, to take care of
+    % the preceding space.
+    \safewhatsit\domark
+    %
     % Insert space above the heading.
     \csname #2headingbreak\endcsname
     %
-    % Only insert the space after the number if we have a section number.
-    \def\sectionlevel{#2}%
-    \def\temptype{#3}%
+    % Now the second mark, after the heading break.  No break points
+    % between here and the heading.
+    \let\prevsectiondefs=\lastsectiondefs
+    \domark
     %
+    % Only insert the space after the number if we have a section number.
     \ifx\temptype\Ynothingkeyword
       \setbox0 = \hbox{}%
       \def\toctype{unn}%
-      \gdef\thissection{#1}%
+      \gdef\lastsection{#1}%
     \else\ifx\temptype\Yomitfromtockeyword
       % for @headings -- no section number, don't include in toc,
-      % and don't redefine \thissection.
+      % and don't redefine \lastsection.
       \setbox0 = \hbox{}%
       \def\toctype{omit}%
       \let\sectionlevel=\empty
     \else\ifx\temptype\Yappendixkeyword
       \setbox0 = \hbox{#4\enspace}%
       \def\toctype{app}%
-      \gdef\thissection{#1}%
+      \gdef\lastsection{#1}%
     \else
       \setbox0 = \hbox{#4\enspace}%
       \def\toctype{num}%
-      \gdef\thissection{#1}%
+      \gdef\lastsection{#1}%
     \fi\fi\fi
     %
-    % Write the toc entry (before \donoderef).  See comments in \chfplain.
+    % Write the toc entry (before \donoderef).  See comments in \chapmacro.
     \writetocentry{\toctype\sectionlevel}{#1}{#4}%
     %
     % Write the node reference (= pdf destination for pdftex).
-    % Again, see comments in \chfplain.
+    % Again, see comments in \chapmacro.
     \donoderef{#3}%
     %
+    % Interline glue will be inserted when the vbox is completed.
+    % That glue will be a valid breakpoint for the page, since it'll be
+    % preceded by a whatsit (usually from the \donoderef, or from the
+    % \writetocentry if there was no node).  We don't want to allow that
+    % break, since then the whatsits could end up on page n while the
+    % section is on page n+1, thus toc/etc. are wrong.  Debian bug 276000.
+    \nobreak
+    %
     % Output the actual section heading.
     \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \raggedright
           \hangindent=\wd0  % zero if no section number
@@ -4572,7 +5413,7 @@ where each line of input produces a line of output.}
        \edef\temp{%
          \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}%
        \temp
-      }
+      }%
     \fi
   \fi
   %
@@ -4607,7 +5448,7 @@ where each line of input produces a line of output.}
 \def\readtocfile{%
   \setupdatafile
   \activecatcodes
-  \input \jobname.toc
+  \input \tocreadfilename
 }
 
 \newskip\contentsrightmargin \contentsrightmargin=1in
@@ -4626,7 +5467,6 @@ where each line of input produces a line of output.}
   %
   % Don't need to put `Contents' or `Short Contents' in the headline.
   % It is abundantly clear what they are.
-  \def\thischapter{}%
   \chapmacro{#1}{Yomitfromtoc}{}%
   %
   \savepageno = \pageno
@@ -4638,11 +5478,16 @@ where each line of input produces a line of output.}
     \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
 }
 
+% redefined for the two-volume lispref.  We always output on
+% \jobname.toc even if this is redefined.
+% 
+\def\tocreadfilename{\jobname.toc}
 
 % Normal (long) toc.
+%
 \def\contents{%
   \startcontents{\putwordTOC}%
-    \openin 1 \jobname.toc
+    \openin 1 \tocreadfilename\space
     \ifeof 1 \else
       \readtocfile
     \fi
@@ -4680,7 +5525,7 @@ where each line of input produces a line of output.}
     \let\numsubsubsecentry = \numsecentry
     \let\appsubsubsecentry = \numsecentry
     \let\unnsubsubsecentry = \numsecentry
-    \openin 1 \jobname.toc
+    \openin 1 \tocreadfilename\space
     \ifeof 1 \else
       \readtocfile
     \fi
@@ -4824,7 +5669,7 @@ where each line of input produces a line of output.}
 {\tentt \global\dimen0 = 3em}% Width of the box.
 \dimen2 = .55pt % Thickness of rules
 % The text. (`r' is open on the right, `e' somewhat less so on the left.)
-\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
+\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt}
 %
 \setbox\errorbox=\hbox to \dimen0{\hfil
    \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
@@ -5015,12 +5860,18 @@ where each line of input produces a line of output.}
 \let\SETdispenvsize\relax
 \def\setnormaldispenv{%
   \ifx\SETdispenvsize\smallword
+    % end paragraph for sake of leading, in case document has no blank
+    % line.  This is redundant with what happens in \aboveenvbreak, but
+    % we need to do it before changing the fonts, and it's inconvenient
+    % to change the fonts afterward.
+    \ifnum \lastpenalty=10000 \else \endgraf \fi
     \smallexamplefonts \rm
   \fi
 }
 \def\setsmalldispenv{%
   \ifx\SETdispenvsize\nosmallword
   \else
+    \ifnum \lastpenalty=10000 \else \endgraf \fi
     \smallexamplefonts \rm
   \fi
 }
@@ -5047,11 +5898,10 @@ where each line of input produces a line of output.}
 %
 \maketwodispenvs {lisp}{example}{%
   \nonfillstart
-  \tt
+  \tt\quoteexpand
   \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
   \gobble       % eat return
 }
-
 % @display/@smalldisplay: same as @lisp except keep current font.
 %
 \makedispenv {display}{%
@@ -5179,6 +6029,34 @@ where each line of input produces a line of output.}
 \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
 %
 \def\starttabbox{\setbox0=\hbox\bgroup}
+
+% Allow an option to not replace quotes with a regular directed right
+% quote/apostrophe (char 0x27), but instead use the undirected quote
+% from cmtt (char 0x0d).  The undirected quote is ugly, so don't make it
+% the default, but it works for pasting with more pdf viewers (at least
+% evince), the lilypond developers report.  xpdf does work with the
+% regular 0x27.  
+% 
+\def\codequoteright{%
+  \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
+    \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
+      '%
+    \else \char'15 \fi
+  \else \char'15 \fi
+}
+%
+% and a similar option for the left quote char vs. a grave accent.
+% Modern fonts display ASCII 0x60 as a grave accent, so some people like
+% the code environments to do likewise.
+% 
+\def\codequoteleft{%
+  \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
+    \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
+      `%
+    \else \char'22 \fi
+  \else \char'22 \fi
+}
+%
 \begingroup
   \catcode`\^^I=\active
   \gdef\tabexpand{%
@@ -5191,7 +6069,16 @@ where each line of input produces a line of output.}
       \wd0=\dimen0 \box0 \starttabbox
     }%
   }
+  \catcode`\'=\active
+  \gdef\rquoteexpand{\catcode\rquoteChar=\active \def'{\codequoteright}}%
+  %
+  \catcode`\`=\active
+  \gdef\lquoteexpand{\catcode\lquoteChar=\active \def`{\codequoteleft}}%
+  %
+  \gdef\quoteexpand{\rquoteexpand \lquoteexpand}%
 \endgroup
+
+% start the verbatim environment.
 \def\setupverbatim{%
   \let\nonarrowing = t%
   \nonfillstart
@@ -5200,6 +6087,7 @@ where each line of input produces a line of output.}
   \def\par{\leavevmode\egroup\box0\endgraf}%
   \catcode`\`=\active
   \tabexpand
+  \quoteexpand
   % Respect line breaks,
   % print special symbols as themselves, and
   % make each space count
@@ -5284,27 +6172,35 @@ where each line of input produces a line of output.}
   \endgroup
 }
 
+
 \message{defuns,}
 % @defun etc.
 
 \newskip\defbodyindent \defbodyindent=.4in
 \newskip\defargsindent \defargsindent=50pt
 \newskip\deflastargmargin \deflastargmargin=18pt
+\newcount\defunpenalty
 
 % Start the processing of @deffn:
 \def\startdefun{%
   \ifnum\lastpenalty<10000
     \medbreak
+    \defunpenalty=10003 % Will keep this @deffn together with the
+                        % following @def command, see below.
   \else
     % If there are two @def commands in a row, we'll have a \nobreak,
     % which is there to keep the function description together with its
     % header.  But if there's nothing but headers, we need to allow a
     % break somewhere.  Check specifically for penalty 10002, inserted
-    % by \defargscommonending, instead of 10000, since the sectioning
+    % by \printdefunline, instead of 10000, since the sectioning
     % commands also insert a nobreak penalty, and we don't want to allow
     % a break between a section heading and a defun.
-    % 
-    \ifnum\lastpenalty=10002 \penalty2000 \fi
+    %
+    % As a minor refinement, we avoid "club" headers by signalling
+    % with penalty of 10003 after the very first @deffn in the
+    % sequence (see above), and penalty of 10002 after any following
+    % @def command.
+    \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi
     %
     % Similarly, after a section heading, do not allow a break.
     % But do insert the glue.
@@ -5322,7 +6218,7 @@ where each line of input produces a line of output.}
   %
   % As above, allow line break if we have multiple x headers in a row.
   % It's not a great place, though.
-  \ifnum\lastpenalty=10002 \penalty3000 \fi
+  \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi
   %
   % And now, it's time to reuse the body of the original defun:
   \expandafter\gobbledefun#1%
@@ -5340,7 +6236,7 @@ where each line of input produces a line of output.}
     \advance\rightskip by 0pt plus 1fil
     \endgraf
     \nobreak\vskip -\parskip
-    \penalty 10002  % signal to \startdefun and \dodefunx
+    \penalty\defunpenalty  % signal to \startdefun and \dodefunx
     % Some of the @defun-type tags do not enable magic parentheses,
     % rendering the following check redundant.  But we don't optimize.
     \checkparencounts
@@ -5609,12 +6505,14 @@ where each line of input produces a line of output.}
   \ifnum\parencount=0 \else \badparencount \fi
   \ifnum\brackcount=0 \else \badbrackcount \fi
 }
+% these should not use \errmessage; the glibc manual, at least, actually
+% has such constructs (when documenting function pointers).
 \def\badparencount{%
-  \errmessage{Unbalanced parentheses in @def}%
+  \message{Warning: unbalanced parentheses in @def...}%
   \global\parencount=0
 }
 \def\badbrackcount{%
-  \errmessage{Unbalanced square braces in @def}%
+  \message{Warning: unbalanced square brackets in @def...}%
   \global\brackcount=0
 }
 
@@ -5649,7 +6547,6 @@ where each line of input produces a line of output.}
     \spaceisspace
     %
     % Append \endinput to make sure that TeX does not see the ending newline.
-    %
     % I've verified that it is necessary both for e-TeX and for ordinary TeX
     %                                                  --kasal, 29nov03
     \scantokens{#1\endinput}%
@@ -5710,6 +6607,10 @@ where each line of input produces a line of output.}
 % all characters are catcode 10, 11 or 12, except \ which is active
 % (as in normal texinfo). It is necessary to change the definition of \.
 
+% Non-ASCII encodings make 8-bit characters active, so un-activate
+% them to avoid their expansion.  Must do this non-globally, to
+% confine the change to the current group.
+
 % It's necessary to have hard CRs when the macro is executed. This is
 % done by  making ^^M (\endlinechar) catcode 12 when reading the macro
 % body, and then making it the \newlinechar in \scanmacro.
@@ -5724,6 +6625,7 @@ where each line of input produces a line of output.}
   \catcode`\_=\other
   \catcode`\|=\other
   \catcode`\~=\other
+  \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi
 }
 
 \def\scanargctxt{%
@@ -5916,11 +6818,11 @@ where each line of input produces a line of output.}
 % {.  If so it reads up to the closing }, if not, it reads the whole
 % line.  Whatever was read is then fed to the next control sequence
 % as an argument (by \parsebrace or \parsearg)
-\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx}
+\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
 \def\braceorlinexxx{%
   \ifx\nchar\bgroup\else
     \expandafter\parsearg
-  \fi \next}
+  \fi \macnamexxx}
 
 
 % @alias.
@@ -5941,7 +6843,6 @@ where each line of input produces a line of output.}
 \message{cross references,}
 
 \newwrite\auxfile
-
 \newif\ifhavexrefs    % True if xref values are known.
 \newif\ifwarnedxrefs  % True if we warned once that they aren't known.
 
@@ -5986,7 +6887,7 @@ where each line of input produces a line of output.}
 
 % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
 % anchor), which consists of three parts:
-% 1) NAME-title - the current sectioning name taken from \thissection,
+% 1) NAME-title - the current sectioning name taken from \lastsection,
 %                 or the anchor name.
 % 2) NAME-snt   - section number and type, passed as the SNT arg, or
 %                 empty for anchors.
@@ -6005,10 +6906,10 @@ where each line of input produces a line of output.}
        \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
          ##1}{##2}}% these are parameters of \writexrdef
       }%
-      \toks0 = \expandafter{\thissection}%
+      \toks0 = \expandafter{\lastsection}%
       \immediate \writexrdef{title}{\the\toks0 }%
       \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
-      \writexrdef{pg}{\folio}% will be written later, during \shipout
+      \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout
     }%
   \fi
 }
@@ -6054,7 +6955,8 @@ where each line of input produces a line of output.}
   \ifpdf
     \leavevmode
     \getfilename{#4}%
-    {\turnoffactive
+    {\indexnofonts
+     \turnoffactive
      % See comments at \activebackslashdouble.
      {\activebackslashdouble \xdef\pdfxrefdest{#1}%
       \backslashparens\pdfxrefdest}%
@@ -6067,7 +6969,7 @@ where each line of input produces a line of output.}
          goto name{\pdfmkpgn{\pdfxrefdest}}%
      \fi
     }%
-    \linkcolor
+    \setcolor{\linkcolor}%
   \fi
   %
   % Float references are printed completely differently: "Figure 1.2"
@@ -6085,7 +6987,7 @@ where each line of input produces a line of output.}
     % If the user specified the print name (third arg) to the ref,
     % print it instead of our usual "Figure 1.2".
     \ifdim\wd0 = 0pt
-      \refx{#1-snt}%
+      \refx{#1-snt}{}%
     \else
       \printedrefname
     \fi
@@ -6105,7 +7007,7 @@ where each line of input produces a line of output.}
     % is a loss.  Therefore, we give the text of the node name again, so it
     % is as if TeX is seeing it for the first time.
     \ifdim \wd1 > 0pt
-      \putwordsection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
+      \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
     \else
       % _ (for example) has to be the character _ for the purposes of the
       % control sequence corresponding to the node, but it has to expand
@@ -6201,10 +7103,18 @@ where each line of input produces a line of output.}
 % collisions).  But if this is a float type, we have more work to do.
 %
 \def\xrdef#1#2{%
-  \expandafter\gdef\csname XR#1\endcsname{#2}% remember this xref value.
+  {% The node name might contain 8-bit characters, which in our current
+   % implementation are changed to commands like @'e.  Don't let these
+   % mess up the control sequence name.
+    \indexnofonts
+    \turnoffactive
+    \xdef\safexrefname{#1}%
+  }%
+  %
+  \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref
   %
   % Was that xref control sequence that we just defined for a float?
-  \expandafter\iffloat\csname XR#1\endcsname
+  \expandafter\iffloat\csname XR\safexrefname\endcsname
     % it was a float, and we have the (safe) float type in \iffloattype.
     \expandafter\let\expandafter\floatlist
       \csname floatlist\iffloattype\endcsname
@@ -6219,7 +7129,8 @@ where each line of input produces a line of output.}
     %
     % Remember this xref in the control sequence \floatlistFLOATTYPE,
     % for later use in \listoffloats.
-    \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0{#1}}%
+    \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0
+      {\safexrefname}}%
   \fi
 }
 
@@ -6323,6 +7234,7 @@ where each line of input produces a line of output.}
   \input\jobname.#1
 \endgroup}
 
+
 \message{insertions,}
 % including footnotes.
 
@@ -6515,7 +7427,7 @@ where each line of input produces a line of output.}
     % above and below.
     \nobreak\vskip\parskip
     \nobreak
-    \line\bgroup\hss
+    \line\bgroup
   \fi
   %
   % Output the image.
@@ -6528,7 +7440,7 @@ where each line of input produces a line of output.}
     \epsfbox{#1.eps}%
   \fi
   %
-  \ifimagevmode \hss \egroup \bigbreak \fi  % space after the image
+  \ifimagevmode \egroup \bigbreak \fi  % space after the image
 \endgroup}
 
 
@@ -6595,13 +7507,13 @@ where each line of input produces a line of output.}
       \global\advance\floatno by 1
       %
       {%
-        % This magic value for \thissection is output by \setref as the
+        % This magic value for \lastsection is output by \setref as the
         % XREFLABEL-title value.  \xrefX uses it to distinguish float
         % labels (which have a completely different output format) from
         % node and anchor labels.  And \xrdef uses it to construct the
         % lists of floats.
         %
-        \edef\thissection{\floatmagic=\safefloattype}%
+        \edef\lastsection{\floatmagic=\safefloattype}%
         \setref{\floatlabel}{Yfloat}%
       }%
     \fi
@@ -6669,6 +7581,7 @@ where each line of input produces a line of output.}
       % caption if specified, else the full caption if specified, else nothing.
       {%
         \atdummies
+        %
         % since we read the caption text in the macro world, where ^^M
         % is turned into a normal character, we have to scan it back, so
         % we don't write the literal three characters "^^M" into the aux file.
@@ -6689,8 +7602,9 @@ where each line of input produces a line of output.}
   %
   % place the captured inserts
   %
-  % BEWARE: when the floats start float, we have to issue warning whenever an
-  % insert appears inside a float which could possibly float. --kasal, 26may04
+  % BEWARE: when the floats start floating, we have to issue warning
+  % whenever an insert appears inside a float which could possibly
+  % float. --kasal, 26may04
   %
   \checkinserts
 }
@@ -6734,7 +7648,7 @@ where each line of input produces a line of output.}
 
 % #1 is the control sequence we are passed; we expand into a conditional
 % which is true if #1 represents a float ref.  That is, the magic
-% \thissection value which we \setref above.
+% \lastsection value which we \setref above.
 %
 \def\iffloat#1{\expandafter\doiffloat#1==\finish}
 %
@@ -6795,39 +7709,871 @@ where each line of input produces a line of output.}
   \writeentry
 }}
 
+
 \message{localization,}
-% and i18n.
 
 % @documentlanguage is usually given very early, just after
 % @setfilename.  If done too late, it may not override everything
-% properly.  Single argument is the language abbreviation.
-% It would be nice if we could set up a hyphenation file here.
+% properly.  Single argument is the language (de) or locale (de_DE)
+% abbreviation.  It would be nice if we could set up a hyphenation file.
 %
-\parseargdef\documentlanguage{%
+{
+  \catcode`\_ = \active
+  \globaldefs=1
+\parseargdef\documentlanguage{\begingroup
+  \let_=\normalunderscore  % normal _ character for filenames
   \tex % read txi-??.tex file in plain TeX.
-    % Read the file if it exists.
+    % Read the file by the name they passed if it exists.
     \openin 1 txi-#1.tex
     \ifeof 1
-      \errhelp = \nolanghelp
-      \errmessage{Cannot read language file txi-#1.tex}%
+      \documentlanguagetrywithoutunderscore{#1_\finish}%
     \else
       \input txi-#1.tex
     \fi
     \closein 1
   \endgroup
+\endgroup}
+}
+%
+% If they passed de_DE, and txi-de_DE.tex doesn't exist,
+% try txi-de.tex.
+% 
+\def\documentlanguagetrywithoutunderscore#1_#2\finish{%
+  \openin 1 txi-#1.tex
+  \ifeof 1
+    \errhelp = \nolanghelp
+    \errmessage{Cannot read language file txi-#1.tex}%
+  \else
+    \input txi-#1.tex
+  \fi
+  \closein 1
 }
+%
 \newhelp\nolanghelp{The given language definition file cannot be found or
 is empty.  Maybe you need to install it?  In the current directory
 should work if nowhere else does.}
 
+% Set the catcode of characters 128 through 255 to the specified number.
+%
+\def\setnonasciicharscatcode#1{%
+   \count255=128
+   \loop\ifnum\count255<256
+      \global\catcode\count255=#1\relax
+      \advance\count255 by 1
+   \repeat
+}
 
-% @documentencoding should change something in TeX eventually, most
-% likely, but for now just recognize it.
-\let\documentencoding = \comment
+\def\setnonasciicharscatcodenonglobal#1{%
+   \count255=128
+   \loop\ifnum\count255<256
+      \catcode\count255=#1\relax
+      \advance\count255 by 1
+   \repeat
+}
 
+% @documentencoding sets the definition of non-ASCII characters
+% according to the specified encoding.
+%
+\parseargdef\documentencoding{%
+  % Encoding being declared for the document.
+  \def\declaredencoding{\csname #1.enc\endcsname}%
+  %
+  % Supported encodings: names converted to tokens in order to be able
+  % to compare them with \ifx.
+  \def\ascii{\csname US-ASCII.enc\endcsname}%
+  \def\latnine{\csname ISO-8859-15.enc\endcsname}%
+  \def\latone{\csname ISO-8859-1.enc\endcsname}%
+  \def\lattwo{\csname ISO-8859-2.enc\endcsname}%
+  \def\utfeight{\csname UTF-8.enc\endcsname}%
+  %
+  \ifx \declaredencoding \ascii
+     \asciichardefs
+  %
+  \else \ifx \declaredencoding \lattwo
+     \setnonasciicharscatcode\active
+     \lattwochardefs
+  %
+  \else \ifx \declaredencoding \latone 
+     \setnonasciicharscatcode\active
+     \latonechardefs
+  %
+  \else \ifx \declaredencoding \latnine
+     \setnonasciicharscatcode\active
+     \latninechardefs
+  %
+  \else \ifx \declaredencoding \utfeight
+     \setnonasciicharscatcode\active
+     \utfeightchardefs
+  %
+  \else 
+    \message{Unknown document encoding #1, ignoring.}%
+  %
+  \fi % utfeight
+  \fi % latnine
+  \fi % latone
+  \fi % lattwo
+  \fi % ascii
+}
+
+% A message to be logged when using a character that isn't available
+% the default font encoding (OT1).
+% 
+\def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}}
+
+% Take account of \c (plain) vs. \, (Texinfo) difference.
+\def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi}
+
+% First, make active non-ASCII characters in order for them to be
+% correctly categorized when TeX reads the replacement text of
+% macros containing the character definitions.
+\setnonasciicharscatcode\active
+%
+% Latin1 (ISO-8859-1) character definitions.
+\def\latonechardefs{%
+  \gdef^^a0{~} 
+  \gdef^^a1{\exclamdown}
+  \gdef^^a2{\missingcharmsg{CENT SIGN}} 
+  \gdef^^a3{{\pounds}}
+  \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
+  \gdef^^a5{\missingcharmsg{YEN SIGN}}
+  \gdef^^a6{\missingcharmsg{BROKEN BAR}} 
+  \gdef^^a7{\S}
+  \gdef^^a8{\"{}} 
+  \gdef^^a9{\copyright} 
+  \gdef^^aa{\ordf}
+  \gdef^^ab{\missingcharmsg{LEFT-POINTING DOUBLE ANGLE QUOTATION MARK}} 
+  \gdef^^ac{$\lnot$}
+  \gdef^^ad{\-} 
+  \gdef^^ae{\registeredsymbol} 
+  \gdef^^af{\={}}
+  %
+  \gdef^^b0{\textdegree}
+  \gdef^^b1{$\pm$}
+  \gdef^^b2{$^2$}
+  \gdef^^b3{$^3$}
+  \gdef^^b4{\'{}}
+  \gdef^^b5{$\mu$}
+  \gdef^^b6{\P}
+  %
+  \gdef^^b7{$^.$}
+  \gdef^^b8{\cedilla\ }
+  \gdef^^b9{$^1$}
+  \gdef^^ba{\ordm}
+  %
+  \gdef^^bb{\missingcharmsg{RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK}}
+  \gdef^^bc{$1\over4$}
+  \gdef^^bd{$1\over2$}
+  \gdef^^be{$3\over4$}
+  \gdef^^bf{\questiondown}
+  %
+  \gdef^^c0{\`A}
+  \gdef^^c1{\'A}
+  \gdef^^c2{\^A}
+  \gdef^^c3{\~A}
+  \gdef^^c4{\"A}
+  \gdef^^c5{\ringaccent A} 
+  \gdef^^c6{\AE}
+  \gdef^^c7{\cedilla C}
+  \gdef^^c8{\`E}
+  \gdef^^c9{\'E}
+  \gdef^^ca{\^E}
+  \gdef^^cb{\"E}
+  \gdef^^cc{\`I}
+  \gdef^^cd{\'I}
+  \gdef^^ce{\^I}
+  \gdef^^cf{\"I}
+  %
+  \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER ETH}}
+  \gdef^^d1{\~N}
+  \gdef^^d2{\`O}
+  \gdef^^d3{\'O}
+  \gdef^^d4{\^O}
+  \gdef^^d5{\~O}
+  \gdef^^d6{\"O}
+  \gdef^^d7{$\times$}
+  \gdef^^d8{\O}
+  \gdef^^d9{\`U}
+  \gdef^^da{\'U}
+  \gdef^^db{\^U}
+  \gdef^^dc{\"U}
+  \gdef^^dd{\'Y}
+  \gdef^^de{\missingcharmsg{LATIN CAPITAL LETTER THORN}}
+  \gdef^^df{\ss}
+  %
+  \gdef^^e0{\`a}
+  \gdef^^e1{\'a}
+  \gdef^^e2{\^a}
+  \gdef^^e3{\~a}
+  \gdef^^e4{\"a}
+  \gdef^^e5{\ringaccent a}
+  \gdef^^e6{\ae}
+  \gdef^^e7{\cedilla c}
+  \gdef^^e8{\`e}
+  \gdef^^e9{\'e}
+  \gdef^^ea{\^e}
+  \gdef^^eb{\"e}
+  \gdef^^ec{\`{\dotless i}}
+  \gdef^^ed{\'{\dotless i}}
+  \gdef^^ee{\^{\dotless i}}
+  \gdef^^ef{\"{\dotless i}}
+  %
+  \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER ETH}}
+  \gdef^^f1{\~n}
+  \gdef^^f2{\`o}
+  \gdef^^f3{\'o}
+  \gdef^^f4{\^o}
+  \gdef^^f5{\~o}
+  \gdef^^f6{\"o}
+  \gdef^^f7{$\div$}
+  \gdef^^f8{\o}
+  \gdef^^f9{\`u}
+  \gdef^^fa{\'u}
+  \gdef^^fb{\^u}
+  \gdef^^fc{\"u}
+  \gdef^^fd{\'y}
+  \gdef^^fe{\missingcharmsg{LATIN SMALL LETTER THORN}}
+  \gdef^^ff{\"y}
+}
+
+% Latin9 (ISO-8859-15) encoding character definitions.
+\def\latninechardefs{%
+  % Encoding is almost identical to Latin1.
+  \latonechardefs
+  %
+  \gdef^^a4{\euro}
+  \gdef^^a6{\v S}
+  \gdef^^a8{\v s}
+  \gdef^^b4{\v Z}
+  \gdef^^b8{\v z}
+  \gdef^^bc{\OE}
+  \gdef^^bd{\oe}
+  \gdef^^be{\"Y}
+}
+
+% Latin2 (ISO-8859-2) character definitions.
+\def\lattwochardefs{%
+  \gdef^^a0{~}
+  \gdef^^a1{\missingcharmsg{LATIN CAPITAL LETTER A WITH OGONEK}}
+  \gdef^^a2{\u{}}
+  \gdef^^a3{\L}
+  \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
+  \gdef^^a5{\v L}
+  \gdef^^a6{\'S}
+  \gdef^^a7{\S}
+  \gdef^^a8{\"{}}
+  \gdef^^a9{\v S}
+  \gdef^^aa{\cedilla S}
+  \gdef^^ab{\v T}
+  \gdef^^ac{\'Z}
+  \gdef^^ad{\-}
+  \gdef^^ae{\v Z}
+  \gdef^^af{\dotaccent Z}
+  %
+  \gdef^^b0{\textdegree}
+  \gdef^^b1{\missingcharmsg{LATIN SMALL LETTER A WITH OGONEK}}
+  \gdef^^b2{\missingcharmsg{OGONEK}}
+  \gdef^^b3{\l}
+  \gdef^^b4{\'{}}
+  \gdef^^b5{\v l}
+  \gdef^^b6{\'s}
+  \gdef^^b7{\v{}}
+  \gdef^^b8{\cedilla\ }
+  \gdef^^b9{\v s}
+  \gdef^^ba{\cedilla s}
+  \gdef^^bb{\v t}
+  \gdef^^bc{\'z}
+  \gdef^^bd{\H{}}
+  \gdef^^be{\v z}
+  \gdef^^bf{\dotaccent z}
+  %
+  \gdef^^c0{\'R}
+  \gdef^^c1{\'A}
+  \gdef^^c2{\^A}
+  \gdef^^c3{\u A}
+  \gdef^^c4{\"A}
+  \gdef^^c5{\'L}
+  \gdef^^c6{\'C}
+  \gdef^^c7{\cedilla C}
+  \gdef^^c8{\v C}
+  \gdef^^c9{\'E}
+  \gdef^^ca{\missingcharmsg{LATIN CAPITAL LETTER E WITH OGONEK}}
+  \gdef^^cb{\"E}
+  \gdef^^cc{\v E}
+  \gdef^^cd{\'I}
+  \gdef^^ce{\^I}
+  \gdef^^cf{\v D}
+  %
+  \gdef^^d0{\missingcharmsg{LATIN CAPITAL LETTER D WITH STROKE}}
+  \gdef^^d1{\'N}
+  \gdef^^d2{\v N}
+  \gdef^^d3{\'O}
+  \gdef^^d4{\^O}
+  \gdef^^d5{\H O}
+  \gdef^^d6{\"O}
+  \gdef^^d7{$\times$}
+  \gdef^^d8{\v R}
+  \gdef^^d9{\ringaccent U} 
+  \gdef^^da{\'U}
+  \gdef^^db{\H U}
+  \gdef^^dc{\"U}
+  \gdef^^dd{\'Y}
+  \gdef^^de{\cedilla T}
+  \gdef^^df{\ss}
+  %
+  \gdef^^e0{\'r}
+  \gdef^^e1{\'a}
+  \gdef^^e2{\^a}
+  \gdef^^e3{\u a}
+  \gdef^^e4{\"a}
+  \gdef^^e5{\'l}
+  \gdef^^e6{\'c}
+  \gdef^^e7{\cedilla c}
+  \gdef^^e8{\v c}
+  \gdef^^e9{\'e}
+  \gdef^^ea{\missingcharmsg{LATIN SMALL LETTER E WITH OGONEK}}
+  \gdef^^eb{\"e}
+  \gdef^^ec{\v e}
+  \gdef^^ed{\'\i}
+  \gdef^^ee{\^\i}
+  \gdef^^ef{\v d}
+  %
+  \gdef^^f0{\missingcharmsg{LATIN SMALL LETTER D WITH STROKE}}
+  \gdef^^f1{\'n}
+  \gdef^^f2{\v n}
+  \gdef^^f3{\'o}
+  \gdef^^f4{\^o}
+  \gdef^^f5{\H o}
+  \gdef^^f6{\"o}
+  \gdef^^f7{$\div$}
+  \gdef^^f8{\v r}
+  \gdef^^f9{\ringaccent u}
+  \gdef^^fa{\'u}
+  \gdef^^fb{\H u}
+  \gdef^^fc{\"u}
+  \gdef^^fd{\'y}
+  \gdef^^fe{\cedilla t}
+  \gdef^^ff{\dotaccent{}}
+}
+
+% UTF-8 character definitions.
+% 
+% This code to support UTF-8 is based on LaTeX's utf8.def, with some
+% changes for Texinfo conventions.  It is included here under the GPL by
+% permission from Frank Mittelbach and the LaTeX team.
+% 
+\newcount\countUTFx
+\newcount\countUTFy
+\newcount\countUTFz
 
-% Page size parameters.
+\gdef\UTFviiiTwoOctets#1#2{\expandafter
+   \UTFviiiDefined\csname u8:#1\string #2\endcsname}
+%
+\gdef\UTFviiiThreeOctets#1#2#3{\expandafter
+   \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname}
 %
+\gdef\UTFviiiFourOctets#1#2#3#4{\expandafter
+   \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname}
+
+\gdef\UTFviiiDefined#1{%
+  \ifx #1\relax
+    \message{\linenumber Unicode char \string #1 not defined for Texinfo}%
+  \else
+    \expandafter #1%
+  \fi
+}
+
+\begingroup
+  \catcode`\~13
+  \catcode`\"12
+
+  \def\UTFviiiLoop{%
+    \global\catcode\countUTFx\active
+    \uccode`\~\countUTFx
+    \uppercase\expandafter{\UTFviiiTmp}%
+    \advance\countUTFx by 1
+    \ifnum\countUTFx < \countUTFy
+      \expandafter\UTFviiiLoop
+    \fi}
+
+  \countUTFx = "C2
+  \countUTFy = "E0
+  \def\UTFviiiTmp{%
+    \xdef~{\noexpand\UTFviiiTwoOctets\string~}}
+  \UTFviiiLoop
+
+  \countUTFx = "E0
+  \countUTFy = "F0
+  \def\UTFviiiTmp{%
+    \xdef~{\noexpand\UTFviiiThreeOctets\string~}}
+  \UTFviiiLoop
+
+  \countUTFx = "F0
+  \countUTFy = "F4
+  \def\UTFviiiTmp{%
+    \xdef~{\noexpand\UTFviiiFourOctets\string~}}
+  \UTFviiiLoop
+\endgroup
+
+\begingroup
+  \catcode`\"=12
+  \catcode`\<=12
+  \catcode`\.=12
+  \catcode`\,=12
+  \catcode`\;=12
+  \catcode`\!=12
+  \catcode`\~=13
+
+  \gdef\DeclareUnicodeCharacter#1#2{%
+    \countUTFz = "#1\relax
+    \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
+    \begingroup
+      \parseXMLCharref
+      \def\UTFviiiTwoOctets##1##2{%
+        \csname u8:##1\string ##2\endcsname}%
+      \def\UTFviiiThreeOctets##1##2##3{%
+        \csname u8:##1\string ##2\string ##3\endcsname}%
+      \def\UTFviiiFourOctets##1##2##3##4{%
+        \csname u8:##1\string ##2\string ##3\string ##4\endcsname}%
+      \expandafter\expandafter\expandafter\expandafter
+       \expandafter\expandafter\expandafter
+       \gdef\UTFviiiTmp{#2}%
+    \endgroup}
+
+  \gdef\parseXMLCharref{%
+    \ifnum\countUTFz < "A0\relax
+      \errhelp = \EMsimple
+      \errmessage{Cannot define Unicode char value < 00A0}%
+    \else\ifnum\countUTFz < "800\relax
+      \parseUTFviiiA,%
+      \parseUTFviiiB C\UTFviiiTwoOctets.,%
+    \else\ifnum\countUTFz < "10000\relax
+      \parseUTFviiiA;%
+      \parseUTFviiiA,%
+      \parseUTFviiiB E\UTFviiiThreeOctets.{,;}%
+    \else
+      \parseUTFviiiA;%
+      \parseUTFviiiA,%
+      \parseUTFviiiA!%
+      \parseUTFviiiB F\UTFviiiFourOctets.{!,;}%
+    \fi\fi\fi
+  }
+
+  \gdef\parseUTFviiiA#1{%
+    \countUTFx = \countUTFz
+    \divide\countUTFz by 64
+    \countUTFy = \countUTFz
+    \multiply\countUTFz by 64
+    \advance\countUTFx by -\countUTFz
+    \advance\countUTFx by 128
+    \uccode `#1\countUTFx
+    \countUTFz = \countUTFy}
+
+  \gdef\parseUTFviiiB#1#2#3#4{%
+    \advance\countUTFz by "#10\relax
+    \uccode `#3\countUTFz
+    \uppercase{\gdef\UTFviiiTmp{#2#3#4}}}
+\endgroup
+
+\def\utfeightchardefs{%
+  \DeclareUnicodeCharacter{00A0}{\tie}
+  \DeclareUnicodeCharacter{00A1}{\exclamdown}
+  \DeclareUnicodeCharacter{00A3}{\pounds}
+  \DeclareUnicodeCharacter{00A8}{\"{ }}
+  \DeclareUnicodeCharacter{00A9}{\copyright}
+  \DeclareUnicodeCharacter{00AA}{\ordf}
+  \DeclareUnicodeCharacter{00AB}{\guillemetleft}
+  \DeclareUnicodeCharacter{00AD}{\-}
+  \DeclareUnicodeCharacter{00AE}{\registeredsymbol}
+  \DeclareUnicodeCharacter{00AF}{\={ }}
+
+  \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}
+  \DeclareUnicodeCharacter{00B4}{\'{ }}
+  \DeclareUnicodeCharacter{00B8}{\cedilla{ }}
+  \DeclareUnicodeCharacter{00BA}{\ordm}
+  \DeclareUnicodeCharacter{00BB}{\guillemetright}
+  \DeclareUnicodeCharacter{00BF}{\questiondown}
+
+  \DeclareUnicodeCharacter{00C0}{\`A}
+  \DeclareUnicodeCharacter{00C1}{\'A}
+  \DeclareUnicodeCharacter{00C2}{\^A}
+  \DeclareUnicodeCharacter{00C3}{\~A}
+  \DeclareUnicodeCharacter{00C4}{\"A}
+  \DeclareUnicodeCharacter{00C5}{\AA}
+  \DeclareUnicodeCharacter{00C6}{\AE}
+  \DeclareUnicodeCharacter{00C7}{\cedilla{C}}
+  \DeclareUnicodeCharacter{00C8}{\`E}
+  \DeclareUnicodeCharacter{00C9}{\'E}
+  \DeclareUnicodeCharacter{00CA}{\^E}
+  \DeclareUnicodeCharacter{00CB}{\"E}
+  \DeclareUnicodeCharacter{00CC}{\`I}
+  \DeclareUnicodeCharacter{00CD}{\'I}
+  \DeclareUnicodeCharacter{00CE}{\^I}
+  \DeclareUnicodeCharacter{00CF}{\"I}
+
+  \DeclareUnicodeCharacter{00D1}{\~N}
+  \DeclareUnicodeCharacter{00D2}{\`O}
+  \DeclareUnicodeCharacter{00D3}{\'O}
+  \DeclareUnicodeCharacter{00D4}{\^O}
+  \DeclareUnicodeCharacter{00D5}{\~O}
+  \DeclareUnicodeCharacter{00D6}{\"O}
+  \DeclareUnicodeCharacter{00D8}{\O}
+  \DeclareUnicodeCharacter{00D9}{\`U}
+  \DeclareUnicodeCharacter{00DA}{\'U}
+  \DeclareUnicodeCharacter{00DB}{\^U}
+  \DeclareUnicodeCharacter{00DC}{\"U}
+  \DeclareUnicodeCharacter{00DD}{\'Y}
+  \DeclareUnicodeCharacter{00DF}{\ss}
+
+  \DeclareUnicodeCharacter{00E0}{\`a}
+  \DeclareUnicodeCharacter{00E1}{\'a}
+  \DeclareUnicodeCharacter{00E2}{\^a}
+  \DeclareUnicodeCharacter{00E3}{\~a}
+  \DeclareUnicodeCharacter{00E4}{\"a}
+  \DeclareUnicodeCharacter{00E5}{\aa}
+  \DeclareUnicodeCharacter{00E6}{\ae}
+  \DeclareUnicodeCharacter{00E7}{\cedilla{c}}
+  \DeclareUnicodeCharacter{00E8}{\`e}
+  \DeclareUnicodeCharacter{00E9}{\'e}
+  \DeclareUnicodeCharacter{00EA}{\^e}
+  \DeclareUnicodeCharacter{00EB}{\"e}
+  \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}}
+  \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}
+  \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}
+  \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}
+
+  \DeclareUnicodeCharacter{00F1}{\~n}
+  \DeclareUnicodeCharacter{00F2}{\`o}
+  \DeclareUnicodeCharacter{00F3}{\'o}
+  \DeclareUnicodeCharacter{00F4}{\^o}
+  \DeclareUnicodeCharacter{00F5}{\~o}
+  \DeclareUnicodeCharacter{00F6}{\"o}
+  \DeclareUnicodeCharacter{00F8}{\o}
+  \DeclareUnicodeCharacter{00F9}{\`u}
+  \DeclareUnicodeCharacter{00FA}{\'u}
+  \DeclareUnicodeCharacter{00FB}{\^u}
+  \DeclareUnicodeCharacter{00FC}{\"u}
+  \DeclareUnicodeCharacter{00FD}{\'y}
+  \DeclareUnicodeCharacter{00FF}{\"y}
+
+  \DeclareUnicodeCharacter{0100}{\=A}
+  \DeclareUnicodeCharacter{0101}{\=a}
+  \DeclareUnicodeCharacter{0102}{\u{A}}
+  \DeclareUnicodeCharacter{0103}{\u{a}}
+  \DeclareUnicodeCharacter{0106}{\'C}
+  \DeclareUnicodeCharacter{0107}{\'c}
+  \DeclareUnicodeCharacter{0108}{\^C}
+  \DeclareUnicodeCharacter{0109}{\^c}
+  \DeclareUnicodeCharacter{010A}{\dotaccent{C}}
+  \DeclareUnicodeCharacter{010B}{\dotaccent{c}}
+  \DeclareUnicodeCharacter{010C}{\v{C}}
+  \DeclareUnicodeCharacter{010D}{\v{c}}
+  \DeclareUnicodeCharacter{010E}{\v{D}}
+
+  \DeclareUnicodeCharacter{0112}{\=E}
+  \DeclareUnicodeCharacter{0113}{\=e}
+  \DeclareUnicodeCharacter{0114}{\u{E}}
+  \DeclareUnicodeCharacter{0115}{\u{e}}
+  \DeclareUnicodeCharacter{0116}{\dotaccent{E}}
+  \DeclareUnicodeCharacter{0117}{\dotaccent{e}}
+  \DeclareUnicodeCharacter{011A}{\v{E}}
+  \DeclareUnicodeCharacter{011B}{\v{e}}
+  \DeclareUnicodeCharacter{011C}{\^G}
+  \DeclareUnicodeCharacter{011D}{\^g}
+  \DeclareUnicodeCharacter{011E}{\u{G}}
+  \DeclareUnicodeCharacter{011F}{\u{g}}
+
+  \DeclareUnicodeCharacter{0120}{\dotaccent{G}}
+  \DeclareUnicodeCharacter{0121}{\dotaccent{g}}
+  \DeclareUnicodeCharacter{0124}{\^H}
+  \DeclareUnicodeCharacter{0125}{\^h}
+  \DeclareUnicodeCharacter{0128}{\~I}
+  \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}
+  \DeclareUnicodeCharacter{012A}{\=I}
+  \DeclareUnicodeCharacter{012B}{\={\dotless{i}}}
+  \DeclareUnicodeCharacter{012C}{\u{I}}
+  \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}
+
+  \DeclareUnicodeCharacter{0130}{\dotaccent{I}}
+  \DeclareUnicodeCharacter{0131}{\dotless{i}}
+  \DeclareUnicodeCharacter{0132}{IJ}
+  \DeclareUnicodeCharacter{0133}{ij}
+  \DeclareUnicodeCharacter{0134}{\^J}
+  \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}
+  \DeclareUnicodeCharacter{0139}{\'L}
+  \DeclareUnicodeCharacter{013A}{\'l}
+
+  \DeclareUnicodeCharacter{0141}{\L}
+  \DeclareUnicodeCharacter{0142}{\l}
+  \DeclareUnicodeCharacter{0143}{\'N}
+  \DeclareUnicodeCharacter{0144}{\'n}
+  \DeclareUnicodeCharacter{0147}{\v{N}}
+  \DeclareUnicodeCharacter{0148}{\v{n}}
+  \DeclareUnicodeCharacter{014C}{\=O}
+  \DeclareUnicodeCharacter{014D}{\=o}
+  \DeclareUnicodeCharacter{014E}{\u{O}}
+  \DeclareUnicodeCharacter{014F}{\u{o}}
+
+  \DeclareUnicodeCharacter{0150}{\H{O}}
+  \DeclareUnicodeCharacter{0151}{\H{o}}
+  \DeclareUnicodeCharacter{0152}{\OE}
+  \DeclareUnicodeCharacter{0153}{\oe}
+  \DeclareUnicodeCharacter{0154}{\'R}
+  \DeclareUnicodeCharacter{0155}{\'r}
+  \DeclareUnicodeCharacter{0158}{\v{R}}
+  \DeclareUnicodeCharacter{0159}{\v{r}}
+  \DeclareUnicodeCharacter{015A}{\'S}
+  \DeclareUnicodeCharacter{015B}{\'s}
+  \DeclareUnicodeCharacter{015C}{\^S}
+  \DeclareUnicodeCharacter{015D}{\^s}
+  \DeclareUnicodeCharacter{015E}{\cedilla{S}}
+  \DeclareUnicodeCharacter{015F}{\cedilla{s}}
+
+  \DeclareUnicodeCharacter{0160}{\v{S}}
+  \DeclareUnicodeCharacter{0161}{\v{s}}
+  \DeclareUnicodeCharacter{0162}{\cedilla{t}}
+  \DeclareUnicodeCharacter{0163}{\cedilla{T}}
+  \DeclareUnicodeCharacter{0164}{\v{T}}
+
+  \DeclareUnicodeCharacter{0168}{\~U}
+  \DeclareUnicodeCharacter{0169}{\~u}
+  \DeclareUnicodeCharacter{016A}{\=U}
+  \DeclareUnicodeCharacter{016B}{\=u}
+  \DeclareUnicodeCharacter{016C}{\u{U}}
+  \DeclareUnicodeCharacter{016D}{\u{u}}
+  \DeclareUnicodeCharacter{016E}{\ringaccent{U}}
+  \DeclareUnicodeCharacter{016F}{\ringaccent{u}}
+
+  \DeclareUnicodeCharacter{0170}{\H{U}}
+  \DeclareUnicodeCharacter{0171}{\H{u}}
+  \DeclareUnicodeCharacter{0174}{\^W}
+  \DeclareUnicodeCharacter{0175}{\^w}
+  \DeclareUnicodeCharacter{0176}{\^Y}
+  \DeclareUnicodeCharacter{0177}{\^y}
+  \DeclareUnicodeCharacter{0178}{\"Y}
+  \DeclareUnicodeCharacter{0179}{\'Z}
+  \DeclareUnicodeCharacter{017A}{\'z}
+  \DeclareUnicodeCharacter{017B}{\dotaccent{Z}}
+  \DeclareUnicodeCharacter{017C}{\dotaccent{z}}
+  \DeclareUnicodeCharacter{017D}{\v{Z}}
+  \DeclareUnicodeCharacter{017E}{\v{z}}
+
+  \DeclareUnicodeCharacter{01C4}{D\v{Z}}
+  \DeclareUnicodeCharacter{01C5}{D\v{z}}
+  \DeclareUnicodeCharacter{01C6}{d\v{z}}
+  \DeclareUnicodeCharacter{01C7}{LJ}
+  \DeclareUnicodeCharacter{01C8}{Lj}
+  \DeclareUnicodeCharacter{01C9}{lj}
+  \DeclareUnicodeCharacter{01CA}{NJ}
+  \DeclareUnicodeCharacter{01CB}{Nj}
+  \DeclareUnicodeCharacter{01CC}{nj}
+  \DeclareUnicodeCharacter{01CD}{\v{A}}
+  \DeclareUnicodeCharacter{01CE}{\v{a}}
+  \DeclareUnicodeCharacter{01CF}{\v{I}}
+
+  \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}
+  \DeclareUnicodeCharacter{01D1}{\v{O}}
+  \DeclareUnicodeCharacter{01D2}{\v{o}}
+  \DeclareUnicodeCharacter{01D3}{\v{U}}
+  \DeclareUnicodeCharacter{01D4}{\v{u}}
+
+  \DeclareUnicodeCharacter{01E2}{\={\AE}}
+  \DeclareUnicodeCharacter{01E3}{\={\ae}}
+  \DeclareUnicodeCharacter{01E6}{\v{G}}
+  \DeclareUnicodeCharacter{01E7}{\v{g}}
+  \DeclareUnicodeCharacter{01E8}{\v{K}}
+  \DeclareUnicodeCharacter{01E9}{\v{k}}
+
+  \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}
+  \DeclareUnicodeCharacter{01F1}{DZ}
+  \DeclareUnicodeCharacter{01F2}{Dz}
+  \DeclareUnicodeCharacter{01F3}{dz}
+  \DeclareUnicodeCharacter{01F4}{\'G}
+  \DeclareUnicodeCharacter{01F5}{\'g}
+  \DeclareUnicodeCharacter{01F8}{\`N}
+  \DeclareUnicodeCharacter{01F9}{\`n}
+  \DeclareUnicodeCharacter{01FC}{\'{\AE}}
+  \DeclareUnicodeCharacter{01FD}{\'{\ae}}
+  \DeclareUnicodeCharacter{01FE}{\'{\O}}
+  \DeclareUnicodeCharacter{01FF}{\'{\o}}
+
+  \DeclareUnicodeCharacter{021E}{\v{H}}
+  \DeclareUnicodeCharacter{021F}{\v{h}}
+
+  \DeclareUnicodeCharacter{0226}{\dotaccent{A}}
+  \DeclareUnicodeCharacter{0227}{\dotaccent{a}}
+  \DeclareUnicodeCharacter{0228}{\cedilla{E}}
+  \DeclareUnicodeCharacter{0229}{\cedilla{e}}
+  \DeclareUnicodeCharacter{022E}{\dotaccent{O}}
+  \DeclareUnicodeCharacter{022F}{\dotaccent{o}}
+
+  \DeclareUnicodeCharacter{0232}{\=Y}
+  \DeclareUnicodeCharacter{0233}{\=y}
+  \DeclareUnicodeCharacter{0237}{\dotless{j}}
+
+  \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}
+  \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}
+  \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}
+  \DeclareUnicodeCharacter{1E05}{\udotaccent{b}}
+  \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}}
+  \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}}
+  \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}}
+  \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}}
+  \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}}
+  \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}
+  \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}
+  \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}
+
+  \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}
+  \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}
+
+  \DeclareUnicodeCharacter{1E20}{\=G}
+  \DeclareUnicodeCharacter{1E21}{\=g}
+  \DeclareUnicodeCharacter{1E22}{\dotaccent{H}}
+  \DeclareUnicodeCharacter{1E23}{\dotaccent{h}}
+  \DeclareUnicodeCharacter{1E24}{\udotaccent{H}}
+  \DeclareUnicodeCharacter{1E25}{\udotaccent{h}}
+  \DeclareUnicodeCharacter{1E26}{\"H}
+  \DeclareUnicodeCharacter{1E27}{\"h}
+
+  \DeclareUnicodeCharacter{1E30}{\'K}
+  \DeclareUnicodeCharacter{1E31}{\'k}
+  \DeclareUnicodeCharacter{1E32}{\udotaccent{K}}
+  \DeclareUnicodeCharacter{1E33}{\udotaccent{k}}
+  \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}}
+  \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}}
+  \DeclareUnicodeCharacter{1E36}{\udotaccent{L}}
+  \DeclareUnicodeCharacter{1E37}{\udotaccent{l}}
+  \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}}
+  \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}
+  \DeclareUnicodeCharacter{1E3E}{\'M}
+  \DeclareUnicodeCharacter{1E3F}{\'m}
+
+  \DeclareUnicodeCharacter{1E40}{\dotaccent{M}}
+  \DeclareUnicodeCharacter{1E41}{\dotaccent{m}}
+  \DeclareUnicodeCharacter{1E42}{\udotaccent{M}}
+  \DeclareUnicodeCharacter{1E43}{\udotaccent{m}}
+  \DeclareUnicodeCharacter{1E44}{\dotaccent{N}}
+  \DeclareUnicodeCharacter{1E45}{\dotaccent{n}}
+  \DeclareUnicodeCharacter{1E46}{\udotaccent{N}}
+  \DeclareUnicodeCharacter{1E47}{\udotaccent{n}}
+  \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}
+  \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}
+
+  \DeclareUnicodeCharacter{1E54}{\'P}
+  \DeclareUnicodeCharacter{1E55}{\'p}
+  \DeclareUnicodeCharacter{1E56}{\dotaccent{P}}
+  \DeclareUnicodeCharacter{1E57}{\dotaccent{p}}
+  \DeclareUnicodeCharacter{1E58}{\dotaccent{R}}
+  \DeclareUnicodeCharacter{1E59}{\dotaccent{r}}
+  \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}}
+  \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}
+  \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}
+  \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}
+
+  \DeclareUnicodeCharacter{1E60}{\dotaccent{S}}
+  \DeclareUnicodeCharacter{1E61}{\dotaccent{s}}
+  \DeclareUnicodeCharacter{1E62}{\udotaccent{S}}
+  \DeclareUnicodeCharacter{1E63}{\udotaccent{s}}
+  \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}}
+  \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}}
+  \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}}
+  \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}
+  \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}
+  \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}
+
+  \DeclareUnicodeCharacter{1E7C}{\~V}
+  \DeclareUnicodeCharacter{1E7D}{\~v}
+  \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}
+  \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}
+
+  \DeclareUnicodeCharacter{1E80}{\`W}
+  \DeclareUnicodeCharacter{1E81}{\`w}
+  \DeclareUnicodeCharacter{1E82}{\'W}
+  \DeclareUnicodeCharacter{1E83}{\'w}
+  \DeclareUnicodeCharacter{1E84}{\"W}
+  \DeclareUnicodeCharacter{1E85}{\"w}
+  \DeclareUnicodeCharacter{1E86}{\dotaccent{W}}
+  \DeclareUnicodeCharacter{1E87}{\dotaccent{w}}
+  \DeclareUnicodeCharacter{1E88}{\udotaccent{W}}
+  \DeclareUnicodeCharacter{1E89}{\udotaccent{w}}
+  \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}}
+  \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}}
+  \DeclareUnicodeCharacter{1E8C}{\"X}
+  \DeclareUnicodeCharacter{1E8D}{\"x}
+  \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}
+  \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}
+
+  \DeclareUnicodeCharacter{1E90}{\^Z}
+  \DeclareUnicodeCharacter{1E91}{\^z}
+  \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}
+  \DeclareUnicodeCharacter{1E93}{\udotaccent{z}}
+  \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}}
+  \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}}
+  \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}}
+  \DeclareUnicodeCharacter{1E97}{\"t}
+  \DeclareUnicodeCharacter{1E98}{\ringaccent{w}}
+  \DeclareUnicodeCharacter{1E99}{\ringaccent{y}}
+
+  \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}
+  \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}
+
+  \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}
+  \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}
+  \DeclareUnicodeCharacter{1EBC}{\~E}
+  \DeclareUnicodeCharacter{1EBD}{\~e}
+
+  \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}
+  \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}
+  \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}
+  \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}
+
+  \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}
+  \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}
+
+  \DeclareUnicodeCharacter{1EF2}{\`Y}
+  \DeclareUnicodeCharacter{1EF3}{\`y}
+  \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}
+
+  \DeclareUnicodeCharacter{1EF8}{\~Y}
+  \DeclareUnicodeCharacter{1EF9}{\~y}
+
+  \DeclareUnicodeCharacter{2013}{--}
+  \DeclareUnicodeCharacter{2014}{---}
+  \DeclareUnicodeCharacter{2018}{\quoteleft}
+  \DeclareUnicodeCharacter{2019}{\quoteright}
+  \DeclareUnicodeCharacter{201A}{\quotesinglbase}
+  \DeclareUnicodeCharacter{201C}{\quotedblleft}
+  \DeclareUnicodeCharacter{201D}{\quotedblright}
+  \DeclareUnicodeCharacter{201E}{\quotedblbase}
+  \DeclareUnicodeCharacter{2022}{\bullet}
+  \DeclareUnicodeCharacter{2026}{\dots}
+  \DeclareUnicodeCharacter{2039}{\guilsinglleft}
+  \DeclareUnicodeCharacter{203A}{\guilsinglright}
+  \DeclareUnicodeCharacter{20AC}{\euro}
+
+  \DeclareUnicodeCharacter{2192}{\expansion}
+  \DeclareUnicodeCharacter{21D2}{\result}
+
+  \DeclareUnicodeCharacter{2212}{\minus}
+  \DeclareUnicodeCharacter{2217}{\point}
+  \DeclareUnicodeCharacter{2261}{\equiv}
+}% end of \utfeightchardefs
+
+
+% US-ASCII character definitions.
+\def\asciichardefs{% nothing need be done
+   \relax
+}
+
+% Make non-ASCII characters printable again for compatibility with
+% existing Texinfo documents that may use them, even without declaring a
+% document encoding.
+%
+\setnonasciicharscatcode \other
+
+
+\message{formatting,}
+
 \newdimen\defaultparindent \defaultparindent = 15pt
 
 \chapheadingskip = 15pt plus 4pt minus 2pt
@@ -6840,7 +8586,7 @@ should work if nowhere else does.}
 % Don't be so finicky about underfull hboxes, either.
 \hbadness = 2000
 
-% Following George Bush, just get rid of widows and orphans.
+% Following George Bush, get rid of widows and orphans.
 \widowpenalty=10000
 \clubpenalty=10000
 
@@ -6887,6 +8633,10 @@ should work if nowhere else does.}
   \ifpdf
     \pdfpageheight #7\relax
     \pdfpagewidth #8\relax
+    % if we don't reset these, they will remain at "1 true in" of
+    % whatever layout pdftex was dumped with.
+    \pdfhorigin = 1 true in
+    \pdfvorigin = 1 true in
   \fi
   %
   \setleading{\textleading}
@@ -6901,7 +8651,7 @@ should work if nowhere else does.}
   \textleading = 13.2pt
   %
   % If page is nothing but text, make it come out even.
-  \internalpagesizes{46\baselineskip}{6in}%
+  \internalpagesizes{607.2pt}{6in}% that's 46 lines
                     {\voffset}{.25in}%
                     {\bindingoffset}{36pt}%
                     {11in}{8.5in}%
@@ -6913,7 +8663,7 @@ should work if nowhere else does.}
   \textleading = 12pt
   %
   \internalpagesizes{7.5in}{5in}%
-                    {\voffset}{.25in}%
+                    {-.2in}{0in}%
                     {\bindingoffset}{16pt}%
                     {9.25in}{7in}%
   %
@@ -6957,7 +8707,7 @@ should work if nowhere else does.}
   % \global\normaloffset = -6mm
   % \global\bindingoffset = 10mm
   % @end tex
-  \internalpagesizes{51\baselineskip}{160mm}
+  \internalpagesizes{673.2pt}{160mm}% that's 51 lines
                     {\voffset}{\hoffset}%
                     {\bindingoffset}{44pt}%
                     {297mm}{210mm}%
@@ -7022,7 +8772,7 @@ should work if nowhere else does.}
   \parskip = 3pt plus 2pt minus 1pt
   \setleading{\textleading}%
   %
-  \dimen0 = #1
+  \dimen0 = #1\relax
   \advance\dimen0 by \voffset
   %
   \dimen2 = \hsize
@@ -7117,6 +8867,13 @@ should work if nowhere else does.}
 % \otherifyactive is called near the end of this file.
 \def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
 
+% Used sometimes to turn off (effectively) the active characters even after
+% parsing them.
+\def\turnoffactive{%
+  \normalturnoffactive
+  \otherbackslash
+}
+
 \catcode`\@=0
 
 % \backslashcurfont outputs one backslash character in current font,
@@ -7124,28 +8881,29 @@ should work if nowhere else does.}
 \global\chardef\backslashcurfont=`\\
 \global\let\rawbackslashxx=\backslashcurfont  % let existing .??s files work
 
-% \rawbackslash defines an active \ to do \backslashcurfont.
-% \otherbackslash defines an active \ to be a literal `\' character with
-% catcode other.
-{\catcode`\\=\active
- @gdef@rawbackslash{@let\=@backslashcurfont}
- @gdef@otherbackslash{@let\=@realbackslash}
-}
-
 % \realbackslash is an actual character `\' with catcode other, and
 % \doublebackslash is two of them (for the pdf outlines).
 {\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}}
 
-% \normalbackslash outputs one backslash in fixed width font.
-\def\normalbackslash{{\tt\backslashcurfont}}
-
+% In texinfo, backslash is an active character; it prints the backslash
+% in fixed width font.
 \catcode`\\=\active
+@def@normalbackslash{{@tt@backslashcurfont}}
+% On startup, @fixbackslash assigns:
+%  @let \ = @normalbackslash
+
+% \rawbackslash defines an active \ to do \backslashcurfont.
+% \otherbackslash defines an active \ to be a literal `\' character with
+% catcode other.
+@gdef@rawbackslash{@let\=@backslashcurfont}
+@gdef@otherbackslash{@let\=@realbackslash}
 
-% Used sometimes to turn off (effectively) the active characters
-% even after parsing them.
-@def@turnoffactive{%
+% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
+% the literal character `\'.
+% 
+@def@normalturnoffactive{%
+  @let\=@normalbackslash
   @let"=@normaldoublequote
-  @let\=@realbackslash
   @let~=@normaltilde
   @let^=@normalcaret
   @let_=@normalunderscore
@@ -7157,12 +8915,6 @@ should work if nowhere else does.}
   @unsepspaces
 }
 
-% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
-% the literal character `\'.  (Thus, \ is not expandable when this is in
-% effect.)
-%
-@def@normalturnoffactive{@turnoffactive @let\=@normalbackslash}
-
 % Make _ and + \other characters, temporarily.
 % This is canceled by @fixbackslash.
 @otherifyactive
@@ -7175,7 +8927,7 @@ should work if nowhere else does.}
 @global@let\ = @eatinput
 
 % On the other hand, perhaps the file did not have a `\input texinfo'. Then
-% the first `\{ in the file would cause an error. This macro tries to fix
+% the first `\' in the file would cause an error. This macro tries to fix
 % that, assuming it is called before the first `\' could plausibly occur.
 % Also turn back on active characters that might appear in the input
 % file name, in case not using a pre-dumped format.
index 8d619e14dc98b635ee17b217ea952601f6807d70..56b3c45776d8529d649bdbc1ccb96066839df86d 100644 (file)
@@ -1,24 +1,7 @@
 ## Input file for automake to generate the Makefile.in used by configure
-GLIBJ_CLASSPATH='$(top_builddir)/lib':'$(top_builddir)/lib/glibj.zip':'$(top_builddir)/tools/tools.zip'
-
-# Setup the compiler to use the GNU Classpath library we just build
-#if FOUND_GCJ
-#JCOMPILER = $(GCJ) --bootclasspath '$(top_builddir)/lib' --classpath . -C
-#else
-#if FOUND_JIKES
-#JCOMPILER = $(JIKES) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(top_builddir)/lib:.
-#else
-if FOUND_ECJ
-JCOMPILER = $(ECJ) -1.5 -encoding UTF-8 -warn:-deprecation,serial,typeHiding,unchecked,unused,varargsCast -bootclasspath $(GLIBJ_CLASSPATH) -classpath .
-else
-if FOUND_JAVAC
-JCOMPILER = $(JAVAC) -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath .
-else
-error dunno how to setup the JCOMPILER and compile
-#endif
-#endif
-endif
-endif
+GLIBJ_CLASSPATH='$(top_builddir)/lib/glibj.zip'
+
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath '$(top_builddir)/tools/tools.zip'
 
 # All our example java source files
 EXAMPLE_JAVA_FILES = $(srcdir)/gnu/classpath/examples/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*/*.java
index e5e0a0e9c0b99c75863bf4beb242a3fcafa3094b..fa7082c3823192a7b17450e78cd3d11250768037 100644 (file)
@@ -51,6 +51,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -140,7 +142,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -152,19 +153,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -196,15 +186,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -252,10 +239,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -327,19 +312,8 @@ target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
 vm_classes = @vm_classes@
-GLIBJ_CLASSPATH = '$(top_builddir)/lib':'$(top_builddir)/lib/glibj.zip':'$(top_builddir)/tools/tools.zip'
-@FOUND_ECJ_FALSE@@FOUND_JAVAC_TRUE@JCOMPILER = $(JAVAC) -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath .
-
-# Setup the compiler to use the GNU Classpath library we just build
-#if FOUND_GCJ
-#JCOMPILER = $(GCJ) --bootclasspath '$(top_builddir)/lib' --classpath . -C
-#else
-#if FOUND_JIKES
-#JCOMPILER = $(JIKES) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(top_builddir)/lib:.
-#else
-@FOUND_ECJ_TRUE@JCOMPILER = $(ECJ) -1.5 -encoding UTF-8 -warn:-deprecation,serial,typeHiding,unchecked,unused,varargsCast -bootclasspath $(GLIBJ_CLASSPATH) -classpath .
-#endif
-#endif
+GLIBJ_CLASSPATH = '$(top_builddir)/lib/glibj.zip'
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath '$(top_builddir)/tools/tools.zip'
 
 # All our example java source files
 EXAMPLE_JAVA_FILES = $(srcdir)/gnu/classpath/examples/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*/*.java
@@ -568,7 +542,6 @@ uninstall-am: uninstall-exampleDATA uninstall-info-am uninstall-local
        uninstall uninstall-am uninstall-exampleDATA uninstall-info-am \
        uninstall-local
 
-@FOUND_ECJ_FALSE@@FOUND_JAVAC_FALSE@error dunno how to setup the JCOMPILER and compile
 
 # Make sure all sources and icons are also installed so users can use them.
 # (Be careful to strip off the srcdir part of the path when installing.)
index 652ee53ccee929454989a43b4497501a540e00c6..155ad170bc48645c017ad6d7f7376bee7693cc54 100644 (file)
@@ -40,7 +40,6 @@ package gnu.classpath.examples.CORBA.SimpleCommunication.communication;
 
 import gnu.CORBA.OrbRestricted;
 
-import org.omg.CORBA.ORB;
 import org.omg.CORBA.StructMember;
 import org.omg.CORBA.TypeCode;
 import org.omg.CORBA.portable.InputStream;
index 2ac03a895edda92350114644e63e8b1d32687aed..83f422c5273828be108efc4709aa7443d4ab6d99 100644 (file)
@@ -39,7 +39,6 @@ package gnu.classpath.examples.CORBA.SimpleCommunication.communication;
 
 import gnu.CORBA.OrbRestricted;
 
-import org.omg.CORBA.ORB;
 import org.omg.CORBA.StructMember;
 import org.omg.CORBA.TCKind;
 import org.omg.CORBA.TypeCode;
index ccf792da87501593fa7874094f08bd533b09b1f6..eac1c9a2415f3ecf3a88cb0dc4703a1b6d1e9c73 100644 (file)
@@ -42,7 +42,6 @@ package gnu.classpath.examples.CORBA.SimpleCommunication.communication;
 import gnu.CORBA.OrbRestricted;
 
 import org.omg.CORBA.Any;
-import org.omg.CORBA.ORB;
 import org.omg.CORBA.StructMember;
 import org.omg.CORBA.TypeCode;
 import org.omg.CORBA.portable.InputStream;
index 6ad13a9bbc7b4ed6f6b301581673ee7265280b4a..adf4d25d583105b2b9ff71ebbafbefc955d53ccc 100644 (file)
@@ -41,7 +41,6 @@ package gnu.classpath.examples.CORBA.SimpleCommunication.communication;
 import gnu.CORBA.OrbRestricted;
 
 import org.omg.CORBA.Any;
-import org.omg.CORBA.ORB;
 import org.omg.CORBA.StructMember;
 import org.omg.CORBA.TCKind;
 import org.omg.CORBA.TypeCode;
index 9d3b7cebe411a843f34f4d446e9a75228a590f2c..aea8cd4f68ee0339f924c389d3a43142d6ac165d 100644 (file)
@@ -21,7 +21,6 @@ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 package gnu.classpath.examples.awt;
 
 import java.awt.*;
-import java.awt.event.*;
 import java.applet.*;
 
 
index 6d359180891ade291cc94104f0934ad3764d4e06..a0b51f0e23b4cf26b2ee64a80283205950faf9ed 100644 (file)
@@ -601,7 +601,7 @@ public class J2dBenchmark
   void runTestSet(Graphics2D g, Dimension size)
   {
     // Any user-specified options (ie set transforms, rendering hints)
-    prepareGraphics((Graphics2D) g);
+    prepareGraphics(g);
 
     if ((awtTests & J2DTEST_ARC) != 0)
       {
index ad8234555e548bf186335fe60021c858f2a91c90..381dca448709688536efa2cd04275cd726aa1b98 100644 (file)
@@ -22,34 +22,19 @@ package gnu.classpath.examples.management;
 
 import java.lang.management.ManagementFactory;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
+import java.util.Set;
 
-import javax.management.DynamicMBean;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
 
 public class TestBeans
 {
   public static void main(String[] args)
     throws Exception
   {
-    List beans = new ArrayList();
-    /* FIXME: When there's a server, this will be easier... :) */
-    beans.add(ManagementFactory.getOperatingSystemMXBean());
-    beans.add(ManagementFactory.getRuntimeMXBean());
-    beans.add(ManagementFactory.getThreadMXBean());
-    beans.add(ManagementFactory.getCompilationMXBean());
-    beans.add(ManagementFactory.getClassLoadingMXBean());
-    beans.add(ManagementFactory.getMemoryMXBean());
-    beans.addAll(ManagementFactory.getMemoryPoolMXBeans());
-    beans.addAll(ManagementFactory.getMemoryManagerMXBeans());
-    beans.addAll(ManagementFactory.getGarbageCollectorMXBeans());
-    Iterator it = beans.iterator();
-    while (it.hasNext())
-      {
-       DynamicMBean bean = (DynamicMBean) it.next();
-       if (bean != null)
-         System.out.println(bean.getMBeanInfo());
-      }
+    MBeanServer server = ManagementFactory.getPlatformMBeanServer();
+    Set<ObjectName> names = server.queryNames(null, null);
+    for (ObjectName name : names)
+      System.out.println(server.getMBeanInfo(name));
   }
 }
index 113a4f2582cdc1595ab1a301d6a975dd6f6b845a..b4e8d98268cee6149161a1d4e90e9eac1b0f86fd 100644 (file)
@@ -23,10 +23,18 @@ package gnu.classpath.examples.management;
 import java.lang.management.ClassLoadingMXBean;
 import java.lang.management.ManagementFactory;
 
+import static java.lang.management.ManagementFactory.CLASS_LOADING_MXBEAN_NAME;
+
+import javax.management.Attribute;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
 public class TestClassLoading
 {
   public static void main(String[] args)
+    throws Exception
   {
+    System.out.println("Testing locally...");
     ClassLoadingMXBean bean = ManagementFactory.getClassLoadingMXBean();
     System.out.println("Bean: " + bean);
     System.out.println("Loaded classes: " + bean.getLoadedClassCount());
@@ -37,5 +45,33 @@ public class TestClassLoading
     System.out.println("Changing verbose setting...");
     bean.setVerbose(!verbosity);
     System.out.println("Verbose class output: " + (bean.isVerbose() ? "yes" : "no"));
+    System.out.println("Testing via the server...");
+    MBeanServer server = ManagementFactory.getPlatformMBeanServer();
+    ObjectName classBean = new ObjectName(CLASS_LOADING_MXBEAN_NAME);
+    System.out.println("Bean: " + classBean);
+    System.out.println("Loaded classes: " + server.getAttribute(classBean, "LoadedClassCount"));
+    System.out.println("Unloaded classes: " + server.getAttribute(classBean,
+                                                                 "UnloadedClassCount"));
+    System.out.println("Total loaded classes: " + server.getAttribute(classBean,
+                                                                     "TotalLoadedClassCount"));
+    verbosity = (Boolean) server.getAttribute(classBean, "Verbose");
+    System.out.println("Verbose class output: " + (verbosity ? "yes" : "no"));
+    System.out.println("Changing verbose setting...");
+    server.setAttribute(classBean, new Attribute("Verbose", !verbosity));
+    System.out.println("Verbose class output: " + ((Boolean)
+                                                  server.getAttribute(classBean, "Verbose") ?
+                                                  "yes" : "no"));
+    System.out.println("Testing via the proxy...");
+    bean = ManagementFactory.newPlatformMXBeanProxy(server, CLASS_LOADING_MXBEAN_NAME,
+                                                   ClassLoadingMXBean.class);
+    System.out.println("Bean: " + bean);
+    System.out.println("Loaded classes: " + bean.getLoadedClassCount());
+    System.out.println("Unloaded classes: " + bean.getUnloadedClassCount());
+    System.out.println("Total loaded classes: " + bean.getTotalLoadedClassCount());
+    verbosity = bean.isVerbose();
+    System.out.println("Verbose class output: " + (verbosity ? "yes" : "no"));
+    System.out.println("Changing verbose setting...");
+    bean.setVerbose(!verbosity);
+    System.out.println("Verbose class output: " + (bean.isVerbose() ? "yes" : "no"));
   }
 }
index 2476ed76fe083fd2102317cf69bfb73abdb450b7..1836c3025d5610da424df69803190a150adad82e 100644 (file)
@@ -22,8 +22,6 @@ package gnu.classpath.examples.management;
 
 import java.lang.management.ManagementFactory;
 import java.lang.management.MemoryPoolMXBean;
-import java.lang.management.MemoryUsage;
-
 import java.util.Arrays;
 import java.util.Iterator;
 
diff --git a/libjava/classpath/examples/gnu/classpath/examples/sound/AudioPlayerSample.java b/libjava/classpath/examples/gnu/classpath/examples/sound/AudioPlayerSample.java
new file mode 100644 (file)
index 0000000..5c44c9a
--- /dev/null
@@ -0,0 +1,222 @@
+/* AudioPlayerSample.java -- Simple Java Audio Player
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+package gnu.classpath.examples.sound;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Map;
+
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.AudioInputStream;
+import javax.sound.sampled.AudioSystem;
+import javax.sound.sampled.DataLine;
+import javax.sound.sampled.LineUnavailableException;
+import javax.sound.sampled.SourceDataLine;
+import javax.sound.sampled.UnsupportedAudioFileException;
+
+/**
+ * A simple demo to show the use of the Java Sound API.
+ * It plays the given file (up to the end, so don't pass the 26 minutes long
+ * Pink Floyd's Echoes unless you really want!!).
+ * 
+ * See: http://jsresources.org/examples/SimpleAudioPlayer.java.html
+ * 
+ * @author Mario Torre <neugens@limasoftware.net>
+ */
+public class AudioPlayerSample
+{
+  private static final int EXTERNAL_BUFFER_SIZE = 128000;
+  
+  /**
+   * @param args
+   */
+  public static void main(String[] args)
+  {
+    if (args.length < 1)
+      {
+        System.out.println("Radio Classpath -: Usage: " +
+                           "AudioPlayerSample [file]");
+        return;
+      }
+    
+    String file = args[0];
+    
+    System.out.println("Welcome to Radio Classpath, only great music for you!");
+    System.out.println("Today's DJ Tap The WaterDroplet");
+    
+    // now create the AudioInputStream
+    AudioInputStream audioInputStream = null;
+    try
+      {
+        audioInputStream = AudioSystem.getAudioInputStream(new File(file));
+      }
+    catch (UnsupportedAudioFileException e)
+      {
+        // This happen when the subsystem is unable to parse the kind of
+        // audio file we are submitting
+        // See the README for supported audio file types under Classpath
+        // for the version you are using.
+        e.printStackTrace();
+        return;
+      }
+    catch (IOException e)
+      {
+        e.printStackTrace();
+        return;
+      }
+    
+    // get informations about the kind of file we are about to play
+    AudioFormat audioFormat = audioInputStream.getFormat();
+    
+    System.out.println("Playing file: " + file);
+    System.out.println("format: " + audioFormat.toString());
+    
+    System.out.print("Additional properties: ");
+    
+    // now, we try to get all the properties we have in this AudioFormat
+    // and display them
+    Map<String, Object> properties = audioFormat.properties();
+    if (properties.size() < 0)
+      {
+        System.out.println("none");
+      }
+    else
+      {
+        System.out.println("found #" + properties.size() + " properties");
+        for (String key : properties.keySet())
+          {
+            System.out.println(key + ": " + properties.get(key));
+          }
+      }
+    
+    // let's setup things for playing
+    // first, we require a Line. As we are doing playing, we will ask for a
+    // SourceDataLine
+    SourceDataLine line = null;
+    
+    // To get the source line, we first need to build an Info object
+    // this is done in one line:
+    DataLine.Info info = new DataLine.Info(SourceDataLine.class, audioFormat);
+    
+    System.out.println("searching line...");
+    
+    // usually, if a backend can parse a file type, it can also
+    // create a line to handle it, but that's not guaranteed
+    // so we need to take care and to handle a possible
+    // LineUnavailableException
+    try
+      {
+        line = (SourceDataLine) AudioSystem.getLine(info);
+      
+        System.out.println("line found, opening...");
+        
+        // once created, a line must be opened to let data flow
+        // though it.
+        line.open(audioFormat);
+      }
+    catch (LineUnavailableException e)
+      {
+        // in a real application you should signal that in a kindly way to
+        // your users
+        e.printStackTrace();
+        return;
+      }
+    catch (Exception e)
+      {
+        e.printStackTrace();
+        return;
+      }
+  
+    // an open line pass data to the backend only when it is in
+    // a state called "started" ("playing" or "play" in some other
+    // framework)
+    System.out.print("starting line... ");
+    
+    line.start();
+    System.out.println("done");
+    
+    // now we can start reading data from the AudioStream and writing
+    // data to the pipeline. The Java Sound API is rather low level
+    // so let you pass up to one byte of data at a time
+    // (with some constraints, refer to the API documentation to know more)
+    // We will do some buffering. You may want to check the frame size
+    // to allow a better buffering, also.
+    
+    System.out.println("now playing...");
+    
+    int nBytesRead = 0;
+    byte[] abData = new byte[EXTERNAL_BUFFER_SIZE];
+    while (nBytesRead != - 1)
+      {
+        try
+          {
+            nBytesRead = audioInputStream.read(abData, 0, abData.length);
+          }
+        catch (IOException e)
+          {
+            e.printStackTrace();
+          }
+        
+        if (nBytesRead >= 0)
+          {
+            // this method returns the number of bytes actuall written
+            // to the line. You may want to use this number to check
+            // for events, display the current position (give also a
+            // look to the API for other ways of doing that) etc..
+            line.write(abData, 0, nBytesRead);
+          }
+      }
+    
+    System.out.print("stream finished, draining line... ");
+    
+    // call this method to ensure that all the data in the internal buffer
+    // reach the audio backend, otherwise your application will
+    // cut the last frames of audio data (and users will not enjoy the last
+    // seconds of their precious music)
+    line.drain();
+
+    // Once done, we can close the line. Note that a line, once closed
+    // may not be reopened (depends on the backend, in some cases a "reopen",
+    // if allowed, really opens a new line, reallocating all the resources)
+    
+    System.out.println("line drained, now exiting");
+    line.close();
+    
+    System.out.println("We hope you enjoyed Radio Classpath!");
+  }
+
+}
index 28dce1c346239a7a3c956d05adac47165b550fba..b338e438027559648ca85fec48371f05de1b9d89 100644 (file)
@@ -44,7 +44,6 @@ import javax.swing.text.AbstractDocument;
 import javax.swing.text.AttributeSet;
 import javax.swing.text.BadLocationException;
 import javax.swing.text.DocumentFilter;
-import javax.swing.text.TextAction;
 
 /**
  * A demonstration of the <code>javax.swing.text.DocumentFilter</code> class.
index d4a97b3ef45f43cf45bf9c903a3f22c32e8e7698..9f8e3e7d58cab3673a4f107b90c4dfbf1144c8fa 100644 (file)
@@ -41,25 +41,18 @@ package gnu.classpath.examples.swing;
 import java.awt.BorderLayout;
 import java.awt.Component;
 import java.awt.Dimension;
-import java.awt.Rectangle;
-import java.text.DateFormat;
-import java.util.Date;
-
 import javax.swing.AbstractCellEditor;
 import javax.swing.BorderFactory;
 import javax.swing.DefaultCellEditor;
-import javax.swing.DefaultListCellRenderer;
 import javax.swing.Icon;
 import javax.swing.JComboBox;
 import javax.swing.JComponent;
 import javax.swing.JFrame;
-import javax.swing.JList;
 import javax.swing.JPanel;
 import javax.swing.JScrollBar;
 import javax.swing.JScrollPane;
 import javax.swing.JSlider;
 import javax.swing.JTable;
-import javax.swing.JTextField;
 import javax.swing.SwingUtilities;
 import javax.swing.border.Border;
 import javax.swing.plaf.metal.MetalIconFactory;
index 145a286297a49b5471983779cf2781e879e99f91..e2305475c33a232bd54ccf3ed238ebb5ba6af59c 100644 (file)
@@ -49,6 +49,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -138,7 +140,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -150,19 +151,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -194,15 +184,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -250,10 +237,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 47ead115acce980dd99e7c6f01737e749e814094..62098ab7655f4bcbf9bdd8217878ccbec443fcea 100644 (file)
@@ -49,6 +49,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -129,7 +131,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -141,19 +142,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -185,15 +175,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -241,10 +228,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 8695dfa45f9b6c184dc71fbc04359481d792be1c..8fbbc008d47b9f9e446e4e44ce692e60232e8dea 100644 (file)
@@ -49,6 +49,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -129,7 +131,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -141,19 +142,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -185,15 +175,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -241,10 +228,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index d8abb93dfb97820bb3b8a11113f7845475331204..6e771b065b4d7541520e20db3611bd87876136bc 100644 (file)
@@ -49,6 +49,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -129,7 +131,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -141,19 +142,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -185,15 +175,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -241,10 +228,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 38577db88bd88db61e317170657662d900dcb91f..afdb5b459ea11bde94d11115a2b7ed0c5ccd1d3e 100644 (file)
@@ -49,6 +49,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -129,7 +131,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -141,19 +142,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -185,15 +175,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -241,10 +228,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index f1e1dd6b42ca3605f5ef6d51143f6bc4783cc8bd..119db045f0f01cd2a7bdc8e5a4b586c6350b14ce 100644 (file)
@@ -45,7 +45,6 @@ import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 
-import org.omg.CORBA.TypeCode;
 import org.omg.CORBA.TypeCodePackage.BadKind;
 
 /**
@@ -128,9 +127,6 @@ public class BigDecimalHelper
    * 
    * @param out a stream to write into.
    * @param x a big decimal to write.
-   * @param digits a number of the decimal digits in the record
-   * being written. For the smaller
-   * numbers, zeroes are added to the left.
    *
    * @throws IOException if the stream write method throws one.
    * @throws BadKind if this BigDecimal has more digits than
index 8491154638d5cab487f5e4b878ace580d763bb98..e601399dffb849d3903d7f6a62f473340d22f80a 100644 (file)
@@ -38,7 +38,6 @@ exception statement from your version. */
 
 package gnu.CORBA;
 
-import java.util.Arrays;
 import java.util.Comparator;
 
 /**
index 866ec2cc945997b50eaa62455becfb6ab53234b8..f582c31bd188e8ecb500da19f851f768033b75f3 100644 (file)
@@ -195,9 +195,9 @@ public abstract class AbstractCdrInput
    * Set the Big Endian or Little Endian encoding. The stream reads Big Endian
    * by default.
    * 
-   * @param use_little_endian if true, the stream expect the multi-byte data in
-   * the form "less significant byte first" (Little Endian). This is the
-   * opposite to the java standard (Big Endian).
+   * @param use_big_endian if true, the stream expect the multi-byte data in
+   * the form "most significant byte first" (Big Endian). This is the
+   * java standard.
    */
   public void setBigEndian(boolean use_big_endian)
   {
@@ -208,7 +208,7 @@ public abstract class AbstractCdrInput
   /**
    * Get the used encoding.
    * 
-   * @param true for Big Endian, false for Little Endian.
+   * @return true for Big Endian, false for Little Endian.
    */
   public boolean isBigEndian()
   {
@@ -654,7 +654,7 @@ public abstract class AbstractCdrInput
 
         byte[] r = new byte[l];
         int n = 0;
-        reading: while (n < r.length)
+        while (n < r.length)
           {
             n += read(r, n, r.length - n);
           }
index 7b4d5ec58ff73d598051bee493d3d2c29cf3e947..7f3e3ab0daf2f540c726d5a367162cd853c562d6 100644 (file)
@@ -291,7 +291,7 @@ public abstract class AbstractCdrOutput
 
   /**
    * Write a single byte.
-   * @param a byte to write (low 8 bits are written).
+   * @param n byte to write (low 8 bits are written).
    */
   public void write(int n)
   {
@@ -497,7 +497,7 @@ public abstract class AbstractCdrOutput
    * Writes the lower bytes of the passed array members.
    *
    * @param chars an array
-   * @param offsets offset
+   * @param offset offset
    * @param length length
    */
   public void write_char_array(char[] chars, int offset, int length)
index 0c18dafb1951fd2a9387e5508050f687a6add865..273ecea50241b62830ff4ef3dc43d4622a2a9dad 100644 (file)
@@ -104,7 +104,7 @@ public class HeadlessInput
   /**
    * Create an instance, reading from the given buffer.
    * 
-   * @param a_stram a stream from where the data will be read.
+   * @param a_stream a stream from where the data will be read.
    * @param inheritSettings a stream from that endian and other settings are
    * inherited.
    */
@@ -151,7 +151,7 @@ public class HeadlessInput
     else
       {
         subsequentCalls = true;
-        Serializable value = (Serializable) Vio.readValue(this, NONE, null,
+        Serializable value = Vio.readValue(this, NONE, null,
           null, repository_id, null, null);
         return value;
       }
@@ -167,7 +167,7 @@ public class HeadlessInput
     else
       {
         subsequentCalls = true;
-        value = (Serializable) Vio.readValue(this, NONE, value, null, null,
+        value = Vio.readValue(this, NONE, value, null, null,
           null, null);
         return value;
       }
@@ -186,7 +186,7 @@ public class HeadlessInput
           {
             subsequentCalls = true;
             Serializable value = (Serializable) Vio.instantiateAnyWay(clz);
-            value = (Serializable) Vio.readValue(this, NONE, value, null, null,
+            value = Vio.readValue(this, NONE, value, null, null,
               null, null);
             return value;
           }
index 02cfa08ae8e0dfa8739117cfe8c772e5de50de15..a439b658b440692f0aa65176f3979cf4af20c233 100644 (file)
@@ -38,7 +38,6 @@ exception statement from your version. */
 
 package gnu.CORBA.CDR;
 
-import java.io.DataInput;
 import java.io.EOFException;
 import java.io.FilterInputStream;
 import java.io.IOException;
index 28f1c5672f6dee371be6a60df78610779a0c6c27..67a69b8745851335aeb4d80afe7b3efc0809dac4 100644 (file)
@@ -637,7 +637,7 @@ public abstract class Vio
               r = new byte[chunk_size + 256];
 
             n = 0;
-            reading: while (n < chunk_size)
+            while (n < chunk_size)
               n += input.read(r, n, chunk_size - n);
             output.write(r, 0, n);
           }
index 774c92816aeda14082f5a6f645431cf0f071b64a..929dc72ec8a43c5199a13b00f13fb6bc12ae6e82 100644 (file)
@@ -167,7 +167,7 @@ public class gnuRuntime
    * @param a_id a repository Id, if only one Id was specified in the stream.
    * @param a_ids a repository Ids, if the multiple Ids were specified in te
    * stream.
-   * @param a_codabase a codebase, if it was specified in the stream.
+   * @param a_codebase a codebase, if it was specified in the stream.
    */
   public gnuRuntime(String a_codebase, Object a_target)
   {
index fc1e513efece7294bc81ad47185303a87e3fb574..51ad836231c15e4e9cf4584e080d7d7e46e6c20d 100644 (file)
@@ -44,10 +44,6 @@ import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.ArrayList;
 
-import org.omg.CORBA.LocalObject;
-import org.omg.CORBA.portable.Delegate;
-import org.omg.CORBA.portable.ObjectImpl;
-
 /**
  * This class provides support for the direct method invocations without
  * involving the network in the case when both ORBs run on the same java
index 53ef2dd17d98c18e2aedd15a91377ee4e1f1bc5b..655dbe38844707cb1728b79c111147a492e4f672 100644 (file)
@@ -109,7 +109,7 @@ public class Connected_objects
   /**
    * Get the record of the stored object.
    *
-   * @param object the stored object
+   * @param stored_object the stored object
    *
    * @return the record about the stored object, null if
    * this object is not stored here.
@@ -141,7 +141,7 @@ public class Connected_objects
    * generated automatically.
    *
    * @param object the object to add.
-   * @param port, on that the ORB will be listening to the remote
+   * @param port on that the ORB will be listening to the remote
    * invocations.
    *
    * @return the newly created object record.
index c96cbedc73bc22fa4fc0d0e2c253c6092532bfce..63fe117f4de805b946209464d4488a02c6980079 100644 (file)
@@ -38,8 +38,6 @@ exception statement from your version. */
 
 package gnu.CORBA.DynAn;
 
-import gnu.CORBA.TypeKindNamer;
-
 import org.omg.CORBA.Any;
 import org.omg.CORBA.CompletionStatus;
 import org.omg.CORBA.ORB;
index 825cd0a563890f86e0ceb26adf16733d8c66196e..dc056adff9bc352dff3f7d0121a5e2220c3597c4 100644 (file)
@@ -46,7 +46,6 @@ import org.omg.CORBA.BAD_PARAM;
 import org.omg.CORBA.ORB;
 import org.omg.CORBA.TCKind;
 import org.omg.CORBA.TypeCode;
-import org.omg.CORBA.TypeCodePackage.BadKind;
 import org.omg.CORBA.portable.Streamable;
 import org.omg.DynamicAny.DynAny;
 import org.omg.DynamicAny.DynAnyFactoryPackage.InconsistentTypeCode;
index ef5aed645129b3e6d334a0c73ed84371baa83349..3cd8efe18f4cfc05bdf23af6fd72e0ad885861c1 100644 (file)
@@ -271,7 +271,6 @@ public class gnuDynUnion
 
 
         // Get the discriminator variant.
-        Variants:
         for (int i = 0; i < final_type.member_count(); i++)
           {
             if (final_type.member_label(i).equal(da))
@@ -392,7 +391,6 @@ public class gnuDynUnion
 
 
         // Get the discriminator variant.
-        Variants:
         for (int i = 0; i < final_type.member_count(); i++)
           {
             if (final_type.member_label(i).equal(da))
index 8fc8697a4f3413b51cec55b26e79eb9f01880a9e..6f84da8e5ea9782abeb73cbc67ab4ef7624bcd87 100644 (file)
@@ -39,10 +39,8 @@ exception statement from your version. */
 package gnu.CORBA;
 
 import org.omg.CORBA.BAD_OPERATION;
-import org.omg.CORBA.NO_IMPLEMENT;
 import org.omg.CORBA.TypeCode;
 import org.omg.CORBA.UNKNOWN;
-import org.omg.CORBA.UnknownUserException;
 import org.omg.CORBA.portable.InputStream;
 import org.omg.CORBA.portable.OutputStream;
 import org.omg.CORBA.portable.Streamable;
index 9f4de0d87d9df409c66954d4ba64d8dcdeab3a31..40f373721c70723b420b991a98a184b67f1f7a9e 100644 (file)
@@ -55,16 +55,16 @@ public abstract class CancelHeader
   public int request_id;
 
   /**
-   * Write the header.
+   * Read the header.
    *
-   * @param out a stream to write to.
+   * @param input a stream to read from.
    */
   public abstract void read(InputStream input);
 
   /**
    * Write the header.
    *
-   * @param out a stream to write to.
+   * @param output a stream to write to.
    */
   public abstract void write(OutputStream output);
 }
index ab565db3797ee715a8f9668b28d53035be5b2063..81412e0298e369296b7ad7b5f8a99715f8ac5611 100644 (file)
@@ -41,8 +41,6 @@ package gnu.CORBA.GIOP;
 import gnu.CORBA.CDR.AbstractCdrInput;
 import gnu.CORBA.CDR.AbstractCdrOutput;
 import gnu.CORBA.IOR;
-import gnu.CORBA.IOR.CodeSets_profile;
-
 import java.io.IOException;
 
 /**
index 0252838581d9ff66d639a0bd23caed2a1aa14100..cac2405fc778302c4d4925d1617c2b99a9f3684a 100644 (file)
@@ -398,7 +398,7 @@ public class MessageHeader
         if (service != null)
           service.setSoTimeout(to_read);
 
-        reading: while (n < r.length)
+        while (n < r.length)
           {
             n += source.read(r, n, r.length - n);
           }
@@ -426,7 +426,7 @@ public class MessageHeader
                 int dn;
 
                 n = 0;
-                reading: while (n < h2.message_size)
+                while (n < h2.message_size)
                   {
                     dn = source.read(r, 0, h2.message_size - n);
 
index 6e3650c4ba96157edfc4c61ef72f46fb2dec2f64..1158492235c1fbb04bcde3a555c322b7b2fc3ade 100644 (file)
@@ -51,9 +51,9 @@ public class CancelHeader
   extends gnu.CORBA.GIOP.CancelHeader
 {
   /**
-   * Write the header.
+   * Read the header.
    *
-   * @param out a stream to write to.
+   * @param input a stream to read from.
    */
   public void read(InputStream input)
   {
@@ -63,7 +63,7 @@ public class CancelHeader
   /**
    * Write the header.
    *
-   * @param out a stream to write to.
+   * @param output a stream to write to.
    */
   public void write(OutputStream output)
   {
index 917e19832896c648cedf26294162d1122a207f1e..5e13aecabd3f6e6833d8062a8f0a3c9459c57984 100644 (file)
@@ -385,7 +385,7 @@ public class IOR
   /**
    * Parse the provided stringifed reference.
    *
-   * @param stringified_reference, in the form of IOR:nnnnnn.....
+   * @param stringified_reference in the form of IOR:nnnnnn.....
    *
    * @return the parsed IOR
    *
index 2b77de58e0e862b869c519b1f960b106a2100177..d8dcabf120fb19da25f0568f3e4c487045348665 100644 (file)
@@ -42,7 +42,6 @@ import org.omg.CORBA.OBJ_ADAPTER;
 import org.omg.CORBA.OMGVMCID;
 import org.omg.PortableInterceptor.IORInfo;
 import org.omg.PortableInterceptor.IORInterceptor;
-import org.omg.PortableInterceptor.IORInterceptorOperations;
 import org.omg.PortableInterceptor.IORInterceptor_3_0Operations;
 import org.omg.PortableInterceptor.ObjectReferenceTemplate;
 
index 4bb895bb376333d2693743fcccfebd8e9a510259..e0ce16a149678de80e31c6b59f14dc36b1d9088f 100644 (file)
@@ -142,7 +142,7 @@ public class Registrator extends LocalObject implements ORBInitInfo
    * Create the interceptor collection from the given properties, using the
    * agreed naming convention.
    *
-   * @param orb the ORB being initialised.
+   * @param an_orb the ORB being initialised.
    * @param props the cumulated set of properties where the orb initializer
    * pattern is searched.
    * @param an_args the argument string array, passed to ORB.init.
index 8eb43aa7d69c06769551d3c76605f91dd2102f24..a2c5a0469be44a560d92ffecd4c58e77467a14d0 100644 (file)
@@ -58,8 +58,6 @@ import org.omg.PortableInterceptor.ForwardRequest;
 
 import java.io.IOException;
 
-import java.net.Socket;
-
 /**
  * The Classpath implementation of the {@link Delegate} functionality in the
  * case, when the object was constructed from an IOR object. The IOR can be
@@ -87,8 +85,6 @@ public class IorDelegate extends SimpleDelegate
    * @param operation the method name
    * @param parameters the method parameters
    * @param returns the return value holder
-   * @param exceptions the exceptions that can be thrown by the method
-   * @param ctx_list the context list (null allowed)
    *
    * @return the created request.
    */
@@ -175,7 +171,7 @@ public class IorDelegate extends SimpleDelegate
     throws ApplicationException, RemarshalException
   {
     StreamBasedRequest request = (StreamBasedRequest) output;
-    Forwardings: while (true)
+    while (true)
       {
         try
           {
index aa922b96a54ef6021f3e64a0338dd20362c30f84..205ad8bec84088ae31f38eec68ab13b3af763484 100644 (file)
@@ -62,7 +62,6 @@ import java.io.UnsupportedEncodingException;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLDecoder;
-import java.util.ArrayList;
 import java.util.StringTokenizer;
 
 /**
index d717b9d40118ae5352f92a98b52d975dd754444f..7109fdb93e1adcb313a35f87e5057f5fabdc7275 100644 (file)
@@ -63,7 +63,7 @@ public class NameTransformer
    * representation. See {@link #toString(NameComponent)} for the
    * description of this format.
    *
-   * @param name the string form of the name.
+   * @param a_name the string form of the name.
    *
    * @return the array form of the name.
    *
index 5937e76b31ecbd76381746aa38c572e7dbc53e2b..939d6923326acd955a5bbc65cf78ec31de770e97 100644 (file)
@@ -111,7 +111,7 @@ public class ObjectCreator
    * mapped to the local java class. The omg.org domain must be mapped into the
    * object in either org/omg or gnu/CORBA namespace.
    * 
-   * @param IDL name
+   * @param idl name
    * @return instantiated object instance or null if no such available.
    */
   public static java.lang.Object createObject(String idl, String suffix)
index a0f9993c1a003e0d18dee70ab250516064213f6d..572acbc11316afdbdcd4d5c4cebb81a875411b19 100644 (file)
@@ -185,7 +185,7 @@ public class OrbFocused
             p = (portServer) portServers.get(i);
             if (p.s_port == port)
               {
-                return (portServer) p;
+                return p;
               }
           }
         // The server is not yet instantiated. Instantiate.
index bfb5e3d86c19f118a25b35ae19ae175946236de9..8fddc66270cdff0ebbb51ad739f185ffb4f489bd 100644 (file)
@@ -855,7 +855,7 @@ public class OrbFunctional extends OrbRestricted
    * internet address and port. With this information, the object can be found
    * by another ORB, possibly located on remote computer.
    *
-   * @param the CORBA object
+   * @param forObject CORBA object
    * @return the object IOR representation.
    *
    * @throws BAD_PARAM if the object has not been previously connected to this
@@ -1040,7 +1040,7 @@ public class OrbFunctional extends OrbRestricted
    * computer, possibly running a different (not necessary java) CORBA
    * implementation.
    * 
-   * @param ior the object IOR representation string.
+   * @param an_ior the object IOR representation string.
    * 
    * @return the found CORBA object.
    * @see object_to_string(org.omg.CORBA.Object)
index c34584995a6414daec72132365b4daf2737d0cb7..4ae50b1a3a19d821854c5554e794ec16ce03f056 100644 (file)
@@ -65,7 +65,6 @@ import org.omg.CORBA.UnionMember;
 import org.omg.CORBA.portable.OutputStream;
 import org.omg.CORBA.portable.ValueFactory;
 import org.omg.PortableInterceptor.ClientRequestInterceptorOperations;
-import org.omg.PortableInterceptor.IORInterceptorOperations;
 import org.omg.PortableInterceptor.IORInterceptor_3_0Operations;
 import org.omg.PortableInterceptor.ServerRequestInterceptorOperations;
 
index 70e787af15137e41f93ea1b27c18c19eeabf1066..f8820bff83bdf4c59eb244007d4bde71bfe87907 100644 (file)
@@ -163,7 +163,7 @@ public class AOM
    * Get the record of the stored object. If the object is mapped several times
    * under the different keys, one of the mappings is used.
    * 
-   * @param object the stored object
+   * @param stored_object the stored object
    * 
    * @return the record about the stored object, null if this object is not
    * stored here.
index 0dbca7cfbdef93ca661002f45a74e47dbeb085a5..82e520904f144a14dc69881431ee7e36a15bd608 100644 (file)
@@ -421,7 +421,7 @@ public class gnuPOA
    * or adding the returned instance to any possible table.
    *
    * @param child_name the name of the poa being created.
-   * @param manager the poa manager (never null).
+   * @param a_manager the poa manager (never null).
    * @param policies the array of policies.
    * @param an_orb the ORB for this POA.
    *
@@ -1239,7 +1239,7 @@ public class gnuPOA
    * @param x the aom entry, where the object is replaced by value, returned by
    * servant activator (if not null).
    * 
-   * @param key the object key.
+   * @param object_key the object key.
    * 
    * @param a_servant the servant that was passed as a parameter in the
    * activation method.
@@ -1317,7 +1317,7 @@ public class gnuPOA
   /**
   * Set the adapter activator for this POA.
   *
-  * @param the activator being set.
+  * @param an_activator the activator being set.
   */
   public void the_activator(AdapterActivator an_activator)
   {
index 7710306b74891f82bbd359ba0785cb5a376c20b0..28f4ecd281f06d0585ddb068de9e8c2688982873 100644 (file)
@@ -41,7 +41,6 @@ package gnu.CORBA.Poa;
 import org.omg.CORBA.BAD_INV_ORDER;
 import org.omg.CORBA.LocalObject;
 import org.omg.PortableInterceptor.NON_EXISTENT;
-import org.omg.PortableInterceptor.ObjectReferenceTemplate;
 import org.omg.PortableServer.POAManager;
 import org.omg.PortableServer.POAManagerPackage.AdapterInactive;
 import org.omg.PortableServer.POAManagerPackage.State;
@@ -89,9 +88,9 @@ public class gnuPOAManager
    * Turns the associated POAs into active state, allowing them to receive
    * and process requests.
    *
-   * @throws if the POAs are in the inactive state. If once inactivated,
-   * the POA cannot be activated again. This method can only be called
-   * to leave the holding or discarding state.
+   * @throws AdapterInactive if the POAs are in the inactive state.
+   * If once inactivated, the POA cannot be activated again. This
+   * method can only be called to leave the holding or discarding state.
    */
   public void activate()
                 throws AdapterInactive
index 77b0ff46792afbda5bd14aed1d657080552fc1bf..115f4f850fb2948b226e413fe411223a249c7d4f 100644 (file)
@@ -785,7 +785,7 @@ public class gnuServantObject extends ObjectImpl
    * assumed equal if they are connected to the same orb and poa under the same
    * Id, regardless of they delegates.
    *
-   * @param another instance to check.
+   * @param other instance to check.
    * @return
    */
   public boolean _is_equivalent(org.omg.CORBA.Object other)
index a6f7aa52b8d470f66ba67ce0b95326b5f26ca4b4..c55405cedf6707705e46ded0b236e6f4049fd481 100644 (file)
@@ -41,7 +41,6 @@ package gnu.CORBA;
 import gnu.CORBA.CDR.BufferedCdrOutput;
 
 import org.omg.CORBA.ARG_IN;
-import org.omg.CORBA.ARG_INOUT;
 import org.omg.CORBA.ARG_OUT;
 import org.omg.CORBA.Any;
 import org.omg.CORBA.Bounds;
index 68584c3891cb41283441114094d0a6f3f4c5886e..592eb2c2cac19ce8498f554e39d971df838e98db 100644 (file)
@@ -38,8 +38,6 @@ exception statement from your version. */
 
 package gnu.CORBA;
 
-import java.util.ArrayList;
-
 import org.omg.CORBA.Bounds;
 import org.omg.CORBA.ContextList;
 
index 5f0c0c9f50dc02d33bb47c8c1893194519acae8a..06ddf8d717ad4617b45b3a8ac3f12fa22fcf8299 100644 (file)
@@ -38,8 +38,6 @@ exception statement from your version. */
 
 package gnu.CORBA;
 
-import java.util.ArrayList;
-
 import org.omg.CORBA.Bounds;
 import org.omg.CORBA.ExceptionList;
 import org.omg.CORBA.TypeCode;
index 0b3338d3437292700dc5c0e552d70bd933aaf7d6..3ec2a797f0f1610120114156124182445e91551c 100644 (file)
@@ -83,12 +83,10 @@ import org.omg.PortableInterceptor.ClientRequestInterceptorOperations;
 import org.omg.PortableInterceptor.ForwardRequest;
 import org.omg.PortableInterceptor.InvalidSlot;
 
-import java.io.EOFException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 
-import java.net.BindException;
 import java.net.Socket;
 
 import java.util.ArrayList;
index c5fae63bd2888422cabf22911ccb5277462ac710..af7f46ecfce5f92a9887fa685fa9125fd3a44bc3 100644 (file)
@@ -109,7 +109,7 @@ public class FixedTypeCode
   /**
    * Get the number of digits in thid BigDecimal
    *
-   * @param x a BigDecimal to check.
+   * @param number a BigDecimal to check.
    */
   public static int countDigits(BigDecimal number)
   {
index 0e6ac375e50b88577f58d29506d045c560d2080f..8ec2f5474d0fde9020d04a73bd49ee8ef77d1445 100644 (file)
@@ -63,7 +63,7 @@ public class RecursiveTypeCode
    * Create a typecode that serves as a placeholder for
    * the typecode with the given id.
    *
-   * @param id the Id of the type for that this type serves as a
+   * @param an_id the Id of the type for that this type serves as a
    * placeholder.
    */
   public RecursiveTypeCode(String an_id)
index daf996c23ca9b2a57b568ab518200f5a2102cada..6c9728e0cbd568fd8996eb45bec1ad022fc6a47a 100644 (file)
@@ -48,6 +48,7 @@ import java.security.PrivilegedActionException;
 import java.util.Collections;
 import java.util.Enumeration;
 import java.util.Iterator;
+import java.util.List;
 import java.util.NoSuchElementException;
 import java.util.ServiceConfigurationError;
 import java.util.logging.Level;
@@ -222,8 +223,8 @@ public final class ServiceFactory
    * @throws IllegalArgumentException if <code>spi</code> is
    * <code>null</code>.
    */
-  public static Iterator lookupProviders(Class spi,
-                                         ClassLoader loader)
+  public static <P> Iterator<P> lookupProviders(Class<P> spi,
+                                               ClassLoader loader)
   {
     return lookupProviders(spi, loader, false);
   }
@@ -266,12 +267,12 @@ public final class ServiceFactory
    * @throws IllegalArgumentException if <code>spi</code> is
    * <code>null</code>.
    */
-  public static Iterator lookupProviders(Class spi,
-                                         ClassLoader loader,
-                                        boolean error)
+  public static <P> Iterator<P> lookupProviders(Class<P> spi,
+                                               ClassLoader loader,
+                                               boolean error)
   {
     String resourceName;
-    Enumeration urls;
+    Enumeration<URL> urls;
 
     if (spi == null)
       throw new IllegalArgumentException();
@@ -295,11 +296,14 @@ public final class ServiceFactory
          throw new ServiceConfigurationError("Failed to access + " +
                                              resourceName, ioex);
        else
-         return Collections.EMPTY_LIST.iterator();
+         {
+           List<P> empty = Collections.emptyList();
+           return empty.iterator();
+         }
       }
 
-    return new ServiceIterator(spi, urls, loader, error,
-                               AccessController.getContext());
+    return new ServiceIterator<P>(spi, urls, loader, error,
+                                 AccessController.getContext());
   }
 
 
@@ -318,7 +322,7 @@ public final class ServiceFactory
    *
    * @see #lookupProviders(Class, ClassLoader)
    */
-  public static Iterator lookupProviders(Class spi)
+  public static <P> Iterator<P> lookupProviders(Class<P> spi)
   {
     ClassLoader ctxLoader;
 
@@ -335,14 +339,14 @@ public final class ServiceFactory
    *
    * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
    */
-  private static final class ServiceIterator
-    implements Iterator
+  private static final class ServiceIterator<P>
+    implements Iterator<P>
   {
     /**
      * The service provider interface (usually an interface, sometimes
      * an abstract class) which the services must implement.
      */
-    private final Class spi;
+    private final Class<P> spi;
 
 
     /**
@@ -350,7 +354,7 @@ public final class ServiceFactory
      * <code>META-INF/services/&lt;org.foo.SomeService&gt;</code>,
      * as returned by {@link ClassLoader#getResources(String)}.
      */
-    private final Enumeration urls;
+    private final Enumeration<URL> urls;
 
 
     /**
@@ -389,7 +393,7 @@ public final class ServiceFactory
      * {@link #next()}, or <code>null</code> if the iterator has
      * already returned all service providers.
      */
-    private Object nextProvider;
+    private P nextProvider;
 
     /**
      * True if a {@link ServiceConfigurationError} should be thrown
@@ -420,7 +424,7 @@ public final class ServiceFactory
      * @param securityContext the security context to use when loading
      * and initializing service providers.
      */
-    ServiceIterator(Class spi, Enumeration urls, ClassLoader loader,
+    ServiceIterator(Class<P> spi, Enumeration<URL> urls, ClassLoader loader,
                    boolean error, AccessControlContext securityContext)
     {
       this.spi = spi;
@@ -436,9 +440,9 @@ public final class ServiceFactory
      * @throws NoSuchElementException if {@link #hasNext} returns
      * <code>false</code>.
      */
-    public Object next()
+    public P next()
     {
-      Object result;
+      P result;
 
       if (!hasNext())
         throw new NoSuchElementException();
@@ -461,7 +465,7 @@ public final class ServiceFactory
     }
 
 
-    private Object loadNextServiceProvider()
+    private P loadNextServiceProvider()
     {
       String line;
       
@@ -523,7 +527,7 @@ public final class ServiceFactory
                * active when calling lookupProviders.
                */
               return AccessController.doPrivileged(
-                new ServiceProviderLoadingAction(spi, line, loader),
+                new ServiceProviderLoadingAction<P>(spi, line, loader),
                 securityContext);
             }
           catch (Exception ex)
@@ -577,7 +581,7 @@ public final class ServiceFactory
         if (!urls.hasMoreElements())
           return;
 
-        currentURL = (URL) urls.nextElement();
+        currentURL = urls.nextElement();
         try
           {
             reader = new BufferedReader(new InputStreamReader(
index 9f9dc51cb682320e75667cac09bae976490a24a0..51f5a2fa91114dc3e6fc93769f039f92f61e1690 100644 (file)
@@ -54,15 +54,15 @@ import java.security.PrivilegedExceptionAction;
  *
  * @author <a href="mailto:brawer@dandelis.ch">Sascha Brawer</a>
  */
-final class ServiceProviderLoadingAction
-  implements PrivilegedExceptionAction
+final class ServiceProviderLoadingAction<P>
+  implements PrivilegedExceptionAction<P>
 {
   /**
    * The interface to which the loaded service provider implementation
    * must conform.  Usually, this is a Java interface type, but it
    * might also be an abstract class or even a concrete class.
    */
-  private final Class spi;
+  private final Class<P> spi;
 
 
   /**
@@ -97,7 +97,7 @@ final class ServiceProviderLoadingAction
    * <code>providerName</code> or <code>loader</code> is
    * <code>null</code>.
    */
-  ServiceProviderLoadingAction(Class spi, String providerName,
+  ServiceProviderLoadingAction(Class<P> spi, String providerName,
                                ClassLoader loader)
   {
     if (spi == null || providerName == null || loader == null)
@@ -130,13 +130,13 @@ final class ServiceProviderLoadingAction
    * no-argument constructor; or if there some other problem with
    * creating a new instance of the service provider.
    */
-  public Object run()
+  public P run()
     throws Exception
   {
-    Class loadedClass;
-    Object serviceProvider;
+    Class<P> loadedClass;
+    P serviceProvider;
 
-    loadedClass = loader.loadClass(providerName);
+    loadedClass = (Class<P>) loader.loadClass(providerName);
     serviceProvider = loadedClass.newInstance();
 
     // Ensure that the loaded provider is actually implementing
index 1303c09be76c89903cd6d21c2a00f8ab3dc61454..1bb339969eca35da5c9fdba174f1550b6694f0b5 100644 (file)
@@ -117,9 +117,9 @@ public class ExceptionEvent
       return _exception.getClass();
     else if (type == EVENT_EXCEPTION_CAUGHT)
       if (_catchLocation.getMethod() != null)
-        return new Boolean(true);
+        return Boolean.TRUE;
       else
-        return new Boolean(false);
+        return Boolean.FALSE;
 
     return null;
   }
index d18f6975ebf675520534df13de2572ee415ab078..fd412716c84760992e2a6ee28322ca507cc306a1 100644 (file)
@@ -39,7 +39,6 @@ exception statement from your version. */
 
 package gnu.classpath.jdwp.event.filters;
 
-import gnu.classpath.jdwp.JdwpConstants;
 import gnu.classpath.jdwp.event.Event;
 import gnu.classpath.jdwp.exception.InvalidThreadException;
 import gnu.classpath.jdwp.id.ThreadId;
index 49b3f0d1b3f8afb1fa5649ac21419b9d212d03a3..1a70b9c091eea4649c93f82526caca9230699f3c 100644 (file)
@@ -56,7 +56,6 @@ import gnu.classpath.jdwp.value.ValueFactory;
 import java.io.DataOutputStream;
 import java.io.IOException;
 import java.lang.reflect.Field;
-import java.lang.reflect.Method;
 import java.nio.ByteBuffer;
 
 /**
index c9b329869d769f3159035d4c77b2693f5f424cb0..cde3fc24cac82b1016233c3936eb18434fd247d4 100644 (file)
@@ -46,7 +46,6 @@ import gnu.classpath.jdwp.exception.InvalidFieldException;
 import gnu.classpath.jdwp.exception.JdwpException;
 import gnu.classpath.jdwp.exception.JdwpInternalErrorException;
 import gnu.classpath.jdwp.exception.NotImplementedException;
-import gnu.classpath.jdwp.id.ClassReferenceTypeId;
 import gnu.classpath.jdwp.id.ObjectId;
 import gnu.classpath.jdwp.id.ReferenceTypeId;
 import gnu.classpath.jdwp.util.JdwpString;
diff --git a/libjava/classpath/gnu/classpath/toolkit/DefaultDaemonThreadFactory.java b/libjava/classpath/gnu/classpath/toolkit/DefaultDaemonThreadFactory.java
new file mode 100644 (file)
index 0000000..cb56c76
--- /dev/null
@@ -0,0 +1,59 @@
+/* DefaultDaemonThreadFactory.java -- Factory for Deamon Threads.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.classpath.toolkit;
+
+import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadFactory;;
+
+/**
+ * Create a new thread using all the default settings as returned by
+ * <code>Executors.defaultThreadFactory()</code> plus calling
+ * <code>thread.setDaemon(true)</code> on the newly created thread.
+ * 
+ * @author Mario Torre <neugens@limasoftware.net>
+ */
+public class DefaultDaemonThreadFactory implements ThreadFactory
+{
+  public Thread newThread(Runnable r)
+  {
+    Thread thread = Executors.defaultThreadFactory().newThread(r);
+    thread.setDaemon(true);
+    return thread;
+  }
+}
index 1b68703697fadf7215a91c322051d5abdefee5d1..dcebc67fa2574c8a54c21173063d1ceddee6c8d7 100644 (file)
@@ -126,7 +126,7 @@ public class AWTUtilities
        *
        * @return the next visible <code>Component</code> in the List
        *
-       * @throws if there is no next element
+       * @throws NoSuchElementException if there is no next element
        */
       public Object next()
       {
index d78fbab4e1eedd5e415e524278483a40ecbf9036..7bbc70ccb1f89ecd3d776be65f1d123c58459dc6 100644 (file)
@@ -51,7 +51,6 @@ import java.awt.GraphicsDevice;
 import java.awt.GraphicsEnvironment;
 import java.awt.HeadlessException;
 import java.awt.Toolkit;
-import java.awt.font.TextAttribute;
 import java.awt.peer.DesktopPeer;
 import java.awt.peer.RobotPeer;
 import java.io.IOException;
index 99f90c9f85db3b0db499fb50f357dc1e9757948f..7c04e7daf7717c7eb05fa212102c9d784b46f6ab 100644 (file)
@@ -43,7 +43,6 @@ import gnu.java.security.action.SetAccessibleAction;
 
 import java.awt.Component;
 import java.awt.Frame;
-import java.awt.Toolkit;
 import java.lang.reflect.Field;
 import java.security.AccessController;
 
index 2f73dce77b0f65e10c59c9611ee59ac16d22d9fd..22f331e15d1f359c438fe24bfb160b09397b9f9c 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.java.awt.font;
 
+import gnu.java.awt.java2d.ShapeWrapper;
+
 import java.awt.Font;
 import java.awt.font.FontRenderContext;
 import java.awt.font.GlyphMetrics;
@@ -82,6 +84,10 @@ public class GNUGlyphVector
   private AffineTransform[] transforms;
   private int layoutFlags;
 
+  /**
+   * The cached non-transformed outline of this glyph vector.
+   */
+  private Shape cleanOutline;
 
   /**
    * Constructs a new GNUGlyphVector.
@@ -257,7 +263,6 @@ public class GNUGlyphVector
    */
   public Shape getOutline()
   {
-    validate();
     return getOutline(0.0f, 0.0f);
   }
 
@@ -273,16 +278,33 @@ public class GNUGlyphVector
   {
     validate();
 
-    GeneralPath outline = new GeneralPath();
-    int len = glyphs.length;
-    for (int i = 0; i < len; i++)
+    Shape outline;
+    if (cleanOutline == null)
       {
-        GeneralPath p = new GeneralPath(getGlyphOutline(i));
-        outline.append(p, false);
+        GeneralPath path = new GeneralPath();
+        int len = glyphs.length;
+        for (int i = 0; i < len; i++)
+          {
+            GeneralPath p = new GeneralPath(getGlyphOutline(i));
+            path.append(p, false);
+          }
+        // Protect the cached instance from beeing modified by application
+        // code.
+        cleanOutline = new ShapeWrapper(path);
+        outline = cleanOutline;
+      }
+    else
+      {
+        outline = cleanOutline;
+      }
+    if (x != 0 || y != 0)
+      {
+        GeneralPath path = new GeneralPath(outline);
+        AffineTransform t = new AffineTransform();
+        t.translate(x, y);
+        path.transform(t);
+        outline = path;
       }
-    AffineTransform t = new AffineTransform();
-    t.translate(x, y);
-    outline.transform(t);
     return outline;
   }
 
diff --git a/libjava/classpath/gnu/java/awt/font/OpenTypeFontPeer.java b/libjava/classpath/gnu/java/awt/font/OpenTypeFontPeer.java
new file mode 100644 (file)
index 0000000..2d898a4
--- /dev/null
@@ -0,0 +1,563 @@
+/* XFontPeer2.java -- A Java based TTF font peer for X
+   Copyright (C) 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.awt.font;
+
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.font.FontRenderContext;
+import java.awt.font.GlyphVector;
+import java.awt.font.LineMetrics;
+import java.awt.font.TextAttribute;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.ByteBuffer;
+import java.nio.channels.FileChannel;
+import java.text.CharacterIterator;
+import java.text.StringCharacterIterator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import gnu.java.awt.peer.ClasspathFontPeer;
+
+public class OpenTypeFontPeer
+  extends ClasspathFontPeer
+{
+
+  /**
+   * The font mapping as specified in the file fonts.properties.
+   */
+  private static Properties fontProperties;
+
+  /**
+   * The available font family names.
+   */
+  private static Set<String> availableFontNames;
+
+  /**
+   * Font spec to file mapping.
+   */
+  private static Map<String,Map<String,String>> fontToFileMap;
+
+  static
+  {
+    fontProperties = new Properties();
+    InputStream in = OpenTypeFontPeer.class.getResourceAsStream("fonts.properties");
+    try
+      {
+        fontProperties.load(in);
+      }
+    catch (IOException e)
+      {
+        e.printStackTrace();
+      }
+  }
+
+  private class XLineMetrics
+    extends LineMetrics
+  {
+
+    private Font font;
+    private GlyphVector glyphVector;
+//    private CharacterIterator characterIterator;
+//    private int begin;
+//    private int limit;
+    private FontRenderContext fontRenderContext;
+    XLineMetrics(Font f, CharacterIterator ci, int b, int l,
+                 FontRenderContext rc)
+    {
+      font = f;
+//      characterIterator = ci;
+//      begin = b;
+//      limit = l;
+      fontRenderContext = rc;
+      glyphVector = fontDelegate.createGlyphVector(font, fontRenderContext,
+                                                   ci);
+    }
+
+    public float getAscent()
+    {
+      return fontDelegate.getAscent(font.getSize(), fontRenderContext.getTransform(),
+                             fontRenderContext.isAntiAliased(),
+                             fontRenderContext.usesFractionalMetrics(), true);
+    }
+
+    public int getBaselineIndex()
+    {
+      // FIXME: Implement this.
+      throw new UnsupportedOperationException("Not yet implemented");
+    }
+
+    public float[] getBaselineOffsets()
+    {
+      // FIXME: Implement this.
+      throw new UnsupportedOperationException("Not yet implemented");
+    }
+
+    public float getDescent()
+    {
+      return (int) fontDelegate.getDescent(font.getSize(), IDENDITY, false,
+                                           false, false);
+    }
+
+    public float getHeight()
+    {
+      return (float) glyphVector.getLogicalBounds().getHeight();
+    }
+
+    public float getLeading()
+    {
+      return getHeight() - getAscent() - getDescent();
+    }
+
+    public int getNumChars()
+    {
+      // FIXME: Implement this.
+      throw new UnsupportedOperationException("Not yet implemented");
+    }
+
+    public float getStrikethroughOffset()
+    {
+      return 0.F;
+    }
+
+    public float getStrikethroughThickness()
+    {
+      return 0.F;
+    }
+
+    public float getUnderlineOffset()
+    {
+      return 0.F;
+    }
+
+    public float getUnderlineThickness()
+    {
+      return 0.F;
+    }
+    
+  }
+
+  private class XFontMetrics
+    extends FontMetrics
+  {
+    /**
+     * A cached point instance, to be used in #charWidth().
+     */
+    private Point2D cachedPoint = new Point2D.Double();
+
+    XFontMetrics(Font f)
+    {
+      super(f);
+    }
+
+    public int getAscent()
+    {
+      return (int) fontDelegate.getAscent(getFont().getSize(), IDENDITY,
+                                          false, false, false);
+    }
+
+    public int getDescent()
+    {
+      return (int) fontDelegate.getDescent(getFont().getSize(), IDENDITY,
+                                           false, false, false);
+    }
+    
+    public int getHeight()
+    {
+      GlyphVector gv = fontDelegate.createGlyphVector(getFont(),
+                    new FontRenderContext(IDENDITY, false, false),
+                    new StringCharacterIterator("m"));
+      Rectangle2D b = gv.getVisualBounds();
+      return (int) b.getHeight();
+    }
+
+    public int charWidth(char c)
+    {
+      int code = fontDelegate.getGlyphIndex(c);
+      Point2D advance = cachedPoint;
+      fontDelegate.getAdvance(code, font.getSize2D(), IDENDITY,
+                              false, false, true, advance);
+      return (int) advance.getX();
+    }
+
+    public int charsWidth(char[] chars, int offs, int len)
+    {
+      return stringWidth(new String(chars, offs, len));
+    }
+
+    public int stringWidth(String s)
+    {
+      GlyphVector gv = fontDelegate.createGlyphVector(getFont(),
+                    new FontRenderContext(IDENDITY, false, false),
+                    new StringCharacterIterator(s));
+      Rectangle2D b = gv.getVisualBounds();
+      return (int) b.getWidth();
+    }
+  }
+
+  /**
+   * The indendity transform, to be used in several methods.
+   */
+  private static final AffineTransform IDENDITY = new AffineTransform();
+
+  private FontDelegate fontDelegate;
+
+  public OpenTypeFontPeer(String name, int style, int size)
+  {
+    super(name, style, size);
+    try
+      {
+        String fontSpec = encodeFont(name, style);
+        String filename = mapFontToFilename(fontSpec);
+        File fontfile = new File(filename);
+        FileInputStream in = new FileInputStream(fontfile);
+        FileChannel ch = in.getChannel();
+        ByteBuffer buffer = ch.map(FileChannel.MapMode.READ_ONLY, 0,
+                                   fontfile.length());
+        fontDelegate = FontFactory.createFonts(buffer)[0];
+      }
+    catch (Exception ex)
+      {
+        ex.printStackTrace();
+      }
+  }
+
+  public OpenTypeFontPeer(String name, Map atts)
+  {
+    super(name, atts);
+    try
+      {
+        String fontSpec = encodeFont(name, atts);
+        String filename = mapFontToFilename(fontSpec);
+        File fontfile = new File(filename);
+        FileInputStream in = new FileInputStream(fontfile);
+        FileChannel ch = in.getChannel();
+        ByteBuffer buffer = ch.map(FileChannel.MapMode.READ_ONLY, 0,
+                                   fontfile.length());
+        fontDelegate = FontFactory.createFonts(buffer)[0];
+      }
+    catch (Exception ex)
+      {
+        ex.printStackTrace();
+      }
+  }
+
+  public boolean canDisplay(Font font, int c)
+  {
+    // FIXME: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented");
+  }
+
+  public int canDisplayUpTo(Font font, CharacterIterator i, int start, int limit)
+  {
+    // FIXME: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented");
+  }
+
+  public String getSubFamilyName(Font font, Locale locale)
+  {
+    // FIXME: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented");
+  }
+
+  public String getPostScriptName(Font font)
+  {
+    // FIXME: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented");
+  }
+
+  public int getNumGlyphs(Font font)
+  {
+    // FIXME: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented");
+  }
+
+  public int getMissingGlyphCode(Font font)
+  {
+    // FIXME: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented");
+  }
+
+  public byte getBaselineFor(Font font, char c)
+  {
+    // FIXME: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented");
+  }
+
+  public String getGlyphName(Font font, int glyphIndex)
+  {
+    // FIXME: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented");
+  }
+
+  public GlyphVector createGlyphVector(Font font, FontRenderContext frc, CharacterIterator ci)
+  {
+    return fontDelegate.createGlyphVector(font, frc, ci);
+  }
+
+  public GlyphVector createGlyphVector(Font font, FontRenderContext ctx, int[] glyphCodes)
+  {
+    // FIXME: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented");
+  }
+
+  public GlyphVector layoutGlyphVector(Font font, FontRenderContext frc, char[] chars, int start, int limit, int flags)
+  {
+    StringCharacterIterator i = new StringCharacterIterator(new String(chars), start, limit, 0);
+    return fontDelegate.createGlyphVector(font, frc, i);
+  }
+
+  public FontMetrics getFontMetrics(Font font)
+  {
+    return new XFontMetrics(font);
+  }
+
+  public boolean hasUniformLineMetrics(Font font)
+  {
+    // FIXME: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented");
+  }
+
+  public LineMetrics getLineMetrics(Font font, CharacterIterator ci, int begin, int limit, FontRenderContext rc)
+  {
+    return new XLineMetrics(font, ci, begin, limit, rc);
+  }
+
+  public Rectangle2D getMaxCharBounds(Font font, FontRenderContext rc)
+  {
+    // FIXME: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented");
+  }
+
+  /**
+   * Encodes a font name + style + size specification into a X logical font
+   * description (XLFD) as described here:
+   *
+   * http://www.meretrx.com/e93/docs/xlfd.html
+   *
+   * This is implemented to look up the font description in the
+   * fonts.properties of this package.
+   *
+   * @param name the font name
+   * @param atts the text attributes
+   *
+   * @return the encoded font description
+   */
+  public static String encodeFont(String name, Map atts)
+  {
+    String family = name;
+    if (family == null || family.equals(""))
+      family = (String) atts.get(TextAttribute.FAMILY);
+    if (family == null)
+      family = "SansSerif";
+
+    int style = 0;
+    // Detect italic attribute.
+    Float posture = (Float) atts.get(TextAttribute.POSTURE);
+    if (posture != null && !posture.equals(TextAttribute.POSTURE_REGULAR))
+      style |= Font.ITALIC;
+
+    // Detect bold attribute.
+    Float weight = (Float) atts.get(TextAttribute.WEIGHT);
+    if (weight != null && weight.compareTo(TextAttribute.WEIGHT_REGULAR) > 0)
+      style |= Font.BOLD;
+
+    return encodeFont(name, style);
+  }
+
+  /**
+   * Encodes a font name + style into a combined string.
+   *
+   * This is implemented to look up the font description in the
+   * fonts.properties of this package.
+   *
+   * @param name the font name
+   * @param style the font style
+   *
+   * @return the encoded font description
+   */
+  static String encodeFont(String name, int style)
+  {
+    StringBuilder key = new StringBuilder();
+    key.append(validName(name));
+    key.append('/');
+    switch (style)
+    {
+      case Font.BOLD:
+        key.append("b");
+        break;
+      case Font.ITALIC:
+        key.append("i");
+        break;
+      case (Font.BOLD | Font.ITALIC):
+        key.append("bi");
+        break;
+      case Font.PLAIN:
+      default:
+        key.append("p");
+      
+    }
+
+    return key.toString();
+  }
+
+  /**
+   * Checks the specified font name for a valid font name. If the font name
+   * is not known, then this returns 'sansserif' as fallback.
+   *
+   * @param name the font name to check
+   *
+   * @return a valid font name
+   */
+  static String validName(String name)
+  {
+    String retVal;
+    Set<String> fontNames = getFontNames();
+    if (fontNames.contains(name))
+      {
+        retVal = name;
+      }
+    else
+      {
+        retVal = "SansSerif";
+      }
+    return retVal;
+  }
+
+  public static String[] getAvailableFontFamilyNames(Locale l)
+  {
+    Set<String> fontNames = getFontNames();
+    int numNames = fontNames.size();
+    String[] ret = fontNames.toArray(new String[numNames]);
+    return ret;
+  }
+
+  private static synchronized Set<String> getFontNames()
+  {
+    if (availableFontNames == null)
+      {
+        HashSet<String> familyNames = new HashSet<String>();
+        for (Object o : fontProperties.keySet())
+          {
+            if (o instanceof String)
+              {
+                String key = (String) o;
+                int slashIndex = key.indexOf('/');
+                String name = key.substring(0, slashIndex);
+                familyNames.add(name);
+              }
+          }
+        availableFontNames = familyNames;
+      }
+    return availableFontNames;
+  }
+
+  /**
+   * Takes a font spec as returned by {@link #encodeFont(String, int)},
+   * and returns the corresponding font file, or <code>null</code> if no such
+   * font mapping exists.
+   *
+   * @param fontSpec font name and style as returned by
+   *        {@link #encodeFont(String, int)}
+   *
+   * @return filename of the corresponding font file
+   */
+  private synchronized String mapFontToFilename(String fontSpec)
+  {
+    if (fontToFileMap == null)
+      {
+        fontToFileMap = new HashMap<String,Map<String,String>>();
+
+        // Initialize font spec to file mapping according to the
+        // font.properties.
+        for (Object o : fontProperties.keySet())
+          {
+            if (o instanceof String)
+              {
+                String key = (String) o;
+                int slashIndex = key.indexOf('/');
+                String name = key.substring(0, slashIndex);
+                String spec = key.substring(slashIndex + 1);
+                // Handle aliases in the 2nd pass below.
+                if (! spec.equals("a"))
+                  {
+                    Map<String,String> specToFileMap = fontToFileMap.get(name);
+                    if (specToFileMap == null)
+                      {
+                        specToFileMap = new HashMap<String,String>();
+                        fontToFileMap.put(name, specToFileMap);
+                      }
+                    specToFileMap.put(spec, fontProperties.getProperty(key));
+                  }
+              }
+          }
+        // 2nd pass for handling aliases.
+        for (Object o : fontProperties.keySet())
+          {
+            if (o instanceof String)
+              {
+                String key = (String) o;
+                int slashIndex = key.indexOf('/');
+                String name = key.substring(0, slashIndex);
+                String spec = key.substring(slashIndex + 1);
+                // Handle aliases in the 2nd pass below.
+                if (spec.equals("a"))
+                  {
+                    String alias = fontProperties.getProperty(key);
+                    Map<String,String> specToFileMap = fontToFileMap.get(alias);
+                    fontToFileMap.put(name, specToFileMap);
+                  }
+              }
+          }
+      }
+    // Look up font file.
+    int slashIndex = fontSpec.indexOf('/');
+    String name = fontSpec.substring(0, slashIndex);
+    String spec = fontSpec.substring(slashIndex + 1);
+    return fontToFileMap.get(name).get(spec);
+  }
+}
diff --git a/libjava/classpath/gnu/java/awt/image/AsyncImage.java b/libjava/classpath/gnu/java/awt/image/AsyncImage.java
new file mode 100644 (file)
index 0000000..935601a
--- /dev/null
@@ -0,0 +1,300 @@
+/* AsyncImage.java -- Loads images asynchronously
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.java.awt.image;
+
+
+import java.awt.Graphics;
+import java.awt.Image;
+import java.awt.image.ImageConsumer;
+import java.awt.image.ImageObserver;
+import java.awt.image.ImageProducer;
+import java.util.HashSet;
+import java.util.Iterator;
+
+/**
+ * Supports asynchronous loading of images.
+ */
+public class AsyncImage
+  extends Image
+{
+
+  /**
+   * The image source for AsyncImages.
+   */
+  private class AsyncImageSource
+    implements ImageProducer
+  {
+    /**
+     * The real image source, if already present, or <code>null</code>
+     * otherwise.
+     */
+    private ImageProducer realSource;
+
+    public void addConsumer(ImageConsumer ic)
+    {
+      startProduction(ic);
+    }
+
+    public boolean isConsumer(ImageConsumer ic)
+    {
+      return false;
+    }
+
+    public void removeConsumer(ImageConsumer ic)
+    {
+      // Nothing to do here.
+    }
+
+    public void requestTopDownLeftRightResend(ImageConsumer ic)
+    {
+      startProduction(ic);
+    }
+
+    public void startProduction(ImageConsumer ic)
+    {
+      ImageProducer ip = getRealSource();
+      if (ip == null)
+        {
+          ic.setDimensions(1, 1);
+          ic.imageComplete(ImageConsumer.SINGLEFRAMEDONE);
+        }
+      else
+        {
+          ip.startProduction(ic);
+        }
+    }
+
+    /**
+     * Returns the real image source, if already present. Otherwise, this
+     * returns <code>null</code>.
+     *
+     * @return the real image source, or <code>null</code> if not present
+     */
+    private ImageProducer getRealSource()
+    {
+      synchronized (AsyncImage.this)
+        {
+          ImageProducer source = realSource;
+          if (source == null)
+            {
+              Image ri = realImage;
+              if (ri != null)
+                {
+                  realSource = source = ri.getSource();
+                }
+            }
+          return source;
+        }
+    }
+  }
+
+  /**
+   * The real image. This is null as long as the image is not complete.
+   */
+  private volatile Image realImage;
+
+  /**
+   * The image observers.
+   *
+   * This is package private to avoid accessor methods.
+   */
+  HashSet<ImageObserver> observers;
+
+  private volatile boolean complete = false;
+
+  /**
+   * Creates a new AsyncImage.
+   */
+  AsyncImage()
+  {
+    observers = new HashSet<ImageObserver>();
+  }
+
+  public void flush()
+  {
+    // Nothing to do here.
+  }
+
+  public Graphics getGraphics()
+  {
+    Image r = realImage;
+    Graphics g = null;
+    if (r != null)
+      g = r.getGraphics(); // Should we return some dummy graphics instead?
+    return g;
+  }
+  
+  public boolean isComplete() {
+       return complete;
+  }
+
+  public int getHeight(ImageObserver observer)
+  {
+    addObserver(observer);
+    int height = -1;
+    waitForImage(observer);
+    Image r = realImage;
+    if (r != null)
+      height = r.getHeight(observer);
+    return height;
+  }
+
+  public Object getProperty(String name, ImageObserver observer)
+  {
+    addObserver(observer);
+    Image r = realImage;
+    Object prop = null;
+    if (r != null)
+      prop = r.getProperty(name, observer);
+    return prop;
+  }
+
+  public ImageProducer getSource()
+  {
+    return new AsyncImageSource();
+  }
+
+  public int getWidth(ImageObserver observer)
+  {
+    addObserver(observer);
+    int width = -1;
+    waitForImage(observer);
+    Image r = realImage;
+    if (r != null)
+      width = r.getWidth(observer);
+    return width;
+  }
+
+  public void addObserver(ImageObserver obs)
+  {
+    if (obs != null)
+      {
+        synchronized (this)
+          {
+            // This field gets null when image loading is complete and we don't
+            // need to store any more observers.
+            HashSet<ImageObserver> observs = observers;
+            if (observs != null)
+              {
+                observs.add(obs);
+              }
+          }
+      }
+  }
+
+  public boolean prepareImage(int w, int h, ImageObserver obs)
+  {
+    addObserver(obs);
+    return realImage != null;
+  }
+
+  public int checkImage(int w, int h, ImageObserver obs)
+  {
+    addObserver(obs);
+    int flags = 0;
+    if (realImage != null)
+      flags = ImageObserver.ALLBITS | ImageObserver.WIDTH
+              | ImageObserver.HEIGHT | ImageObserver.PROPERTIES;
+    return flags;
+  }
+
+  public Image getRealImage()
+  {
+    return realImage;
+  }
+
+  public void setRealImage(Image im)
+  {
+    realImage = im;
+    int status = ImageObserver.HEIGHT | ImageObserver.WIDTH;
+    notifyObservers(status, 0, 0, im.getWidth(null), im.getHeight(null));
+  }
+
+  public void notifyObservers(int status, int x, int y, int w, int h)
+  {
+    synchronized (this)
+    {
+      HashSet observs = observers;
+      if (observs != null)
+        {
+          Iterator i = observs.iterator();
+          while (i.hasNext())
+            {
+              ImageObserver obs = (ImageObserver) i.next();
+              boolean complete = obs.imageUpdate(this, status, x, y, realImage.getWidth(obs), realImage.getHeight(obs));
+              if (complete) // Remove completed observers.
+                i.remove();
+            }
+        }
+      if ((status & ImageObserver.ALLBITS) != 0)
+        {
+          complete = true;
+          notifyAll();
+        }
+    }
+  }
+
+  /**
+   * Waits for the image to be loaded completely, if the image observer
+   * is <code>null</code>. Otherwise this is not necessary, because the
+   * image observer can be notified about later completion.
+   *
+   * @param observer the image observer
+   */
+  public void waitForImage(ImageObserver observer)
+  {
+    if (!complete && observer == null)
+      {
+        synchronized (this)
+          {
+            while (! complete)
+              {
+                try
+                  {
+                    wait();
+                  }
+                catch (InterruptedException ex)
+                  {
+                    Thread.currentThread().interrupt();
+                  }
+              }
+          }
+      }
+  }
+}
diff --git a/libjava/classpath/gnu/java/awt/image/ImageConverter.java b/libjava/classpath/gnu/java/awt/image/ImageConverter.java
new file mode 100644 (file)
index 0000000..f607b34
--- /dev/null
@@ -0,0 +1,528 @@
+/* ImageConverter.java -- Loads images asynchronously
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.java.awt.image;
+
+import gnu.java.awt.image.AsyncImage;
+
+import java.awt.GraphicsEnvironment;
+import java.awt.Image;
+import java.awt.Transparency;
+import java.awt.image.BufferedImage;
+import java.awt.image.ColorModel;
+import java.awt.image.DataBuffer;
+import java.awt.image.ImageConsumer;
+import java.awt.image.IndexColorModel;
+import java.awt.image.ImageObserver;
+import java.awt.image.SinglePixelPackedSampleModel;
+import java.awt.image.WritableRaster;
+import java.util.Hashtable;
+
+/**
+ * Convert an Image to a BufferedImage.
+ * 
+ * @author Roman Kennke (kennke@aicas.com)
+ */
+public class ImageConverter implements ImageConsumer
+{
+
+  public static final String IMAGE_TRANSPARENCY_PROPERTY =
+    "gnu.awt.image.transparency";
+
+  public static final String IMAGE_PROPERTIES_PROPERTY =
+    "gnu.awt.image.properties";
+
+  private AsyncImage image;
+  private BufferedImage bImage;
+  private Hashtable imageProperties;
+  private int width, height;
+  private ColorModel colorModel;
+  private ColorModel targetColorModel;
+
+  public ImageConverter()
+  {
+    width = 0;
+    height = 0;
+    image = new AsyncImage();
+  }
+
+  public void setDimensions(int w, int h)
+  {
+    width = w;
+    height = h;
+  }
+
+  public void setProperties(Hashtable props)
+  {
+    // Ignore for now.
+  }
+
+  public void setColorModel(ColorModel model)
+  {
+    colorModel = model;
+  }
+
+  public void setHints(int flags)
+  {
+    // Ignore for now.
+  }
+
+  public void setPixels(int x, int y, int w, int h, ColorModel model,
+                        byte[] pixels, int offset, int scansize)
+  {
+    model = setupColorModel(model);
+
+    if (bImage == null)
+      {
+        createImage();
+      }
+
+    Integer t = (Integer) imageProperties.get("gnu.awt.image.transparency");
+    int transparency = t.intValue();
+
+    if(targetColorModel.equals(model))
+      {
+        transparency = transferPixels(x, y, w, h, model, pixels, offset,
+                                      scansize, transparency);
+      }
+    else if (model instanceof IndexColorModel
+             && targetColorModel.equals(ColorModel.getRGBdefault())) 
+      {
+        transparency = convertIndexColorModelToSRGB(x, y, w, h,
+                                                    (IndexColorModel) model,
+                                                    pixels, offset, scansize,
+                                                    transparency);
+      }
+    else
+      {
+        transparency = convertPixels(x, y, w, h, model, pixels, offset,
+                                     scansize, transparency);
+      }
+
+    imageProperties.put("gnu.awt.image.transparency",
+                        Integer.valueOf(transparency));
+  }
+
+  public void setPixels(int x, int y, int w, int h, ColorModel model,
+                        int[] pixels, int offset, int scansize)
+  {
+    model = setupColorModel(model);
+    if (bImage == null)
+      {
+        createImage();
+      }
+
+    Integer t = (Integer) imageProperties.get(IMAGE_TRANSPARENCY_PROPERTY);
+    int transparency= t.intValue();
+
+    if (targetColorModel.equals(model))
+      {
+        transparency = transferPixels(x, y, w, h, model, pixels, offset,
+                                      scansize, transparency);
+      }
+    else if (model instanceof IndexColorModel
+             && targetColorModel.equals(ColorModel.getRGBdefault()))
+      {
+        transparency = convertIndexColorModelToSRGB(x, y, w, h,
+                                                    (IndexColorModel) model,
+                                                    pixels, offset, scansize,
+                                                    transparency);
+      }
+    else
+      {
+        transparency = convertPixels(x, y, w, h, model, pixels, offset,
+                                     scansize, transparency);
+      }
+
+    imageProperties.put(IMAGE_TRANSPARENCY_PROPERTY,
+                        Integer.valueOf(transparency));
+
+  }
+
+  /**
+   * Initialize the color model for this setPixels run: <br/>
+   * 1. if no color model was given use the hinted color model <br/>
+   * 2. if no color model was given and non was hinted use the default sRGB color model. <br/>
+   * Also:<br/>
+   * If no target color model was set use the color model of the given pixels.
+   * @param model
+   * @return
+   */
+  private ColorModel setupColorModel(ColorModel model)
+  {
+    // If the given color model is null use the previously hinted color model.
+    if (model == null)
+      model = colorModel;
+
+    // If no color model was given or hinted use default sRGB.
+    if (model == null)
+      model = ColorModel.getRGBdefault();
+
+    // If no specific color model was requested for the target use the current
+    // pixels model.
+    if (targetColorModel == null)
+      targetColorModel = model;
+    targetColorModel = ColorModel.getRGBdefault();
+    return model;
+  }
+
+  /**
+   * Creates the image instance into which the pixel data is converted.
+   */
+  private void createImage()
+  {
+    if (imageProperties == null)
+      {
+        imageProperties = new Hashtable();
+      }
+
+    imageProperties.put(IMAGE_TRANSPARENCY_PROPERTY,
+                        Integer.valueOf(Transparency.OPAQUE));
+    imageProperties.put(IMAGE_PROPERTIES_PROPERTY, imageProperties);
+
+    // For the sRGB case let the GraphicsEnvironment create an image for us.
+    if (ColorModel.getRGBdefault().equals(targetColorModel))
+      {
+        bImage = GraphicsEnvironment.getLocalGraphicsEnvironment()
+                                    .getDefaultScreenDevice()
+                                    .getDefaultConfiguration()
+             .createCompatibleImage(width, height, Transparency.TRANSLUCENT);
+      }
+    else
+      {
+        WritableRaster raster =
+          targetColorModel.createCompatibleWritableRaster(width, height);
+        bImage = new BufferedImage(targetColorModel, raster, false,
+                                   imageProperties);
+      }
+    image.setRealImage(bImage);
+    return;
+  }
+
+  /**
+   * Transfers pixels into a raster of the same color model.
+   *
+   * @param x the X coordinate of the source pixel rectangle
+   * @param y the Y coordinate of the source pixel rectangle
+   * @param w the width of the source pixel rectangle
+   * @param h the height of the source pixel rectangle
+   * @param model the color model of the source pixels
+   * @param pixels the pixel data
+   * @param offset the offset in the pixel array
+   * @param scansize the scanline size
+   * @param transparency the assumed transparency
+   * 
+   * @return the determined transparency
+   */
+  private int transferPixels(int x, int y, int w, int h, ColorModel model,
+                             byte[] pixels, int offset, int scansize,
+                             int transparency)
+  {
+    // If we have the same color model, then we can simply drop
+    // the pixel value into the target raster.
+    bImage.getRaster().setDataElements(x, y, w, h, pixels);
+
+    for (int yy = 0; yy < h; yy++)
+      {
+        for (int xx = 0; xx < w; xx++)
+          {
+            int pixel = 0xFF & pixels[yy * scansize + xx + offset];
+            int alpha = model.getAlpha(pixel);
+            transparency = updateTransparency(alpha, transparency);
+          }
+      }
+    return transparency;
+  }
+
+  /**
+   * Transfers pixels into a raster of the same color model.
+   *
+   * @param x the X coordinate of the source pixel rectangle
+   * @param y the Y coordinate of the source pixel rectangle
+   * @param w the width of the source pixel rectangle
+   * @param h the height of the source pixel rectangle
+   * @param model the color model of the source pixels
+   * @param pixels the pixel data
+   * @param offset the offset in the pixel array
+   * @param scansize the scanline size
+   * @param transparency the assumed transparency
+   * 
+   * @return the determined transparency
+   */
+  private int transferPixels(int x, int y, int w, int h, ColorModel model,
+                             int[] pixels, int offset, int scansize,
+                             int transparency)
+  {
+    // If we have the same color model, then we can simply drop
+    // the pixel value into the target raster.
+    bImage.getRaster().setDataElements(x, y, w, h, pixels);
+
+    for (int yy = 0; yy < h; yy++)
+      {
+        for (int xx = 0; xx < w; xx++)
+          {
+            int pixel = pixels[yy * scansize + xx + offset];
+            int alpha = model.getAlpha(pixel);
+            transparency = updateTransparency(alpha, transparency);
+          }
+      }
+    return transparency;
+  }
+
+  /**
+   * Converts pixel from one color model to another, and stores them in the
+   * target image.
+   *
+   * @param x the X coordinate of the source pixel rectangle
+   * @param y the Y coordinate of the source pixel rectangle
+   * @param w the width of the source pixel rectangle
+   * @param h the height of the source pixel rectangle
+   * @param model the color model of the source pixels
+   * @param pixels the pixel data
+   * @param offset the offset in the pixel array
+   * @param scansize the scanline size
+   * @param transparency the assumed transparency
+   * 
+   * @return the determined transparency
+   */
+  private int convertPixels(int x, int y, int w, int h, ColorModel model,
+                            byte[] pixels, int offset, int scansize,
+                            int transparency)
+  {
+    // If the color models are not the same, we must convert the
+    // pixel values from one model to the other.
+    Object dataEl = null;
+    // Convert pixels to the destination color model.
+    for (int yy = 0; yy < h; yy++)
+      {
+        for (int xx = 0; xx < w; xx++)
+          {
+            int pixel = 0xFF & pixels[yy * scansize + xx + offset];
+            int rgb = model.getRGB(pixel);
+            int alpha = model.getAlpha(pixel);
+            transparency = updateTransparency(alpha, transparency);
+            dataEl = targetColorModel.getDataElements(rgb, dataEl);
+            bImage.getRaster().setDataElements(x + xx, y + yy, dataEl);
+          }
+      }
+    return transparency;
+  }
+
+  /**
+   * Converts pixel from one color model to another, and stores them in the
+   * target image.
+   *
+   * @param x the X coordinate of the source pixel rectangle
+   * @param y the Y coordinate of the source pixel rectangle
+   * @param w the width of the source pixel rectangle
+   * @param h the height of the source pixel rectangle
+   * @param model the color model of the source pixels
+   * @param pixels the pixel data
+   * @param offset the offset in the pixel array
+   * @param scansize the scanline size
+   * @param transparency the assumed transparency
+   * 
+   * @return the determined transparency
+   */
+  private int convertPixels(int x, int y, int w, int h, ColorModel model,
+                            int[] pixels, int offset, int scansize,
+                            int transparency)
+  {
+    // If the color models are not the same, we must convert the
+    // pixel values from one model to the other.
+    Object dataEl = null;
+    // Convert pixels to the destination color model.
+    for (int yy = 0; yy < h; yy++)
+      {
+        for (int xx = 0; xx < w; xx++)
+          {
+            int pixel = pixels[yy * scansize + xx + offset];
+            int rgb = model.getRGB(pixel);
+            int alpha = model.getAlpha(pixel);
+            transparency = updateTransparency(alpha, transparency);
+            dataEl = targetColorModel.getDataElements(rgb, dataEl);
+            bImage.getRaster().setDataElements(x + xx, y + yy, dataEl);
+          }
+      }
+    return transparency;
+  }
+
+  /**
+   * Converts pixels from an index color model to the target image.
+   *
+   * @param x the X coordinate of the source pixel rectangle
+   * @param y the Y coordinate of the source pixel rectangle
+   * @param w the width of the source pixel rectangle
+   * @param h the height of the source pixel rectangle
+   * @param model the color model of the source pixels
+   * @param pixels the pixel data
+   * @param offset the offset in the pixel array
+   * @param scansize the scanline size
+   * @param transparency the assumed transparency
+   * 
+   * @return the determined transparency
+   */
+  private int convertIndexColorModelToSRGB(int x, int y, int w, int h,
+                                           IndexColorModel model,
+                                           byte[] pixels, int offset,
+                                           int scansize, int transparency)
+  {
+
+    int mapSize = model.getMapSize();
+    int[] colorMap = new int[mapSize];
+    for(int i=0; i < mapSize; i++)
+      {
+        colorMap[i] = model.getRGB(i);
+      }
+
+    WritableRaster raster = bImage.getRaster();
+    SinglePixelPackedSampleModel sampleMode =
+      (SinglePixelPackedSampleModel) raster.getSampleModel();
+    DataBuffer dataBuffer = (DataBuffer) raster.getDataBuffer();
+
+    int rasterOffset = sampleMode.getOffset(x,y)+dataBuffer.getOffset();
+    int rasterScanline = sampleMode.getScanlineStride();
+
+    for (int yy = 0; yy < h; yy++)
+      {
+        int xoffset = offset;
+        for (int xx = 0; xx < w; xx++)
+          {
+            int argb  = colorMap[(pixels[xoffset++] & 0xFF)];
+            dataBuffer.setElem(rasterOffset+xx, argb);
+            int alpha = (argb >>> 24);
+            transparency = updateTransparency(alpha, transparency);
+          }
+        offset += scansize;
+        rasterOffset += rasterScanline;
+      }
+
+    return transparency;
+  }
+
+  /**
+   * Converts pixels from an index color model to the target image.
+   *
+   * @param x the X coordinate of the source pixel rectangle
+   * @param y the Y coordinate of the source pixel rectangle
+   * @param w the width of the source pixel rectangle
+   * @param h the height of the source pixel rectangle
+   * @param model the color model of the source pixels
+   * @param pixels the pixel data
+   * @param offset the offset in the pixel array
+   * @param scansize the scanline size
+   * @param transparency the assumed transparency
+   * 
+   * @return the determined transparency
+   */
+  private int convertIndexColorModelToSRGB(int x, int y, int w, int h,
+                                           IndexColorModel model, int[] pixels,
+                                           int offset, int scansize,
+                                           int transparency)
+  {
+    int mapSize = model.getMapSize();
+    int[] colorMap = new int[mapSize];
+    for(int i=0; i < mapSize; i++)
+      {
+        colorMap[i] = model.getRGB(i);
+      }
+
+    WritableRaster raster = bImage.getRaster();
+    SinglePixelPackedSampleModel sampleMode =
+      (SinglePixelPackedSampleModel) raster.getSampleModel();
+    DataBuffer dataBuffer = (DataBuffer)raster.getDataBuffer();
+
+    int rasterOffset = sampleMode.getOffset(x, y) + dataBuffer.getOffset();
+    int rasterScanline = sampleMode.getScanlineStride();
+
+    for (int yy = 0; yy < h; yy++)
+      {
+        int xoffset = offset;
+        for (int xx = 0; xx < w; xx++)
+          {
+            int argb  = colorMap[pixels[xoffset++]];
+            dataBuffer.setElem(rasterOffset + xx, argb);
+            int alpha = (argb >>> 24);
+            transparency = updateTransparency(alpha, transparency);
+          }
+        offset += scansize;
+        rasterOffset += rasterScanline;
+      }
+
+    return transparency;
+  }
+
+  /**
+   * Updates the transparency information according to the alpha pixel value.
+   *
+   * @param alpha the alpha pixel value
+   * @param transparency the old transparency
+   *
+   * @return the updated transparency
+   */
+  private int updateTransparency(int alpha, int transparency)
+  {
+    if (alpha != 0xFF)
+      {
+        if (alpha == 0x00 && transparency <= Transparency.BITMASK)
+          {
+            transparency = Transparency.BITMASK;
+          }
+        else if (transparency < Transparency.TRANSLUCENT)
+          {
+            transparency = Transparency.TRANSLUCENT;
+          }
+      }
+    return transparency;
+  }
+
+  public void imageComplete(int status)
+  {
+    image.notifyObservers(ImageObserver.ALLBITS, 0, 0, width, height);
+  }
+
+  public void setTargetColorModel(ColorModel model)
+  {
+    targetColorModel = model;
+  }
+
+  public Image getImage()
+  {
+    return image;
+  }
+}
index 15ec90da1c024f5007e689f77f519130b4eaba48..36ba0f4304ce5f8f9cd6fd5ebdb836d98fe89314 100644 (file)
@@ -37,6 +37,8 @@ exception statement from your version. */
 
 package gnu.java.awt.java2d;
 
+import gnu.java.util.LRUCache;
+
 import java.awt.AWTError;
 import java.awt.AlphaComposite;
 import java.awt.AWTPermission;
@@ -80,7 +82,9 @@ import java.awt.image.SampleModel;
 import java.awt.image.WritableRaster;
 import java.awt.image.renderable.RenderableImage;
 import java.text.AttributedCharacterIterator;
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.LinkedList;
 import java.util.Map;
 
 /**
@@ -151,23 +155,47 @@ public abstract class AbstractGraphics2D
   implements Cloneable, Pixelizer
 {
 
+  /**
+   * Wether we use anti aliasing for rendering text by default or not.
+   */
+  private static final boolean DEFAULT_TEXT_AA =
+    Boolean.getBoolean("gnu.java2d.default_text_aa");
+
   /**
    * The default font to use on the graphics object.
    */
   private static final Font FONT = new Font("SansSerif", Font.PLAIN, 12);
 
+  /**
+   * The size of the LRU cache used for caching GlyphVectors.
+   */
+  private static final int GV_CACHE_SIZE = 50;
+
   /**
    * Caches certain shapes to avoid massive creation of such Shapes in
    * the various draw* and fill* methods.
    */
-  private static final ThreadLocal<ShapeCache> shapeCache =
-    new ThreadLocal<ShapeCache>();
+  private static final ShapeCache shapeCache = new ShapeCache();
+
+  /**
+   * A pool of scanline converters. It is important to reuse scanline
+   * converters because they keep their datastructures in place. We pool them
+   * for use in multiple threads.
+   */
+  private static final LinkedList<ScanlineConverter> scanlineConverters =
+    new LinkedList<ScanlineConverter>();
+
+  /**
+   * Caches glyph vectors for better drawing performance.
+   */
+  private static final Map<TextCacheKey,GlyphVector> gvCache =
+    Collections.synchronizedMap(new LRUCache<TextCacheKey,GlyphVector>(GV_CACHE_SIZE));
 
   /**
-   * The scanline converters by thread.
+   * This key is used to search in the gvCache without allocating a new
+   * key each time.
    */
-  private static final ThreadLocal<ScanlineConverter> scanlineConverters =
-    new ThreadLocal<ScanlineConverter>();
+  private static final TextCacheKey searchTextKey = new TextCacheKey();
 
   /**
    * The transformation for this Graphics2D instance
@@ -484,14 +512,25 @@ public abstract class AbstractGraphics2D
    */
   public void drawString(String text, int x, int y)
   {
-    if (isOptimized)
-      rawDrawString(text, x, y);
-    else
+    GlyphVector gv;
+    synchronized (searchTextKey)
       {
-        FontRenderContext ctx = getFontRenderContext();
-        GlyphVector gv = font.createGlyphVector(ctx, text.toCharArray());
-        drawGlyphVector(gv, x, y);
+        TextCacheKey tck = searchTextKey;
+        FontRenderContext frc = getFontRenderContext();
+        tck.setString(text);
+        tck.setFont(font);
+        tck.setFontRenderContext(frc);
+        if (gvCache.containsKey(tck))
+          {
+            gv = gvCache.get(tck);
+          }
+        else
+          {
+            gv = font.createGlyphVector(frc, text.toCharArray());
+            gvCache.put(new TextCacheKey(text, font, frc), gv);
+          }
       }
+    drawGlyphVector(gv, x, y);
   }
 
   /**
@@ -949,7 +988,10 @@ public abstract class AbstractGraphics2D
 
   public FontRenderContext getFontRenderContext()
   {
-    return new FontRenderContext(transform, false, true);
+    // Protect our own transform from beeing modified.
+    AffineTransform tf = new AffineTransform(transform);
+    // TODO: Determine antialias and fractionalmetrics parameters correctly.
+    return new FontRenderContext(tf, false, true);
   }
 
   /**
@@ -992,8 +1034,10 @@ public abstract class AbstractGraphics2D
         // Copy the clip. If it's a Rectangle, preserve that for optimization.
         if (clip instanceof Rectangle)
           copy.clip = new Rectangle((Rectangle) clip);
-        else
+        else if (clip != null)
           copy.clip = new GeneralPath(clip);
+        else
+          copy.clip = null;
 
        copy.renderingHints = new RenderingHints(null);
        copy.renderingHints.putAll(renderingHints);
@@ -1163,7 +1207,7 @@ public abstract class AbstractGraphics2D
       }
     else
       {
-        ShapeCache sc = getShapeCache();
+        ShapeCache sc = shapeCache;
         if (sc.line == null)
           sc.line = new Line2D.Float();
         sc.line.setLine(x1, y1, x2, y2);
@@ -1175,11 +1219,13 @@ public abstract class AbstractGraphics2D
   {
     if (isOptimized)
       {
-        rawDrawRect(x, y, w, h);
+        int tx = (int) transform.getTranslateX();
+        int ty = (int) transform.getTranslateY();
+        rawDrawRect(x + tx, y + ty, w, h);
       }
     else
       {
-        ShapeCache sc = getShapeCache();
+        ShapeCache sc = shapeCache;
         if (sc.rect == null)
           sc.rect = new Rectangle();
         sc.rect.setBounds(x, y, w, h);
@@ -1204,7 +1250,7 @@ public abstract class AbstractGraphics2D
       }
     else
       {
-        ShapeCache sc = getShapeCache();
+        ShapeCache sc = shapeCache;
         if (sc.rect == null)
           sc.rect = new Rectangle();
         sc.rect.setBounds(x, y, width, height);
@@ -1249,7 +1295,7 @@ public abstract class AbstractGraphics2D
   public void drawRoundRect(int x, int y, int width, int height, int arcWidth,
                             int arcHeight)
   {
-    ShapeCache sc = getShapeCache();
+    ShapeCache sc = shapeCache;
     if (sc.roundRect == null)
       sc.roundRect = new RoundRectangle2D.Float();
     sc.roundRect.setRoundRect(x, y, width, height, arcWidth, arcHeight);
@@ -1269,7 +1315,7 @@ public abstract class AbstractGraphics2D
   public void fillRoundRect(int x, int y, int width, int height, int arcWidth,
                             int arcHeight)
   {
-    ShapeCache sc = getShapeCache();
+    ShapeCache sc = shapeCache;
     if (sc.roundRect == null)
       sc.roundRect = new RoundRectangle2D.Float();
     sc.roundRect.setRoundRect(x, y, width, height, arcWidth, arcHeight);
@@ -1286,7 +1332,7 @@ public abstract class AbstractGraphics2D
    */
   public void drawOval(int x, int y, int width, int height)
   {
-    ShapeCache sc = getShapeCache();
+    ShapeCache sc = shapeCache;
     if (sc.ellipse == null)
       sc.ellipse = new Ellipse2D.Float();
     sc.ellipse.setFrame(x, y, width, height);
@@ -1303,7 +1349,7 @@ public abstract class AbstractGraphics2D
    */
   public void fillOval(int x, int y, int width, int height)
   {
-    ShapeCache sc = getShapeCache();
+    ShapeCache sc = shapeCache;
     if (sc.ellipse == null)
       sc.ellipse = new Ellipse2D.Float();
     sc.ellipse.setFrame(x, y, width, height);
@@ -1316,7 +1362,7 @@ public abstract class AbstractGraphics2D
   public void drawArc(int x, int y, int width, int height, int arcStart,
                       int arcAngle)
   {
-    ShapeCache sc = getShapeCache();
+    ShapeCache sc = shapeCache;
     if (sc.arc == null)
       sc.arc = new Arc2D.Float();
     sc.arc.setArc(x, y, width, height, arcStart, arcAngle, Arc2D.OPEN);
@@ -1329,7 +1375,7 @@ public abstract class AbstractGraphics2D
   public void fillArc(int x, int y, int width, int height, int arcStart,
                       int arcAngle)
   {
-    ShapeCache sc = getShapeCache();
+    ShapeCache sc = shapeCache;
     if (sc.arc == null)
       sc.arc = new Arc2D.Float();
     sc.arc.setArc(x, y, width, height, arcStart, arcAngle, Arc2D.PIE);
@@ -1338,7 +1384,7 @@ public abstract class AbstractGraphics2D
 
   public void drawPolyline(int[] xPoints, int[] yPoints, int npoints)
   {
-    ShapeCache sc = getShapeCache();
+    ShapeCache sc = shapeCache;
     if (sc.polyline == null)
       sc.polyline = new GeneralPath();
     GeneralPath p = sc.polyline;
@@ -1355,7 +1401,7 @@ public abstract class AbstractGraphics2D
    */
   public void drawPolygon(int[] xPoints, int[] yPoints, int npoints)
   {
-    ShapeCache sc = getShapeCache();
+    ShapeCache sc = shapeCache;
     if (sc.polygon == null)
       sc.polygon = new Polygon();
     sc.polygon.reset();
@@ -1370,7 +1416,7 @@ public abstract class AbstractGraphics2D
    */
   public void fillPolygon(int[] xPoints, int[] yPoints, int npoints)
   {
-    ShapeCache sc = getShapeCache();
+    ShapeCache sc = shapeCache;
     if (sc.polygon == null)
       sc.polygon = new Polygon();
     sc.polygon.reset();
@@ -1559,8 +1605,9 @@ public abstract class AbstractGraphics2D
       {
         Object v = renderingHints.get(RenderingHints.KEY_TEXT_ANTIALIASING);
         // We default to antialiasing for text rendering.
-        antialias = (v == RenderingHints.VALUE_TEXT_ANTIALIAS_ON
-                     || v == RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT);
+        antialias = v == RenderingHints.VALUE_TEXT_ANTIALIAS_ON
+                    || (v == RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT
+                         && DEFAULT_TEXT_AA);
       }
     else
       {
@@ -1569,12 +1616,15 @@ public abstract class AbstractGraphics2D
       }
     ScanlineConverter sc = getScanlineConverter();
     int resolution = 0;
+    int yRes = 0;
     if (antialias)
       {
         // Adjust resolution according to rendering hints.
         resolution = 2;
+        yRes = 4;
       }
-    sc.renderShape(this, s, clip, transform, resolution, renderingHints);
+    sc.renderShape(this, s, clip, transform, resolution, yRes, renderingHints);
+    freeScanlineConverter(sc);
   }
 
   /**
@@ -1606,7 +1656,7 @@ public abstract class AbstractGraphics2D
    */
   protected void rawDrawLine(int x0, int y0, int x1, int y1)
   {
-    ShapeCache sc = getShapeCache();
+    ShapeCache sc = shapeCache;
     if (sc.line == null)
       sc.line = new Line2D.Float();
     sc.line.setLine(x0, y0, x1, y1);
@@ -1615,29 +1665,13 @@ public abstract class AbstractGraphics2D
 
   protected void rawDrawRect(int x, int y, int w, int h)
   {
-    ShapeCache sc = getShapeCache();
+    ShapeCache sc = shapeCache;
     if (sc.rect == null)
       sc.rect = new Rectangle();
     sc.rect.setBounds(x, y, w, h);
     draw(sc.rect);
   }
 
-  /**
-   * Draws a string in optimization mode. The implementation should respect the
-   * clip and translation. It can assume that the clip is a rectangle and that
-   * the transform is only a translating transform.
-   *
-   * @param text the string to be drawn
-   * @param x the start of the baseline, X coordinate
-   * @param y the start of the baseline, Y coordinate
-   */
-  protected void rawDrawString(String text, int x, int y)
-  {
-    FontRenderContext ctx = getFontRenderContext();
-    GlyphVector gv = font.createGlyphVector(ctx, text.toCharArray());
-    drawGlyphVector(gv, x, y);
-  }
-
   /**
    * Clears a rectangle in optimization mode. The implementation should respect the
    * clip and translation. It can assume that the clip is a rectangle and that
@@ -1667,7 +1701,7 @@ public abstract class AbstractGraphics2D
    */
   protected void rawFillRect(int x, int y, int w, int h)
   {
-    ShapeCache sc = getShapeCache();
+    ShapeCache sc = shapeCache;
     if (sc.rect == null)
       sc.rect = new Rectangle();
     sc.rect.setBounds(x, y, w, h);
@@ -1918,35 +1952,38 @@ public abstract class AbstractGraphics2D
   }
 
   /**
-   * Returns the ShapeCache for the calling thread.
+   * Returns a free scanline converter from the pool.
    *
-   * @return the ShapeCache for the calling thread
+   * @return a scanline converter
    */
-  private ShapeCache getShapeCache()
+  private ScanlineConverter getScanlineConverter()
   {
-    ShapeCache sc = shapeCache.get();
-    if (sc == null)
+    synchronized (scanlineConverters)
       {
-        sc = new ShapeCache();
-        shapeCache.set(sc);
+        ScanlineConverter sc;
+        if (scanlineConverters.size() > 0)
+          {
+            sc = scanlineConverters.removeFirst();
+          }
+        else
+          {
+            sc = new ScanlineConverter();
+          }
+        return sc;
       }
-    return sc;
   }
 
   /**
-   * Returns the scanline converter for this thread.
+   * Puts a scanline converter back in the pool.
    *
-   * @return the scanline converter for this thread
+   * @param sc
    */
-  private ScanlineConverter getScanlineConverter()
+  private void freeScanlineConverter(ScanlineConverter sc)
   {
-    ScanlineConverter sc = scanlineConverters.get();
-    if (sc == null)
+    synchronized (scanlineConverters)
       {
-        sc = new ScanlineConverter();
-        scanlineConverters.set(sc);
+        scanlineConverters.addLast(sc);
       }
-    return sc;
   }
 
 }
diff --git a/libjava/classpath/gnu/java/awt/java2d/PixelCoverage.java b/libjava/classpath/gnu/java/awt/java2d/PixelCoverage.java
new file mode 100644 (file)
index 0000000..c83ad1f
--- /dev/null
@@ -0,0 +1,132 @@
+package gnu.java.awt.java2d;
+
+/**
+ * Stores and handles the pixel converage for a scanline. The pixel coverage
+ * is stored as sorted list of buckets, each of which holds information about
+ * the coverage for the X and Y axis. This is utilized to compute the actual
+ * coverage for each pixel on the scanline and finding chunks of pixels with
+ * equal coverage.
+ */
+final class PixelCoverage
+{
+
+  /**
+   * One bucket in the list.
+   */
+  private static final class Bucket
+  {
+    /**
+     * The X coordinate on the scanline to which this bucket belongs.
+     */
+    int xPos;
+
+    /**
+     * The X coverage.
+     */
+    int xCov;
+
+    /**
+     * The Y coverage.
+     */
+    int yCov;
+
+    /**
+     * Implements a linked list. This points to the next element of the list.
+     */
+    Bucket next;
+
+    /**
+     * Implements a linked list. This points to the previous element of the
+     * list.
+     */
+    Bucket prev;
+  }
+
+  /**
+   * The head of the sorted list of buckets.
+   */
+  private Bucket head;
+
+  /**
+   * The current bucket. We make use of the fact that the scanline converter
+   * always scans the scanline (and thus this list) from left to right to
+   * quickly find buckets or insertion points.
+   */
+  private Bucket current;
+
+  /**
+   * The bucket after the last valid bucket. Unused buckets are not thrown
+   * away and garbage collected. Instead, we keep them at the tail of the list
+   * and reuse them when necessary.
+   */
+  private Bucket last;
+
+  /**
+   * Indicates the the next scan of the scanline begins and that the next
+   * request will be at the beginning of this list. This makes searching and
+   * sorting of this list very quick.
+   */
+  void rewind()
+  {
+    current = head;
+  }
+
+  /**
+   * Clears the list. This does not throw away the old buckets but only
+   * resets the end-pointer of the list to the first element. All buckets are
+   * then unused and are reused when the list is filled again.
+   */
+  void clear()
+  {
+    last = head;
+  }
+
+  /**
+   * This adds the specified x and y coverage to the pixel at the specified
+   * X position.
+   *
+   * @param x the X position
+   * @param xc the x coverage
+   * @param yc the y coverage
+   */
+  void add(int x, int xc, int yc)
+  {
+    Bucket bucket = findOrInsert(x);
+    bucket.xCov += xc;
+    bucket.yCov += yc;
+  }
+
+  /**
+   * Finds the bucket in the list with the specified X coordinate.
+   * If no such bucket is found, then a new one is fetched (either a cached
+   * bucket from the end of the list or a newly allocated one) inserted at the
+   * correct position and returned.
+   *
+   * @param x the X coordinate
+   *
+   * @return a bucket to hold the coverage data
+   */
+  private Bucket findOrInsert(int x)
+  {
+    // First search for a matching bucket.
+    if (head == null)
+      {
+        // Special case: the list is still empty.
+        head = new Bucket();
+        current = head;
+        return head;
+      }
+
+    // This performs a linear search, starting from the current bucket.
+    // This is reasonably efficient because access to this list is always done
+    // in a linear fashion and we are not more then 1 or 2 buckets away from
+    // the one we're looking for.
+    Bucket match = current;
+    while (match != null && match.xPos != x)
+      {
+        
+      }
+
+    return match;
+  }
+}
index 2693a0b70c789b7fee6f4896a21a239b9bb95607..cc4bbef28c0267a6d7cd999916543d49972a6999 100644 (file)
@@ -61,11 +61,6 @@ public final class ScanlineConverter
    */
   private static int ONE = Fixed.fixedValue(FIXED_DIGITS, 1);
 
-  /**
-   * The number of significant bits for the Y resolution.
-   */
-  private static int Y_RESOLUTION = 4;
-
   /**
    * The actual number of scanlines.
    */
@@ -93,6 +88,11 @@ public final class ScanlineConverter
    */
   private int resolution;
 
+  /**
+   * The number of significant bits for the 'Y' resolution.
+   */
+  private int yResolution;
+
   /**
    * One half step according to the resolution. This is stored to avoid
    * unnecessary operations during rendering.
@@ -145,14 +145,15 @@ public final class ScanlineConverter
    * @param trans the transform
    */
   public void renderShape(Pixelizer p, Shape shape, Shape clip,
-                          AffineTransform trans, int res, RenderingHints hints)
+                          AffineTransform trans, int res, int yRes,
+                          RenderingHints hints)
   {
     // TODO: Do something useful with the rendering hints. Like, adjusting
     // the resolution.
 
     // Prepare resolution and upper bounds.
     clear();
-    setResolution(res);
+    setResolution(res, yRes);
 
     boolean haveClip = clip != null;
 
@@ -278,10 +279,10 @@ public final class ScanlineConverter
             int frac0 = ONE - Fixed.trunc(FIXED_DIGITS, x0);
             int frac1 = ONE - Fixed.trunc(FIXED_DIGITS, x1);
             // Only keep the first 4 digits after the point.
-            frac0 = frac0 >> (FIXED_DIGITS - Y_RESOLUTION);
-            frac1 = frac1 >> (FIXED_DIGITS - Y_RESOLUTION);
-            scanlineCoverage.add(pix0, 1 * (1 << Y_RESOLUTION), frac0);
-            scanlineCoverage.add(pix1, -1 * (1 << Y_RESOLUTION), -frac1);
+            frac0 = frac0 >> (FIXED_DIGITS - yResolution);
+            frac1 = frac1 >> (FIXED_DIGITS - yResolution);
+            scanlineCoverage.add(pix0, 1 * (1 << yResolution), frac0);
+            scanlineCoverage.add(pix1, -1 * (1 << yResolution), -frac1);
           }
         if (edge.isClip)
           inClip = ! inClip;
@@ -306,14 +307,16 @@ public final class ScanlineConverter
    *
    * @param res the resolution
    */
-  private void setResolution(int res)
+  private void setResolution(int res, int yRes)
   {
     int scanlinesPerPixel = 1 << res;
     int one = Fixed.fixedValue(FIXED_DIGITS, 1);
     resolution = one / (scanlinesPerPixel);
     halfStep = resolution / 2;
 
-    scanlineCoverage.setMaxCoverage(scanlinesPerPixel << Y_RESOLUTION);
+    scanlineCoverage.setMaxCoverage(scanlinesPerPixel << yResolution);
+
+    yResolution = yRes;
   }
 
   /**
index 6db7fb0198896212417687bcbc5099fa9e154e63..deb603bcb51f1f33a990044ffab32a6005edb1fb 100644 (file)
@@ -157,7 +157,7 @@ public final class ScanlineCoverage
    * A data object that carries information about pixel coverage on a scanline.
    * The data consists of a starting X position on the scanline, the
    * length of the range in pixels and the actual coverage value.
-´  */
+   **/
   public static final class Range
   {
     /**
diff --git a/libjava/classpath/gnu/java/awt/java2d/ShapeWrapper.java b/libjava/classpath/gnu/java/awt/java2d/ShapeWrapper.java
new file mode 100644 (file)
index 0000000..f4e77f4
--- /dev/null
@@ -0,0 +1,119 @@
+/* ShapeWrapper.java -- Protects shapes by wrapping them
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.awt.java2d;
+
+import java.awt.Rectangle;
+import java.awt.Shape;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+
+/**
+ * Protects any other shape from beeing modified by wrapping it.
+ */
+public class ShapeWrapper
+  implements Shape
+{
+
+  /**
+   * The shape to be protected.
+   */
+  private Shape shape;
+
+  /**
+   * Creates a new ShapeWrapper.
+   *
+   * @param other the shape to be protected
+   */
+  public ShapeWrapper(Shape other)
+  {
+    shape = other;
+  }
+
+  public boolean contains(double x, double y)
+  {
+    return shape.contains(x, y);
+  }
+
+  public boolean contains(Point2D p)
+  {
+    return shape.contains(p);
+  }
+
+  public boolean contains(double x, double y, double w, double h)
+  {
+    return shape.contains(x, y, w, h);
+  }
+
+  public boolean contains(Rectangle2D r)
+  {
+    return shape.contains(r);
+  }
+
+  public Rectangle getBounds()
+  {
+    return shape.getBounds();
+  }
+
+  public Rectangle2D getBounds2D()
+  {
+    return shape.getBounds2D();
+  }
+
+  public PathIterator getPathIterator(AffineTransform transform)
+  {
+    return shape.getPathIterator(transform);
+  }
+
+  public PathIterator getPathIterator(AffineTransform transform, double flatness)
+  {
+    return shape.getPathIterator(transform, flatness);
+  }
+
+  public boolean intersects(double x, double y, double w, double h)
+  {
+    return shape.intersects(x, y, w, h);
+  }
+
+  public boolean intersects(Rectangle2D r)
+  {
+    return shape.intersects(r);
+  }
+
+}
diff --git a/libjava/classpath/gnu/java/awt/java2d/TextCacheKey.java b/libjava/classpath/gnu/java/awt/java2d/TextCacheKey.java
new file mode 100644 (file)
index 0000000..0a60c62
--- /dev/null
@@ -0,0 +1,153 @@
+/* TextCacheKey.java -- Key to use for caching texts with their rendered layout
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.awt.java2d;
+
+import java.awt.Font;
+import java.awt.font.FontRenderContext;
+
+/**
+ * A key object to be used when caching pre-rendered text.
+ */
+public class TextCacheKey
+{
+
+  /**
+   * The actual string.
+   */
+  private String string;
+
+  /**
+   * The font render context.
+   */
+  private FontRenderContext fontRenderContext;
+
+  /**
+   * The font.
+   */
+  private Font font;
+
+  /**
+   * Creates a new TextCacheKey.
+   *
+   * This is intended to be used as search key. It is important to initialize
+   * the values using the setter methods before using this key, otherwise
+   * it will throw NPEs.
+   */
+  public TextCacheKey()
+  {
+    // No-arg constructor.
+  }
+
+  /**
+   * Creates a new TextCacheKey with initial values.
+   *
+   * @param s the string
+   * @param f the font
+   * @param frc the font render context
+   */
+  public TextCacheKey(String s, Font f, FontRenderContext frc)
+  {
+    string = s;
+    font = f;
+    fontRenderContext = frc;
+  }
+
+  /**
+   * Re-sets the string. This is intented to be used in search keys only.
+   *
+   * @param s the string to set
+   */
+  public void setString(String s)
+  {
+    string = s;
+  }
+
+  /**
+   * Sets the font render context.
+   * This is intented to be used in search keys only.
+   *
+   * @param frc the new font render context
+   */
+  public void setFontRenderContext(FontRenderContext frc)
+  {
+    fontRenderContext = frc;
+  }
+
+  /**
+   * Sets the font.
+   * This is intented to be used in search keys only.
+   *
+   * @param f the font to set
+   */
+  public void setFont(Font f)
+  {
+    font = f;
+  }
+
+  /**
+   * Determines if two objects are equal.
+   *
+   * @see Object#equals(Object)
+   */
+  public boolean equals(Object o)
+  {
+    boolean eq;
+    if (o instanceof TextCacheKey)
+      {
+        TextCacheKey other = (TextCacheKey) o;
+        eq = other.string.equals(string)
+             && other.font.equals(font)
+             && other.fontRenderContext.equals(fontRenderContext);
+      }
+    else
+      {
+        eq = false;
+      }
+    return eq;
+  }
+
+  /**
+   * Computes a hashcode for this key.
+   *
+   * @see Object#hashCode()
+   */
+  public int hashCode()
+  {
+    return string.hashCode() ^ font.hashCode() ^ fontRenderContext.hashCode();
+  }
+}
index 676bd891758c2024c2f18fbd98dc13119056985a..30dd89ba7b2539ea3f88815066620dd9c1ef1762 100644 (file)
 
 package gnu.java.awt.peer;
 
-import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.URI;
 
 /**
  * @author Mario Torre <neugens@limasoftware.net>
index db8acd1cda04c3f4691779db950d181b37b25e8f..fcd3f6acd92bb3d159351bcff81a150ec69bd1f2 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.awt.peer.gtk;
 
+import gnu.classpath.Configuration;
+
 import gnu.java.awt.ClasspathToolkit;
 
 import java.awt.AWTPermission;
@@ -120,7 +122,10 @@ public abstract class CairoGraphics2D extends Graphics2D
 {
   static 
   {
-    System.loadLibrary("gtkpeer");
+    if (Configuration.INIT_LOAD_LIBRARY)
+      {
+        System.loadLibrary("gtkpeer");
+      }
   }
 
   /**
@@ -222,7 +227,7 @@ public abstract class CairoGraphics2D extends Graphics2D
 
   /**
    * Sets up the default values and allocates the native cairographics2d structure
-   * @param cairo_t_pointer, a native pointer to a cairo_t of the context.
+   * @param cairo_t_pointer a native pointer to a cairo_t of the context.
    */
   public void setup(long cairo_t_pointer)
   { 
@@ -341,7 +346,8 @@ public abstract class CairoGraphics2D extends Graphics2D
 
   /**
    * Draw pixels as an RGBA int matrix
-   * @param w, h - width and height
+   * @param w - width
+   * @param h - height
    * @param stride - stride of the array width
    * @param i2u - affine transform array
    */
@@ -2113,10 +2119,10 @@ public abstract class CairoGraphics2D extends Graphics2D
   private static Rectangle computeIntersection(int x, int y, int w, int h,
                                                Rectangle rect)
   {
-    int x2 = (int) rect.x;
-    int y2 = (int) rect.y;
-    int w2 = (int) rect.width;
-    int h2 = (int) rect.height;
+    int x2 = rect.x;
+    int y2 = rect.y;
+    int w2 = rect.width;
+    int h2 = rect.height;
 
     int dx = (x > x2) ? x : x2;
     int dy = (y > y2) ? y : y2;
index b45a79fd6e75463c16dd96a36f60a15c7ecdce08..6c8a30d1143c5ee76e5fef2ab41f63ee662c5a88 100644 (file)
@@ -43,9 +43,7 @@ import gnu.java.awt.Buffers;
 import java.awt.Graphics2D;
 import java.awt.Point;
 import java.awt.Rectangle;
-import java.awt.Shape;
 import java.awt.color.ColorSpace;
-import java.awt.geom.AffineTransform;
 import java.awt.image.BufferedImage;
 import java.awt.image.ColorModel;
 import java.awt.image.DataBuffer;
@@ -102,7 +100,8 @@ public class CairoSurface extends WritableRaster
                                                           0x000000FF);
   /**
    * Allocates and clears the buffer and creates the cairo surface.
-   * @param width, height - the image size
+   * @param width - the image size
+   * @param height - the image size
    * @param stride - the buffer row stride. (in ints)
    */
   private native void create(int width, int height, int stride, int[] buf);
index 4ce20a30d324c93a3ab282f68c1415c264ec40bb..bfa3bc96ac30a41653e7967057a43e9940fa00bd 100644 (file)
@@ -153,7 +153,7 @@ public class ComponentGraphics extends CairoGraphics2D
   /**
    * Creates a cairo_t for a volatile image
    */
-  protected native long initFromVolatile( long pixmapPtr, int width, int height);
+  protected native long initFromVolatile( long pixmapPtr);
 
   /**
    * Grab lock
@@ -938,4 +938,4 @@ public class ComponentGraphics extends CairoGraphics2D
       unlock();
     }
   }
-}
\ No newline at end of file
+}
index 95a806ac7eed39d900488d183e40fe5f18091362..403671cc63e15f171a437586422301deeb98df00 100644 (file)
@@ -38,6 +38,7 @@ exception statement from your version. */
 
 package gnu.java.awt.peer.gtk;
 
+import gnu.classpath.Configuration;
 import gnu.classpath.Pointer;
 
 import gnu.java.awt.ClasspathToolkit;
@@ -166,7 +167,10 @@ public class GdkFontPeer extends ClasspathFontPeer
 
   static 
   {
-    System.loadLibrary("gtkpeer");
+    if (Configuration.INIT_LOAD_LIBRARY)
+      {
+        System.loadLibrary("gtkpeer");
+      }
 
     initStaticState ();
 
index d06af84433f3d69e0c5620700d09a7e4aa6b1454..980866c4b67ccebae4f938485f2e0c24218ab582 100644 (file)
@@ -38,6 +38,7 @@ exception statement from your version. */
 
 package gnu.java.awt.peer.gtk;
 
+import gnu.classpath.Configuration;
 import gnu.java.awt.ClasspathGraphicsEnvironment;
 
 import java.awt.Font;
@@ -72,7 +73,10 @@ public class GdkGraphicsEnvironment extends ClasspathGraphicsEnvironment
 
   static
   {
-    System.loadLibrary("gtkpeer");
+    if (Configuration.INIT_LOAD_LIBRARY)
+      {
+        System.loadLibrary("gtkpeer");
+      }
 
     GtkToolkit.initializeGlobalIDs();
     initIDs();
index e52bf050c094cf5d12e5fa46b8fa75d8f32495c7..dbf4a2018c1805d2bc81e332af593914b72e32af 100644 (file)
@@ -68,13 +68,17 @@ import javax.imageio.spi.ImageWriterSpi;
 import javax.imageio.stream.ImageInputStream;
 import javax.imageio.stream.ImageOutputStream;
 
+import gnu.classpath.Configuration;
 import gnu.classpath.Pointer;
 
 public class GdkPixbufDecoder extends gnu.java.awt.image.ImageDecoder
 {
   static 
   {
-    System.loadLibrary("gtkpeer");
+    if (Configuration.INIT_LOAD_LIBRARY)
+      {
+        System.loadLibrary("gtkpeer");
+      }
 
     initStaticState ();
   }
index 7ef4645a25740504f3a9165ea81c93cb75cd1634..9ce0b96dac3c3bc6df98c6cdaaa38f2bd12a132b 100644 (file)
@@ -46,6 +46,7 @@ import java.awt.Rectangle;
 import java.awt.Window;
 import java.util.ArrayList;
 
+import gnu.classpath.Configuration;
 import gnu.classpath.Pointer;
 
 class GdkScreenGraphicsDevice extends GraphicsDevice
@@ -98,7 +99,11 @@ class GdkScreenGraphicsDevice extends GraphicsDevice
 
   static
   {
-    System.loadLibrary("gtkpeer");
+    if (Configuration.INIT_LOAD_LIBRARY)
+      {
+        System.loadLibrary("gtkpeer");
+      }
+
     GtkToolkit.initializeGlobalIDs();
     initIDs();
   }
index f658c17afbb7d3987a9ed6ca09358ffb3f2d416e..4b8fc128cb761f4a64882fa5b31447129074953a 100644 (file)
@@ -105,7 +105,9 @@ public class GtkComponentPeer extends GtkGenericPeer
   native void gtkWidgetGetDimensions (int[] dim);
   native void gtkWidgetGetPreferredDimensions (int[] dim);
   native void gtkWindowGetLocationOnScreen (int[] point);
+  native void gtkWindowGetLocationOnScreenUnlocked (int[] point);
   native void gtkWidgetGetLocationOnScreen (int[] point);
+  native void gtkWidgetGetLocationOnScreenUnlocked (int[] point);
   native void gtkWidgetSetCursor (int type, GtkImage image, int x, int y);
   native void gtkWidgetSetCursorUnlocked (int type, GtkImage image,
                                           int x, int y);
@@ -250,7 +252,10 @@ public class GtkComponentPeer extends GtkGenericPeer
   public Point getLocationOnScreen () 
   { 
     int point[] = new int[2];
-    gtkWidgetGetLocationOnScreen (point);
+    if (Thread.currentThread() == GtkMainThread.mainThread)
+        gtkWidgetGetLocationOnScreenUnlocked (point);
+    else
+        gtkWidgetGetLocationOnScreen (point);
     return new Point (point[0], point[1]);
   }
 
index 4278a4579e4c5c5493973e9befb41b528f004d7d..87dbd5e0f56b6c403f7545c92961d57257667849 100644 (file)
@@ -87,7 +87,7 @@ public class GtkFramePeer extends GtkWindowPeer
       {
         // We're adding a menubar where there was no menubar before.
         gtkFixedSetVisible (false);
-        menuBar = (MenuBarPeer) ((MenuBar) bar).getPeer();
+        menuBar = (MenuBarPeer) bar.getPeer();
         setMenuBarPeer (menuBar);
         int menuBarWidth =
           awtComponent.getWidth () - insets.left - insets.right;
@@ -109,7 +109,7 @@ public class GtkFramePeer extends GtkWindowPeer
         int oldHeight = menuBarHeight;
         int menuBarWidth =
           awtComponent.getWidth () - insets.left - insets.right;
-        menuBar = (MenuBarPeer) ((MenuBar) bar).getPeer ();
+        menuBar = (MenuBarPeer) bar.getPeer ();
         setMenuBarPeer (menuBar);
         if (menuBarWidth > 0)
           setMenuBarWidth (menuBar, menuBarWidth);
index e40a04eed92e2b800b5266feadf6c245f96b5708..0ee61df84b7ebaf7a55628a6c3723de5916b38e3 100644 (file)
@@ -134,7 +134,7 @@ public class GtkMainThread extends Thread
                   }
               }
             GtkGenericPeer.q()
-              .postEvent(new NativeEventLoopRunningEvent(new Boolean(true)));
+              .postEvent(new NativeEventLoopRunningEvent(Boolean.TRUE));
           }
       }
   }
@@ -161,7 +161,7 @@ public class GtkMainThread extends Thread
                   }
               }
             GtkGenericPeer.q()
-              .postEvent(new NativeEventLoopRunningEvent(new Boolean(false)));
+              .postEvent(new NativeEventLoopRunningEvent(Boolean.FALSE));
             }
       }
   }
index dc9c7155e6edd9e831eb98a8700e1d8df71b414c..486304ef010196911afbb2f092e53957379e6d35 100644 (file)
@@ -39,6 +39,8 @@ exception statement from your version. */
 
 package gnu.java.awt.peer.gtk;
 
+import gnu.classpath.Configuration;
+
 import gnu.java.awt.AWTUtilities;
 import gnu.java.awt.EmbeddedWindow;
 import gnu.java.awt.dnd.GtkMouseDragGestureRecognizer;
@@ -170,7 +172,10 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit
 
   static
   {
-    System.loadLibrary("gtkpeer");
+    if (Configuration.INIT_LOAD_LIBRARY)
+      {
+        System.loadLibrary("gtkpeer");
+      }
 
     /**
      * Gotta do that first.
index 5dc4b2e5b377008044ac4779345c3a03ac0a309e..9744c3a532ece2b9d3d1d2b2da8bc2d95387505e 100644 (file)
@@ -396,7 +396,10 @@ public class GtkWindowPeer extends GtkContainerPeer
   public Point getLocationOnScreen()
   {
     int point[] = new int[2];
-    gtkWindowGetLocationOnScreen(point);
+    if (Thread.currentThread() == GtkMainThread.mainThread)
+      gtkWindowGetLocationOnScreenUnlocked(point);
+    else
+      gtkWindowGetLocationOnScreen(point);
     return new Point(point[0], point[1]);
   }
 
index ad5cd5ecdf262e23e0866f5f5dbcc30a0c1bc19e..b5858f905954f467714e1a08e2987fd725f40706 100644 (file)
@@ -68,14 +68,14 @@ public class VolatileImageGraphics extends ComponentGraphics
   public VolatileImageGraphics(GtkVolatileImage img)
   {
     this.owner = img;
-    cairo_t = initFromVolatile( owner.nativePointer, img.width, img.height );
+    cairo_t = initFromVolatile( owner.nativePointer );
     setup( cairo_t );
   }
 
   private VolatileImageGraphics(VolatileImageGraphics copy)
   {
     this.owner = copy.owner;
-    cairo_t = initFromVolatile(owner.nativePointer, owner.width, owner.height);
+    cairo_t = initFromVolatile(owner.nativePointer);
     copy( copy, cairo_t );
   }
 
index 7457c38d2ff6fd04d117c980a47eed60ff9da6de..87324c7104314be8dc6dbea4ab570c388f521061 100644 (file)
@@ -74,7 +74,7 @@ public class QtMenuPeer extends QtMenuComponentPeer implements MenuPeer
        Menu o = (Menu)owner;
        for( int i=0; i < o.getItemCount(); i++ )
          {
-           MenuItem ci = (MenuItem)o.getItem(i);
+           MenuItem ci = o.getItem(i);
            if (ci instanceof Menu && ci.getPeer() != null)
              ((QtMenuPeer)ci.getPeer()).addItems();
            addItem( ci );
index a8e3cb01bab09eec65d0ee2919d6473dca614fd8..03d6388e9f22a60e2e78e6de87a9307789b48673 100755 (executable)
@@ -37,16 +37,12 @@ exception statement from your version. */
 
 package gnu.java.awt.peer.swing;
 
-import java.awt.Button;
 import java.awt.Checkbox;
 import java.awt.CheckboxGroup;
 import java.awt.Container;
 import java.awt.Graphics;
 import java.awt.Image;
-import java.awt.Label;
 import java.awt.Point;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
 import java.awt.event.FocusEvent;
 import java.awt.event.ItemEvent;
 import java.awt.event.ItemListener;
@@ -56,7 +52,6 @@ import java.awt.peer.CheckboxPeer;
 
 import javax.swing.JCheckBox;
 import javax.swing.JComponent;
-import javax.swing.JLabel;
 import javax.swing.JToggleButton;
 
 /**
index bd9dcd77aaa3a63f4a9fa1aa0579ede8fc88031b..0033efb025f7a096bcb5153929e9fd3f3b1a5070 100644 (file)
@@ -174,7 +174,7 @@ public class SwingMenuBarPeer
   /**
    * Adds a help menu to the menu bar.
    *
-   * @param m the menu to add
+   * @param menu the menu to add
    */
   public void addHelpMenu(Menu menu)
   {
index 2c438a1ccb1f7a2c495edaf5e3fcb217610e68d6..5be82f6959321b0309d2a40e7bc799f3d8f3b77b 100644 (file)
@@ -37,7 +37,6 @@ exception statement from your version. */
 
 package gnu.java.awt.peer.swing;
 
-import java.awt.Component;
 import java.awt.Container;
 import java.awt.Dimension;
 import java.awt.Graphics;
index 29a689da42a8de913d405a5deeb0391969154413..28dc5f339bf718df599b1ca9b3e4d72b53a83821 100644 (file)
@@ -36,7 +36,6 @@ obligated to do so.  If you do not wish to do so, delete this
 exception statement from your version. */
 package gnu.java.awt.peer.swing;
 
-import java.awt.Component;
 import java.awt.Container;
 import java.awt.Dimension;
 import java.awt.Graphics;
@@ -328,7 +327,7 @@ public class SwingTextFieldPeer
    * @param startPos the start index of the selection
    * @param endPos the start index of the selection
    */
-  public void select(int start_pos, int endPos)
+  public void select(int startPos, int endPos)
   {
     // TODO: Must be implemented.
   }
diff --git a/libjava/classpath/gnu/java/awt/peer/x/ImageConverter.java b/libjava/classpath/gnu/java/awt/peer/x/ImageConverter.java
deleted file mode 100644 (file)
index 6d32448..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-/* ImageConverter.java -- Convert arbitrary Image impl to XImage
-   Copyright (C) 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-package gnu.java.awt.peer.x;
-
-import java.awt.Color;
-import java.awt.Graphics;
-import java.awt.image.ColorModel;
-import java.awt.image.ImageConsumer;
-import java.util.Hashtable;
-
-/**
- * Convert a non-XImage to an XImage.
- * 
- * @author Roman Kennke (kennke@aicas.com)
- */
-public class ImageConverter implements ImageConsumer
-{
-
-  private XImage image;
-  private Graphics imageGraphics;
-
-  public void setDimensions(int width, int height)
-  {
-    image = new XImage(width, height);
-  }
-
-  public void setProperties(Hashtable props)
-  {
-    // Ignore for now.
-  }
-
-  public void setColorModel(ColorModel model)
-  {
-    // Ignore for now.
-  }
-
-  public void setHints(int flags)
-  {
-    // Ignore for now.
-  }
-
-  public void setPixels(int x, int y, int w, int h, ColorModel model,
-                        byte[] pixels, int offset, int scansize)
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  public void setPixels(int x, int y, int w, int h, ColorModel model,
-                        int[] pixels, int offset, int scansize)
-  {
-    System.err.println("transferType: " + model.getTransferType());
-    System.err.println("colorModel: " + model);
-    if (imageGraphics == null)
-      imageGraphics = image.getGraphics();
-    int xend = x + w;
-    int yend = y + h;
-    for (int yy = y; yy < yend; yy++)
-      {
-        for (int xx = x; xx < xend; xx++)
-          {
-            int pixel = pixels[yy * scansize + xx + offset];
-            imageGraphics.setColor(new Color(model.getRGB(pixel)));
-            imageGraphics.fillRect(xx, yy, 1, 1);
-          }
-      }
-  }
-
-  public void imageComplete(int status)
-  {
-    // Nothing to do here.
-  }
-
-  XImage getXImage()
-  {
-    return image;
-  }
-}
index d376619c595d37ccf92e2f844e89dba4c54a4b1a..7f9843533168c6ba2d3f9b8b54bb1d3d13a30fc8 100644 (file)
@@ -39,6 +39,7 @@ exception statement from your version. */
 package gnu.java.awt.peer.x;
 
 import java.awt.Graphics;
+import java.awt.Insets;
 import java.awt.Rectangle;
 import java.awt.Toolkit;
 import java.awt.Window;
@@ -223,16 +224,21 @@ public class XEventPump
         System.err.println("resize request for window id: " + key);
 
       // Detect and report size changes.
-      if (c.width() != awtWindow.getWidth()
-          || c.height() != awtWindow.getHeight())
+      XWindowPeer xwindow = (XWindowPeer) awtWindow.getPeer();
+      Insets i = xwindow.insets();
+      if (c.width() != awtWindow.getWidth() - i.left - i.right
+          || c.height() != awtWindow.getHeight() - i.top - i.bottom)
         {
           if (XToolkit.DEBUG)
             System.err.println("Setting size on AWT window: " + c.width()
                              + ", " + c.height() + ", " + awtWindow.getWidth()
                              + ", " + awtWindow.getHeight());
-          ((XWindowPeer) awtWindow.getPeer()).callback = true;
-          awtWindow.setSize(c.width(), c.height());
-          ((XWindowPeer) awtWindow.getPeer()).callback = false;
+          xwindow.callback = true;
+          xwindow.xwindow.width = c.width();
+          xwindow.xwindow.height = c.height();
+          awtWindow.setSize(c.width() + i.left + i.right,
+                            c.height() + i.top + i.bottom);
+          xwindow.callback = false;
         }
       break;
     case Expose.CODE:
@@ -245,6 +251,7 @@ public class XEventPump
                                   exp.height());
       //System.err.println("expose paint: " + r);
       // We need to clear the background of the exposed rectangle.
+      assert awtWindow != null : "awtWindow == null for window ID: " + key;
       Graphics g = awtWindow.getGraphics();
       g.clearRect(r.x, r.y, r.width, r.height);
       g.dispose();
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java b/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java
new file mode 100644 (file)
index 0000000..0a96a61
--- /dev/null
@@ -0,0 +1,768 @@
+/* XFontPeer.java -- The font peer for X
+   Copyright (C) 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.java.awt.peer.x;
+
+import java.awt.AWTError;
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.GraphicsDevice;
+import java.awt.GraphicsEnvironment;
+import java.awt.font.FontRenderContext;
+import java.awt.font.GlyphVector;
+import java.awt.font.LineMetrics;
+import java.awt.font.TextAttribute;
+import java.awt.geom.Rectangle2D;
+import java.io.IOException;
+import java.io.InputStream;
+import java.text.CharacterIterator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Properties;
+
+import gnu.java.awt.peer.ClasspathFontPeer;
+import gnu.x11.Display;
+import gnu.x11.Fontable;
+
+/**
+ * The bridge from AWT to X fonts.
+ *
+ * @author Roman Kennke (kennke@aicas.com)
+ */
+public class XFontPeer
+  extends ClasspathFontPeer
+{
+
+  /**
+   * The font mapping as specified in the file fonts.properties.
+   */
+  private static Properties fontProperties;
+  static
+  {
+    fontProperties = new Properties();
+    InputStream in = XFontPeer.class.getResourceAsStream("xfonts.properties");
+    try
+      {
+        fontProperties.load(in);
+      }
+    catch (IOException e)
+      {
+        e.printStackTrace();
+      }
+  }
+
+  /**
+   * The FontMetrics implementation for XFontPeer.
+   */
+  private class XFontMetrics
+    extends FontMetrics
+  {
+    /**
+     * The ascent of the font.
+     */ 
+    int ascent;
+
+    /**
+     * The descent of the font.
+     */ 
+    int descent;
+
+    /**
+     * The maximum of the character advances.
+     */
+    private int maxAdvance;
+
+    /**
+     * The internal leading.
+     */
+    int leading;
+
+    /**
+     * Cached string metrics. This caches string metrics locally so that the
+     * server doesn't have to be asked each time.
+     */
+    private HashMap metricsCache;
+
+    /**
+     * The widths of the characters indexed by the characters themselves.
+     */
+    private int[] charWidths;
+
+    /**
+     * Creates a new XFontMetrics for the specified font.
+     *
+     * @param font the font
+     */
+    protected XFontMetrics(Font font)
+    {
+      super(font);
+      metricsCache = new HashMap();
+      Fontable.FontInfo info = getXFont().info();
+      ascent = info.font_ascent();
+      descent = info.font_descent();
+      maxAdvance = info.max_bounds().character_width();
+      leading = 0; // TODO: Not provided by X. Possible not needed.
+
+      if (info.min_byte1() == 0 && info.max_byte1() == 0)
+        readCharWidthsLinear(info);
+      else
+        readCharWidthsNonLinear(info);
+    }
+
+    /**
+     * Reads the character widths when specified in a linear fashion. That is
+     * when the min-byte1 and max-byte2 fields are both zero in the X protocol.
+     *
+     * @param info the font info reply
+     */
+    private void readCharWidthsLinear(Fontable.FontInfo info)
+    {
+      int startIndex = info.min_char_or_byte2();
+      int endIndex = info.max_char_or_byte2();
+      charWidths = new int[endIndex + 1];
+      // All the characters before startIndex are zero width.
+      for (int i = 0; i < startIndex; i++)
+        {
+          charWidths[i] = 0;
+        }
+      // All the other character info is fetched from the font info.
+      int index = startIndex;
+      Fontable.FontInfo.CharInfo[] charInfos = info.char_infos();
+      for (Fontable.FontInfo.CharInfo charInfo : charInfos)
+        {
+          charWidths[index] = charInfo.character_width();
+          index++;
+        }
+    }
+
+    private void readCharWidthsNonLinear(Fontable.FontInfo info)
+    {
+      // TODO: Implement.
+      throw new UnsupportedOperationException("Not yet implemented");
+    }
+
+    /**
+     * Returns the ascent of the font.
+     *
+     * @return the ascent of the font
+     */
+    public int getAscent()
+    {
+      return ascent;
+    }
+
+    /**
+     * Returns the descent of the font.
+     *
+     * @return the descent of the font
+     */
+    public int getDescent()
+    {
+      return descent;
+    }
+
+    /**
+     * Returns the overall height of the font. This is the distance from
+     * baseline to baseline (usually ascent + descent + leading).
+     *
+     * @return the overall height of the font
+     */
+    public int getHeight()
+    {
+      return ascent + descent;
+    }
+
+    /**
+     * Returns the leading of the font.
+     *
+     * @return the leading of the font
+     */
+    public int getLeading()
+    {
+      return leading;
+    }
+
+    /**
+     * Returns the maximum advance for this font.
+     *
+     * @return the maximum advance for this font
+     */
+    public int getMaxAdvance()
+    {
+      return maxAdvance;
+    }
+
+    /**
+     * Determines the width of the specified character <code>c</code>.
+     *
+     * @param c the character
+     *
+     * @return the width of the character
+     */
+    public int charWidth(char c)
+    {
+      int width;
+      if (c > charWidths.length)
+        width = charWidths['?'];
+      else
+        width = charWidths[c];
+      return width;
+    }
+
+    /**
+     * Determines the overall width of the specified string.
+     *
+     * @param c the char buffer holding the string
+     * @param offset the starting offset of the string in the buffer
+     * @param length the number of characters in the string buffer 
+     *
+     * @return the overall width of the specified string
+     */
+    public int charsWidth(char[] c, int offset, int length)
+    {
+      int width = 0;
+      if (c.length > 0 && length > 0)
+        {
+          String s = new String(c, offset, length);
+          width = stringWidth(s);
+        }
+      return width;
+    }
+
+    /**
+     * Determines the overall width of the specified string.
+     *
+     * @param s the string
+     *
+     * @return the overall width of the specified string
+     */
+    public int stringWidth(String s)
+    {
+      int width = 0;
+      if (s.length() > 0)
+        {
+          if (metricsCache.containsKey(s))
+            {
+              width = ((Integer) metricsCache.get(s)).intValue();
+            }
+          else
+            {
+              Fontable.TextExtentInfo extents = getXFont().text_extent(s);
+              /*
+               System.err.println("string: '" + s + "' : ");
+               System.err.println("ascent: " + extents.getAscent());
+               System.err.println("descent: " + extents.getDescent());
+               System.err.println("overall ascent: " + extents.getOverallAscent());
+               System.err.println("overall descent: " + extents.getOverallDescent());
+               System.err.println("overall width: " + extents.getOverallWidth());
+               System.err.println("overall left: " + extents.getOverallLeft());
+               System.err.println("overall right: " + extents.getOverallRight());
+               */
+              width = extents.overall_width(); // + extents.overall_left();
+              //System.err.println("String: " + s + ", width: " + width);
+              metricsCache.put(s, new Integer(width));
+            }
+        }
+      //System.err.print("stringWidth: '" + s + "': ");
+      //System.err.println(width);
+      return width;
+    }
+  }
+
+  /**
+   * The LineMetrics implementation for the XFontPeer.
+   */
+  private class XLineMetrics
+    extends LineMetrics
+  {
+
+    /**
+     * Returns the ascent of the font.
+     *
+     * @return the ascent of the font
+     */
+    public float getAscent()
+    {
+      return fontMetrics.ascent;
+    }
+
+    public int getBaselineIndex()
+    {
+      // FIXME: Implement this.
+      throw new UnsupportedOperationException();
+    }
+
+    public float[] getBaselineOffsets()
+    {
+      // FIXME: Implement this.
+      throw new UnsupportedOperationException();
+    }
+
+    /**
+     * Returns the descent of the font.
+     *
+     * @return the descent of the font
+     */
+    public float getDescent()
+    {
+      return fontMetrics.descent;
+    }
+
+    /**
+     * Returns the overall height of the font. This is the distance from
+     * baseline to baseline (usually ascent + descent + leading).
+     *
+     * @return the overall height of the font
+     */
+    public float getHeight()
+    {
+      return fontMetrics.ascent + fontMetrics.descent;
+    }
+
+    /**
+     * Returns the leading of the font.
+     *
+     * @return the leading of the font
+     */
+    public float getLeading()
+    {
+      return fontMetrics.leading;
+    }
+
+    public int getNumChars()
+    {
+      // FIXME: Implement this.
+      throw new UnsupportedOperationException();
+    }
+
+    public float getStrikethroughOffset()
+    {
+      return 0.F; // TODO: Provided by X??
+    }
+
+    public float getStrikethroughThickness()
+    {
+      return 1.F; // TODO: Provided by X??
+    }
+
+    public float getUnderlineOffset()
+    {
+      return 0.F; // TODO: Provided by X??
+    }
+
+    public float getUnderlineThickness()
+    {
+      return 1.F; // TODO: Provided by X??
+    }
+      
+  }
+
+  /**
+   * The X font.
+   */
+  private gnu.x11.Font xfont;
+
+  private String name;
+
+  private int style;
+
+  private int size;
+
+  /**
+   * The font metrics for this font.
+   */
+  XFontMetrics fontMetrics; 
+
+  /**
+   * Creates a new XFontPeer for the specified font name, style and size.
+   *
+   * @param name the font name
+   * @param style the font style (bold / italic / normal)
+   * @param size the size of the font
+   */
+  public XFontPeer(String name, int style, int size)
+  {
+    super(name, style, size);
+    this.name = name;
+    this.style = style;
+    this.size = size;
+  }
+
+  /**
+   * Creates a new XFontPeer for the specified font name and style
+   * attributes.
+   *
+   * @param name the font name
+   * @param atts the font attributes
+   */
+  public XFontPeer(String name, Map atts)
+  {
+    super(name, atts);
+    String family = name;
+    if (family == null || family.equals(""))
+      family = (String) atts.get(TextAttribute.FAMILY);
+    if (family == null)
+      family = "SansSerif";
+
+    int size = 12;
+    Float sizeFl = (Float) atts.get(TextAttribute.SIZE);
+    if (sizeFl != null)
+      size = sizeFl.intValue();
+
+    int style = 0;
+    // Detect italic attribute.
+    Float posture = (Float) atts.get(TextAttribute.POSTURE);
+    if (posture != null && !posture.equals(TextAttribute.POSTURE_REGULAR))
+      style |= Font.ITALIC;
+
+    // Detect bold attribute.
+    Float weight = (Float) atts.get(TextAttribute.WEIGHT);
+    if (weight != null && weight.compareTo(TextAttribute.WEIGHT_REGULAR) > 0)
+      style |= Font.BOLD;
+
+    this.name = name;
+    this.style = style;
+    this.size = size;
+  }
+
+  /**
+   * Initializes the font peer with the specified attributes. This method is
+   * called from both constructors.
+   *
+   * @param name the font name
+   * @param style the font style
+   * @param size the font size
+   */
+  private void init(String name, int style, int size)
+  {
+    if (name == null)
+      {
+        name = "SansSerif";
+      }
+    GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
+    GraphicsDevice dev = env.getDefaultScreenDevice();
+    if (dev instanceof XGraphicsDevice)
+      {
+        Display display = ((XGraphicsDevice) dev).getDisplay();
+        String fontDescr = encodeFont(name, style, size);
+        if (XToolkit.DEBUG)
+          System.err.println("XLFD font description: " + fontDescr);
+        xfont = new gnu.x11.Font(display, fontDescr);
+      }
+    else
+      {
+        throw new AWTError("Local GraphicsEnvironment is not XWindowGraphicsEnvironment");
+      }
+  }
+
+  public boolean canDisplay(Font font, int c)
+  {
+    // TODO: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented.");
+  }
+
+  public int canDisplayUpTo(Font font, CharacterIterator i, int start, int limit)
+  {
+    // TODO: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented.");
+  }
+
+  public String getSubFamilyName(Font font, Locale locale)
+  {
+    // TODO: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented.");
+  }
+
+  public String getPostScriptName(Font font)
+  {
+    // TODO: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented.");
+  }
+
+  public int getNumGlyphs(Font font)
+  {
+    // TODO: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented.");
+  }
+
+  public int getMissingGlyphCode(Font font)
+  {
+    // TODO: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented.");
+  }
+
+  public byte getBaselineFor(Font font, char c)
+  {
+    // TODO: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented.");
+  }
+
+  public String getGlyphName(Font font, int glyphIndex)
+  {
+    // TODO: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented.");
+  }
+
+  public GlyphVector createGlyphVector(Font font, FontRenderContext frc,
+                                       CharacterIterator ci)
+  {
+    // TODO: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented.");
+  }
+
+  public GlyphVector createGlyphVector(Font font, FontRenderContext ctx,
+                                       int[] glyphCodes)
+  {
+    // TODO: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented.");
+  }
+
+  public GlyphVector layoutGlyphVector(Font font, FontRenderContext frc,
+                                       char[] chars, int start, int limit,
+                                       int flags)
+  {
+    // TODO: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented.");
+  }
+
+  /**
+   * Returns the font metrics for the specified font.
+   *
+   * @param font the font for which to fetch the font metrics
+   *
+   * @return the font metrics for the specified font
+   */
+  public FontMetrics getFontMetrics(Font font)
+  {
+    if (font.getPeer() != this)
+      throw new AWTError("The specified font has a different peer than this");
+
+    if (fontMetrics == null)
+      fontMetrics = new XFontMetrics(font);
+    return fontMetrics;
+  }
+
+  /**
+   * Frees the font in the X server.
+   */
+  protected void finalize()
+  {
+    if (xfont != null)
+      xfont.close();
+  }
+
+  public boolean hasUniformLineMetrics(Font font)
+  {
+    // TODO: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented.");
+  }
+
+  /**
+   * Returns the line metrics for this font and the specified string and
+   * font render context.
+   */
+  public LineMetrics getLineMetrics(Font font, CharacterIterator ci, int begin,
+                                    int limit, FontRenderContext rc)
+  {
+    return new XLineMetrics();
+  }
+
+  public Rectangle2D getMaxCharBounds(Font font, FontRenderContext rc)
+  {
+    // TODO: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented.");
+  }
+
+  public Rectangle2D getStringBounds(Font font, CharacterIterator ci,
+                                     int begin, int limit, FontRenderContext frc)
+  {
+    // TODO: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented.");
+  }
+
+  /**
+   * Encodes a font name + style + size specification into a X logical font
+   * description (XLFD) as described here:
+   *
+   * http://www.meretrx.com/e93/docs/xlfd.html
+   *
+   * This is implemented to look up the font description in the
+   * fonts.properties of this package.
+   *
+   * @param name the font name
+   * @param atts the text attributes
+   *
+   * @return the encoded font description
+   */
+  static String encodeFont(String name, Map atts)
+  {
+    String family = name;
+    if (family == null || family.equals(""))
+      family = (String) atts.get(TextAttribute.FAMILY);
+    if (family == null)
+      family = "SansSerif";
+
+    int size = 12;
+    Float sizeFl = (Float) atts.get(TextAttribute.SIZE);
+    if (sizeFl != null)
+      size = sizeFl.intValue();
+
+    int style = 0;
+    // Detect italic attribute.
+    Float posture = (Float) atts.get(TextAttribute.POSTURE);
+    if (posture != null && !posture.equals(TextAttribute.POSTURE_REGULAR))
+      style |= Font.ITALIC;
+
+    // Detect bold attribute.
+    Float weight = (Float) atts.get(TextAttribute.WEIGHT);
+    if (weight != null && weight.compareTo(TextAttribute.WEIGHT_REGULAR) > 0)
+      style |= Font.BOLD;
+
+    return encodeFont(family, style, size);
+  }
+
+  /**
+   * Encodes a font name + style + size specification into a X logical font
+   * description (XLFD) as described here:
+   *
+   * http://www.meretrx.com/e93/docs/xlfd.html
+   *
+   * This is implemented to look up the font description in the
+   * fonts.properties of this package.
+   *
+   * @param name the font name
+   * @param style the font style
+   * @param size the font size
+   *
+   * @return the encoded font description
+   */
+  static String encodeFont(String name, int style, int size)
+  {
+    StringBuilder key = new StringBuilder();
+    key.append(validName(name));
+    key.append('.');
+    switch (style)
+    {
+      case Font.BOLD:
+        key.append("bold");
+        break;
+      case Font.ITALIC:
+        key.append("italic");
+        break;
+      case (Font.BOLD | Font.ITALIC):
+        key.append("bolditalic");
+        break;
+      case Font.PLAIN:
+      default:
+        key.append("plain");
+      
+    }
+
+    String protoType = fontProperties.getProperty(key.toString());
+    int s = validSize(size);
+    return protoType.replaceFirst("%d", String.valueOf(s));
+  }
+
+  /**
+   * Checks the specified font name for a valid font name. If the font name
+   * is not known, then this returns 'sansserif' as fallback.
+   *
+   * @param name the font name to check
+   *
+   * @return a valid font name
+   */
+  static String validName(String name)
+  {
+    String retVal;
+    if (name.equalsIgnoreCase("sansserif")
+        || name.equalsIgnoreCase("serif")
+        || name.equalsIgnoreCase("monospaced")
+        || name.equalsIgnoreCase("dialog")
+        || name.equalsIgnoreCase("dialoginput"))
+      {
+        retVal = name.toLowerCase();
+      }
+    else
+      {
+        retVal = "sansserif";
+      }
+    return retVal;
+  }
+
+  /**
+   * Translates an arbitrary point size to a size that is typically available
+   * on an X server. These are the sizes 8, 10, 12, 14, 18 and 24.
+   *
+   * @param size the queried size
+   * @return the real available size
+   */
+  private static final int validSize(int size)
+  {
+    int val;
+    if (size <= 9)
+      val = 8;
+    else if (size <= 11)
+      val = 10;
+    else if (size <= 13)
+      val = 12;
+    else if (size <= 17)
+      val = 14;
+    else if (size <= 23)
+      val = 18;
+    else
+      val = 24;
+    return val;
+  }
+
+  /**
+   * Returns the X Font reference. This lazily loads the font when first
+   * requested.
+   *
+   * @return the X Font reference
+   */
+  gnu.x11.Font getXFont()
+  {
+    if (xfont == null)
+      {
+        init(name, style, size);
+      }
+    return xfont;
+  }
+}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XFontPeer2.java b/libjava/classpath/gnu/java/awt/peer/x/XFontPeer2.java
deleted file mode 100644 (file)
index ab3861b..0000000
+++ /dev/null
@@ -1,468 +0,0 @@
-/* XFontPeer2.java -- A Java based TTF font peer for X
-   Copyright (C) 2006 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-package gnu.java.awt.peer.x;
-
-import java.awt.Font;
-import java.awt.FontMetrics;
-import java.awt.font.FontRenderContext;
-import java.awt.font.GlyphVector;
-import java.awt.font.LineMetrics;
-import java.awt.font.TextAttribute;
-import java.awt.geom.AffineTransform;
-import java.awt.geom.Point2D;
-import java.awt.geom.Rectangle2D;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.ByteBuffer;
-import java.nio.channels.FileChannel;
-import java.text.CharacterIterator;
-import java.text.StringCharacterIterator;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Properties;
-
-import gnu.java.awt.font.FontDelegate;
-import gnu.java.awt.font.FontFactory;
-import gnu.java.awt.peer.ClasspathFontPeer;
-
-public class XFontPeer2
-  extends ClasspathFontPeer
-{
-
-  /**
-   * The font mapping as specified in the file fonts.properties.
-   */
-  private static Properties fontProperties;
-  static
-  {
-    fontProperties = new Properties();
-    InputStream in = XFontPeer2.class.getResourceAsStream("fonts.properties");
-    try
-      {
-        fontProperties.load(in);
-      }
-    catch (IOException e)
-      {
-        e.printStackTrace();
-      }
-  }
-
-  private class XLineMetrics
-    extends LineMetrics
-  {
-
-    private Font font;
-    private GlyphVector glyphVector;
-//    private CharacterIterator characterIterator;
-//    private int begin;
-//    private int limit;
-    private FontRenderContext fontRenderContext;
-    XLineMetrics(Font f, CharacterIterator ci, int b, int l,
-                 FontRenderContext rc)
-    {
-      font = f;
-//      characterIterator = ci;
-//      begin = b;
-//      limit = l;
-      fontRenderContext = rc;
-      glyphVector = fontDelegate.createGlyphVector(font, fontRenderContext,
-                                                   ci);
-    }
-
-    public float getAscent()
-    {
-      return fontDelegate.getAscent(font.getSize(), fontRenderContext.getTransform(),
-                             fontRenderContext.isAntiAliased(),
-                             fontRenderContext.usesFractionalMetrics(), true);
-    }
-
-    public int getBaselineIndex()
-    {
-      // FIXME: Implement this.
-      throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-    public float[] getBaselineOffsets()
-    {
-      // FIXME: Implement this.
-      throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-    public float getDescent()
-    {
-      return (int) fontDelegate.getDescent(font.getSize(), IDENDITY, false,
-                                           false, false);
-    }
-
-    public float getHeight()
-    {
-      return (float) glyphVector.getLogicalBounds().getHeight();
-    }
-
-    public float getLeading()
-    {
-      return getHeight() - getAscent() - getDescent();
-    }
-
-    public int getNumChars()
-    {
-      // FIXME: Implement this.
-      throw new UnsupportedOperationException("Not yet implemented");
-    }
-
-    public float getStrikethroughOffset()
-    {
-      return 0.F;
-    }
-
-    public float getStrikethroughThickness()
-    {
-      return 0.F;
-    }
-
-    public float getUnderlineOffset()
-    {
-      return 0.F;
-    }
-
-    public float getUnderlineThickness()
-    {
-      return 0.F;
-    }
-    
-  }
-
-  private class XFontMetrics
-    extends FontMetrics
-  {
-    /**
-     * A cached point instance, to be used in #charWidth().
-     */
-    private Point2D cachedPoint = new Point2D.Double();
-
-    XFontMetrics(Font f)
-    {
-      super(f);
-    }
-
-    public int getAscent()
-    {
-      return (int) fontDelegate.getAscent(getFont().getSize(), IDENDITY,
-                                          false, false, false);
-    }
-
-    public int getDescent()
-    {
-      return (int) fontDelegate.getDescent(getFont().getSize(), IDENDITY,
-                                           false, false, false);
-    }
-    
-    public int getHeight()
-    {
-      GlyphVector gv = fontDelegate.createGlyphVector(getFont(),
-                    new FontRenderContext(IDENDITY, false, false),
-                    new StringCharacterIterator("m"));
-      Rectangle2D b = gv.getVisualBounds();
-      return (int) b.getHeight();
-    }
-
-    public int charWidth(char c)
-    {
-      int code = fontDelegate.getGlyphIndex(c);
-      Point2D advance = cachedPoint;
-      fontDelegate.getAdvance(code, font.getSize2D(), IDENDITY,
-                              false, false, true, advance);
-      return (int) advance.getX();
-    }
-
-    public int charsWidth(char[] chars, int offs, int len)
-    {
-      return stringWidth(new String(chars, offs, len));
-    }
-
-    public int stringWidth(String s)
-    {
-      GlyphVector gv = fontDelegate.createGlyphVector(getFont(),
-                    new FontRenderContext(IDENDITY, false, false),
-                    new StringCharacterIterator(s));
-      Rectangle2D b = gv.getVisualBounds();
-      return (int) b.getWidth();
-    }
-  }
-
-  /**
-   * The indendity transform, to be used in several methods.
-   */
-  private static final AffineTransform IDENDITY = new AffineTransform();
-
-  private FontDelegate fontDelegate;
-
-  XFontPeer2(String name, int style, int size)
-  {
-    super(name, style, size);
-    try
-      {
-        File fontfile = new File("/usr/share/fonts/truetype/freefont/FreeSans.ttf");
-        FileInputStream in = new FileInputStream(fontfile);
-        FileChannel ch = in.getChannel();
-        ByteBuffer buffer = ch.map(FileChannel.MapMode.READ_ONLY, 0,
-                                   fontfile.length());
-        fontDelegate = FontFactory.createFonts(buffer)[0];
-      }
-    catch (Exception ex)
-      {
-        ex.printStackTrace();
-      }
-  }
-
-  XFontPeer2(String name, Map atts)
-  {
-    super(name, atts);
-    try
-      {
-        File fontfile = new File("/usr/share/fonts/truetype/freefont/FreeSans.ttf");
-        FileInputStream in = new FileInputStream(fontfile);
-        FileChannel ch = in.getChannel();
-        ByteBuffer buffer = ch.map(FileChannel.MapMode.READ_ONLY, 0,
-                                   fontfile.length());
-        fontDelegate = FontFactory.createFonts(buffer)[0];
-      }
-    catch (Exception ex)
-      {
-        ex.printStackTrace();
-      }
-  }
-
-  public boolean canDisplay(Font font, int c)
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  public int canDisplayUpTo(Font font, CharacterIterator i, int start, int limit)
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  public String getSubFamilyName(Font font, Locale locale)
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  public String getPostScriptName(Font font)
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  public int getNumGlyphs(Font font)
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  public int getMissingGlyphCode(Font font)
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  public byte getBaselineFor(Font font, char c)
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  public String getGlyphName(Font font, int glyphIndex)
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  public GlyphVector createGlyphVector(Font font, FontRenderContext frc, CharacterIterator ci)
-  {
-    return fontDelegate.createGlyphVector(font, frc, ci);
-  }
-
-  public GlyphVector createGlyphVector(Font font, FontRenderContext ctx, int[] glyphCodes)
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  public GlyphVector layoutGlyphVector(Font font, FontRenderContext frc, char[] chars, int start, int limit, int flags)
-  {
-    StringCharacterIterator i = new StringCharacterIterator(new String(chars), start, limit, 0);
-    return fontDelegate.createGlyphVector(font, frc, i);
-  }
-
-  public FontMetrics getFontMetrics(Font font)
-  {
-    return new XFontMetrics(font);
-  }
-
-  public boolean hasUniformLineMetrics(Font font)
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  public LineMetrics getLineMetrics(Font font, CharacterIterator ci, int begin, int limit, FontRenderContext rc)
-  {
-    return new XLineMetrics(font, ci, begin, limit, rc);
-  }
-
-  public Rectangle2D getMaxCharBounds(Font font, FontRenderContext rc)
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  /**
-   * Encodes a font name + style + size specification into a X logical font
-   * description (XLFD) as described here:
-   *
-   * http://www.meretrx.com/e93/docs/xlfd.html
-   *
-   * This is implemented to look up the font description in the
-   * fonts.properties of this package.
-   *
-   * @param name the font name
-   * @param atts the text attributes
-   *
-   * @return the encoded font description
-   */
-  static String encodeFont(String name, Map atts)
-  {
-    String family = name;
-    if (family == null || family.equals(""))
-      family = (String) atts.get(TextAttribute.FAMILY);
-    if (family == null)
-      family = "SansSerif";
-
-    int size = 12;
-    Float sizeFl = (Float) atts.get(TextAttribute.SIZE);
-    if (sizeFl != null)
-      size = sizeFl.intValue();
-
-    int style = 0;
-    // Detect italic attribute.
-    Float posture = (Float) atts.get(TextAttribute.POSTURE);
-    if (posture != null && !posture.equals(TextAttribute.POSTURE_REGULAR))
-      style |= Font.ITALIC;
-
-    // Detect bold attribute.
-    Float weight = (Float) atts.get(TextAttribute.WEIGHT);
-    if (weight != null && weight.compareTo(TextAttribute.WEIGHT_REGULAR) > 0)
-      style |= Font.BOLD;
-
-    return encodeFont(name, style, size);
-  }
-
-  /**
-   * Encodes a font name + style + size specification into a X logical font
-   * description (XLFD) as described here:
-   *
-   * http://www.meretrx.com/e93/docs/xlfd.html
-   *
-   * This is implemented to look up the font description in the
-   * fonts.properties of this package.
-   *
-   * @param name the font name
-   * @param style the font style
-   * @param size the font size
-   *
-   * @return the encoded font description
-   */
-  static String encodeFont(String name, int style, int size)
-  {
-    StringBuilder key = new StringBuilder();
-    key.append(validName(name));
-    key.append('.');
-    switch (style)
-    {
-      case Font.BOLD:
-        key.append("bold");
-        break;
-      case Font.ITALIC:
-        key.append("italic");
-        break;
-      case (Font.BOLD | Font.ITALIC):
-        key.append("bolditalic");
-        break;
-      case Font.PLAIN:
-      default:
-        key.append("plain");
-      
-    }
-
-    String protoType = fontProperties.getProperty(key.toString());
-    int s = size;
-    return protoType.replaceFirst("%d", String.valueOf(s * 10));
-  }
-
-  /**
-   * Checks the specified font name for a valid font name. If the font name
-   * is not known, then this returns 'sansserif' as fallback.
-   *
-   * @param name the font name to check
-   *
-   * @return a valid font name
-   */
-  static String validName(String name)
-  {
-    String retVal;
-    if (name.equalsIgnoreCase("sansserif")
-        || name.equalsIgnoreCase("serif")
-        || name.equalsIgnoreCase("monospaced")
-        || name.equalsIgnoreCase("dialog")
-        || name.equalsIgnoreCase("dialoginput"))
-      {
-        retVal = name.toLowerCase();
-      }
-    else
-      {
-        retVal = "sansserif";
-      }
-    return retVal;
-  }
-}
index 74e47bc28423c6b303da1a0610fbd189d850be55..7424dc671ed775e070ce7275564940added7e6fd 100644 (file)
@@ -65,6 +65,7 @@ public class XFramePeer
   XFramePeer(Frame f)
   {
     super(f);
+    setTitle(f.getTitle());
   }
 
   public void setIconImage(Image image)
@@ -87,8 +88,7 @@ public class XFramePeer
 
   public void setTitle(String title)
   {
-    // TODO: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented.");
+    xwindow.set_wm_name (title);
   }
 
   public int getState()
index 73e780cc5a2183287f1094d16451bbaba4726e92..95129666a054306cafb04500f40bfe4183192c2e 100644 (file)
@@ -38,6 +38,7 @@ exception statement from your version. */
 package gnu.java.awt.peer.x;
 
 import java.awt.Color;
+import java.awt.Font;
 import java.awt.Graphics;
 import java.awt.GraphicsConfiguration;
 import java.awt.Image;
@@ -45,12 +46,18 @@ import java.awt.Paint;
 import java.awt.Rectangle;
 import java.awt.Shape;
 import java.awt.Toolkit;
+import java.awt.Transparency;
 import java.awt.geom.AffineTransform;
+import java.awt.image.BufferedImage;
 import java.awt.image.ColorModel;
+import java.awt.image.DataBuffer;
 import java.awt.image.ImageObserver;
 import java.awt.image.Raster;
+import java.awt.peer.FontPeer;
 import java.util.HashMap;
+import java.util.WeakHashMap;
 
+import gnu.java.awt.image.AsyncImage;
 import gnu.java.awt.java2d.AbstractGraphics2D;
 import gnu.java.awt.java2d.ScanlineCoverage;
 import gnu.x11.Colormap;
@@ -62,6 +69,14 @@ public class XGraphics2D
   extends AbstractGraphics2D
 {
 
+  /**
+   * When this property is set to true, then images are always rendered as
+   * opaque images, ignoring their translucence. This is intended for
+   * debugging and demonstration purposes.
+   */
+  private static final boolean RENDER_OPAQUE =
+    Boolean.getBoolean("escherpeer.renderopaque");
+
   /**
    * The X Drawable to draw on.
    */
@@ -92,11 +107,19 @@ public class XGraphics2D
     //setClip(new Rectangle(0, 0, xdrawable.width, xdrawable.height));
   }
 
+  @Override
   protected void rawDrawLine(int x0, int y0, int x1, int y1)
   {
     xdrawable.segment(xgc, x0, y0, x1, y1);
   }
 
+  @Override
+  protected void rawDrawRect(int x, int y, int w, int h)
+  {
+    xdrawable.rectangle(xgc, x, y, w, h, false);
+  }
+
+  @Override
   protected void rawFillRect(int x, int y, int w, int h)
   {
     xdrawable.rectangle(xgc, x, y, w, h, true);
@@ -217,55 +240,65 @@ public class XGraphics2D
       }
   }
 
+  @Override
   public void renderScanline(int y, ScanlineCoverage c)
   {
+    if (y >= xdrawable.height)
+      return;
+
+    // TODO: Handle Composite and Paint.
     ScanlineCoverage.Iterator iter = c.iterate();
-    float coverageAlpha = 0;
+    int coverageAlpha = 0;
     int maxCoverage = c.getMaxCoverage();
-    Color old = getColor();
-    Color col = getColor();
-    if (col == null)
-      col = Color.BLACK;
     while (iter.hasNext())
       {
         ScanlineCoverage.Range range = iter.next();
-        // TODO: Dumb implementation for testing.
+
         coverageAlpha = range.getCoverage();
-        if (coverageAlpha > 0)
+        int x0 = range.getXPos();
+        int l = range.getLength();
+        if (coverageAlpha == c.getMaxCoverage())
+          {
+            // Simply paint the current color over the existing pixels.
+            xdrawable.fill_rectangle(xgc, x0, y, l, 1);
+          }
+        else if (coverageAlpha > 0)
           {
-            int red = col.getRed();
-            int green = col.getGreen();
-            int blue = col.getBlue();
-            if (coverageAlpha < c.getMaxCoverage())
+            // Composite the current color with the existing pixels.
+            int x1 = x0 + l;
+            x0 = Math.min(Math.max(0, x0), xdrawable.width - 1);
+            x1 = Math.min(Math.max(0, x1), xdrawable.width - 1);
+            if ((x1 - x0) < 1)
+              continue;
+            l = x1 - x0;
+            gnu.x11.image.ZPixmap existing = (ZPixmap)
+            xdrawable.image(x0, y, l, 1, 0xFFFFFFFF,
+                            gnu.x11.image.Image.Format.ZPIXMAP);
+            for (int x = 0; x < l; x++)
               {
-                float alpha = coverageAlpha / maxCoverage;
-                red = 255 - (int) ((255 - red) * alpha);
-                green = 255 - (int) ((255 - green) * alpha);
-                blue = 255 - (int) ((255 - blue) * alpha);
+                Color col = getColor();
+                if (col == null)
+                  {
+                    col = Color.BLACK;
+                  }
+                int red = col.getRed();
+                int green = col.getGreen();
+                int blue = col.getBlue();
+                int redOut = existing.get_red(x, 0);
+                int greenOut = existing.get_green(x, 0);
+                int blueOut = existing.get_blue(x, 0);
+                int outAlpha = maxCoverage - coverageAlpha;
+                redOut = redOut * outAlpha + red * coverageAlpha;
+                redOut = redOut / maxCoverage;
+                greenOut = greenOut * outAlpha + green * coverageAlpha;
+                greenOut = greenOut / maxCoverage;
+                blueOut = blueOut * outAlpha + blue * coverageAlpha;
+                blueOut = blueOut / maxCoverage;
+                existing.set(x, 0, redOut, greenOut, blueOut);
               }
-            xgc.set_foreground(red << 16 | green << 8 | blue);
-            int x0 = range.getXPos();
-            int l = range.getLength();
-            xdrawable.fill_rectangle(xgc, x0, y, l, 1);
+            xdrawable.put_image(xgc, existing, x0, y);
           }
       }
-    if (old != null)
-      xgc.set_foreground(old.getRGB());
-  }
-
-  protected void fillScanline(int x0, int x1, int y)
-  {
-    xdrawable.segment(xgc, x0, y, x1, y);
-  }
-
-  protected void fillScanlineAA(int x0, int x1, int y, int alpha)
-  {
-    //System.err.println("fillScanlineAA: " + x0 + ", " + x1 + ", " + y + ", " + alpha);
-    // FIXME: This is for testing only.
-    Color c = getColor();
-    setColor(new Color(255-alpha, 255-alpha, 255-alpha));
-    xdrawable.segment(xgc, x0, y, x1, y);
-    setColor(c);
   }
 
   protected void init()
@@ -278,6 +311,7 @@ public class XGraphics2D
     super.setPaint(p);
     if (p instanceof Color)
       {
+        // TODO: Optimize for different standard bit-depths.
         Color c = (Color) p;
         XToolkit tk = (XToolkit) Toolkit.getDefaultToolkit();
         HashMap colorMap = tk.colorMap;
@@ -302,8 +336,11 @@ public class XGraphics2D
     }
   }
 
+  private static WeakHashMap<Image,ZPixmap> imageCache = new WeakHashMap<Image,ZPixmap>();
+
   protected boolean rawDrawImage(Image image, int x, int y, ImageObserver obs)
   {
+    image = unwrap(image);
     boolean ret;
     if (image instanceof XImage)
       {
@@ -319,6 +356,87 @@ public class XGraphics2D
                             pvi.getHeight(obs), x, y);
         ret = true;
       }
+    else if (image instanceof BufferedImage)
+      {
+        BufferedImage bi = (BufferedImage) image;
+        DataBuffer db = bi.getRaster().getDataBuffer();
+        if (db instanceof ZPixmapDataBuffer)
+          {
+            ZPixmapDataBuffer zpmdb = (ZPixmapDataBuffer) db;
+            ZPixmap zpixmap = zpmdb.getZPixmap();
+            xdrawable.put_image(xgc, zpixmap, x, y);
+            ret = true;
+          }
+        else
+          {
+            int transparency = bi.getTransparency();
+            int w = bi.getWidth();
+            int h = bi.getHeight();
+            if (imageCache.containsKey(image))
+              {
+                ZPixmap zpixmap = imageCache.get(image);
+                xdrawable.put_image(xgc, zpixmap, x, y);
+              }
+            else if (transparency == Transparency.OPAQUE || RENDER_OPAQUE)
+              {
+                XGraphicsDevice gd = XToolkit.getDefaultDevice();
+                ZPixmap zpixmap = new ZPixmap(gd.getDisplay(), w, h);
+                for (int yy = 0; yy < h; yy++)
+                  {
+                    for (int xx = 0; xx < w; xx++)
+                      {
+                        int rgb = bi.getRGB(xx, yy);
+                        zpixmap.set(xx, yy, rgb);
+                      }
+                  }
+                xdrawable.put_image(xgc, zpixmap, x, y);
+                imageCache.put(image, zpixmap);
+              } else {
+                ZPixmap zpixmap = (ZPixmap) xdrawable.image(x, y, w, h,
+                                                            0xffffffff,
+                                           gnu.x11.image.Image.Format.ZPIXMAP);
+                for (int yy = 0; yy < h; yy++)
+                  {
+                    for (int xx = 0; xx < w; xx++)
+                      {
+                        int rgb = bi.getRGB(xx, yy);
+                        int alpha = 0xff & (rgb >> 24);
+                        if (alpha == 0)
+                          {
+                            // Completely translucent.
+                            rgb = zpixmap.get_red(xx, yy) << 16
+                                  | zpixmap.get_green(xx, yy) << 8
+                                  | zpixmap.get_blue(xx, yy);
+                          }
+                        else if (alpha < 255)
+                          {
+                            // Composite pixels.
+                            int red = 0xff & (rgb >> 16);
+                            red = red * alpha
+                                     + (255 - alpha) * zpixmap.get_red(xx, yy);
+                            red = red / 255;
+                            int green = 0xff & (rgb >> 8);
+                            green = green * alpha
+                                   + (255 - alpha) * zpixmap.get_green(xx, yy);
+                            green = green / 255;
+                            int blue = 0xff & rgb;
+                            blue = blue * alpha
+                                    + (255 - alpha) * zpixmap.get_blue(xx, yy);
+                            blue = blue / 255;
+                            rgb = red << 16 | green << 8 | blue;
+                          }
+                        // else keep rgb value from source image.
+
+                        zpixmap.set(xx, yy, rgb);
+                      }
+                  }
+                xdrawable.put_image(xgc, zpixmap, x, y);
+                // We can't cache prerendered translucent images, because
+                // we never know how the background changes.
+              }
+            ret = true;
+          }
+      }
     else
       {
         ret = super.rawDrawImage(image, x, y, obs);
@@ -326,6 +444,50 @@ public class XGraphics2D
     return ret;
   }
 
+  public void setFont(Font f)
+  {
+    super.setFont(f);
+    FontPeer p = getFont().getPeer();
+    if (p instanceof XFontPeer)
+      {
+        XFontPeer xFontPeer = (XFontPeer) p;
+        xgc.set_font(xFontPeer.getXFont());
+      }
+  }
+
+  public void drawString(String s, int x, int y)
+  {
+    FontPeer p = getFont().getPeer();
+    if (p instanceof XFontPeer)
+      {
+        int tx = (int) transform.getTranslateX();
+        int ty = (int) transform.getTranslateY();
+        xdrawable.text(xgc, x + tx, y + ty, s);
+      }
+    else
+      {
+        super.drawString(s, x, y);
+      }
+  }
+
+  /**
+   * Extracts an image instance out of an AsyncImage. If the image isn't
+   * an AsyncImage, then the original instance is returned.
+   *
+   * @param im the image
+   *
+   * @return the image to render
+   */
+  private Image unwrap(Image im)
+  {
+    Image image = im;
+    if (image instanceof AsyncImage)
+      {
+        AsyncImage aIm = (AsyncImage) image;
+        image = aIm.getRealImage();
+      }
+    return image;
+  }
 
 }
 
index 11a9c9694f1fd87603a16cc7242e209d29af9be2..85f72a4eff46129364ba4aede6568d427f549110 100644 (file)
@@ -37,6 +37,10 @@ exception statement from your version. */
 
 package gnu.java.awt.peer.x;
 
+import gnu.x11.Display;
+import gnu.x11.Screen;
+
+import java.awt.Dimension;
 import java.awt.GraphicsConfiguration;
 import java.awt.GraphicsDevice;
 import java.awt.Point;
@@ -158,4 +162,38 @@ public class XGraphicsConfiguration
     throw new UnsupportedOperationException("Not yet implemented.");
   }
 
+  /**
+   * Determines the size of the primary screen.
+   *
+   * @return the size of the primary screen
+   */
+  Dimension getSize()
+  {
+    // TODO: A GraphicsConfiguration should correspond to a Screen instance.
+    Display d = device.getDisplay();
+    Screen screen = d.default_screen;
+    int w = screen.width;
+    int h = screen.height;
+    return new Dimension(w, h);
+  }
+
+  /**
+   * Determines the resolution of the primary screen in pixel-per-inch.
+   *
+   * @returnthe resolution of the primary screen in pixel-per-inch
+   */
+  int getResolution()
+  {
+    Display d = device.getDisplay();
+    Screen screen = d.default_screen;
+    int w = screen.width * 254;
+    int h = screen.height * 254;
+    int wmm = screen.width_in_mm * 10;
+    int hmm = screen.height_in_mm * 10;
+    int xdpi = w / wmm;
+    int ydpi = h / hmm;
+    int dpi = (xdpi + ydpi) / 2;
+    return dpi;
+  }
+
 }
index 65383a6cb0fe4831be34e3ed5857ac33dad82106..8ec8d57bb908eea792e90c82c3b35c1253fbc550 100644 (file)
@@ -38,6 +38,7 @@ exception statement from your version. */
 
 package gnu.java.awt.peer.x;
 
+import gnu.java.awt.font.OpenTypeFontPeer;
 import gnu.java.awt.java2d.RasterGraphics;
 import gnu.x11.Display;
 
@@ -189,14 +190,14 @@ public class XGraphicsEnvironment
 
   public String[] getAvailableFontFamilyNames()
   {
-    // TODO: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented.");
+    return getAvailableFontFamilyNames(Locale.getDefault());
   }
 
   public String[] getAvailableFontFamilyNames(Locale l)
   {
-    // TODO: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented.");
+    // TODO: This doesn't work when we are using X fonts.
+    // Fix this.
+    return OpenTypeFontPeer.getAvailableFontFamilyNames(l);
   }
 
 }
index 08186326ffae0b7cf5cd07b5afc89bee80351a78..c1724aad55d2ed331d8e498a555dd67feab7ef10 100644 (file)
@@ -51,6 +51,7 @@ import java.awt.FileDialog;
 import java.awt.Font;
 import java.awt.FontMetrics;
 import java.awt.Frame;
+import java.awt.GraphicsConfiguration;
 import java.awt.GraphicsDevice;
 import java.awt.GraphicsEnvironment;
 import java.awt.Image;
@@ -117,6 +118,8 @@ import javax.imageio.ImageIO;
 import gnu.classpath.SystemProperties;
 import gnu.java.awt.ClasspathToolkit;
 import gnu.java.awt.EmbeddedWindow;
+import gnu.java.awt.font.OpenTypeFontPeer;
+import gnu.java.awt.image.ImageConverter;
 import gnu.java.awt.peer.ClasspathFontPeer;
 import gnu.java.awt.peer.EmbeddedWindowPeer;
 import gnu.java.awt.peer.swing.SwingCanvasPeer;
@@ -155,7 +158,8 @@ public class XToolkit
   /**
    * The cached fonts.
    */
-  private WeakHashMap fontCache = new WeakHashMap();
+  private WeakHashMap<String,ClasspathFontPeer> fontCache =
+    new WeakHashMap<String,ClasspathFontPeer>();
 
   public XToolkit()
   {
@@ -179,21 +183,32 @@ public class XToolkit
    */
   public ClasspathFontPeer getClasspathFontPeer(String name, Map attrs)
   {
-    String canonical = XFontPeer2.encodeFont(name, attrs);
     ClasspathFontPeer font;
-    if (!fontCache.containsKey(canonical))
+    if ("true".equals(System.getProperty("escherpeer.usexfonts")))
       {
-        String graphics2d =
-          SystemProperties.getProperty("gnu.xawt.graphics2d");
-        //if (graphics2d != null && graphics2d.equals("gl"))
-          font = new XFontPeer2(name, attrs);
-//        else
-//          font = new XFontPeer(name, attrs);
-        fontCache.put(canonical, font);
+        String canonical = XFontPeer.encodeFont(name, attrs);
+        if (!fontCache.containsKey(canonical))
+          {
+            font = new XFontPeer(name, attrs);
+            fontCache.put(canonical, font);
+          }
+        else
+          {
+            font = fontCache.get(canonical);
+          }
       }
     else
       {
-        font = (ClasspathFontPeer) fontCache.get(canonical);
+        String canonical = OpenTypeFontPeer.encodeFont(name, attrs);
+        if (!fontCache.containsKey(canonical))
+          {
+            font = new OpenTypeFontPeer(name, attrs);
+            fontCache.put(canonical, font);
+          }
+        else
+          {
+            font = fontCache.get(canonical);
+          }
       }
     return font;
   }
@@ -338,14 +353,22 @@ public class XToolkit
 
   public Dimension getScreenSize()
   {
-    // FIXME: This is only a hack to get some apps working.
-    return new Dimension(1024, 768);
+    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
+    GraphicsDevice gd = ge.getDefaultScreenDevice();
+    GraphicsConfiguration gc = gd.getDefaultConfiguration();
+    XGraphicsConfiguration xgc = (XGraphicsConfiguration) gc;
+
+    return xgc.getSize();
   }
 
   public int getScreenResolution()
   {
-    // TODO: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented.");
+    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
+    GraphicsDevice gd = ge.getDefaultScreenDevice();
+    GraphicsConfiguration gc = gd.getDefaultConfiguration();
+    XGraphicsConfiguration xgc = (XGraphicsConfiguration) gc;
+
+    return xgc.getResolution();
   }
 
   /**
@@ -363,8 +386,8 @@ public class XToolkit
 
   public String[] getFontList()
   {
-    // TODO: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented.");
+    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
+    return ge.getAvailableFontFamilyNames();
   }
 
   public FontMetrics getFontMetrics(Font name)
@@ -505,7 +528,7 @@ public class XToolkit
   {
     ImageConverter conv = new ImageConverter();
     producer.startProduction(conv);
-    Image image = conv.getXImage();
+    Image image = conv.getImage();
     return image;
   }
 
@@ -602,19 +625,17 @@ public class XToolkit
   }
 
   @Override
-  public boolean isModalExclusionTypeSupported
-                 (Dialog.ModalExclusionType modalExclusionType)
+  public boolean isModalExclusionTypeSupported(ModalExclusionType modalExclusionType)
   {
-    // TODO: Implement properly.
+    // TODO Auto-generated method stub
     return false;
   }
 
   @Override
-  public boolean isModalityTypeSupported(Dialog.ModalityType modalityType)
+  public boolean isModalityTypeSupported(ModalityType modalityType)
   {
-    // TODO: Implement properly.
+    // TODO Auto-generated method stub
     return false;
   }
 
-
 }
index 10d1e96858ae309041cfb0aa2fb658af1292855a..f9184ed1cdee728f5dd7ebe13bec05a0fd8a5054 100644 (file)
@@ -39,9 +39,11 @@ exception statement from your version. */
 package gnu.java.awt.peer.x;
 
 import java.awt.Component;
+import java.awt.Dialog;
 import java.awt.EventQueue;
 import java.awt.Font;
 import java.awt.FontMetrics;
+import java.awt.Frame;
 import java.awt.Graphics;
 import java.awt.GraphicsConfiguration;
 import java.awt.GraphicsDevice;
@@ -54,9 +56,12 @@ import java.awt.event.PaintEvent;
 import java.awt.event.WindowEvent;
 import java.awt.image.VolatileImage;
 
+import gnu.x11.Atom;
 import gnu.x11.Window;
 import gnu.x11.event.Event;
 
+import gnu.java.awt.font.OpenTypeFontPeer;
+import gnu.java.awt.peer.ClasspathFontPeer;
 import gnu.java.awt.peer.swing.SwingWindowPeer;
 
 public class XWindowPeer
@@ -84,7 +89,12 @@ public class XWindowPeer
   /**
    * The X window.
    */
-  private Window xwindow;
+  protected Window xwindow;
+
+  /**
+   * The frame insets. These get updated in {@link #show()}.
+   */
+  private Insets insets;
 
   XWindowPeer(java.awt.Window window)
   {
@@ -92,15 +102,47 @@ public class XWindowPeer
     XGraphicsDevice dev = XToolkit.getDefaultDevice();
 
     // TODO: Maybe initialize lazily in show().
+    Window.Attributes atts = new Window.Attributes();
     // FIXME: Howto generate a Window without decorations?
     int x = Math.max(window.getX(), 0);
     int y = Math.max(window.getY(), 0);
     int w = Math.max(window.getWidth(), 1);
     int h = Math.max(window.getHeight(), 1);
-    xwindow = new Window(dev.getDisplay().default_root, x, y, w, h);
-    xwindow.create();
+    xwindow = new Window(dev.getDisplay().default_root, x, y, w, h, 0, atts);
     xwindow.select_input(standardSelect);
     dev.getEventPump().registerWindow(xwindow, window);
+
+    boolean undecorated;
+    if (awtComponent instanceof Frame)
+      {
+        Frame f = (Frame) awtComponent;
+        undecorated = f.isUndecorated();
+      }
+    else if (awtComponent instanceof Dialog)
+      {
+        Dialog d = (Dialog) awtComponent;
+        undecorated = d.isUndecorated();
+      }
+    else
+      {
+        undecorated = true;
+      }
+    if (undecorated)
+      {
+        // First try the Motif implementation of undecorated frames. This
+        // is semantically closest and supported by all major window
+        // managers.
+        // TODO: At the time of writing this, there's no freedesktop.org
+        // standard extension that matches the required semantic. Maybe
+        // undecorated frames are added in the future, if so, then use these.
+        Atom at = Atom.intern(dev.getDisplay(), "_MOTIF_WM_HINTS");
+        if (at != null)
+          {
+            xwindow.change_property(Window.REPLACE, at, at, 32,
+                                    new int[]{1 << 1, 0, 0, 0, 0}, 0, 5);
+          }
+      }
+    insets = new Insets(0, 0, 0, 0);
   }
 
   public void toBack()
@@ -139,7 +181,11 @@ public class XWindowPeer
    */
   public Graphics getGraphics()
   {
-    return new XGraphics2D(xwindow);
+       XGraphics2D xg2d = new XGraphics2D(xwindow);
+       xg2d.setColor(awtComponent.getForeground());
+       xg2d.setBackground(awtComponent.getBackground());
+       xg2d.setFont(awtComponent.getFont());
+       return xg2d;
   }
 
   public Image createImage(int w, int h)
@@ -164,16 +210,11 @@ public class XWindowPeer
    */
   public void show()
   {
-//    // Prevent ResizeRedirect events.
-//    //xwindow.select_input(noResizeRedirectSelect);
-//    Window.Attributes atts = new Window.Attributes();
-//    atts.set_override_redirect(true);
-//    xwindow.change_attributes(atts);
-
     // Prevent ResizeRedirect events.
     //xwindow.select_input(Event.NO_EVENT_MASK);
     //xwindow.select_input(noResizeRedirectSelect);
 
+    XGraphicsDevice dev = XToolkit.getDefaultDevice();
     xwindow.map();
     EventQueue eq = XToolkit.getDefaultToolkit().getSystemEventQueue();
     java.awt.Window w = (java.awt.Window) super.awtComponent;
@@ -188,6 +229,20 @@ public class XWindowPeer
 //    // Reset input selection.
 //    atts.set_override_redirect(false);
 //    xwindow.change_attributes(atts);
+    
+    // Determine the frame insets.
+    Atom atom = (Atom) Atom.intern(dev.getDisplay(), "_NET_FRAME_EXTENTS");
+    Window.Property p = xwindow.get_property(false, atom, Atom.CARDINAL, 0,
+                                             Window.MAX_WM_LENGTH);
+    if (p.format() != 0)
+      {
+        insets = new Insets(p.value(0), p.value(1), p.value(2), p.value(3));
+        Window.Changes ch = new Window.Changes();
+        ch.width(awtComponent.getWidth() - insets.left - insets.top);
+        ch.height(awtComponent.getHeight() - insets.top - insets.bottom);
+        xwindow.configure(ch);
+      }
+
   }
 
   /**
@@ -214,40 +269,19 @@ public class XWindowPeer
    */
   public void reshape(int x, int y, int width, int height)
   {
-    // Prevent ResizeRedirect events.
-//    //xwindow.select_input(noResizeRedirectSelect);
-//    Window.Attributes atts = new Window.Attributes();
-//    atts.set_override_redirect(true);
-//    xwindow.change_attributes(atts);
-
     // Need to substract insets because AWT size is including insets,
-    // and X size is excuding insets.
-    Insets i = insets();
-    xwindow.move_resize(x - i.left, y - i.right, width - i.left - i.right,
-                        height - i.top - i.bottom);
-
-    // Reset input selection.
-//    atts = new Window.Attributes();
-//    atts.set_override_redirect(false);
-//    xwindow.change_attributes(atts);
+    // and X size is excluding insets.
+    if (! callback)
+      {
+        Insets i = insets;
+        xwindow.move_resize(x - i.left, y - i.right, width - i.left - i.right,
+                            height - i.top - i.bottom);
+      }
   }
 
   public Insets insets()
   {
-    Insets i = new Insets(0, 0, 0, 0);
-//    Window.GeometryReply g = xwindow.geometry();
-//    int b = g.border_width();
-//    Insets i = new Insets(b, b, b, b);
-//    Window.WMSizeHints wmSize = xwindow.wm_normal_hints();
-//    if (wmSize != null)
-//      {
-//        i.left = wmSize.x() - g.x();
-//        i.right = wmSize.width() - g.width() - i.left ;
-//        i.top = wmSize.y() - g.y();
-//        i.bottom = wmSize.height() - g.height() - i.top;
-//      }
-//    System.err.println("insets: " + i);
-    return i;
+    return (Insets) insets.clone();
   }
 
   /**
@@ -257,7 +291,7 @@ public class XWindowPeer
    */
   public FontMetrics getFontMetrics(Font font)
   {
-    XFontPeer2 fontPeer = (XFontPeer2) font.getPeer();
+    ClasspathFontPeer fontPeer = (ClasspathFontPeer) font.getPeer();
     return fontPeer.getFontMetrics(font);
   }
 
index 8043c5b8f464fc7a9434c040e79e38da0c7b8c52..cf40f4d697737a11543ceaac81d14bedfaf7e119 100644 (file)
@@ -59,4 +59,9 @@ class ZPixmapDataBuffer
     zpixmap.set_data_element(i, (byte) val);
   }
 
+  ZPixmap getZPixmap()
+  {
+    return zpixmap;
+  }
+
 }
index 4e052a1d3f409631f314436477f3fc908f96b924..01894e5a43e2245181b689c7a54ddc3c5fdf67d5 100644 (file)
@@ -74,7 +74,6 @@ import java.awt.print.Pageable;
 import java.awt.print.Paper;
 import java.awt.print.Printable;
 import java.awt.print.PrinterException;
-import java.awt.print.PrinterGraphics;
 import java.awt.print.PrinterJob;
 import java.io.BufferedWriter;
 import java.io.File;
index b606a2ef63eeea95d8fa1fbb16b28b17d4d2dc90..812906b189dcd90de4e078b51c933a180f568eb7 100644 (file)
@@ -41,7 +41,6 @@ import javax.print.Doc;
 import javax.print.DocFlavor;
 import javax.print.attribute.DocAttributeSet;
 import java.io.File;
-import java.io.IOException;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.Reader;
index e54c56da9359cb1c6c14c93d45074a0bdb367489..96231e1be5b5b28358157b4868df1441c732530c 100644 (file)
@@ -37,8 +37,6 @@ exception statement from your version. */
 
 package gnu.java.io;
 
-import java.util.StringTokenizer;
-
 /**
  * We had many changes in File.java, URLStreamHandler.java etc. to handle
  * path representations on different platforms (Windows/Unix-family).
index ab529efd1a38b1209321425bef44d011031126e5..7ad70cd7c61a21f0edb50afa505f4e88e1ca529e 100644 (file)
@@ -69,7 +69,7 @@ public class MainThread
   {
     try
       {
-       mainMethod.invoke(null,args);
+       mainMethod.invoke(null,(Object) args);
       }
     catch(IllegalAccessException e)
       {
index 59e79a550d3c7f5ed35bb4ca89e838a2b8fb1bfd..a651e3548b4a9e13226d7fb5378d8f86bc73591f 100644 (file)
@@ -44,8 +44,6 @@ import java.lang.management.ManagementPermission;
 import java.lang.reflect.Array;
 import java.lang.reflect.Method;
 import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.TypeVariable;
-
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -59,13 +57,11 @@ import javax.management.MBeanException;
 import javax.management.MBeanInfo;
 import javax.management.MBeanOperationInfo;
 import javax.management.MBeanParameterInfo;
-import javax.management.MBeanInfo;
 import javax.management.NotCompliantMBeanException;
 import javax.management.ReflectionException;
 import javax.management.StandardMBean;
 
 import javax.management.openmbean.ArrayType;
-import javax.management.openmbean.CompositeData;
 import javax.management.openmbean.CompositeDataSupport;
 import javax.management.openmbean.CompositeType;
 import javax.management.openmbean.OpenDataException;
@@ -80,7 +76,6 @@ import javax.management.openmbean.OpenMBeanOperationInfoSupport;
 import javax.management.openmbean.OpenMBeanParameterInfo;
 import javax.management.openmbean.OpenMBeanParameterInfoSupport;
 import javax.management.openmbean.OpenType;
-import javax.management.openmbean.SimpleType;
 import javax.management.openmbean.TabularData;
 import javax.management.openmbean.TabularDataSupport;
 import javax.management.openmbean.TabularType;
@@ -277,7 +272,7 @@ public class BeanImpl
        Method getter = null;
        try 
          {
-           getter = vClass.getMethod("get" + field, null);
+           getter = vClass.getMethod("get" + field);
          }
        catch (NoSuchMethodException e)
          {
@@ -285,7 +280,7 @@ public class BeanImpl
          }
        try
          {
-           values.add(getter.invoke(value, null));
+           values.add(getter.invoke(value));
          }
        catch (IllegalAccessException e)
          {
@@ -323,6 +318,90 @@ public class BeanImpl
     return (MBeanInfo) openInfo;
   }
 
+  /**
+   * Override this method so as to prevent the description of a constructor's
+   * parameter being @code{null}.  Open MBeans can not have @code{null} descriptions,
+   * but one will occur as the names of parameters aren't stored for reflection.
+   * 
+   * @param constructor the constructor whose parameter needs describing.
+   * @param parameter the parameter to be described.
+   * @param sequenceNo the number of the parameter to describe.
+   * @return a description of the constructor's parameter.
+   */
+  protected String getDescription(MBeanConstructorInfo constructor,
+                                 MBeanParameterInfo parameter,
+                                 int sequenceNo)
+  {
+    String desc = parameter.getDescription();
+    if (desc == null)
+      return "param" + sequenceNo;
+    else
+      return desc;
+  }
+
+  /**
+   * Override this method so as to prevent the description of an operation's
+   * parameter being @code{null}.  Open MBeans can not have @code{null} descriptions,
+   * but one will occur as the names of parameters aren't stored for reflection.
+   * 
+   * @param operation the operation whose parameter needs describing.
+   * @param parameter the parameter to be described.
+   * @param sequenceNo the number of the parameter to describe.
+   * @return a description of the operation's parameter.
+   */
+  protected String getDescription(MBeanOperationInfo operation,
+                                 MBeanParameterInfo parameter,
+                                 int sequenceNo)
+  {
+    String desc = parameter.getDescription();
+    if (desc == null)
+      return "param" + sequenceNo;
+    else
+      return desc;
+  }
+
+  /**
+   * Override this method so as to prevent the name of a constructor's
+   * parameter being @code{null}.  Open MBeans can not have @code{null} names,
+   * but one will occur as the names of parameters aren't stored for reflection.
+   * 
+   * @param constructor the constructor whose parameter needs a name.
+   * @param parameter the parameter to be named.
+   * @param sequenceNo the number of the parameter to name.
+   * @return a description of the constructor's parameter.
+   */
+  protected String getParameterName(MBeanConstructorInfo constructor,
+                                   MBeanParameterInfo parameter,
+                                   int sequenceNo)
+  {
+    String name = parameter.getName();
+    if (name == null)
+      return "param" + sequenceNo;
+    else
+      return name;
+  }
+
+  /**
+   * Override this method so as to prevent the name of an operation's
+   * parameter being @code{null}.  Open MBeans can not have @code{null} names,
+   * but one will occur as the names of parameters aren't stored for reflection.
+   * 
+   * @param operation the operation whose parameter needs a name.
+   * @param parameter the parameter to be named.
+   * @param sequenceNo the number of the parameter to name.
+   * @return a description of the operation's parameter.
+   */
+  protected String getParameterName(MBeanOperationInfo operation,
+                                   MBeanParameterInfo parameter,
+                                   int sequenceNo)
+  {
+    String name = parameter.getName();
+    if (name == null)
+      return "param" + sequenceNo;
+    else
+      return name;
+  }
+
   public MBeanInfo getMBeanInfo()
   {
     super.getMBeanInfo();
index 842e5bdf0f055bba75852b859de4246cb3a23875..78c17183792109fb41f056a72c342e1363842a33 100644 (file)
@@ -239,7 +239,7 @@ public class TypeSignature
   public static String getEncodingOfMethod(Method m)
   {
     Class[] paramTypes = m.getParameterTypes();
-    StringBuffer buf = new StringBuffer().append('(');
+    StringBuilder buf = new StringBuilder("(");
     for (int i = 0; i < paramTypes.length; i++)
       buf.append(getEncodingOfClass(paramTypes[i].getName(), true));
     buf.append(')').append(getEncodingOfClass(m.getReturnType().getName(),
@@ -261,7 +261,7 @@ public class TypeSignature
   public static String getEncodingOfConstructor(Constructor c)
   {
     Class[] paramTypes = c.getParameterTypes();
-    StringBuffer buf = new StringBuffer().append('(');
+    StringBuilder buf = new StringBuilder("(");
     for (int i = 0; i < paramTypes.length; i++)
       buf.append(getEncodingOfClass(paramTypes[i].getName(), true));
     buf.append(")V");
index 4fefd1639798f338732504bab558155777479718..f3aabbdd939589a46c17e5f545bb704a47245f61 100644 (file)
@@ -40,8 +40,6 @@ package gnu.java.locale;
 
 import java.text.Collator;
 import java.util.Locale;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
 
 /**
  * This class provides common helper methods
index 06a779f3311d169221b548450859ab7f8877bffc..90e3b7a0d64670ef14c0e38dc900db9f16d48887 100644 (file)
@@ -52,7 +52,6 @@ import java.text.ParseException;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Properties;
 import java.util.zip.GZIPInputStream;
index 268ee0a8aa7b99f53b325576009e4cd8fbf1e122..ea8c863e30e5132614d1ce75723fe6604b769cd2 100644 (file)
@@ -40,11 +40,9 @@ package gnu.java.nio;
 
 import gnu.java.net.PlainDatagramSocketImpl;
 import java.io.IOException;
-import java.net.DatagramPacket;
 import java.net.DatagramSocket;
 import java.net.InetSocketAddress;
 import java.net.SocketAddress;
-import java.net.SocketTimeoutException;
 import java.nio.ByteBuffer;
 import java.nio.channels.ClosedChannelException;
 import java.nio.channels.DatagramChannel;
index 419124050788d0b750e2a15315611e60816ea7e4..d4a374b4ac7207be457fda822e153e23c6d5f3fe 100644 (file)
@@ -412,7 +412,7 @@ public final class FileChannelImpl extends FileChannel
 
     if (buffer == null)
       {
-       buffer = ByteBuffer.allocate ((int) count);
+       buffer = ByteBuffer.allocate (count);
        src.read (buffer);
        buffer.flip();
       }
index 2f93c50cc19b35ee4c68bb597dcaa01e13b655e4..11b37cadbe5b5ef2d3c7e7db266f320aae3d2a3b 100644 (file)
@@ -39,8 +39,6 @@ exception statement from your version. */
 package gnu.java.nio;
 
 
-import java.io.IOException;
-import java.nio.ByteBuffer;
 import java.nio.channels.SelectableChannel;
 import java.nio.channels.SelectionKey;
 import java.nio.channels.Selector;
index 060a3a89c1cc3e2e7ec23928db4a119554c11dd6..87574e49110812044fabc230d04e44ebde778259 100644 (file)
@@ -38,7 +38,6 @@ exception statement from your version. */
 
 package gnu.java.nio;
 
-import gnu.java.net.PlainSocketImpl;
 import java.io.IOException;
 import java.net.Socket;
 import java.nio.channels.SocketChannel;
index 1e8e0901d7c3ae693001753417fe098ea036330a..0128661e5b83544de149dcd9e7f185e0c3119cd7 100644 (file)
@@ -40,7 +40,6 @@ package gnu.java.nio;
 
 import java.io.IOException;
 import java.net.ServerSocket;
-import java.net.SocketTimeoutException;
 import java.nio.channels.ClosedChannelException;
 import java.nio.channels.NotYetBoundException;
 import java.nio.channels.ServerSocketChannel;
index 1c563ac097c0aa5e2e2d9aade753a2278bda2bc4..9564592e0cf2d0fd95691cfbacc63f557f4ba8c1 100644 (file)
@@ -38,28 +38,16 @@ exception statement from your version. */
 
 package gnu.java.nio;
 
-import gnu.java.net.PlainSocketImpl;
-import gnu.java.net.VMPlainSocketImpl;
-
 import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
 import java.net.InetSocketAddress;
 import java.net.Socket;
 import java.net.SocketAddress;
-import java.net.SocketException;
-import java.net.SocketTimeoutException;
 import java.nio.ByteBuffer;
-import java.nio.ReadOnlyBufferException;
 import java.nio.channels.AlreadyConnectedException;
 import java.nio.channels.ClosedChannelException;
 import java.nio.channels.ConnectionPendingException;
 import java.nio.channels.NoConnectionPendingException;
 import java.nio.channels.NotYetConnectedException;
-import java.nio.channels.SelectionKey;
-import java.nio.channels.Selector;
 import java.nio.channels.SocketChannel;
 import java.nio.channels.UnresolvedAddressException;
 import java.nio.channels.UnsupportedAddressTypeException;
index 31a96ed7d88b71c462a1766c95fd6b0fb78650d2..7557e28c4443af4a725315af93e4b9c84b853e68 100644 (file)
@@ -57,7 +57,7 @@ public class SocketChannelSelectionKeyImpl extends SelectionKeyImpl
   public SocketChannelSelectionKeyImpl(SocketChannelImpl ch, SelectorImpl impl)
   {
     super(ch, impl);
-    this.ch = (SocketChannelImpl) ch;
+    this.ch = ch;
   }
 
   /**
index e20254829566043dc038498de5da4ae7a0f97cc4..043c804b7e45afc415b9da962abd6ef595ab20db 100644 (file)
@@ -45,32 +45,34 @@ import java.nio.charset.CharsetEncoder;
 import java.nio.charset.CoderResult;
 
 /**
- * A generic encoding framework for single-byte encodings, 
- * utilizing a look-up table.
+ * A generic encoding framework for single-byte encodings, utilizing a look-up
+ * table.
+ * 
+ * This replaces the gnu.java.io.EncoderEightBitLookup class, created by Aron
+ * Renn.
  * 
- * This replaces the gnu.java.io.EncoderEightBitLookup class, 
- * created by Aron Renn.
- *
  * @author Sven de Marothy
+ * @modified Ian Rogers
  */
 abstract class ByteCharset extends Charset
 {
-  protected char[] lookupTable;
-    /**
-     * Char to signify the character in the table is undefined
-     */
-  protected static final char NONE = (char)0xFFFD;
+  protected final char[] lookupTable;
+  /**
+   * Char to signify the character in the table is undefined
+   */
+  protected static final char NONE = (char) 0xFFFD;
 
-  ByteCharset (String canonicalName, String[] aliases)
+  ByteCharset(String canonicalName, String[] aliases, char[] lookup)
   {
-    super (canonicalName, aliases);
+    super(canonicalName, aliases);
+    lookupTable = lookup;
   }
 
   /**
-   * Most western charsets include ASCII, but this should
-   * be overloaded for others.
+   * Most western charsets include ASCII, but this should be overloaded for
+   * others.
    */
-  public boolean contains (Charset cs)
+  public boolean contains(Charset cs)
   {
     return cs instanceof US_ASCII || (cs.getClass() == getClass());
   }
@@ -80,83 +82,91 @@ abstract class ByteCharset extends Charset
     return lookupTable;
   }
 
-  public CharsetDecoder newDecoder ()
+  public CharsetDecoder newDecoder()
   {
-    return new Decoder (this);
+    return new Decoder(this);
   }
 
-  public CharsetEncoder newEncoder ()
+  public CharsetEncoder newEncoder()
   {
-    return new Encoder (this);
+    return new Encoder(this);
   }
 
   private static final class Decoder extends CharsetDecoder
   {
-    private char[] lookup;
-
+    /** Lookup of byte to char mappings */
+    private final char[] lookup;
+    
+    /** Helper to decode loops */
+    private final ByteDecodeLoopHelper helper = new ByteDecodeLoopHelper()
+    {
+      protected boolean isMappable(byte b)
+      {
+        return lookup[(int) (b & 0xFF)] != NONE;
+      }
+      protected char mapToChar(byte b)
+      {
+        return lookup[(int) (b & 0xFF)];
+      }
+    };
+    
     // Package-private to avoid a trampoline constructor.
-    Decoder (ByteCharset cs)
+    Decoder(ByteCharset cs)
     {
-      super (cs, 1.0f, 1.0f);
+      super(cs, 1.0f, 1.0f);
       lookup = cs.getLookupTable();
     }
 
-    protected CoderResult decodeLoop (ByteBuffer in, CharBuffer out)
+    protected CoderResult decodeLoop(ByteBuffer in, CharBuffer out)
     {
-      // TODO: Optimize this in the case in.hasArray() / out.hasArray()
-      while (in.hasRemaining ())
-      {
-        byte b = in.get ();
-       char c;
-
-        if (!out.hasRemaining ())
-          {
-            in.position (in.position () - 1);
-            return CoderResult.OVERFLOW;
-          }
-       
-       if((c = lookup[(int) (b & 0xFF)]) == NONE)
-          {
-            in.position (in.position () - 1);
-            return CoderResult.unmappableForLength (1);
-          }
-        out.put (c);
-      }
-
-      return CoderResult.UNDERFLOW;
+      return helper.decodeLoop(in, out);
     }
   }
 
   private static final class Encoder extends CharsetEncoder
   {
-    private byte[] lookup;
-
+    /** Lookup of char to byte mappings */
+    private final byte[] lookup;
+    
+    /** Helper to encode loops */
+    private final ByteEncodeLoopHelper helper = new ByteEncodeLoopHelper()
+    {
+      protected boolean isMappable(char c)
+      {
+        return canEncode(c);
+      }
+      protected byte mapToByte(char c)
+      {
+        return lookup[c];
+      }
+    };
+    
     // Package-private to avoid a trampoline constructor.
-    Encoder (ByteCharset cs)
+    Encoder(ByteCharset cs)
     {
-      super (cs, 1.0f, 1.0f);
+      super(cs, 1.0f, 1.0f);
 
       char[] lookup_table = cs.getLookupTable();
 
       // Create the inverse look-up table.
-      // determine required size of encoding_table: 
-      int max = 0; 
+      // determine required size of encoding_table:
+      int max = 0;
       for (int i = 0; i < lookup_table.length; i++)
-         {
-             int c = (int)lookup_table[i]; 
-             max = (c > max && c < NONE) ? c : max;
-         }
+        {
+          int c = (int) lookup_table[i];
+          max = (c > max && c < NONE) ? c : max;
+        }
+
+      lookup = new byte[max + 1];
 
-      lookup = new byte[max+1];
-      
       for (int i = 0; i < lookup_table.length; i++)
-         {
-           int c = (int)lookup_table[i]; 
-           if (c != 0 && c < NONE) 
-             {
-               lookup[c] = (byte)i;
-             }
-         }
+        {
+          int c = (int) lookup_table[i];
+          if (c != 0 && c < NONE)
+            {
+              lookup[c] = (byte) i;
+            }
+        }
     }
 
     public boolean canEncode(char c)
@@ -169,38 +179,15 @@ abstract class ByteCharset extends Charset
     {
       for (int i = 0; i < cs.length(); ++i)
         {
-          if (! canEncode(cs.charAt(i)))
+          if (!canEncode(cs.charAt(i)))
             return false;
         }
       return true;
     }
 
-    protected CoderResult encodeLoop (CharBuffer in, ByteBuffer out)
+    protected CoderResult encodeLoop(CharBuffer in, ByteBuffer out)
     {
-      // TODO: Optimize this in the case in.hasArray() / out.hasArray()
-      while (in.hasRemaining ())
-      {
-       int c = (int)in.get ();
-
-        if (!out.hasRemaining ())
-          {
-            in.position (in.position () - 1);
-            return CoderResult.OVERFLOW;
-          }
-
-       // lookup byte encoding
-       byte b = (c < lookup.length) ? lookup[c] : (byte)0;
-
-       if ((int)b != 0 || (int)c == 0)
-           {
-               out.put (b);
-           } else {
-               in.position (in.position () - 1);
-               return CoderResult.unmappableForLength (1);             
-           }
-      }
-
-      return CoderResult.UNDERFLOW;
+      return helper.encodeLoop(in, out);
     }
   }
 }
diff --git a/libjava/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java b/libjava/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java
new file mode 100644 (file)
index 0000000..33dfa02
--- /dev/null
@@ -0,0 +1,162 @@
+/* ByteCharset.java -- Abstract class for generic 1-byte encodings.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.nio.charset;
+
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.CoderResult;
+
+/**
+ * Helper class to deal with decoding loops that read a byte at a time
+ * 
+ * @author Ian Rogers
+ */
+public abstract class ByteDecodeLoopHelper
+{
+  /**
+   * @return can the given byte be encoded
+   */
+  protected abstract boolean isMappable(byte b);
+
+  /**
+   * Map the given byte to a char, the given byte is guaranteed to be mappable
+   */
+  protected abstract char mapToChar(byte b);
+
+  /**
+   * Encodes one or more characters into one or more bytes, mapping each
+   * character to only one byte
+   * 
+   * @param in character buffer to read from
+   * @param out byte buffer to write to
+   * @return the result state of the encoder
+   */
+  CoderResult decodeLoop(ByteBuffer in, CharBuffer out)
+  {
+    if (in.hasArray() && out.hasArray())
+      {
+        return arrayDecodeLoop(in, out);
+      } else
+      {
+        return normalDecodeLoop(in, out);
+      }
+  }
+
+  /**
+   * Encode loop using get and put operations
+   */
+  private CoderResult normalDecodeLoop(ByteBuffer in, CharBuffer out)
+  {
+    int outRemaining = out.remaining();
+    int inRemaining = in.remaining();
+    while (inRemaining > 0 && outRemaining > 0)
+      {
+        byte b = in.get();
+        inRemaining--;
+
+        if (!isMappable(b))
+          {
+            in.position(in.position() - 1);
+            return CoderResult.unmappableForLength(1);
+          }
+        char c = mapToChar(b);
+        out.put(c);
+        outRemaining--;
+      }
+    if (inRemaining > 0)
+      {
+        return CoderResult.OVERFLOW;
+      } else
+      {
+        return CoderResult.UNDERFLOW;
+      }
+  }
+
+  /**
+   * Encode loop using array read and write operations
+   */
+  private CoderResult arrayDecodeLoop(ByteBuffer in, CharBuffer out)
+  {
+    byte[] inArray = in.array();
+    char[] outArray = out.array();
+    int inPos = in.arrayOffset() + in.position();
+    int outPos = out.arrayOffset() + out.position();
+    int inRemaining = in.remaining();
+    int outRemaining = out.remaining();
+    CoderResult result;
+    if (inRemaining <= outRemaining)
+      {
+        for (int i = 0; i < inRemaining; i++)
+          {
+            byte b = inArray[inPos];
+            inPos++;
+            if (!isMappable(b))
+              {
+                inPos--;
+                result = CoderResult.unmappableForLength(1);
+                break;
+              }
+            char c = mapToChar(b);
+            outArray[outPos] = c;
+            outPos++;
+          }
+        result = CoderResult.UNDERFLOW;
+      }
+    else
+      {
+        for (int i = 0; i < outRemaining; i++)
+          {
+            byte b = inArray[inPos];
+            inPos++;
+            if (!isMappable(b))
+              {
+                inPos--;
+                result = CoderResult.unmappableForLength(1);
+                break;
+              }
+            char c = mapToChar(b);
+            outArray[outPos] = c;
+            outPos++;
+          }
+        result = CoderResult.OVERFLOW;
+      }
+    in.position(inPos - in.arrayOffset());
+    out.position(outPos - out.arrayOffset());
+    return result;
+  }
+}
diff --git a/libjava/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java b/libjava/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java
new file mode 100644 (file)
index 0000000..5f703b1
--- /dev/null
@@ -0,0 +1,163 @@
+/* ByteCharset.java -- Abstract class for generic 1-byte encodings.
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.nio.charset;
+
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.CoderResult;
+
+/**
+ * Helper class to deal with encoding loops that write a byte at a time
+ * 
+ * @author Ian Rogers
+ */
+public abstract class ByteEncodeLoopHelper
+{
+  /**
+   * @return can the given character be encoded
+   */
+  protected abstract boolean isMappable(char c);
+
+  /**
+   * Map the given character to a byte, the given character is guaranteed to be
+   * mappable
+   */
+  protected abstract byte mapToByte(char c);
+
+  /**
+   * Encodes one or more characters into one or more bytes, mapping each
+   * character to only one byte
+   * 
+   * @param in character buffer to read from
+   * @param out byte buffer to write to
+   * @return the result state of the encoder
+   */
+  CoderResult encodeLoop(CharBuffer in, ByteBuffer out)
+  {
+    if (in.hasArray() && out.hasArray())
+      {
+        return arrayEncodeLoop(in, out);
+      } else
+      {
+        return normalEncodeLoop(in, out);
+      }
+  }
+
+  /**
+   * Encode loop using get and put operations
+   */
+  private CoderResult normalEncodeLoop(CharBuffer in, ByteBuffer out)
+  {
+    int outRemaining = out.remaining();
+    int inRemaining = in.remaining();
+    while (inRemaining > 0 && outRemaining > 0)
+      {
+        char c = in.get();
+        inRemaining--;
+
+        if (!isMappable(c))
+          {
+            in.position(in.position() - 1);
+            return CoderResult.unmappableForLength(1);
+          }
+        byte b = mapToByte(c);
+        out.put(b);
+        outRemaining--;
+      }
+    if (inRemaining > 0)
+      {
+        return CoderResult.OVERFLOW;
+      } else
+      {
+        return CoderResult.UNDERFLOW;
+      }
+  }
+
+  /**
+   * Encode loop using array read and write operations
+   */
+  private CoderResult arrayEncodeLoop(CharBuffer in, ByteBuffer out)
+  {
+    char[] inArray = in.array();
+    byte[] outArray = out.array();
+    int inPos = in.arrayOffset() + in.position();
+    int outPos = out.arrayOffset() + out.position();
+    int inRemaining = in.remaining();
+    int outRemaining = out.remaining();
+    CoderResult result;
+    if (inRemaining <= outRemaining)
+      {
+        for (int i = 0; i < inRemaining; i++)
+          {
+            char inChar = inArray[inPos];
+            inPos++;
+            if (!isMappable(inChar))
+              {
+                inPos--;
+                result = CoderResult.unmappableForLength(1);
+                break;
+              }
+            byte b = mapToByte(inChar);
+            outArray[outPos] = b;
+            outPos++;
+          }
+        result = CoderResult.UNDERFLOW;
+      }
+    else
+      {
+        for (int i = 0; i < outRemaining; i++)
+          {
+            char inChar = inArray[inPos];
+            inPos++;
+            if (!isMappable(inChar))
+              {
+                inPos--;
+                result = CoderResult.unmappableForLength(1);
+                break;
+              }
+            byte b = mapToByte(inChar);
+            outArray[outPos] = b;
+            outPos++;
+          }
+        result = CoderResult.OVERFLOW;
+      }
+    in.position(inPos - in.arrayOffset());
+    out.position(outPos - out.arrayOffset());
+    return result;
+  }
+}
index 9733a76a4c585e67faf9a1d83e34ca6fb78ca10f..44e1eba4f6a85a6aec709460c74df4a3d208dfe3 100644 (file)
@@ -37,53 +37,50 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class Cp424 extends ByteCharset
+public final class Cp424 extends ByteCharset
 {
 
   /**
    * This is the lookup table for this encoding
    */
-    private static final char[]        lookup =
+    private static final char[] lookup =
     {
-       0x0000, 0x0001, 0x0002, 0x0003, 0x009C, 0x0009, 0x0086, 0x007F, 
-       0x0097, 0x008D, 0x008E, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, 
-       0x0010, 0x0011, 0x0012, 0x0013, 0x009D, 0x0085, 0x0008, 0x0087, 
-       0x0018, 0x0019, 0x0092, 0x008F, 0x001C, 0x001D, 0x001E, 0x001F, 
-       0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000A, 0x0017, 0x001B, 
-       0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x0005, 0x0006, 0x0007, 
-       0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004, 
-       0x0098, 0x0099, 0x009A, 0x009B, 0x0014, 0x0015, 0x009E, 0x001A, 
-       0x0020, 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 
-       0x05D7, 0x05D8, 0x00A2, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C, 
-       0x0026, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, 
-       0x05E0, 0x05E1, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC, 
-       0x002D, 0x002F, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7, 
-       0x05E8, 0x05E9, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F, 
-       NONE,   0x05EA,   NONE,   NONE, 0x00A0,   NONE,   NONE,   NONE, 
-       0x2017, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022, 
-       NONE,   0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 
-       0x0068, 0x0069, 0x00AB, 0x00BB,   NONE,   NONE,   NONE, 0x00B1, 
-       0x00B0, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070, 
-       0x0071, 0x0072,   NONE,   NONE,   NONE, 0x00B8,   NONE, 0x00A4, 
-       0x00B5, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 
-       0x0079, 0x007A,   NONE,   NONE,   NONE,   NONE,   NONE, 0x00AE, 
-       0x005E, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x00A7, 0x00B6, 0x00BC, 
-       0x00BD, 0x00BE, 0x005B, 0x005D, 0x00AF, 0x00A8, 0x00B4, 0x00D7, 
-       0x007B, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 
-       0x0048, 0x0049, 0x00AD,   NONE,   NONE,   NONE,   NONE,   NONE, 
-       0x007D, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, 
-       0x0051, 0x0052, 0x00B9,   NONE,   NONE,   NONE,   NONE,   NONE, 
-       0x005C, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 
-       0x0059, 0x005A, 0x00B2,   NONE,   NONE,   NONE,   NONE,   NONE, 
-       0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 
+       0x0000, 0x0001, 0x0002, 0x0003, 0x009C, 0x0009, 0x0086, 0x007F,
+       0x0097, 0x008D, 0x008E, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F,
+       0x0010, 0x0011, 0x0012, 0x0013, 0x009D, 0x0085, 0x0008, 0x0087,
+       0x0018, 0x0019, 0x0092, 0x008F, 0x001C, 0x001D, 0x001E, 0x001F,
+       0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x000A, 0x0017, 0x001B,
+       0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x0005, 0x0006, 0x0007,
+       0x0090, 0x0091, 0x0016, 0x0093, 0x0094, 0x0095, 0x0096, 0x0004,
+       0x0098, 0x0099, 0x009A, 0x009B, 0x0014, 0x0015, 0x009E, 0x001A,
+       0x0020, 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6,
+       0x05D7, 0x05D8, 0x00A2, 0x002E, 0x003C, 0x0028, 0x002B, 0x007C,
+       0x0026, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF,
+       0x05E0, 0x05E1, 0x0021, 0x0024, 0x002A, 0x0029, 0x003B, 0x00AC,
+       0x002D, 0x002F, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7,
+       0x05E8, 0x05E9, 0x00A6, 0x002C, 0x0025, 0x005F, 0x003E, 0x003F,
+       NONE,   0x05EA,   NONE,   NONE, 0x00A0,   NONE,   NONE,   NONE,
+       0x2017, 0x0060, 0x003A, 0x0023, 0x0040, 0x0027, 0x003D, 0x0022,
+       NONE,   0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
+       0x0068, 0x0069, 0x00AB, 0x00BB,   NONE,   NONE,   NONE, 0x00B1,
+       0x00B0, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070,
+       0x0071, 0x0072,   NONE,   NONE,   NONE, 0x00B8,   NONE, 0x00A4,
+       0x00B5, 0x007E, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078,
+       0x0079, 0x007A,   NONE,   NONE,   NONE,   NONE,   NONE, 0x00AE,
+       0x005E, 0x00A3, 0x00A5, 0x00B7, 0x00A9, 0x00A7, 0x00B6, 0x00BC,
+       0x00BD, 0x00BE, 0x005B, 0x005D, 0x00AF, 0x00A8, 0x00B4, 0x00D7,
+       0x007B, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
+       0x0048, 0x0049, 0x00AD,   NONE,   NONE,   NONE,   NONE,   NONE,
+       0x007D, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050,
+       0x0051, 0x0052, 0x00B9,   NONE,   NONE,   NONE,   NONE,   NONE,
+       0x005C, 0x00F7, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
+       0x0059, 0x005A, 0x00B2,   NONE,   NONE,   NONE,   NONE,   NONE,
+       0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
        0x0038, 0x0039, 0x00B3,   NONE,   NONE,   NONE,   NONE, 0x009F
     };
 
-    public Cp424()
-    {
-       super("Cp424", new String[] {
-       });
-       lookupTable = lookup;
+    public Cp424() {
+      super("Cp424", new String[] {}, lookup);
     }
 
 } // class Cp424
index d6083579d11f2d33a42c6723f6ff285c71921a5c..e38a482573a86f106b73c03a4534e8b7dff4ed28 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class Cp437 extends ByteCharset
+public final class Cp437 extends ByteCharset
 {
 
   /**
@@ -81,9 +81,7 @@ public class Cp437 extends ByteCharset
 
     public Cp437()
     {
-       super("Cp437", new String[] {
-       });
-       lookupTable = lookup;
+      super("Cp437", new String[]{}, lookup);
     }
 
 } // class Cp437
index 548da21912b06abd1ec59f2fce9ae05e6f0a180c..2187987ead74eb15d572cf6e5a74e6360b9ebaa9 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class Cp737 extends ByteCharset
+public final class Cp737 extends ByteCharset
 {
 
   /**
@@ -81,9 +81,7 @@ public class Cp737 extends ByteCharset
 
     public Cp737()
     {
-       super("Cp737", new String[] {
-       });
-       lookupTable = lookup;
+       super("Cp737", new String[] {}, lookup);
     }
 
 } // class Cp737
index 4d3f1c36c8deb1210be9fd87c73336e606fb6e49..f2fba4356e3614ca9cefb47fce7ea1494fa93dc4 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class Cp775 extends ByteCharset
+public final class Cp775 extends ByteCharset
 {
 
   /**
@@ -81,9 +81,7 @@ public class Cp775 extends ByteCharset
 
     public Cp775()
     {
-       super("Cp775", new String[] {
-       });
-       lookupTable = lookup;
+       super("Cp775", new String[] {}, lookup);
     }
 
 } // class Cp775
index 9122105ad080a4cc6007394efe900e311c346905..48d4fb3448a2a3984fcd85db7194afc21658a83d 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class Cp850 extends ByteCharset
+public final class Cp850 extends ByteCharset
 {
 
   /**
@@ -81,9 +81,7 @@ public class Cp850 extends ByteCharset
 
     public Cp850()
     {
-       super("Cp850", new String[] {
-       });
-       lookupTable = lookup;
+       super("Cp850", new String[] {}, lookup);
     }
 
 } // class Cp850
index a859530a8ef19b5dfcf026b4d1e6e592d500f649..c550944b5261421702578eaf1feaa4d3ecda108e 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class Cp852 extends ByteCharset
+public final class Cp852 extends ByteCharset
 {
 
   /**
@@ -81,9 +81,7 @@ public class Cp852 extends ByteCharset
 
     public Cp852()
     {
-       super("Cp852", new String[] {
-       });
-       lookupTable = lookup;
+       super("Cp852", new String[] {}, lookup);
     }
 
 } // class Cp852
index fbec999c794fc38fb008e574c335a4b11c9ee748..141e891b67c162447ed4e8316e403134414bf83d 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class Cp855 extends ByteCharset
+public final class Cp855 extends ByteCharset
 {
 
     /**
@@ -81,10 +81,7 @@ public class Cp855 extends ByteCharset
 
     public Cp855()
     {
-       super("Cp855", new String[] {
-           "cp-855",
-       });
-       lookupTable = lookup;
+       super("Cp855", new String[] {"cp-855",}, lookup);
     }
 
 } // class Cp855
index 78f8dbd2d156a0483615d71d3cebaae277db40e9..b517b0393c68d3b302d1540fe1e10376df802964 100644 (file)
@@ -38,7 +38,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class Cp857 extends ByteCharset
+public final class Cp857 extends ByteCharset
 {
 
     /**
@@ -82,10 +82,7 @@ public class Cp857 extends ByteCharset
 
     public Cp857()
     {
-       super("Cp857", new String[] {
-           "cp-857"
-       });
-       lookupTable = lookup;
+       super("Cp857", new String[] {"cp-857"}, lookup);
     }
 
 } // class Cp857
index e3c7f46b8f5bcc829b85c32ba21c7d69ab9ea381..58a396446adca054060fb710b19eeeb2acfff983 100644 (file)
@@ -38,7 +38,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class Cp860 extends ByteCharset
+public final class Cp860 extends ByteCharset
 {
 
     /**
@@ -82,10 +82,7 @@ public class Cp860 extends ByteCharset
 
     public Cp860()
     {
-       super("Cp860", new String[] {
-           "cp-860"
-       });
-       lookupTable = lookup;
+       super("Cp860", new String[] {"cp-860"}, lookup);
     }
 
 } // class Cp860
index 6e17ea2e84256043a4dc317e85e322d5d5c0f53a..cf5210d0a2a1493a9d22ff16946061b673cf54b0 100644 (file)
@@ -38,7 +38,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class Cp861 extends ByteCharset
+public final class Cp861 extends ByteCharset
 {
 
     /**
@@ -82,10 +82,7 @@ public class Cp861 extends ByteCharset
 
     public Cp861()
     {
-       super("Cp861", new String[] {
-           "cp-861"
-       });
-       lookupTable = lookup;
+       super("Cp861", new String[] {"cp-861"}, lookup);
     }
 
 } // class Cp861
index ccd74fa9ddbec4a6bd8fb8d0977fea50b9de3e5f..f66118021a394768eb280169d5d44d45034063ca 100644 (file)
@@ -38,7 +38,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class Cp862 extends ByteCharset
+public final class Cp862 extends ByteCharset
 {
 
     /**
@@ -82,10 +82,7 @@ public class Cp862 extends ByteCharset
 
     public Cp862()
     {
-       super("Cp862", new String[] {
-           "Cp-862"
-       });
-       lookupTable = lookup;
+       super("Cp862", new String[] {"Cp-862"}, lookup);
     }
 
 } // class Cp862
index 97812a6f66c418e3c43ae12594cc137ba389d589..03850234ef64cfb55f7add2fdeeeb04f17b1e7f1 100644 (file)
@@ -38,7 +38,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class Cp863 extends ByteCharset
+public final class Cp863 extends ByteCharset
 {
 
     /**
@@ -82,10 +82,7 @@ public class Cp863 extends ByteCharset
 
     public Cp863()
     {
-       super("Cp863", new String[] {
-           "Cp-863"
-       });
-       lookupTable = lookup;
+       super("Cp863", new String[] {"Cp-863"}, lookup);
     }
 
 } // class Cp863
index f136f43ecccc85ce7db1f61db7a395502f80ec3d..028235dd30ccc8da2cbddc6d551c3544fd311ee2 100644 (file)
@@ -38,7 +38,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class Cp864 extends ByteCharset
+public final class Cp864 extends ByteCharset
 {
 
     /**
@@ -82,10 +82,7 @@ public class Cp864 extends ByteCharset
 
     public Cp864()
     {
-       super("Cp864", new String[] {
-           "Cp-864"
-       });
-       lookupTable = lookup;
+       super("Cp864", new String[] {"Cp-864"}, lookup);
     }
 
 } // class Cp864
index a1332a74f9501294606d74f185452d001ecb3e3b..c723e80c995de8c87d03615ca7fcafd286a5cd3b 100644 (file)
@@ -38,7 +38,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class Cp865 extends ByteCharset
+public final class Cp865 extends ByteCharset
 {
 
     /**
@@ -82,10 +82,7 @@ public class Cp865 extends ByteCharset
 
     public Cp865()
     {
-       super("Cp865", new String[] {
-           "Cp-865"
-       });
-       lookupTable = lookup;
+       super("Cp865", new String[] {"Cp-865"}, lookup);
     }
 
 } // class Cp865
index ca6958949f6a17506ff39f6309d00fca524ffdd0..103bca7c30a354be3439ca6b6c2dcb0ed5246eb3 100644 (file)
@@ -38,7 +38,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class Cp866 extends ByteCharset
+public final class Cp866 extends ByteCharset
 {
 
     /**
@@ -82,10 +82,7 @@ public class Cp866 extends ByteCharset
 
     public Cp866()
     {
-       super("Cp866", new String[] {
-           "cp-866"
-       });
-       lookupTable = lookup;
+       super("Cp866", new String[] {"cp-866"}, lookup);
     }
 
 } // class Cp866
index f5e05298473c8e8f4f7741646770209721a7e9dc..0632b37418ce02fa5072e228bb7fb9608afce877 100644 (file)
@@ -38,7 +38,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class Cp869 extends ByteCharset
+public final class Cp869 extends ByteCharset
 {
 
     /**
@@ -82,10 +82,7 @@ public class Cp869 extends ByteCharset
 
     public Cp869()
     {
-       super("Cp869", new String[] {
-           "Cp-869"
-       });
-       lookupTable = lookup;
+       super("Cp869", new String[] {"Cp-869"}, lookup);
     }
 
 } // class Cp869
index d81755c1e0e606fd798a54928a5258c05a4372c7..f6e52c485ea55857bfc27df5dedfe9745b6efed8 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class Cp874 extends ByteCharset
+public final class Cp874 extends ByteCharset
 {
 
   /**
@@ -81,9 +81,7 @@ public class Cp874 extends ByteCharset
 
     public Cp874()
     {
-       super("Cp874", new String[] {
-       });
-       lookupTable = lookup;
+       super("Cp874", new String[] {}, lookup);
     }
 
 } // class Cp874
index be7b4afe05d6c7225919127d903d2515511e83d1..479b6e53434db629a217efb5c36783a620f319c3 100644 (file)
@@ -57,10 +57,10 @@ public class EncodingHelper
      * Contains the mapping from java.io canonical names 
      * to java.nio canonical names.
      */
-    private static HashMap canonicalNames;
+    private static final HashMap<String,String> canonicalNames;
 
     static {
-       canonicalNames = new HashMap();
+       canonicalNames = new HashMap<String,String>();
        canonicalNames.put("US-ASCII", "ASCII");
        canonicalNames.put("windows-1250", "Cp1250");
        canonicalNames.put("windows-1251", "Cp1251");
@@ -94,7 +94,6 @@ public class EncodingHelper
      */
     public static String getDefaultEncoding()
     {
-       String encoding;
        try 
            {
                return System.getProperty("file.encoding");
index 558289583dd9626f41d8ea5f21bca3c0adbbcc77..19a538d9fe40d7b7209249e2f3011ca78f5144a0 100644 (file)
@@ -48,6 +48,7 @@ import java.nio.charset.CoderResult;
  * ISO-8859-1 charset.
  *
  * @author Jesse Rosenstock
+ * @modified Ian Rogers
  */
 final class ISO_8859_1 extends Charset
 {
@@ -98,6 +99,19 @@ final class ISO_8859_1 extends Charset
 
   private static final class Decoder extends CharsetDecoder
   {
+    /** Helper to decode loops */
+    private static final ByteDecodeLoopHelper helper = new ByteDecodeLoopHelper()
+    {
+      protected boolean isMappable(byte b)
+      {
+        return true;
+      }
+      protected char mapToChar(byte b)
+      {
+        return (char)(b & 0xFF);
+      }
+    };
+    
     // Package-private to avoid a trampoline constructor.
     Decoder (Charset cs)
     {
@@ -106,26 +120,24 @@ final class ISO_8859_1 extends Charset
 
     protected CoderResult decodeLoop (ByteBuffer in, CharBuffer out)
     {
-      // TODO: Optimize this in the case in.hasArray() / out.hasArray()
-      while (in.hasRemaining ())
-      {
-        byte b = in.get ();
-
-        if (!out.hasRemaining ())
-          {
-            in.position (in.position () - 1);
-            return CoderResult.OVERFLOW;
-          }
-
-        out.put ((char) (b & 0xFF));
-      }
-
-      return CoderResult.UNDERFLOW;
+      return helper.decodeLoop(in, out);
     }
   }
 
   private static final class Encoder extends CharsetEncoder
   {
+    /** Helper to encode loops */
+    private static final ByteEncodeLoopHelper helper = new ByteEncodeLoopHelper()
+    {
+      protected boolean isMappable(char c)
+      {
+        return c <= 0xff;
+      }
+      protected byte mapToByte(char c)
+      {
+        return (byte)c;
+      }
+    };
     // Package-private to avoid a trampoline constructor.
     Encoder (Charset cs)
     {
@@ -147,26 +159,7 @@ final class ISO_8859_1 extends Charset
 
     protected CoderResult encodeLoop (CharBuffer in, ByteBuffer out)
     {
-      // TODO: Optimize this in the case in.hasArray() / out.hasArray()
-      while (in.hasRemaining ())
-      {
-        char c = in.get ();
-
-        if (c > 0xFF)
-          {
-            in.position (in.position () - 1);
-            return CoderResult.unmappableForLength (1);
-          }
-        if (!out.hasRemaining ())
-          {
-            in.position (in.position () - 1);
-            return CoderResult.OVERFLOW;
-          }
-
-        out.put ((byte) c);
-      }
-
-      return CoderResult.UNDERFLOW;
+      return helper.encodeLoop(in, out);
     }
   }
 }
index c10eef305c3cd42417aed56997a6dde0fc6634df..3bbd42f3b49ae4d1dbb13881abdbde771ddc3779 100644 (file)
@@ -41,7 +41,7 @@ package gnu.java.nio.charset;
 /**
  * Encoding table for ISO-8859-13, ISO Latin-7 char set.
  */
-public class ISO_8859_13 extends ByteCharset
+public final class ISO_8859_13 extends ByteCharset
 {
 
   /**
@@ -96,8 +96,7 @@ public class ISO_8859_13 extends ByteCharset
          "8859_13", 
          "cp921",
          "921"
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class ISO_8859_13
index 973fe1c947d22777c0cd3247717e394613213ef5..df2265ac549d1c0ba5c89879e341d9ddc2192ddf 100644 (file)
@@ -41,7 +41,7 @@ package gnu.java.nio.charset;
 /**
  * Encoding table for ISO-8859-15, ISO Latin-9 char set.
  */
-public class ISO_8859_15 extends ByteCharset
+public final class ISO_8859_15 extends ByteCharset
 {
 
   /**
@@ -103,8 +103,7 @@ public class ISO_8859_15 extends ByteCharset
          "cp923", 
          "923", 
          "windows-28605"
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class ISO_8859_15
index 2de96df9b683440e025a1c92fb1f9e6e60dc0f41..dbe2b4dbf9672a92427ce0445159bad4b25b9f6d 100644 (file)
@@ -41,7 +41,7 @@ package gnu.java.nio.charset;
 /**
  * Encoding table for ISO-8859-2, ISO Latin-2 char set.
  */
-public class ISO_8859_2 extends ByteCharset
+public final class ISO_8859_2 extends ByteCharset
 {
 
   /**
@@ -102,8 +102,7 @@ public class ISO_8859_2 extends ByteCharset
          "cp912",
          "912", 
          "windows-28592"
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class ISO_8859_2
index 6e718719a2d3e1515448ee00330413205f70115e..567379e7de49e8f0ef75932ac8988ca0db8b9772 100644 (file)
@@ -41,7 +41,7 @@ package gnu.java.nio.charset;
 /**
  * Encoding table for ISO-8859-3, ISO Latin-3 char set.
  */
-public class ISO_8859_3 extends ByteCharset
+public final class ISO_8859_3 extends ByteCharset
 {
 
   /**
@@ -101,8 +101,7 @@ public class ISO_8859_3 extends ByteCharset
          "cp913", 
          "913", 
          "windows-28593"
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class ISO_8859_3
index 96dc467547615fec6832bce04887c4689ee231e4..ca062278a7a84d350ee7b4b811f089ded96b1399 100644 (file)
@@ -41,7 +41,7 @@ package gnu.java.nio.charset;
 /**
  * Encoding table for ISO-8859-4, ISO Latin-4 char set.
  */
-public class ISO_8859_4 extends ByteCharset
+public final class ISO_8859_4 extends ByteCharset
 {
 
   /**
@@ -102,8 +102,7 @@ public class ISO_8859_4 extends ByteCharset
          "cp914",
          "914", 
          "windows-28594"
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class ISO_8859_4
index ad208729c856a3d8ba113b6ab5c5b372dae1d042..70496ce4931f63a2cea2f43ff774b0405858d461 100644 (file)
@@ -41,7 +41,7 @@ package gnu.java.nio.charset;
 /**
  * Encoding table for ISO-8859-5, ISO cyrillic char set.
  */
-public class ISO_8859_5 extends ByteCharset
+public final class ISO_8859_5 extends ByteCharset
 {
 
   /**
@@ -100,8 +100,7 @@ public class ISO_8859_5 extends ByteCharset
          "cp915", 
          "915", 
          "windows-28595"
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class ISO_8859_5
index 5600e7923860f32aa7d9a978241416ea95f315d5..dc7a9bef8caeea9aa339be1052908283b2be6bc1 100644 (file)
@@ -41,7 +41,7 @@ package gnu.java.nio.charset;
 /**
  * Encoding table for ISO-8859-6, ISO Arabic char set.
  */
-public class ISO_8859_6 extends ByteCharset
+public final class ISO_8859_6 extends ByteCharset
 {
 
   /**
@@ -104,8 +104,7 @@ public class ISO_8859_6 extends ByteCharset
          "windows-28596", 
          "ISO-8859-6-I", 
          "ISO-8859-6-E"
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class ISO_8859_6
index 9262a607723a59af9a7c20715e919e2961241551..195f16094584a172392d6d16d921ee3dbb94163a 100644 (file)
@@ -41,7 +41,7 @@ package gnu.java.nio.charset;
 /**
  * Encoding table for ISO-8859-7, ISO Latin/Greek char set.
  */
-public class ISO_8859_7 extends ByteCharset
+public final class ISO_8859_7 extends ByteCharset
 {
 
   /**
@@ -103,8 +103,7 @@ public class ISO_8859_7 extends ByteCharset
          "cp813",
          "813",
          "windows-28597"
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class ISO_8859_7
index 96fb0f48b82a75f5e7df973ac4e656a4a750e29c..b58030f174b3629a813db7462570c369fafb78eb 100644 (file)
@@ -41,7 +41,7 @@ package gnu.java.nio.charset;
 /**
  * Encoding table for ISO-8859-8, ISO Latin/Hebrew char set.
  */
-public class ISO_8859_8 extends ByteCharset
+public final class ISO_8859_8 extends ByteCharset
 {
 
   /**
@@ -102,8 +102,7 @@ public class ISO_8859_8 extends ByteCharset
          "cp916",
          "916",
          "windows-28598"
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class ISO_8859_8
index 28be34cf877e01b73b39bac6aa1189a0817b5009..83fb5a222d78e96ae7dc3c0f19fc1121750e070c 100644 (file)
@@ -41,7 +41,7 @@ package gnu.java.nio.charset;
 /**
  * Encoding table for ISO-8859-9, ISO Latin-5 char set.
  */
-public class ISO_8859_9 extends ByteCharset
+public final class ISO_8859_9 extends ByteCharset
 {
 
   /**
@@ -102,8 +102,7 @@ public class ISO_8859_9 extends ByteCharset
          "920", 
          "windows-28599",
          "ECMA-128"
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class ISO_8859_9
index c6706560702a7baa1334b05c7279f991f585a47c..20eb8b198ad8298c558a29c82015d9391d2b8fb2 100644 (file)
@@ -41,7 +41,7 @@ package gnu.java.nio.charset;
 /**
  * Encoding table for the KOI8 cyrillic char set.
  */
-public class KOI_8 extends ByteCharset
+public final class KOI_8 extends ByteCharset
 {
 
   /**
@@ -94,8 +94,7 @@ public class KOI_8 extends ByteCharset
          "koi8r", 
          "koi-8-r",
          "koi"
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class KOI_8
index b16e53f42435b43c51b4dcd303a4f1980388af88..f7cf81a2509449d66a4b6ea690644078235e90be 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class MS874 extends ByteCharset
+public final class MS874 extends ByteCharset
 {
 
   /**
@@ -81,9 +81,7 @@ public class MS874 extends ByteCharset
 
     public MS874()
     {
-       super("MS874", new String[] {
-       });
-       lookupTable = lookup;
+       super("MS874", new String[] {}, lookup);
     }
 
 } // class MS874
index 5496db2b5eacd47f569dd19a0fd98f01b693af24..ce085436530984cce2aa9f277b183ca03b6d69c0 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class MacCentralEurope extends ByteCharset
+public final class MacCentralEurope extends ByteCharset
 {
 
   /**
@@ -81,9 +81,7 @@ public class MacCentralEurope extends ByteCharset
 
     public MacCentralEurope()
     {
-       super("MacCentralEurope", new String[] {
-       });
-       lookupTable = lookup;
+       super("MacCentralEurope", new String[] {}, lookup);
     }
 
 } // class MacCentralEurope
index f71ac5199b7acaeaeba9f809ba8b091f8eeab205..3bb19f5e2ed7f0aed79b6c3fcc789141d5dc7588 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class MacCroatian extends ByteCharset
+public final class MacCroatian extends ByteCharset
 {
 
   /**
@@ -81,9 +81,7 @@ public class MacCroatian extends ByteCharset
 
     public MacCroatian()
     {
-       super("MacCroatian", new String[] {
-       });
-       lookupTable = lookup;
+       super("MacCroatian", new String[] {}, lookup);
     }
 
 } // class MacCroatian
index f152f6b1c1b85aac6a56fc491d5f89ff1801cfbb..b1984e57ab1b6f408b30d6c7ca54fec6b9d2fe98 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class MacCyrillic extends ByteCharset
+public final class MacCyrillic extends ByteCharset
 {
 
     /**
@@ -81,9 +81,7 @@ public class MacCyrillic extends ByteCharset
 
     public MacCyrillic()
     {
-       super("MacCyrillic", new String[] {
-       });
-       lookupTable = lookup;
+       super("MacCyrillic", new String[] {}, lookup);
     }
 
 } // class MacCyrillic
index 84102d56f6719eaffd6cd883fe9b638e7d6de206..ad2f1c851c4843a0583d6576b78d5f64e65aa56c 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class MacDingbat extends ByteCharset
+public final class MacDingbat extends ByteCharset
 {
 
   /**
@@ -81,9 +81,7 @@ public class MacDingbat extends ByteCharset
 
     public MacDingbat()
     {
-       super("MacDingbat", new String[] {
-       });
-       lookupTable = lookup;
+       super("MacDingbat", new String[] {}, lookup);
     }
 
 } // class MacDingbat
index 07624d59eff20e3856f27644822dc1920ee9c479..6d1522874089c81d847ce900a50d6face999df95 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class MacGreek extends ByteCharset
+public final class MacGreek extends ByteCharset
 {
 
   /**
@@ -81,9 +81,7 @@ public class MacGreek extends ByteCharset
 
     public MacGreek()
     {
-       super("MacGreek", new String[] {
-       });
-       lookupTable = lookup;
+       super("MacGreek", new String[] {}, lookup);
     }
 
 } // class MacGreek
index 7918e026622068bca31cc34a171303ab5cd8c406..a8eb7036c176d671e1e19a021aadf6fd6d5f6487 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class MacIceland extends ByteCharset
+public final class MacIceland extends ByteCharset
 {
 
   /**
@@ -81,9 +81,7 @@ public class MacIceland extends ByteCharset
 
     public MacIceland()
     {
-       super("MacIceland", new String[] {
-       });
-       lookupTable = lookup;
+       super("MacIceland", new String[] {}, lookup);
     }
 
 } // class MacIceland
index b413caf2be778128557ea6635595f3101767ed4d..72738a2aa23873958030abf9ab0172a428c216b1 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class MacRoman extends ByteCharset
+public final class MacRoman extends ByteCharset
 {
 
   /**
@@ -81,9 +81,7 @@ public class MacRoman extends ByteCharset
 
     public MacRoman()
     {
-       super("MacRoman", new String[] {
-       });
-       lookupTable = lookup;
+       super("MacRoman", new String[] {}, lookup);
     }
 
 } // class MacRoman
index d1779a40eb869605f5dd0f4ec71d2fde35bc0242..e05e94025e6a5f7447a7073a3b12cbcc9826528a 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class MacRomania extends ByteCharset
+public final class MacRomania extends ByteCharset
 {
 
   /**
@@ -81,9 +81,7 @@ public class MacRomania extends ByteCharset
 
     public MacRomania()
     {
-       super("MacRomania", new String[] {
-       });
-       lookupTable = lookup;
+       super("MacRomania", new String[] {}, lookup);
     }
 
 } // class MacRomania
index 869de194736fe3824db7e35eb9f8df72da170d8b..9878efd89d37e527639ab5af05686c409fe0932d 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class MacSymbol extends ByteCharset
+public final class MacSymbol extends ByteCharset
 {
 
   /**
@@ -81,9 +81,7 @@ public class MacSymbol extends ByteCharset
 
     public MacSymbol()
     {
-       super("MacSymbol", new String[] {
-       });
-       lookupTable = lookup;
+       super("MacSymbol", new String[] {}, lookup);
     }
 
 } // class MacSymbol
index 498b9e6bb4c77de9040b735dd69956b67f2fbb6b..daed7563033acdd26896484d07543e003c5975f4 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class MacThai extends ByteCharset
+public final class MacThai extends ByteCharset
 {
 
   /**
@@ -81,9 +81,7 @@ public class MacThai extends ByteCharset
 
     public MacThai()
     {
-       super("MacThai", new String[] {
-       });
-       lookupTable = lookup;
+       super("MacThai", new String[] {}, lookup);
     }
 
 } // class MacThai
index 68ea27b8ceea6d691ebc8cb86ebe6e03da0d2c4a..b623ee39a826bea4bd07477d48cde4342566c054 100644 (file)
@@ -37,7 +37,7 @@ exception statement from your version. */
 
 package gnu.java.nio.charset;
 
-public class MacTurkish extends ByteCharset
+public final class MacTurkish extends ByteCharset
 {
 
   /**
@@ -81,9 +81,7 @@ public class MacTurkish extends ByteCharset
 
     public MacTurkish()
     {
-       super("MacTurkish", new String[] {
-       });
-       lookupTable = lookup;
+       super("MacTurkish", new String[] {}, lookup);
     }
 
 } // class MacTurkish
index b56e5a90e7209756612c64460dfc32854e345f54..d3b71a612659c120b58eac9dded7b9d9959e9968 100644 (file)
@@ -67,14 +67,14 @@ public final class Provider extends CharsetProvider
    * are all lower-case to allow case-insensitive retrieval of
    * Charset instances. 
    */
-  private final HashMap canonicalNames;
+  private final HashMap<String, String> canonicalNames;
 
   /**
    * Map from lower-case canonical name to Charset.
    * TODO: We may want to use soft references.  We would then need to keep
    * track of the class name to regenerate the object.
    */
-  private final HashMap charsets;
+  private final HashMap<String, Charset> charsets;
 
   /**
    * We don't load all available charsets at the start
@@ -85,8 +85,8 @@ public final class Provider extends CharsetProvider
   Provider ()
   {
     extendedLoaded = false;
-    canonicalNames = new HashMap ();
-    charsets = new HashMap ();
+    canonicalNames = new HashMap<String,String> ();
+    charsets = new HashMap<String,Charset> ();
 
     // US-ASCII aka ISO646-US
     addCharset (new US_ASCII ());
@@ -203,7 +203,7 @@ public final class Provider extends CharsetProvider
     extendedLoaded = true;
   }
 
-  public Iterator charsets ()
+  public Iterator<Charset> charsets ()
   {
     loadExtended();
     return Collections.unmodifiableCollection (charsets.values ())
@@ -250,7 +250,7 @@ public final class Provider extends CharsetProvider
      */  
     canonicalNames.put(canonicalName, canonicalName);
 
-    for (Iterator i = cs.aliases ().iterator (); i.hasNext (); )
+    for (Iterator<String> i = cs.aliases ().iterator (); i.hasNext (); )
       canonicalNames.put (((String) i.next()).toLowerCase(), canonicalName);
   }
 
@@ -258,10 +258,10 @@ public final class Provider extends CharsetProvider
   {
     // The default provider is safe to instantiate.
     if (singleton == null)
-      singleton = (Provider) AccessController.doPrivileged
-       (new PrivilegedAction()
+      singleton = AccessController.doPrivileged
+       (new PrivilegedAction<Provider>()
          {
-           public Object run()
+           public Provider run()
            {
              return new Provider();
            }
index 8888416bebfffbb3439a8743c4c98f9ca37eb5b8..b09c43e61c1460523b9382840582db245ecd426a 100644 (file)
@@ -48,6 +48,7 @@ import java.nio.charset.CoderResult;
  * US-ASCII charset.
  *
  * @author Jesse Rosenstock
+ * @modified Ian Rogers
  */
 final class US_ASCII extends Charset
 {
@@ -95,6 +96,19 @@ final class US_ASCII extends Charset
 
   private static final class Decoder extends CharsetDecoder
   {
+    /** Helper to decode loops */
+    private static final ByteDecodeLoopHelper helper = new ByteDecodeLoopHelper()
+    {
+      protected boolean isMappable(byte b)
+      {
+        return b >= 0;
+      }
+      protected char mapToChar(byte b)
+      {
+        return (char)b;
+      }
+    };
+    
     // Package-private to avoid a trampoline constructor.
     Decoder (Charset cs)
     {
@@ -103,31 +117,24 @@ final class US_ASCII extends Charset
 
     protected CoderResult decodeLoop (ByteBuffer in, CharBuffer out)
     {
-      // TODO: Optimize this in the case in.hasArray() / out.hasArray()
-      while (in.hasRemaining ())
-        {
-          byte b = in.get ();
-
-          if (b < 0)
-            {
-              in.position (in.position () - 1);
-              return CoderResult.malformedForLength (1);
-            }
-          if (!out.hasRemaining ())
-            {
-              in.position (in.position () - 1);
-              return CoderResult.OVERFLOW;
-            }
-
-          out.put ((char) b);
-        }
-
-      return CoderResult.UNDERFLOW;
+      return helper.decodeLoop(in, out);
     }
   }
 
   private static final class Encoder extends CharsetEncoder
   {
+    /** Helper to encode loops */
+    private static final ByteEncodeLoopHelper helper = new ByteEncodeLoopHelper()
+    {
+      protected boolean isMappable(char c)
+      {
+        return c <= 0x7f;
+      }
+      protected byte mapToByte(char c)
+      {
+        return (byte)c;
+      }
+    };
     // Package-private to avoid a trampoline constructor.
     Encoder (Charset cs)
     {
@@ -149,26 +156,7 @@ final class US_ASCII extends Charset
 
     protected CoderResult encodeLoop (CharBuffer in, ByteBuffer out)
     {
-      // TODO: Optimize this in the case in.hasArray() / out.hasArray()
-      while (in.hasRemaining ())
-      {
-        char c = in.get ();
-
-        if (c > 0x7f)
-          {
-            in.position (in.position () - 1);
-            return CoderResult.unmappableForLength (1);
-          }
-        if (!out.hasRemaining ())
-          {
-            in.position (in.position () - 1);
-            return CoderResult.OVERFLOW;
-          }
-
-        out.put ((byte) c);
-      }
-
-      return CoderResult.UNDERFLOW;
+      return helper.encodeLoop(in, out);
     }
   }
 }
index 9d7ab8edd8c7d87bf73229415e84040403f964e4..f8fc90ae28124f4d1888c23a31d024ce35ff4cca 100644 (file)
@@ -42,7 +42,7 @@ package gnu.java.nio.charset;
  * Encoding table for Windows-1250-Latin-1, 
  * aka cp1250 or Windows-1250 or whatever.
  */
-public class Windows1250 extends ByteCharset
+public final class Windows1250 extends ByteCharset
 {
 
   /**
@@ -95,8 +95,7 @@ public class Windows1250 extends ByteCharset
          "cp_1250", 
          "windows1250",
          "windows_1250" 
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class Windows1250
index bf3227e87f21a4000c2d959ec2fae96bec20449a..51f289e2aa937c016846684eac6b09fbca76ded7 100644 (file)
@@ -42,7 +42,7 @@ package gnu.java.nio.charset;
  * Encoding table for Windows-1251 Cyrillic char set.
  * aka cp1251 or Windows-1251 or whatever.
  */
-public class Windows1251 extends ByteCharset
+public final class Windows1251 extends ByteCharset
 {
 
   /**
@@ -93,8 +93,7 @@ public class Windows1251 extends ByteCharset
          "cp_1251", 
          "windows1251",
          "windows_1251" 
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class Windows1251
index 9391c87d48a4b118f730b2c8e6f88d8f7bf3222c..03d15802c8ad85499fe0db3a7ef08db5e0a69864 100644 (file)
@@ -42,7 +42,7 @@ package gnu.java.nio.charset;
  * Encoding table for Windows-1252-Latin-1, 
  * aka cp1252 or Windows-1252 or whatever.
  */
-public class Windows1252 extends ByteCharset
+public final class Windows1252 extends ByteCharset
 {
 
   /**
@@ -92,8 +92,7 @@ public class Windows1252 extends ByteCharset
          "windows-1252",
          "cp1252", 
          "cp-1252"
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class Windows1252
index 02150b4afb90cc8c2725bc759b28f6eaec56c875..9e5b1f769dcb62f587db1a8c15adc35a6bf3df04 100644 (file)
@@ -42,7 +42,7 @@ package gnu.java.nio.charset;
  * Encoding table for Windows-1253 Greek char set.
  * aka cp1253 or Windows-1253 or whatever.
  */
-public class Windows1253 extends ByteCharset
+public final class Windows1253 extends ByteCharset
 {
 
   /**
@@ -93,8 +93,7 @@ public class Windows1253 extends ByteCharset
          "cp_1253", 
          "windows1253",
          "windows_1253" 
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class Windows1253
index 7cdad3c4693fc942bc20485b24696aba6b134ab4..9025421b33e7f85a963c9eb173b8b75a3baf5c2a 100644 (file)
@@ -42,7 +42,7 @@ package gnu.java.nio.charset;
  * Encoding table for Windows-1254 Turkish char set.
  * aka cp1254 or Windows-1254 or whatever.
  */
-public class Windows1254 extends ByteCharset
+public final class Windows1254 extends ByteCharset
 {
 
   /**
@@ -93,8 +93,7 @@ public class Windows1254 extends ByteCharset
          "cp_1254", 
          "windows1254",
          "windows_1254" 
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class Windows1254
index b706d1930060ab167a8a533cb392d89edf33c0c0..61787d184d097992616ab39c42d6ee79ff2c5fc0 100644 (file)
@@ -42,7 +42,7 @@ package gnu.java.nio.charset;
  * Encoding table for Windows-1255 Hebrew char set.
  * aka cp1255 or Windows-1255 or whatever.
  */
-public class Windows1255 extends ByteCharset
+public final class Windows1255 extends ByteCharset
 {
 
   /**
@@ -93,8 +93,7 @@ public class Windows1255 extends ByteCharset
          "cp_1255", 
          "windows1255",
          "windows_1255" 
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class Windows1255
index 6924420e1bcec826bf3db19162b45c7ccee6f99c..cf88c21b47d2ab5951e9462586cfd7af81aae125 100644 (file)
@@ -42,7 +42,7 @@ package gnu.java.nio.charset;
  * Encoding table for Windows-1256 Arabic char set.
  * aka cp1256 or Windows-1256 or whatever.
  */
-public class Windows1256 extends ByteCharset
+public final class Windows1256 extends ByteCharset
 {
 
   /**
@@ -93,8 +93,7 @@ public class Windows1256 extends ByteCharset
          "cp_1256", 
          "windows1256",
          "windows_1256" 
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class Windows1256
index 2f95d64ac74f180649237949adab8e6779bf1325..2d281d9cd26b360dd6bbcaa3dc93ecdfb9ada782 100644 (file)
@@ -42,7 +42,7 @@ package gnu.java.nio.charset;
  * Encoding table for Windows-1257 Baltic char set.
  * aka cp1257 or Windows-1257 or whatever.
  */
-public class Windows1257 extends ByteCharset
+public final class Windows1257 extends ByteCharset
 {
 
   /**
@@ -93,8 +93,7 @@ public class Windows1257 extends ByteCharset
          "cp_1257", 
          "windows1257",
          "windows_1257" 
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class Windows1257
index 7d653b49780d4d292ae1eb2cecf783e642bade19..63ef37f1a3140a55e0e02933824dcf467db1dd1b 100644 (file)
@@ -42,7 +42,7 @@ package gnu.java.nio.charset;
  * Encoding table for Windows-1258 Arabic char set.
  * aka cp1258 or Windows-1258 or whatever.
  */
-public class Windows1258 extends ByteCharset
+public final class Windows1258 extends ByteCharset
 {
 
   /**
@@ -93,8 +93,7 @@ public class Windows1258 extends ByteCharset
          "cp_1258", 
          "windows1258",
          "windows_1258" 
-      });
-      lookupTable = lookup;
+      }, lookup);
  }
   
 } // class Windows1258
index 9cc57b2289fb0a595a2cf4080ab664770c51a53a..9f2b3706e86710fe1d0dd2d00e968d4fc6393d13 100644 (file)
@@ -103,7 +103,7 @@ class ConnectionRunnerPool
   static {
     ConnectionRunner[] pools = new ConnectionRunner[size];
     for(int i = 0; i < pools.length; i++){
-      pools[i] = new ConnectionRunner(group, new Integer(i).toString());
+      pools[i] = new ConnectionRunner(group, Integer.toString(i));
       pools[i].setContextClassLoader(Thread.currentThread().getContextClassLoader());
       pools[i].start();
     }
@@ -123,7 +123,7 @@ class ConnectionRunnerPool
     if(freelist.size() == 0){
       if(size < max_size){
        ++size;
-       ConnectionRunner a = new ConnectionRunner(group, new Integer(size).toString());
+       ConnectionRunner a = new ConnectionRunner(group, Integer.toString(size));
        a.start();
        freelist.add(a);
       }else
index 82f0ff69e4eabcf8f07f6a881a2dadb8122da110..4d5e1b0269ed25a54e0578af9e9a5f328ba1d409 100644 (file)
@@ -64,12 +64,6 @@ public class RMIClassLoaderImpl extends RMIClassLoaderSpi
       this.annotation = annotation;
     }
 
-    private MyClassLoader (URL[] urls, ClassLoader parent)
-    {
-      super (urls, parent);
-      this.annotation = urlToAnnotation (urls);
-    }
-
     public static String urlToAnnotation (URL[] urls)
     {
       if (urls.length == 0)
index 75f4f1202367cb2bfe38d54c96b0d87c6a442974..65a13f991b386a58939708a9e306b0d082a534a9 100644 (file)
@@ -46,7 +46,6 @@ import java.io.ObjectInputStream;
 import java.io.ObjectStreamClass;
 import java.net.MalformedURLException;
 import java.rmi.server.RMIClassLoader;
-import java.util.ArrayList;
 
 public class RMIObjectInputStream
        extends ObjectInputStream {
index 85491922f306d8cc0e54bb9623bde79ff6a09279..2cb218321525e915a9398461886b610285e82837 100644 (file)
@@ -163,7 +163,7 @@ public final class Engine
           }
         else if (key.equalsIgnoreCase(ALG_ALIAS + service + "." + algorithm))
           {
-            alias = (String) provider.getProperty(key);
+            alias = provider.getProperty(key);
             if (! algorithm.equalsIgnoreCase(alias)) // does not refer to itself
               {
                 algorithm = alias;
index 7277599bd540c0443cb2953ec649c944ec27cc24..65dc5800c77b936b332267474c8e162815d7acf6 100644 (file)
@@ -173,7 +173,7 @@ public class FIPS186
         // 6. Let counter = 0 and offset = 2.
         counter = 0;
         offset = 2;
-        step7: while (true)
+        while (true)
           {
             OFFSET = BigInteger.valueOf(offset & 0xFFFFFFFFL);
             SEED_PLUS_OFFSET = SEED.add(OFFSET);
index 8cfc8f56ddbbf5639b8f0a80e325d15cf4a14398..ae3e6ef706c552b92b9b7a8682c56fff247d600c 100644 (file)
@@ -91,7 +91,7 @@ public class AttributedFormatBuffer implements FormatBuffer
    * comprised between the last entry in 'ranges' and the specified new range.
    *
    * @param new_range A new range to insert in the list.
-   * @param new_attribute A new attribute to insert in the list.
+   * @param attr A new attribute to insert in the list.
    */  
   private final void addAttribute(int new_range, AttributedCharacterIterator.Attribute attr)
   {
diff --git a/libjava/classpath/gnu/java/util/LRUCache.java b/libjava/classpath/gnu/java/util/LRUCache.java
new file mode 100644 (file)
index 0000000..784a442
--- /dev/null
@@ -0,0 +1,77 @@
+/* LRUCache.java -- A LRU Cache implementation
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.util;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * A least recently used cache, based on LinkedHashMap.
+ */
+public class LRUCache<K,V>
+  extends LinkedHashMap<K,V>
+{
+
+  /**
+   * The capacity of the cache.
+   */
+  private int capacity;
+
+  /**
+   * Creates a new LRUCache instance with the specified capacity.
+   *
+   * @param cap the capacity of the new cache
+   */
+  public LRUCache(int cap)
+  {
+    super();
+    capacity = cap;
+  }
+
+  /**
+   * Returns <code>true</code> when the oldest entry should be removed.
+   *
+   * @param eldest the entry about to be removed
+   *
+   * @return <code>true</code> when the oldest entry should be removed
+   */
+  protected boolean removeEldestEntry(Map.Entry<K, V> eldest)
+  {
+    return size() > capacity;
+  }
+}
index 09ff74b908f792de5b0bf93c600ae67799254d72..421640ff293ac4a60947f498236a689715525252 100644 (file)
@@ -41,7 +41,6 @@ import java.io.Serializable;
 import java.util.Locale;
 import java.util.PropertyResourceBundle;
 import java.util.ResourceBundle;
-import java.util.Stack;
 import java.util.Vector;
 
 /**
index 4104fbcd8a709db77a8898d701ffc732a0f4c3ad..7a277ca3ae3d6631003fa40965a590c6f51cbbf5 100644 (file)
@@ -147,6 +147,12 @@ public class REException extends Exception {
     this.pos = position;
   }
 
+  REException(String msg, Throwable cause, int type, int position) { 
+    super(msg, cause); 
+    this.type = type;
+    this.pos = position;
+  }
+
   /**
    * Returns the type of the exception, one of the constants listed above.
    */
index 9affd4ee3c98ec0111998ddf3ce00c1921b89a4e..addc62225ebdb5aaf205bc9e59fc4e435005f604 100644 (file)
@@ -128,7 +128,7 @@ abstract class REToken implements Serializable, Cloneable {
       * of the REmatch found this time so that another possible match
       * may be found when backtrack is called.
       * By default, nothing is added to the backtrackStack.
-      * @param CharIndexed input Input character sequence.
+      * @param input Input character sequence.
       * @param mymatch Position at which a match should be found
       * @return REMatch object if a match was found, null otherwise.
       */
index aec27583a5826f3f888cb0b1b4a353022f2e9f8a..0051f164364c00942139495a75c4fc3a0c6a9380 100644 (file)
@@ -38,6 +38,9 @@ exception statement from your version. */
 
 package gnu.java.util.regex;
 
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
 final class RETokenNamedProperty extends REToken {
   String name;
   boolean insens;
@@ -268,6 +271,20 @@ final class RETokenNamedProperty extends REToken {
              return true;
            }
          };
+      if (name.startsWith("java"))
+       {
+         try
+           {
+             Method m = Character.class.getMethod("is" + name.substring(4),
+                                                  Character.TYPE);
+             return new JavaCategoryHandler(m);
+           }
+         catch (NoSuchMethodException e)
+           {
+             throw new REException("Unsupported Java handler: " + name, e,
+                                   REException.REG_ESCAPE, 0);
+           }
+       }
       throw new REException("unsupported name " + name, REException.REG_ESCAPE, 0);
   }
 
@@ -320,4 +337,37 @@ final class RETokenNamedProperty extends REToken {
       }
   }
 
+  /**
+   * Handle the Java-specific extensions \p{javaX} where X
+   * is a method from Character of the form isX
+   *
+   * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+   */
+  private static class JavaCategoryHandler 
+    extends Handler 
+  {
+    private Method method;
+
+    public JavaCategoryHandler(Method m) 
+    {
+      this.method = m;
+    }
+
+    public boolean includes(char c) 
+    {
+      try
+       {
+         return (Boolean) method.invoke(null, c);
+       }
+      catch (IllegalAccessException e)
+       {
+         throw new InternalError("Unable to access method " + method);
+       }
+      catch (InvocationTargetException e)
+       {
+         throw new InternalError("Error invoking " + method);
+       }
+    }
+  }
+
 }
index 4f4d5e47908bfe7d2a4b81d28f6fd59860a7822a..6a65437d644b140a3aac651beab77adb08dc278f 100644 (file)
@@ -94,8 +94,7 @@ public final class DiffieHellmanImpl
     DHPublicKey pub = (DHPublicKey) incoming;
     DHParameterSpec s1 = key.getParams();
     DHParameterSpec s2 = pub.getParams();
-    if (! s1.getG().equals(s2.getG()) || ! s1.getP().equals(s2.getP())
-        || s1.getL() != s2.getL())
+    if (! s1.getG().equals(s2.getG()) || ! s1.getP().equals(s2.getP()))
       throw new InvalidKeyException("Incompatible key");
     if (! lastPhase)
       throw new IllegalArgumentException(
index 673e44864b5366e502ab457bfc80d3d2f8440e5c..a814d2c0bbf3071f229800375e5e3f15602346d8 100644 (file)
@@ -136,7 +136,7 @@ public class RFC2631
           }
         // 8. Let counter = 0
         counter = 0;
-        step9: while (true)
+        while (true)
           {
             // 9. Set R = seed + 2*m' + (L' * counter)
             R = SEED
index 702c93ab3cae77b004e801fa49ddc7de9706639a..397b857aa37200be834e563f714b7d08671690ab 100644 (file)
@@ -39,8 +39,6 @@ package gnu.javax.imageio.bmp;
 
 import java.io.IOException;
 import javax.imageio.stream.ImageInputStream;
-import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
 import java.awt.image.BufferedImage;
 import java.awt.image.ColorModel;
 import java.awt.image.DirectColorModel;
index d653bbf9ffd50863e3c9778fc6d0f4eb61de3583..4aa1cd5d2fb88043d244a7f42f91ae09f24f8cb1 100644 (file)
@@ -38,7 +38,6 @@ exception statement from your version. */
 
 package gnu.javax.imageio.bmp;
 
-import java.awt.Dimension;
 import java.awt.image.BufferedImage;
 import java.awt.image.PixelGrabber;
 import java.io.IOException;
index a11a8c0c6f5359d542d4c9169b462330ba9d7262..ec0a3103d3078052d7bbb40afbba386d407c8af4 100644 (file)
@@ -276,7 +276,7 @@ public class GIFFile
    *
    * @param in - the stream (reads 6 bytes, does not close or reset).
    * @return true if the signature is a valid GIF signature.
-   * @throws an IOException if the signature could not be read.
+   * @throws IOException if the signature could not be read.
    */
   public static boolean readSignature( InputStream in ) throws IOException
   { 
index d5799fd412ba71fa95d34b98dbec25e47c8ae49f..d07bb34e93920febda8e40c51036109fb997009d 100644 (file)
@@ -336,7 +336,7 @@ public class JPEGComponent
           {
             k += r;
             r = (int) JPEGStream.readBits(s);
-            s = (int) HuffmanTable.extend(r, s);
+            s = HuffmanTable.extend(r, s);
             zz[k] = s;
           }
         else
index 3610ebe874f8ba7c91c956f988635b7b6a0cf9a0..0f2a3f2b9495062ff0932eaa0a701871883403f6 100644 (file)
@@ -40,16 +40,12 @@ package gnu.javax.imageio.jpeg;
 import java.io.IOException;
 import java.nio.ByteOrder;
 
-import javax.imageio.*;
 import javax.imageio.plugins.jpeg.JPEGHuffmanTable;
 import javax.imageio.plugins.jpeg.JPEGQTable;
-import javax.imageio.spi.*;
-import javax.imageio.metadata.*;
 import javax.imageio.stream.ImageInputStream;
 
 import java.util.ArrayList;
 import java.util.Hashtable;
-import java.util.Iterator;
 import java.awt.Point;
 import java.awt.Transparency;
 import java.awt.color.ColorSpace;
@@ -391,7 +387,7 @@ public class JPEGDecoder
                     // read in how much they need
                     for (int compIndex = 0; compIndex < numberOfComponents; compIndex++)
                       {
-                        JPEGComponent comp = (JPEGComponent) frame.components.getComponentByID(componentSelector[compIndex]);
+                        JPEGComponent comp = frame.components.getComponentByID(componentSelector[compIndex]);
                         comp.readComponentMCU(jpegStream);
                       }
                     mcuIndex++;
@@ -420,7 +416,7 @@ public class JPEGDecoder
                       {
                         for (int compIndex = 0; compIndex < numberOfComponents; compIndex++)
                           {
-                            JPEGComponent comp = (JPEGComponent) frame.components.getComponentByID(componentSelector[compIndex]);
+                            JPEGComponent comp = frame.components.getComponentByID(componentSelector[compIndex]);
                             if (compIndex > 1)
                               comp.padMCU(mcuTotalIndex, resetInterval - mcuIndex);
                             comp.resetInterval();
@@ -485,8 +481,7 @@ public class JPEGDecoder
                 // Unencode the data.
                 for (int i = 0; i < frame.getComponentCount(); i++)
                   {
-                    JPEGComponent comp =
-                      (JPEGComponent) frame.components.get(i);
+                    JPEGComponent comp = frame.components.get(i);
                     comp.setQuantizationTable(qTables[comp.quant_id].getTable());
                     comp.quantitizeData();
                     comp.idctData(myDCT);
@@ -494,7 +489,7 @@ public class JPEGDecoder
                 // Scale the image and write the data to the raster.
                 for (int i = 0; i < frame.getComponentCount(); i++)
                   {
-                    JPEGComponent comp = (JPEGComponent) frame.components.get(i);
+                    JPEGComponent comp = frame.components.get(i);
                     comp.scaleByFactors();
                     comp.writeData(raster, i);
                     // Ensure garbage collection.
index b684069ccb676949f28f5f1a43201a22203d0a28..a2c06e27e04ef9617a8a1ab4e4115a689a70f07b 100644 (file)
@@ -37,14 +37,7 @@ exception statement from your version. */
 
 package gnu.javax.imageio.jpeg;
 
-// FIXME: change to IIOException
-import java.io.IOException;
 import javax.imageio.*;
-import javax.imageio.spi.*;
-import javax.imageio.metadata.*;
-import javax.imageio.stream.ImageInputStream;
-import java.util.Iterator;
-import java.awt.image.BufferedImage;
 
 public class JPEGException extends IIOException
 {
index 9b958f98f2c2b46ce0fde5526daf03d1a159402c..35aed728a4d482a9a5aa436950b4974b1341c994 100644 (file)
@@ -101,7 +101,7 @@ public class JPEGFrame
   public void setHuffmanTables(byte componentID, JPEGHuffmanTable ACTable,
                                JPEGHuffmanTable DCTable)
   {
-    JPEGComponent comp = (JPEGComponent)components.getComponentByID(componentID);
+    JPEGComponent comp = components.getComponentByID(componentID);
     comp.setACTable(ACTable);
     comp.setDCTable(DCTable);
   }
index 4ae909baf15739b04d78e3fac4b0fc5a230e8ba6..29a12f346cfe843072b282ca29c81b8bd3f7bd35 100644 (file)
@@ -37,17 +37,10 @@ exception statement from your version. */
 
 package gnu.javax.imageio.jpeg;
 
-import java.io.EOFException;
 import java.io.IOException;
-import javax.imageio.*;
-import javax.imageio.spi.*;
-import javax.imageio.metadata.*;
 import javax.imageio.stream.ImageInputStream;
 import javax.imageio.stream.ImageInputStreamImpl;
 
-import java.util.Iterator;
-import java.awt.image.BufferedImage;
-
 public class JPEGImageInputStream
   extends ImageInputStreamImpl
 {
index 6b53810c89d3704aa0894f663146025aea34c9bb..8efbeea7259d78d3617c56d3b506939593ba5320 100644 (file)
@@ -40,7 +40,6 @@ package gnu.javax.imageio.png;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.IOException;
-import java.io.UnsupportedEncodingException;
 
 /**
  * Class to load and validate a generic PNG chunk.
index 20fc32ce37121f753e230e319a005eab42d884e2..652f59d35b54897636e37636fc2607a3997e7011 100644 (file)
@@ -140,7 +140,7 @@ public class PNGDecoder
 
   /**
    * Parse the appropriate color type and create an AWT raster for it.
-   * @param raster - the file header.
+   * @param header - the file header.
    */
   public WritableRaster getRaster( PNGHeader header )
   {
index c0a30a7baefff492f418b1fa428191573b8073ec..b8441c4e3f0ddf421df1e0552bb3f0b88b5beec2 100644 (file)
@@ -40,7 +40,6 @@ package gnu.javax.imageio.png;
 import java.util.Vector;
 import java.util.zip.Deflater;
 import java.awt.color.ColorSpace;
-import java.awt.color.ICC_Profile;
 import java.awt.color.ICC_ColorSpace;
 import java.awt.image.BufferedImage;
 import java.awt.image.ColorModel;
@@ -48,7 +47,6 @@ import java.awt.image.DataBuffer;
 import java.awt.image.DataBufferByte;
 import java.awt.image.DataBufferUShort;
 import java.awt.image.IndexColorModel;
-import java.awt.image.Raster;
 import java.awt.image.WritableRaster;
 
 public class PNGEncoder 
index cc0ca297fcbea69db0ae40444f8048d1ef9e442e..96e8f9ce78fb91eae2c3acb55bb1dcdde2a5590e 100644 (file)
@@ -44,7 +44,6 @@ import java.util.Vector;
 import java.awt.image.BufferedImage;
 import java.awt.image.WritableRaster;
 import java.awt.image.ColorModel;
-import java.awt.image.IndexColorModel;
 import java.awt.color.ColorSpace;
 
 public class PNGFile 
index af777d9b4f60d478b0ea772d11d4a8f1ad59513a..d9cacea46090812658955e9250b9d59d3f892562 100644 (file)
@@ -37,10 +37,6 @@ exception statement from your version. */
 
 package gnu.javax.imageio.png;
 
-import java.awt.color.ICC_ProfileGray;
-import java.awt.color.ICC_ProfileRGB;
-import java.awt.color.ICC_Profile;
-import java.awt.color.ICC_ColorSpace;
 import java.awt.color.ColorSpace;
 
 /**
index 616854e95bdf3b69bc2b0ab6733243abc56c3bb5..8e8d826c00f73f1fb140f7870f96f9dd500ff88d 100644 (file)
@@ -169,7 +169,7 @@ public class Server
    * Constructs a new management server using the specified
    * default domain, delegate bean and outer server.
    *
-   * @param domain the default domain to use for beans constructed
+   * @param defaultDomain the default domain to use for beans constructed
    *               with no specified domain.
    * @param outer an {@link javax.management.MBeanServer} to pass
    *              to beans implementing the {@link MBeanRegistration}
@@ -229,8 +229,8 @@ public class Server
          if (name != null)
            {
              Object bean = getBean(name);
-             Method method = bean.getClass().getMethod("getMBeanInfo", null);
-             info = (MBeanInfo) method.invoke(bean, null);
+             Method method = bean.getClass().getMethod("getMBeanInfo");
+             info = (MBeanInfo) method.invoke(bean);
            }
          sm.checkPermission(new MBeanPermission((info == null) ? 
                                                 null : info.getClassName(),
@@ -1031,13 +1031,20 @@ public class Server
     checkSecurity(name, null, "getMBeanInfo");
     try
       {
-       Method method = bean.getClass().getMethod("getMBeanInfo", null);
-       return (MBeanInfo) method.invoke(bean, null);
+       Method method = bean.getClass().getMethod("getMBeanInfo");
+       return (MBeanInfo) method.invoke(bean);
       }
     catch (NoSuchMethodException e)
       {
-       throw new IntrospectionException("The getMBeanInfo method " + 
-                                        "could not be found.");
+       try
+         {
+           return new StandardMBean(bean, null).getMBeanInfo();
+         }
+       catch (NotCompliantMBeanException ex)
+         {
+           throw new IntrospectionException("An error occurred in executing " +
+                                            "getMBeanInfo on the bean: " + ex + ".");
+         }
       }
     catch (IllegalAccessException e)
       {
index 69191d43f8606cdaddc7db30e6f5c718a328a304..4ede37430887119a6619c79fff745fb8f998bc46 100644 (file)
@@ -39,11 +39,15 @@ package gnu.javax.management;
 
 import java.lang.reflect.Array;
 import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Proxy;
 import java.lang.reflect.Type;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -92,7 +96,7 @@ public final class Translator
     Type[] gtypes = method.getGenericParameterTypes();
     Object[] otypes = new Object[jtypes.length];
     for (int a = 0; a < jtypes.length; ++a)
-      otypes[a] = fromJava(jtypes[a], (Class<?>) gtypes[a]);
+      otypes[a] = fromJava(jtypes[a], gtypes[a]);
     return otypes;
   }
 
@@ -131,11 +135,10 @@ public final class Translator
     if (jtype instanceof List || jtype instanceof Set ||
        jtype instanceof SortedSet)
       {
-       String elemType = tName.substring(tName.indexOf("<") + 1,
-                                         tName.indexOf(">")).trim();
        if (jtype instanceof SortedSet)
          {
-           Class<?> elemClass = Class.forName(elemType);
+           ParameterizedType ptype = (ParameterizedType) type;
+           Class<?> elemClass = (Class<?>) ptype.getActualTypeArguments()[0];
            if (!Comparable.class.isAssignableFrom(elemClass))
              throw new IllegalArgumentException(jtype + " has a " +
                                                 "non-comparable element " +
@@ -144,11 +147,13 @@ public final class Translator
              throw new IllegalArgumentException(jtype + " does not " +
                                                 "use natural ordering.");
          }
-       List elems = (List) jtype;
-       Object[] celems = new Object[elems.size()];
-       for (int a = 0; a < elems.size(); ++a)
+       Collection<Object> elems = (Collection<Object>) jtype;
+       int numElems = elems.size();
+       Object[] celems = new Object[numElems];
+       Iterator<Object> i = elems.iterator();
+       for (int a = 0; a < numElems; ++a)
          {
-           Object elem = elems.get(a);
+           Object elem = i.next();
            celems[a] = fromJava(elem, elem.getClass());
          }
        return makeArraySpecific(celems);
@@ -440,33 +445,6 @@ public final class Translator
                                                 SimpleType.STRING,
                                                 null, names);
       }
-    try
-      {
-       c.getMethod("from", new Class[] { CompositeData.class });
-       Method[] methods = c.getDeclaredMethods();
-       List<String> names = new ArrayList<String>();
-       List<OpenType> types = new ArrayList<OpenType>();
-       for (int a = 0; a < methods.length; ++a)
-         {
-           String name = methods[a].getName();
-           if (name.startsWith("get"))
-             {
-               names.add(name.substring(3));
-               types.add(getTypeFromClass(methods[a].getReturnType()));
-             }
-         }
-       String[] fields = names.toArray(new String[names.size()]);
-       CompositeType ctype = new CompositeType(c.getName(), c.getName(),
-                                               fields, fields,
-                                               types.toArray(new OpenType[types.size()]));
-       return new OpenMBeanParameterInfoSupport("TransParam",
-                                                "Translated parameter",
-                                                ctype);
-      }
-    catch (NoSuchMethodException e)
-      {
-       /* Ignored; we expect this if this isn't a from(CompositeData) class */
-      }
     if (c.isArray())
       {
        int depth;
@@ -478,7 +456,35 @@ public final class Translator
                                                 new ArrayType(depth, ot)
                                                 );
       }
-    throw new InternalError("The type used does not have an open type translation.");
+    Method[] methods = c.getDeclaredMethods();
+    List<String> names = new ArrayList<String>();
+    List<OpenType> types = new ArrayList<OpenType>();
+    for (int a = 0; a < methods.length; ++a)
+      {
+       String name = methods[a].getName();
+       if (Modifier.isPublic(methods[a].getModifiers()))
+         {
+           if (name.startsWith("get"))
+             {
+               names.add(name.substring(3));
+               types.add(getTypeFromClass(methods[a].getReturnType()));
+             }
+           else if (name.startsWith("is"))
+             {
+               names.add(name.substring(2));
+               types.add(getTypeFromClass(methods[a].getReturnType()));
+             }
+         }
+      }
+    if (names.isEmpty())
+      throw new OpenDataException("The type used does not have an open type translation.");
+    String[] fields = names.toArray(new String[names.size()]);
+    CompositeType ctype = new CompositeType(c.getName(), c.getName(),
+                                           fields, fields,
+                                           types.toArray(new OpenType[types.size()]));
+    return new OpenMBeanParameterInfoSupport("TransParam",
+                                            "Translated parameter",
+                                            ctype);
   }
 
   /**
index 7d7a785fd2f0d77d298d537b5dbec45bca712973..05023840ba395c58d62b82072232f427d37d2933 100644 (file)
@@ -129,14 +129,14 @@ public class ContextContinuation implements Context
    * Creates a new naming context that uses naming service, represented by the
    * given CORBA object.
    * 
-   * @param namingService
+   * @param nsObject
    *          the naming service object. It must be possible to narrow it into
    *          the NamingContextExt.
    * @param props
    *          the environment table.
-   * @param orb
+   * @param anOrb
    *          the associated ORB. This reference is used during cleanup.
-   * @param the
+   * @param aFactory
    *          parent factory. This reference is used during cleanup.
    */
   public ContextContinuation(org.omg.CORBA.Object nsObject,
@@ -293,7 +293,7 @@ public class ContextContinuation implements Context
    * context. The returned object will wrap around the newly created CORBA
    * subcontext
    * 
-   * @param name
+   * @param subContext
    *          the name of the new context being created
    * @return the newly created context, bound to the instance of the context on
    *         that the method has been called
@@ -336,7 +336,7 @@ public class ContextContinuation implements Context
    * context. The returned object will wrap around the newly created CORBA
    * subcontext
    * 
-   * @param name
+   * @param subContext
    *          the name of the new context being created
    * @return the newly created context, bound to the instance of the context on
    *         that the method has been called
@@ -380,7 +380,7 @@ public class ContextContinuation implements Context
    * action if such subcontext does not exist. The context being destroyed must
    * be empty.
    * 
-   * @param name
+   * @param subContext
    *          the name of the subcontext beig removed.
    * @throws ContextNotEmptyException
    *           if the named context is not empty.
@@ -396,7 +396,7 @@ public class ContextContinuation implements Context
    * action if such subcontext does not exist. The context being destroyed must
    * be empty.
    * 
-   * @param name
+   * @param subContext
    *          the name of the subcontext beig removed.
    * @throws ContextNotEmptyException
    *           if the named context is not empty.
@@ -868,9 +868,9 @@ public class ContextContinuation implements Context
    * and value of the new property must not be null. If the property is already
    * defined, is current value is replaced by the propVal.
    * 
-   * @param propName
+   * @param key
    *          the name of the new property
-   * @param propVal
+   * @param value
    *          the value of the new property
    * @return the previous value of this property or null if the property has not
    *         been previously defined
index de79b93c3dc589ce01666101d699872ed3d9b345..ee8c7791419f285ecfea9e4201f63de041c3f042 100644 (file)
@@ -97,9 +97,9 @@ public class ContextContinuation implements Context
    * the registry. The new registry will be lazily instantiated on the first
    * call.
    * 
-   * @param propName
+   * @param key
    *          the name of the new property
-   * @param propVal
+   * @param value
    *          the value of the new property
    * @return the previous value of this property or null if the property has not
    *         been previously defined
@@ -426,7 +426,7 @@ public class ContextContinuation implements Context
    * @param name
    *          the object name (.toString()) is used to convert into string
    *          representation.
-   * @param the
+   * @param obj
    *          object (must be an instance of Remote).
    */
   public void rebind(Name name, Object obj) throws NamingException
@@ -439,7 +439,7 @@ public class ContextContinuation implements Context
    * 
    * @param name
    *          the object name.
-   * @param the
+   * @param obj
    *          object (must be an instance of Remote).
    */
   public void rebind(String name, Object obj) throws NamingException
index 3147415fe36ae38e8ac6f0409351965193561416..3ce56eab5fe193e3a3a7e9827d0475cb0c7b1b1f 100644 (file)
@@ -39,7 +39,6 @@ exception statement from your version.  */
 package gnu.javax.net.ssl;
 
 import java.nio.ByteBuffer;
-import javax.net.ssl.SSLEngineResult;
 import javax.net.ssl.SSLException;
 
 public abstract class SSLRecordHandler
index 0c2c3cca8a8b926ce9ebedc02c26a5279154399c..480f1c754b1670088b85ed3f40752653a83a9174 100644 (file)
@@ -39,8 +39,6 @@ exception statement from your version.  */
 package gnu.javax.net.ssl;
 
 import java.io.ByteArrayInputStream;
-import java.io.InputStream;
-
 import java.security.cert.CertificateException;
 import java.security.cert.CertificateFactory;
 import java.security.cert.X509Certificate;
index 9beab473ca6b70f4588cda9369b4078a5d3aa0f4..8c059854e4ac8264b7e4c75979d87d60cf438e9d 100644 (file)
@@ -38,8 +38,6 @@ exception statement from your version. */
 
 package gnu.javax.net.ssl.provider;
 
-import static gnu.javax.net.ssl.provider.CertificateRequest.ClientCertificateType;
-
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.nio.ByteBuffer;
index a8780084508c1c5b88e0225ecf26a6e6923cc19e..fdbf262122b8b703cbd24236dd88504af1d8b1bb 100644 (file)
@@ -56,7 +56,6 @@ import java.nio.ByteBuffer;
 import java.security.AccessController;
 import java.security.InvalidAlgorithmParameterException;
 import java.security.InvalidKeyException;
-import java.security.KeyManagementException;
 import java.security.KeyPair;
 import java.security.KeyPairGenerator;
 import java.security.MessageDigest;
@@ -65,7 +64,6 @@ import java.security.PrivateKey;
 import java.security.SignatureException;
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;
-import java.security.interfaces.RSAPublicKey;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.LinkedList;
@@ -77,7 +75,6 @@ import javax.crypto.BadPaddingException;
 import javax.crypto.Cipher;
 import javax.crypto.IllegalBlockSizeException;
 import javax.crypto.NoSuchPaddingException;
-import javax.crypto.SecretKey;
 import javax.crypto.interfaces.DHPrivateKey;
 import javax.crypto.interfaces.DHPublicKey;
 import javax.crypto.spec.DHParameterSpec;
index 676a872f92570dddc3647003edf0bed57d7424d2..f08ec7f9062ba8b1496d9dcf29c3ba971d3b1eb7 100644 (file)
@@ -38,13 +38,9 @@ exception statement from your version. */
 
 package gnu.javax.net.ssl.provider;
 
-import gnu.classpath.debug.Component;
-import gnu.classpath.debug.SystemLogger;
-
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
 import java.nio.CharBuffer;
 import java.nio.charset.Charset;
 
index f7483a94c30d9474ce10be0756f83d0dabe55634..860cc731f7a0cccec9bd1c96068009eccca6636a 100644 (file)
@@ -38,13 +38,9 @@ exception statement from your version. */
 
 package gnu.javax.net.ssl.provider;
 
-import gnu.classpath.debug.Component;
-import gnu.classpath.debug.SystemLogger;
-
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.nio.ByteBuffer;
-import java.nio.ByteOrder;
 import java.nio.charset.Charset;
 
 /**
index f7165a2d769cbbc6c5b1870f1535aeca6d01e0d6..eaebebf4b6715a3756dd513e0d533212ee1abad7 100644 (file)
@@ -38,10 +38,6 @@ exception statement from your version.  */
 
 package gnu.javax.net.ssl.provider;
 
-import java.io.EOFException;
-import java.io.InputStream;
-import java.io.IOException;
-
 /**
  * The content type enumeration, which marks packets in the record layer.
  *
index ea7439bd2c6b2a1d574c8c18d7e2fe498e11bd0c..85769cffcf29e88064c1aec9cc612f6d54c6fd09 100644 (file)
@@ -38,9 +38,6 @@ exception statement from your version.  */
 
 package gnu.javax.net.ssl.provider;
 
-import gnu.classpath.debug.Component;
-import gnu.classpath.debug.SystemLogger;
-
 import java.io.PrintWriter;
 import java.io.StringWriter;
 
index 52f61424e4ce0ca6dcc7d481b162a3e933db317d..dd36f2b3fc5e85b8618e41d7e130e3cdc0d90150 100644 (file)
@@ -38,26 +38,11 @@ exception statement from your version.  */
 
 package gnu.javax.net.ssl.provider;
 
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.EOFException;
-import java.io.InputStream;
-import java.io.IOException;
-import java.io.OutputStream;
 import java.io.PrintWriter;
-import java.io.StringReader;
 import java.io.StringWriter;
 
 import java.nio.ByteBuffer;
 
-import java.security.PublicKey;
-
-import java.util.ArrayList;
-import java.util.Collections;
-
-import javax.net.ssl.SSLProtocolException;
-
 /**
  * An SSL handshake message. SSL handshake messages have the following
  * form:
index 13a3ef814de2bf6ae9da728a01ba6f6a63be8c6c..cf5ca6099ffbc140a3f69b7b68a9dc7e7f9c86c0 100644 (file)
@@ -47,11 +47,9 @@ import java.nio.BufferOverflowException;
 import java.nio.ByteBuffer;
 
 import java.util.Arrays;
-import java.util.logging.Level;
 import java.util.zip.DataFormatException;
 import java.util.zip.Inflater;
 
-import javax.crypto.BadPaddingException;
 import javax.crypto.Cipher;
 import javax.crypto.IllegalBlockSizeException;
 import javax.crypto.Mac;
index 6da0d06674198a106bc0a219ebdb77af90e9f332..228071a393d6759f3d68511c73f085fbeabf006e 100644 (file)
@@ -40,16 +40,13 @@ package gnu.javax.net.ssl.provider;
 
 import gnu.classpath.debug.Component;
 import gnu.classpath.debug.SystemLogger;
-import gnu.java.security.util.ByteArray;
 import gnu.java.security.util.ByteBufferOutputStream;
 
 import java.nio.ByteBuffer;
 
-import java.util.logging.Level;
 import java.util.zip.DataFormatException;
 import java.util.zip.Deflater;
 
-import javax.crypto.BadPaddingException;
 import javax.crypto.Cipher;
 import javax.crypto.IllegalBlockSizeException;
 import javax.crypto.Mac;
index ca62054a89c11040006a7acf74215d6f6c733900..3c3f29a21e6cf00343bed11d0077bc2bcc41ce93 100644 (file)
@@ -40,7 +40,6 @@ package gnu.javax.net.ssl.provider;
 
 import java.io.InputStream;
 import java.io.IOException;
-import java.io.OutputStream;
 
 public final class ProtocolVersion
   implements Comparable<ProtocolVersion>, Constructed
index e6815930934cec4ba6f0210e66d3ca3a553d5c23..f89acc1f8f5880ad30d1bfce5077241cf179c271 100644 (file)
@@ -38,10 +38,6 @@ exception statement from your version.  */
 
 package gnu.javax.net.ssl.provider;
 
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.io.IOException;
-import java.io.OutputStream;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 
index 5822afe0596c9df2c54af39a004e04c873519b40..c5422871df5a74b3a837ab89efe7eb774e721f12 100644 (file)
@@ -44,8 +44,6 @@ import java.math.BigInteger;
 import java.security.InvalidAlgorithmParameterException;
 import java.security.KeyPair;
 import java.security.KeyStore;
-import java.security.Security;
-
 import java.util.HashMap;
 
 import javax.net.ssl.ManagerFactoryParameters;
index edc3ac259cb900c5503aae1ad7418863777c66d2..2d21d9d4554b90323ec8934618e0a4f578cd3f27 100644 (file)
@@ -38,9 +38,6 @@ exception statement from your version. */
 
 package gnu.javax.net.ssl.provider;
 
-import gnu.classpath.debug.Component;
-import gnu.classpath.debug.SystemLogger;
-
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.nio.ByteBuffer;
index 300012a4b30e3ac6f2fa504189edc363439b000d..e30f04241a09805bf9163f21c497f91537706f8f 100644 (file)
@@ -775,7 +775,7 @@ class ServerHandshake extends AbstractHandshake
     //     outgoing buffer. This isn't that great because we'd need to
     //     store and copy things unnecessarily.
     //
-    //  2. Build outgoing handshake objects “virtually,” that is, store them
+    //  2. Build outgoing handshake objects 'virtually', that is, store them
     //     as collections of objects, then compute the length, and then write
     //     them to a buffer, instead of making the objects views on
     //     ByteBuffers for both input and output. This would complicate the
@@ -784,7 +784,7 @@ class ServerHandshake extends AbstractHandshake
     //     pretty OK), and we still need to figure out how exactly to chunk
     //     those objects across record boundaries.
     //
-    //  3. Try to build these objects on the buffer were given, but detect
+    //  3. Try to build these objects on the buffer we're given, but detect
     //     when we run out of space in the output buffer, and split the
     //     overflow message. This sounds like the best, but also probably
     //     the hardest to code.
@@ -1374,4 +1374,4 @@ output_loop:
       setupSecurityParameters(keys, false, engine, compression);
     }
   }
-}
\ No newline at end of file
+}
index 86dcb4915cd9b7579ea3bdf0b7bd4ffe139b3d99..6a4020117ecac70f127a63cff92a7f511ebae148 100644 (file)
@@ -40,22 +40,16 @@ package gnu.javax.net.ssl.provider;
 
 import gnu.javax.crypto.key.GnuPBEKey;
 import gnu.javax.net.ssl.Session;
-import gnu.javax.net.ssl.Session.ID;
-
 import java.io.IOException;
 import java.io.Serializable;
 
-import java.security.Certificate;
 import java.security.InvalidKeyException;
 import java.security.NoSuchAlgorithmException;
 import java.security.SecureRandom;
-import java.security.cert.X509Certificate;
-
 import javax.crypto.Cipher;
 import javax.crypto.IllegalBlockSizeException;
 import javax.crypto.NoSuchPaddingException;
 import javax.crypto.SealedObject;
-import javax.crypto.spec.PBEKeySpec;
 import javax.net.ssl.SSLException;
 
 public class SessionImpl extends Session
index 8c6cfadc734adf3eed6a4fbe244f52dd044aa246..d95e181370e9288bd994aedfa52f411dd3e529b6 100644 (file)
@@ -38,26 +38,11 @@ exception statement from your version.  */
 
 package gnu.javax.net.ssl.provider;
 
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.DataInputStream;
-import java.io.InputStream;
-import java.io.IOException;
-import java.io.OutputStream;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 
-import java.math.BigInteger;
-
 import java.nio.ByteBuffer;
 
-import java.security.PublicKey;
-import java.security.interfaces.RSAKey;
-
-import java.util.Arrays;
-
-import gnu.java.security.der.*;
-
 /**
  * The signature structure.
  *
index b9d0f95519dfd5d8eb9cbb1541449625153f9289..20503d3cabe6ac86c26b240d03debad8630588be 100644 (file)
@@ -41,8 +41,6 @@ package gnu.javax.net.ssl.provider;
 import gnu.javax.net.ssl.AbstractSessionContext;
 import gnu.javax.net.ssl.Session;
 import gnu.javax.net.ssl.SessionStoreException;
-import gnu.javax.net.ssl.Session.ID;
-
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
index 18aa8f5f4c72719a4d43eee96a7283dea6c4b3fc..8bdda930b3c1fb9a2ca2c778b9266fe4bf940f47 100644 (file)
@@ -39,7 +39,6 @@ exception statement from your version.  */
 package gnu.javax.net.ssl.provider;
 
 import java.security.InvalidKeyException;
-import java.util.HashMap;
 import java.util.Map;
 
 import gnu.java.security.hash.IMessageDigest;
index 1e4b173595db14c8e55e45af2b2648cd8d64b43b..85e359675a731203b01187e4d4ac9e65314cd153 100644 (file)
@@ -38,7 +38,6 @@ exception statement from your version.  */
 
 package gnu.javax.net.ssl.provider;
 
-import gnu.java.security.x509.X500DistinguishedName;
 import gnu.javax.net.ssl.provider.Extension.Value;
 
 import java.io.PrintWriter;
index 2094daf9098cdda27dd328e363f1ee1329ae8b50..f54dda5bc6de7586569bbff1a8b462dc13d41776 100644 (file)
@@ -40,8 +40,6 @@ package gnu.javax.net.ssl.provider;
 
 import gnu.javax.net.ssl.provider.Extension.Value;
 
-import java.io.PrintWriter;
-import java.io.StringWriter;
 import java.nio.ByteBuffer;
 
 public class UnresolvedExtensionValue extends Value
index dc7728866975c906e5af0da679b8b8f723edad50..c3b7e5f4b8f74b12988d2887fcd4ebad407fc103 100644 (file)
@@ -64,8 +64,6 @@ import java.security.interfaces.RSAPrivateKey;
 import java.security.interfaces.RSAPublicKey;
 
 import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.List;
 
@@ -77,8 +75,6 @@ import javax.net.ssl.KeyManagerFactorySpi;
 import javax.net.ssl.ManagerFactoryParameters;
 import javax.net.ssl.SSLEngine;
 import javax.net.ssl.X509ExtendedKeyManager;
-import javax.net.ssl.X509KeyManager;
-
 import gnu.javax.net.ssl.NullManagerParameters;
 import gnu.javax.net.ssl.PrivateCredentials;
 
index d7598be3e5b71a8af00e583b91f41a67261b6bca..54d6b87b47cf34d65f3f97eac8d14614a83733e3 100644 (file)
@@ -479,17 +479,17 @@ public final class PrinterDialog extends JDialog implements ActionListener
        */
       void updateForSelectedService()
       {
-        PrinterMakeAndModel att1 = (PrinterMakeAndModel)
+        PrinterMakeAndModel att1 =
           getSelectedPrintService().getAttribute(PrinterMakeAndModel.class);
         typValue.setText(att1 == null ? "" : att1.getValue());
         
-        PrinterInfo att2 = (PrinterInfo) 
+        PrinterInfo att2 = 
           getSelectedPrintService().getAttribute(PrinterInfo.class);
         infoValue.setText(att2 == null ? "" : att2.getValue());
         
-        PrinterIsAcceptingJobs att3 = (PrinterIsAcceptingJobs)
+        PrinterIsAcceptingJobs att3 =
           getSelectedPrintService().getAttribute(PrinterIsAcceptingJobs.class);
-        PrinterState att4 = (PrinterState)
+        PrinterState att4 =
           getSelectedPrintService().getAttribute(PrinterState.class);
         
         String status = att4.toString();  
index 7284b7d68238ca1f306a42443e1b717c8857195b..8fb07ee6b8635124b0f3a635d7103f868779e8a6 100644 (file)
@@ -40,8 +40,6 @@ package gnu.javax.security.auth;
 
 import gnu.java.security.util.ExpirableObject;
 
-import javax.security.auth.DestroyFailedException;
-
 /**
  * Immutible, though destroyable, password class.
  *
@@ -145,7 +143,7 @@ public final class Password extends ExpirableObject
 
     for(i = 0, j = offset; i < length; i++, j++)
       {
-        this.password[i] = (char) password[j];
+        this.password[i] = password[j];
         // XXX this should use character encodings, other than ASCII.
         bPassword[i] = (byte) (password[j] & 0x7F);
       }
index cd10e51066563710a431fe13259c4afb8d7d9a6f..a6dce60b394d93486b8f9d8632e76d6127da51f4 100644 (file)
@@ -1,19 +1,90 @@
+/* AudioSecurityManager.java -- Manages Security requests for Sound classes.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
 package gnu.javax.sound;
 
 import javax.sound.sampled.AudioPermission;
 
+/**
+ * This class handles security requests for classes in the Sound API.
+ * 
+ * A class that needs to check against a particular permission type may use this
+ * class to query the <code>SecurityManager</code>.
+ * 
+ * For example, to check for a read permission, a class can simply pass the
+ * <code>Permission.READ</code> constant to
+ * {@link #checkPermissions(gnu.javax.sound.AudioSecurityManager.Permission))},
+ * like the following code demonstrates:
+ *
+ * <pre>
+ * AudioSecurityManager.checkPermissions(Permission.PLAY);
+ * </pre>
+ * 
+ * If there is need to query for all the defined permissions type, the constant
+ * <code>Permission.ALL</code> can be used. In alternative, the
+ * {@link #checkPermissions()} is presented as a shorthand. 
+ * 
+ * @author Mario Torre <neugens@limasoftware.net>
+ */
 public class AudioSecurityManager
 {
+  /**
+   * Defines a common set of permission allowed by the specification.
+   */
   public static enum Permission
   {
     PLAY, RECORD, ALL
   }
   
+  /**
+   * Shorthand to <code>checkPermissions(Permission.ALL)</code>. 
+   */
   public static final void checkPermissions()
   {
     checkPermissions(Permission.ALL);
   }
   
+  /**
+   * Query the <code>SecurityManager</code> agains the given 
+   * <code>Permission</code>.
+   * 
+   * @param permission
+   */
   public static final void checkPermissions(Permission permission)
   {
     SecurityManager sm = System.getSecurityManager();
index baf61732d1867be2735ffeaea092fb4743324799..740b124eb65155545369a7249e33e89187a34722 100644 (file)
@@ -44,8 +44,6 @@ import java.io.File;
 import java.io.FilenameFilter;
 
 import gnu.classpath.Configuration;
-import gnu.javax.sound.midi.alsa.AlsaMidiSequencerDevice;
-
 import javax.sound.midi.MidiDevice;
 import javax.sound.midi.MidiDevice.Info;
 import javax.sound.midi.spi.MidiDeviceProvider;
index 71970d5ba6ec1c0856f27ed25d4d3860ca3fedcd..b9b6fe87a10fd16539ac1c303967b087fe3ea79a 100644 (file)
@@ -38,10 +38,8 @@ exception statement from your version. */
 package gnu.javax.sound.midi.file;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.OutputStream;
 
 import javax.sound.midi.MetaMessage;
index c9035df733895ed76339ea0c82e9f6201ec961b7..ed5852e6c9a8b017c45fdf645116576335d8a4c2 100644 (file)
@@ -47,7 +47,6 @@ import java.io.File;
 import java.io.IOException;
 import java.io.BufferedInputStream;
 import java.io.InputStream;
-import java.io.DataInputStream;
 import java.io.FileInputStream;
 import java.net.URL;
 import java.nio.ByteBuffer;
index b32db0f353c2a4f60ea57bdffe747ca311fe6cff..aa42a4c3da8cd27207f82bd6459925c78d30d790 100644 (file)
@@ -37,13 +37,9 @@ exception statement from your version. */
 
 package gnu.javax.sound.sampled.gstreamer;
 
-import java.awt.AWTPermission;
-
 import gnu.javax.sound.sampled.gstreamer.lines.GstSourceDataLine;
 
 import javax.sound.sampled.AudioFormat;
-import javax.sound.sampled.AudioPermission;
-import javax.sound.sampled.AudioSystem;
 import javax.sound.sampled.Control;
 import javax.sound.sampled.DataLine;
 import javax.sound.sampled.Line;
@@ -52,7 +48,6 @@ import javax.sound.sampled.LineUnavailableException;
 import javax.sound.sampled.Mixer;
 import javax.sound.sampled.SourceDataLine;
 import javax.sound.sampled.Control.Type;
-import javax.sound.sampled.Line.Info;
 
 /**
  * @author Mario Torre <neugens@limasoftware.net>
@@ -81,32 +76,15 @@ public class GStreamerMixer
       super(name, vendor, desc, vers);
     }
   }
-  
+    
   public static final String GST_BACKEND = GstInfo.name;
   public static final String GST_DECODER = "decoder";
-  
-  private static AudioFormat[] BASIC_FORMATS =
-  {
-     new AudioFormat(AudioFormat.Encoding.PCM_UNSIGNED,
-                     AudioSystem.NOT_SPECIFIED,
-                     AudioSystem.NOT_SPECIFIED,
-                     AudioSystem.NOT_SPECIFIED,
-                     AudioSystem.NOT_SPECIFIED,
-                     AudioSystem.NOT_SPECIFIED,
-                     true),
-
-     new AudioFormat(AudioFormat.Encoding.PCM_UNSIGNED,
-                     AudioSystem.NOT_SPECIFIED,
-                     AudioSystem.NOT_SPECIFIED,
-                     AudioSystem.NOT_SPECIFIED,
-                     AudioSystem.NOT_SPECIFIED,
-                     AudioSystem.NOT_SPECIFIED,
-                     false),
-  };
+  public static final String GST_TYPE_NAME = "type";
+  public static final String GST_FILE_EXTENSION = "ext";
   
   /** Mixer Info */
   private static final Mixer.Info INFO = new GStreamerMixer.GstInfo();
-
+  
   public Line getLine(Line.Info info)
       throws LineUnavailableException
   {
index 53b2155d8ec95ab9f04a36870d6291e38d01caa5..b90caef24b51f3938fbc55e64d6b14b800c3df81 100644 (file)
@@ -37,13 +37,14 @@ exception statement from your version. */
 
 package gnu.javax.sound.sampled.gstreamer.io;
 
+import gnu.javax.sound.sampled.gstreamer.GStreamerMixer;
+
 import java.io.BufferedInputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
-
 import javax.sound.sampled.AudioFileFormat;
 import javax.sound.sampled.AudioFormat;
 import javax.sound.sampled.AudioInputStream;
@@ -59,21 +60,61 @@ import javax.sound.sampled.spi.AudioFileReader;
  */
 public class GstAudioFileReader
     extends AudioFileReader
-{
+{ 
   @Override
   public AudioFileFormat getAudioFileFormat(File file)
       throws UnsupportedAudioFileException, IOException
   {
-    throw new UnsupportedAudioFileException("Unsupported encoding.");
+    StringBuffer name = new StringBuffer(file.getName());
+    String _name = name.substring(name.lastIndexOf(".") + 1);
+    
+    return getAudioFileFormat(
+               new BufferedInputStream(new FileInputStream(file)), _name);
   }
 
   @Override
   public AudioFileFormat getAudioFileFormat(InputStream is)
       throws UnsupportedAudioFileException, IOException
   {
-    throw new UnsupportedAudioFileException("Unsupported encoding.");
+    return getAudioFileFormat(is, null);
   }
 
+  private AudioFileFormat getAudioFileFormat(InputStream is, String extension)
+    throws UnsupportedAudioFileException
+    {
+      AudioFormat format = null;
+      try
+        {
+          format = GstAudioFileReaderNativePeer.getAudioFormat(is);
+        }
+      catch (Exception e)
+        {
+          UnsupportedAudioFileException ex =
+            new UnsupportedAudioFileException("Unsupported encoding.");
+         
+          ex.initCause(ex.getCause());
+          throw ex;
+        }
+      
+      if (format == null)
+        throw new UnsupportedAudioFileException("Unsupported encoding.");
+      
+      String name = format.getProperty(GStreamerMixer.GST_DECODER).toString();
+      
+      if (extension == null)
+        {
+          extension =
+            format.getProperty(GStreamerMixer.GST_FILE_EXTENSION).toString();
+        }
+      
+      AudioFileFormat.Type type =
+        new AudioFileFormat.Type(name, extension);
+      
+      // TODO: we should calculate this in some way. We don't need it, but
+      // application may want to use this data.
+      return new AudioFileFormat(type, format, AudioSystem.NOT_SPECIFIED);
+    }
+  
   @Override
   public AudioFileFormat getAudioFileFormat(URL url)
       throws UnsupportedAudioFileException, IOException
@@ -96,8 +137,11 @@ public class GstAudioFileReader
       }
     catch (Exception e)
       {
-        // TODO Auto-generated catch block
-        e.printStackTrace();
+        UnsupportedAudioFileException ex =
+          new UnsupportedAudioFileException("Unsupported encoding.");
+       
+        ex.initCause(ex.getCause());
+        throw ex;
       }
     
     // get the header size
index 45ae4ff85889b6cd334a834f2564eed844aecbef..761720fee5de194cc41a1b73a2486a76bce31fd1 100644 (file)
@@ -38,6 +38,7 @@ exception statement from your version. */
 
 package gnu.javax.sound.sampled.gstreamer.io;
 
+import gnu.classpath.Pointer;
 import gnu.javax.sound.sampled.gstreamer.GStreamerMixer;
 
 import java.io.BufferedInputStream;
@@ -90,8 +91,11 @@ final class GstAudioFileReaderNativePeer
     public String isSigned = null;
     
     public String layer = null;
+    
     public String bitrate = null;
+    
     public String framed = null;
+    
     public String type = null;
   }
   
@@ -108,18 +112,7 @@ final class GstAudioFileReaderNativePeer
   
   public static AudioFormat getAudioFormat(InputStream is) throws Exception
   {
-    GstHeader header = new GstHeader();
-    
-    BufferedInputStream stream = new BufferedInputStream(is);
-    if(!stream.markSupported()) 
-      throw new IOException("Stream must support marking."); 
-    
-    stream.mark(0);
-    
-    if (!gstreamer_get_audio_format_stream(header, stream))
-      return null;
-    
-    return getAudioFormat(header);
+    return getAudioFormat(is, new GstHeader());
   }
   
   public static AudioFormat getAudioFormat(URL url) throws Exception
@@ -127,13 +120,20 @@ final class GstAudioFileReaderNativePeer
     GstHeader header = new GstHeader();
     header.file = url.toExternalForm();
     
-    BufferedInputStream stream = new BufferedInputStream(url.openStream());
+    return getAudioFormat(url.openStream(), header);
+  }
+  
+  private static AudioFormat getAudioFormat(InputStream is, GstHeader header)
+      throws Exception
+  {
+    BufferedInputStream stream = new BufferedInputStream(is);
     if(!stream.markSupported()) 
       throw new IOException("Stream must support marking."); 
     
     stream.mark(0);
     
-    if (!gstreamer_get_audio_format_stream(header, stream))
+    if (!gstreamer_get_audio_format_stream(header, new GstInputStream(stream).
+                                           getNativeClass()))
       return null;
     
     return getAudioFormat(header);
@@ -200,27 +200,31 @@ final class GstAudioFileReaderNativePeer
           bigEndian = true;
       }
     
+    String ext = null;
+    
     int frameSize = na;
     float frameRate = na;
     String lowerCase = header.name.toLowerCase();
     
     // FIXME: frameRate = sampleRate in these cases under all the tests so far
     // but I'm not sure if this is always correct...
-    if (lowerCase.contains("law") || lowerCase.contains("au") ||
-        lowerCase.contains("x-au"))
+    if (lowerCase.contains("law") || lowerCase.contains("au"))
       {
         frameSize = (sampleSizeInBits >> 3) * channels;
         frameRate = sampleRate;
+        ext = "au";
       }
     else if (lowerCase.contains("wav"))
       {
         frameSize = ((sampleSizeInBits + 7) / 8) * channels;
         frameRate = sampleRate;
+        ext = "wav";
       }
     else if (lowerCase.contains("iff"))
       {
         frameSize = (sampleSizeInBits * channels) / 8;
         frameRate = sampleRate;
+        ext = "aiff";
       }
     
     // write all the additional properties we got to identify
@@ -228,6 +232,9 @@ final class GstAudioFileReaderNativePeer
     Map<String, Object> properties = new HashMap<String, Object>();
     properties.put(GStreamerMixer.GST_BACKEND, true);
     properties.put(GStreamerMixer.GST_DECODER, header.name);
+    properties.put(GStreamerMixer.GST_TYPE_NAME, encoding.toString());
+    if (ext != null)
+      properties.put(GStreamerMixer.GST_FILE_EXTENSION, ext);
     
     /* now we put in some of the additional properties if we have them */
     if (header.type != null) properties.put("type", header.type);
@@ -251,26 +258,27 @@ final class GstAudioFileReaderNativePeer
   /* ***** native methods ***** */
   
   /**
-   * Retrieve header information about the file being played.
-   * 
-   * @param info
-   * @return
+   * Retrieve header information about the stream being played.
    */
   native static final
   protected boolean gstreamer_get_audio_format_stream(GstHeader info,
-                                               BufferedInputStream istream);
+                                                      Pointer pointer);
   
   /**
    * Retrieve header information about the file being played.
-   * 
-   * @param info
-   * @return
    */
   native static final
   protected boolean gstreamer_get_audio_format_file(GstHeader info);
   
+  /**
+   * Initialize the native peer and enables the object cache.
+   * It is meant to be used by the static initializer.
+   */
+  native private static final void init_id_cache();
+  
   static
   {
     System.loadLibrary("gstreamerpeer"); //$NON-NLS-1$
+    init_id_cache();
   }
 }
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java
new file mode 100644 (file)
index 0000000..0702ede
--- /dev/null
@@ -0,0 +1,119 @@
+/* GstInputStream.java -- Trampoline class for an InputStream, mean to be used
+ by native code.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.javax.sound.sampled.gstreamer.io;
+
+import gnu.classpath.Pointer;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * Encapsulates the functionality of an InputStream Object.
+ * 
+ * This class is only meant to be used by the native code, to allow reading
+ * of the given InputStream as part of a the GStreamer InputStream Source
+ * Plugin.
+ * 
+ * <strong>Note:</strong> this class will be not garbage collected as the
+ * native code contains strong references to internal fields.
+ * The native layer provides a method that can be called by the C code to
+ * free the resources and to let the garbage collected to handle this class
+ * when not needed anymore.
+ * 
+ * @author Mario Torre <neugens@limasoftware.net>
+ */
+public class GstInputStream
+{
+  /** The real InputStream on which to perform reading operations. */
+  private InputStream istream;
+  
+  /**
+   * Initialized in the native code, don't change without changes 
+   * in the native layer.
+   */
+  private Pointer gstInputStream = null;
+  
+  public GstInputStream(InputStream istream)
+  {
+    this.istream = istream;
+    init_instance();
+  }
+  
+  public int read(byte[] buf, int off, int len) throws IOException
+  {
+    return this.istream.read(buf, off, len);
+  }
+  
+  public int available() throws IOException
+  {
+    return this.istream.available();
+  }
+  
+  /**
+   * Return a reference to the GstInputStream native class as a Pointer object.
+   * This method is intended as an helper accessor and the returned pointer
+   * needs to be casted and used in the native code only. 
+   *  
+   * @return Pointer to the native GstInputStream class.
+   */
+  public Pointer getNativeClass()
+  {
+    return this.gstInputStream;
+  }
+  
+  /* native methods */
+  
+  /**
+   * Initialize the native peer and enables the object cache.
+   * It is meant to be used by the class constructor.
+   */
+  native private final void init_instance();
+  
+  /**
+   * Initialize the native peer and enables the object cache.
+   * It is meant to be used by the static initializer.
+   */
+  native private static final void init_id_cache();
+
+  static
+  {
+    System.loadLibrary("gstreamerpeer"); //$NON-NLS-1$
+    init_id_cache();
+  }
+}
index 0467c95590527b016f31e1cb023470c7fb5be924..33be15c58b8b98730843a5d5adfa5c59a087dfce 100644 (file)
@@ -41,22 +41,13 @@ import javax.sound.sampled.AudioFormat;
 import javax.sound.sampled.Control;
 import javax.sound.sampled.DataLine;
 import javax.sound.sampled.LineListener;
-import javax.sound.sampled.LineUnavailableException;
 import javax.sound.sampled.Control.Type;
 
 public abstract class GstDataLine
     implements DataLine
 {
-  public static enum State
-  {
-    PLAY, PAUSE, STOP
-  }
-  
   public static final int DEFAULT_BUFFER_SIZE = 1024;
   
-  /** Represents the playing state of this Line. */
-  protected State state = State.STOP;
-  
   /** Represents if this Line is opened or not.  */
   protected Boolean open = false; 
   
@@ -90,12 +81,7 @@ public abstract class GstDataLine
     // TODO Auto-generated method stub
     return 0;
   }
-
-  public boolean isRunning()
-  {
-    return (state == State.PLAY || state == State.PAUSE);
-  }
-
+  
   public void addLineListener(LineListener listener)
   {
     // TODO Auto-generated method stub
@@ -131,15 +117,35 @@ public abstract class GstDataLine
     return false;
   }
 
-  public void open() throws LineUnavailableException
+  public void removeLineListener(LineListener listener)
   {
     // TODO Auto-generated method stub
 
   }
 
-  public void removeLineListener(LineListener listener)
+  /* protected methods for subclasses */
+  
+  /**
+   * @param open the open to set
+   */
+  protected void setOpen(Boolean open)
   {
-    // TODO Auto-generated method stub
+    this.open = open;
+  }
+
+  /**
+   * @param bufferSize the bufferSize to set
+   */
+  protected void setBufferSize(int bufferSize)
+  {
+    this.bufferSize = bufferSize;
+  }
 
+  /**
+   * @param format the format to set
+   */
+  protected void setFormat(AudioFormat format)
+  {
+    this.format = format;
   }
 }
index 2b41a11867233268df8d94ebabca137eec49a4dd..84007ac97e73895ba02673f45d76caa880f325ec 100644 (file)
@@ -37,12 +37,41 @@ exception statement from your version. */
 
 package gnu.javax.sound.sampled.gstreamer.lines;
 
+import gnu.classpath.Pointer;
+
+import javax.sound.sampled.LineUnavailableException;
+
 public class GstNativeDataLine
-{
+{ 
+  public static final GstPipeline createSourcePipeline(int bufferSize)
+    throws LineUnavailableException
+  {
+    GstPipeline pipeline = new GstPipeline(bufferSize);
+    pipeline.createForWrite();
+    
+    if (!setup_sink_pipeline(pipeline.getNativeClass()))
+      throw new LineUnavailableException("Line unavailable");
+    
+    return pipeline;
+  }
   
+  /* native methods */
   
+  /**
+   * Initialize the native peer and enables the object cache.
+   * It is meant to be used by the static initializer.
+   */
+  native static final private void init_id_cache();
+
+  /**
+   * Setup a new GStreamer Pipeline
+   */
+  native static final private boolean setup_sink_pipeline(Pointer pipeline);
+
   static
   {
     System.loadLibrary("gstreamerpeer"); //$NON-NLS-1$
+    init_id_cache();
   }
 }
index d1460e5090f37859e1154925607777bd66c6b756..f561f71c2fab6f399950dd5b4a46f00b64a94e8a 100644 (file)
@@ -34,24 +34,382 @@ or based on this library.  If you modify this library, you may extend
 this exception to your version of the library, but you are not
 obligated to do so.  If you do not wish to do so, delete this
 exception statement from your version. */
+
 package gnu.javax.sound.sampled.gstreamer.lines;
 
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.prefs.Preferences;
+
+import javax.sound.sampled.LineUnavailableException;
+
 import gnu.classpath.Pointer;
 
 /**
+ * This class represent a GStreamer pipeline and is resposible to handle the
+ * flow of data to and from the GStreamer native backend.
  * 
  * @author Mario Torre <neugens@limasoftware.net>
  */
 public class GstPipeline
 {
+  /*
+   * Implementation note:
+   * This class is at first a bit confusing as it serves as a gateway
+   * to a real filesystem named pipe.
+   * The pipelines is shared by the gstreamer backend and by the java code.
+   * If the operation we are performing is to play a given stream of bytes,
+   * we need to open the java side of the pipeline for writing, which is done
+   * in the prepareWrite method. At the same time, the native side of the code
+   * need to open the pipeline in read mode, to get access to the data,
+   * and hence, act as a source element. This is why you will see terms
+   * like "read" or "source" in methods that are used to write in the pipeline,
+   * in other words, each the native operation is the opposite of the java
+   * side operation.
+   * Opening the pipe to record audio data from the sound card works the same
+   * except that all the operation are inverted.
+   */
+  
+  // These enums are used in the native code also, changes here must reflect
+  // changes in the native code.
+  public static enum State
+  {
+    PLAY, PAUSE, STOP, CLOSE
+  }
+  
+  private static final int READ = 0;
+  private static final int WRITE = 1;
+  private static final int QUEUED = 1;
+  
+  private static final String CAPACITY_KEY = "Capacity"; 
+  
+  private static final Object [] lock = new Object[0];
+  
+  /*
+   * Preference subsystem. We use this to store some system specific settings.
+   */
+  protected Preferences prefs =
+    Preferences.userNodeForPackage(GstPipeline.class).node("GStreamer");
+  
+  // used by the native code, stores the size of the named pipeline
+  // created by the operating system.
+  private long capacity = -1;
+  
+  /** Represents the playing state of this Line. */
+  private State state = State.STOP;
+  
+  /** The name of the named pipe. */
+  // Will be setup and filled in the native code. See the native library
+  // for details.
+  private String name = null;
+  
+  /** This is the named pipe that will be read by the gstreamer backend. */
+  private FileOutputStream output = null;
+  
+  /**
+   * Defines if we are getting data from a sink pipe
+   * or writing to a source pipe.
+   */
+  private boolean source = true;
+  
+  /** Indicate that we are ready to process audio data to/from the pipe. */
+  private boolean ready = false;
+  
   /**
    * This is the native GStreamer Pipeline.
+   */
+  // This field is used by the native code, so any change to it must be
+  // followed by similar changes in the native peer.
+  private Pointer pipeline = null;
+
+  /**
+   * Creates a new GstPipeline with a capacity of
+   * {@link GstDataLine#DEFAULT_BUFFER_SIZE}.
    * 
-   * This field is used by the native code, so any change to it must be
-   * followed by similar changes in the native peer.
+   * @see GstDataLine#DEFAULT_BUFFER_SIZE
+   */
+  public GstPipeline()
+  {
+    this(GstDataLine.DEFAULT_BUFFER_SIZE);
+  }
+  
+  /**
+   * Creates a new GstPipeline with a capacity of bufferSize.
+   * @see GstDataLine#DEFAULT_BUFFER_SIZE
+   */
+  public GstPipeline(int bufferSize)
+  { 
+    // see if we need to detect the size of the named pipe or we can use
+    // an already computet default for this system.
+    // Note that this is very different from the bufferSize parameter,
+    // see below.
+    capacity = prefs.getLong(CAPACITY_KEY, -1);
+    if (capacity == -1)
+      {
+        synchronized (lock)
+          {
+            capacity = detect_pipe_size();
+          }
+        
+        prefs.putLong(CAPACITY_KEY, capacity);
+      }
+    
+    // FIXME: bufferSize actually not used nor needed by the backend.
+    // Applications that expects a buffer of different size will be a
+    // bit disappointed by that..
+    init_instance();
+    
+    // need to remove the named pipe in case of abnormal termination
+    Runtime.getRuntime().addShutdownHook(new CleanPipeline());
+  }
+  
+  /**
+   * Creates a source pipeline. A source pipeline is a pipe you send data for
+   * processing using the write method.
+   */
+  public void createForWrite() throws LineUnavailableException
+  { 
+    // create the named pipe
+    if (!create_named_pipe(this.pipeline))
+      throw new LineUnavailableException("Unable to create filesystem pipe");
+   
+    open_native_pipe(this.pipeline, READ);
+    prepareWrite();
+    
+    this.source = true;
+  }
+  
+  /**
+   * @return the state
+   */
+  public State getState()
+  {
+    return this.state;
+  }
+
+  /**
+   * Closes this pipeline.
+   * Short hand for #setState(State.STOP).
+   */
+  public void close()
+  {
+    setState(State.STOP);
+  }
+  
+  /**
+   * @param state the state to set
    */
-  private Pointer pipeline;
+  public void setState(final State state)
+  {
+    int _state = -1;
+    switch (state)
+      {
+        case PLAY:
+          _state = 0;
+          break;
+
+        case PAUSE:
+          _state = 1;
+          break;
+        
+        case STOP: case CLOSE:
+          _state = 2;
+          closePipe();
+          break;
+      }
 
-  native private void setState();
+    if (set_state(pipeline, _state))
+      GstPipeline.this.state = state;
+  }
+   
+  /**
+   * Return a reference to the GstPipeline native class as a Pointer object.
+   * This method is intended as an helper accessor and the returned pointer
+   * needs to be casted and used in the native code only. 
+   *  
+   * @return Pointer to the native GstPipeline class.
+   */
+  public Pointer getNativeClass()
+  {
+    return this.pipeline;
+  }
+  
+  /**
+   * Write length bytes from the given buffer into this pipeline,
+   * starting at offset.
+   * This method block if the pipeline can't accept more data. 
+   * 
+   * @param buffer
+   * @param offset
+   * @param length
+   * @return
+   */
+  public int write(byte[] buffer, int offset, int length)
+  { 
+    if (this.state == State.STOP)
+      return -1;
+    else if (this.state == State.PAUSE)
+      return 0;
+    else if (!ready)
+      return -1;
+    
+    try
+      {
+        if (output != null)
+          {
+            output.write(buffer, offset, length);
+            return length;
+          }
+        return 0;
+      }
+    catch (Exception e)
+      {
+        /* nothing to do */
+      }
+    
+    return -1;
+  }
+  
+  public int read(byte[] buffer, int offset, int length)
+  {
+    return 0;
+  }
+  
+  public int available()
+  {
+    if (this.source)
+      return available(this.pipeline, READ);
+    else
+      return available(this.pipeline, WRITE);
+  }
+  
+  /**
+   * Wait for remaining data to be enqueued in the pipeline.
+   */
+  public void drain()
+  {
+    if (this.state == State.STOP)
+      return;
+    
+    try
+      {
+        // wait untill there is anymore data in the pipe
+        while (available(this.pipeline, QUEUED) > 0)
+          Thread.sleep(3000);
+        
+        // plus a bit to allow data to be processed
+        Thread.sleep(1000);
+      }
+    catch (InterruptedException e)
+      {
+        /* nothing to do*/
+      }
+  }
+  
+  /**
+   * Flush all the data currently waiting to be processed.
+   */
+  public void flush()
+  {
+    try
+      {
+        if (source)
+          this.output.flush();
+      }
+    catch (IOException e)
+      {
+        /* nothing */
+      }
+  }
+  
+  private void closePipe()
+  {
+    try
+      {
+        GstPipeline.this.flush();
+        if (source)
+          GstPipeline.this.output.close();
+      }
+    catch (IOException e)
+      {
+        /* nothing to do */
+      }
+  }
+  
+  private void prepareWrite()
+  {
+    try
+      {
+        // if this is not completed for some reason, we will catch
+        // in the write method. As this call can block, we assume we will
+        // succeed and that the dataline can get data.
+        GstPipeline.this.ready = true;
+        GstPipeline.this.output = new FileOutputStream(name);
+      }
+    catch (Exception e)
+      {
+        GstPipeline.this.ready = false;
+      }
+  }
+  
+  /* ***** native ***** */
+  
+  /**
+   * Initialize the native peer and enables the object cache.
+   * It is meant to be used by the static initializer.
+   */
+  native private static final void init_id_cache();
+  
+  /**
+   * Set the playing state of this pipeline.
+   */
+  native private static final boolean set_state(Pointer pipeline, int state);
+  
+  /**
+   * Get the number of bytes currently available for reading or writing
+   * from the pipeline.
+   */
+  native private static final int available(Pointer pipeline, int mode);
+  
+  /**
+   * Open the native pipeline with the given mode.
+   */
+  native private static final void open_native_pipe(Pointer jpipeline,
+                                                    int mode);
+  
+  /**
+   * Close the native pipeline.
+   */
+  native private static final void close_native_pipe(Pointer jpipeline);
+  
+  /**
+   * Initialize the native peer and enables the object cache.
+   * It is meant to be used by the class constructor.
+   */
+  native private final void init_instance();
+  
+  /**
+   * Crates the named pipe used to pass data between the application code
+   * and gstreamer.
+   */
+  native private final boolean create_named_pipe(Pointer jpipeline);
+  
+  /**
+   * Detect and return the size of the filesystem named pipe.
+   */
+  native private final long detect_pipe_size();
+  
+  private class CleanPipeline extends Thread
+  {
+    public void run()
+    {
+      GstPipeline.close_native_pipe(GstPipeline.this.pipeline);
+    }
+  }
   
+  static
+  {
+    System.loadLibrary("gstreamerpeer"); //$NON-NLS-1$
+    init_id_cache();
+  }
 }
index d1a0262e5b569dc0ff80019a4c71076164e6a663..f149ab39df2735c6033a87a85a38fbc97e012fd0 100644 (file)
@@ -38,6 +38,7 @@ exception statement from your version. */
 package gnu.javax.sound.sampled.gstreamer.lines;
 
 import gnu.javax.sound.AudioSecurityManager;
+import gnu.javax.sound.sampled.gstreamer.lines.GstPipeline.State;
 
 import javax.sound.sampled.AudioFormat;
 import javax.sound.sampled.LineUnavailableException;
@@ -48,87 +49,105 @@ import static gnu.javax.sound.AudioSecurityManager.Permission;
 public class GstSourceDataLine
     extends GstDataLine implements SourceDataLine
 {
+  private GstPipeline pipeline = null;
+  private boolean open = false;
+  
   public GstSourceDataLine(AudioFormat format)
   {
     super(format);
   }
 
+  public void open() throws LineUnavailableException
+  {
+    AudioSecurityManager.checkPermissions(Permission.PLAY);
+    
+    if (open)
+      throw new IllegalStateException("Line already opened");
+    
+    // create the pipeline
+    pipeline = GstNativeDataLine.createSourcePipeline(getBufferSize());
+    
+    this.open = true;
+  }
+  
   public void open(AudioFormat fmt) throws LineUnavailableException
   {
     AudioSecurityManager.checkPermissions(Permission.PLAY);
-    throw new LineUnavailableException("Line unavailable");
+    
+    setFormat(fmt);
+    this.open();
   }
 
   public void open(AudioFormat fmt, int size) throws LineUnavailableException
   {
     AudioSecurityManager.checkPermissions(Permission.PLAY);
-    throw new LineUnavailableException("Line unavailable");
+    
+    setBufferSize(size);
+    this.open(fmt);
   }
 
   public int write(byte[] buf, int offset, int length)
-  {
-    // TODO Auto-generated method stub
-    return 0;
+  { 
+    return this.pipeline.write(buf, offset, length);
   }
 
   public int available()
   {
-    // TODO Auto-generated method stub
-    return 0;
+    return this.pipeline.available();
   }
 
   public void drain()
   {
-    // TODO Auto-generated method stub
-    
+    this.pipeline.drain();
   }
 
   public void flush()
   {
-    // TODO Auto-generated method stub
-    
+    this.pipeline.flush();
   }
 
   public int getFramePosition()
   {
-    // TODO Auto-generated method stub
+    System.out.println("getFramePosition -: IMPLEMENT ME!!");
     return 0;
   }
 
   public long getLongFramePosition()
   {
-    // TODO Auto-generated method stub
+    System.out.println("getLongFramePosition -: IMPLEMENT ME!!");
     return 0;
   }
 
   public long getMicrosecondPosition()
   {
-    // TODO Auto-generated method stub
+    System.out.println("getMicrosecondPosition -: IMPLEMENT ME!!");
     return 0;
   }
 
   public boolean isActive()
   {
-    // TODO Auto-generated method stub
-    return false;
+    State state = pipeline.getState();
+    return (state == State.PLAY || state == State.PAUSE);
   }
 
   public void start()
   {
-    // TODO Auto-generated method stub
-    
+    pipeline.setState(State.PLAY);
   }
 
   public void stop()
   {
-    // TODO Auto-generated method stub
-    
+    pipeline.setState(State.PAUSE);
   }
 
   public void close()
   {
-    // TODO Auto-generated method stub
-    
+    pipeline.close();
+    this.open = false;
+  }
+  
+  public boolean isRunning()
+  {
+    return (pipeline.getState() == State.PLAY);
   }
-
 }
index 2795b6784010c66263fcba8ea038c891dbf4f744..203eadc407306c0f3edb98dbbe79362dbaafb60a 100644 (file)
@@ -143,7 +143,7 @@ public class FontSize
   {
     int end = value.indexOf("pt");
     String number = value.substring(0, end);
-    int intVal = Integer.parseInt(number);
+    int intVal = (int) Double.parseDouble(number);
     return intVal;
   }
 
@@ -160,7 +160,7 @@ public class FontSize
     String number = value.substring(0, end);
     try
       {
-        int intVal = Integer.parseInt(number);
+        int intVal = (int) Double.parseDouble(number);
         return intVal;
       }
     catch (NumberFormatException ex)
@@ -177,7 +177,7 @@ public class FontSize
     String number = value.substring(0, end);
     try
       {
-        int intVal = Integer.parseInt(number);
+        int intVal = (int) Double.parseDouble(number);
         return intVal * par / 100;
       }
     catch (NumberFormatException ex)
index 210df3a7b65386bba26004381b2829390bb7a854..6e182a5362357251b395047dba7dbc795a4de4ad 100644 (file)
@@ -93,8 +93,6 @@ public class Selector
    * instance, the html tag).
    *
    * @param tags
-   * @param classes
-   * @param ids
    *
    * @return <code>true</code> when this selector matches the element path,
    *         <code>false</code> otherwise
index c615ddff350fc33dbbaa1ea84543794788adea0a..54469b349959513347b8005f1557bf27f6f7ff61 100644 (file)
@@ -177,7 +177,7 @@ public class node
   /**
    * Do the match operation with the given token. This sets various
    * flags.
-   * @param token The token to match.
+   * @param a_token The token to match.
    * @return true if the the token matches node, false if it does not match
    * or if the node is closed.
    */
index c0d1e636e9239177d7317e0ace9541f9e80b8e4f..e99be3238e94d8f4d355062177c17ef05baba7ef 100644 (file)
@@ -216,7 +216,7 @@ public class Parser
            * The tag validator closes all unclosed elements that are required
            * to have the end (closing) tag.
            *
-           * @param element The tag being fictionally (forcibly) closed.
+           * @param tElement The tag being fictionally (forcibly) closed.
            */
           protected void handleSupposedEndTag(Element tElement)
           {
@@ -234,7 +234,7 @@ public class Parser
            * assigned to the empty one, the previous value is
            * restored before return.
            *
-           * @param element The tag being fictionally (forcibly) closed.
+           * @param tElement The tag being fictionally (forcibly) closed.
            */
           protected void handleSupposedStartTag(Element tElement)
           {
@@ -523,8 +523,7 @@ public class Parser
     restOfTag(false, name, start);
 
     buffer.setLength(0);
-
-    script: 
     while (!SCRIPT_CLOSE.matches(this))
       {
         append(getNextToken());
@@ -606,8 +605,7 @@ public class Parser
     restOfTag(false, name, start);
 
     buffer.setLength(0);
-
-    style: 
     while (!STYLE_CLOSE.matches(this))
       {
         append(getNextToken());
@@ -742,7 +740,7 @@ public class Parser
    * Handle the tag with no content, like &lt;br&gt;. The method is
    * called for the elements that, in accordance with the current DTD,
    * has an empty content.
-   * @param The tag being handled.
+   * @param tag The tag being handled.
    * @throws javax.swing.text.ChangedCharSetException
    */
   protected void handleEmptyTag(TagElement tag)
@@ -754,7 +752,7 @@ public class Parser
    * The method is called when the HTML closing tag ((like &lt;/table&gt;)
    * is found or if the parser concludes that the one should be present
    * in the current position.
-   * @param The tag
+   * @param tag The tag
    */
   protected void handleEndTag(TagElement tag)
   {
@@ -769,7 +767,7 @@ public class Parser
    * The method is called when the HTML opening tag ((like &lt;table&gt;)
    * is found or if the parser concludes that the one should be present
    * in the current position.
-   * @param The tag
+   * @param tag The tag
    */
   protected void handleStartTag(TagElement tag)
   {
@@ -798,7 +796,7 @@ public class Parser
    * both title starting and closing tags are already behind.
    * The passed argument contains the concatenation of all
    * title text sections.
-   * @param The title text.
+   * @param title The title text.
    */
   protected void handleTitle(char[] title)
   {
@@ -868,7 +866,7 @@ public class Parser
   {
     Object value = HTML.NULL_ATTRIBUTE_VALUE;
 
-    Element e = (Element) dtd.elementHash.get(element.toLowerCase());
+    Element e = dtd.elementHash.get(element.toLowerCase());
     if (e != null)
       {
         AttributeList attr = e.getAttribute(attribute);
@@ -1146,7 +1144,7 @@ public class Parser
    * is found or if the parser concludes that the one should be present
    * in the current position. The method is called immediately before
    * calling the handleStartTag.
-   * @param The tag
+   * @param tag The tag
    */
   protected void startTag(TagElement tag)
                    throws ChangedCharSetException
@@ -1182,7 +1180,7 @@ public class Parser
    * A hooks for operations, preceeding call to handleEmptyTag().
    * Handle the tag with no content, like &lt;br&gt;. As no any
    * nested tags are expected, the tag validator is not involved.
-   * @param The tag being handled.
+   * @param tag The tag being handled.
    */
   private void _handleEmptyTag(TagElement tag)
   {
@@ -1208,7 +1206,7 @@ public class Parser
    * A hooks for operations, preceeding call to handleEndTag().
    * The method is called when the HTML closing tag
    * is found. Calls handleTitle after closing the 'title' tag.
-   * @param The tag
+   * @param tag The tag
    */
   private void _handleEndTag(TagElement tag)
   {
@@ -1254,7 +1252,7 @@ public class Parser
    * The method is called when the HTML opening tag ((like &lt;table&gt;)
    * is found.
    * Package-private to avoid an accessor method.
-   * @param The tag
+   * @param tag The tag
    */
   void _handleStartTag(TagElement tag)
   {
@@ -1328,7 +1326,7 @@ public class Parser
 
   private TagElement makeTagElement(String name, boolean isSupposed)
   {
-    Element e = (Element) dtd.elementHash.get(name.toLowerCase());
+    Element e = dtd.elementHash.get(name.toLowerCase());
     if (e == null)
       {
         error("Unknown tag <" + name + ">");
index 0ffc6c8b754402c2bb56bc3e35e0607a207b3c5a..80bb333a528919a2ed95ae43f7478cb95aa17d20 100644 (file)
@@ -240,15 +240,14 @@ public class ReaderTokenizer
   /**
    * Read the given number of the tokens. Add the needed number of EOF
    * tokens if there are no more data in the stream.
-   * @param amount The number of additional tokens to read.
+   * @param numberOfTokens The number of additional tokens to read.
    */
   void read(int numberOfTokens)
      throws IOException
   {
     if (numberOfTokens <= 0)
       return;
-
-    reading: 
     for (int i = 0; i < numberOfTokens; i++)
       readToken();
   }
index 654acbbb58c73b058a4ffd06c7e280ad72eacedc..43c07572a14ecd9796a4749abb93d426c1ae8de4 100644 (file)
@@ -80,7 +80,7 @@ public class parameterDefaulter
     if (atts == null)
       {
         htmlAttributeSet set = new htmlAttributeSet();
-        Element e = (Element) dtd.elementHash.get(element.toLowerCase());
+        Element e = dtd.elementHash.get(element.toLowerCase());
 
         if (e != null)
           {
index 6fd79e2589e6fe7b6a8451439a5e412d4ed1dc74..0cb6d7a59f3338593998d7f39a9de45fa6ba816a 100644 (file)
@@ -109,7 +109,7 @@ public class textPreProcessor
    * \r or \r\n mutate into \n. Tabs are
    * preserved.
    * The content of the passed buffer is destroyed.
-   * @param text
+   * @param a_text
    * @return
    */
   public char[] preprocessPreformatted(StringBuffer a_text)
index 37466ca1c0585ad7ebf843e1231f8df429b60fda..c0fd8027c21737b07f3173eba1fad950ecc429ef 100644 (file)
@@ -542,7 +542,7 @@ final class XmlParser
   private void error(String message, char textFound, String textExpected)
     throws SAXException
   {
-    error(message, new Character(textFound).toString(), textExpected);
+    error(message, Character.toString(textFound), textExpected);
   }
 
   /**
@@ -2281,7 +2281,7 @@ loop2:
       {
         // too big for surrogate
         error("character reference " + value + " is too large for UTF-16",
-              new Integer(value).toString(), null);
+              Integer.toString(value), null);
       }
     
   }
@@ -2375,7 +2375,7 @@ loop2:
       {
         // too big for surrogate
         error("character reference " + value + " is too large for UTF-16",
-              new Integer(value).toString(), null);
+              Integer.toString(value), null);
       }
     if (doFlush)
       {
@@ -3095,7 +3095,6 @@ loop:
     nameBufferPos = 0;
 
     // Read the first character.
-loop:
     while (true)
       {
         c = readCh();
@@ -3295,7 +3294,7 @@ loop:
     catch (EOFException e)
       {
         error("end of input while looking for delimiter (started on line "
-              + startLine + ')', null, new Character(delim).toString());
+              + startLine + ')', null, Character.toString(delim));
       }
     inLiteral = false;
     expandPE = saved;
@@ -3599,7 +3598,7 @@ loop:
     
     if (c != delim)
       {
-        error("required character", c, new Character(delim).toString());
+        error("required character", c, Character.toString(delim));
       }
   }
   
@@ -4299,7 +4298,7 @@ loop:
       }
     else
       {
-        pushString(null, new Character(c).toString());
+        pushString(null, Character.toString(c));
       }
   }
 
index 5aff5f8c1a952897f0ba07a080bb72b6fd6cf7ca..3bca44c09925fb26188f96348c2f6346850ec1d9 100644 (file)
@@ -37,7 +37,6 @@ exception statement from your version. */
 
 package gnu.xml.dom.html2;
 
-import org.w3c.dom.Node;
 import org.w3c.dom.html2.HTMLButtonElement;
 import org.w3c.dom.html2.HTMLFormElement;
 
index 577337a3c3a4ec93551ad5add0b0214b68b85cf0..c63620087e3eeb5649850f10d20662a033ca1de0 100644 (file)
@@ -38,7 +38,6 @@ exception statement from your version. */
 package gnu.xml.dom.html2;
 
 import gnu.xml.dom.DomDOMException;
-import gnu.xml.dom.DomElement;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.LinkedList;
index 2d329fd4cdb9dc83425b75fa59925e06d677ee52..c6d8c4c5ca6515b46abc5703da181a68ca218ccb 100644 (file)
@@ -38,8 +38,6 @@ exception statement from your version. */
 
 package gnu.xml.dom.html2;
 
-import gnu.javax.swing.text.html.parser.support.Parser;
-
 import java.io.IOException;
 import java.io.Reader;
 
index b384e4ac87bd35f8be5e7e4aa5571ba1ef486381..d0e1a4f20deadfd881cabd0b9160f436e34ecce9 100644 (file)
@@ -101,7 +101,7 @@ implements XPathResult
       case STRING_TYPE:
         return getStringValue ();
       case NUMBER_TYPE:
-        return new Double (getNumberValue ()).toString ();
+        return Double.toString (getNumberValue ());
       case BOOLEAN_TYPE:
         return Boolean.valueOf (getBooleanValue ()).toString ();
       case UNORDERED_NODE_SNAPSHOT_TYPE:
index da527b96587debea588ca9c4c8e91b4af713c739..53f7f24a29f36d629340bb57f6a061cb4f7dfd2a 100644 (file)
@@ -743,7 +743,7 @@ public class DomConsumer implements EventConsumer
            // ELSE ... search up the tree we've been building
            for (Node n = top;
                    n != null && n.getNodeType () != Node.DOCUMENT_NODE;
-                   n = (Node) n.getParentNode ()) {
+                   n = n.getParentNode ()) {
                if (n.getNodeType () == Node.ENTITY_REFERENCE_NODE)
                    continue;
                Element e = (Element) n;
index a14fb340f1278634f875467806ffd75d96ca4927..af2113f97ceba0c8936fd606a7e4cacf1b2fd925 100644 (file)
@@ -187,14 +187,14 @@ public class EventFilter
         Method m = null;
 
         try {
-            m = Thread.class.getMethod("getContextClassLoader", null);
+            m = Thread.class.getMethod("getContextClassLoader");
         } catch (NoSuchMethodException e) {
             // Assume that we are running JDK 1.1, use the current ClassLoader
             return EventFilter.class.getClassLoader();
         }
 
         try {
-            return (ClassLoader) m.invoke(Thread.currentThread(), null);
+            return (ClassLoader) m.invoke(Thread.currentThread());
         } catch (IllegalAccessException e) {
             // assert(false)
             throw new UnknownError(e.getMessage());
index 501575e56d81d14a089c14b9e8ace07734c2275d..f74aebd3526020052c83cbeaaebb183310951cdf 100644 (file)
@@ -56,11 +56,11 @@ public class AttributeImpl
 
   protected final QName name;
   protected final String value;
-  protected final QName type;
+  protected final String type;
   protected final boolean specified;
 
   protected AttributeImpl(Location location,
-                          QName name, String value, QName type,
+                          QName name, String value, String type,
                           boolean specified)
   {
     super(location);
@@ -85,7 +85,7 @@ public class AttributeImpl
     return value;
   }
 
-  public QName getDTDType()
+  public String getDTDType()
   {
     return type;
   }
index 7a5e2049e10b5a5ebfe3960c2dd92f985c8fd33f..0e3ed9630ad317c7ab2df10b442118e2f7de3d35 100644 (file)
@@ -37,7 +37,6 @@ exception statement from your version. */
 
 package gnu.xml.stream;
 
-import java.io.IOException;
 import java.io.Writer;
 import javax.xml.stream.Location;
 import javax.xml.stream.XMLStreamException;
index af4a6af421712a38ddd01be87db682ed41184810..ab1f86e49ed5eb35cdc37982ff0bd2d9d9bec511 100644 (file)
@@ -66,7 +66,6 @@ import org.xml.sax.SAXParseException;
 import org.xml.sax.XMLReader;
 import org.xml.sax.ext.Attributes2;
 import org.xml.sax.ext.DeclHandler;
-import org.xml.sax.ext.EntityResolver2;
 import org.xml.sax.ext.LexicalHandler;
 import org.xml.sax.ext.Locator2;
 
@@ -234,7 +233,7 @@ public class SAXParser
       return baseAware ? Boolean.TRUE : Boolean.FALSE;
     if ((GNU_PROPERTIES + "document-xml-encoding").equals(name))
       return xmlEncoding;
-    throw new SAXNotSupportedException(name);
+    throw new SAXNotRecognizedException(name);
   }
 
   public boolean isXIncludeAware()
index 86961faea9157c90349cd901d0a6dace69c896ff..d5c4af12c5e80c64a3da88910b0f9a5ac16052e6 100644 (file)
@@ -51,7 +51,6 @@ import javax.xml.namespace.QName;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
@@ -500,7 +499,7 @@ class XIncludeFilter
             return event;
           case XPathResult.NUMBER_TYPE:
             double nval = result.getNumberValue();
-            String ntext = new Double(nval).toString();
+            String ntext = Double.toString(nval);
             buf = ntext.toCharArray();
             len = buf.length;
             result = null;
index 666bffabe230a29082156ca8bd376e4acd4c8a2a..fb1e4c28c5839a4f7b3e92cb553b9f5bc4f04c9a 100644 (file)
@@ -165,7 +165,7 @@ public class XMLEventAllocatorImpl
           attributes.add(new AttributeImpl(location,
                                            reader.getAttributeName(i),
                                            reader.getAttributeValue(i),
-                                           QName.valueOf(reader.getAttributeType(i)),
+                                           reader.getAttributeType(i),
                                            reader.isAttributeSpecified(i)));
         return new StartElementImpl(location,
                                     reader.getName(),
index e1d7d6ab82f5729d47abe3883f94495d736cb682..f694753c4b444d5745ad9bfefec261f41a81c987 100644 (file)
@@ -79,20 +79,20 @@ public class XMLEventFactoryImpl
   {
     return new AttributeImpl(location,
                              new QName(namespaceURI, localName, prefix),
-                             value, QName.valueOf("CDATA"), true);
+                             value, "CDATA", true);
   }
   
   public Attribute createAttribute(String localName, String value)
   {
     return new AttributeImpl(location,
                              new QName(localName),
-                             value, QName.valueOf("CDATA"), true);
+                             value, "CDATA", true);
   }
 
   public Attribute createAttribute(QName name, String value)
   {
     return new AttributeImpl(location, name, value,
-                             QName.valueOf("CDATA"), true);
+                             "CDATA", true);
   }
 
   public Namespace createNamespace(String namespaceURI)
index 9f57d89d828e4c907fbf1795023894b6497d17f1..de2fccb7a1e5e6fae796b95f224ab7ccea25a432 100644 (file)
@@ -40,7 +40,6 @@ package gnu.xml.stream;
 import java.io.Writer;
 import javax.xml.namespace.QName;
 import javax.xml.stream.Location;
-import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.events.Characters;
 import javax.xml.stream.events.EndElement;
index c1eee946e6977cc20946e827837d03743efc7bd1..049575ac7071dc5ed43731ba29b8307d8caee524 100644 (file)
@@ -177,11 +177,6 @@ public class XMLParser
    */
   private int event;
 
-  /**
-   * Whether we are looking ahead. Used by hasNext.
-   */
-  private boolean lookahead;
-
   /**
    * The element name stack. The first element in this stack will be the
    * root element.
@@ -1013,24 +1008,12 @@ public class XMLParser
   public boolean hasNext()
     throws XMLStreamException
   {
-    if (event == XMLStreamConstants.END_DOCUMENT)
-      return false;
-    if (!lookahead)
-      {
-        next();
-        lookahead = true;
-      }
-    return event != -1;
+    return (event != XMLStreamConstants.END_DOCUMENT && event != -1);
   }
   
   public int next()
     throws XMLStreamException
   {
-    if (lookahead)
-      {
-        lookahead = false;
-        return event;
-      }
     if (event == XMLStreamConstants.END_ELEMENT)
       {
         // Pop namespace context
index 26bdda8b3254e7308172657932f5963f59ba4075..35323e7353d158a4618127a8d238d45fe2cfc199 100644 (file)
@@ -40,7 +40,6 @@ package gnu.xml.transform;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
 import java.nio.ByteBuffer;
 import java.nio.CharBuffer;
 import java.nio.charset.Charset;
index 73b229691140cb84f48c1e78a107199ef787b59c..41562c3c60a61d755c11cd7bc6a35eb049439af8 100644 (file)
@@ -51,7 +51,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.StringTokenizer;
-import java.util.TreeSet;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.NamespaceContext;
 import javax.xml.namespace.QName;
index e84b5ade10691d4c4c6dce1d725e9845386faf0d..02c4693ae2f0c86242d42fd11de3ab90d1b2a310 100644 (file)
@@ -170,7 +170,7 @@ public class Resolver implements EntityResolver, Cloneable
      * Constructs a resolver which understands how to map PUBLIC identifiers
      * to other URIs, typically for local copies of standard DTD components.
      * 
-     * @param dictionary maps PUBLIC identifiers to URIs.  This is not
+     * @param dict maps PUBLIC identifiers to URIs.  This is not
      * copied; subsequent modifications will be reported through the
      * resolution operations.
      */
index 5a72a280d7bb86ca2d41a0b319fbf4d77e8a87f1..2fc4c33b91e234558de773d294844be87bec8588 100644 (file)
@@ -37,8 +37,6 @@ exception statement from your version. */
 
 package gnu.xml.validation.datatype;
 
-import java.util.Collections;
-import java.util.Set;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 import org.relaxng.datatype.DatatypeException;
index 5a2d9ecfa2d2c155ae6016b1d16176278b644a91..25e488a05fd3339e24dd7521a9fcef9ba866e96a 100644 (file)
@@ -38,7 +38,6 @@ exception statement from your version. */
 package gnu.xml.validation.datatype;
 
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.Set;
 import java.util.TreeSet;
 import javax.xml.XMLConstants;
index 08fe3304c5fa46bfcdd1a681b049cef4b484ef56..b895c44b2132d25d8d4a2e3e41ede7684b7ab98b 100644 (file)
@@ -38,8 +38,6 @@ exception statement from your version. */
 package gnu.xml.validation.datatype;
 
 import java.math.BigDecimal;
-import java.util.Collections;
-import java.util.Set;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 import org.relaxng.datatype.DatatypeException;
index e25d060fa5fbfb4eb05aa88d8284dd3233c90c81..5d2d8662d56f7f8f982b69debd95f1f09c9f7601 100644 (file)
@@ -38,7 +38,6 @@ exception statement from your version. */
 package gnu.xml.validation.datatype;
 
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.Set;
 import java.util.TreeSet;
 import javax.xml.XMLConstants;
index a81a56c1a68300a88a388486695a2a04ff494d8e..372e38871ae14c2406e19c556dd2d02929632623 100644 (file)
@@ -38,7 +38,6 @@ exception statement from your version. */
 package gnu.xml.validation.datatype;
 
 import java.util.Arrays;
-import java.util.Collections;
 import java.util.Set;
 import java.util.TreeSet;
 import javax.xml.XMLConstants;
index 686e09d9801b463e37b33552caf16f59b389eca5..8a92b15f634fbadf265eeeedfe9db93103805fe6 100644 (file)
@@ -37,8 +37,6 @@ exception statement from your version. */
 
 package gnu.xml.validation.datatype;
 
-import java.util.Collections;
-import java.util.Set;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 import org.relaxng.datatype.DatatypeException;
index 59c7f25e538b42807c74cd00aedf55ca148e4fc2..e9d7c9fda200ac63c506a134c085e001a3353bb6 100644 (file)
@@ -37,8 +37,6 @@ exception statement from your version. */
 
 package gnu.xml.validation.datatype;
 
-import java.util.Collections;
-import java.util.Set;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 import org.relaxng.datatype.DatatypeException;
index 6554f2fe06698e8a595786543af8381008f0076d..1b8479922b875b2a701768cfea71d96ab9c5823a 100644 (file)
@@ -40,7 +40,6 @@ package gnu.xml.validation.datatype;
 import java.util.Iterator;
 import java.util.Set;
 import java.util.regex.Matcher;
-import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 import org.relaxng.datatype.Datatype;
 import org.relaxng.datatype.DatatypeException;
index a2235f2df663589a4973bf3b2d3ebb3488dff13c..593c265dc59e4dfb98e074465e8de2473f10f225 100644 (file)
@@ -37,12 +37,8 @@ exception statement from your version. */
 
 package gnu.xml.validation.datatype;
 
-import java.util.Collections;
-import java.util.Set;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
-import org.relaxng.datatype.DatatypeException;
-import org.relaxng.datatype.ValidationContext;
 
 /**
  * The XML Schema string type.
index e0662761f37dfae53048df8a718272a71a8415f6..be6f0a0b44774207ebacf600765fc99cab62dc86 100644 (file)
@@ -37,8 +37,6 @@ exception statement from your version. */
 
 package gnu.xml.validation.datatype;
 
-import java.util.HashMap;
-import java.util.Map;
 import javax.xml.namespace.QName;
 /**
  * Abstract base class for XML Schema datatypes.
index 606fd0e62fb0a87b4c6aaca476aee1616d435a4f..054eb8a55de3168dd506efab71b1acdd3862f953 100644 (file)
@@ -39,7 +39,6 @@ package gnu.xml.validation.datatype;
 
 import java.util.LinkedHashSet;
 import java.util.regex.Pattern;
-import javax.xml.namespace.QName;
 import org.relaxng.datatype.Datatype;
 import org.relaxng.datatype.DatatypeBuilder;
 import org.relaxng.datatype.DatatypeException;
index 2a6833737bbf42de97a88a61a1f38fda9549522c..78e9f85332725d27b859c9e854a0398a64960a67 100644 (file)
@@ -51,7 +51,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import javax.xml.XMLConstants;
-import javax.xml.namespace.QName;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
index 758bc94cd9595fabc02aec150b121b40aa15ec96..45064075a96f0db9bb2a74728c37df280d7b01b7 100644 (file)
@@ -37,7 +37,6 @@ exception statement from your version. */
 
 package gnu.xml.validation.xmlschema;
 
-import org.w3c.dom.TypeInfo;
 import gnu.xml.validation.datatype.SimpleType;
 
 /**
index ddf91409d2b229ee1e47d162356d41c29dff47ad..ecf3ad3b89f6d51076b35f1412257138f048839b 100644 (file)
@@ -38,7 +38,6 @@ exception statement from your version. */
 package gnu.xml.validation.xmlschema;
 
 import java.util.LinkedHashSet;
-import java.util.List;
 import java.util.Set;
 import java.util.StringTokenizer;
 import javax.xml.XMLConstants;
@@ -49,11 +48,8 @@ import org.relaxng.datatype.helpers.DatatypeLibraryLoader;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 import gnu.xml.validation.datatype.Annotation;
-import gnu.xml.validation.datatype.AtomicSimpleType;
-import gnu.xml.validation.datatype.ListSimpleType;
 import gnu.xml.validation.datatype.SimpleType;
 import gnu.xml.validation.datatype.Type;
-import gnu.xml.validation.datatype.UnionSimpleType;
 
 /**
  * Parses an XML Schema DOM tree, constructing a compiled internal
index 98a5fb759835e3bccdc4099d0e12d3ff692e8306..a65133c20e4d687eece2a709c124afee38a09ad8 100644 (file)
@@ -37,7 +37,6 @@ exception statement from your version. */
 
 package gnu.xml.validation.xmlschema;
 
-import org.w3c.dom.TypeInfo;
 import gnu.xml.validation.datatype.SimpleType;
 import gnu.xml.validation.datatype.Type;
 
index 03066fbfc3620593a42bcbf56d3a47305b53d82a..9b7540a4a403ebf938e2290e1e96851ddcbf0d72 100644 (file)
@@ -44,7 +44,6 @@ package gnu.xml.xpath;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
-import java.util.Map;
 import javax.xml.namespace.NamespaceContext;
 import javax.xml.namespace.QName;
 import javax.xml.xpath.XPathFunctionResolver;
index 8f53940490a93c9aa2aa8ad2139cfe8575e3868f..4920ca08c483e5af3fb9c4ea499a7aa69001cdaf 100644 (file)
 ## GCJ LOCAL: headers are installed specially.
 ##include_HEADERS = jni.h jni_md.h jawt.h jawt_md.h
 
+if CREATE_JNI_HEADERS
+DISTCLEANFILES = jni_md.h config-int.h $(H_FILES)
+else
 DISTCLEANFILES = jni_md.h config-int.h
+endif
 
 ARG_JNI_JAVAH = -jni
 ARG_CLASSPATH_JAVAH = -bootclasspath
-JAVAH = $(USER_JAVAH) $(ARG_JNI_JAVAH) $(ARG_CLASSPATH_JAVAH) ../lib:$(USER_CLASSLIB)
+JAVAH = $(USER_JAVAH) $(ARG_JNI_JAVAH) $(ARG_CLASSPATH_JAVAH) ../lib:$(PATH_TO_GLIBJ_ZIP)
 CLASSDIR = lib
 
 SOUND_H_FILES = \
-$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h \
-$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h \
-$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h \
-$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h \
-$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h
+gnu_javax_sound_midi_alsa_AlsaPortDevice.h \
+gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h \
+gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h \
+gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h \
+gnu_javax_sound_midi_dssi_DSSISynthesizer.h
 
 GST_PEER_H_FILES = \
-$(top_srcdir)/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h
+gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h \
+gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h \
+gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h \
+gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h
 
 XMLJ_H_FILES = \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocument.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNodeList.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNotation.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathResult.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeElement.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeEntity.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNode.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeAttr.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeLocator.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeXMLReader.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformer.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h
+gnu_xml_libxmlj_dom_GnomeDocument.h \
+gnu_xml_libxmlj_dom_GnomeXPathNodeList.h \
+gnu_xml_libxmlj_dom_GnomeDocumentType.h \
+gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h \
+gnu_xml_libxmlj_dom_GnomeTypeInfo.h \
+gnu_xml_libxmlj_dom_GnomeNodeList.h \
+gnu_xml_libxmlj_dom_GnomeNotation.h \
+gnu_xml_libxmlj_dom_GnomeXPathResult.h \
+gnu_xml_libxmlj_dom_GnomeElement.h \
+gnu_xml_libxmlj_dom_GnomeEntity.h \
+gnu_xml_libxmlj_dom_GnomeNode.h \
+gnu_xml_libxmlj_dom_GnomeXPathExpression.h \
+gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h \
+gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h \
+gnu_xml_libxmlj_dom_GnomeAttr.h \
+gnu_xml_libxmlj_sax_GnomeLocator.h \
+gnu_xml_libxmlj_sax_GnomeXMLReader.h \
+gnu_xml_libxmlj_transform_GnomeTransformer.h \
+gnu_xml_libxmlj_transform_GnomeTransformerFactory.h
 
 GTKPEER_H_FILES = \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoSurface.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphics.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkFontPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkRobotPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkClipboard.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFramePeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkImage.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkListPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkSelection.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkToolkit.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h \
-$(top_srcdir)/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h
+gnu_java_awt_peer_gtk_CairoSurface.h \
+gnu_java_awt_peer_gtk_CairoGraphics2D.h \
+gnu_java_awt_peer_gtk_ComponentGraphics.h \
+gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h \
+gnu_java_awt_peer_gtk_FreetypeGlyphVector.h \
+gnu_java_awt_peer_gtk_GdkFontPeer.h \
+gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h \
+gnu_java_awt_peer_gtk_GdkPixbufDecoder.h \
+gnu_java_awt_peer_gtk_GdkRobotPeer.h \
+gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h \
+gnu_java_awt_peer_gtk_GtkButtonPeer.h \
+gnu_java_awt_peer_gtk_GtkCanvasPeer.h \
+gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h \
+gnu_java_awt_peer_gtk_GtkCheckboxPeer.h \
+gnu_java_awt_peer_gtk_GtkChoicePeer.h \
+gnu_java_awt_peer_gtk_GtkClipboard.h \
+gnu_java_awt_peer_gtk_GtkComponentPeer.h \
+gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h \
+gnu_java_awt_peer_gtk_GtkFileDialogPeer.h \
+gnu_java_awt_peer_gtk_GtkFramePeer.h \
+gnu_java_awt_peer_gtk_GtkGenericPeer.h \
+gnu_java_awt_peer_gtk_GtkImage.h \
+gnu_java_awt_peer_gtk_GtkLabelPeer.h \
+gnu_java_awt_peer_gtk_GtkListPeer.h \
+gnu_java_awt_peer_gtk_GtkMenuBarPeer.h \
+gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h \
+gnu_java_awt_peer_gtk_GtkMenuItemPeer.h \
+gnu_java_awt_peer_gtk_GtkMenuPeer.h \
+gnu_java_awt_peer_gtk_GtkPanelPeer.h \
+gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h \
+gnu_java_awt_peer_gtk_GtkScrollPanePeer.h \
+gnu_java_awt_peer_gtk_GtkScrollbarPeer.h \
+gnu_java_awt_peer_gtk_GtkSelection.h \
+gnu_java_awt_peer_gtk_GtkTextAreaPeer.h \
+gnu_java_awt_peer_gtk_GtkTextFieldPeer.h \
+gnu_java_awt_peer_gtk_GtkToolkit.h \
+gnu_java_awt_peer_gtk_GtkWindowPeer.h \
+gnu_java_awt_peer_gtk_GtkVolatileImage.h \
+gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h
 
 QTPEER_H_FILES = \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtToolkit.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtAudioClip.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScreenDevice.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuItemPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtButtonPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtWindowPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtDialogPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtImage.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuBarPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtVolatileImage.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtChoicePeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtGraphics.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtComponentPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QPen.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPanelPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QPainterPath.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontMetrics.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QMatrix.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtLabelPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFramePeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtListPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCanvasPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_MainQtThread.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h 
+gnu_java_awt_peer_qt_QtCheckboxPeer.h \
+gnu_java_awt_peer_qt_QtToolkit.h \
+gnu_java_awt_peer_qt_QtAudioClip.h \
+gnu_java_awt_peer_qt_QtScreenDevice.h \
+gnu_java_awt_peer_qt_QtTextFieldPeer.h \
+gnu_java_awt_peer_qt_QtMenuItemPeer.h \
+gnu_java_awt_peer_qt_QtButtonPeer.h \
+gnu_java_awt_peer_qt_QtWindowPeer.h \
+gnu_java_awt_peer_qt_QtDialogPeer.h \
+gnu_java_awt_peer_qt_QtImage.h \
+gnu_java_awt_peer_qt_QtMenuBarPeer.h \
+gnu_java_awt_peer_qt_QtVolatileImage.h \
+gnu_java_awt_peer_qt_QtFontPeer.h \
+gnu_java_awt_peer_qt_QtChoicePeer.h \
+gnu_java_awt_peer_qt_QtGraphics.h \
+gnu_java_awt_peer_qt_QtComponentPeer.h \
+gnu_java_awt_peer_qt_QtMenuPeer.h \
+gnu_java_awt_peer_qt_QtTextAreaPeer.h \
+gnu_java_awt_peer_qt_QPen.h \
+gnu_java_awt_peer_qt_QtPanelPeer.h \
+gnu_java_awt_peer_qt_QPainterPath.h \
+gnu_java_awt_peer_qt_QtFontMetrics.h \
+gnu_java_awt_peer_qt_QtScrollPanePeer.h \
+gnu_java_awt_peer_qt_QMatrix.h \
+gnu_java_awt_peer_qt_QtLabelPeer.h \
+gnu_java_awt_peer_qt_QtPopupMenuPeer.h \
+gnu_java_awt_peer_qt_QtFramePeer.h \
+gnu_java_awt_peer_qt_QtListPeer.h \
+gnu_java_awt_peer_qt_QtScrollbarPeer.h \
+gnu_java_awt_peer_qt_QtCanvasPeer.h \
+gnu_java_awt_peer_qt_QtMenuComponentPeer.h \
+gnu_java_awt_peer_qt_MainQtThread.h \
+gnu_java_awt_peer_qt_QtFileDialogPeer.h \
+gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h 
 
 GCONF_PREFS_FILES = \
-$(top_srcdir)/include/gnu_java_util_prefs_gconf_GConfNativePeer.h
+gnu_java_util_prefs_gconf_GConfNativePeer.h
 
 H_FILES = \
 $(SOUND_H_FILES) \
@@ -126,291 +133,299 @@ $(XMLJ_H_FILES) \
 $(GTKPEER_H_FILES) \
 $(QTPEER_H_FILES) \
 $(GCONF_PREFS_FILES) \
-$(top_srcdir)/include/gnu_java_net_VMPlainSocketImpl.h \
-$(top_srcdir)/include/gnu_java_net_local_LocalSocketImpl.h \
-$(top_srcdir)/include/gnu_java_nio_EpollSelectorImpl.h \
-$(top_srcdir)/include/gnu_java_nio_FileChannelImpl.h \
-$(top_srcdir)/include/gnu_java_nio_KqueueSelectorImpl.h \
-$(top_srcdir)/include/gnu_java_nio_VMChannel.h \
-$(top_srcdir)/include/gnu_java_nio_VMPipe.h \
-$(top_srcdir)/include/gnu_java_nio_VMSelector.h \
-$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvEncoder.h \
-$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvDecoder.h \
-$(top_srcdir)/include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h \
-$(top_srcdir)/include/java_io_VMFile.h \
-$(top_srcdir)/include/java_io_VMObjectInputStream.h \
-$(top_srcdir)/include/java_io_VMObjectStreamClass.h \
-$(top_srcdir)/include/java_lang_VMDouble.h \
-$(top_srcdir)/include/java_lang_VMFloat.h \
-$(top_srcdir)/include/java_lang_VMMath.h \
-$(top_srcdir)/include/java_lang_VMProcess.h \
-$(top_srcdir)/include/java_lang_VMSystem.h \
-$(top_srcdir)/include/java_lang_reflect_VMArray.h \
-$(top_srcdir)/include/java_net_VMInetAddress.h \
-$(top_srcdir)/include/java_net_VMNetworkInterface.h \
-$(top_srcdir)/include/java_net_VMURLConnection.h \
-$(top_srcdir)/include/java_nio_VMDirectByteBuffer.h \
-$(top_srcdir)/include/java_nio_MappedByteBufferImpl.h \
-$(top_srcdir)/include/java_util_VMTimeZone.h
+gnu_java_net_VMPlainSocketImpl.h \
+gnu_java_net_local_LocalSocketImpl.h \
+gnu_java_nio_EpollSelectorImpl.h \
+gnu_java_nio_FileChannelImpl.h \
+gnu_java_nio_KqueueSelectorImpl.h \
+gnu_java_nio_VMChannel.h \
+gnu_java_nio_VMPipe.h \
+gnu_java_nio_VMSelector.h \
+gnu_java_nio_charset_iconv_IconvEncoder.h \
+gnu_java_nio_charset_iconv_IconvDecoder.h \
+gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h \
+java_io_VMFile.h \
+java_io_VMObjectInputStream.h \
+java_io_VMObjectStreamClass.h \
+java_lang_VMDouble.h \
+java_lang_VMFloat.h \
+java_lang_VMMath.h \
+java_lang_VMProcess.h \
+java_lang_VMSystem.h \
+java_lang_reflect_VMArray.h \
+java_net_VMInetAddress.h \
+java_net_VMNetworkInterface.h \
+java_net_VMURLConnection.h \
+java_nio_VMDirectByteBuffer.h \
+java_nio_MappedByteBufferImpl.h \
+java_util_VMTimeZone.h
 
 if CREATE_JNI_HEADERS
 
+EXTRA_DIST=$(H_FILES)
+
 all-local: $(H_FILES)
 
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocument.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocument.java
+gnu_xml_libxmlj_dom_GnomeDocument.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocument.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocument
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathNodeList.java
+gnu_xml_libxmlj_dom_GnomeXPathNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathNodeList.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathNodeList
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentType.java
+gnu_xml_libxmlj_dom_GnomeDocumentType.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentType.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocumentType
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java
+gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeProcessingInstruction
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeTypeInfo.java
+gnu_xml_libxmlj_dom_GnomeTypeInfo.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeTypeInfo.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeTypeInfo
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNodeList.java
+gnu_xml_libxmlj_dom_GnomeNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNodeList.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNodeList
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNotation.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNotation.java
+gnu_xml_libxmlj_dom_GnomeNotation.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNotation.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNotation
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathResult.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathResult.java
+gnu_xml_libxmlj_dom_GnomeXPathResult.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathResult.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathResult
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeElement.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeElement.java
+gnu_xml_libxmlj_dom_GnomeElement.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeElement.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeElement
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeEntity.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeEntity.java
+gnu_xml_libxmlj_dom_GnomeEntity.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeEntity.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeEntity
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNode.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNode.java
+gnu_xml_libxmlj_dom_GnomeNode.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNode.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNode
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathExpression.java
+gnu_xml_libxmlj_dom_GnomeXPathExpression.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathExpression.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathExpression
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.java
+gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNamedNodeMap
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java
+gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocumentBuilder
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeAttr.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeAttr.java
+gnu_xml_libxmlj_dom_GnomeAttr.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeAttr.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeAttr
-$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeLocator.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeLocator.java
+gnu_xml_libxmlj_sax_GnomeLocator.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeLocator.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.sax.GnomeLocator
-$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeXMLReader.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeXMLReader.java
+gnu_xml_libxmlj_sax_GnomeXMLReader.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeXMLReader.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.sax.GnomeXMLReader
-$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformer.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformer.java
+gnu_xml_libxmlj_transform_GnomeTransformer.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformer.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.transform.GnomeTransformer
-$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformerFactory.java
+gnu_xml_libxmlj_transform_GnomeTransformerFactory.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformerFactory.java
        $(JAVAH) -o $@ gnu.xml.libxmlj.transform.GnomeTransformerFactory
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoSurface.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoSurface.java
+gnu_java_awt_peer_gtk_CairoSurface.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoSurface.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.CairoSurface
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoGraphics2D.java
+gnu_java_awt_peer_gtk_CairoGraphics2D.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoGraphics2D.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.CairoGraphics2D
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphics.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphics.java
+gnu_java_awt_peer_gtk_ComponentGraphics.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphics.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.ComponentGraphics
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java
+gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.ComponentGraphicsCopy
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: $(top_srcdir)/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
+gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: $(top_srcdir)/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.FreetypeGlyphVector
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkFontPeer.java
+gnu_java_awt_peer_gtk_GdkFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkFontPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkFontPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
+gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkGraphicsEnvironment
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
+gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkPixbufDecoder
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkRobotPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkRobotPeer.java
+gnu_java_awt_peer_gtk_GdkRobotPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkRobotPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkRobotPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java
+gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkScreenGraphicsDevice
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkButtonPeer.java
+gnu_java_awt_peer_gtk_GtkButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkButtonPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkButtonPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCanvasPeer.java
+gnu_java_awt_peer_gtk_GtkCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCanvasPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCanvasPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java
+gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCheckboxMenuItemPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
+gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCheckboxPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkChoicePeer.java
+gnu_java_awt_peer_gtk_GtkChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkChoicePeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkChoicePeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkClipboard.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkClipboard.java
+gnu_java_awt_peer_gtk_GtkClipboard.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkClipboard.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkClipboard
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkComponentPeer.java
+gnu_java_awt_peer_gtk_GtkComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkComponentPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkComponentPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java
+gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkEmbeddedWindowPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
+gnu_java_awt_peer_gtk_GtkFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkFileDialogPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFramePeer.java
+gnu_java_awt_peer_gtk_GtkFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFramePeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkFramePeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkGenericPeer.java
+gnu_java_awt_peer_gtk_GtkGenericPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkGenericPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkGenericPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkImage.java
+gnu_java_awt_peer_gtk_GtkImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkImage.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkImage
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkLabelPeer.java
+gnu_java_awt_peer_gtk_GtkLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkLabelPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkLabelPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkListPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkListPeer.java
+gnu_java_awt_peer_gtk_GtkListPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkListPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkListPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java
+gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuBarPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
+gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuComponentPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
+gnu_java_awt_peer_gtk_GtkMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuItemPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuPeer.java
+gnu_java_awt_peer_gtk_GtkMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPanelPeer.java
+gnu_java_awt_peer_gtk_GtkPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPanelPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkPanelPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java
+gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkPopupMenuPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollPanePeer.java
+gnu_java_awt_peer_gtk_GtkScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollPanePeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkScrollPanePeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java
+gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkScrollbarPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkSelection.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkSelection.java
+gnu_java_awt_peer_gtk_GtkSelection.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkSelection.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkSelection
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextAreaPeer.java
+gnu_java_awt_peer_gtk_GtkTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextAreaPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkTextAreaPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java
+gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkTextFieldPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkToolkit.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkToolkit.java
+gnu_java_awt_peer_gtk_GtkToolkit.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkToolkit.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkToolkit
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkWindowPeer.java
+gnu_java_awt_peer_gtk_GtkWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkWindowPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkWindowPeer
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkVolatileImage.java
+gnu_java_awt_peer_gtk_GtkVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkVolatileImage.java
        $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkVolatileImage
-$(top_srcdir)/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h: $(top_srcdir)/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java
+gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h: $(top_srcdir)/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java
        $(JAVAH) -o $@ gnu.java.awt.dnd.peer.gtk.GtkDragSourceContextPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCheckboxPeer.java
+gnu_java_awt_peer_qt_QtCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCheckboxPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtCheckboxPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtToolkit.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtToolkit.java
+gnu_java_awt_peer_qt_QtToolkit.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtToolkit.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtToolkit
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtAudioClip.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtAudioClip.java
+gnu_java_awt_peer_qt_QtAudioClip.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtAudioClip.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtAudioClip
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScreenDevice.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScreenDevice.java
+gnu_java_awt_peer_qt_QtScreenDevice.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScreenDevice.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScreenDevice
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextFieldPeer.java
+gnu_java_awt_peer_qt_QtTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextFieldPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtTextFieldPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuItemPeer.java
+gnu_java_awt_peer_qt_QtMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuItemPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuItemPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtButtonPeer.java
+gnu_java_awt_peer_qt_QtButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtButtonPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtButtonPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtWindowPeer.java
+gnu_java_awt_peer_qt_QtWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtWindowPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtWindowPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtDialogPeer.java
+gnu_java_awt_peer_qt_QtDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtDialogPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtDialogPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtImage.java
+gnu_java_awt_peer_qt_QtImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtImage.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtImage
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuBarPeer.java
+gnu_java_awt_peer_qt_QtMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuBarPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuBarPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtVolatileImage.java
+gnu_java_awt_peer_qt_QtVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtVolatileImage.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtVolatileImage
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontPeer.java
+gnu_java_awt_peer_qt_QtFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFontPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtChoicePeer.java
+gnu_java_awt_peer_qt_QtChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtChoicePeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtChoicePeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtGraphics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtGraphics.java
+gnu_java_awt_peer_qt_QtGraphics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtGraphics.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtGraphics
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtComponentPeer.java
+gnu_java_awt_peer_qt_QtComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtComponentPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtComponentPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuPeer.java
+gnu_java_awt_peer_qt_QtMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextAreaPeer.java
+gnu_java_awt_peer_qt_QtTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextAreaPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtTextAreaPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QPen.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPen.java
+gnu_java_awt_peer_qt_QPen.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPen.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QPen
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPanelPeer.java
+gnu_java_awt_peer_qt_QtPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPanelPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtPanelPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QPainterPath.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPainterPath.java
+gnu_java_awt_peer_qt_QPainterPath.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPainterPath.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QPainterPath
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontMetrics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontMetrics.java
+gnu_java_awt_peer_qt_QtFontMetrics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontMetrics.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFontMetrics
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollPanePeer.java
+gnu_java_awt_peer_qt_QtScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollPanePeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScrollPanePeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QMatrix.h: $(top_srcdir)/gnu/java/awt/peer/qt/QMatrix.java
+gnu_java_awt_peer_qt_QMatrix.h: $(top_srcdir)/gnu/java/awt/peer/qt/QMatrix.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QMatrix
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtLabelPeer.java
+gnu_java_awt_peer_qt_QtLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtLabelPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtLabelPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPopupMenuPeer.java
+gnu_java_awt_peer_qt_QtPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPopupMenuPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtPopupMenuPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFramePeer.java
+gnu_java_awt_peer_qt_QtFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFramePeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFramePeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtListPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtListPeer.java
+gnu_java_awt_peer_qt_QtListPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtListPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtListPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollbarPeer.java
+gnu_java_awt_peer_qt_QtScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollbarPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScrollbarPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCanvasPeer.java
+gnu_java_awt_peer_qt_QtCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCanvasPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtCanvasPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuComponentPeer.java
+gnu_java_awt_peer_qt_QtMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuComponentPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuComponentPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_MainQtThread.h: $(top_srcdir)/gnu/java/awt/peer/qt/MainQtThread.java
+gnu_java_awt_peer_qt_MainQtThread.h: $(top_srcdir)/gnu/java/awt/peer/qt/MainQtThread.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.MainQtThread
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFileDialogPeer.java
+gnu_java_awt_peer_qt_QtFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFileDialogPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFileDialogPeer
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java
+gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java
        $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtEmbeddedWindowPeer
-$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaPortDevice.java
+gnu_javax_sound_midi_alsa_AlsaPortDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaPortDevice.java
        $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaPortDevice
-$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java
+gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java
        $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaMidiSequencerDevice
-$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java
+gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java
        $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaMidiDeviceProvider
-$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java
+gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java
        $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.DSSIMidiDeviceProvider
-$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSISynthesizer.java
+gnu_javax_sound_midi_dssi_DSSISynthesizer.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSISynthesizer.java
        $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.DSSISynthesizer
-$(top_srcdir)/include/gnu_java_util_prefs_gconf_GConfNativePeer.h: $(top_srcdir)/gnu/java/util/prefs/gconf/GConfNativePeer.java
+gnu_java_util_prefs_gconf_GConfNativePeer.h: $(top_srcdir)/gnu/java/util/prefs/gconf/GConfNativePeer.java
        $(JAVAH) -o $@ gnu.java.util.prefs.gconf.GConfNativePeer
-$(top_srcdir)/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java
+gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java
        $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.io.GstAudioFileReaderNativePeer
-$(top_srcdir)/include/gnu_java_net_VMPlainSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainSocketImpl.java
+gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java
+       $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.io.GstInputStream
+gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java
+       $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.lines.GstNativeDataLine
+gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java
+       $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.lines.GstPipeline
+gnu_java_net_VMPlainSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainSocketImpl.java
        $(JAVAH) -o $@ gnu.java.net.VMPlainSocketImpl
-$(top_srcdir)/include/gnu_java_net_local_LocalSocketImpl.h: $(top_srcdir)/gnu/java/net/local/LocalSocketImpl.java
+gnu_java_net_local_LocalSocketImpl.h: $(top_srcdir)/gnu/java/net/local/LocalSocketImpl.java
        $(JAVAH) -o $@ gnu.java.net.local.LocalSocketImpl
-$(top_srcdir)/include/gnu_java_nio_VMChannel.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMChannel.java
+gnu_java_nio_VMChannel.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMChannel.java
        $(JAVAH) -o $@ gnu.java.nio.VMChannel
-$(top_srcdir)/include/gnu_java_nio_VMPipe.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMPipe.java
+gnu_java_nio_VMPipe.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMPipe.java
        $(JAVAH) -o $@ gnu.java.nio.VMPipe
-$(top_srcdir)/include/gnu_java_nio_VMSelector.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMSelector.java
+gnu_java_nio_VMSelector.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMSelector.java
        $(JAVAH) -o $@ gnu.java.nio.VMSelector
-$(top_srcdir)/include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h: $(top_srcdir)/vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java
+gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h: $(top_srcdir)/vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java
        $(JAVAH) -o $@ gnu.java.lang.management.VMOperatingSystemMXBeanImpl
-$(top_srcdir)/include/java_io_VMFile.h: $(top_srcdir)/vm/reference/java/io/VMFile.java
+java_io_VMFile.h: $(top_srcdir)/vm/reference/java/io/VMFile.java
        $(JAVAH) -o $@ java.io.VMFile
-$(top_srcdir)/include/java_io_VMObjectInputStream.h: $(top_srcdir)/vm/reference/java/io/VMObjectInputStream.java
+java_io_VMObjectInputStream.h: $(top_srcdir)/vm/reference/java/io/VMObjectInputStream.java
        $(JAVAH) -o $@ java.io.VMObjectInputStream
-$(top_srcdir)/include/java_io_VMObjectStreamClass.h: $(top_srcdir)/vm/reference/java/io/VMObjectStreamClass.java
+java_io_VMObjectStreamClass.h: $(top_srcdir)/vm/reference/java/io/VMObjectStreamClass.java
        $(JAVAH) -o $@ java.io.VMObjectStreamClass
-$(top_srcdir)/include/java_lang_VMMath.h: $(top_srcdir)/vm/reference/java/lang/VMMath.java
+java_lang_VMMath.h: $(top_srcdir)/vm/reference/java/lang/VMMath.java
        $(JAVAH) -o $@ java.lang.VMMath
-$(top_srcdir)/include/java_lang_VMDouble.h: $(top_srcdir)/vm/reference/java/lang/VMDouble.java
+java_lang_VMDouble.h: $(top_srcdir)/vm/reference/java/lang/VMDouble.java
        $(JAVAH) -o $@ java.lang.VMDouble
-$(top_srcdir)/include/java_lang_VMFloat.h: $(top_srcdir)/vm/reference/java/lang/VMFloat.java
+java_lang_VMFloat.h: $(top_srcdir)/vm/reference/java/lang/VMFloat.java
        $(JAVAH) -o $@ java.lang.VMFloat
-$(top_srcdir)/include/java_lang_VMProcess.h: $(top_srcdir)/vm/reference/java/lang/VMProcess.java
+java_lang_VMProcess.h: $(top_srcdir)/vm/reference/java/lang/VMProcess.java
        $(JAVAH) -o $@ java.lang.VMProcess
-$(top_srcdir)/include/java_lang_VMSystem.h: $(top_srcdir)/vm/reference/java/lang/VMSystem.java
+java_lang_VMSystem.h: $(top_srcdir)/vm/reference/java/lang/VMSystem.java
        $(JAVAH) -o $@ java.lang.VMSystem
-$(top_srcdir)/include/java_lang_reflect_VMArray.h: $(top_srcdir)/vm/reference/java/lang/reflect/VMArray.java
+java_lang_reflect_VMArray.h: $(top_srcdir)/vm/reference/java/lang/reflect/VMArray.java
        $(JAVAH) -o $@ java.lang.reflect.VMArray
-$(top_srcdir)/include/java_net_VMInetAddress.h: $(top_srcdir)/vm/reference/java/net/VMInetAddress.java
+java_net_VMInetAddress.h: $(top_srcdir)/vm/reference/java/net/VMInetAddress.java
        $(JAVAH) -o $@ java.net.VMInetAddress
-$(top_srcdir)/include/java_net_VMNetworkInterface.h: $(top_srcdir)/vm/reference/java/net/VMNetworkInterface.java
+java_net_VMNetworkInterface.h: $(top_srcdir)/vm/reference/java/net/VMNetworkInterface.java
        $(JAVAH) -o $@ java.net.VMNetworkInterface
-$(top_srcdir)/include/java_net_VMURLConnection.h: $(top_srcdir)/vm/reference/java/net/VMURLConnection.java
+java_net_VMURLConnection.h: $(top_srcdir)/vm/reference/java/net/VMURLConnection.java
        $(JAVAH) -o $@ java.net.VMURLConnection
 
-$(top_srcdir)/include/java_nio_VMDirectByteBuffer.h: $(top_srcdir)/vm/reference/java/nio/VMDirectByteBuffer.java
+java_nio_VMDirectByteBuffer.h: $(top_srcdir)/vm/reference/java/nio/VMDirectByteBuffer.java
        $(JAVAH) -o $@ java.nio.VMDirectByteBuffer
-$(top_srcdir)/include/java_nio_MappedByteBufferImpl.h: $(top_srcdir)/java/nio/MappedByteBufferImpl.java
+java_nio_MappedByteBufferImpl.h: $(top_srcdir)/java/nio/MappedByteBufferImpl.java
        $(JAVAH) -o $@ java.nio.MappedByteBufferImpl
 
-$(top_srcdir)/include/gnu_java_nio_FileChannelImpl.h: $(top_srcdir)/gnu/java/nio/FileChannelImpl.java
+gnu_java_nio_FileChannelImpl.h: $(top_srcdir)/gnu/java/nio/FileChannelImpl.java
        $(JAVAH) -o $@ gnu.java.nio.FileChannelImpl
 
-$(top_srcdir)/include/gnu_java_nio_KqueueSelectorImpl.h: $(top_srcdir)/gnu/java/nio/KqueueSelectorImpl.java
+gnu_java_nio_KqueueSelectorImpl.h: $(top_srcdir)/gnu/java/nio/KqueueSelectorImpl.java
        $(JAVAH) -o $@ gnu.java.nio.KqueueSelectorImpl
 
-$(top_srcdir)/include/gnu_java_nio_EpollSelectorImpl.h: $(top_srcdir)/gnu/java/nio/EpollSelectorImpl.java
+gnu_java_nio_EpollSelectorImpl.h: $(top_srcdir)/gnu/java/nio/EpollSelectorImpl.java
        $(JAVAH) -o $@ gnu.java.nio.EpollSelectorImpl
 
-$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvDecoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvDecoder.java
+gnu_java_nio_charset_iconv_IconvDecoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvDecoder.java
        $(JAVAH) -o $@ gnu.java.nio.charset.iconv.IconvDecoder
-$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvEncoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvEncoder.java
+gnu_java_nio_charset_iconv_IconvEncoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvEncoder.java
        $(JAVAH) -o $@ gnu.java.nio.charset.iconv.IconvEncoder
-$(top_srcdir)/include/java_util_VMTimeZone.h: $(top_srcdir)/vm/reference/java/util/VMTimeZone.java
+java_util_VMTimeZone.h: $(top_srcdir)/vm/reference/java/util/VMTimeZone.java
        $(JAVAH) -o $@ java.util.VMTimeZone
 
 endif # CREATE_JNI_HEADERS
index 516898f62a62241cb7a33f32893dfcf2f6d96b80..515d35ae754c14448f511081bf630d13ad19eba6 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -130,7 +132,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -142,19 +143,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -186,15 +176,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -242,10 +229,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -317,121 +302,125 @@ target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
 vm_classes = @vm_classes@
-DISTCLEANFILES = jni_md.h config-int.h
+@CREATE_JNI_HEADERS_FALSE@DISTCLEANFILES = jni_md.h config-int.h
+@CREATE_JNI_HEADERS_TRUE@DISTCLEANFILES = jni_md.h config-int.h $(H_FILES)
 ARG_JNI_JAVAH = -jni
 ARG_CLASSPATH_JAVAH = -bootclasspath
-JAVAH = $(USER_JAVAH) $(ARG_JNI_JAVAH) $(ARG_CLASSPATH_JAVAH) ../lib:$(USER_CLASSLIB)
+JAVAH = $(USER_JAVAH) $(ARG_JNI_JAVAH) $(ARG_CLASSPATH_JAVAH) ../lib:$(PATH_TO_GLIBJ_ZIP)
 CLASSDIR = lib
 SOUND_H_FILES = \
-$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h \
-$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h \
-$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h \
-$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h \
-$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h
+gnu_javax_sound_midi_alsa_AlsaPortDevice.h \
+gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h \
+gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h \
+gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h \
+gnu_javax_sound_midi_dssi_DSSISynthesizer.h
 
 GST_PEER_H_FILES = \
-$(top_srcdir)/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h
+gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h \
+gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h \
+gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h \
+gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h
 
 XMLJ_H_FILES = \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocument.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNodeList.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNotation.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathResult.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeElement.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeEntity.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNode.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeAttr.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeLocator.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeXMLReader.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformer.h \
-$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h
+gnu_xml_libxmlj_dom_GnomeDocument.h \
+gnu_xml_libxmlj_dom_GnomeXPathNodeList.h \
+gnu_xml_libxmlj_dom_GnomeDocumentType.h \
+gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h \
+gnu_xml_libxmlj_dom_GnomeTypeInfo.h \
+gnu_xml_libxmlj_dom_GnomeNodeList.h \
+gnu_xml_libxmlj_dom_GnomeNotation.h \
+gnu_xml_libxmlj_dom_GnomeXPathResult.h \
+gnu_xml_libxmlj_dom_GnomeElement.h \
+gnu_xml_libxmlj_dom_GnomeEntity.h \
+gnu_xml_libxmlj_dom_GnomeNode.h \
+gnu_xml_libxmlj_dom_GnomeXPathExpression.h \
+gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h \
+gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h \
+gnu_xml_libxmlj_dom_GnomeAttr.h \
+gnu_xml_libxmlj_sax_GnomeLocator.h \
+gnu_xml_libxmlj_sax_GnomeXMLReader.h \
+gnu_xml_libxmlj_transform_GnomeTransformer.h \
+gnu_xml_libxmlj_transform_GnomeTransformerFactory.h
 
 GTKPEER_H_FILES = \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoSurface.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphics.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkFontPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkRobotPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkClipboard.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFramePeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkImage.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkListPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkSelection.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkToolkit.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h \
-$(top_srcdir)/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h
+gnu_java_awt_peer_gtk_CairoSurface.h \
+gnu_java_awt_peer_gtk_CairoGraphics2D.h \
+gnu_java_awt_peer_gtk_ComponentGraphics.h \
+gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h \
+gnu_java_awt_peer_gtk_FreetypeGlyphVector.h \
+gnu_java_awt_peer_gtk_GdkFontPeer.h \
+gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h \
+gnu_java_awt_peer_gtk_GdkPixbufDecoder.h \
+gnu_java_awt_peer_gtk_GdkRobotPeer.h \
+gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h \
+gnu_java_awt_peer_gtk_GtkButtonPeer.h \
+gnu_java_awt_peer_gtk_GtkCanvasPeer.h \
+gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h \
+gnu_java_awt_peer_gtk_GtkCheckboxPeer.h \
+gnu_java_awt_peer_gtk_GtkChoicePeer.h \
+gnu_java_awt_peer_gtk_GtkClipboard.h \
+gnu_java_awt_peer_gtk_GtkComponentPeer.h \
+gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h \
+gnu_java_awt_peer_gtk_GtkFileDialogPeer.h \
+gnu_java_awt_peer_gtk_GtkFramePeer.h \
+gnu_java_awt_peer_gtk_GtkGenericPeer.h \
+gnu_java_awt_peer_gtk_GtkImage.h \
+gnu_java_awt_peer_gtk_GtkLabelPeer.h \
+gnu_java_awt_peer_gtk_GtkListPeer.h \
+gnu_java_awt_peer_gtk_GtkMenuBarPeer.h \
+gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h \
+gnu_java_awt_peer_gtk_GtkMenuItemPeer.h \
+gnu_java_awt_peer_gtk_GtkMenuPeer.h \
+gnu_java_awt_peer_gtk_GtkPanelPeer.h \
+gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h \
+gnu_java_awt_peer_gtk_GtkScrollPanePeer.h \
+gnu_java_awt_peer_gtk_GtkScrollbarPeer.h \
+gnu_java_awt_peer_gtk_GtkSelection.h \
+gnu_java_awt_peer_gtk_GtkTextAreaPeer.h \
+gnu_java_awt_peer_gtk_GtkTextFieldPeer.h \
+gnu_java_awt_peer_gtk_GtkToolkit.h \
+gnu_java_awt_peer_gtk_GtkWindowPeer.h \
+gnu_java_awt_peer_gtk_GtkVolatileImage.h \
+gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h
 
 QTPEER_H_FILES = \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtToolkit.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtAudioClip.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScreenDevice.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuItemPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtButtonPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtWindowPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtDialogPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtImage.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuBarPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtVolatileImage.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtChoicePeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtGraphics.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtComponentPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QPen.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPanelPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QPainterPath.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontMetrics.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QMatrix.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtLabelPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFramePeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtListPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCanvasPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_MainQtThread.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h \
-$(top_srcdir)/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h 
+gnu_java_awt_peer_qt_QtCheckboxPeer.h \
+gnu_java_awt_peer_qt_QtToolkit.h \
+gnu_java_awt_peer_qt_QtAudioClip.h \
+gnu_java_awt_peer_qt_QtScreenDevice.h \
+gnu_java_awt_peer_qt_QtTextFieldPeer.h \
+gnu_java_awt_peer_qt_QtMenuItemPeer.h \
+gnu_java_awt_peer_qt_QtButtonPeer.h \
+gnu_java_awt_peer_qt_QtWindowPeer.h \
+gnu_java_awt_peer_qt_QtDialogPeer.h \
+gnu_java_awt_peer_qt_QtImage.h \
+gnu_java_awt_peer_qt_QtMenuBarPeer.h \
+gnu_java_awt_peer_qt_QtVolatileImage.h \
+gnu_java_awt_peer_qt_QtFontPeer.h \
+gnu_java_awt_peer_qt_QtChoicePeer.h \
+gnu_java_awt_peer_qt_QtGraphics.h \
+gnu_java_awt_peer_qt_QtComponentPeer.h \
+gnu_java_awt_peer_qt_QtMenuPeer.h \
+gnu_java_awt_peer_qt_QtTextAreaPeer.h \
+gnu_java_awt_peer_qt_QPen.h \
+gnu_java_awt_peer_qt_QtPanelPeer.h \
+gnu_java_awt_peer_qt_QPainterPath.h \
+gnu_java_awt_peer_qt_QtFontMetrics.h \
+gnu_java_awt_peer_qt_QtScrollPanePeer.h \
+gnu_java_awt_peer_qt_QMatrix.h \
+gnu_java_awt_peer_qt_QtLabelPeer.h \
+gnu_java_awt_peer_qt_QtPopupMenuPeer.h \
+gnu_java_awt_peer_qt_QtFramePeer.h \
+gnu_java_awt_peer_qt_QtListPeer.h \
+gnu_java_awt_peer_qt_QtScrollbarPeer.h \
+gnu_java_awt_peer_qt_QtCanvasPeer.h \
+gnu_java_awt_peer_qt_QtMenuComponentPeer.h \
+gnu_java_awt_peer_qt_MainQtThread.h \
+gnu_java_awt_peer_qt_QtFileDialogPeer.h \
+gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h 
 
 GCONF_PREFS_FILES = \
-$(top_srcdir)/include/gnu_java_util_prefs_gconf_GConfNativePeer.h
+gnu_java_util_prefs_gconf_GConfNativePeer.h
 
 H_FILES = \
 $(SOUND_H_FILES) \
@@ -440,33 +429,34 @@ $(XMLJ_H_FILES) \
 $(GTKPEER_H_FILES) \
 $(QTPEER_H_FILES) \
 $(GCONF_PREFS_FILES) \
-$(top_srcdir)/include/gnu_java_net_VMPlainSocketImpl.h \
-$(top_srcdir)/include/gnu_java_net_local_LocalSocketImpl.h \
-$(top_srcdir)/include/gnu_java_nio_EpollSelectorImpl.h \
-$(top_srcdir)/include/gnu_java_nio_FileChannelImpl.h \
-$(top_srcdir)/include/gnu_java_nio_KqueueSelectorImpl.h \
-$(top_srcdir)/include/gnu_java_nio_VMChannel.h \
-$(top_srcdir)/include/gnu_java_nio_VMPipe.h \
-$(top_srcdir)/include/gnu_java_nio_VMSelector.h \
-$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvEncoder.h \
-$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvDecoder.h \
-$(top_srcdir)/include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h \
-$(top_srcdir)/include/java_io_VMFile.h \
-$(top_srcdir)/include/java_io_VMObjectInputStream.h \
-$(top_srcdir)/include/java_io_VMObjectStreamClass.h \
-$(top_srcdir)/include/java_lang_VMDouble.h \
-$(top_srcdir)/include/java_lang_VMFloat.h \
-$(top_srcdir)/include/java_lang_VMMath.h \
-$(top_srcdir)/include/java_lang_VMProcess.h \
-$(top_srcdir)/include/java_lang_VMSystem.h \
-$(top_srcdir)/include/java_lang_reflect_VMArray.h \
-$(top_srcdir)/include/java_net_VMInetAddress.h \
-$(top_srcdir)/include/java_net_VMNetworkInterface.h \
-$(top_srcdir)/include/java_net_VMURLConnection.h \
-$(top_srcdir)/include/java_nio_VMDirectByteBuffer.h \
-$(top_srcdir)/include/java_nio_MappedByteBufferImpl.h \
-$(top_srcdir)/include/java_util_VMTimeZone.h
-
+gnu_java_net_VMPlainSocketImpl.h \
+gnu_java_net_local_LocalSocketImpl.h \
+gnu_java_nio_EpollSelectorImpl.h \
+gnu_java_nio_FileChannelImpl.h \
+gnu_java_nio_KqueueSelectorImpl.h \
+gnu_java_nio_VMChannel.h \
+gnu_java_nio_VMPipe.h \
+gnu_java_nio_VMSelector.h \
+gnu_java_nio_charset_iconv_IconvEncoder.h \
+gnu_java_nio_charset_iconv_IconvDecoder.h \
+gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h \
+java_io_VMFile.h \
+java_io_VMObjectInputStream.h \
+java_io_VMObjectStreamClass.h \
+java_lang_VMDouble.h \
+java_lang_VMFloat.h \
+java_lang_VMMath.h \
+java_lang_VMProcess.h \
+java_lang_VMSystem.h \
+java_lang_reflect_VMArray.h \
+java_net_VMInetAddress.h \
+java_net_VMNetworkInterface.h \
+java_net_VMURLConnection.h \
+java_nio_VMDirectByteBuffer.h \
+java_nio_MappedByteBufferImpl.h \
+java_util_VMTimeZone.h
+
+@CREATE_JNI_HEADERS_TRUE@EXTRA_DIST = $(H_FILES)
 all: config.h
        $(MAKE) $(AM_MAKEFLAGS) all-am
 
@@ -651,260 +641,266 @@ uninstall-am: uninstall-info-am
 
 @CREATE_JNI_HEADERS_TRUE@all-local: $(H_FILES)
 
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocument.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocument.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeDocument.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocument.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocument
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathNodeList.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeXPathNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathNodeList.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathNodeList
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentType.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentType.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeDocumentType.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentType.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocumentType
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeProcessingInstruction
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeTypeInfo.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeTypeInfo.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeTypeInfo.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeTypeInfo.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeTypeInfo
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNodeList.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeNodeList.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNodeList.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNodeList
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNotation.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNotation.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeNotation.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNotation.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNotation
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathResult.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathResult.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeXPathResult.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathResult.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathResult
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeElement.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeElement.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeElement.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeElement.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeElement
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeEntity.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeEntity.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeEntity.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeEntity.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeEntity
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNode.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNode.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeNode.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNode.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNode
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeXPathExpression.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathExpression.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeXPathExpression.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeXPathExpression.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathExpression
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeNamedNodeMap.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNamedNodeMap
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeDocumentBuilder.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocumentBuilder
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_GnomeAttr.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeAttr.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_dom_GnomeAttr.h: $(top_srcdir)/gnu/xml/libxmlj/dom/GnomeAttr.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeAttr
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeLocator.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeLocator.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_sax_GnomeLocator.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeLocator.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.sax.GnomeLocator
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_sax_GnomeXMLReader.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeXMLReader.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_sax_GnomeXMLReader.h: $(top_srcdir)/gnu/xml/libxmlj/sax/GnomeXMLReader.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.sax.GnomeXMLReader
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformer.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_transform_GnomeTransformer.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.transform.GnomeTransformer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_transform_GnomeTransformerFactory.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformerFactory.java
+@CREATE_JNI_HEADERS_TRUE@gnu_xml_libxmlj_transform_GnomeTransformerFactory.h: $(top_srcdir)/gnu/xml/libxmlj/transform/GnomeTransformerFactory.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.transform.GnomeTransformerFactory
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoSurface.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoSurface.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_CairoSurface.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoSurface.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.CairoSurface
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoGraphics2D.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_CairoGraphics2D.h: $(top_srcdir)/gnu/java/awt/peer/gtk/CairoGraphics2D.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.CairoGraphics2D
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphics.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphics.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_ComponentGraphics.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphics.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.ComponentGraphics
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h: $(top_srcdir)/gnu/java/awt/peer/gtk/ComponentGraphicsCopy.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.ComponentGraphicsCopy
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: $(top_srcdir)/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_FreetypeGlyphVector.h: $(top_srcdir)/gnu/java/awt/peer/gtk/FreetypeGlyphVector.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.FreetypeGlyphVector
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkFontPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GdkFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkFontPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkFontPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkGraphicsEnvironment
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkPixbufDecoder
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkRobotPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkRobotPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GdkRobotPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkRobotPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkRobotPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GdkScreenGraphicsDevice
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkButtonPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkButtonPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkButtonPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCanvasPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCanvasPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCanvasPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCheckboxMenuItemPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkCheckboxPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkCheckboxPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkChoicePeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkChoicePeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkChoicePeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkClipboard.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkClipboard.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkClipboard.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkClipboard.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkClipboard
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkComponentPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkComponentPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkComponentPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkEmbeddedWindowPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFileDialogPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkFileDialogPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFramePeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkFramePeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkFramePeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkGenericPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkGenericPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkGenericPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkGenericPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkImage.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkImage.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkImage
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkLabelPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkLabelPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkLabelPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkListPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkListPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkListPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkListPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkListPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuBarPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuBarPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuComponentPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuComponentPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuItemPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuItemPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkMenuPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkMenuPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPanelPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPanelPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkPanelPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkPopupMenuPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkPopupMenuPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollPanePeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollPanePeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkScrollPanePeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkScrollbarPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkScrollbarPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkSelection.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkSelection.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkSelection.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkSelection.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkSelection
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextAreaPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextAreaPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkTextAreaPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkTextFieldPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkTextFieldPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkToolkit.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkToolkit.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkToolkit.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkToolkit.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkToolkit
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkWindowPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkWindowPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkWindowPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_GtkVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkVolatileImage.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_gtk_GtkVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/gtk/GtkVolatileImage.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.GtkVolatileImage
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h: $(top_srcdir)/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h: $(top_srcdir)/gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.dnd.peer.gtk.GtkDragSourceContextPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCheckboxPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtCheckboxPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCheckboxPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtCheckboxPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtToolkit.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtToolkit.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtToolkit.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtToolkit.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtToolkit
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtAudioClip.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtAudioClip.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtAudioClip.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtAudioClip.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtAudioClip
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScreenDevice.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScreenDevice.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtScreenDevice.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScreenDevice.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScreenDevice
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextFieldPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtTextFieldPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextFieldPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtTextFieldPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuItemPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtMenuItemPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuItemPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuItemPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtButtonPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtButtonPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtButtonPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtButtonPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtWindowPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtWindowPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtWindowPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtDialogPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtDialogPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtDialogPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtImage.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtImage.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtImage
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuBarPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtMenuBarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuBarPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuBarPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtVolatileImage.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtVolatileImage.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtVolatileImage.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtVolatileImage
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtFontPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFontPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtChoicePeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtChoicePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtChoicePeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtChoicePeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtGraphics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtGraphics.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtGraphics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtGraphics.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtGraphics
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtComponentPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtComponentPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtComponentPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextAreaPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtTextAreaPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtTextAreaPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtTextAreaPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QPen.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPen.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QPen.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPen.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QPen
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPanelPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtPanelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPanelPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtPanelPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QPainterPath.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPainterPath.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QPainterPath.h: $(top_srcdir)/gnu/java/awt/peer/qt/QPainterPath.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QPainterPath
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFontMetrics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontMetrics.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtFontMetrics.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFontMetrics.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFontMetrics
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollPanePeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtScrollPanePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollPanePeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScrollPanePeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QMatrix.h: $(top_srcdir)/gnu/java/awt/peer/qt/QMatrix.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QMatrix.h: $(top_srcdir)/gnu/java/awt/peer/qt/QMatrix.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QMatrix
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtLabelPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtLabelPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtLabelPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtLabelPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPopupMenuPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtPopupMenuPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtPopupMenuPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtPopupMenuPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFramePeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtFramePeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFramePeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFramePeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtListPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtListPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtListPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtListPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtListPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollbarPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtScrollbarPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtScrollbarPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtScrollbarPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCanvasPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtCanvasPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtCanvasPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtCanvasPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuComponentPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtMenuComponentPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtMenuComponentPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtMenuComponentPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_MainQtThread.h: $(top_srcdir)/gnu/java/awt/peer/qt/MainQtThread.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_MainQtThread.h: $(top_srcdir)/gnu/java/awt/peer/qt/MainQtThread.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.MainQtThread
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFileDialogPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtFileDialogPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtFileDialogPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtFileDialogPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h: $(top_srcdir)/gnu/java/awt/peer/qt/QtEmbeddedWindowPeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.QtEmbeddedWindowPeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaPortDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaPortDevice.java
+@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_midi_alsa_AlsaPortDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaPortDevice.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaPortDevice
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java
+@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaMidiSequencerDevice
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java
+@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.AlsaMidiDeviceProvider
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java
+@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.DSSIMidiDeviceProvider
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSISynthesizer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_midi_dssi_DSSISynthesizer.h: $(top_srcdir)/gnu/javax/sound/midi/dssi/DSSISynthesizer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.DSSISynthesizer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_util_prefs_gconf_GConfNativePeer.h: $(top_srcdir)/gnu/java/util/prefs/gconf/GConfNativePeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_util_prefs_gconf_GConfNativePeer.h: $(top_srcdir)/gnu/java/util/prefs/gconf/GConfNativePeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.util.prefs.gconf.GConfNativePeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java
+@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.io.GstAudioFileReaderNativePeer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_net_VMPlainSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainSocketImpl.java
+@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.java
+@CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.io.GstInputStream
+@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java
+@CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.lines.GstNativeDataLine
+@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java
+@CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.lines.GstPipeline
+@CREATE_JNI_HEADERS_TRUE@gnu_java_net_VMPlainSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainSocketImpl.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.net.VMPlainSocketImpl
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_net_local_LocalSocketImpl.h: $(top_srcdir)/gnu/java/net/local/LocalSocketImpl.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_net_local_LocalSocketImpl.h: $(top_srcdir)/gnu/java/net/local/LocalSocketImpl.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.net.local.LocalSocketImpl
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_VMChannel.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMChannel.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_nio_VMChannel.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMChannel.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.nio.VMChannel
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_VMPipe.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMPipe.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_nio_VMPipe.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMPipe.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.nio.VMPipe
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_VMSelector.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMSelector.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_nio_VMSelector.h: $(top_srcdir)/vm/reference/gnu/java/nio/VMSelector.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.nio.VMSelector
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h: $(top_srcdir)/vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h: $(top_srcdir)/vm/reference/gnu/java/lang/management/VMOperatingSystemMXBeanImpl.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.lang.management.VMOperatingSystemMXBeanImpl
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_io_VMFile.h: $(top_srcdir)/vm/reference/java/io/VMFile.java
+@CREATE_JNI_HEADERS_TRUE@java_io_VMFile.h: $(top_srcdir)/vm/reference/java/io/VMFile.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ java.io.VMFile
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_io_VMObjectInputStream.h: $(top_srcdir)/vm/reference/java/io/VMObjectInputStream.java
+@CREATE_JNI_HEADERS_TRUE@java_io_VMObjectInputStream.h: $(top_srcdir)/vm/reference/java/io/VMObjectInputStream.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ java.io.VMObjectInputStream
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_io_VMObjectStreamClass.h: $(top_srcdir)/vm/reference/java/io/VMObjectStreamClass.java
+@CREATE_JNI_HEADERS_TRUE@java_io_VMObjectStreamClass.h: $(top_srcdir)/vm/reference/java/io/VMObjectStreamClass.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ java.io.VMObjectStreamClass
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_lang_VMMath.h: $(top_srcdir)/vm/reference/java/lang/VMMath.java
+@CREATE_JNI_HEADERS_TRUE@java_lang_VMMath.h: $(top_srcdir)/vm/reference/java/lang/VMMath.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ java.lang.VMMath
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_lang_VMDouble.h: $(top_srcdir)/vm/reference/java/lang/VMDouble.java
+@CREATE_JNI_HEADERS_TRUE@java_lang_VMDouble.h: $(top_srcdir)/vm/reference/java/lang/VMDouble.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ java.lang.VMDouble
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_lang_VMFloat.h: $(top_srcdir)/vm/reference/java/lang/VMFloat.java
+@CREATE_JNI_HEADERS_TRUE@java_lang_VMFloat.h: $(top_srcdir)/vm/reference/java/lang/VMFloat.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ java.lang.VMFloat
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_lang_VMProcess.h: $(top_srcdir)/vm/reference/java/lang/VMProcess.java
+@CREATE_JNI_HEADERS_TRUE@java_lang_VMProcess.h: $(top_srcdir)/vm/reference/java/lang/VMProcess.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ java.lang.VMProcess
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_lang_VMSystem.h: $(top_srcdir)/vm/reference/java/lang/VMSystem.java
+@CREATE_JNI_HEADERS_TRUE@java_lang_VMSystem.h: $(top_srcdir)/vm/reference/java/lang/VMSystem.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ java.lang.VMSystem
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_lang_reflect_VMArray.h: $(top_srcdir)/vm/reference/java/lang/reflect/VMArray.java
+@CREATE_JNI_HEADERS_TRUE@java_lang_reflect_VMArray.h: $(top_srcdir)/vm/reference/java/lang/reflect/VMArray.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ java.lang.reflect.VMArray
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_net_VMInetAddress.h: $(top_srcdir)/vm/reference/java/net/VMInetAddress.java
+@CREATE_JNI_HEADERS_TRUE@java_net_VMInetAddress.h: $(top_srcdir)/vm/reference/java/net/VMInetAddress.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ java.net.VMInetAddress
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_net_VMNetworkInterface.h: $(top_srcdir)/vm/reference/java/net/VMNetworkInterface.java
+@CREATE_JNI_HEADERS_TRUE@java_net_VMNetworkInterface.h: $(top_srcdir)/vm/reference/java/net/VMNetworkInterface.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ java.net.VMNetworkInterface
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_net_VMURLConnection.h: $(top_srcdir)/vm/reference/java/net/VMURLConnection.java
+@CREATE_JNI_HEADERS_TRUE@java_net_VMURLConnection.h: $(top_srcdir)/vm/reference/java/net/VMURLConnection.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ java.net.VMURLConnection
 
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_nio_VMDirectByteBuffer.h: $(top_srcdir)/vm/reference/java/nio/VMDirectByteBuffer.java
+@CREATE_JNI_HEADERS_TRUE@java_nio_VMDirectByteBuffer.h: $(top_srcdir)/vm/reference/java/nio/VMDirectByteBuffer.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ java.nio.VMDirectByteBuffer
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_nio_MappedByteBufferImpl.h: $(top_srcdir)/java/nio/MappedByteBufferImpl.java
+@CREATE_JNI_HEADERS_TRUE@java_nio_MappedByteBufferImpl.h: $(top_srcdir)/java/nio/MappedByteBufferImpl.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ java.nio.MappedByteBufferImpl
 
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_FileChannelImpl.h: $(top_srcdir)/gnu/java/nio/FileChannelImpl.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_nio_FileChannelImpl.h: $(top_srcdir)/gnu/java/nio/FileChannelImpl.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.nio.FileChannelImpl
 
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_KqueueSelectorImpl.h: $(top_srcdir)/gnu/java/nio/KqueueSelectorImpl.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_nio_KqueueSelectorImpl.h: $(top_srcdir)/gnu/java/nio/KqueueSelectorImpl.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.nio.KqueueSelectorImpl
 
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_EpollSelectorImpl.h: $(top_srcdir)/gnu/java/nio/EpollSelectorImpl.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_nio_EpollSelectorImpl.h: $(top_srcdir)/gnu/java/nio/EpollSelectorImpl.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.nio.EpollSelectorImpl
 
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvDecoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvDecoder.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_nio_charset_iconv_IconvDecoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvDecoder.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.nio.charset.iconv.IconvDecoder
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_nio_charset_iconv_IconvEncoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvEncoder.java
+@CREATE_JNI_HEADERS_TRUE@gnu_java_nio_charset_iconv_IconvEncoder.h: $(top_srcdir)/gnu/java/nio/charset/iconv/IconvEncoder.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.nio.charset.iconv.IconvEncoder
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/java_util_VMTimeZone.h: $(top_srcdir)/vm/reference/java/util/VMTimeZone.java
+@CREATE_JNI_HEADERS_TRUE@java_util_VMTimeZone.h: $(top_srcdir)/vm/reference/java/util/VMTimeZone.java
 @CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ java.util.VMTimeZone
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
index e52b7eff732b6733cb698aa4e496117e380e4c31..4330a30da8eefa880724d478705bc064fb1b6a17 100644 (file)
 /* Define to 1 if you have the `munmap' function. */
 #undef HAVE_MUNMAP
 
+/* Define to 1 if you have the <netinet/in_systm.h> header file. */
+#undef HAVE_NETINET_IN_SYSTM_H
+
+/* Define to 1 if you have the <netinet/ip.h> header file. */
+#undef HAVE_NETINET_IP_H
+
+/* Define to 1 if you have the <net/if.h> header file. */
+#undef HAVE_NET_IF_H
+
 /* Define to 1 if you have the `open' function. */
 #undef HAVE_OPEN
 
 /* Define to 1 if you have the `read' function. */
 #undef HAVE_READ
 
-/* Define to 1 if you have the `readdir_r' function. */
-#undef HAVE_READDIR_R
-
 /* Define to 1 if you have the `readlink' function. */
 #undef HAVE_READLINK
 
 /* Define this symbol if you have SO_NOSIGPIPE */
 #undef HAVE_SO_NOSIGPIPE
 
+/* Define to 1 if you have the `statvfs' function. */
+#undef HAVE_STATVFS
+
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
 /* Define to 1 if you have the <sys/ioctl.h> header file. */
 #undef HAVE_SYS_IOCTL_H
 
+/* Define to 1 if you have the <sys/loadavg.h> header file. */
+#undef HAVE_SYS_LOADAVG_H
+
 /* Define to 1 if you have the <sys/mman.h> header file. */
 #undef HAVE_SYS_MMAN_H
 
 /* Define to 1 if you have libXrender. */
 #undef HAVE_XRENDER
 
+/* Define to 1 if you have libXtst. */
+#undef HAVE_XTEST
+
+/* Define to 1 if you have the `\' function. */
+#undef HAVE__
+
 /* Define if the host machine stores words of multi-word integers in
    big-endian order. */
 #undef HOST_WORDS_BIG_ENDIAN
index f9fca11588384ea37081e58bdd5db36d59cc3adc..d2ef88dfdb1f0e51461c29a3c2db6afdaceb4189 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer__
 #define __gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index a24f92d196be693c94b3dcb51200b65f0d54ca3d..3ae95a283e56e09b74a8532c5442af44a77ca842 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_CairoGraphics2D__
 #define __gnu_java_awt_peer_gtk_CairoGraphics2D__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
@@ -38,6 +38,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoFill (JNI
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoClip (JNIEnv *env, jobject, jlong);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoResetClip (JNIEnv *env, jobject, jlong);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetAntialias (JNIEnv *env, jobject, jlong, jboolean);
+
 #undef gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_NEAREST
 #define gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_NEAREST 0L
 #undef gnu_java_awt_peer_gtk_CairoGraphics2D_INTERPOLATION_BILINEAR
index ba7a1f57337feafb997ccb601fb52a469697f023..8ef86c027dd12344275f1aaab88cee69ecb699cc 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_CairoSurface__
 #define __gnu_java_awt_peer_gtk_CairoSurface__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 2df12469b42ea8811e498baa66bf5306ed06a176..160cb394f8ff1d51a58c5deb23aed2ed091ddbe0 100644 (file)
@@ -1,17 +1,17 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_ComponentGraphics__
 #define __gnu_java_awt_peer_gtk_ComponentGraphics__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
 #endif
 
 JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState (JNIEnv *env, jobject, jobject);
-JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile (JNIEnv *env, jobject, jlong, jint, jint);
+JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile (JNIEnv *env, jobject, jlong);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_start_1gdk_1drawing (JNIEnv *env, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_end_1gdk_1drawing (JNIEnv *env, jobject);
 JNIEXPORT jboolean JNICALL Java_gnu_java_awt_peer_gtk_ComponentGraphics_hasXRender (JNIEnv *env, jclass);
index 8e4b2cdb3cb7b7e825d07d450de458dd6c142e1b..8b1c26c290ac023ceef4f0dd3cbc77980b2449f5 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_ComponentGraphicsCopy__
 #define __gnu_java_awt_peer_gtk_ComponentGraphicsCopy__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 95463229347e7d46ab678ca32ea0a176d7da05c0..ac3cda32fdbb430b5958ebbfc06b49ce4eb540d2 100644 (file)
@@ -1,21 +1,21 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_FreetypeGlyphVector__
 #define __gnu_java_awt_peer_gtk_FreetypeGlyphVector__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
 #endif
 
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_dispose (JNIEnv *env, jobject, jlongArray);
+JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getNativeFontPointer (JNIEnv *env, jobject, jint);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphs (JNIEnv *env, jobject, jintArray, jintArray, jlongArray);
 JNIEXPORT jobject JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getKerning (JNIEnv *env, jobject, jint, jint, jlong);
 JNIEXPORT jdoubleArray JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getMetricsNative (JNIEnv *env, jobject, jint, jlong);
 JNIEXPORT jobject JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphOutlineNative (JNIEnv *env, jobject, jint, jlong);
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_dispose (JNIEnv *env, jobject, jlongArray);
-JNIEXPORT jlong JNICALL Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getNativeFontPointer (JNIEnv *env, jobject, jint);
 
 #ifdef __cplusplus
 }
index c23980ca55c5474dcc0d41832ca148480465ae49..468fbb0ab19375ca8a4211cd1664afdef725148f 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GdkFontPeer__
 #define __gnu_java_awt_peer_gtk_GdkFontPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
@@ -18,6 +18,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics (JN
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics (JNIEnv *env, jobject, jstring, jdoubleArray);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkFontPeer_releasePeerGraphicsResource (JNIEnv *env, jobject);
 JNIEXPORT jbyteArray JNICALL Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTrueTypeTable (JNIEnv *env, jobject, jbyte, jbyte, jbyte, jbyte);
+
 #undef gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_ASCENT
 #define gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_ASCENT 0L
 #undef gnu_java_awt_peer_gtk_GdkFontPeer_FONT_METRICS_MAX_ASCENT
index 6f30a3c5bef6db9f44ce974e5e5b3c1ebe0c9c5f..1664b1d30107d37bc28d6b3db4e8980a224e577e 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GdkPixbufDecoder__
 #define __gnu_java_awt_peer_gtk_GdkPixbufDecoder__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index dc1ae7d64e4b86585dc5f25357ef2760e2dcf4ff..0a3b4dd11d78925962b7b6eaa887c3c87e33c29c 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GdkRobotPeer__
 #define __gnu_java_awt_peer_gtk_GdkRobotPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 37654e4f48db7fc0a4717caaea6fd28d5e8e5d43..61999337b0bde4aee0cc5ad6f7200eb07d8cdc70 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice__
 #define __gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 9601e83ae3f28d8e6a84ef2815e171b91a81a623..4aea5d6d356b1a2eeef95a45c60f0579c839a6d4 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkButtonPeer__
 #define __gnu_java_awt_peer_gtk_GtkButtonPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index e774713a7669b2addddf21f07d874ffaab9b8953..1052aa571fa644d7a399b9b2b560e40c87e3d7cd 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkCanvasPeer__
 #define __gnu_java_awt_peer_gtk_GtkCanvasPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 87a161b114f6dc1ced89faea57174b81c17bf494..41423e8ccc5ae4c8d2d9cf2ff40229b833a6bfe9 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer__
 #define __gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index b54412be6eb053fa8e6c236a890c52a915f29e4b..974c0d67aaa0cde86483560f2d28d75d9be1dafa 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkCheckboxPeer__
 #define __gnu_java_awt_peer_gtk_GtkCheckboxPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index fc6a72a59554530b3fa56612883c08b6d893ef9d..05ffcde5eaa4ea0e5ce694e68880ec7adc123d8f 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkChoicePeer__
 #define __gnu_java_awt_peer_gtk_GtkChoicePeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index d1b691e04fab3e8ff89f25a3af6c6628677d746e..40b84e90c5143aa668e62fea64302ab37e3e9fb8 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkClipboard__
 #define __gnu_java_awt_peer_gtk_GtkClipboard__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index f2b9ffe773e43395df1c24d2420aa920d0eec969..8103a067b103fa44f4620f91c63df23c0f11e7cf 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkComponentPeer__
 #define __gnu_java_awt_peer_gtk_GtkComponentPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
@@ -17,7 +17,9 @@ JNIEXPORT jintArray JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidge
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetDimensions (JNIEnv *env, jobject, jintArray);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetPreferredDimensions (JNIEnv *env, jobject, jintArray);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreen (JNIEnv *env, jobject, jintArray);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreenUnlocked (JNIEnv *env, jobject, jintArray);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen (JNIEnv *env, jobject, jintArray);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreenUnlocked (JNIEnv *env, jobject, jintArray);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursor (JNIEnv *env, jobject, jint, jobject, jint, jint);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursorUnlocked (JNIEnv *env, jobject, jint, jobject, jint, jint);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetBackground (JNIEnv *env, jobject, jint, jint, jint);
index 6d6e4b350f51fd7afa9cbb0dfd32248c789d18ec..55891c86fd3f62925a1e5e2672cf46272b5e08b9 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer__
 #define __gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 340fcc3231ce2d85ba004241bf82391b746dcf2d..f9e134168a63d174df070a73508f6da6ec1c6307 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkFileDialogPeer__
 #define __gnu_java_awt_peer_gtk_GtkFileDialogPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 63b881d2f78a99befac7e96dce375826c9d0c6fc..f100d3d5581528024951bd47528e0485bebf1a5a 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkFramePeer__
 #define __gnu_java_awt_peer_gtk_GtkFramePeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 1a95d70d339e5ebad35119ee82babfb86cad6bbb..243f508c915e53cd449d10bfc38e6ed7daf853ba 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkGenericPeer__
 #define __gnu_java_awt_peer_gtk_GtkGenericPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 0ea798bc2642030aae05b998af0db15f655291ba..3e65ea9b2fbe23b9957939712182c3c8fd2d7749 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkImage__
 #define __gnu_java_awt_peer_gtk_GtkImage__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 3a0d35c7374bdcd70d5c282848b9906e7ab2096b..805cfb528e309b795facd89f53e3f53abe2625b8 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkLabelPeer__
 #define __gnu_java_awt_peer_gtk_GtkLabelPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 8c9272c7f71aa399e8c4fad3f2e2db4b2fd5431a..bc620336a4546d58b4bb0b1a931b1791db64afd1 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkListPeer__
 #define __gnu_java_awt_peer_gtk_GtkListPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 61a4641e600c4deca84a2e8ee39e1e1f3b93fa72..4a053a19c8e9cbe042b65e59fc251cd51f6ca176 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkMenuBarPeer__
 #define __gnu_java_awt_peer_gtk_GtkMenuBarPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 3b71dde384aa318b909524a64ae235acc645de36..bc01ffcbf99db78948ee55dd602e1cb825b30eeb 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkMenuComponentPeer__
 #define __gnu_java_awt_peer_gtk_GtkMenuComponentPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index e96544a3b223fee4dc83c01cc907d0c8d973bed9..2aee51e46d33cd97f009d11ce90796d1a62f7a7b 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkMenuItemPeer__
 #define __gnu_java_awt_peer_gtk_GtkMenuItemPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 641e87e4623d24a352f99d4df1ba96d1cdee3793..6b0569bf0df302adc42f1d21a3d0c74f44718180 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkMenuPeer__
 #define __gnu_java_awt_peer_gtk_GtkMenuPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 7498a97d96b2f5b4be8b9bb7df493923e0eb1514..929e28321cc24ccb8551588b8b39f1824938911c 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkPanelPeer__
 #define __gnu_java_awt_peer_gtk_GtkPanelPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index aae817fe41307652816620b25b23052a2d749aeb..3b1c68ab297951c31e3a782e2ff297808eb692d8 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkPopupMenuPeer__
 #define __gnu_java_awt_peer_gtk_GtkPopupMenuPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index a8d2d2589e83da8761f4ec198f6506753761ec42..f52469a3ee926c90d54932b277d35dc91c7fed94 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkScrollPanePeer__
 #define __gnu_java_awt_peer_gtk_GtkScrollPanePeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 397035010d6bf51a9e76ec35c865f2f1b72ef4f9..a96f0f41f726c6bd7d148f38432fcfb4fad036a1 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkScrollbarPeer__
 #define __gnu_java_awt_peer_gtk_GtkScrollbarPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 6a29a433c15b565d922ceb64f37ccf0127ef19ab..5c3de333c6b8eb19dffe2d77f6fe26676f60a4a4 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkSelection__
 #define __gnu_java_awt_peer_gtk_GtkSelection__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index d5f30053851fc9090df294a641b6e9406942f252..b3b754afce7ddc91ff07f42c3e1261b4c976df06 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkTextAreaPeer__
 #define __gnu_java_awt_peer_gtk_GtkTextAreaPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 260c2d75aafebbca476effac8de445c1c870d304..faa6fbea2e9a03919c67e7880c0751e217dd7194 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkTextFieldPeer__
 #define __gnu_java_awt_peer_gtk_GtkTextFieldPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index ad6eb394453d270972e7004ef48b0cf891c2631b..c8d409dd635f0e5ea68620940dbf5596f80356f5 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkToolkit__
 #define __gnu_java_awt_peer_gtk_GtkToolkit__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 43b55e828d353ed8fc5cd8b77fa5f57e6d346964..57bac0d9f484f93b0cf4ba12e3d82b5d303fed61 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkVolatileImage__
 #define __gnu_java_awt_peer_gtk_GtkVolatileImage__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index c9a629a82411b8362e4c9583279433604670c8e6..195121278c9d785080e8fc2eca349d2133879b08 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_gtk_GtkWindowPeer__
 #define __gnu_java_awt_peer_gtk_GtkWindowPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
@@ -27,6 +27,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBoundsU
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocation (JNIEnv *env, jobject, jint, jint);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocationUnlocked (JNIEnv *env, jobject, jint, jint);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setSize (JNIEnv *env, jobject, jint, jint);
+
 #undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_NORMAL
 #define gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_NORMAL 0L
 #undef gnu_java_awt_peer_gtk_GtkWindowPeer_GDK_WINDOW_TYPE_HINT_DIALOG
index eaf863ac5fea4852ede8998c289990835c085a12..73959ac626f24f956dca9c140f999cb3e63d7e60 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_MainQtThread__
 #define __gnu_java_awt_peer_qt_MainQtThread__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 536a1d7c3e3dc82baef7b1ad182823de51e8cb64..c9fb4a18a945dd0ce98ee2fec53b1322eaff9e4c 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QMatrix__
 #define __gnu_java_awt_peer_qt_QMatrix__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index eaea6309cf8fd3d3fdda81d234d2c439b7c02b4d..0ba0cd0f877ce0555b001b366184ec325f50b294 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QPainterPath__
 #define __gnu_java_awt_peer_qt_QPainterPath__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 7ac3320ce1196a9e0d10ffa9ccfd79c3801916ef..f7fc7395a0a59f8640c35da2004411ff547f0b01 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QPen__
 #define __gnu_java_awt_peer_qt_QPen__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index d696a411c6f0219920f4b470946c684abca51a12..04e7cfbde297ebd1a95425830941930d8c875476 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtAudioClip__
 #define __gnu_java_awt_peer_qt_QtAudioClip__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index b7506497114a713d3b3812db7365789433749c02..b5a3c7437ae343a53af534710f692a5091617499 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtButtonPeer__
 #define __gnu_java_awt_peer_qt_QtButtonPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index df12c03b3dbf2895152a1eaea09237b5cc971a60..74c86a8945878a024c4c6a093cdc529505c700db 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtCanvasPeer__
 #define __gnu_java_awt_peer_qt_QtCanvasPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 2d8958e9ec463925c9c48047c90ba7514a973eee..aaee33d428437aca24764cbb96bbde79113ebdfd 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtCheckboxPeer__
 #define __gnu_java_awt_peer_qt_QtCheckboxPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index ad67de4a9a523751336523cbdaf285f03d1dc0b8..ef639faee2c2d7a494c1666669f993b3bfb7a5d3 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtChoicePeer__
 #define __gnu_java_awt_peer_qt_QtChoicePeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 79b3a8b717999e9a6d55fed3edf04c7cd6cabcba..2d92f4ce5ddff0b49f1de3076f642f8618a85b28 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtComponentPeer__
 #define __gnu_java_awt_peer_qt_QtComponentPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
@@ -30,6 +30,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtComponentPeer_requestFocus (J
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtComponentPeer_setEnabled (JNIEnv *env, jobject, jboolean);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtComponentPeer_setVisible (JNIEnv *env, jobject, jboolean);
 JNIEXPORT jobject JNICALL Java_gnu_java_awt_peer_qt_QtComponentPeer_getBounds (JNIEnv *env, jobject);
+
 #undef gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER
 #define gnu_java_awt_peer_qt_QtComponentPeer_POPUP_TRIGGER 3L
 
index 631b85e5e99be76724b0eceffc4745fbd6808f94..0fd19f2aeddaffc7aba6e1a40bb88c4b00b88511 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtDialogPeer__
 #define __gnu_java_awt_peer_qt_QtDialogPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index db9e40cd21eb1e962250f45ddf1ec4b18bc7be01..8913a3b38be63ce89acb32fdb299f94d062a1ff3 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtEmbeddedWindowPeer__
 #define __gnu_java_awt_peer_qt_QtEmbeddedWindowPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 515013b72f00360d41632a86925631cdcc1e8b6e..f1e47368b1fe52d45863737e03a24b9b4728159e 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtFileDialogPeer__
 #define __gnu_java_awt_peer_qt_QtFileDialogPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index ebc607ed34e88f29debd182444258a71a476e402..b07bc9cae709366367399f2de1d750cbe496fc99 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtFontMetrics__
 #define __gnu_java_awt_peer_qt_QtFontMetrics__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 79ab66cb2f49774667aff44f69aa97c90c051f13..3e87d6d20738d8285cd78bdd7d6cb6b2df7282b2 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtFontPeer__
 #define __gnu_java_awt_peer_qt_QtFontPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 019c6cdae53e0e9bc314ebc744b5776ca0743d31..06f1824a85e2276fe199e268e4ea09d854b8d5c1 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtFramePeer__
 #define __gnu_java_awt_peer_qt_QtFramePeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 13a9e818a57c066b2586554c997f16e01e36fc05..f35a182d98e5038de13bd9d9d80b36ca48dc3cef 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtGraphics__
 #define __gnu_java_awt_peer_qt_QtGraphics__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 238415229e4da1688f2b5615cd3df2ac6c039871..cc399b7abadd97fc94b037e46473e00dad4d7a23 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtImage__
 #define __gnu_java_awt_peer_qt_QtImage__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index ece10bc2fd4c21f73b2ec3e633fb8a7ff3021c5e..6707142407779a9783c4645554c5ea6deaa7dbfa 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtLabelPeer__
 #define __gnu_java_awt_peer_qt_QtLabelPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 07477e3e32e68eb712a52aef1bbc459638e33fbf..b08ebf9f18ff62fe6a28c1ad15a1591722b824b6 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtListPeer__
 #define __gnu_java_awt_peer_qt_QtListPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index f4ed76fee262bd72eeb7a528abd7aaa0b5a14286..e70fc1a4cf89ee2b6600fb6926f05f81d3398bab 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtMenuBarPeer__
 #define __gnu_java_awt_peer_qt_QtMenuBarPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 91c9b2686bffd0fda98b075da0059e0c82390165..1447e9d17171a928566a3b764e1006cd46482b28 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtMenuComponentPeer__
 #define __gnu_java_awt_peer_qt_QtMenuComponentPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 9f8d20ed4aabfd3e430bc60f53dd4c66e7298d85..68305654bfaa608ee713ec191622d11cc618b51b 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtMenuItemPeer__
 #define __gnu_java_awt_peer_qt_QtMenuItemPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 2cb185e46c22dc4fddf4dcc5bee4ef2d572dfed5..f37cb3bb1a0ec85c17cd1abb537a6f73c18bdbfb 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtMenuPeer__
 #define __gnu_java_awt_peer_qt_QtMenuPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 00e97082ba6867af0aeb6490972f00475bbb5b64..0b95a62b5fd7ff84a400bf5bd59a55eb0eb90847 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtPanelPeer__
 #define __gnu_java_awt_peer_qt_QtPanelPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 79ee4619df7a123223fd33c9acdadbe2c0bd9af8..70d01b6e20ba81ef930a0d7c6be0f57a11f24bfd 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtPopupMenuPeer__
 #define __gnu_java_awt_peer_qt_QtPopupMenuPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 8fb5c27370050522cb4983a7545d6a30f13f2abc..a35627a68741cc361a77887a18beb57f6ac8001e 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtScreenDevice__
 #define __gnu_java_awt_peer_qt_QtScreenDevice__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index d831dae94bd28daf3429b33328c7bce1fd293fb6..af9412eaf552426e3e03ba4519f0893ff256ef22 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtScrollPanePeer__
 #define __gnu_java_awt_peer_qt_QtScrollPanePeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 2ff22db50f9d7c92bb0b681040697e78984a5c9d..8f3d08e8a971569c84f3e18e613b809e538ccfd9 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtScrollbarPeer__
 #define __gnu_java_awt_peer_qt_QtScrollbarPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 17c2def5c9c5eb1753ce73a8358011ad6c26f6c4..3c8334922c2a1b9e3dcef36709081166d279c8ec 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtTextAreaPeer__
 #define __gnu_java_awt_peer_qt_QtTextAreaPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index d86e1c7fa0ed6273e2a08bf368bbb7772433d986..621c7980777e66172ab28633c409e5ca5334b3f6 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtTextFieldPeer__
 #define __gnu_java_awt_peer_qt_QtTextFieldPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index af882b6cf7031791d5df790cb4333a29f6a9d99a..dd0fa58854a0b0fc09b8e275b7267fa46ff508b2 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtToolkit__
 #define __gnu_java_awt_peer_qt_QtToolkit__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 9fcbc6e38b364d49b5d44b7b1da36cd1ba06f46e..94a3b5dab1d754ddabf779ea0459c829d9280783 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtVolatileImage__
 #define __gnu_java_awt_peer_qt_QtVolatileImage__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index fc29642a2cde755164a7bc5f976fd487cff261b5..64eb5a51eff34fb00f3624f4bead777d4648571c 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_awt_peer_qt_QtWindowPeer__
 #define __gnu_java_awt_peer_qt_QtWindowPeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 3f35dad2182657c8a89d1fee37f95bf2fa8b0d15..747b5e05d35fa138fcb33a699fd879ab0a51c2bf 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_lang_management_VMOperatingSystemMXBeanImpl__
 #define __gnu_java_lang_management_VMOperatingSystemMXBeanImpl__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index ef3c3a4678448fe518a2eb552b367a22c84ae5de..a88320bd68975aefdec44da9437432d13477466d 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_net_VMPlainSocketImpl__
 #define __gnu_java_net_VMPlainSocketImpl__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
@@ -29,6 +29,7 @@ JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6 (JNIEnv *
 JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_shutdownInput (JNIEnv *env, jclass, jint);
 JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_shutdownOutput (JNIEnv *env, jclass, jint);
 JNIEXPORT void JNICALL Java_gnu_java_net_VMPlainSocketImpl_sendUrgentData (JNIEnv *env, jclass, jint, jint);
+
 #undef gnu_java_net_VMPlainSocketImpl_CP_IP_TTL
 #define gnu_java_net_VMPlainSocketImpl_CP_IP_TTL 7777L
 
index b1f1fcd84cbe93a30e81ec6fd57821be55d4f3af..6e3509521424668dd16714caa56b8a68db2adc1b 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_net_local_LocalSocketImpl__
 #define __gnu_java_net_local_LocalSocketImpl__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 0e43d1ce9fcca9f4b98aaae978b28824ccea3526..71747a96025d2ac144c6cc87f00f8e109bae10b4 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_nio_EpollSelectorImpl__
 #define __gnu_java_nio_EpollSelectorImpl__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
@@ -19,6 +19,7 @@ JNIEXPORT void JNICALL Java_gnu_java_nio_EpollSelectorImpl_epoll_1delete (JNIEnv
 JNIEXPORT jint JNICALL Java_gnu_java_nio_EpollSelectorImpl_epoll_1wait (JNIEnv *env, jclass, jint, jobject, jint, jint);
 JNIEXPORT jint JNICALL Java_gnu_java_nio_EpollSelectorImpl_selected_1fd (JNIEnv *env, jclass, jobject);
 JNIEXPORT jint JNICALL Java_gnu_java_nio_EpollSelectorImpl_selected_1ops (JNIEnv *env, jclass, jobject);
+
 #undef gnu_java_nio_EpollSelectorImpl_DEFAULT_EPOLL_SIZE
 #define gnu_java_nio_EpollSelectorImpl_DEFAULT_EPOLL_SIZE 128L
 #undef gnu_java_nio_EpollSelectorImpl_OP_ACCEPT
index 43000114cc45b7d7a7da2a95a66cb272b52d2236..4bcc222d3ab56e8748b03d578f30746ff9b13cad 100644 (file)
@@ -1,15 +1,16 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_nio_FileChannelImpl__
 #define __gnu_java_nio_FileChannelImpl__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
 #endif
 
+
 #undef gnu_java_nio_FileChannelImpl_READ
 #define gnu_java_nio_FileChannelImpl_READ 1L
 #undef gnu_java_nio_FileChannelImpl_WRITE
index acfdeaae7f7213a49195781bc3747afe64949e99..1504d35e24eef2cf875108bfe2de43f988c4f3d2 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_nio_KqueueSelectorImpl__
 #define __gnu_java_nio_KqueueSelectorImpl__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
@@ -19,6 +19,7 @@ JNIEXPORT jint JNICALL Java_gnu_java_nio_KqueueSelectorImpl_kevent (JNIEnv *env,
 JNIEXPORT jint JNICALL Java_gnu_java_nio_KqueueSelectorImpl_fetch_1key (JNIEnv *env, jclass, jobject);
 JNIEXPORT jint JNICALL Java_gnu_java_nio_KqueueSelectorImpl_ready_1ops (JNIEnv *env, jclass, jobject, jint);
 JNIEXPORT jboolean JNICALL Java_gnu_java_nio_KqueueSelectorImpl_check_1eof (JNIEnv *env, jclass, jobject);
+
 #undef gnu_java_nio_KqueueSelectorImpl_MAX_DOUBLING_CAPACITY
 #define gnu_java_nio_KqueueSelectorImpl_MAX_DOUBLING_CAPACITY 16384L
 #undef gnu_java_nio_KqueueSelectorImpl_CAP_INCREMENT
index dd023816c39b2e0b503f157557c82d48d6058c15..149de8811d3c6d6db79a93c23bef34cb06d3e252 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_nio_VMChannel__
 #define __gnu_java_nio_VMChannel__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 2088e55dcd2eedabd8c5489cbe77f82a249425e3..bcb51317e75775f01d67f5b0221affa61b87d152 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_nio_VMPipe__
 #define __gnu_java_nio_VMPipe__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 495f0108c5af2e00d0f5f80d798fe63ab7127c70..b570b28225230b5825161027f3bcc131175ece28 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_nio_VMSelector__
 #define __gnu_java_nio_VMSelector__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 2544188ca2d6cde1762bdf5b2162b58fd1d2d251..c708d75b73163c1e4e6c62b9f28d5520e7cc0e75 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_nio_charset_iconv_IconvDecoder__
 #define __gnu_java_nio_charset_iconv_IconvDecoder__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 06dd74dfd3d7e238669b11e0f75396ca7ee2b2a7..f460d0109a996cacea92da8f3976b566b8fb1a4a 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_nio_charset_iconv_IconvEncoder__
 #define __gnu_java_nio_charset_iconv_IconvEncoder__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index cc71b4097be5e1c65fc671502745e8c8fd59dd86..d63f049c9014b9ede5b69e26f64a946779098a1c 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_java_util_prefs_gconf_GConfNativePeer__
 #define __gnu_java_util_prefs_gconf_GConfNativePeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 8e3ed710450cd66f7f2d4da263585c23758e638e..e16d8f6505d4f6af94edb0d2ff08ba460928346c 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider__
 #define __gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index e6205394c6b008e1547b2a228390a5ad0dd08e72..33e84ee5d47c137ecfda36043b5b80d0d241b7d6 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice__
 #define __gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 30fae5ff78af4f137305b72ea7e3aa76796e5236..7b1a122478a03e3787a4ca081a021af717c6a0bf 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_javax_sound_midi_alsa_AlsaPortDevice__
 #define __gnu_javax_sound_midi_alsa_AlsaPortDevice__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 6306a3e7a64789b6cf77784e1825946b8bce3cfb..6615efc95498099a862b3b68a131a711de51595e 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider__
 #define __gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 3cb0b77e6c2175443a73f1cd222c53d65dde28d1..5ae71c8aeb8a68a9cd480a119cf16cdf9b1c4492 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_javax_sound_midi_dssi_DSSISynthesizer__
 #define __gnu_javax_sound_midi_dssi_DSSISynthesizer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 509a43cd9469d19431a4c202e5cb82783cb3b54f..2bb4122e3f65087fb5c512fb9faec1f1bfbe7ba2 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer__
 #define __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
@@ -12,6 +12,7 @@ extern "C"
 
 JNIEXPORT jboolean JNICALL Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_gstreamer_1get_1audio_1format_1stream (JNIEnv *env, jclass, jobject, jobject);
 JNIEXPORT jboolean JNICALL Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_gstreamer_1get_1audio_1format_1file (JNIEnv *env, jclass, jobject);
+JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_init_1id_1cache (JNIEnv *env, jclass);
 
 #ifdef __cplusplus
 }
diff --git a/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h b/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h
new file mode 100644 (file)
index 0000000..15fd943
--- /dev/null
@@ -0,0 +1,20 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+
+#include <jni.h>
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_io_GstInputStream__
+#define __gnu_javax_sound_sampled_gstreamer_io_GstInputStream__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_io_GstInputStream_init_1instance (JNIEnv *env, jobject);
+JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_io_GstInputStream_init_1id_1cache (JNIEnv *env, jclass);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __gnu_javax_sound_sampled_gstreamer_io_GstInputStream__ */
diff --git a/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h b/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h
new file mode 100644 (file)
index 0000000..93910a3
--- /dev/null
@@ -0,0 +1,20 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+
+#include <jni.h>
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine__
+#define __gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine_init_1id_1cache (JNIEnv *env, jclass);
+JNIEXPORT jboolean JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine_setup_1sink_1pipeline (JNIEnv *env, jclass, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine__ */
diff --git a/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h b/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h
new file mode 100644 (file)
index 0000000..dbf13b0
--- /dev/null
@@ -0,0 +1,33 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+
+#include <jni.h>
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline__
+#define __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_init_1id_1cache (JNIEnv *env, jclass);
+JNIEXPORT jboolean JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_set_1state (JNIEnv *env, jclass, jobject, jint);
+JNIEXPORT jint JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_available (JNIEnv *env, jclass, jobject, jint);
+JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_open_1native_1pipe (JNIEnv *env, jclass, jobject, jint);
+JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_close_1native_1pipe (JNIEnv *env, jclass, jobject);
+JNIEXPORT void JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_init_1instance (JNIEnv *env, jobject);
+JNIEXPORT jboolean JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_create_1named_1pipe (JNIEnv *env, jobject, jobject);
+JNIEXPORT jlong JNICALL Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_detect_1pipe_1size (JNIEnv *env, jobject);
+
+#undef gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_READ
+#define gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_READ 0L
+#undef gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_WRITE
+#define gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_WRITE 1L
+#undef gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_QUEUED
+#define gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_QUEUED 1L
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline__ */
index 6cd2288edb7d4a6d2fec032e16cc7396017e5bcf..be6bc75fa99262faea83caff4fe60189117f9a70 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_dom_GnomeAttr__
 #define __gnu_xml_libxmlj_dom_GnomeAttr__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 7b8b61f15c29511c4f7611a8acd8064bfc9af892..80332ab477e6a55f0699f261642d07bba5085598 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_dom_GnomeDocument__
 #define __gnu_xml_libxmlj_dom_GnomeDocument__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 1dc34a8c1a4255bc3cc5fd9a8208d222cb9dc4df..433d860669a6892587d708a147bf9cd1bdd0cd9e 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_dom_GnomeDocumentBuilder__
 #define __gnu_xml_libxmlj_dom_GnomeDocumentBuilder__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 7b7e278bba5ec70287178a2bd334417fa2a2da75..75d14b94faac63a794ed536f4ba3f49eb1caf4ab 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_dom_GnomeDocumentType__
 #define __gnu_xml_libxmlj_dom_GnomeDocumentType__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 47ad152de1c69cd71260d244951d485b692bce48..66cffb557555604508f5d5474b2a3851657caf92 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_dom_GnomeElement__
 #define __gnu_xml_libxmlj_dom_GnomeElement__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 245e556d5970f771c108628617b6abc3951faecc..3ad5c715d155875420b240776e55519db2662a2b 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_dom_GnomeEntity__
 #define __gnu_xml_libxmlj_dom_GnomeEntity__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index d55edbaf7fd13cbc6c1ce2373f276b25cbf651f5..b8a0159a2b0d1151d6f153c11258e13b2e19aae3 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_dom_GnomeNamedNodeMap__
 #define __gnu_xml_libxmlj_dom_GnomeNamedNodeMap__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 860a2e9b4034a8508ee5752ae0251bd3b5423071..319dac9d71fde29b9e40bf28796e7e3c75d6d6ef 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_dom_GnomeNode__
 #define __gnu_xml_libxmlj_dom_GnomeNode__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 941a1487a1219a1765c69b95e6c0ff9e7f89981f..3a4d743b1247665f8851d1b5a2567b715979fbb6 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_dom_GnomeNodeList__
 #define __gnu_xml_libxmlj_dom_GnomeNodeList__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 600a055cf3c96ce068952eab14d4ae19b19c2f86..88fb95d4623dfdf7ebdefa9dd98170c169f21437 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_dom_GnomeNotation__
 #define __gnu_xml_libxmlj_dom_GnomeNotation__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 4682cc253b73abdf101f98bd0d2c814b6dc8425a..86184ad349dbc0aa405162dfd1a061675ed33564 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_dom_GnomeProcessingInstruction__
 #define __gnu_xml_libxmlj_dom_GnomeProcessingInstruction__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 2dc16cd9e61efc5c9d79e54e4abb796069493038..98034032892360217c4c000ed57a3749842df4b9 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_dom_GnomeTypeInfo__
 #define __gnu_xml_libxmlj_dom_GnomeTypeInfo__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index c4b17ff8e6413a7f8947345677f280adf8ebae7e..5ae7969c5196e3c9c61aba468f5ea2fe3f13d15a 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_dom_GnomeXPathExpression__
 #define __gnu_xml_libxmlj_dom_GnomeXPathExpression__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index ec9b85c6f8e7e2cfadf3d274fcd761c6bb2acb01..7827bca8db8a24fbf5f2bb3a1c64249cb1637faa 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_dom_GnomeXPathNodeList__
 #define __gnu_xml_libxmlj_dom_GnomeXPathNodeList__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index a58922fa8e5dac605b9c7eeda059066e2496612e..c8ce1bb6f896885e46c72770464b52f11fc28278 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_dom_GnomeXPathResult__
 #define __gnu_xml_libxmlj_dom_GnomeXPathResult__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index da49cb70aa556fbb831e4d410f0e3501cbc01a34..393ea5d0d9312badeb75cbbb97b792680504c0a1 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_sax_GnomeLocator__
 #define __gnu_xml_libxmlj_sax_GnomeLocator__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 17215c07a2d94033a7ddd52410bb576ee1cdd319..7caef7b8f0db610e8a0a1b9e946976c8ef925669 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_sax_GnomeXMLReader__
 #define __gnu_xml_libxmlj_sax_GnomeXMLReader__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index f47338e3a7e2ff2d97ad1abfed5b9d62c11a209c..c375211e1aa242df5af13f07cff499d8321cdc8d 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_transform_GnomeTransformer__
 #define __gnu_xml_libxmlj_transform_GnomeTransformer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 616e552eab804b1368180e880e5189d6a64e3e55..9abb1ff0bc1f80d5fd98dfa6ad27f0fb03de0c65 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __gnu_xml_libxmlj_transform_GnomeTransformerFactory__
 #define __gnu_xml_libxmlj_transform_GnomeTransformerFactory__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 4b0273d11440c52d6a409ba8566c25a8762c5ca4..2702176744c419b7b1aecbc6a4176c546c4dfc32 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __java_io_VMFile__
 #define __java_io_VMFile__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
@@ -20,6 +20,9 @@ JNIEXPORT jboolean JNICALL Java_java_io_VMFile_exists (JNIEnv *env, jclass, jstr
 JNIEXPORT jboolean JNICALL Java_java_io_VMFile_delete (JNIEnv *env, jclass, jstring);
 JNIEXPORT jboolean JNICALL Java_java_io_VMFile_setLastModified (JNIEnv *env, jclass, jstring, jlong);
 JNIEXPORT jboolean JNICALL Java_java_io_VMFile_mkdir (JNIEnv *env, jclass, jstring);
+JNIEXPORT jlong JNICALL Java_java_io_VMFile_getTotalSpace (JNIEnv *env, jclass, jstring);
+JNIEXPORT jlong JNICALL Java_java_io_VMFile_getFreeSpace (JNIEnv *env, jclass, jstring);
+JNIEXPORT jlong JNICALL Java_java_io_VMFile_getUsableSpace (JNIEnv *env, jclass, jstring);
 JNIEXPORT jboolean JNICALL Java_java_io_VMFile_setReadable (JNIEnv *env, jclass, jstring, jboolean, jboolean);
 JNIEXPORT jboolean JNICALL Java_java_io_VMFile_setWritable (JNIEnv *env, jclass, jstring, jboolean, jboolean);
 JNIEXPORT jboolean JNICALL Java_java_io_VMFile_setExecutable (JNIEnv *env, jclass, jstring, jboolean, jboolean);
@@ -29,6 +32,7 @@ JNIEXPORT jboolean JNICALL Java_java_io_VMFile_canRead (JNIEnv *env, jclass, jst
 JNIEXPORT jboolean JNICALL Java_java_io_VMFile_canExecute (JNIEnv *env, jclass, jstring);
 JNIEXPORT jboolean JNICALL Java_java_io_VMFile_isDirectory (JNIEnv *env, jclass, jstring);
 JNIEXPORT jstring JNICALL Java_java_io_VMFile_toCanonicalForm (JNIEnv *env, jclass, jstring);
+
 #undef java_io_VMFile_IS_CASE_SENSITIVE
 #define java_io_VMFile_IS_CASE_SENSITIVE 1L
 #undef java_io_VMFile_IS_DOS_8_3
index 42dce2286380c40f33ade8d01349c5a0f5b21adc..a17ee05f360ce8f64aea466492027f565f833e69 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __java_io_VMObjectInputStream__
 #define __java_io_VMObjectInputStream__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index d131056baedbe845b583fdf636d77d9779b9aec3..78fdd99f5c3cb5da31414bd4216575102c02604c 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __java_io_VMObjectStreamClass__
 #define __java_io_VMObjectStreamClass__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 8f04dcae50e8a2b12620404458ef619335ece6f7..bafcbec04bc99ca4d47b19b6e5e2097133588352 100644 (file)
@@ -1,16 +1,15 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __java_lang_VMDouble__
 #define __java_lang_VMDouble__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
 #endif
 
-JNIEXPORT jlong JNICALL Java_java_lang_VMDouble_doubleToLongBits (JNIEnv *env, jclass, jdouble);
 JNIEXPORT jlong JNICALL Java_java_lang_VMDouble_doubleToRawLongBits (JNIEnv *env, jclass, jdouble);
 JNIEXPORT jdouble JNICALL Java_java_lang_VMDouble_longBitsToDouble (JNIEnv *env, jclass, jlong);
 JNIEXPORT jstring JNICALL Java_java_lang_VMDouble_toString (JNIEnv *env, jclass, jdouble, jboolean);
index ed5df7f96ebf3ffad94fb2c96dda6bd47ea246b1..79016bebdf207dbc001f2ef59968716501beb0a2 100644 (file)
@@ -1,16 +1,15 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __java_lang_VMFloat__
 #define __java_lang_VMFloat__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
 #endif
 
-JNIEXPORT jint JNICALL Java_java_lang_VMFloat_floatToIntBits (JNIEnv *env, jclass, jfloat);
 JNIEXPORT jint JNICALL Java_java_lang_VMFloat_floatToRawIntBits (JNIEnv *env, jclass, jfloat);
 JNIEXPORT jfloat JNICALL Java_java_lang_VMFloat_intBitsToFloat (JNIEnv *env, jclass, jint);
 
index b2a2c3b4687e96b32092967349951ec837423f91..7f381fc9ac7583c1b8f79f94d2cfe09f4543b057 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __java_lang_VMMath__
 #define __java_lang_VMMath__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 22617816d28e2a15a75e1c9cecb8ab2a8bb6d5de..67614243f26ee1485c6c10f42ea3f9ca6cb0c777 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __java_lang_VMProcess__
 #define __java_lang_VMProcess__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
@@ -13,6 +13,7 @@ extern "C"
 JNIEXPORT void JNICALL Java_java_lang_VMProcess_nativeSpawn (JNIEnv *env, jobject, jobjectArray, jobjectArray, jobject, jboolean);
 JNIEXPORT jboolean JNICALL Java_java_lang_VMProcess_nativeReap (JNIEnv *env, jclass);
 JNIEXPORT void JNICALL Java_java_lang_VMProcess_nativeKill (JNIEnv *env, jclass, jlong);
+
 #undef java_lang_VMProcess_INITIAL
 #define java_lang_VMProcess_INITIAL 0L
 #undef java_lang_VMProcess_RUNNING
index 1bc55cf9d5ab1be75e0b0b327be42ce80cb8ce4c..020cc30d452e5187b7674ea5347a0bb97fc506e6 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __java_lang_VMSystem__
 #define __java_lang_VMSystem__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index a92b6854cb1611b5aa3eb159a4068d79b1c9faee..abf32a59b750d5d3e6f14e66930b79cf93d6ecc8 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __java_lang_reflect_VMArray__
 #define __java_lang_reflect_VMArray__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 66f4735772a1ceaf1c4bc931435d4743eb4c2d70..21fc912d45132ec8129d2abb390625fafccfac56 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __java_net_VMInetAddress__
 #define __java_net_VMInetAddress__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index b53bda565e7734508239529d53197cc56c82218d..ff95094a223068bdf0dc8b2310bba8fcd6d5fc2c 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __java_net_VMNetworkInterface__
 #define __java_net_VMNetworkInterface__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 270a14a75f655ae752cb0f7c157c3065aec55bd8..73699f8d28a89f8d84582edfcf75e823df39959a 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __java_net_VMURLConnection__
 #define __java_net_VMURLConnection__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
@@ -12,6 +12,7 @@ extern "C"
 
 JNIEXPORT void JNICALL Java_java_net_VMURLConnection_init (JNIEnv *env, jclass);
 JNIEXPORT jstring JNICALL Java_java_net_VMURLConnection_guessContentTypeFromBuffer (JNIEnv *env, jclass, jbyteArray, jint);
+
 #undef java_net_VMURLConnection_LENGTH
 #define java_net_VMURLConnection_LENGTH 1024L
 
index 0ce8b90824267cec67aef52a0a42f3fcaeb5483d..00810dbc1dcbbd7a4d35a97051fe03efddc18061 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __java_nio_MappedByteBufferImpl__
 #define __java_nio_MappedByteBufferImpl__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 3214d38e3c0dbe748286de2f3fc87370c847415f..abeaad1a8bbe8e547f47004ae1b3f5db8a4b4bc0 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __java_nio_VMDirectByteBuffer__
 #define __java_nio_VMDirectByteBuffer__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 8431e67b4413bee5346dd3e7214f6ee97148a72f..e1fc2fd0200db1981651e5b198f6626c424a0343 100644 (file)
@@ -1,10 +1,10 @@
 /* DO NOT EDIT THIS FILE - it is machine generated */
 
+#include <jni.h>
+
 #ifndef __java_util_VMTimeZone__
 #define __java_util_VMTimeZone__
 
-#include <jni.h>
-
 #ifdef __cplusplus
 extern "C"
 {
index 1c9be9584c08a4b914bdb14021e795c0bcca5c6f..707edd612637d01782ead75e4ac34391444d6080 100644 (file)
@@ -136,12 +136,23 @@ struct _jfieldID;
 struct _jmethodID;
 typedef struct _jfieldID *jfieldID;
 typedef struct _jmethodID *jmethodID;
+
+enum _jobjectRefType
+{
+  JNIInvalidRefType    = 0,
+  JNILocalRefType      = 1,
+  JNIGlobalRefType     = 2,
+  JNIWeakGlobalRefType = 3 
+};
+
+typedef enum _jobjectRefType jobjectRefType;
 #endif 
 
 /* Version numbers.  */
 #define JNI_VERSION_1_1 0x00010001
 #define JNI_VERSION_1_2 0x00010002
 #define JNI_VERSION_1_4 0x00010004
+#define JNI_VERSION_1_6 0x00010006
 
 /* Used when releasing array elements.  */
 #define JNI_COMMIT 1
@@ -612,6 +623,7 @@ struct JNINativeInterface_
   jint     (JNICALL *GetJavaVM)                    (JNIEnv *, JavaVM **);
 
   /* ---- JNI 1.2 functions ---- */
+
   void    (JNICALL *GetStringRegion)              (JNIEnv *, jstring, jsize,
                                                    jsize, jchar *);
   void     (JNICALL *GetStringUTFRegion)          (JNIEnv *, jstring, jsize,
@@ -633,9 +645,14 @@ struct JNINativeInterface_
   jboolean     (JNICALL *ExceptionCheck)          (JNIEnv *);
 
   /* ---- JNI 1.4 functions ---- */
+
   jobject (JNICALL *NewDirectByteBuffer)           (JNIEnv *, void *, jlong);
   void *  (JNICALL *GetDirectBufferAddress)        (JNIEnv *, jobject);
   jlong   (JNICALL *GetDirectBufferCapacity)       (JNIEnv *, jobject);
+
+  /* ---- JNI 1.6 functions ---- */
+
+  jobjectRefType (JNICALL *GetObjectRefType)       (JNIEnv *, jobject);
 };
 
 #ifdef __cplusplus
@@ -1488,6 +1505,8 @@ public:
   jint GetJavaVM (JavaVM ** val0)
   { return p->GetJavaVM (this, val0); }
 
+  /* ---- JNI 1.2 functions ---- */
+
   void GetStringRegion (jstring val0, jsize val1, jsize val2, jchar * val3)
   { p->GetStringRegion (this, val0, val1, val2, val3); }
 
@@ -1515,6 +1534,8 @@ public:
   jboolean ExceptionCheck ()
   { return p->ExceptionCheck (this); }
 
+  /* ---- JNI 1.4 functions ---- */
+
   jobject NewDirectByteBuffer (void *addr, jlong capacity)
   { return p->NewDirectByteBuffer (this, addr, capacity); }
 
@@ -1523,6 +1544,11 @@ public:
 
   jlong GetDirectBufferCapacity (jobject buf)
   { return p->GetDirectBufferCapacity (this, buf); }
+
+  /* ---- JNI 1.6 functions ---- */
+
+  jobjectRefType GetObjectRefType (jobject obj)
+  { return p->GetObjectRefType (this, obj); }
 };
 
 #endif /* __cplusplus */
index 4d4a9519eaf88b18fb157dfe5fae59c1c5d005c7..a5897de6ea7f74f83fd793474bb4738d32884719 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2005-05-14.22
+scriptversion=2006-12-25.00
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -39,38 +39,68 @@ scriptversion=2005-05-14.22
 # when there is no Makefile.
 #
 # This script is compatible with the BSD install script, but was written
-# from scratch.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
+# from scratch.
+
+nl='
+'
+IFS=" ""       $nl"
 
 # set DOITPROG to echo to test this script
 
 # Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
+doit=${DOITPROG-}
+if test -z "$doit"; then
+  doit_exec=exec
+else
+  doit_exec=$doit
+fi
 
-# put in absolute paths if you don't have them in your path; or use env. vars.
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+  test "$posix_glob" != "?" || {
+    if (set -f) 2>/dev/null; then
+      posix_glob=
+    else
+      posix_glob=:
+    fi
+  }
+'
 
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
 
-chmodcmd="$chmodprog 0755"
-chowncmd=
 chgrpcmd=
-stripcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
 rmcmd="$rmprog -f"
-mvcmd="$mvprog"
+stripcmd=
+
 src=
 dst=
 dir_arg=
-dstarg=
+dst_arg=
+
+copy_on_change=false
 no_target_directory=
 
-usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
    or: $0 [OPTION]... SRCFILES... DIRECTORY
    or: $0 [OPTION]... -t DIRECTORY SRCFILES...
    or: $0 [OPTION]... -d DIRECTORIES...
@@ -80,81 +110,86 @@ In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
 In the 4th, create DIRECTORIES.
 
 Options:
--c         (ignored)
--d         create directories instead of installing files.
--g GROUP   $chgrpprog installed files to GROUP.
--m MODE    $chmodprog installed files to MODE.
--o USER    $chownprog installed files to USER.
--s         $stripprog installed files.
--t DIRECTORY  install into DIRECTORY.
--T         report an error if DSTFILE is a directory.
---help     display this help and exit.
---version  display version info and exit.
+     --help     display this help and exit.
+     --version  display version info and exit.
+
+  -c            (ignored)
+  -C            install only if different (preserve the last data modification time)
+  -d            create directories instead of installing files.
+  -g GROUP      $chgrpprog installed files to GROUP.
+  -m MODE       $chmodprog installed files to MODE.
+  -o USER       $chownprog installed files to USER.
+  -s            $stripprog installed files.
+  -t DIRECTORY  install into DIRECTORY.
+  -T            report an error if DSTFILE is a directory.
 
 Environment variables override the default commands:
-  CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
+  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+  RMPROG STRIPPROG
 "
 
-while test -n "$1"; do
+while test $# -ne 0; do
   case $1 in
-    -c) shift
-        continue;;
+    -c) ;;
+
+    -C) copy_on_change=true;;
 
-    -d) dir_arg=true
-        shift
-        continue;;
+    -d) dir_arg=true;;
 
     -g) chgrpcmd="$chgrpprog $2"
-        shift
-        shift
-        continue;;
+       shift;;
 
     --help) echo "$usage"; exit $?;;
 
-    -m) chmodcmd="$chmodprog $2"
-        shift
-        shift
-        continue;;
+    -m) mode=$2
+       case $mode in
+         *' '* | *'    '* | *'
+'*       | *'*'* | *'?'* | *'['*)
+           echo "$0: invalid mode: $mode" >&2
+           exit 1;;
+       esac
+       shift;;
 
     -o) chowncmd="$chownprog $2"
-        shift
-        shift
-        continue;;
+       shift;;
 
-    -s) stripcmd=$stripprog
-        shift
-        continue;;
+    -s) stripcmd=$stripprog;;
 
-    -t) dstarg=$2
-       shift
-       shift
-       continue;;
+    -t) dst_arg=$2
+       shift;;
 
-    -T) no_target_directory=true
-       shift
-       continue;;
+    -T) no_target_directory=true;;
 
     --version) echo "$0 $scriptversion"; exit $?;;
 
-    *)  # When -d is used, all remaining arguments are directories to create.
-       # When -t is used, the destination is already specified.
-       test -n "$dir_arg$dstarg" && break
-        # Otherwise, the last argument is the destination.  Remove it from $@.
-       for arg
-       do
-          if test -n "$dstarg"; then
-           # $@ is not empty: it contains at least $arg.
-           set fnord "$@" "$dstarg"
-           shift # fnord
-         fi
-         shift # arg
-         dstarg=$arg
-       done
+    --)        shift
        break;;
+
+    -*)        echo "$0: invalid option: $1" >&2
+       exit 1;;
+
+    *)  break;;
   esac
+  shift
 done
 
-if test -z "$1"; then
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+  # When -d is used, all remaining arguments are directories to create.
+  # When -t is used, the destination is already specified.
+  # Otherwise, the last argument is the destination.  Remove it from $@.
+  for arg
+  do
+    if test -n "$dst_arg"; then
+      # $@ is not empty: it contains at least $arg.
+      set fnord "$@" "$dst_arg"
+      shift # fnord
+    fi
+    shift # arg
+    dst_arg=$arg
+  done
+fi
+
+if test $# -eq 0; then
   if test -z "$dir_arg"; then
     echo "$0: no input file specified." >&2
     exit 1
@@ -164,24 +199,47 @@ if test -z "$1"; then
   exit 0
 fi
 
+if test -z "$dir_arg"; then
+  trap '(exit $?); exit' 1 2 13 15
+
+  # Set umask so as not to create temps with too-generous modes.
+  # However, 'strip' requires both read and write access to temps.
+  case $mode in
+    # Optimize common cases.
+    *644) cp_umask=133;;
+    *755) cp_umask=22;;
+
+    *[0-7])
+      if test -z "$stripcmd"; then
+       u_plus_rw=
+      else
+       u_plus_rw='% 200'
+      fi
+      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+    *)
+      if test -z "$stripcmd"; then
+       u_plus_rw=
+      else
+       u_plus_rw=,u+rw
+      fi
+      cp_umask=$mode$u_plus_rw;;
+  esac
+fi
+
 for src
 do
   # Protect names starting with `-'.
   case $src in
-    -*) src=./$src ;;
+    -*) src=./$src;;
   esac
 
   if test -n "$dir_arg"; then
     dst=$src
-    src=
-
-    if test -d "$dst"; then
-      mkdircmd=:
-      chmodcmd=
-    else
-      mkdircmd=$mkdirprog
-    fi
+    dstdir=$dst
+    test -d "$dstdir"
+    dstdir_status=$?
   else
+
     # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
     # might cause directories to be created, which would be especially bad
     # if $src (and thus $dsttmp) contains '*'.
@@ -190,71 +248,199 @@ do
       exit 1
     fi
 
-    if test -z "$dstarg"; then
+    if test -z "$dst_arg"; then
       echo "$0: no destination specified." >&2
       exit 1
     fi
 
-    dst=$dstarg
+    dst=$dst_arg
     # Protect names starting with `-'.
     case $dst in
-      -*) dst=./$dst ;;
+      -*) dst=./$dst;;
     esac
 
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
     if test -d "$dst"; then
       if test -n "$no_target_directory"; then
-       echo "$0: $dstarg: Is a directory" >&2
+       echo "$0: $dst_arg: Is a directory" >&2
        exit 1
       fi
-      dst=$dst/`basename "$src"`
+      dstdir=$dst
+      dst=$dstdir/`basename "$src"`
+      dstdir_status=0
+    else
+      # Prefer dirname, but fall back on a substitute if dirname fails.
+      dstdir=`
+       (dirname "$dst") 2>/dev/null ||
+       expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+            X"$dst" : 'X\(//\)[^/]' \| \
+            X"$dst" : 'X\(//\)$' \| \
+            X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+       echo X"$dst" |
+           sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\/\)[^/].*/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\/\)$/{
+                  s//\1/
+                  q
+                }
+                /^X\(\/\).*/{
+                  s//\1/
+                  q
+                }
+                s/.*/./; q'
+      `
+
+      test -d "$dstdir"
+      dstdir_status=$?
     fi
   fi
 
-  # This sed command emulates the dirname command.
-  dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
+  obsolete_mkdir_used=false
+
+  if test $dstdir_status != 0; then
+    case $posix_mkdir in
+      '')
+       # Create intermediate dirs using mode 755 as modified by the umask.
+       # This is like FreeBSD 'install' as of 1997-10-28.
+       umask=`umask`
+       case $stripcmd.$umask in
+         # Optimize common cases.
+         *[2367][2367]) mkdir_umask=$umask;;
+         .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+         *[0-7])
+           mkdir_umask=`expr $umask + 22 \
+             - $umask % 100 % 40 + $umask % 20 \
+             - $umask % 10 % 4 + $umask % 2
+           `;;
+         *) mkdir_umask=$umask,go-w;;
+       esac
+
+       # With -d, create the new directory with the user-specified mode.
+       # Otherwise, rely on $mkdir_umask.
+       if test -n "$dir_arg"; then
+         mkdir_mode=-m$mode
+       else
+         mkdir_mode=
+       fi
+
+       posix_mkdir=false
+       case $umask in
+         *[123567][0-7][0-7])
+           # POSIX mkdir -p sets u+wx bits regardless of umask, which
+           # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+           ;;
+         *)
+           tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+           trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+           if (umask $mkdir_umask &&
+               exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+           then
+             if test -z "$dir_arg" || {
+                  # Check for POSIX incompatibilities with -m.
+                  # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+                  # other-writeable bit of parent directory when it shouldn't.
+                  # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+                  ls_ld_tmpdir=`ls -ld "$tmpdir"`
+                  case $ls_ld_tmpdir in
+                    d????-?r-*) different_mode=700;;
+                    d????-?--*) different_mode=755;;
+                    *) false;;
+                  esac &&
+                  $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+                    ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+                    test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                  }
+                }
+             then posix_mkdir=:
+             fi
+             rmdir "$tmpdir/d" "$tmpdir"
+           else
+             # Remove any dirs left behind by ancient mkdir implementations.
+             rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+           fi
+           trap '' 0;;
+       esac;;
+    esac
 
-  # Make sure that the destination directory exists.
+    if
+      $posix_mkdir && (
+       umask $mkdir_umask &&
+       $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+      )
+    then :
+    else
 
-  # Skip lots of stat calls in the usual case.
-  if test ! -d "$dstdir"; then
-    defaultIFS='
-        '
-    IFS="${IFS-$defaultIFS}"
+      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # or it failed possibly due to a race condition.  Create the
+      # directory the slow way, step by step, checking for races as we go.
 
-    oIFS=$IFS
-    # Some sh's can't handle IFS=/ for some reason.
-    IFS='%'
-    set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-    shift
-    IFS=$oIFS
+      case $dstdir in
+       /*) prefix='/';;
+       -*) prefix='./';;
+       *)  prefix='';;
+      esac
 
-    pathcomp=
+      eval "$initialize_posix_glob"
 
-    while test $# -ne 0 ; do
-      pathcomp=$pathcomp$1
+      oIFS=$IFS
+      IFS=/
+      $posix_glob set -f
+      set fnord $dstdir
       shift
-      if test ! -d "$pathcomp"; then
-        $mkdirprog "$pathcomp"
-       # mkdir can fail with a `File exist' error in case several
-       # install-sh are creating the directory concurrently.  This
-       # is OK.
-       test -d "$pathcomp" || exit
+      $posix_glob set +f
+      IFS=$oIFS
+
+      prefixes=
+
+      for d
+      do
+       test -z "$d" && continue
+
+       prefix=$prefix$d
+       if test -d "$prefix"; then
+         prefixes=
+       else
+         if $posix_mkdir; then
+           (umask=$mkdir_umask &&
+            $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+           # Don't fail if two instances are running concurrently.
+           test -d "$prefix" || exit 1
+         else
+           case $prefix in
+             *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+             *) qprefix=$prefix;;
+           esac
+           prefixes="$prefixes '$qprefix'"
+         fi
+       fi
+       prefix=$prefix/
+      done
+
+      if test -n "$prefixes"; then
+       # Don't fail if two instances are running concurrently.
+       (umask $mkdir_umask &&
+        eval "\$doit_exec \$mkdirprog $prefixes") ||
+         test -d "$dstdir" || exit 1
+       obsolete_mkdir_used=true
       fi
-      pathcomp=$pathcomp/
-    done
+    fi
   fi
 
   if test -n "$dir_arg"; then
-    $doit $mkdircmd "$dst" \
-      && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
-
+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
   else
-    dstfile=`basename "$dst"`
 
     # Make a couple of temp file names in the proper directory.
     dsttmp=$dstdir/_inst.$$_
@@ -262,10 +448,9 @@ do
 
     # Trap to clean up those temp files at exit.
     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-    trap '(exit $?); exit' 1 2 13 15
 
     # Copy the file name to the temp name.
-    $doit $cpprog "$src" "$dsttmp" &&
+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
 
     # and set any options; do chmod last to preserve setuid bits.
     #
@@ -273,48 +458,59 @@ do
     # ignore errors from any of these, just make sure not to ignore
     # errors from the above "$doit $cpprog $src $dsttmp" command.
     #
-    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
-
-    # Now rename the file to the real destination.
-    { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
-      || {
-          # The rename failed, perhaps because mv can't rename something else
-          # to itself, or perhaps because mv is so ancient that it does not
-          # support -f.
-
-          # Now remove or move aside any old file at destination location.
-          # We try this two ways since rm can't unlink itself on some
-          # systems and the destination file might be busy for other
-          # reasons.  In this case, the final cleanup might fail but the new
-          # file should still install successfully.
-          {
-            if test -f "$dstdir/$dstfile"; then
-              $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
-              || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
-              || {
-                echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
-                (exit 1); exit 1
-              }
-            else
-              :
-            fi
-          } &&
-
-          # Now rename the file to the real destination.
-          $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
-        }
-    }
-  fi || { (exit 1); exit 1; }
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+    # If -C, don't bother to copy if it wouldn't change the file.
+    if $copy_on_change &&
+       old=`LC_ALL=C ls -dlL "$dst"    2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+
+       eval "$initialize_posix_glob" &&
+       $posix_glob set -f &&
+       set X $old && old=:$2:$4:$5:$6 &&
+       set X $new && new=:$2:$4:$5:$6 &&
+       $posix_glob set +f &&
+
+       test "$old" = "$new" &&
+       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+    then
+      rm -f "$dsttmp"
+    else
+      # Rename the file to the real destination.
+      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+      # The rename failed, perhaps because mv can't rename something else
+      # to itself, or perhaps because mv is so ancient that it does not
+      # support -f.
+      {
+       # Now remove or move aside any old file at destination location.
+       # We try this two ways since rm can't unlink itself on some
+       # systems and the destination file might be busy for other
+       # reasons.  In this case, the final cleanup might fail but the new
+       # file should still install successfully.
+       {
+         test ! -f "$dst" ||
+         $doit $rmcmd -f "$dst" 2>/dev/null ||
+         { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+           { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+         } ||
+         { echo "$0: cannot unlink or rename $dst" >&2
+           (exit 1); exit 1
+         }
+       } &&
+
+       # Now rename the file to the real destination.
+       $doit $mvcmd "$dsttmp" "$dst"
+      }
+    fi || exit 1
+
+    trap '' 0
+  fi
 done
 
-# The final little trick to "correctly" pass the exit status to the exit trap.
-{
-  (exit 0); exit 0
-}
-
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
index 0fc44287a16c83f362231fa017f1f06f45e3f57c..378e4eb159a3c51609a3b8808165caccef984d52 100644 (file)
@@ -260,7 +260,7 @@ public class AWTKeyStroke implements Serializable
                 c.setAccessible(true);
                 // Create a new instance, to make sure that we can, and
                 // to cause any ClassCastException.
-                AWTKeyStroke dummy = (AWTKeyStroke) c.newInstance(null);
+                AWTKeyStroke dummy = (AWTKeyStroke) c.newInstance();
                 return c;
               }
             });
@@ -632,7 +632,7 @@ public class AWTKeyStroke implements Serializable
     else
       try
         {
-          stroke = (AWTKeyStroke) c.newInstance(null);
+          stroke = (AWTKeyStroke) c.newInstance();
           stroke.keyChar = keyChar;
           stroke.keyCode = keyCode;
           stroke.modifiers = modifiers;
@@ -643,7 +643,7 @@ public class AWTKeyStroke implements Serializable
           throw (Error) new InternalError().initCause(e);
         }
     // Check level 1 cache.
-    AWTKeyStroke cached = (AWTKeyStroke) cache.get(stroke);
+    AWTKeyStroke cached = cache.get(stroke);
     if (cached == null)
       cache.put(stroke, stroke);
     else
index e7622f2e839675d02ff931e16dc9494ee7518c60..1e5004048a7157d041e488c69ff7013c37c0ac26 100644 (file)
@@ -1322,10 +1322,10 @@ public class Container extends Component
         while (true)
           {
             if (comp == null)
-              return false;
-            if (comp == this)
-              return true;
+             return false;
             comp = comp.getParent();
+            if (comp == this)
+             return true;
           }
       }
   }
index 9fea99b7839f22af9c0bc27dada1de9b9dfd0188..325e3ac8d1a2632779c67a20b20912bae5b5fb83 100644 (file)
@@ -350,7 +350,7 @@ public class DefaultKeyboardFocusManager extends KeyboardFocusManager
     while (i.hasNext ())
       {
         KeyEventPostProcessor processor = (KeyEventPostProcessor) i.next ();
-        if (processor.postProcessKeyEvent ((KeyEvent) e))
+        if (processor.postProcessKeyEvent (e))
           return true;
       }
 
index 8010464c00d5d258ff23f4b9b9fb8b17da4077b9..227b8b192bb8dfb42169ce27d71d019bd8983e63 100644 (file)
@@ -120,7 +120,7 @@ public class Desktop
   }
   
   /**
-   * Returns an istance of the Desktop Class.
+   * Returns an instance of the Desktop Class.
    * 
    * If this implementation does not support Desktop, an 
    * UnsupportedOperationException will be thrown.
@@ -155,7 +155,7 @@ public class Desktop
    * @return true if this class is supported on the current platform;
    * false otherwise
    */
-  private static boolean isDesktopSupported()
+  public static boolean isDesktopSupported()
   {
     if (GraphicsEnvironment.isHeadless())
       return false;
index d6892a626dc1ce431520a00b2ea1545cee252ada..4e6e6bd34766975bc9469ac5a3b852c43d0ed683 100644 (file)
@@ -229,6 +229,11 @@ public class Font implements Serializable
   // The ClasspathToolkit-provided peer which implements this font
   private transient ClasspathFontPeer peer;
 
+  /**
+   * The cached hashcode. A value of 0 (default initialized) means that the
+   * hashcode is not computed yet.
+   */
+  private transient int hashCode;
 
   /**
    * Creates a <code>Font</code> object from the specified string, which
@@ -1318,7 +1323,21 @@ public class Font implements Serializable
    */
   public int hashCode()
   {
-    return this.toString().hashCode();
+    // We cache the hashcode. This makes sense, because the font wouldn't
+    // change the relevant properties.
+    if (hashCode == 0)
+      {
+        hashCode = getName().hashCode() ^ getTransform().hashCode() ^ getSize()
+                   ^ getStyle();
+        // In the rare case when the above yields 0, we set this to some other
+        // value to avoid recomputing over and over again. This is still
+        // conform to the specification of hashCode().
+        if (hashCode == 0)
+          {
+            hashCode = -1;
+          }
+      }
+    return hashCode;
   }
 
 
index 0415c7bd3bb41f04d43e12f1fd44f7c3addace05..d016fd31acde003623d204e6710a510e9d84ecac 100644 (file)
@@ -211,12 +211,12 @@ public class GridBagLayout
 
     protected GridBagConstraints lookupConstraints (Component component)
     {
-       GridBagConstraints result = (GridBagConstraints) comptable.get (component);
+       GridBagConstraints result = comptable.get (component);
 
        if (result == null)
        {
            setConstraints (component, defaultConstraints);
-           result = (GridBagConstraints) comptable.get (component);
+           result = comptable.get (component);
        }
     
        return result;
@@ -224,8 +224,7 @@ public class GridBagLayout
 
     private GridBagConstraints lookupInternalConstraints (Component component)
     {
-       GridBagConstraints result =
-            (GridBagConstraints) internalcomptable.get (component);
+       GridBagConstraints result = internalcomptable.get (component);
 
        if (result == null)
        {
@@ -562,7 +561,7 @@ public class GridBagLayout
                 x = 0;
               else
                 {
-                  Component lastComponent = (Component) lastInRow.get(new Integer(constraints.gridy));
+                  Component lastComponent = lastInRow.get(new Integer(constraints.gridy));
                   GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent);
                   x = lastConstraints.gridx + Math.max(1, lastConstraints.gridwidth);
                 }
@@ -573,7 +572,7 @@ public class GridBagLayout
                 {
                   if (lastInRow.containsKey(new Integer(y)))
                     {
-                      Component lastComponent = (Component) lastInRow.get(new Integer(y));
+                      Component lastComponent = lastInRow.get(new Integer(y));
                       GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent);
                       x = Math.max (x,
                                     lastConstraints.gridx + Math.max(1, lastConstraints.gridwidth));
@@ -595,7 +594,7 @@ public class GridBagLayout
                 }
               else
                 {
-                  Component lastComponent = (Component)lastInCol.get(new Integer(constraints.gridx));
+                  Component lastComponent = lastInCol.get(new Integer(constraints.gridx));
                   GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent);
                   y = lastConstraints.gridy + Math.max(1, lastConstraints.gridheight);
                 }
@@ -606,7 +605,7 @@ public class GridBagLayout
                 {
                   if (lastInCol.containsKey(new Integer(x)))
                     {
-                      Component lastComponent = (Component) lastInCol.get(new Integer(x));
+                      Component lastComponent = lastInCol.get(new Integer(x));
                       GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent);
                       y = Math.max (y,
                                     lastConstraints.gridy + Math.max(1, lastConstraints.gridheight));
@@ -636,7 +635,7 @@ public class GridBagLayout
                 {
                   if(lastInRow.containsKey(new Integer(y)))
                     {
-                      Component lastComponent = (Component) lastInRow.get(new Integer(y));
+                      Component lastComponent = lastInRow.get(new Integer(y));
                       GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent);
                       if (constraints.gridx > lastConstraints.gridx)
                         {
@@ -653,7 +652,7 @@ public class GridBagLayout
                 {
                   if(lastInCol.containsKey(new Integer(x)))
                     {
-                      Component lastComponent = (Component) lastInCol.get(new Integer(x));
+                      Component lastComponent = lastInCol.get(new Integer(x));
                       GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent);
                       if (constraints.gridy > lastConstraints.gridy)
                         {
@@ -707,7 +706,7 @@ public class GridBagLayout
                     {
                       if (lastInRow.containsKey(new Integer(y)))
                         {
-                          Component lastComponent = (Component) lastInRow.get(new Integer(y));
+                          Component lastComponent = lastInRow.get(new Integer(y));
                           GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent);
 
                           if (lastConstraints.gridwidth == GridBagConstraints.RELATIVE)
@@ -742,7 +741,7 @@ public class GridBagLayout
                     {
                       if (lastInCol.containsKey(new Integer(x)))
                         {
-                          Component lastComponent = (Component) lastInRow.get(new Integer(x));
+                          Component lastComponent = lastInRow.get(new Integer(x));
                           if (lastComponent != null)
                             {
                               GridBagConstraints lastConstraints = lookupInternalConstraints(lastComponent);
@@ -804,7 +803,7 @@ public class GridBagLayout
       // STEP 4: Determine sizes and weights for rows.
       for (int i = 0; i < sortedByHeight.size(); i++)
         {
-          Component component = (Component) sortedByHeight.get(i);
+          Component component = sortedByHeight.get(i);
                        
           // If component is not visible we dont have to care about it.
           if (!component.isVisible())
@@ -904,7 +903,7 @@ public class GridBagLayout
           int i = 0;
           if (list.size() > 0)
             {
-              GridBagConstraints gbc = lookupInternalConstraints((Component) list.get(i));
+              GridBagConstraints gbc = lookupInternalConstraints(list.get(i));
               int otherspan = sortByWidth ?
                               gbc.gridwidth :
                               gbc.gridheight;
@@ -915,7 +914,7 @@ public class GridBagLayout
                   i++;
                   if (i < list.size())
                     {
-                      gbc = lookupInternalConstraints((Component) list.get(i));
+                      gbc = lookupInternalConstraints(list.get(i));
                       otherspan = sortByWidth ?
                                   gbc.gridwidth :
                                   gbc.gridheight;
index 04196bd7796514345e686dde0bf91f50eeda0ac8..39bdb887dc88851c0597bcfc1cefbb87622614c5 100644 (file)
@@ -286,7 +286,8 @@ final class LightweightDispatcher
   private void redispatch(MouseEvent ev, Component target, int id)
   {
     Component source = ev.getComponent();
-    if (target != null)
+    assert target != null;
+    if (target.isShowing())
       {
         // Translate coordinates.
         int x = ev.getX();
index 259cbf1ae98fe1d0fc9320dde492726ae0da4866..5216d3474ae0bc6b1550c66291dfb74dd9e316c7 100644 (file)
@@ -38,8 +38,6 @@ exception statement from your version. */
 
 package java.awt;
 
-import java.awt.event.KeyEvent;
-
 /**
   * This class implements a keyboard accelerator for a menu item.
   *
index 1072cd694db355183c833dc10b70f795885d44df..e2efb3a894691dfd8cdfc08ea8c2eb11ee4df0c0 100644 (file)
@@ -426,10 +426,15 @@ public class ICC_Profile implements Serializable
     System.arraycopy(headerData, 0, data, 0, ProfileHeader.HEADERSIZE);
 
     // read the rest
-    if (in.read(data, ProfileHeader.HEADERSIZE,
-                header.getSize() - ProfileHeader.HEADERSIZE) != header.getSize()
-        - ProfileHeader.HEADERSIZE)
-      throw new IOException("Incorrect profile size");
+    int totalBytes = header.getSize() - ProfileHeader.HEADERSIZE;
+    int bytesLeft = totalBytes;
+    while (bytesLeft > 0)
+      {
+       int read = in.read(data,
+                           ProfileHeader.HEADERSIZE + (totalBytes - bytesLeft),
+                           bytesLeft);
+       bytesLeft -= read;
+      }
 
     return getInstance(data);
   }
index 3973e52848174e7c641e2e3e228beddf293be8fd..fb37b4fc733401fa9983be4e18d3ae1c255a1435 100644 (file)
@@ -124,7 +124,7 @@ public abstract class DragGestureRecognizer implements Serializable
 
   public InputEvent getTriggerEvent()
   {
-    return events.size() > 0 ? (InputEvent) events.get(0) : null;
+    return events.size() > 0 ? events.get(0) : null;
   }
 
   /**
index ad777e8f433849075685facdffbe93f7c434cb3a..0ca833604a687a1881c6166479c2c667e08fba3e 100644 (file)
@@ -221,37 +221,8 @@ public class MouseEvent extends InputEvent
                     int x, int y, int clickCount, boolean popupTrigger,
                     int button)
   {
-    super(source, id, when, modifiers);
-
-    this.x = x;
-    this.y = y;
-    this.clickCount = clickCount;
-    this.popupTrigger = popupTrigger;
-    this.button = button;
-    if (button < NOBUTTON || button > BUTTON3)
-      throw new IllegalArgumentException();
-    if ((modifiers & EventModifier.OLD_MASK) != 0)
-      {
-        if ((modifiers & BUTTON1_MASK) != 0)
-          this.button = BUTTON1;
-        else if ((modifiers & BUTTON2_MASK) != 0)
-          this.button = BUTTON2;
-        else if ((modifiers & BUTTON3_MASK) != 0)
-          this.button = BUTTON3;
-      }
-    // clear the mouse button modifier masks if this is a button
-    // release event.
-    if (id == MOUSE_RELEASED)
-      this.modifiersEx &= ~(BUTTON1_DOWN_MASK
-                           | BUTTON2_DOWN_MASK
-                           | BUTTON3_DOWN_MASK);
-
-    if (source != null)
-      {
-        Point screenLoc = source.getLocationOnScreen();
-        absX = screenLoc.x + x;
-        absY = screenLoc.y + y;
-      }
+    this(source, id, when, modifiers, x, y, 0, 0, clickCount, popupTrigger,
+         button);
   }
 
   /**
index 816c7745c2b04f010a33e6d269a64325bba10b86..278bc847632c45bb7472abf691beaa5bfbedfbba 100644 (file)
@@ -39,9 +39,7 @@ exception statement from your version. */
 package java.awt.font;
 
 import java.text.AttributedCharacterIterator;
-import java.text.AttributedString;
 import java.text.BreakIterator;
-import java.awt.Shape;
 
 public final class LineBreakMeasurer
 {
index 00cab8a878d3046598921bfd5f83c1b2669b4899..f4430bf6dfaf3f7561c054fb831bdd78fa0afc28 100644 (file)
@@ -39,7 +39,6 @@ exception statement from your version. */
 package java.awt.font;
 
 import java.text.AttributedCharacterIterator;
-import java.text.AttributedString;
 import java.awt.Shape;
 
 /**
index 8d5b01cd5bb0905722fd7d224b5a5fa190876a93..eb9a160932aedf221056a0fca504d567b3b40725 100644 (file)
@@ -1279,7 +1279,7 @@ public abstract class Arc2D extends RectangularShape
       width = (float) r.getWidth();
       height = (float) r.getHeight();
       this.start = start;
-      this.extent = (float) extent;
+      this.extent = extent;
     }
 
     /**
index 50c381194bbdcb9cb51ad5fa3d21da87d7b01a21..d0d55984fd85e5692a412e7d2d936a7f0c86a50f 100644 (file)
@@ -1714,10 +1714,10 @@ public abstract class CubicCurve2D implements Shape, Cloneable
      */
     public Rectangle2D getBounds2D()
     {
-      float nx1 = (float) Math.min(Math.min(x1, ctrlx1), Math.min(ctrlx2, x2));
-      float ny1 = (float) Math.min(Math.min(y1, ctrly1), Math.min(ctrly2, y2));
-      float nx2 = (float) Math.max(Math.max(x1, ctrlx1), Math.max(ctrlx2, x2));
-      float ny2 = (float) Math.max(Math.max(y1, ctrly1), Math.max(ctrly2, y2));
+      float nx1 = Math.min(Math.min(x1, ctrlx1), Math.min(ctrlx2, x2));
+      float ny1 = Math.min(Math.min(y1, ctrly1), Math.min(ctrly2, y2));
+      float nx2 = Math.max(Math.max(x1, ctrlx1), Math.max(ctrlx2, x2));
+      float ny2 = Math.max(Math.max(y1, ctrly1), Math.max(ctrly2, y2));
       return new Rectangle2D.Float(nx1, ny1, nx2 - nx1, ny2 - ny1);
     }
   }
index 41021dbc683db4e99ad434e52d250ff7401b4895..d247c79a5d55ebe0baac448e83805fc6cf85b677 100644 (file)
@@ -1457,10 +1457,10 @@ public abstract class QuadCurve2D implements Shape, Cloneable
      */
     public Rectangle2D getBounds2D()
     {
-      float nx1 = (float) Math.min(Math.min(x1, ctrlx), x2);
-      float ny1 = (float) Math.min(Math.min(y1, ctrly), y2);
-      float nx2 = (float) Math.max(Math.max(x1, ctrlx), x2);
-      float ny2 = (float) Math.max(Math.max(y1, ctrly), y2);
+      float nx1 = Math.min(Math.min(x1, ctrlx), x2);
+      float ny1 = Math.min(Math.min(y1, ctrly), y2);
+      float nx2 = Math.max(Math.max(x1, ctrlx), x2);
+      float ny2 = Math.max(Math.max(y1, ctrly), y2);
       return new Rectangle2D.Float(nx1, ny1, nx2 - nx1, ny2 - ny1);
     }
   }
index c81993215e8a57573f847161643ef99d0a1c37b6..c2e09b6d112f664aaf0d458d4bee918b934a383b 100644 (file)
@@ -216,12 +216,11 @@ public class InputContext
         recent.put(locale, im);
         return true;
       }
-    InputMethod next = (InputMethod) recent.get(locale);
-  outer:
+    InputMethod next = recent.get(locale);
     if (next != null)
       for (int i = 0, limit = descriptors.size(); i < limit; i++)
         {
-          InputMethodDescriptor d = (InputMethodDescriptor) descriptors.get(i);
+          InputMethodDescriptor d = descriptors.get(i);
           Locale[] list;
           try
             {
index 849c5b050482e46c8f106cb4eb5c3050b68be00f..df9db7d9636d80f48d2c584f721eb6f8c9559584 100644 (file)
@@ -188,7 +188,7 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp
       if (dst == null)
         dst = createCompatibleDestImage(src, null);
 
-      Graphics2D gr = (Graphics2D) dst.createGraphics();
+      Graphics2D gr = dst.createGraphics();
       gr.setRenderingHints(hints);
       gr.drawImage(src, transform, null);
       return dst;
index 44d5cec9d5f14f4ec4a169a9a5215e82588599cb..491a2f519034430665944d3238c293cffbc76af5 100644 (file)
@@ -158,7 +158,7 @@ public class AreaAveragingScaleFilter extends ReplicateScaleFilter
    * @param srcOffset - Starting offset into the source pixel data array.
    * @param srcScansize - Source array scanline size.
    * @param rx,ry - Scaling factor.
-   * @param dstScansize - Destination array scanline size.
+   * @param destScansize - Destination array scanline size.
    */
   private byte[] averagePixels(int srcx, int srcy, int srcw, int srch,
                               ColorModel model, byte[] srcPixels,
@@ -218,7 +218,7 @@ public class AreaAveragingScaleFilter extends ReplicateScaleFilter
    * @param srcOffset - Starting offset into the source pixel data array.
    * @param srcScansize - Source array scanline size.
    * @param rx,ry - Scaling factor.
-   * @param dstScansize - Destination array scanline size.
+   * @param destScansize - Destination array scanline size.
    */
   private int[] averagePixels(int srcx, int srcy, int srcw, int srch,
                              ColorModel model, int[] srcPixels,
index c9879461ce2716832adf4cbe1e3e318ffbf4136b..78623ccd9284f7d7200b672a740ef8ff9b4cbdab 100644 (file)
@@ -41,8 +41,6 @@ package java.awt.image;
 import gnu.java.awt.Buffers;
 import gnu.java.awt.ClasspathGraphicsEnvironment;
 import gnu.java.awt.ComponentDataBlitOp;
-import gnu.java.awt.peer.gtk.CairoSurface;
-
 import java.awt.Graphics;
 import java.awt.Graphics2D;
 import java.awt.GraphicsEnvironment;
index 4c5c436edfc2855f649f8d7d5259324565174381..3a0d4152c7daec747687f09e2afcfb06b2d14fd6 100644 (file)
@@ -69,9 +69,34 @@ public class PixelInterleavedSampleModel
    */
   public SampleModel createCompatibleSampleModel(int width, int height)
   {
+    // Find minimum band offset.
+    int minBandoff = bandOffsets[0];
+    int numBands = bandOffsets.length;
+    for (int i = 1; i < numBands; i++)
+      {
+        if (bandOffsets[i] < minBandoff)
+          {
+            minBandoff = bandOffsets[i];
+          }
+      }
+    // Adjust band offsets so that minimum offset is at 0.
+    int[] bandOff;
+    if (minBandoff > 0)
+      {
+        bandOff = new int[numBands];
+        for (int i = 0; i < numBands; i++)
+          {
+            bandOff[i] = bandOffsets[i] - minBandoff;
+          }
+      }
+    else
+      {
+        bandOff = bandOffsets;
+      }
+    // Adjust scanline stride for new width.
     return new PixelInterleavedSampleModel(dataType, width, height,
-                                           pixelStride, scanlineStride,
-                                           bandOffsets);
+                                           pixelStride, pixelStride * width,
+                                           bandOff);
   }
 
 
index c777fecd9010339ff5a5f584af07c0703382faf5..3cd14239c99b7febf0b58865bd4ed4b124d2b40e 100644 (file)
@@ -245,7 +245,7 @@ public abstract class RGBImageFilter extends ImageFilter
           {
             for (int xp = 0; xp < w; xp++)
               {
-                filtered[xp] = model.getRGB((pixels[index] & 0xff));
+                filtered[xp] = model.getRGB((pixels[index]));
                 index++;
               }
             index += scansize - w;
index d63e156f6ae99b2f70561e54c84ee413311ce365..fb0950dabf30fb444168f04b19b16618e1b3f998 100644 (file)
@@ -302,7 +302,7 @@ public class Raster
       Point location)
   {
     SampleModel sm = new ComponentSampleModel(dataBuffer.getDataType(),
-        w, h, scanlineStride, pixelStride, bandOffsets);
+        w, h, pixelStride, scanlineStride, bandOffsets);
     return createWritableRaster(sm, dataBuffer, location);
   }
 
index b3b0a422edd729b72460526e2843229a8a77e55b..2f6e0a991a54aa694be44436af60f3c2e1cffbfa 100644 (file)
@@ -309,7 +309,7 @@ public class Beans
     * Objects.
     *
     * @param bean the Bean to cast.
-    * @param newClass the Class to cast it to.
+    * @param newBeanClass the Class to cast it to.
     *
     * @return whether the Bean can be cast to the class type
     *         in question.
index 08f6174bb6e8abb1e6fbe98fd988185246b4a518..c4328e0306096f63d379321dc7769be2535904f1 100644 (file)
@@ -127,7 +127,7 @@ public class DefaultPersistenceDelegate extends PersistenceDelegate
                       {
                         Method readMethod = propertyDescs[i].getReadMethod();
 
-                        args[i] = readMethod.invoke(oldInstance, null);
+                        args[i] = readMethod.invoke(oldInstance);
                       }
                   }
               }
@@ -186,7 +186,7 @@ public class DefaultPersistenceDelegate extends PersistenceDelegate
 
             if (readMethod != null && writeMethod != null)
               {
-                Object oldValue = readMethod.invoke(oldInstance, null);
+                Object oldValue = readMethod.invoke(oldInstance);
 
                 if (oldValue != null)
                   out.writeStatement(new Statement(oldInstance,
index cde1735f4fd4a8a2a288e5bf72f5f60b0722365a..6dc36277f99065cbfba760c03c71816e20480b8e 100644 (file)
@@ -195,7 +195,7 @@ public class Encoder
 
     PersistenceDelegate pd = (PersistenceDelegate) delegates.get(type);
 
-    return (pd != null) ? pd : (PersistenceDelegate) defaultPersistenceDelegate;
+    return (pd != null) ? pd : defaultPersistenceDelegate;
   }
 
   /**
index 318b274898a60917fc58db992ed0b8a5896a0dc2..5efbc8dc6d7d95a35241a0a2eec0739fdc53bb17 100644 (file)
@@ -173,19 +173,17 @@ public class EventHandler implements InvocationHandler
     try
       {
        // Look for boolean property getter isProperty
-       getter = o.getClass().getMethod("is" + capitalize(prop),
-                                                null);
+       getter = o.getClass().getMethod("is" + capitalize(prop));
       }
     catch (NoSuchMethodException nsme1)
       {
         try {
           // Look for regular property getter getProperty
-          getter = o.getClass().getMethod("get" + capitalize(prop),
-                                                null);
+          getter = o.getClass().getMethod("get" + capitalize(prop));
         } catch(NoSuchMethodException nsme2) {
             try {
             // Finally look for a method of the name prop
-            getter = o.getClass().getMethod(prop, null);
+            getter = o.getClass().getMethod(prop);
             } catch(NoSuchMethodException nsme3) {
                 // Ok, give up with an intelligent hint for the user.
                 throw new RuntimeException("Method not called: Could not find a property or method '" + prop
@@ -194,7 +192,7 @@ public class EventHandler implements InvocationHandler
         }
       }
     try {
-      Object val = getter.invoke(o, null);
+      Object val = getter.invoke(o);
 
       if (rest != null)
         return getProperty(val, rest);
@@ -304,7 +302,7 @@ public class EventHandler implements InvocationHandler
     // more specification compliant than the JDK itself because this one will fail in such a case.
     try
       {
-      actionMethod = targetClass.getMethod(action, null);
+      actionMethod = targetClass.getMethod(action);
       }
     catch(NoSuchMethodException nsme)
       {
@@ -342,7 +340,7 @@ public class EventHandler implements InvocationHandler
       throw new ArrayIndexOutOfBoundsException(0);
     
     // Invoke target.action(property)
-    return actionMethod.invoke(target, null);
+    return actionMethod.invoke(target);
       } catch(InvocationTargetException ite) {
          throw new RuntimeException(ite.getCause());
       } catch(IllegalAccessException iae) {
index e944e151251657d2db9a51225aef152939d08a6f..ecadb146fd7b866578a3a6053b8f5f79cd789ea2 100644 (file)
@@ -346,8 +346,8 @@ public class PropertyChangeSupport implements Serializable
   {
     if (oldVal != newVal)
       firePropertyChange(new PropertyChangeEvent(source, propertyName,
-                                                 new Integer(oldVal),
-                                                 new Integer(newVal)));
+                                                 Integer.valueOf(oldVal),
+                                                 Integer.valueOf(newVal)));
   }
 
   /**
index 12051d2ffb0702a07febab295d7a5d83b540e8fd..f2b6a1df84d0bbe1d76064e998e185c65f87132f 100644 (file)
@@ -349,8 +349,8 @@ public class VetoableChangeSupport implements Serializable
   {
     if (oldVal != newVal)
       fireVetoableChange(new PropertyChangeEvent(source, propertyName,
-                                                 new Integer(oldVal),
-                                                 new Integer(newVal)));
+                                                 Integer.valueOf(oldVal),
+                                                 Integer.valueOf(newVal)));
   }
 
   /**
index 7618bb8cb0e8eab69cfff07fce97c975966a00b7..131cf3b046428f59bb995939e70ee46fe7cc338b 100644 (file)
@@ -164,7 +164,7 @@ public class XMLDecoder
         * 
         * @param in InputStream to read XML data from.
         * @param owner Owner object which can be accessed and modified while parsing.
-        * @param exceptionListener ExceptionListener instance to which exception notifications are send.
+        * @param listener ExceptionListener instance to which exception notifications are send.
         * @param cl ClassLoader instance that is used for calls to <code>Class.forName(String, boolean, ClassLoader)</code>
         * @since 1.5
         */
index f354ff474481eb71de908f3e0f83a364bf205859..1c27f98e57bb8034126793f583a9b046008aa5ef 100644 (file)
@@ -38,8 +38,6 @@ exception statement from your version. */
 
 package java.beans.beancontext;
 
-import gnu.classpath.NotImplementedException;
-
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
@@ -88,11 +86,6 @@ public class BeanContextServicesSupport
 
     private BeanContextServiceProvider provider;
 
-    private BCSSProxyServiceProvider(BeanContextServiceProvider p)
-    {
-      provider = p;
-    }
-
     public Iterator getCurrentServiceSelectors (BeanContextServices bcs,
                                                 Class serviceClass)
     {
@@ -427,7 +420,7 @@ public class BeanContextServicesSupport
    * Subclasses may envelope its behaviour in order to read further
    * serialized data to the stream.
    *
-   * @param oos the stream from which data is being deserialized.
+   * @param ois the stream from which data is being deserialized.
    * @throws IOException if an I/O error occurs.
    * @throws ClassNotFoundException if the class of a deserialized object
    *                                can not be found.
index d57f5f8842a56ca89e56deb14fb73c09c3dea507..7572af3f0f9d709ab3620c070869e31141b6198f 100644 (file)
@@ -794,12 +794,12 @@ public class BeanContextSupport extends BeanContextChildSupport
   }
 
   /**
-   * Deerializes the children using the
+   * Deserializes the children using the
    * {@link #deserialize(ObjectInputStream, Collection} method
    * and then calls {@link childDeserializedHook(Object, BCSChild)}
    * for each child deserialized.
    *
-   * @param oos the output stream.
+   * @param ois the input stream.
    * @throws IOException if an I/O error occurs.
    */
   public final void readChildren (ObjectInputStream ois)
index 4849949c989f2385088a38c52ddf1853c6647489..c52d15ec60c5dc2e90193fe633a627a0666a8423 100644 (file)
@@ -88,11 +88,6 @@ public class BufferedReader extends Reader
   // This is package-private because it is used by LineNumberReader.
   static final int DEFAULT_BUFFER_SIZE = 8192;
 
-  /**
-   * The line buffer for <code>readLine</code>.
-   */
-  private StringBuffer sbuf = null;
-
   /**
     * Create a new <code>BufferedReader</code> that will read from the 
     * specified subordinate stream with a default buffer size of 8192 chars.
@@ -455,10 +450,7 @@ public class BufferedReader extends Reader
            pos++;
        return str;
       }
-    if (sbuf == null)
-      sbuf = new StringBuffer(200);
-    else
-      sbuf.setLength(0);
+    StringBuilder sbuf = new StringBuilder(200);
     sbuf.append(buffer, pos, i - pos);
     pos = i;
     // We only want to return null when no characters were read before
index 0eead3ad35d0811f69853e51358584829d8a4727..8cbc8aeac4391a81c5fdbbf6a333bf25ee57f870 100644 (file)
@@ -267,7 +267,7 @@ public class CharArrayWriter extends Writer
    * sequence is wrapped around an input buffer, the results will
    * depend on the current position and length of that buffer.
    *
-   * @param seq the character sequence to append.  If seq is null,
+   * @param cs the character sequence to append.  If seq is null,
    *        then the string "null" (the string representation of null)
    *        is appended.
    * @return a reference to this object.
@@ -294,7 +294,7 @@ public class CharArrayWriter extends Writer
    * <code>append(seq.subSequence(start,end))</code> when the sequence
    * is not null.
    *
-   * @param seq the character sequence to append.  If seq is null,
+   * @param cs the character sequence to append.  If seq is null,
    *        then the string "null" (the string representation of null)
    *        is appended.
    * @param start the index of the first Unicode character to use from
index d2604b51ffaf73dbe3fc5048457c9787125154bc..ad43498c8d795a633328286e2d6a3902fc6165da 100644 (file)
@@ -1,5 +1,6 @@
 /* DataInputStream.java -- FilteredInputStream that implements DataInput
-   Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005  Free Software Foundation
+   Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005, 2008
+   Free Software Foundation
 
 This file is part of GNU Classpath.
 
@@ -349,7 +350,7 @@ public class DataInputStream extends FilterInputStream implements DataInput
    */
   public final String readLine() throws IOException
   {
-    StringBuffer strb = new StringBuffer();
+    StringBuilder strb = new StringBuilder();
 
     while (true)
       {
@@ -590,13 +591,56 @@ public class DataInputStream extends FilterInputStream implements DataInput
   public static final String readUTF(DataInput in) throws IOException
   {
     final int UTFlen = in.readUnsignedShort ();
-    byte[] buf = new byte [UTFlen];
+    
+    return readUTF(in, UTFlen);
+  }
+
+  /**
+   * This method is similar to <code>readUTF</code>, but the
+   * UTF-8 byte length is in 64 bits.
+   * This method is not public. It is used by <code>ObjectInputStream</code>.
+   * 
+   * @return The <code>String</code> read
+   *
+   * @exception EOFException If end of file is reached before reading
+   * the String
+   * @exception UTFDataFormatException If the data is not in UTF-8 format
+   * @exception IOException If any other error occurs
+   *
+   * @see DataOutput#writeUTFLong
+   */
+  final String readUTFLong () throws IOException
+  {
+    long l = readLong ();
+    if (l > Integer.MAX_VALUE)
+      throw new IOException("The string length > Integer.MAX_VALUE");
+    final int UTFlen = (int)l;
+    return readUTF (this, UTFlen);
+  }
+
+  /**
+   * This method performs the main task of <code>readUTF</code> and
+   * <code>readUTFLong</code>.
+   *
+   * @param in The <code>DataInput</code> source to read from
+   *
+   * @param len The UTF-8 byte length of the String to be read
+   *
+   * @return The String read from the source
+   *
+   * @exception IOException If an error occurs
+   *
+   * @see DataInput#readUTF
+   */
+  private static final String readUTF(DataInput in, int len) throws IOException
+  {
+    byte[] buf = new byte [len];
 
     // This blocks until the entire string is available rather than
     // doing partial processing on the bytes that are available and then
     // blocking.  An advantage of the latter is that Exceptions
     // could be thrown earlier.  The former is a bit cleaner.
-    in.readFully (buf, 0, UTFlen);
+    in.readFully (buf, 0, len);
 
     return convertFromUTF (buf);
   }
@@ -703,7 +747,7 @@ public class DataInputStream extends FilterInputStream implements DataInput
   {
     // Give StringBuffer an initial estimated size to avoid 
     // enlarge buffer frequently
-    StringBuffer strbuf = new StringBuffer (buf.length / 2 + 2);
+    StringBuilder strbuf = new StringBuilder (buf.length / 2 + 2);
 
     for (int i = 0; i < buf.length; )
       {
index 6670c2dba1391248e261ab4a960cc2df2e94eeca..435ff76d13ee9cbcfce7f1e1866069e774248e49 100644 (file)
@@ -1,5 +1,5 @@
 /* DataOutputStream.java -- Writes primitive Java datatypes to streams
-   Copyright (C) 1998, 2001, 2003, 2005  Free Software Foundation, Inc.
+   Copyright (C) 1998, 2001, 2003, 2005, 2008  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -379,19 +379,20 @@ public class DataOutputStream extends FilterOutputStream implements DataOutput
 
   /**
    *  Calculate the length, in bytes, of a <code>String</code> in Utf8 format.
+   *  This method is package-private so that <code>ObjectOutputStream</code>
+   *  may use it.  The return type is long so that a long string whose
+   *  Utf8 byte count is 64 bit long may be handled.
    *
    *  @param value The <code>String</code> to measure
    *  @param start String index at which to begin count
    *  @param sum Starting Utf8 byte count
    *
-   *  @throws UTFDataFormatException if result would exceed 65535
    */
-  private int getUTFlength(String value, int start, int sum)
-    throws IOException
+  long getUTFlength(String value, int start, long sum)
   {
     int len = value.length();
 
-    for (int i = start; i < len && sum <= 65535; ++i)
+    for (int i = start; i < len; ++i)
       {
        char c = value.charAt(i);
        if (c >= '\u0001' && c <= '\u007f')
@@ -402,9 +403,6 @@ public class DataOutputStream extends FilterOutputStream implements DataOutput
          sum += 3;
       }
 
-    if (sum > 65535)
-      throw new UTFDataFormatException ();
-
     return sum;
   }
   
@@ -441,11 +439,71 @@ public class DataOutputStream extends FilterOutputStream implements DataOutput
    * @see DataInput#readUTF
    */
   public final synchronized void writeUTF(String value) throws IOException
+  {
+    long l = getUTFlength(value, 0, 0);
+    if (l > 65535)
+      throw new UTFDataFormatException ();
+    writeUTFShort(value, (int)l);
+  }
+
+  /**
+   * This method performs the main task of <code>writeUTF</code>.
+   * This method is package-private because ObjectOutputStream uses it.
+   *
+   * @param value The <code>String</code> to write to the output in UTF format
+   *
+   * @param bytelen The UTF-8 byte length of the <code>String</code>. When
+   * this method is called, the expected byte length must have been calculated
+   * by <code>getUTFlength</code>.
+   *
+   * @exception IOException If an error occurs
+   *
+   * @see DataInput#readUTF
+   */
+  final synchronized void writeUTFShort(String value, int bytelen)
+    throws IOException
+  {
+    writeShort(bytelen);
+    writeUTFBytes(value);
+  }
+
+  /**
+   * This method is similar to <code>writeUTF</code>, but it writes the
+   * UTF-8 byte length in 64 bits.
+   * This method is not public but <code>ObjectOutputStream</code> uses it.
+   *
+   * @param value The <code>String</code> to write to the output in UTF format
+   *
+   * @param bytelen The UTF-8 byte length of the <code>String</code>. When
+   * this method is called, the expected byte length must have been calculated
+   * by <code>getUTFlength</code>.
+   *
+   * @exception IOException If an error occurs
+   *
+   */
+  final synchronized void writeUTFLong(String value, long bytelen)
+    throws IOException
+  {
+    writeLong(bytelen);
+    writeUTFBytes(value);
+  }
+
+  /**
+   * This method performes the main task of <code>writeUTF</code> and
+   * <code>WriteUTFLong</code>, which is to write the UTF-8 byte
+   * sequence to the output.
+   *
+   * @param value The <code>String</code> to write to the output in UTF format
+   *
+   * @exception IOException If an error occurs
+   *
+   */
+  private final synchronized void writeUTFBytes(String value)
+    throws IOException
   {
     int len = value.length();
     int i = 0;
     int pos = 0;
-    boolean lengthWritten = false;
 
     if (buf == null)
       buf = new byte[512];
@@ -472,14 +530,6 @@ public class DataOutputStream extends FilterOutputStream implements DataOutput
                buf[pos++] = (byte) (0x80 | (0x3f & c));
              }
          }
-       if (! lengthWritten)
-         {
-           if (i == len)
-             writeShort(pos);
-           else
-             writeShort(getUTFlength(value, i, pos));
-           lengthWritten = true;
-         }
        write(buf, 0, pos);
        pos = 0;
      }
index f34b4dd2b5c227b0f18066a1013a73583a764fb2..cd11163509b23bdd690cfaba88909c55ec6724ac 100644 (file)
@@ -1292,6 +1292,73 @@ public class File implements Serializable, Comparable<File>
     return VMFile.setExecutable(path, executable, ownerOnly);
   }
 
+  /**
+   * Get the total space for the partition pointed by this file path, in bytes.
+   * 
+   * @return the total number of bytes in this partition. 
+   * @since 1.6
+   */
+  public long getTotalSpace()
+  {
+    // check security manager.
+    SecurityManager s = System.getSecurityManager();
+    if (s != null)
+      s.checkPermission(new RuntimePermission("getFileSystemAttributes"));
+    checkRead();
+    
+    return VMFile.getTotalSpace(path);
+  }
+  
+  /**
+   * Get the free space in the partition pointed by this file path, in bytes.
+   * 
+   * @return the number of free bytes in this partition. 
+   * @since 1.6
+   */
+  public long getFreeSpace()
+  {
+    // check security manager.
+    SecurityManager s = System.getSecurityManager();
+    if (s != null)
+      s.checkPermission(new RuntimePermission("getFileSystemAttributes"));
+    checkRead();
+    
+    return VMFile.getFreeSpace(path);
+  }
+  
+  /**
+   * Get the usable space in the partition pointed by this file path, in bytes.
+   * This is not necessarily the same as the number returned by
+   * {@link #getFreeSpace()}.
+   * 
+   * <strong>Implementation note</strong>: Unlike the RI, on Linux and UNIX
+   * like systems this methods take into account the reserved space for the
+   * "root" user. This means that the returned results will be a little
+   * different if a normal user or root perform the query.
+   * 
+   * Also, the bytes returned should be interpreted as an hint, and may be
+   * different at each call of this method or even right after the method
+   * returns.
+   * 
+   * @return the number of usable bytes in this partition. 
+   * @since 1.6
+   */
+  public long getUsableSpace()
+  {
+    // check security manager.
+    SecurityManager s = System.getSecurityManager();
+    if (s != null)
+      s.checkPermission(new RuntimePermission("getFileSystemAttributes"));
+    checkRead();
+    
+    // root users can use the reserved extra space
+    String user = System.getProperty("user.name");
+    if (user != null && user.equals("root"))
+      return VMFile.getFreeSpace(path);
+    
+    return VMFile.getUsableSpace(path);
+  }
+  
   /**
    * This method sets the file represented by this object to be read only.
    * A read only file or directory cannot be modified.  Please note that 
index d7561a9d79fe2cb4cd897ea7c5ca99d8f0ab87a3..b012e6044047162bbe86b0b8ab93041935a07a13 100644 (file)
@@ -59,7 +59,7 @@ public class FileOutputStream extends OutputStream
 {
   private FileDescriptor fd;
 
-  private FileChannelImpl ch;
+  private final FileChannelImpl ch;
 
   /**
    * This method initializes a <code>FileOutputStream</code> object to write
index 37b2b64489cfc82e660c66ec2c17798907f02e37..6b2a65133d8e3f9ec3415591c684ad7a8cb60b88 100644 (file)
@@ -1,5 +1,5 @@
 /* ObjectInputStream.java -- Class used to read serialized objects
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2008
    Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
@@ -367,7 +367,6 @@ public class ObjectInputStream extends InputStream
        }
        
        case TC_STRING:
-       case TC_LONGSTRING:
        {
          if(dump) dumpElement("STRING=");
          String s = this.realInputStream.readUTF();
@@ -377,6 +376,16 @@ public class ObjectInputStream extends InputStream
          break;
        }
  
+       case TC_LONGSTRING:
+       {
+         if(dump) dumpElement("STRING=");
+         String s = this.realInputStream.readUTFLong();
+         if(dump) dumpElementln(s);
+         ret_val = processResolution(null, s, assignNewHandle(s,shared),
+                                     shared);
+         break;
+       }
+
        case TC_ARRAY:
        {
          if(dump) dumpElementln("ARRAY");
@@ -926,7 +935,7 @@ public class ObjectInputStream extends InputStream
       return null;
 
     ObjectStreamClass oclazz;
-    oclazz = (ObjectStreamClass)classLookupTable.get(clazz);
+    oclazz = classLookupTable.get(clazz);
     if (oclazz == null)
       return ObjectStreamClass.lookup(clazz);
     else
index b1894b36882a1ff06de73ae425601a379edaddcb..303aed472d9bed14281e3c6b558ad5596ba41792 100644 (file)
@@ -1,5 +1,5 @@
 /* ObjectOutputStream.java -- Class used to write serialized objects
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008
    Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
@@ -363,10 +363,22 @@ public class ObjectOutputStream extends OutputStream
 
            if (obj instanceof String)
              {
-               realOutput.writeByte(TC_STRING);
-               if (shared)
-                 assignNewHandle(obj);
-               realOutput.writeUTF((String)obj);
+                String s = (String)obj;
+                long l = realOutput.getUTFlength(s, 0, 0);
+                if (l <= 65535)
+                  {
+                   realOutput.writeByte(TC_STRING);
+                   if (shared)
+                     assignNewHandle(obj);
+                   realOutput.writeUTFShort(s, (int)l);
+                  }
+                else
+                  {
+                   realOutput.writeByte(TC_LONGSTRING);
+                   if (shared)
+                     assignNewHandle(obj);
+                   realOutput.writeUTFLong(s, l);
+                  }
                break;
              }
 
index 1f3ba73dc99aca31b9b46b130b9d7e4836ee9e5c..8ebf32c58a4824cc9b9b5c8a80ec8a8a3681b0fd 100644 (file)
@@ -106,7 +106,7 @@ public class ObjectStreamClass implements Serializable
     if (cl == null)
       return null;
 
-    ObjectStreamClass osc = (ObjectStreamClass) classLookupTable.get(cl);
+    ObjectStreamClass osc = classLookupTable.get(cl);
 
     if (osc != null)
       return osc;
@@ -830,7 +830,7 @@ outer:
           }
 
         if (loadedByBootOrApplicationClassLoader(cl))
-          uidCache.put(cl,new Long(result));
+          uidCache.put(cl,Long.valueOf(result));
       }
     return result;
   }
@@ -1074,7 +1074,7 @@ outer:
 
     try
     {
-       return (Externalizable)constructor.newInstance(null);
+       return (Externalizable)constructor.newInstance();
     }
     catch(Exception x)
     {
index 26363401f01132eb08f6831101a5314ec8632ec9..5ccceed70b0ac3f8b7776c3da88adde97d18859c 100644 (file)
@@ -91,17 +91,17 @@ public class OutputStreamWriter extends Writer
   /**
    * The charset encoder.
    */
-  private CharsetEncoder encoder;
+  private final CharsetEncoder encoder;
 
   /**
    * java.io canonical name of the encoding.
    */
-  private String encodingName;
+  private final String encodingName;
 
   /**
    * Buffer output before character conversion as it has costly overhead.
    */
-  private CharBuffer outputBuffer;
+  private final CharBuffer outputBuffer;
   private final static int BUFFER_SIZE = 1024;
 
   /**
@@ -120,7 +120,11 @@ public class OutputStreamWriter extends Writer
   public OutputStreamWriter (OutputStream out, String encoding_scheme) 
     throws UnsupportedEncodingException
   {
+    CharsetEncoder encoder;
+    String encodingName;
     this.out = out;
+    outputBuffer = CharBuffer.allocate(BUFFER_SIZE);
+
     try 
       {
        // Don't use NIO if avoidable
@@ -128,44 +132,44 @@ public class OutputStreamWriter extends Writer
          {
            encodingName = "ISO8859_1";
            encoder = null;
-           return;
-         }
-
-       /*
-        * Workraround for encodings with a byte-order-mark.
-        * We only want to write it once per stream.
-        */
-       try 
-         {
-           if(encoding_scheme.equalsIgnoreCase("UnicodeBig") || 
-              encoding_scheme.equalsIgnoreCase("UTF-16") ||
-              encoding_scheme.equalsIgnoreCase("UTF16"))
-             {
-               encoding_scheme = "UTF-16BE";     
-               out.write((byte)0xFE);
-               out.write((byte)0xFF);
-             } 
-           else if(encoding_scheme.equalsIgnoreCase("UnicodeLittle")){
-             encoding_scheme = "UTF-16LE";
-             out.write((byte)0xFF);
-             out.write((byte)0xFE);
-           }
-         }
-       catch(IOException ioe)
-         {
          }
-      
-       outputBuffer = CharBuffer.allocate(BUFFER_SIZE);
-
-       Charset cs = EncodingHelper.getCharset(encoding_scheme);
-       if(cs == null)
-         throw new UnsupportedEncodingException("Encoding "+encoding_scheme+
-                                                " unknown");
-       encoder = cs.newEncoder();
-       encodingName = EncodingHelper.getOldCanonical(cs.name());
-
-       encoder.onMalformedInput(CodingErrorAction.REPLACE);
-       encoder.onUnmappableCharacter(CodingErrorAction.REPLACE);
+       else
+        {
+          /*
+           * Workaround for encodings with a byte-order-mark.
+           * We only want to write it once per stream.
+           */
+          try 
+            {
+              if(encoding_scheme.equalsIgnoreCase("UnicodeBig") || 
+                 encoding_scheme.equalsIgnoreCase("UTF-16") ||
+                 encoding_scheme.equalsIgnoreCase("UTF16"))
+                {
+                  encoding_scheme = "UTF-16BE";          
+                  out.write((byte)0xFE);
+                  out.write((byte)0xFF);
+                } 
+              else if(encoding_scheme.equalsIgnoreCase("UnicodeLittle"))
+                {
+                  encoding_scheme = "UTF-16LE";
+                  out.write((byte)0xFF);
+                  out.write((byte)0xFE);
+                }
+            }
+          catch(IOException ioe)
+            {
+            }
+          
+          Charset cs = EncodingHelper.getCharset(encoding_scheme);
+          if(cs == null)
+            throw new UnsupportedEncodingException("Encoding "+encoding_scheme+
+                                                   " unknown");
+          encoder = cs.newEncoder();
+          encodingName = EncodingHelper.getOldCanonical(cs.name());
+          
+          encoder.onMalformedInput(CodingErrorAction.REPLACE);
+          encoder.onUnmappableCharacter(CodingErrorAction.REPLACE);
+        }
       } 
     catch(RuntimeException e) 
       {
@@ -174,6 +178,8 @@ public class OutputStreamWriter extends Writer
        encoder = null; 
        encodingName = "ISO8859_1";
       }
+    this.encoder = encoder;
+    this.encodingName = encodingName;
   }
 
   /**
@@ -184,8 +190,10 @@ public class OutputStreamWriter extends Writer
    */
   public OutputStreamWriter (OutputStream out)
   {
+    CharsetEncoder encoder;
+    String encodingName;
     this.out = out;
-    outputBuffer = null;
+    outputBuffer = CharBuffer.allocate(BUFFER_SIZE);
     try 
       {
        String encoding = System.getProperty("file.encoding");
@@ -203,8 +211,9 @@ public class OutputStreamWriter extends Writer
       {
        encoder.onMalformedInput(CodingErrorAction.REPLACE);
        encoder.onUnmappableCharacter(CodingErrorAction.REPLACE);
-       outputBuffer = CharBuffer.allocate(BUFFER_SIZE);
       }
+    this.encoder = encoder;
+    this.encodingName = encodingName;
   }
 
   /**
@@ -345,7 +354,7 @@ public class OutputStreamWriter extends Writer
     {
       byte[] b = new byte[count];
       for(int i=0;i<count;i++)
-       b[i] = (byte)((buf[offset+i] <= 0xFF)?buf[offset+i]:'?');
+       b[i] = nullConversion(buf[offset+i]);
       out.write(b);
     } else {
       try  {
@@ -369,6 +378,10 @@ public class OutputStreamWriter extends Writer
     }
   }
 
+  private byte nullConversion(char c) {
+         return (byte)((c <= 0xFF)?c:'?');
+  }
+
   /**
    * This method writes <code>count</code> bytes from the specified 
    * <code>String</code> starting at position <code>offset</code> into the
@@ -398,7 +411,20 @@ public class OutputStreamWriter extends Writer
    */
   public void write (int ch) throws IOException
   {
-    write(new char[]{ (char)ch }, 0, 1);
+         // No buffering, no encoding ... just pass through
+         if (encoder == null && outputBuffer == null) {
+                 out.write(nullConversion((char)ch));
+         } else {
+                 if (outputBuffer != null) {
+                         if (outputBuffer.remaining() == 0) {
+                                 writeConvert(outputBuffer.array(), 0, BUFFER_SIZE);
+                                 outputBuffer.clear();
+                         }
+                         outputBuffer.put((char)ch);
+                 } else {
+                     writeConvert(new char[]{ (char)ch }, 0, 1);
+                 }
+         }
   }
 } // class OutputStreamWriter
 
index c0396d206c647367ceac0b833f2bdb9e647d47bf..924cc6662f05dc057a8eaa3624ad989c647169a5 100644 (file)
@@ -82,7 +82,7 @@ public class PipedInputStream extends InputStream
     * This is the internal circular buffer used for storing bytes written
     * to the pipe and from which bytes are read by this stream
     */
-  protected byte[] buffer = new byte[PIPE_SIZE];
+  protected byte[] buffer = null;
 
   /**
     * The index into buffer where the next byte from the connected
@@ -107,8 +107,25 @@ public class PipedInputStream extends InputStream
     */
   public PipedInputStream()
   {
+    this(PIPE_SIZE);
   }
 
+  /**
+   * Creates a new <code>PipedInputStream</code> of the given size that is not
+   * connected to a <code>PipedOutputStream</code>.
+   * It must be connected before bytes can be read from this stream.
+   * 
+   * @since 1.6
+   * @since IllegalArgumentException If pipeSize <= 0.
+   */
+  public PipedInputStream(int pipeSize) throws IllegalArgumentException 
+  {
+    if (pipeSize <= 0)
+      throw new IllegalArgumentException("pipeSize must be > 0");
+    
+    this.buffer = new byte[pipeSize];
+  }
+  
   /**
     * This constructor creates a new <code>PipedInputStream</code> and connects
     * it to the passed in <code>PipedOutputStream</code>. The stream is then 
@@ -121,9 +138,28 @@ public class PipedInputStream extends InputStream
     */
   public PipedInputStream(PipedOutputStream source) throws IOException
   {
+    this();
     connect(source);
   }
 
+  /**
+   * This constructor creates a new <code>PipedInputStream</code> of the given
+   * size and connects it to the passed in <code>PipedOutputStream</code>.
+   * The stream is then ready for reading.
+   *
+   * @param source The <code>PipedOutputStream</code> to connect this 
+   * stream to
+   *
+   * @since 1.6
+   * @exception IOException If <code>source</code> is already connected.
+   */
+ public PipedInputStream(PipedOutputStream source, int pipeSize)
+   throws IOException
+ {
+   this(pipeSize);
+   connect(source);
+ }
+  
   /**
     * This method connects this stream to the passed in 
     * <code>PipedOutputStream</code>.
index 2d747c8c8f43d18a0b25c866eadc93e4aae221b3..9347ac3979507bccb89fdff5f39d2670417bf1f3 100644 (file)
@@ -76,7 +76,7 @@ public class PrintStream extends FilterOutputStream implements Appendable
   /**
    *  Encoding name
    */
-  private String encoding;
+  private final String encoding;
 
   /**
    * This boolean indicates whether or not an error has ever occurred
@@ -88,7 +88,7 @@ public class PrintStream extends FilterOutputStream implements Appendable
    * This is <code>true</code> if auto-flush is enabled, 
    * <code>false</code> otherwise
    */
-  private boolean auto_flush;
+  private final boolean auto_flush;
 
   /**
    * This method initializes a new <code>PrintStream</code> object to write
@@ -185,16 +185,17 @@ public class PrintStream extends FilterOutputStream implements Appendable
   public PrintStream (OutputStream out, boolean auto_flush)
   {
     super (out);
-
+    String encoding;
     try {
-       this.encoding = SystemProperties.getProperty("file.encoding");
+       encoding = SystemProperties.getProperty("file.encoding");
     } catch (SecurityException e){
-       this.encoding = "ISO8859_1";
+       encoding = "ISO8859_1";
     } catch (IllegalArgumentException e){
-       this.encoding = "ISO8859_1";
+       encoding = "ISO8859_1";
     } catch (NullPointerException e){
-       this.encoding = "ISO8859_1";
+       encoding = "ISO8859_1";
     }
+    this.encoding = encoding;
     this.auto_flush = auto_flush;
   }
 
index d3df881367c28a4466bc936b9a29417ea53936a0..0aafe80f83ce31ccef4cf73bc4f6e22ceb659a52 100644 (file)
@@ -1,5 +1,5 @@
 /* Class.java -- Representation of a Java class.
-   Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006
+   Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007
    Free Software Foundation
 
 This file is part of GNU Classpath.
@@ -66,7 +66,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
-import java.util.HashSet;
+import java.util.LinkedHashSet;
 
 
 /**
@@ -596,7 +596,7 @@ public final class Class<T>
    */
   private Field[] internalGetFields()
   {
-    HashSet<Field> set = new HashSet<Field>();
+    LinkedHashSet<Field> set = new LinkedHashSet<Field>();
     set.addAll(Arrays.asList(getDeclaredFields(true)));
     Class[] interfaces = getInterfaces();
     for (int i = 0; i < interfaces.length; i++)
@@ -1151,7 +1151,7 @@ public final class Class<T>
       }
     try
       {
-        return constructor.newInstance(null);
+        return constructor.newInstance();
       }
     catch (InvocationTargetException e)
       {
index c716203148b3b3a5afbb16a7c25fd0688305d9d7..466d48205ea75cf07d9cb4ef8d69454a91bb18ed 100644 (file)
@@ -518,7 +518,10 @@ public final class Double extends Number implements Comparable<Double>
    */
   public static long doubleToLongBits(double value)
   {
-    return VMDouble.doubleToLongBits(value);
+    if (isNaN(value))
+      return 0x7ff8000000000000L;
+    else
+      return VMDouble.doubleToRawLongBits(value);
   }
 
   /**
@@ -587,16 +590,25 @@ public final class Double extends Number implements Comparable<Double>
    */
   public static int compare(double x, double y)
   {
-    if (isNaN(x))
-      return isNaN(y) ? 0 : 1;
-    if (isNaN(y))
-      return -1;
-    // recall that 0.0 == -0.0, so we convert to infinites and try again
-    if (x == 0 && y == 0)
-      return (int) (1 / x - 1 / y);
-    if (x == y)
-      return 0;
-
-    return x > y ? 1 : -1;
+      // handle the easy cases:
+      if (x < y)
+         return -1;
+      if (x > y)
+         return 1;
+
+      // handle equality respecting that 0.0 != -0.0 (hence not using x == y):
+      long lx = doubleToRawLongBits(x);
+      long ly = doubleToRawLongBits(y);
+      if (lx == ly)
+         return 0;
+
+      // handle NaNs:
+      if (x != x)
+         return (y != y) ? 0 : 1;
+      else if (y != y)
+         return -1;
+
+      // handle +/- 0.0
+      return (lx < ly) ? -1 : 1;
   }
 }
index dc39ec2af203401277352558e5bb83054a869d52..72f31b57eb4b22b2ffa3982f1a51153974e54585 100644 (file)
@@ -526,7 +526,10 @@ public final class Float extends Number implements Comparable<Float>
    */
   public static int floatToIntBits(float value)
   {
-    return VMFloat.floatToIntBits(value);
+    if (isNaN(value))
+      return 0x7fc00000;
+    else
+      return VMFloat.floatToRawIntBits(value);
   }
 
   /**
@@ -594,16 +597,25 @@ public final class Float extends Number implements Comparable<Float>
    */
   public static int compare(float x, float y)
   {
-    if (isNaN(x))
-      return isNaN(y) ? 0 : 1;
-    if (isNaN(y))
-      return -1;
-    // recall that 0.0 == -0.0, so we convert to infinities and try again
-    if (x == 0 && y == 0)
-      return (int) (1 / x - 1 / y);
-    if (x == y)
-      return 0;
-
-    return x > y ? 1 : -1;
+      // handle the easy cases:
+      if (x < y)
+         return -1;
+      if (x > y)
+         return 1;
+
+      // handle equality respecting that 0.0 != -0.0 (hence not using x == y):
+      int ix = floatToRawIntBits(x);
+      int iy = floatToRawIntBits(y);
+      if (ix == iy)
+         return 0;
+
+      // handle NaNs:
+      if (x != x)
+         return (y != y) ? 0 : 1;
+      else if (y != y)
+         return -1;
+
+      // handle +/- 0.0
+      return (ix < iy) ? -1 : 1;
   }
 }
index 62907ff775329e9308033796751037fda850f4b1..cbf5274f0fc64b1978d223831b1546057f2a2839 100644 (file)
@@ -705,16 +705,19 @@ public final class Integer extends Number implements Comparable<Integer>
     if (len == 0)
       throw new NumberFormatException("string length is null");
     int ch = str.charAt(index);
-    if (ch == '-' || ch == '+')
+    if (ch == '-')
       {
         if (len == 1)
-          if (ch == '-')
-            throw new NumberFormatException("pure '-'");
-          else if (ch == '+')
-            throw new NumberFormatException("pure '+'");
+         throw new NumberFormatException("pure '-'");
         isNeg = true;
         ch = str.charAt(++index);
       }
+    else if (ch == '+')
+      {
+       if (len == 1)
+         throw new NumberFormatException("pure '+'");
+       ch = str.charAt(++index);
+      }
     if (decode)
       {
         if (ch == '0')
index f0fbc904c367e2f272a6dda38d903bf22ead8618..08ac3976ca790319fd588166855a1b9b921876b8 100644 (file)
@@ -296,7 +296,7 @@ public final class Long extends Number implements Comparable<Long>
    * @return the <code>Long</code>
    * @since 1.5
    */
-  public static synchronized Long valueOf(long val)
+  public static Long valueOf(long val)
   {
     // We aren't required to cache here.  We could, though perhaps we
     // ought to consider that as an empirical question.
index 746dd63db49664342750234b54ac7f10ffe6024a..73e1a463dd7acf232d75efb4d5c5ab30a48cb724 100644 (file)
@@ -202,7 +202,7 @@ public final class StackTraceElement implements Serializable
    */
   public String toString()
   {
-    StringBuffer sb = new StringBuffer();
+    StringBuilder sb = new StringBuilder();
     if (declaringClass != null)
       {
         sb.append(declaringClass);
index ecb468811489d8db7002eed2f94f0f755de2c63b..0b56accf708329198654cba55866241da53f16db 100644 (file)
@@ -1303,13 +1303,13 @@ public final class String
         break;
     if (i < 0)
       return this;
-    char[] newStr = (char[]) value.clone();
-    newStr[x] = newChar;
+    char[] newStr = toCharArray();
+    newStr[x - offset] = newChar;
     while (--i >= 0)
       if (value[++x] == oldChar)
-        newStr[x] = newChar;
+        newStr[x - offset] = newChar;
     // Package constructor avoids an array copy.
-    return new String(newStr, offset, count, true);
+    return new String(newStr, 0, count, true);
   }
 
   /**
@@ -1431,27 +1431,18 @@ public final class String
   }
 
   /**
-   * Lowercases this String according to a particular locale. This uses
-   * Unicode's special case mappings, as applied to the given Locale, so the
-   * resulting string may be a different length.
-   *
-   * @param loc locale to use
-   * @return new lowercased String, or this if no characters were lowercased
-   * @throws NullPointerException if loc is null
-   * @see #toUpperCase(Locale)
-   * @since 1.1
+   * Convert string to lower case for a Turkish locale that requires special
+   * handling of '\u0049'
    */
-  public String toLowerCase(Locale loc)
+  private String toLowerCaseTurkish()
   {
     // First, see if the current string is already lower case.
-    boolean turkish = "tr".equals(loc.getLanguage());
     int i = count;
     int x = offset - 1;
     while (--i >= 0)
       {
         char ch = value[++x];
-        if ((turkish && ch == '\u0049')
-            || ch != Character.toLowerCase(ch))
+        if ((ch == '\u0049') || ch != Character.toLowerCase(ch))
           break;
       }
     if (i < 0)
@@ -1459,17 +1450,75 @@ public final class String
 
     // Now we perform the conversion. Fortunately, there are no multi-character
     // lowercase expansions in Unicode 3.0.0.
-    char[] newStr = (char[]) value.clone();
+    char[] newStr = new char[count];
+    VMSystem.arraycopy(value, offset, newStr, 0, x - offset);
     do
       {
         char ch = value[x];
         // Hardcoded special case.
-        newStr[x++] = (turkish && ch == '\u0049') ? '\u0131'
-          : Character.toLowerCase(ch);
+        if (ch != '\u0049')
+          {
+            newStr[x - offset] = Character.toLowerCase(ch);
+          }
+        else
+          {
+            newStr[x - offset] = '\u0131';
+          }
+        x++;
       }
     while (--i >= 0);
     // Package constructor avoids an array copy.
-    return new String(newStr, offset, count, true);
+    return new String(newStr, 0, count, true);
+  }
+
+  /**
+   * Lowercases this String according to a particular locale. This uses
+   * Unicode's special case mappings, as applied to the given Locale, so the
+   * resulting string may be a different length.
+   *
+   * @param loc locale to use
+   * @return new lowercased String, or this if no characters were lowercased
+   * @throws NullPointerException if loc is null
+   * @see #toUpperCase(Locale)
+   * @since 1.1
+   */
+  public String toLowerCase(Locale loc)
+  {
+    // First, see if the current string is already lower case.
+
+    // Is loc turkish? String equality test is ok as Locale.language is interned
+    if ("tr" == loc.getLanguage())
+      {
+        return toLowerCaseTurkish();
+      }
+    else
+      {
+        int i = count;
+        int x = offset - 1;
+        while (--i >= 0)
+          {
+            char ch = value[++x];
+            if (ch != Character.toLowerCase(ch))
+              break;
+          }
+        if (i < 0)
+          return this;
+
+        // Now we perform the conversion. Fortunately, there are no
+        // multi-character lowercase expansions in Unicode 3.0.0.
+        char[] newStr = new char[count];
+        VMSystem.arraycopy(value, offset, newStr, 0, x - offset);
+        do
+          {
+            char ch = value[x];
+            // Hardcoded special case.
+            newStr[x - offset] = Character.toLowerCase(ch);
+            x++;
+          }
+        while (--i >= 0);
+        // Package constructor avoids an array copy.
+        return new String(newStr, 0, count, true);
+     }
   }
 
   /**
@@ -1487,21 +1536,12 @@ public final class String
   }
 
   /**
-   * Uppercases this String according to a particular locale. This uses
-   * Unicode's special case mappings, as applied to the given Locale, so the
-   * resulting string may be a different length.
-   *
-   * @param loc locale to use
-   * @return new uppercased String, or this if no characters were uppercased
-   * @throws NullPointerException if loc is null
-   * @see #toLowerCase(Locale)
-   * @since 1.1
+   * Uppercase this string for a Turkish locale
    */
-  public String toUpperCase(Locale loc)
+  private String toUpperCaseTurkish()
   {
     // First, see how many characters we have to grow by, as well as if the
     // current string is already upper case.
-    boolean turkish = "tr".equals(loc.getLanguage());
     int expand = 0;
     boolean unchanged = true;
     int i = count;
@@ -1511,7 +1551,7 @@ public final class String
         char ch = value[--x];
         expand += upperCaseExpansion(ch);
         unchanged = (unchanged && expand == 0
-                     && ! (turkish && ch == '\u0069')
+                     && ch != '\u0069'
                      && ch == Character.toUpperCase(ch));
       }
     if (unchanged)
@@ -1521,16 +1561,24 @@ public final class String
     i = count;
     if (expand == 0)
       {
-        char[] newStr = (char[]) value.clone();
+        char[] newStr = new char[count];
+        VMSystem.arraycopy(value, offset, newStr, 0, count - (x - offset));
         while (--i >= 0)
           {
             char ch = value[x];
             // Hardcoded special case.
-            newStr[x++] = (turkish && ch == '\u0069') ? '\u0130'
-              : Character.toUpperCase(ch);
+            if (ch != '\u0069')
+              {
+                newStr[x - offset] = Character.toUpperCase(ch);
+              }
+            else
+              {
+                newStr[x - offset] = '\u0130';
+              }
+            x++;
           }
         // Package constructor avoids an array copy.
-        return new String(newStr, offset, count, true);
+        return new String(newStr, 0, count, true);
       }
 
     // Expansion is necessary.
@@ -1540,7 +1588,7 @@ public final class String
       {
         char ch = value[x++];
         // Hardcoded special case.
-        if (turkish && ch == '\u0069')
+        if (ch == '\u0069')
           {
             newStr[j++] = '\u0130';
             continue;
@@ -1559,6 +1607,79 @@ public final class String
     return new String(newStr, 0, newStr.length, true);
   }
 
+  /**
+   * Uppercases this String according to a particular locale. This uses
+   * Unicode's special case mappings, as applied to the given Locale, so the
+   * resulting string may be a different length.
+   *
+   * @param loc locale to use
+   * @return new uppercased String, or this if no characters were uppercased
+   * @throws NullPointerException if loc is null
+   * @see #toLowerCase(Locale)
+   * @since 1.1
+   */
+  public String toUpperCase(Locale loc)
+  {
+    // First, see how many characters we have to grow by, as well as if the
+    // current string is already upper case.
+
+    // Is loc turkish? String equality test is ok as Locale.language is interned
+    if ("tr" == loc.getLanguage())
+      {
+        return toUpperCaseTurkish();
+      }
+    else
+      {
+        int expand = 0;
+        boolean unchanged = true;
+        int i = count;
+        int x = i + offset;
+        while (--i >= 0)
+          {
+            char ch = value[--x];
+            expand += upperCaseExpansion(ch);
+            unchanged = (unchanged && expand == 0
+                         && ch == Character.toUpperCase(ch));
+          }
+        if (unchanged)
+          return this;
+
+        // Now we perform the conversion.
+        i = count;
+        if (expand == 0)
+          {
+            char[] newStr = new char[count];
+            VMSystem.arraycopy(value, offset, newStr, 0, count - (x - offset));
+            while (--i >= 0)
+              {
+                char ch = value[x];
+                newStr[x - offset] = Character.toUpperCase(ch);
+                x++;
+              }
+            // Package constructor avoids an array copy.
+            return new String(newStr, 0, count, true);
+          }
+
+        // Expansion is necessary.
+        char[] newStr = new char[count + expand];
+        int j = 0;
+        while (--i >= 0)
+          {
+            char ch = value[x++];
+            expand = upperCaseExpansion(ch);
+            if (expand > 0)
+              {
+                int index = upperCaseIndex(ch);
+                while (expand-- >= 0)
+                  newStr[j++] = upperExpand[index++];
+              }
+            else
+              newStr[j++] = Character.toUpperCase(ch);
+          }
+        // Package constructor avoids an array copy.
+        return new String(newStr, 0, newStr.length, true);
+      }
+  }
   /**
    * Uppercases this String. This uses Unicode's special case mappings, as
    * applied to the platform's default Locale, so the resulting string may
@@ -1617,9 +1738,6 @@ public final class String
    */
   public char[] toCharArray()
   {
-    if (count == value.length)
-      return (char[]) value.clone();
-
     char[] copy = new char[count];
     VMSystem.arraycopy(value, offset, copy, 0, count);
     return copy;
index 68d76fc216443c4e670caa0e3a7f77c945868122..9fd6bfe12cd941cee69f6df4b11cdb4298d755a5 100644 (file)
@@ -832,7 +832,7 @@ public final class System
      * Blocks the retention of all elements in the specified
      * collection from the collection.
      *
-     * @param c the collection of elements to retain.
+     * @param coll the collection of elements to retain.
      * @return true if the other elements were removed.
      * @throws NullPointerException if the collection is null.
      * @throws NullPointerException if any collection entry is null.
index c47a14bf04051e5fc5bb951edbb1d46a4f2e4baa..72f9e7f520b02963962ee0c35c3fdcaa42ec52c3 100644 (file)
@@ -411,7 +411,7 @@ public class Throwable implements Serializable
   // different threads to get mixed up when written to the same PrintWriter.
   private String stackTraceString()
   {
-    StringBuffer sb = new StringBuffer();
+    StringBuilder sb = new StringBuilder();
 
     // Main stacktrace
     StackTraceElement[] stack = getStackTrace();
@@ -455,7 +455,7 @@ public class Throwable implements Serializable
 
   // Adds to the given StringBuffer a line containing the name and
   // all stacktrace elements minus the last equal ones.
-  private static void stackTraceStringBuffer(StringBuffer sb, String name,
+  private static void stackTraceStringBuffer(StringBuilder sb, String name,
                                        StackTraceElement[] stack, int equal)
   {
     String nl = StaticData.nl;
index 884f5af5e9e459ba7af12ecd419dcd92484ba7c9..5b8856d3599b0d00753591d2a258a991bfee7b3b 100644 (file)
@@ -190,134 +190,6 @@ public class ThreadInfo
    */
   private static CompositeType seType;
 
-  /**
-   * Constructs a new {@link ThreadInfo} corresponding
-   * to the thread specified.
-   *
-   * @param thread the thread on which the new instance
-   *               will be based.
-   * @param blockedCount the number of times the thread
-   *                     has been blocked.
-   * @param blockedTime the accumulated number of milliseconds
-   *                    the specified thread has been blocked
-   *                    (only used with contention monitoring enabled)
-   * @param lock the monitor lock the thread is waiting for
-   *             (only used if blocked)
-   * @param lockOwner the thread which owns the monitor lock, or
-   *                  <code>null</code> if it doesn't have an owner
-   *                  (only used if blocked)
-   * @param waitedCount the number of times the thread has been in a
-   *                    waiting state.
-   * @param waitedTime the accumulated number of milliseconds the
-   *                   specified thread has been waiting
-   *                   (only used with contention monitoring enabled)
-   * @param isInNative true if the thread is in a native method.
-   * @param isSuspended true if the thread is suspended.
-   * @param trace the stack trace of the thread to a pre-determined
-   *              depth (see VMThreadMXBeanImpl)
-   */
-  private ThreadInfo(Thread thread, long blockedCount, long blockedTime,
-                    Object lock, Thread lockOwner, long waitedCount,
-                    long waitedTime, boolean isInNative, boolean isSuspended,
-                    StackTraceElement[] trace)
-  {
-    this(thread, blockedCount, blockedTime, lock, lockOwner, waitedCount,
-        waitedTime, isInNative, isSuspended, trace, new MonitorInfo[]{},
-        new LockInfo[]{});
-  }
-
-  /**
-   * Constructs a new {@link ThreadInfo} corresponding
-   * to the thread specified.
-   *
-   * @param thread the thread on which the new instance
-   *               will be based.
-   * @param blockedCount the number of times the thread
-   *                     has been blocked.
-   * @param blockedTime the accumulated number of milliseconds
-   *                    the specified thread has been blocked
-   *                    (only used with contention monitoring enabled)
-   * @param lock the monitor lock the thread is waiting for
-   *             (only used if blocked)
-   * @param lockOwner the thread which owns the monitor lock, or
-   *                  <code>null</code> if it doesn't have an owner
-   *                  (only used if blocked)
-   * @param waitedCount the number of times the thread has been in a
-   *                    waiting state.
-   * @param waitedTime the accumulated number of milliseconds the
-   *                   specified thread has been waiting
-   *                   (only used with contention monitoring enabled)
-   * @param isInNative true if the thread is in a native method.
-   * @param isSuspended true if the thread is suspended.
-   * @param trace the stack trace of the thread to a pre-determined
-   *              depth (see VMThreadMXBeanImpl)
-   * @param lockedMonitors an array of {@link MonitorInfo} objects
-   *                       representing locks held on object monitors
-   *                       by the thread.
-   * @param lockedSynchronizers an array of {@link LockInfo} objects
-   *                            representing locks held on ownable
-   *                            synchronizers by the thread. 
-   * @since 1.6
-   */
-  private ThreadInfo(Thread thread, long blockedCount, long blockedTime,
-                    Object lock, Thread lockOwner, long waitedCount,
-                    long waitedTime, boolean isInNative, boolean isSuspended,
-                    StackTraceElement[] trace, MonitorInfo[] lockedMonitors,
-                    LockInfo[] lockedSynchronizers)
-  {
-    this(thread.getId(), thread.getName(), thread.getState(), blockedCount, blockedTime,
-         lock == null ? null : lock.getClass().getName() + "@" + 
-              Integer.toHexString(System.identityHashCode(lock)),
-         lockOwner == null ? -1 : lockOwner.getId(),
-         lockOwner == null ? null : lockOwner.getName(),
-         waitedCount, waitedTime, isInNative, isSuspended,
-        trace, lockedMonitors, lockedSynchronizers);
-  }
-
-  /**
-   * Constructs a new {@link ThreadInfo} corresponding
-   * to the thread details specified.
-   *
-   * @param threadId the id of the thread on which this
-   *                 new instance will be based.
-   * @param threadName the name of the thread on which
-   *                 this new instance will be based.
-   * @param threadState the state of the thread on which
-   *                 this new instance will be based.
-   * @param blockedCount the number of times the thread
-   *                     has been blocked.
-   * @param blockedTime the accumulated number of milliseconds
-   *                    the specified thread has been blocked
-   *                    (only used with contention monitoring enabled)
-   * @param lockName the name of the monitor lock the thread is waiting for
-   *                 (only used if blocked)
-   * @param lockOwnerId the id of the thread which owns the monitor
-   *                  lock, or <code>-1</code> if it doesn't have an owner
-   *                  (only used if blocked)
-   * @param lockOwnerName the name of the thread which owns the monitor
-   *                  lock, or <code>null</code> if it doesn't have an 
-   *                  owner (only used if blocked)
-   * @param waitedCount the number of times the thread has been in a
-   *                    waiting state.
-   * @param waitedTime the accumulated number of milliseconds the
-   *                   specified thread has been waiting
-   *                   (only used with contention monitoring enabled)
-   * @param isInNative true if the thread is in a native method.
-   * @param isSuspended true if the thread is suspended.
-   * @param trace the stack trace of the thread to a pre-determined
-   *              depth (see VMThreadMXBeanImpl)
-   */
-  private ThreadInfo(long threadId, String threadName, Thread.State threadState,
-                    long blockedCount, long blockedTime, String lockName, 
-                    long lockOwnerId, String lockOwnerName, long waitedCount,
-                    long waitedTime, boolean isInNative, boolean isSuspended,
-                    StackTraceElement[] trace)
-  {
-    this(threadId, threadName, threadState, blockedCount, blockedTime,
-        lockName, lockOwnerId, lockOwnerName, waitedCount, waitedTime,
-        isInNative, isSuspended, trace, new MonitorInfo[]{}, new LockInfo[]{});
-  }
-
   /**
    * Constructs a new {@link ThreadInfo} corresponding
    * to the thread details specified.
index fee9f0172ee8d6bdb13d753fb0ce19e1b7884981..d64e36c3790fcacce96f6711e4010b24079fbad0 100644 (file)
@@ -209,19 +209,19 @@ public final class Array
     if (array instanceof boolean[])
       return ((boolean[]) array)[index] ? Boolean.TRUE : Boolean.FALSE;
     if (array instanceof byte[])
-      return new Byte(((byte[]) array)[index]);
+      return Byte.valueOf(((byte[]) array)[index]);
     if (array instanceof char[])
-      return new Character(((char[]) array)[index]);
+      return Character.valueOf(((char[]) array)[index]);
     if (array instanceof short[])
-      return new Short(((short[]) array)[index]);
+      return Short.valueOf(((short[]) array)[index]);
     if (array instanceof int[])
-      return new Integer(((int[]) array)[index]);
+      return Integer.valueOf(((int[]) array)[index]);
     if (array instanceof long[])
-      return new Long(((long[]) array)[index]);
+      return Long.valueOf(((long[]) array)[index]);
     if (array instanceof float[])
-      return new Float(((float[]) array)[index]);
+      return Float.valueOf(((float[]) array)[index]);
     if (array instanceof double[])
-      return new Double(((double[]) array)[index]);
+      return Double.valueOf(((double[]) array)[index]);
     if (array == null)
       throw new NullPointerException();
     throw new IllegalArgumentException();
index ef743f6bcb00a2df2cdcdd4a330871d6218bda5c..6c1e975a2876c95968ed48bbd4afdd340bde6ae6 100644 (file)
@@ -471,9 +471,9 @@ public class Proxy implements Serializable
                                  .getMethod("equals",
                                             new Class[] {Object.class}));
           coreMethods.put(sig, sig);
-          sig = new ProxySignature(Object.class.getMethod("hashCode", null));
+          sig = new ProxySignature(Object.class.getMethod("hashCode"));
           coreMethods.put(sig, sig);
-          sig = new ProxySignature(Object.class.getMethod("toString", null));
+          sig = new ProxySignature(Object.class.getMethod("toString"));
           coreMethods.put(sig, sig);
         }
       catch (Exception e)
@@ -1033,7 +1033,7 @@ public class Proxy implements Serializable
           code_length += 9; // new, dup_x1, swap, invokespecial, athrow
         }
       int handler_pc = code_length - 1;
-      StringBuffer signature = new StringBuffer("(");
+      StringBuilder signature = new StringBuilder("(");
       for (int j = 0; j < paramtypes.length; j++)
         signature.append(TypeSignature.getEncodingOfClass(paramtypes[j]));
       signature.append(")").append(TypeSignature.getEncodingOfClass(ret_type));
@@ -1261,8 +1261,8 @@ public class Proxy implements Serializable
          // we're in the same package.
           m.flag = true;
 
-          Object[] args = {loader, qualName, bytecode, new Integer(0),
-                           new Integer(bytecode.length),
+          Object[] args = {loader, qualName, bytecode, Integer.valueOf(0),
+                           Integer.valueOf(bytecode.length),
                            Object.class.getProtectionDomain() };
           Class clazz = (Class) m.invoke(null, args);
 
@@ -1492,7 +1492,7 @@ public class Proxy implements Serializable
       if (i == len)
         return str;
 
-      final StringBuffer sb = new StringBuffer(str);
+      final StringBuilder sb = new StringBuilder(str);
       sb.setLength(i);
       for ( ; i < len; i++)
         {
@@ -1533,7 +1533,7 @@ public class Proxy implements Serializable
           int size = poolEntries.size() + 1;
           if (size >= 65535)
             throw new IllegalArgumentException("exceeds VM limitations");
-          i = new Integer(size);
+          i = Integer.valueOf(size);
           poolEntries.put(sequence, i);
           pool.append(sequence);
         }
index 8d174d084f26280cdb34562680290d82f43a0320..3fb75ffa37b2ac9d430ae823179b2b80c31215b4 100644 (file)
@@ -1,5 +1,5 @@
 /* java.math.BigInteger -- Arbitary precision integers
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006  Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -1313,7 +1313,7 @@ public class BigInteger extends Number implements Comparable<BigInteger>
     int b = pMinus1.getLowestSetBit();
 
     // Set m such that this = 1 + 2^b * m.
-    BigInteger m = pMinus1.divide(valueOf(2L << b - 1));
+    BigInteger m = pMinus1.divide(valueOf(2L).pow(b));
 
     // The HAC (Handbook of Applied Cryptography), Alfred Menezes & al. Note
     // 4.49 (controlling the error probability) gives the number of trials
index d7aad7222c7d3901d2ce357c7f6f5c1632aa5d3a..ea681a1ab0ae49da6f3c257665ba27b25667244f 100644 (file)
@@ -403,7 +403,7 @@ public class DatagramSocket
     if (timeout < 0)
       throw new IllegalArgumentException("Invalid timeout: " + timeout);
 
-    getImpl().setOption(SocketOptions.SO_TIMEOUT, new Integer(timeout));
+    getImpl().setOption(SocketOptions.SO_TIMEOUT, Integer.valueOf(timeout));
   }
 
   /**
@@ -450,7 +450,7 @@ public class DatagramSocket
     if (size < 0)
       throw new IllegalArgumentException("Buffer size is less than 0");
 
-    getImpl().setOption(SocketOptions.SO_SNDBUF, new Integer(size));
+    getImpl().setOption(SocketOptions.SO_SNDBUF, Integer.valueOf(size));
   }
 
   /**
@@ -497,7 +497,7 @@ public class DatagramSocket
     if (size < 0)
       throw new IllegalArgumentException("Buffer size is less than 0");
 
-    getImpl().setOption(SocketOptions.SO_RCVBUF, new Integer(size));
+    getImpl().setOption(SocketOptions.SO_RCVBUF, Integer.valueOf(size));
   }
 
   /**
@@ -916,7 +916,7 @@ public class DatagramSocket
     if (tc < 0 || tc > 255)
       throw new IllegalArgumentException();
 
-    getImpl().setOption(SocketOptions.IP_TOS, new Integer(tc));
+    getImpl().setOption(SocketOptions.IP_TOS, Integer.valueOf(tc));
   }
 
   /**
index d57df49199cb839e27ca501e6d3dd94ca0b5ca50..ad329b6075dcdc52fdaff1a804049a92b650ec1d 100644 (file)
@@ -107,7 +107,7 @@ class ResolverCache
   /**
    * Return the hostname for the specified IP address.
    *
-   * @param ip The IP address as a byte array
+   * @param addr The IP address as a byte array
    *
    * @return The hostname
    *
@@ -116,7 +116,7 @@ class ResolverCache
   public static String getHostByAddr(byte[] addr) throws UnknownHostException
   {
     Object key = makeHashableAddress(addr);
-    Entry entry = (Entry) get(key);
+    Entry entry = get(key);
     if (entry != null)
       {
        if (entry.value == null)
@@ -149,7 +149,7 @@ class ResolverCache
   public static byte[][] getHostByName(String hostname)
     throws UnknownHostException
   {
-    Entry entry = (Entry) get(hostname);
+    Entry entry = get(hostname);
     if (entry != null)
       {
        if (entry.value == null)
index 9cefd29e6b173bf48c8a501974520af3dd9c91a1..fa1c51e75c153c2b444f99866d4e4fd76b668e9b 100644 (file)
@@ -469,7 +469,7 @@ public class ServerSocket
     if (timeout < 0)
       throw new IllegalArgumentException("SO_TIMEOUT value must be >= 0");
 
-    impl.setOption(SocketOptions.SO_TIMEOUT, new Integer(timeout));
+    impl.setOption(SocketOptions.SO_TIMEOUT, Integer.valueOf(timeout));
   }
 
   /**
@@ -556,7 +556,7 @@ public class ServerSocket
     if (size <= 0)
       throw new IllegalArgumentException("SO_RCVBUF value must be > 0");
 
-    impl.setOption(SocketOptions.SO_RCVBUF, new Integer(size));
+    impl.setOption(SocketOptions.SO_RCVBUF, Integer.valueOf(size));
   }
 
   /**
index 6480527424100d7ac998e8c32ca5756c8ef89a13..7541bdf78c52280016e31badd50c10e6d4e0b3f9 100644 (file)
@@ -844,7 +844,7 @@ public class Socket
     if (timeout < 0)
       throw new IllegalArgumentException("SO_TIMEOUT value must be >= 0");
 
-    getImpl().setOption(SocketOptions.SO_TIMEOUT, new Integer(timeout));
+    getImpl().setOption(SocketOptions.SO_TIMEOUT, Integer.valueOf(timeout));
   }
 
   /**
@@ -896,7 +896,7 @@ public class Socket
     if (size <= 0)
       throw new IllegalArgumentException("SO_SNDBUF value must be > 0");
 
-    getImpl().setOption(SocketOptions.SO_SNDBUF, new Integer(size));
+    getImpl().setOption(SocketOptions.SO_SNDBUF, Integer.valueOf(size));
   }
 
   /**
@@ -943,7 +943,7 @@ public class Socket
     if (size <= 0)
       throw new IllegalArgumentException("SO_RCVBUF value must be > 0");
 
-    getImpl().setOption(SocketOptions.SO_RCVBUF, new Integer(size));
+    getImpl().setOption(SocketOptions.SO_RCVBUF, Integer.valueOf(size));
   }
 
   /**
@@ -1211,7 +1211,7 @@ public class Socket
     if (tc < 0 || tc > 255)
       throw new IllegalArgumentException();
 
-    getImpl().setOption(SocketOptions.IP_TOS, new Integer(tc));
+    getImpl().setOption(SocketOptions.IP_TOS, Integer.valueOf(tc));
   }
 
   /**
index 4bf4db9856c0ce3471afd11f0ad7ec6ae207f367..85e0e04f236358a2b47fa275e41ffd5c2cb33f4f 100644 (file)
@@ -483,7 +483,7 @@ public final class URI
    */
   private static String quote(String str, String legalCharacters)
   {
-    StringBuffer sb = new StringBuffer(str.length());
+    StringBuilder sb = new StringBuilder(str.length());
     for (int i = 0; i < str.length(); i++)
       {
        char c = str.charAt(i);
@@ -778,8 +778,8 @@ public final class URI
        This follows the algorithm in section 5.2.4. of RFC3986,
        but doesn't modify the input buffer.
     */
-    StringBuffer input = new StringBuffer(relativePath);
-    StringBuffer output = new StringBuffer();
+    StringBuilder input = new StringBuilder(relativePath);
+    StringBuilder output = new StringBuilder();
     int start = 0;
     while (start < input.length())
       {
@@ -853,7 +853,7 @@ public final class URI
    *
    * @param buffer the buffer containing the path.
    */
-  private void removeLastSegment(StringBuffer buffer)
+  private void removeLastSegment(StringBuilder buffer)
   {
     int lastSlash = buffer.lastIndexOf("/");
     if (lastSlash == -1)
@@ -899,7 +899,7 @@ public final class URI
              path = "";
            if (! (path.startsWith("/")))
              {
-               StringBuffer basepath = new StringBuffer(this.path);
+               StringBuilder basepath = new StringBuilder(this.path);
                int i = this.path.lastIndexOf('/');
 
                if (i >= 0)
@@ -1321,7 +1321,8 @@ public final class URI
            int hCompare = host.compareTo(uri.getHost());
            if (hCompare != 0)
              return hCompare;
-           return new Integer(port).compareTo(new Integer(uri.getPort()));
+           int uriPort = uri.getPort();
+           return (uriPort == port) ? 0 : (uriPort > port) ? -1 : 1;
          }
       }
     if (rawPath == null && uri.getRawPath() != null)
@@ -1387,8 +1388,8 @@ public final class URI
   {
     String strRep = toString();
     boolean inNonAsciiBlock = false;
-    StringBuffer buffer = new StringBuffer();
-    StringBuffer encBuffer = null;
+    StringBuilder buffer = new StringBuilder();
+    StringBuilder encBuffer = null;
     for (int i = 0; i < strRep.length(); i++)
       {
        char c = strRep.charAt(i);
@@ -1405,7 +1406,7 @@ public final class URI
          {
            if (!inNonAsciiBlock)
              {
-               encBuffer = new StringBuffer();
+               encBuffer = new StringBuilder();
                inNonAsciiBlock = true;
              }
            encBuffer.append(c);
@@ -1427,7 +1428,7 @@ public final class URI
   {
     try
       {
-       StringBuffer sb = new StringBuffer(); 
+       StringBuilder sb = new StringBuilder(); 
        // this is far from optimal, but it works
        byte[] utf8 = str.getBytes("utf-8");
        for (int j = 0; j < utf8.length; j++)
index 346f51c5dfaec4293b47808120e48bf73ec98702..e1db2a18e556faf890a9d77fa0d6eddbe6aefef5 100644 (file)
@@ -452,7 +452,7 @@ public class URLClassLoader extends SecureClassLoader
   {
     // Compute the name of the package as it may appear in the
     // Manifest.
-    StringBuffer xform = new StringBuffer(name);
+    StringBuilder xform = new StringBuilder(name);
     for (int i = xform.length () - 1; i >= 0; --i)
       if (xform.charAt(i) == '.')
        xform.setCharAt(i, '/');
@@ -641,7 +641,7 @@ public class URLClassLoader extends SecureClassLoader
       {
        if (thisString == null)
          {
-           StringBuffer sb = new StringBuffer();
+           StringBuilder sb = new StringBuilder();
            sb.append(this.getClass().getName());
            sb.append("{urls=[" );
            URL[] thisURLs = getURLs();
index dacc3848e37e8203f29b9c9ca7e4870e75e67574..2f11c501b178a8308f4457b8b447abce8436728c 100644 (file)
@@ -113,7 +113,7 @@ public class URLEncoder
     int start = 0;
     int i = 0;
 
-    StringBuffer result = new StringBuffer(length);
+    StringBuilder result = new StringBuilder(length);
     while (true)
       {
        while (i < length && isSafe(s.charAt(i)))
index 556e4707eeb5e18b3cdd11e838aff085d426281a..924e005e65a7186fc06a2ae35fa5336181e8d5bf 100644 (file)
@@ -234,7 +234,7 @@ public abstract class Charset implements Comparable<Charset>
       {
         for (Iterator<Charset> i = providers[j].charsets(); i.hasNext(); )
           {
-            Charset cs = (Charset) i.next();
+            Charset cs = i.next();
             charsets.put(cs.name(), cs);
           }
       }
index 664215d9a680bfc62c3da9ab02fa6f2351b7d9cf..304d9d7089507e9754ff69b55640a318547c2345 100644 (file)
@@ -170,7 +170,7 @@ public class CoderResult
       if (length <= 0)
         throw new IllegalArgumentException ("Non-positive length");
 
-      Integer len = new Integer (length);
+      Integer len = Integer.valueOf (length);
       CoderResult cr = null;
       Object o;
       if ((o = cache.get (len)) != null)
index f683f9a700f15f213e20388a67495398a24ae886..6e173007e45eb86b724bd984720b05e8a9c51c22 100644 (file)
@@ -37,8 +37,6 @@ exception statement from your version. */
 
 package java.security;
 
-import java.util.WeakHashMap;
-
 import java.nio.ByteBuffer;
 import java.util.HashMap;
 
@@ -113,7 +111,7 @@ public class SecureClassLoader extends ClassLoader
       {
        synchronized (protectionDomainCache)
          {
-           protectionDomain = (ProtectionDomain)protectionDomainCache.get(cs);
+           protectionDomain = protectionDomainCache.get(cs);
          }
 
        if (protectionDomain == null)
@@ -122,8 +120,7 @@ public class SecureClassLoader extends ClassLoader
              = new ProtectionDomain(cs, getPermissions(cs), this, null);
            synchronized (protectionDomainCache)
              {
-               ProtectionDomain domain 
-                 = (ProtectionDomain)protectionDomainCache.get(cs);
+               ProtectionDomain domain = protectionDomainCache.get(cs);
                if (domain == null)
                  protectionDomainCache.put(cs, protectionDomain);
                else
index d3d2c1ebcf955faad833567b069b518724f38ebb..6b7b66428ec952f72ddfda40594ac2aad895c50a 100644 (file)
@@ -702,7 +702,7 @@ public final class Security
               return true;
 
             // assume value is a number. cehck for greater-than-or-equal
-            return (new Integer(val).intValue() >= new Integer(realVal).intValue());
+            return (Integer.parseInt(val) >= Integer.parseInt(realVal));
           }
       }
 
index 8139c6ec5c39fb4f07eedccffdedd18df6e102a3..d83b8160e2767987902ebb4eb679029cb89e5c73 100644 (file)
@@ -42,7 +42,6 @@ import gnu.java.security.Engine;
 
 import java.io.InputStream;
 import java.lang.reflect.InvocationTargetException;
-import java.security.KeyStoreException;
 import java.security.NoSuchAlgorithmException;
 import java.security.NoSuchProviderException;
 import java.security.Provider;
index 0df8dec783e2d0d09ec4ac16dd59b39ea48335b3..ad551117729d6922ff620ae89c20648683bb7312 100644 (file)
@@ -55,12 +55,12 @@ public class RSAKeyGenParameterSpec implements AlgorithmParameterSpec
   /**
      Public Exponent F0 = 3
   */
-  public static final BigInteger F0 = new BigInteger("3");
+  public static final BigInteger F0 = BigInteger.valueOf(3);
 
   /**
      Public Exponent F4 = 3
   */
-  public static final BigInteger F4 = new BigInteger("65537");
+  public static final BigInteger F4 = BigInteger.valueOf(65537L);
 
   /**
      Create a new RSAKeyGenParameterSpec to store the RSA key's keysize 
index 94c13a2ca0c68652f34fa1dd706cff65c2d0689d..629701c171abdd00ce9746f314e9675f6db4b6a0 100644 (file)
@@ -114,10 +114,10 @@ public class ChoiceFormat extends NumberFormat
        
        if (index == max)
          throw new IllegalArgumentException ("unexpected end of text");
-       Double d = new Double (newPattern.substring(dstart, index));
+       Double d = Double.valueOf (newPattern.substring(dstart, index));
 
        if (newPattern.charAt(index) == '<')
-         d = new Double (nextDouble (d.doubleValue()));
+         d = Double.valueOf (nextDouble (d.doubleValue()));
 
        limitVec.addElement(d);
 
@@ -404,11 +404,11 @@ public class ChoiceFormat extends NumberFormat
        if (sourceStr.startsWith(choiceFormats[i], index))
          {
            pos.setIndex(index + choiceFormats[i].length());
-           return new Double (choiceLimits[i]);
+           return Double.valueOf (choiceLimits[i]);
          }
       }
     pos.setErrorIndex(index);
-    return new Double (Double.NaN);
+    return Double.valueOf (Double.NaN);
   }
 
   /**
index 45c79142cc79fbab0103b30002a063d7a3c8f41b..08c5cb56361e132c99fc76f6cd5f937d109073c4 100644 (file)
@@ -73,7 +73,7 @@ public final class CollationElementIterator
   /**
    * This is the String that is being iterated over.
    */
-  String text;
+  CharacterIterator text;
 
   /**
    * This is the index into the collation decomposition where we are currently scanning.
@@ -111,6 +111,21 @@ public final class CollationElementIterator
     setText (text);    
   }
 
+  /**
+   * This method initializes a new instance of <code>CollationElementIterator</code>
+   * to iterate over the specified <code>String</code> using the rules in the
+   * specified <code>RuleBasedCollator</code>.
+   *
+   * @param collator The <code>RuleBasedCollation</code> used for calculating collation values
+   * @param text The character iterator to iterate over.
+   */
+  CollationElementIterator(RuleBasedCollator collator, CharacterIterator text)
+  {
+    this.collator = collator;
+    
+    setText (text);    
+  }
+
   RuleBasedCollator.CollationElement nextBlock()
   {
     if (index >= text_decomposition.length)
@@ -246,7 +261,7 @@ public final class CollationElementIterator
     int alreadyExpanded = 0;
     int idxToMove = 0;
 
-    this.text = text;
+    this.text = new StringCharacterIterator(text);
     this.index = 0;
 
     String work_text = text.intern();
@@ -440,7 +455,7 @@ public final class CollationElementIterator
     if (offset < 0)
       throw new IllegalArgumentException("Negative offset: " + offset);
 
-    if (offset > (text.length() - 1))
+    if (offset > (text.getEndIndex() - 1))
       throw new IllegalArgumentException("Offset too large: " + offset);
     
     for (index = 0; index < text_decomposition.length; index++)
index 7febdeb49c4eeeefbe158b2abc3cf6da8338a46f..61732c1123d6145d498faa9e8dbc022c460da8b5 100644 (file)
@@ -716,15 +716,15 @@ public class DecimalFormat extends NumberFormat
         if (this.parseBigDecimal)
           {
             if (isNegative)
-              return new BigDecimal(Double.NEGATIVE_INFINITY);
+              return BigDecimal.valueOf(Double.NEGATIVE_INFINITY);
             
-            return new BigDecimal(Double.POSITIVE_INFINITY);
+            return BigDecimal.valueOf(Double.POSITIVE_INFINITY);
           }
         
         if (isNegative)
-          return new Double(Double.NEGATIVE_INFINITY);
+          return Double.valueOf(Double.NEGATIVE_INFINITY);
 
-        return new Double(Double.POSITIVE_INFINITY);
+        return Double.valueOf(Double.POSITIVE_INFINITY);
       }
     
     // no number...
@@ -771,21 +771,21 @@ public class DecimalFormat extends NumberFormat
     
     // want integer?
     if (this.parseIntegerOnly)
-      return new Long(bigDecimal.longValue());
+      return Long.valueOf(bigDecimal.longValue());
 
     // 3th special case -0.0
     if (isNegative && (bigDecimal.compareTo(BigDecimal.ZERO) == 0))
-      return new Double(-0.0);
+      return Double.valueOf(-0.0);
     
     try
       {
         BigDecimal integer
           = bigDecimal.setScale(0, BigDecimal.ROUND_UNNECESSARY);
-        return new Long(integer.longValue());
+        return Long.valueOf(integer.longValue());
       }
     catch (ArithmeticException e)
       {
-        return new Double(bigDecimal.doubleValue());
+        return Double.valueOf(bigDecimal.doubleValue());
       }
   }
 
@@ -1787,7 +1787,7 @@ public class DecimalFormat extends NumberFormat
     int endIndexFract = 0;
     
     // compute the multiplier to use with percent and similar
-    number = number.multiply(new BigDecimal(_multiplier));
+    number = number.multiply(BigDecimal.valueOf(_multiplier));
     
     // XXX: special case, not sure if it belongs here or if it is
     // correct at all. There may be other special cases as well
index ab71cecea5abbc73edcc29616ef75c6a0692ef9e..5a595f57615a996925ff849aa128dd821a9af3f4 100644 (file)
@@ -498,7 +498,7 @@ public class MessageFormat extends Format
            int position = output_iterator.getEndIndex();
            
            hash_argument.put (MessageFormat.Field.ARGUMENT,
-                              new Integer(elements[i].argNumber));
+                              Integer.valueOf(elements[i].argNumber));
 
            
            if (iterator != null)
@@ -630,7 +630,7 @@ public class MessageFormat extends Format
            // have recursive formatting.
            ChoiceFormat cf = (ChoiceFormat) formatter;
            String[] formats = (String[]) cf.getFormats();
-           double[] limits = (double[]) cf.getLimits();
+           double[] limits = cf.getLimits();
            MessageFormat subfmt = new MessageFormat ();
            subfmt.setLocale(locale);
            ParsePosition subpos = new ParsePosition (index);
index 4bffcaf290567dfe12fe9ef0025eb3988314e64f..7ec18dcc92f2162db42d54c5d319acac5e2d4221 100644 (file)
@@ -923,17 +923,8 @@ element_loop:
    * @return A <code>CollationElementIterator</code> for the specified <code>String</code>.
    */
   public CollationElementIterator getCollationElementIterator(CharacterIterator source)
-    throws NotImplementedException  // Because decomposeCharacter does not work
   {
-    StringBuffer expand = new StringBuffer("");
-    
-    // Right now we assume that we will read from the beginning of the string.
-    for (char c = source.first();
-        c != CharacterIterator.DONE;
-        c = source.next())
-      decomposeCharacter(c, expand);
-
-    return getCollationElementIterator(expand.toString());
+    return new CollationElementIterator(this, source);
   }
 
   /**
index f78fdcb89c5928768252364672a509d0bbf1b084..934fb42e2a1d079c65fe10255582b6bfdb95d8cb 100644 (file)
@@ -139,9 +139,9 @@ public class SimpleDateFormat extends DateFormat
      */
     public String toString()
     {
-      StringBuffer builder;
+      StringBuilder builder;
 
-      builder = new StringBuffer(getClass().getName());
+      builder = new StringBuilder(getClass().getName());
       builder.append("[field=");
       builder.append(field);
       builder.append(", size=");
@@ -322,7 +322,7 @@ public class SimpleDateFormat extends DateFormat
                    // Look for the terminating quote.  However, if we
                    // see a '', that represents a literal quote and
                    // we must iterate.
-                   StringBuffer buf = new StringBuffer();
+                   StringBuilder buf = new StringBuilder();
                    int oldPos = i + 1;
                    do
                      {
@@ -346,7 +346,7 @@ public class SimpleDateFormat extends DateFormat
            else
              {
                // A special character
-               tokens.add(new Character(thisChar));
+               tokens.add(Character.valueOf(thisChar));
              }
          }
        else
@@ -372,7 +372,7 @@ public class SimpleDateFormat extends DateFormat
    */
   public String toString() 
   {
-    StringBuffer output = new StringBuffer(getClass().getName());
+    StringBuilder output = new StringBuilder(getClass().getName());
     output.append("[tokens=");
     output.append(tokens);
     output.append(", formatData=");
@@ -554,7 +554,7 @@ public class SimpleDateFormat extends DateFormat
                                           String oldChars, String newChars)
   {
     int len = pattern.length();
-    StringBuffer buf = new StringBuffer(len);
+    StringBuilder buf = new StringBuilder(len);
     boolean quoted = false;
     for (int i = 0;  i < len;  i++)
       {
@@ -1279,12 +1279,12 @@ public class SimpleDateFormat extends DateFormat
 
        // advance the index
        pos.setIndex(pos.getIndex() + matcher.end());
-       return new Integer(offset);
+       return Integer.valueOf(offset);
       }
     else if (zoneString.startsWith("GMT"))
       {
        pos.setIndex(pos.getIndex() + 3);
-       return new Integer(0);
+       return Integer.valueOf(0);
       }
     return null;
   }
index 2f58121cedec325adf93ce89f7c1eb677d743d46..02a30a294de100fbbbd58daa1cbf1ff712e964a6 100644 (file)
@@ -524,7 +524,7 @@ public abstract class AbstractMap<K, V> implements Map<K, V>
   public String toString()
   {
     Iterator<Map.Entry<K, V>> entries = entrySet().iterator();
-    StringBuffer r = new StringBuffer("{");
+    StringBuilder r = new StringBuilder("{");
     for (int pos = size(); pos > 0; pos--)
       {
         Map.Entry<K, V> entry = entries.next();
index 2b385b1a0b20f602a7092cb69e84727e64e8e464..712296b1a2a907999d1462c51a3195ee7bcf1734 100644 (file)
@@ -572,7 +572,7 @@ public abstract class Calendar
    * Cache of locale->calendar-class mappings. This avoids having to do a ResourceBundle
    * lookup for every getInstance call.
    */
-  private static HashMap<Locale,Class> cache = new HashMap<Locale,Class>();
+  private static final HashMap<Locale,Class> cache = new HashMap<Locale,Class>();
 
   /** Preset argument types for calendar-class constructor lookup.  */
   private static Class[] ctorArgTypes = new Class[]
@@ -1266,7 +1266,7 @@ public abstract class Calendar
 
   /**
    * Compares the time of two calendar instances.
-   * @param calendar the calendar to which the time should be compared.
+   * @param cal the calendar to which the time should be compared.
    * @return 0 if the two calendars are set to the same time, 
    * less than 0 if the time of this calendar is before that of 
    * <code>cal</code>, or more than 0 if the time of this calendar is after
@@ -1328,8 +1328,8 @@ public abstract class Calendar
    */
   public String toString()
   {
-    StringBuffer sb = new StringBuffer();
-    sb.append(getClass().getName()).append('[');
+    StringBuilder sb = new StringBuilder(getClass().getName());
+    sb.append('[');
     sb.append("time=");
     if (isTimeSet)
       sb.append(time);
index fd802fe9db4082190088a1191036d9b5bc336b95..ae2010f1ce5b77f449d1ab076017a9b037250fcb 100644 (file)
@@ -6167,7 +6167,7 @@ public class Collections
      * correct type.
      *
      * @param index the index at which to place the new element.
-     * @param c the collections of objects to add.
+     * @param coll the collections of objects to add.
      * @throws ClassCastException if the type of any element in c is not a
      *                            valid type for the underlying collection.
      */
@@ -6870,7 +6870,7 @@ public class Collections
      * Adds all pairs within the supplied map to the underlying map,
      * provided they are all have the correct key and value types.
      *
-     * @param m the map, the entries of which should be added
+     * @param map the map, the entries of which should be added
      *          to the underlying map.
      * @throws ClassCastException if the type of a key or value is
      *                            not a valid type for the underlying map.    
index 1ad128ebfc5e9e9e6758a1b7172c93487ff7f181..8646c19175e6af1e04023adea7de12002a15d0c7 100644 (file)
@@ -722,7 +722,7 @@ public class Date
     boolean localTimezone = true;
 
     // Trim out any nested stuff in parentheses now to make parsing easier.
-    StringBuffer buf = new StringBuffer();
+    StringBuilder buf = new StringBuilder();
     int parenNesting = 0;
     int len = string.length();
     for (int i = 0;  i < len;  i++)
index 12b705bce065680bc5248b949331f40cbca58efc..82130782e0f2a3eeac827d12322ebf1aa8178d13 100644 (file)
@@ -291,7 +291,7 @@ public final class Formatter
    * If the locale is <code>null</code>, then no localization is
    * applied.
    *
-   * @param file the output stream.
+   * @param out the output stream.
    * @param charset the character set to use for output.
    * @param loc the locale to use.
    * @throws UnsupportedEncodingException if the supplied character
@@ -1427,7 +1427,7 @@ public final class Formatter
    * Outputs a formatted string based on the supplied specification,
    * <code>fmt</code>, and its arguments using the formatter's locale.
    *
-   * @param fmt the format specification.
+   * @param format the format specification.
    * @param args the arguments to apply to the specification.
    * @throws IllegalFormatException if there is a problem with
    *                                the syntax of the format
index a85674637e76d80210d072db9c432dea4b3e6511..07bd94693184031eb0f3cc56ed88472e5a102091 100644 (file)
@@ -579,7 +579,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
     // would repeatedly re-lock/release the monitor, we directly use the
     // unsynchronized EntryIterator instead.
     Iterator<Map.Entry<K, V>> entries = new EntryIterator();
-    StringBuffer r = new StringBuffer("{");
+    StringBuilder r = new StringBuilder("{");
     for (int pos = size; pos > 0; pos--)
       {
         r.append(entries.next());
@@ -1088,7 +1088,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
      * <code>next()</code> gives a different result, by returning just
      * the key rather than the whole element.
      */
-    private EntryIterator iterator;
+    private final EntryIterator iterator;
 
     /**
      * Construct a new KeyIterator
@@ -1153,7 +1153,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
      * <code>next()</code> gives a different result, by returning just
      * the value rather than the whole element.
      */
-    private EntryIterator iterator;
+    private final EntryIterator iterator;
 
     /**
      * Construct a new KeyIterator
@@ -1294,7 +1294,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
      * <code>nextElement()</code> gives a different result, by returning just
      * the key rather than the whole element.
      */
-    private EntryEnumerator enumerator;
+    private final EntryEnumerator enumerator;
 
     /**
      * Construct a new KeyEnumerator
@@ -1355,7 +1355,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
      * <code>nextElement()</code> gives a different result, by returning just
      * the value rather than the whole element.
      */
-    private EntryEnumerator enumerator;
+    private final EntryEnumerator enumerator;
 
     /**
      * Construct a new ValueEnumerator
index a0b32f349645774fb8f732ae8e88f8799861827a..03b9556062c5096947203a0eafa181a238e69914 100644 (file)
@@ -1,6 +1,6 @@
 /* LinkedHashSet.java -- a set backed by a LinkedHashMap, for linked
    list traversal.
-   Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2004, 2005, 2007 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -98,7 +98,7 @@ public class LinkedHashSet<T> extends HashSet<T>
 
   /**
    * Construct a new, empty HashSet whose backing HashMap has the default
-   * capacity (11) and loadFacor (0.75).
+   * capacity (11) and loadFactor (0.75).
    */
   public LinkedHashSet()
   {
index 846ae7baadc2efdfe0ada2172fe19ef3440a9462..cd372f245518106605f81be9128df65c241653c9 100644 (file)
@@ -178,21 +178,21 @@ public final class Locale implements Serializable, Cloneable
    *
    * @serial the languange, possibly ""
    */
-  private String language;
+  private final String language;
 
   /**
    * The country code, as returned by getCountry().
    *
    * @serial the country, possibly ""
    */
-  private String country;
+  private final String country;
 
   /**
    * The variant code, as returned by getVariant().
    *
    * @serial the variant, possibly ""
    */
-  private String variant;
+  private final String variant;
 
   /**
    * This is the cached hashcode. When writing to stream, we write -1.
@@ -324,13 +324,12 @@ public final class Locale implements Serializable, Cloneable
     // default locale.
     if (defaultLocale != null)
       {
-        language = convertLanguage(language).intern();
-        country = country.toUpperCase().intern();
-        variant = variant.intern();
+        language = convertLanguage(language);
+        country = country.toUpperCase();
       }
-    this.language = language;
-    this.country = country;
-    this.variant = variant;
+    this.language = language.intern();
+    this.country = country.intern();
+    this.variant = variant.intern();
     hashcode = language.hashCode() ^ country.hashCode() ^ variant.hashCode();
   }
 
@@ -1022,9 +1021,6 @@ public final class Locale implements Serializable, Cloneable
     throws IOException, ClassNotFoundException
   {
     s.defaultReadObject();
-    language = language.intern();
-    country = country.intern();
-    variant = variant.intern();
     hashcode = language.hashCode() ^ country.hashCode() ^ variant.hashCode();
   }
 } // class Locale
index 48c017f50fa0e11cdf0e34ac3c9f515e308ee0f4..6e4fb9a8ac910867073156a83877f2aafe0a72e3 100644 (file)
@@ -41,17 +41,70 @@ import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 import java.io.Serializable;
+
 import java.lang.reflect.Array;
+
 import java.util.AbstractList;
+import java.util.Arrays;
 import java.util.Collection;
+import java.util.ConcurrentModificationException;
 import java.util.Iterator;
 import java.util.List;
+import java.util.ListIterator;
+import java.util.NoSuchElementException;
 import java.util.RandomAccess;
 
-/** @since 1.5 */
-public class CopyOnWriteArrayList<E> extends AbstractList<E> implements
-    List<E>, RandomAccess, Cloneable, Serializable
+/**
+ * A thread-safe implementation of an ArrayList. A CopyOnWriteArrayList is
+ * as special ArrayList which performs copies of the underlying storage
+ * each time a write (<code>remove</code>, <code>add</code> etc..) operation
+ * is performed.<br />
+ * <br />
+ * The update operation in this class run usually in <code>O(n)</code> or worse,
+ * but traversal operations are fast and efficient, especially when running in
+ * a multi-thread environment without the need to design complex synchronize
+ * mechanisms.<br />
+ * <br />
+ * <code>Iterator</code>s in this class work on a snapshot of the backing store
+ * at the moment the iterator itself was created, hence the iterator will not
+ * reflect changes in the underlying storage. Thus, update operation on the
+ * <code>Iterator</code>s are not supported, but as interferences from other
+ * threads are impossible, no <code>ConcurrentModificationException</code>
+ * will be ever thrown from within the <code>Iterator</code>.
+ * <br /><br />
+ * This class is especially useful when used with event handling, like the
+ * following code demonstrates:<br />
+ * <code><pre>
+ * 
+ * CopyOnWriteArrayList<EventListener> listeners =
+ *   new CopyOnWriteArrayList<EventListener>();
+ * 
+ * [...]
+ * 
+ * for (final EventListener listener : listeners)
+ *   {
+ *     Runnable dispatcher = new Runnable() {
+ *       public void run()
+ *       {
+ *         listener.preferenceChange(event);
+ *       }
+ *     };
+ *         
+ *     Executor executor = Executors.newSingleThreadExecutor();
+ *     executor.execute(dispatcher);
+ *   }
+ * </pre></code>
+ * 
+ * @since 1.5
+ */
+public class CopyOnWriteArrayList<E> 
+  implements List<E>, RandomAccess, Cloneable, Serializable
 {
+  /**
+   * 
+   */
+  private static final long serialVersionUID = 8673264195747942595L;
+  
   /**
    * Where the data is stored.
    */
@@ -118,7 +171,7 @@ public class CopyOnWriteArrayList<E> extends AbstractList<E> implements
   }
 
   /**
-   * Returns true iff element is in this ArrayList.
+   * Returns true if element is in this ArrayList.
    * 
    * @param e
    *          the element whose inclusion in the List is being tested
@@ -129,6 +182,28 @@ public class CopyOnWriteArrayList<E> extends AbstractList<E> implements
     return indexOf(e) != -1;
   }
 
+  /**
+   * Tests whether this collection contains all the elements in a given
+   * collection. This implementation iterates over the given collection,
+   * testing whether each element is contained in this collection. If any one
+   * is not, false is returned. Otherwise true is returned.
+   *
+   * @param c the collection to test against
+   * @return true if this collection contains all the elements in the given
+   *         collection
+   * @throws NullPointerException if the given collection is null
+   * @see #contains(Object)
+   */
+  public boolean containsAll(Collection<?> c)
+  {
+    Iterator<?> itr = c.iterator();
+    int pos = c.size();
+    while (--pos >= 0)
+      if (!contains(itr.next()))
+        return false;
+    return true;
+  }
+
   /**
    * Returns the lowest index at which element appears in this List, or -1 if it
    * does not appear.
@@ -161,7 +236,7 @@ public class CopyOnWriteArrayList<E> extends AbstractList<E> implements
 
     for (int i = index; i < data.length; i++)
       if (equals(e, data[i]))
-       return i;
+        return i;
     return -1;
   }
 
@@ -197,7 +272,7 @@ public class CopyOnWriteArrayList<E> extends AbstractList<E> implements
 
     for (int i = index; i >= 0; i--)
       if (equals(e, data[i]))
-       return i;
+        return i;
     return -1;
   }
 
@@ -212,7 +287,6 @@ public class CopyOnWriteArrayList<E> extends AbstractList<E> implements
     try
       {
         clone = (CopyOnWriteArrayList<E>) super.clone();
-        clone.data = (E[]) data.clone();
       }
     catch (CloneNotSupportedException e)
       {
@@ -347,17 +421,153 @@ public class CopyOnWriteArrayList<E> extends AbstractList<E> implements
    */
   public synchronized E remove(int index)
   {
-    E[] data = this.data;
-    E[] newData = (E[]) new Object[data.length - 1];
+    if (index < 0 || index >= this.size())
+      throw new IndexOutOfBoundsException("index = " +  index);
+    
+    E[] snapshot = this.data;
+    E[] newData = (E[]) new Object[snapshot.length - 1];
+    
+    E result = snapshot[index];
+    
     if (index > 0)
-      System.arraycopy(data, 0, newData, 0, index - 1);
-    System.arraycopy(data, index + 1, newData, index,
-                     data.length - index - 1);
-    E r = data[index];
+      System.arraycopy(snapshot, 0, newData, 0, index);
+    
+    System.arraycopy(snapshot, index + 1, newData, index,
+                     snapshot.length - index - 1);
+    
     this.data = newData;
-    return r;
+    
+    return result;
   }
 
+  /**
+   * Remove the first occurrence, if any, of the given object from this list,
+   * returning <code>true</code> if the object was removed, <code>false</code>
+   * otherwise.
+   * 
+   * @param element the object to be removed.
+   * @return true if element was removed, false otherwise. false means also that
+   * the underlying storage was unchanged after this operation concluded.
+   */
+  public synchronized boolean remove(Object element)
+  {
+    E[] snapshot = this.data;
+    E[] newData = (E[]) new Object[snapshot.length - 1];
+    
+    // search the element to remove while filling the backup array
+    // this way we can run this method in O(n)
+    int elementIndex = -1;
+    for (int i = 0; i < snapshot.length; i++)
+      {
+        if (equals(element, snapshot[i]))
+          {
+            elementIndex = i;
+            break;
+          }
+        
+        if (i < newData.length)
+          newData[i] = snapshot[i];
+      }
+    
+    if (elementIndex < 0)
+      return false;
+     
+    System.arraycopy(snapshot, elementIndex + 1, newData, elementIndex,
+                     snapshot.length - elementIndex - 1);
+    this.data = newData;
+    
+    return true;
+  }
+  
+  /**
+   * Removes all the elements contained in the given collection.
+   * This method removes the elements that are contained in both
+   * this list and in the given collection.
+   * 
+   * @param c the collection containing the elements to be removed from this
+   * list.
+   * @return true if at least one element was removed, indicating that
+   * the list internal storage changed as a result, false otherwise. 
+   */
+  public synchronized boolean removeAll(Collection<?> c)
+  {
+    if (c.size() == 0)
+      return false;
+    
+    E [] snapshot = this.data;
+    E [] storage = (E[]) new Object[this.data.length]; 
+    boolean changed = false;
+    
+    int length = 0;
+    for (E element : snapshot)
+      {
+        // copy all the elements, including null values
+        // if the collection can hold it
+        // FIXME: slow operation
+        if (c.contains(element))
+          changed = true;
+        else
+          storage[length++] = element;
+      }
+    
+    if (!changed)
+      return false;
+    
+    E[] newData = (E[]) new Object[length];
+    System.arraycopy(storage, 0, newData, 0, length);
+    
+    this.data = newData;
+    
+    return true;
+  }
+  
+  /**
+   * Removes all the elements that are not in the passed collection.
+   * If the collection is void, this method has the same effect of
+   * <code>clear()</code>.
+   * Please, note that this method is extremely slow (unless the argument has
+   * <code>size == 0</code>) and has bad performance is both space and time
+   * usage.
+   * 
+   * @param c the collection containing the elements to be retained by this
+   * list.
+   * @return true the list internal storage changed as a result of this
+   * operation, false otherwise.
+   */
+  public synchronized boolean retainAll(Collection<?> c)
+  {
+    // if the given collection does not contain elements
+    // we remove all the elements from our storage
+    if (c.size() == 0)
+      {
+        this.clear();
+        return true;
+      }
+    
+    E [] snapshot = this.data;
+    E [] storage = (E[]) new Object[this.data.length]; 
+    
+    int length = 0;
+    for (E element : snapshot)
+      {
+        if (c.contains(element))
+          storage[length++] = element;
+      }
+    
+    // means we retained all the elements previously in our storage
+    // we are running already slow here, but at least we avoid copying
+    // another array and changing the internal storage
+    if (length == snapshot.length)
+      return false;
+    
+    E[] newData = (E[]) new Object[length];
+    System.arraycopy(storage, 0, newData, 0, length);
+    
+    this.data = newData;
+    
+    return true;
+  }
+  
   /**
    * Removes all elements from this List
    */
@@ -399,21 +609,42 @@ public class CopyOnWriteArrayList<E> extends AbstractList<E> implements
    */
   public synchronized boolean addAll(int index, Collection< ? extends E> c)
   {
-    E[] data = this.data;
-    Iterator<? extends E> itr = c.iterator();
+    if (index < 0 || index > this.size())
+      throw new IndexOutOfBoundsException("index = " +  index);
+    
     int csize = c.size();
     if (csize == 0)
       return false;
-
+    
+    E[] data = this.data;
+    Iterator<? extends E> itr = c.iterator();
+    
     E[] newData = (E[]) new Object[data.length + csize];
-    System.arraycopy(data, 0, newData, 0, data.length);
-    int end = data.length;
+    
+    // avoid this call at all if we were asked to put the elements at the
+    // beginning of our storage
+    if (index != 0)
+      System.arraycopy(data, 0, newData, 0, index);
+    
+    int itemsLeft = index;
+    
     for (E value : c)
-      newData[end++] = value;
+      newData[index++] = value;
+    
+    // now copy the remaining elements
+    System.arraycopy(data, itemsLeft, newData, 0, data.length - itemsLeft);
+    
     this.data = newData;
+    
     return true;
   }
   
+  /**
+   * Adds an element if the list does not contains it already.
+   * 
+   * @param val the element to add to the list.
+   * @return true if the element was added, false otherwise.
+   */
   public synchronized boolean addIfAbsent(E val)
   {
     if (contains(val))
@@ -422,16 +653,752 @@ public class CopyOnWriteArrayList<E> extends AbstractList<E> implements
     return true;
   }
 
+  /**
+   * Adds all the element from the given collection that are not already
+   * in this list.
+   * 
+   * @param c the Collection containing the elements to be inserted
+   * @return true the list internal storage changed as a result of this
+   * operation, false otherwise.
+   */
   public synchronized int addAllAbsent(Collection<? extends E> c)
   {
-    int result = 0;
+    int size = c.size();
+    if (size == 0)
+      return 0;
+    
+    E [] snapshot = this.data;
+    E [] storage = (E[]) new Object[size];
+    
+    size = 0;
     for (E val : c)
       {
-        if (addIfAbsent(val))
-          ++result;
+        if (!this.contains(val))
+          storage[size++] = val;
       }
-    return result;
+    
+    if (size == 0)
+      return 0;
+    
+    // append storage to data
+    E [] newData = (E[]) new Object[snapshot.length + size];
+    
+    System.arraycopy(snapshot, 0, newData, 0, snapshot.length);
+    System.arraycopy(storage, 0, newData, snapshot.length, size);
+    
+    this.data = newData;
+    
+    return size;
+  }
+
+  public String toString()
+  {
+    return Arrays.toString(this.data);
+  }
+
+  public boolean equals(Object o)
+  {
+    if (o == null)
+      return false;
+    
+    if (this == o)
+      return true;
+    
+    // let's see if 'o' is a list, if so, we need to compare the elements
+    // as returned by the iterator
+    if (o instanceof List)
+      {
+        List<?> source = (List<?>) o;
+        
+        if (source.size() != this.size())
+          return false;
+        
+        Iterator<?> sourceIterator = source.iterator();
+        for (E element : this)
+          {
+            if (!element.equals(sourceIterator.next()))
+              return false;
+          }
+
+        return true;
+      }
+    
+    return false;
+  }
+  
+  public int hashCode()
+  {
+    // see http://java.sun.com/6/docs/api/java/util/List.html#hashcode()
+    int hashcode = 1;
+    for (E element : this)
+      {
+        hashcode = 31 * hashcode + (element == null ? 0 : element.hashCode());
+      }
+    return hashcode;
+  }
+  
+  /**
+   * Return an Iterator containing the elements of this list.
+   * The Iterator uses a snapshot of the state of the internal storage
+   * at the moment this method is called and does <strong>not</strong> support
+   * update operations, so no synchronization is needed to traverse the
+   * iterator.
+   * 
+   * @return an Iterator containing the elements of this list in sequence.
+   */
+  public Iterator<E> iterator()
+  {
+    return new Iterator<E>()
+    {
+      E [] iteratorData = CopyOnWriteArrayList.this.data;
+      int currentElement = 0;
+      
+      public boolean hasNext()
+      {
+        return (currentElement < iteratorData.length);
+      }
+
+      public E next()
+      {
+        return iteratorData[currentElement++];
+      }
+
+      public void remove()
+      {
+        throw new UnsupportedOperationException("updating of elements in " +
+                                                "iterators is not supported " +
+                                                "by this class");
+      }
+    };
   }
+  
+  /**
+   * Return a ListIterator containing the elements of this list.
+   * The Iterator uses a snapshot of the state of the internal storage
+   * at the moment this method is called and does <strong>not</strong> support
+   * update operations, so no synchronization is needed to traverse the
+   * iterator.
+   * 
+   * @return a ListIterator containing the elements of this list in sequence.
+   */
+  public ListIterator<E> listIterator()
+  {
+    return listIterator(0);
+  }
+
+  /**
+   * Return a ListIterator over the elements of this list starting at
+   * the specified index.  An initial call to {@code next()} will thus
+   * return the element at {@code index}, while an initial call to
+   * {@code previous()} will return the element at {@code index-1}.  The
+   * Iterator uses a snapshot of the state of the internal storage
+   * at the moment this method is called and does <strong>not</strong> support
+   * update operations, so no synchronization is needed to traverse the
+   * iterator.
+   * 
+   * @param index the index at which to start iterating.
+   * @return a ListIterator containing the elements of this list in sequence.
+   */
+  public ListIterator<E> listIterator(final int index)
+  {
+    if (index < 0 || index > size())
+      throw new IndexOutOfBoundsException("Index: " + index + ", Size:"
+                                          + size());
+
+    return new ListIterator<E>()
+    {
+      E [] iteratorData = CopyOnWriteArrayList.this.data;
+      int currentElement = index;
+      
+      public void add(E o)
+      {
+        throw new UnsupportedOperationException("updating of elements in " +
+                                                "iterators is not supported " +
+                                                "by this class");
+      }
+
+      public boolean hasNext()
+      {
+        return (currentElement < iteratorData.length);
+      }
+
+      public boolean hasPrevious()
+      {
+        return (currentElement > 0);
+      }
+
+      public E next()
+      {
+        if (hasNext() == false)
+          throw new java.util.NoSuchElementException();
+        
+        return iteratorData[currentElement++];
+      }
+
+      public int nextIndex()
+      {
+        return (currentElement + 1);
+      }
+
+      public E previous()
+      {
+        if (hasPrevious() == false)
+          throw new java.util.NoSuchElementException();
+        
+        return iteratorData[--currentElement];
+      }
+
+      public int previousIndex()
+      {
+        return (currentElement - 1);
+      }
+
+      public void remove()
+      {
+        throw new UnsupportedOperationException("updating of elements in " +
+                                                "iterators is not supported " +
+                                                "by this class");
+      }
+
+      public void set(E o)
+      {
+        throw new UnsupportedOperationException("updating of elements in " +
+                                                "iterators is not supported " +
+                                                "by this class");
+      }
+      
+    };
+  }
+  
+  /**
+   * Obtain a List view of a subsection of this list, from fromIndex
+   * (inclusive) to toIndex (exclusive). If the two indices are equal, the
+   * sublist is empty. The returned list should be modifiable if and only
+   * if this list is modifiable. Changes to the returned list should be
+   * reflected in this list. If this list is structurally modified in
+   * any way other than through the returned list, the result of any subsequent
+   * operations on the returned list is undefined.
+   * <p>
+   *
+   * This implementation returns a subclass of AbstractList. It stores, in
+   * private fields, the offset and size of the sublist, and the expected
+   * modCount of the backing list. If the backing list implements RandomAccess,
+   * the sublist will also.
+   * <p>
+   *
+   * The subclass's <code>set(int, Object)</code>, <code>get(int)</code>,
+   * <code>add(int, Object)</code>, <code>remove(int)</code>,
+   * <code>addAll(int, Collection)</code> and
+   * <code>removeRange(int, int)</code> methods all delegate to the
+   * corresponding methods on the backing abstract list, after
+   * bounds-checking the index and adjusting for the offset. The
+   * <code>addAll(Collection c)</code> method merely returns addAll(size, c).
+   * The <code>listIterator(int)</code> method returns a "wrapper object"
+   * over a list iterator on the backing list, which is created with the
+   * corresponding method on the backing list. The <code>iterator()</code>
+   * method merely returns listIterator(), and the <code>size()</code> method
+   * merely returns the subclass's size field.
+   * <p>
+   *
+   * All methods first check to see if the actual modCount of the backing
+   * list is equal to its expected value, and throw a
+   * ConcurrentModificationException if it is not. 
+   *
+   * @param fromIndex the index that the returned list should start from
+   *        (inclusive)
+   * @param toIndex the index that the returned list should go to (exclusive)
+   * @return a List backed by a subsection of this list
+   * @throws IndexOutOfBoundsException if fromIndex &lt; 0
+   *         || toIndex &gt; size()
+   * @throws IndexOutOfBoundsException if fromIndex &gt; toIndex
+   * @see ConcurrentModificationException
+   * @see RandomAccess
+   */
+  public synchronized List<E> subList(int fromIndex, int toIndex)
+  {
+    // This follows the specification of AbstractList, but is inconsistent
+    // with the one in List. Don't you love Sun's inconsistencies?
+    if (fromIndex > toIndex)
+      throw new IndexOutOfBoundsException(fromIndex + " > " + toIndex);
+    if (fromIndex < 0 || toIndex > size())
+      throw new IndexOutOfBoundsException();
+
+    if (this instanceof RandomAccess)
+      return new RandomAccessSubList<E>(this, fromIndex, toIndex);
+    return new SubList<E>(this, fromIndex, toIndex);
+  }
+
+  /**
+   * This class follows the implementation requirements set forth in
+   * {@link AbstractList#subList(int, int)}. It matches Sun's implementation
+   * by using a non-public top-level class in the same package.
+   *
+   * @author Original author unknown
+   * @author Eric Blake (ebb9@email.byu.edu)
+   */
+  private static class SubList<E> 
+    extends AbstractList<E>
+  {
+    // Package visible, for use by iterator.
+    /** The original list. */
+    final CopyOnWriteArrayList<E> backingList;
+    /** The index of the first element of the sublist. */
+    final int offset;
+    /** The size of the sublist. */
+    int size;
+    /** The backing data */
+    E[] data;
+
+    /**
+     * Construct the sublist.
+     *
+     * @param backing the list this comes from
+     * @param fromIndex the lower bound, inclusive
+     * @param toIndex the upper bound, exclusive
+     */
+    SubList(CopyOnWriteArrayList<E> backing, int fromIndex, int toIndex)
+    {
+      backingList = backing;
+      data = backing.data;
+      offset = fromIndex;
+      size = toIndex - fromIndex;
+    }
+    
+    /**
+     * This method checks the two modCount fields to ensure that there has
+     * not been a concurrent modification, returning if all is okay.
+     *
+     * @throws ConcurrentModificationException if the backing list has been
+     *         modified externally to this sublist
+     */
+    // This can be inlined. Package visible, for use by iterator.
+    void checkMod()
+    {
+      if (data != backingList.data)
+        throw new ConcurrentModificationException();
+    }
+    
+    /**
+     * This method checks that a value is between 0 and size (inclusive). If
+     * it is not, an exception is thrown.
+     *
+     * @param index the value to check
+     * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt; size()
+     */
+    // This will get inlined, since it is private.
+    private void checkBoundsInclusive(int index)
+    {
+      if (index < 0 || index > size)
+        throw new IndexOutOfBoundsException("Index: " + index +
+                                            ", Size:" + size);
+    }
+    
+    /**
+     * This method checks that a value is between 0 (inclusive) and size
+     * (exclusive). If it is not, an exception is thrown.
+     *
+     * @param index the value to check
+     * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt;= size()
+     */
+    // This will get inlined, since it is private.
+    private void checkBoundsExclusive(int index)
+    {
+      if (index < 0 || index >= size)
+        throw new IndexOutOfBoundsException("Index: " + index +
+                                            ", Size:" + size);
+    }
+    
+    /**
+     * Specified by AbstractList.subList to return the private field size.
+     *
+     * @return the sublist size
+     * @throws ConcurrentModificationException if the backing list has been
+     *         modified externally to this sublist
+     */
+    public int size()
+    {
+      synchronized (backingList)
+        {
+          checkMod();
+          return size;
+        }
+    }
+    
+    public void clear()
+    {
+      synchronized (backingList)
+        {
+          E[] snapshot = backingList.data;
+          E[] newData = (E[]) new Object[snapshot.length - size];
+
+          int toIndex = size + offset;
+          
+          System.arraycopy(snapshot, 0, newData, 0, offset);
+          System.arraycopy(snapshot, toIndex, newData, offset,
+                           snapshot.length - toIndex);
+          
+          backingList.data = newData;
+          this.data = backingList.data;
+          this.size = 0;
+        }
+    }
+    
+    /**
+     * Specified by AbstractList.subList to delegate to the backing list.
+     *
+     * @param index the location to modify
+     * @param o the new value
+     * @return the old value
+     * @throws ConcurrentModificationException if the backing list has been
+     *         modified externally to this sublist
+     * @throws UnsupportedOperationException if the backing list does not
+     *         support the set operation
+     * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt;= size()
+     * @throws ClassCastException if o cannot be added to the backing list due
+     *         to its type
+     * @throws IllegalArgumentException if o cannot be added to the backing list
+     *         for some other reason
+     */
+    public E set(int index, E o)
+    {
+      synchronized (backingList)
+        {
+          checkMod();
+          checkBoundsExclusive(index);
+          
+          E el =  backingList.set(index + offset, o);
+          this.data = backingList.data;
+          
+          return el;
+        }
+    }
+    
+    /**
+     * Specified by AbstractList.subList to delegate to the backing list.
+     *
+     * @param index the location to get from
+     * @return the object at that location
+     * @throws ConcurrentModificationException if the backing list has been
+     *         modified externally to this sublist
+     * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt;= size()
+     */
+    public E get(int index)
+    {
+      synchronized (backingList)
+      {
+        checkMod();
+        checkBoundsExclusive(index);
+        
+        return backingList.get(index + offset);
+      }
+    }
+    
+    /**
+     * Specified by AbstractList.subList to delegate to the backing list.
+     *
+     * @param index the index to insert at
+     * @param o the object to add
+     * @throws ConcurrentModificationException if the backing list has been
+     *         modified externally to this sublist
+     * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt; size()
+     * @throws UnsupportedOperationException if the backing list does not
+     *         support the add operation.
+     * @throws ClassCastException if o cannot be added to the backing list due
+     *         to its type.
+     * @throws IllegalArgumentException if o cannot be added to the backing
+     *         list for some other reason.
+     */
+    public void add(int index, E o)
+    {
+      synchronized (backingList)
+      {
+        checkMod();
+        checkBoundsInclusive(index);
+      
+        backingList.add(index + offset, o);
+        
+        this.data = backingList.data;
+        size++;
+      }
+    }
+    
+    /**
+     * Specified by AbstractList.subList to delegate to the backing list.
+     *
+     * @param index the index to remove
+     * @return the removed object
+     * @throws ConcurrentModificationException if the backing list has been
+     *         modified externally to this sublist
+     * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt;= size()
+     * @throws UnsupportedOperationException if the backing list does not
+     *         support the remove operation
+     */
+    public E remove(int index)
+    {
+      synchronized (backingList)
+      {
+        checkMod();
+        checkBoundsExclusive(index);
+        E o = backingList.remove(index + offset);
+        
+        this.data = backingList.data;
+        size--;
+        
+        return o;
+      }
+    }
+    
+    /**
+     * Specified by AbstractList.subList to delegate to the backing list.
+     *
+     * @param index the location to insert at
+     * @param c the collection to insert
+     * @return true if this list was modified, in other words, c is non-empty
+     * @throws ConcurrentModificationException if the backing list has been
+     *         modified externally to this sublist
+     * @throws IndexOutOfBoundsException if index &lt; 0 || index &gt; size()
+     * @throws UnsupportedOperationException if this list does not support the
+     *         addAll operation
+     * @throws ClassCastException if some element of c cannot be added to this
+     *         list due to its type
+     * @throws IllegalArgumentException if some element of c cannot be added
+     *         to this list for some other reason
+     * @throws NullPointerException if the specified collection is null
+     */
+    public boolean addAll(int index, Collection<? extends E> c)
+    {
+      synchronized (backingList)
+      {
+        checkMod();
+        checkBoundsInclusive(index);
+        int csize = c.size();
+        boolean result = backingList.addAll(offset + index, c);
+        
+        this.data = backingList.data;
+        size += csize;
+        
+        return result;
+      }
+    }
+    
+    /**
+     * Specified by AbstractList.subList to return addAll(size, c).
+     *
+     * @param c the collection to insert
+     * @return true if this list was modified, in other words, c is non-empty
+     * @throws ConcurrentModificationException if the backing list has been
+     *         modified externally to this sublist
+     * @throws UnsupportedOperationException if this list does not support the
+     *         addAll operation
+     * @throws ClassCastException if some element of c cannot be added to this
+     *         list due to its type
+     * @throws IllegalArgumentException if some element of c cannot be added
+     *         to this list for some other reason
+     * @throws NullPointerException if the specified collection is null
+     */
+    public boolean addAll(Collection<? extends E> c)
+    {
+      synchronized (backingList)
+      {
+        return addAll(size, c);
+      }
+    }
+    
+    /**
+     * Specified by AbstractList.subList to return listIterator().
+     *
+     * @return an iterator over the sublist
+     */
+    public Iterator<E> iterator()
+    {
+      return listIterator();
+    }
+    
+    /**
+     * Specified by AbstractList.subList to return a wrapper around the
+     * backing list's iterator.
+     *
+     * @param index the start location of the iterator
+     * @return a list iterator over the sublist
+     * @throws ConcurrentModificationException if the backing list has been
+     *         modified externally to this sublist
+     * @throws IndexOutOfBoundsException if the value is out of range
+     */
+    public ListIterator<E> listIterator(final int index)
+    {
+      checkMod();
+      checkBoundsInclusive(index);
+
+      return new ListIterator<E>()
+      {
+        private final ListIterator<E> i =
+          backingList.listIterator(index + offset);
+        private int position = index;
+
+        /**
+         * Tests to see if there are any more objects to
+         * return.
+         *
+         * @return True if the end of the list has not yet been
+         *         reached.
+         */
+        public boolean hasNext()
+        {
+          return position < size;
+        }
+
+        /**
+         * Tests to see if there are objects prior to the
+         * current position in the list.
+         *
+         * @return True if objects exist prior to the current
+         *         position of the iterator.
+         */
+        public boolean hasPrevious()
+        {
+          return position > 0;
+        }
+
+        /**
+         * Retrieves the next object from the list.
+         *
+         * @return The next object.
+         * @throws NoSuchElementException if there are no
+         *         more objects to retrieve.
+         * @throws ConcurrentModificationException if the
+         *         list has been modified elsewhere.
+         */
+        public E next()
+        {
+          if (position == size)
+            throw new NoSuchElementException();
+          position++;
+          return i.next();
+        }
+
+        /**
+         * Retrieves the previous object from the list.
+         *
+         * @return The next object.
+         * @throws NoSuchElementException if there are no
+         *         previous objects to retrieve.
+         * @throws ConcurrentModificationException if the
+         *         list has been modified elsewhere.
+         */
+        public E previous()
+        {
+          if (position == 0)
+            throw new NoSuchElementException();
+          position--;
+          return i.previous();
+        }
+
+        /**
+         * Returns the index of the next element in the
+         * list, which will be retrieved by <code>next()</code>
+         *
+         * @return The index of the next element.
+         */
+        public int nextIndex()
+        {
+          return i.nextIndex() - offset;
+        }
+
+        /**
+         * Returns the index of the previous element in the
+         * list, which will be retrieved by <code>previous()</code>
+         *
+         * @return The index of the previous element.
+         */
+        public int previousIndex()
+        {
+          return i.previousIndex() - offset;
+        }
+
+        /**
+         * Removes the last object retrieved by <code>next()</code>
+         * from the list, if the list supports object removal.
+         *
+         * @throws IllegalStateException if the iterator is positioned
+         *         before the start of the list or the last object has already
+         *         been removed.
+         * @throws UnsupportedOperationException if the list does
+         *         not support removing elements.
+         */
+        public void remove()
+        {
+          throw new UnsupportedOperationException("Modification not supported " +
+              "on CopyOnWriteArrayList iterators");
+        }
+
+        /**
+         * Replaces the last object retrieved by <code>next()</code>
+         * or <code>previous</code> with o, if the list supports object
+         * replacement and an add or remove operation has not already
+         * been performed.
+         *
+         * @throws IllegalStateException if the iterator is positioned
+         *         before the start of the list or the last object has already
+         *         been removed.
+         * @throws UnsupportedOperationException if the list doesn't support
+         *         the addition or removal of elements.
+         * @throws ClassCastException if the type of o is not a valid type
+         *         for this list.
+         * @throws IllegalArgumentException if something else related to o
+         *         prevents its addition.
+         * @throws ConcurrentModificationException if the list
+         *         has been modified elsewhere.
+         */
+        public void set(E o)
+        {
+          throw new UnsupportedOperationException("Modification not supported " +
+              "on CopyOnWriteArrayList iterators");
+        }
+
+        /**
+         * Adds the supplied object before the element that would be returned
+         * by a call to <code>next()</code>, if the list supports addition.
+         * 
+         * @param o The object to add to the list.
+         * @throws UnsupportedOperationException if the list doesn't support
+         *         the addition of new elements.
+         * @throws ClassCastException if the type of o is not a valid type
+         *         for this list.
+         * @throws IllegalArgumentException if something else related to o
+         *         prevents its addition.
+         * @throws ConcurrentModificationException if the list
+         *         has been modified elsewhere.
+         */
+        public void add(E o)
+        {
+          throw new UnsupportedOperationException("Modification not supported " +
+              "on CopyOnWriteArrayList iterators");
+        } 
+      };
+    }
+  } // class SubList
+
+  /**
+   * This class is a RandomAccess version of SubList, as required by
+   * {@link AbstractList#subList(int, int)}.
+   *
+   * @author Eric Blake (ebb9@email.byu.edu)
+   */
+  private static final class RandomAccessSubList<E> extends SubList<E>
+    implements RandomAccess
+  {
+    /**
+     * Construct the sublist.
+     *
+     * @param backing the list this comes from
+     * @param fromIndex the lower bound, inclusive
+     * @param toIndex the upper bound, exclusive
+     */
+    RandomAccessSubList(CopyOnWriteArrayList<E> backing, int fromIndex, int toIndex)
+    {
+      super(backing, fromIndex, toIndex);
+    }
+  } // class RandomAccessSubList
 
   /**
    * Serializes this object to the given stream.
index 8effc2878cec1ed7627c4f1c60ef3b5d1aee17ec..980cfc60baf9575b4d3237f9fd05cbb171b588e9 100644 (file)
@@ -138,7 +138,7 @@ public class Manifest implements Cloneable
    */
   public Attributes getAttributes(String entryName)
   {
-    return (Attributes) getEntries().get(entryName);
+    return getEntries().get(entryName);
   }
 
   /**
index 01ef8f522b8264fbae0ce59122ad985298a7f522..f7157c1769845f455e5fe206a27511885cba41f4 100644 (file)
@@ -45,110 +45,105 @@ import java.security.AccessController;
 import java.security.PrivilegedAction;
 
 /**
- * A Logger is used for logging information about events. Usually, there
- * is a seprate logger for each subsystem or component, although there
- * is a shared instance for components that make only occasional use of
- * the logging framework.
- *
- * <p>It is common to name a logger after the name of a corresponding
- * Java package.  Loggers are organized into a hierarchical namespace;
- * for example, the logger <code>"org.gnu.foo"</code> is the
- * <em>parent</em> of logger <code>"org.gnu.foo.bar"</code>.
- *
- * <p>A logger for a named subsystem can be obtained through {@link
- * java.util.logging.Logger#getLogger(java.lang.String)}.  However,
- * only code which has been granted the permission to control the
- * logging infrastructure will be allowed to customize that logger.
- * Untrusted code can obtain a private, anonymous logger through
- * {@link #getAnonymousLogger()} if it wants to perform any
- * modifications to the logger.
- *
- * <p>FIXME: Write more documentation.
- *
+ * A Logger is used for logging information about events. Usually, there is a
+ * seprate logger for each subsystem or component, although there is a shared
+ * instance for components that make only occasional use of the logging
+ * framework.
+ * <p>
+ * It is common to name a logger after the name of a corresponding Java package.
+ * Loggers are organized into a hierarchical namespace; for example, the logger
+ * <code>"org.gnu.foo"</code> is the <em>parent</em> of logger
+ * <code>"org.gnu.foo.bar"</code>.
+ * <p>
+ * A logger for a named subsystem can be obtained through {@link
+ * java.util.logging.Logger#getLogger(java.lang.String)}. However, only code
+ * which has been granted the permission to control the logging infrastructure
+ * will be allowed to customize that logger. Untrusted code can obtain a
+ * private, anonymous logger through {@link #getAnonymousLogger()} if it wants
+ * to perform any modifications to the logger.
+ * <p>
+ * FIXME: Write more documentation.
+ * 
  * @author Sascha Brawer (brawer@acm.org)
  */
 public class Logger
 {
-
   static final Logger root = new Logger("", null);
 
   /**
-   * A logger provided to applications that make only occasional use
-   * of the logging framework, typically early prototypes.  Serious
-   * products are supposed to create and use their own Loggers, so
-   * they can be controlled individually.
+   * A logger provided to applications that make only occasional use of the
+   * logging framework, typically early prototypes. Serious products are
+   * supposed to create and use their own Loggers, so they can be controlled
+   * individually.
    */
   public static final Logger global;
 
+  /**
+   * Use to lock methods on this class instead of calling synchronize on methods
+   * to avoid deadlocks. Yeah, no kidding, we got them :)
+   */
+  private static final Object[] lock = new Object[0];
+  
   static
     {
       // Our class might be initialized from an unprivileged context
-      global = (Logger) AccessController.doPrivileged
-       (new PrivilegedAction()
-         {
-           public Object run()
-           {
-             return getLogger("global");
-           }
-         });
+      global = (Logger) AccessController.doPrivileged(new PrivilegedAction()
+      {
+        public Object run()
+        {
+          return getLogger("global");
+        }
+      });
     }
 
-
   /**
-   * The name of the Logger, or <code>null</code> if the logger is
-   * anonymous.
-   *
-   * <p>A previous version of the GNU Classpath implementation granted
-   * untrusted code the permission to control any logger whose name
-   * was null.  However, test code revealed that the Sun J2SE 1.4
-   * reference implementation enforces the security control for any
-   * logger that was not created through getAnonymousLogger, even if
-   * it has a null name.  Therefore, a separate flag {@link
-   * Logger#anonymous} was introduced.
+   * The name of the Logger, or <code>null</code> if the logger is anonymous.
+   * <p>
+   * A previous version of the GNU Classpath implementation granted untrusted
+   * code the permission to control any logger whose name was null. However,
+   * test code revealed that the Sun J2SE 1.4 reference implementation enforces
+   * the security control for any logger that was not created through
+   * getAnonymousLogger, even if it has a null name. Therefore, a separate flag
+   * {@link Logger#anonymous} was introduced.
    */
   private final String name;
 
-
   /**
    * The name of the resource bundle used for localization.
-   *
-   * <p>This variable cannot be declared as <code>final</code>
-   * because its value can change as a result of calling
-   * getLogger(String,String).
+   * <p>
+   * This variable cannot be declared as <code>final</code> because its value
+   * can change as a result of calling getLogger(String,String).
    */
   private String resourceBundleName;
 
-
   /**
    * The resource bundle used for localization.
-   *
-   * <p>This variable cannot be declared as <code>final</code>
-   * because its value can change as a result of calling
-   * getLogger(String,String).
+   * <p>
+   * This variable cannot be declared as <code>final</code> because its value
+   * can change as a result of calling getLogger(String,String).
    */
   private ResourceBundle resourceBundle;
 
   private Filter filter;
 
   private final List handlerList = new java.util.ArrayList(4);
+
   private Handler[] handlers = new Handler[0];
 
   /**
-   * Indicates whether or not this logger is anonymous.  While
-   * a LoggingPermission is required for any modifications to
-   * a normal logger, untrusted code can obtain an anonymous logger
-   * and modify it according to its needs.
-   *
-   * <p>A previous version of the GNU Classpath implementation
-   * granted access to every logger whose name was null.
-   * However, test code revealed that the Sun J2SE 1.4 reference
-   * implementation enforces the security control for any logger
-   * that was not created through getAnonymousLogger, even
-   * if it has a null name.
+   * Indicates whether or not this logger is anonymous. While a
+   * LoggingPermission is required for any modifications to a normal logger,
+   * untrusted code can obtain an anonymous logger and modify it according to
+   * its needs.
+   * <p>
+   * A previous version of the GNU Classpath implementation granted access to
+   * every logger whose name was null. However, test code revealed that the Sun
+   * J2SE 1.4 reference implementation enforces the security control for any
+   * logger that was not created through getAnonymousLogger, even if it has a
+   * null name.
    */
   private boolean anonymous;
 
-
   private boolean useParentHandlers;
 
   private Level level;
@@ -156,29 +151,26 @@ public class Logger
   private Logger parent;
 
   /**
-   * Constructs a Logger for a subsystem.  Most applications do not
-   * need to create new Loggers explicitly; instead, they should call
-   * the static factory methods
-   * {@link #getLogger(java.lang.String,java.lang.String) getLogger}
+   * Constructs a Logger for a subsystem. Most applications do not need to
+   * create new Loggers explicitly; instead, they should call the static factory
+   * methods {@link #getLogger(java.lang.String,java.lang.String) getLogger}
    * (with ResourceBundle for localization) or
-   * {@link #getLogger(java.lang.String) getLogger} (without
-   * ResourceBundle), respectively.
-   *
-   * @param name the name for the logger, for example "java.awt"
-   *             or "com.foo.bar". The name should be based on
-   *             the name of the package issuing log records
-   *             and consist of dot-separated Java identifiers.
-   *
-   * @param resourceBundleName the name of a resource bundle
-   *        for localizing messages, or <code>null</code>
-   *       to indicate that messages do not need to be localized.
-   *
+   * {@link #getLogger(java.lang.String) getLogger} (without ResourceBundle),
+   * respectively.
+   * 
+   * @param name the name for the logger, for example "java.awt" or
+   *            "com.foo.bar". The name should be based on the name of the
+   *            package issuing log records and consist of dot-separated Java
+   *            identifiers.
+   * @param resourceBundleName the name of a resource bundle for localizing
+   *            messages, or <code>null</code> to indicate that messages do
+   *            not need to be localized.
    * @throws java.util.MissingResourceException if
-   *         <code>resourceBundleName</code> is not <code>null</code>
-   *         and no such bundle could be located.
+   *             <code>resourceBundleName</code> is not <code>null</code>
+   *             and no such bundle could be located.
    */
   protected Logger(String name, String resourceBundleName)
-    throws MissingResourceException
+      throws MissingResourceException
   {
     this.name = name;
     this.resourceBundleName = resourceBundleName;
@@ -190,1002 +182,978 @@ public class Logger
 
     level = null;
 
-    /* This is null when the root logger is being constructed,
-     * and the root logger afterwards.
+    /*
+     * This is null when the root logger is being constructed, and the root
+     * logger afterwards.
      */
     parent = root;
 
     useParentHandlers = (parent != null);
   }
 
-
-
   /**
-   * Finds a registered logger for a subsystem, or creates one in
-   * case no logger has been registered yet.
-   *
-   * @param name the name for the logger, for example "java.awt"
-   *             or "com.foo.bar". The name should be based on
-   *             the name of the package issuing log records
-   *             and consist of dot-separated Java identifiers.
-   *
-   * @throws IllegalArgumentException if a logger for the subsystem
-   *         identified by <code>name</code> has already been created,
-   *         but uses a a resource bundle for localizing messages.
-   *
-   * @throws NullPointerException if <code>name</code> is
-   *         <code>null</code>.
-   *
-   * @return a logger for the subsystem specified by <code>name</code>
-   *         that does not localize messages.
+   * Finds a registered logger for a subsystem, or creates one in case no logger
+   * has been registered yet.
+   * 
+   * @param name the name for the logger, for example "java.awt" or
+   *            "com.foo.bar". The name should be based on the name of the
+   *            package issuing log records and consist of dot-separated Java
+   *            identifiers.
+   * @throws IllegalArgumentException if a logger for the subsystem identified
+   *             by <code>name</code> has already been created, but uses a a
+   *             resource bundle for localizing messages.
+   * @throws NullPointerException if <code>name</code> is <code>null</code>.
+   * @return a logger for the subsystem specified by <code>name</code> that
+   *         does not localize messages.
    */
   public static Logger getLogger(String name)
   {
     return getLogger(name, null);
   }
 
-    
   /**
-   * Finds a registered logger for a subsystem, or creates one in case
-   * no logger has been registered yet.
-   *
-   * <p>If a logger with the specified name has already been
-   * registered, the behavior depends on the resource bundle that is
-   * currently associated with the existing logger.
-   *
-   * <ul><li>If the existing logger uses the same resource bundle as
-   * specified by <code>resourceBundleName</code>, the existing logger
-   * is returned.</li>
-   *
-   * <li>If the existing logger currently does not localize messages,
-   * the existing logger is modified to use the bundle specified by
-   * <code>resourceBundleName</code>.  The existing logger is then
-   * returned.  Therefore, all subsystems currently using this logger
-   * will produce localized messages from now on.</li>
-   *
-   * <li>If the existing logger already has an associated resource
-   * bundle, but a different one than specified by
-   * <code>resourceBundleName</code>, an
-   * <code>IllegalArgumentException</code> is thrown.</li></ul>
-   *
-   * @param name the name for the logger, for example "java.awt"
-   *             or "org.gnu.foo". The name should be based on
-   *             the name of the package issuing log records
-   *             and consist of dot-separated Java identifiers.
-   *
-   * @param resourceBundleName the name of a resource bundle
-   *        for localizing messages, or <code>null</code>
-   *       to indicate that messages do not need to be localized.
-   *
+   * Finds a registered logger for a subsystem, or creates one in case no logger
+   * has been registered yet.
+   * <p>
+   * If a logger with the specified name has already been registered, the
+   * behavior depends on the resource bundle that is currently associated with
+   * the existing logger.
+   * <ul>
+   * <li>If the existing logger uses the same resource bundle as specified by
+   * <code>resourceBundleName</code>, the existing logger is returned.</li>
+   * <li>If the existing logger currently does not localize messages, the
+   * existing logger is modified to use the bundle specified by
+   * <code>resourceBundleName</code>. The existing logger is then returned.
+   * Therefore, all subsystems currently using this logger will produce
+   * localized messages from now on.</li>
+   * <li>If the existing logger already has an associated resource bundle, but
+   * a different one than specified by <code>resourceBundleName</code>, an
+   * <code>IllegalArgumentException</code> is thrown.</li>
+   * </ul>
+   * 
+   * @param name the name for the logger, for example "java.awt" or
+   *            "org.gnu.foo". The name should be based on the name of the
+   *            package issuing log records and consist of dot-separated Java
+   *            identifiers.
+   * @param resourceBundleName the name of a resource bundle for localizing
+   *            messages, or <code>null</code> to indicate that messages do
+   *            not need to be localized.
    * @return a logger for the subsystem specified by <code>name</code>.
-   *
    * @throws java.util.MissingResourceException if
-   *         <code>resourceBundleName</code> is not <code>null</code>
-   *         and no such bundle could be located.   
-   *
-   * @throws IllegalArgumentException if a logger for the subsystem
-   *         identified by <code>name</code> has already been created,
-   *         but uses a different resource bundle for localizing
-   *         messages.
-   *
-   * @throws NullPointerException if <code>name</code> is
-   *         <code>null</code>.
+   *             <code>resourceBundleName</code> is not <code>null</code>
+   *             and no such bundle could be located.
+   * @throws IllegalArgumentException if a logger for the subsystem identified
+   *             by <code>name</code> has already been created, but uses a
+   *             different resource bundle for localizing messages.
+   * @throws NullPointerException if <code>name</code> is <code>null</code>.
    */
   public static Logger getLogger(String name, String resourceBundleName)
   {
     LogManager lm = LogManager.getLogManager();
-    Logger     result;
+    Logger result;
 
     if (name == null)
       throw new NullPointerException();
 
-    /* Without synchronized(lm), it could happen that another thread
-     * would create a logger between our calls to getLogger and
-     * addLogger.  While addLogger would indicate this by returning
-     * false, we could not be sure that this other logger was still
-     * existing when we called getLogger a second time in order
-     * to retrieve it -- note that LogManager is only allowed to
-     * keep weak references to registered loggers, so Loggers
-     * can be garbage collected at any time in general, and between
-     * our call to addLogger and our second call go getLogger
-     * in particular.
-     *
-     * Of course, we assume here that LogManager.addLogger etc.
-     * are synchronizing on the global LogManager object. There
-     * is a comment in the implementation of LogManager.addLogger
-     * referring to this comment here, so that any change in
-     * the synchronization of LogManager will be reflected here.
+    /*
+     * Without synchronized(lm), it could happen that another thread would
+     * create a logger between our calls to getLogger and addLogger. While
+     * addLogger would indicate this by returning false, we could not be sure
+     * that this other logger was still existing when we called getLogger a
+     * second time in order to retrieve it -- note that LogManager is only
+     * allowed to keep weak references to registered loggers, so Loggers can be
+     * garbage collected at any time in general, and between our call to
+     * addLogger and our second call go getLogger in particular. Of course, we
+     * assume here that LogManager.addLogger etc. are synchronizing on the
+     * global LogManager object. There is a comment in the implementation of
+     * LogManager.addLogger referring to this comment here, so that any change
+     * in the synchronization of LogManager will be reflected here.
      */
-    synchronized (lm)
-    {
-      result = lm.getLogger(name);
-      if (result == null)
-      {
-       boolean couldBeAdded;
-
-       result = new Logger(name, resourceBundleName);
-       couldBeAdded = lm.addLogger(result);
-       if (!couldBeAdded)
-         throw new IllegalStateException("cannot register new logger");
-      }
-      else
+    synchronized (lock)
       {
-       /* The logger already exists. Make sure it uses
-        * the same resource bundle for localizing messages.
-        */
-       String existingBundleName = result.getResourceBundleName();
-
-       /* The Sun J2SE 1.4 reference implementation will return the
-        * registered logger object, even if it does not have a resource
-        * bundle associated with it. However, it seems to change the
-        * resourceBundle of the registered logger to the bundle
-        * whose name was passed to getLogger.
-        */
-       if ((existingBundleName == null) && (resourceBundleName != null))
-       {
-         /* If ResourceBundle.getBundle throws an exception, the
-          * existing logger will be unchanged.  This would be
-          * different if the assignment to resourceBundleName
-          * came first.
-          */
-         result.resourceBundle = ResourceBundle.getBundle(resourceBundleName);
-         result.resourceBundleName = resourceBundleName;
-         return result;
-       }
-
-       if ((existingBundleName != resourceBundleName)
-           && ((existingBundleName == null)
-               || !existingBundleName.equals(resourceBundleName)))
-       {
-         throw new IllegalArgumentException();
-       }
+        synchronized (lm)
+          {
+            result = lm.getLogger(name);
+            if (result == null)
+              {
+                boolean couldBeAdded;
+
+                result = new Logger(name, resourceBundleName);
+                couldBeAdded = lm.addLogger(result);
+                if (! couldBeAdded)
+                  throw new IllegalStateException("cannot register new logger");
+              }
+            else
+              {
+                /*
+                 * The logger already exists. Make sure it uses the same
+                 * resource bundle for localizing messages.
+                 */
+                String existingBundleName = result.getResourceBundleName();
+
+                /*
+                 * The Sun J2SE 1.4 reference implementation will return the
+                 * registered logger object, even if it does not have a resource
+                 * bundle associated with it. However, it seems to change the
+                 * resourceBundle of the registered logger to the bundle whose
+                 * name was passed to getLogger.
+                 */
+                if ((existingBundleName == null) &&
+                    (resourceBundleName != null))
+                  {
+                    /*
+                     * If ResourceBundle.getBundle throws an exception, the
+                     * existing logger will be unchanged. This would be
+                     * different if the assignment to resourceBundleName came
+                     * first.
+                     */
+                    result.resourceBundle =
+                      ResourceBundle.getBundle(resourceBundleName);
+
+                    result.resourceBundleName = resourceBundleName;
+                    return result;
+                  }
+
+                if ((existingBundleName != resourceBundleName)
+                    && ((existingBundleName == null)
+                        || !existingBundleName.equals(resourceBundleName)))
+                  {
+                    throw new IllegalArgumentException();
+                  }
+              }
+          }
       }
-    }
 
     return result;
   }
 
-  
   /**
-   * Creates a new, unnamed logger.  Unnamed loggers are not
-   * registered in the namespace of the LogManager, and no special
-   * security permission is required for changing their state.
-   * Therefore, untrusted applets are able to modify their private
-   * logger instance obtained through this method.
-   *
-   * <p>The parent of the newly created logger will the the root
-   * logger, from which the level threshold and the handlers are
-   * inherited.
+   * Creates a new, unnamed logger. Unnamed loggers are not registered in the
+   * namespace of the LogManager, and no special security permission is required
+   * for changing their state. Therefore, untrusted applets are able to modify
+   * their private logger instance obtained through this method.
+   * <p>
+   * The parent of the newly created logger will the the root logger, from which
+   * the level threshold and the handlers are inherited.
    */
   public static Logger getAnonymousLogger()
   {
     return getAnonymousLogger(null);
   }
 
-
   /**
-   * Creates a new, unnamed logger.  Unnamed loggers are not
-   * registered in the namespace of the LogManager, and no special
-   * security permission is required for changing their state.
-   * Therefore, untrusted applets are able to modify their private
-   * logger instance obtained through this method.
-   *
-   * <p>The parent of the newly created logger will the the root
-   * logger, from which the level threshold and the handlers are
-   * inherited.
-   *
-   * @param resourceBundleName the name of a resource bundle
-   *        for localizing messages, or <code>null</code>
-   *       to indicate that messages do not need to be localized.
-   *
+   * Creates a new, unnamed logger. Unnamed loggers are not registered in the
+   * namespace of the LogManager, and no special security permission is required
+   * for changing their state. Therefore, untrusted applets are able to modify
+   * their private logger instance obtained through this method.
+   * <p>
+   * The parent of the newly created logger will the the root logger, from which
+   * the level threshold and the handlers are inherited.
+   * 
+   * @param resourceBundleName the name of a resource bundle for localizing
+   *            messages, or <code>null</code> to indicate that messages do
+   *            not need to be localized.
    * @throws java.util.MissingResourceException if
-   *         <code>resourceBundleName</code> is not <code>null</code>
-   *         and no such bundle could be located.
+   *             <code>resourceBundleName</code> is not <code>null</code>
+   *             and no such bundle could be located.
    */
   public static Logger getAnonymousLogger(String resourceBundleName)
-    throws MissingResourceException
+      throws MissingResourceException
   {
-    Logger  result;
+    Logger result;
 
     result = new Logger(null, resourceBundleName);
     result.anonymous = true;
     return result;
   }
 
-
   /**
-   * Returns the name of the resource bundle that is being used for
-   * localizing messages.
-   *
-   * @return the name of the resource bundle used for localizing messages,
-   *         or <code>null</code> if the parent's resource bundle
-   *         is used for this purpose.
+   * Returns the name of the resource bundle that is being used for localizing
+   * messages.
+   * 
+   * @return the name of the resource bundle used for localizing messages, or
+   *         <code>null</code> if the parent's resource bundle is used for
+   *         this purpose.
    */
-  public synchronized String getResourceBundleName()
+  public String getResourceBundleName()
   {
-    return resourceBundleName;
+    synchronized (lock)
+      {
+        return resourceBundleName;
+      }
   }
 
-
   /**
-   * Returns the resource bundle that is being used for localizing
-   * messages.
-   *
-   * @return the resource bundle used for localizing messages,
-   *         or <code>null</code> if the parent's resource bundle
-   *         is used for this purpose.
+   * Returns the resource bundle that is being used for localizing messages.
+   * 
+   * @return the resource bundle used for localizing messages, or
+   *         <code>null</code> if the parent's resource bundle is used for
+   *         this purpose.
    */
-  public synchronized ResourceBundle getResourceBundle()
+  public ResourceBundle getResourceBundle()
   {
-    return resourceBundle;
+    synchronized (lock)
+      {
+        return resourceBundle;
+      }
   }
 
-
   /**
-   * Returns the severity level threshold for this <code>Handler</code>.
-   * All log records with a lower severity level will be discarded;
-   * a log record of the same or a higher level will be published
-   * unless an installed <code>Filter</code> decides to discard it.
-   *
-   * @return the severity level below which all log messages will be
-   *         discarded, or <code>null</code> if the logger inherits
-   *         the threshold from its parent.
+   * Returns the severity level threshold for this <code>Handler</code>. All
+   * log records with a lower severity level will be discarded; a log record of
+   * the same or a higher level will be published unless an installed
+   * <code>Filter</code> decides to discard it.
+   * 
+   * @return the severity level below which all log messages will be discarded,
+   *         or <code>null</code> if the logger inherits the threshold from
+   *         its parent.
    */
-  public synchronized Level getLevel()
+  public Level getLevel()
   {
-    return level;
+    synchronized (lock)
+      {
+        return level;
+      }
   }
 
-
   /**
-   * Returns whether or not a message of the specified level
-   * would be logged by this logger.
-   *
-   * @throws NullPointerException if <code>level</code>
-   *         is <code>null</code>.
+   * Returns whether or not a message of the specified level would be logged by
+   * this logger.
+   * 
+   * @throws NullPointerException if <code>level</code> is <code>null</code>.
    */
-  public synchronized boolean isLoggable(Level level)
+  public boolean isLoggable(Level level)
   {
-    if (this.level != null)
-      return this.level.intValue() <= level.intValue();
+    synchronized (lock)
+      {
+        if (this.level != null)
+          return this.level.intValue() <= level.intValue();
 
-    if (parent != null)
-      return parent.isLoggable(level);
-    else
-      return false;
+        if (parent != null)
+          return parent.isLoggable(level);
+        else
+          return false;
+      }
   }
 
-
   /**
-   * Sets the severity level threshold for this <code>Handler</code>.
-   * All log records with a lower severity level will be discarded
-   * immediately.  A log record of the same or a higher level will be
-   * published unless an installed <code>Filter</code> decides to
-   * discard it.
-   *
-   * @param level the severity level below which all log messages
-   *              will be discarded, or <code>null</code> to
-   *              indicate that the logger should inherit the
-   *              threshold from its parent.
-   *
-   * @throws SecurityException if this logger is not anonymous, a
-   *     security manager exists, and the caller is not granted
-   *     the permission to control the logging infrastructure by
-   *     having LoggingPermission("control").  Untrusted code can
-   *     obtain an anonymous logger through the static factory method
-   *     {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
+   * Sets the severity level threshold for this <code>Handler</code>. All log
+   * records with a lower severity level will be discarded immediately. A log
+   * record of the same or a higher level will be published unless an installed
+   * <code>Filter</code> decides to discard it.
+   * 
+   * @param level the severity level below which all log messages will be
+   *            discarded, or <code>null</code> to indicate that the logger
+   *            should inherit the threshold from its parent.
+   * @throws SecurityException if this logger is not anonymous, a security
+   *             manager exists, and the caller is not granted the permission to
+   *             control the logging infrastructure by having
+   *             LoggingPermission("control"). Untrusted code can obtain an
+   *             anonymous logger through the static factory method
+   *             {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
    */
-  public synchronized void setLevel(Level level)
+  public void setLevel(Level level)
   {
-    /* An application is allowed to control an anonymous logger
-     * without having the permission to control the logging
-     * infrastructure.
-     */
-    if (!anonymous)
-      LogManager.getLogManager().checkAccess();
-
-    this.level = level;
+    synchronized (lock)
+      {
+        /*
+         * An application is allowed to control an anonymous logger without
+         * having the permission to control the logging infrastructure.
+         */
+        if (! anonymous)
+          LogManager.getLogManager().checkAccess();
+
+        this.level = level;
+      }
   }
 
-
-  public synchronized Filter getFilter()
+  public Filter getFilter()
   {
-    return filter;
+    synchronized (lock)
+      {
+        return filter;
+      }
   }
 
-
   /**
-   * @throws SecurityException if this logger is not anonymous, a
-   *     security manager exists, and the caller is not granted
-   *     the permission to control the logging infrastructure by
-   *     having LoggingPermission("control").  Untrusted code can
-   *     obtain an anonymous logger through the static factory method
-   *     {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
+   * @throws SecurityException if this logger is not anonymous, a security
+   *             manager exists, and the caller is not granted the permission to
+   *             control the logging infrastructure by having
+   *             LoggingPermission("control"). Untrusted code can obtain an
+   *             anonymous logger through the static factory method
+   *             {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
    */
-  public synchronized void setFilter(Filter filter)
-    throws SecurityException
+  public void setFilter(Filter filter) throws SecurityException
   {
-    /* An application is allowed to control an anonymous logger
-     * without having the permission to control the logging
-     * infrastructure.
-     */
-    if (!anonymous)
-      LogManager.getLogManager().checkAccess();
-
-    this.filter = filter;
+    synchronized (lock)
+      {
+        /*
+         * An application is allowed to control an anonymous logger without
+         * having the permission to control the logging infrastructure.
+         */
+        if (! anonymous)
+          LogManager.getLogManager().checkAccess();
+
+        this.filter = filter;
+      }
   }
 
-
-
-
   /**
    * Returns the name of this logger.
-   *
-   * @return the name of this logger, or <code>null</code> if
-   *         the logger is anonymous.
+   * 
+   * @return the name of this logger, or <code>null</code> if the logger is
+   *         anonymous.
    */
   public String getName()
   {
-    /* Note that the name of a logger cannot be changed during
-     * its lifetime, so no synchronization is needed.
+    /*
+     * Note that the name of a logger cannot be changed during its lifetime, so
+     * no synchronization is needed.
      */
     return name;
   }
 
-
   /**
-   * Passes a record to registered handlers, provided the record
-   * is considered as loggable both by {@link #isLoggable(Level)}
-   * and a possibly installed custom {@link #setFilter(Filter) filter}.
-   *
-   * <p>If the logger has been configured to use parent handlers,
-   * the record will be forwarded to the parent of this logger
-   * in addition to being processed by the handlers registered with
-   * this logger.
-   *
-   * <p>The other logging methods in this class are convenience methods
-   * that merely create a new LogRecord and pass it to this method.
-   * Therefore, subclasses usually just need to override this single
-   * method for customizing the logging behavior.
-   *
+   * Passes a record to registered handlers, provided the record is considered
+   * as loggable both by {@link #isLoggable(Level)} and a possibly installed
+   * custom {@link #setFilter(Filter) filter}.
+   * <p>
+   * If the logger has been configured to use parent handlers, the record will
+   * be forwarded to the parent of this logger in addition to being processed by
+   * the handlers registered with this logger.
+   * <p>
+   * The other logging methods in this class are convenience methods that merely
+   * create a new LogRecord and pass it to this method. Therefore, subclasses
+   * usually just need to override this single method for customizing the
+   * logging behavior.
+   * 
    * @param record the log record to be inspected and possibly forwarded.
    */
-  public synchronized void log(LogRecord record)
+  public void log(LogRecord record)
   {
-    if (!isLoggable(record.getLevel()))
-      return;
-
-    if ((filter != null) && !filter.isLoggable(record))
-      return;
-
-    /* If no logger name has been set for the log record,
-     * use the name of this logger.
-     */
-    if (record.getLoggerName() == null)
-      record.setLoggerName(name);
-
-    /* Avoid that some other thread is changing the logger hierarchy
-     * while we are traversing it.
-     */
-    synchronized (LogManager.getLogManager())
-    {
-      Logger curLogger = this;
-
-      do
+    synchronized (lock)
       {
-        /* The Sun J2SE 1.4 reference implementation seems to call the
-        * filter only for the logger whose log method is called,
-        * never for any of its parents.  Also, parent loggers publish
-        * log record whatever their level might be.  This is pretty
-        * weird, but GNU Classpath tries to be as compatible as
-        * possible to the reference implementation.
-        */
-        for (int i = 0; i < curLogger.handlers.length; i++)
-          curLogger.handlers[i].publish(record);
-
-       if (curLogger.getUseParentHandlers() == false)
-         break;
-       
-       curLogger = curLogger.getParent();
+        if (!isLoggable(record.getLevel()))
+          return;
+
+        if ((filter != null) && ! filter.isLoggable(record))
+          return;
+
+        /*
+         * If no logger name has been set for the log record, use the name of
+         * this logger.
+         */
+        if (record.getLoggerName() == null)
+          record.setLoggerName(name);
+
+        /*
+         * Avoid that some other thread is changing the logger hierarchy while
+         * we are traversing it.
+         */
+        synchronized (LogManager.getLogManager())
+          {
+            Logger curLogger = this;
+
+            do
+              {
+                /*
+                 * The Sun J2SE 1.4 reference implementation seems to call the
+                 * filter only for the logger whose log method is called, never
+                 * for any of its parents. Also, parent loggers publish log
+                 * record whatever their level might be. This is pretty weird,
+                 * but GNU Classpath tries to be as compatible as possible to
+                 * the reference implementation.
+                 */
+                for (int i = 0; i < curLogger.handlers.length; i++)
+                  curLogger.handlers[i].publish(record);
+
+                if (curLogger.getUseParentHandlers() == false)
+                  break;
+
+                curLogger = curLogger.getParent();
+              }
+            while (parent != null);
+          }
       }
-      while (parent != null);
-    }
   }
 
-
   public void log(Level level, String message)
   {
     if (isLoggable(level))
       log(level, message, (Object[]) null);
   }
 
-
-  public synchronized void log(Level level,
-                              String message,
-                              Object param)
+  public void log(Level level, String message, Object param)
   {
-    if (isLoggable(level))
+    synchronized (lock)
       {
-        StackTraceElement caller = getCallerStackFrame();
-        logp(level,
-             caller != null ? caller.getClassName() : "<unknown>",
-             caller != null ? caller.getMethodName() : "<unknown>",
-             message,
-             param);
+        if (isLoggable(level))
+          {
+            StackTraceElement caller = getCallerStackFrame();
+            logp(level, caller != null ? caller.getClassName() : "<unknown>",
+                 caller != null ? caller.getMethodName() : "<unknown>",
+                 message, param);
+          }
       }
   }
 
-
-  public synchronized void log(Level level,
-                              String message,
-                              Object[] params)
+  public void log(Level level, String message, Object[] params)
   {
-    if (isLoggable(level))
+    synchronized (lock)
       {
-        StackTraceElement caller = getCallerStackFrame();
-        logp(level,
-             caller != null ? caller.getClassName() : "<unknown>",
-             caller != null ? caller.getMethodName() : "<unknown>",
-             message,
-             params);
+        if (isLoggable(level))
+          {
+            StackTraceElement caller = getCallerStackFrame();
+            logp(level, caller != null ? caller.getClassName() : "<unknown>",
+                 caller != null ? caller.getMethodName() : "<unknown>",
+                 message, params);
+
+          }
       }
   }
 
-
-  public synchronized void log(Level level,
-                              String message,
-                              Throwable thrown)
+  public void log(Level level, String message, Throwable thrown)
   {
-    if (isLoggable(level))
+    synchronized (lock)
       {
-        StackTraceElement caller = getCallerStackFrame();    
-        logp(level,
-             caller != null ? caller.getClassName() : "<unknown>",
-             caller != null ? caller.getMethodName() : "<unknown>",
-             message,
-             thrown);
+        if (isLoggable(level))
+          {
+            StackTraceElement caller = getCallerStackFrame();
+            logp(level, caller != null ? caller.getClassName() : "<unknown>",
+                 caller != null ? caller.getMethodName() : "<unknown>",
+                 message, thrown);
+          }
       }
   }
 
-
-  public synchronized void logp(Level level,
-                               String sourceClass,
-                               String sourceMethod,
-                               String message)
+  public void logp(Level level, String sourceClass, String sourceMethod,
+                   String message)
   {
-    logp(level, sourceClass, sourceMethod, message,
-        (Object[]) null);
+    synchronized (lock)
+      {
+        logp(level, sourceClass, sourceMethod, message, (Object[]) null);
+      }
   }
 
-
-  public synchronized void logp(Level level,
-                               String sourceClass,
-                               String sourceMethod,
-                               String message,
-                               Object param)
+  public void logp(Level level, String sourceClass, String sourceMethod,
+                   String message, Object param)
   {
-    logp(level, sourceClass, sourceMethod, message,
-        new Object[] { param });
-  }
+    synchronized (lock)
+      {
+        logp(level, sourceClass, sourceMethod, message, new Object[] { param });
+      }
 
+  }
 
-  private synchronized ResourceBundle findResourceBundle()
+  private ResourceBundle findResourceBundle()
   {
-    if (resourceBundle != null)
-      return resourceBundle;
+    synchronized (lock)
+      {
+        if (resourceBundle != null)
+          return resourceBundle;
 
-    if (parent != null)
-      return parent.findResourceBundle();
+        if (parent != null)
+          return parent.findResourceBundle();
 
-    return null;
+        return null;
+      }
   }
 
-
-  private synchronized void logImpl(Level level,
-                                   String sourceClass,
-                                   String sourceMethod,
-                                   String message,
-                                   Object[] params)
+  private void logImpl(Level level, String sourceClass, String sourceMethod,
+                       String message, Object[] params)
   {
-    LogRecord rec = new LogRecord(level, message);
+    synchronized (lock)
+      {
+        LogRecord rec = new LogRecord(level, message);
 
-    rec.setResourceBundle(findResourceBundle());
-    rec.setSourceClassName(sourceClass);
-    rec.setSourceMethodName(sourceMethod);
-    rec.setParameters(params);
+        rec.setResourceBundle(findResourceBundle());
+        rec.setSourceClassName(sourceClass);
+        rec.setSourceMethodName(sourceMethod);
+        rec.setParameters(params);
 
-    log(rec);
+        log(rec);
+      }
   }
 
-
-  public synchronized void logp(Level level,
-                               String sourceClass,
-                               String sourceMethod,
-                               String message,
-                               Object[] params)
+  public void logp(Level level, String sourceClass, String sourceMethod,
+                   String message, Object[] params)
   {
-    logImpl(level, sourceClass, sourceMethod, message, params);
+    synchronized (lock)
+      {
+        logImpl(level, sourceClass, sourceMethod, message, params);
+      }
   }
 
-
-  public synchronized void logp(Level level,
-                               String sourceClass,
-                               String sourceMethod,
-                               String message,
-                               Throwable thrown)
+  public void logp(Level level, String sourceClass, String sourceMethod,
+                   String message, Throwable thrown)
   {
-    LogRecord rec = new LogRecord(level, message);
+    synchronized (lock)
+      {
+        LogRecord rec = new LogRecord(level, message);
 
-    rec.setResourceBundle(resourceBundle);
-    rec.setSourceClassName(sourceClass);
-    rec.setSourceMethodName(sourceMethod);
-    rec.setThrown(thrown);
+        rec.setResourceBundle(resourceBundle);
+        rec.setSourceClassName(sourceClass);
+        rec.setSourceMethodName(sourceMethod);
+        rec.setThrown(thrown);
 
-    log(rec);
+        log(rec);
+      }
   }
 
-
-  public synchronized void logrb(Level level,
-                                String sourceClass,
-                                String sourceMethod,
-                                String bundleName,
-                                String message)
+  public void logrb(Level level, String sourceClass, String sourceMethod,
+                    String bundleName, String message)
   {
-    logrb(level, sourceClass, sourceMethod, bundleName,
-         message, (Object[]) null);
+    synchronized (lock)
+      {
+        logrb(level, sourceClass, sourceMethod, bundleName, message,
+              (Object[]) null);
+      }
   }
 
-
-  public synchronized void logrb(Level level,
-                                String sourceClass,
-                                String sourceMethod,
-                                String bundleName,
-                                String message,
-                                Object param)
+  public void logrb(Level level, String sourceClass, String sourceMethod,
+                    String bundleName, String message, Object param)
   {
-    logrb(level, sourceClass, sourceMethod, bundleName,
-         message, new Object[] { param });
+    synchronized (lock)
+      {
+        logrb(level, sourceClass, sourceMethod, bundleName, message,
+              new Object[] { param });
+      }
   }
 
-
-  public synchronized void logrb(Level level,
-                                String sourceClass,
-                                String sourceMethod,
-                                String bundleName,
-                                String message,
-                                Object[] params)
+  public void logrb(Level level, String sourceClass, String sourceMethod,
+                    String bundleName, String message, Object[] params)
   {
-    LogRecord rec = new LogRecord(level, message);
+    synchronized (lock)
+      {
+        LogRecord rec = new LogRecord(level, message);
 
-    rec.setResourceBundleName(bundleName);
-    rec.setSourceClassName(sourceClass);
-    rec.setSourceMethodName(sourceMethod);
-    rec.setParameters(params);
+        rec.setResourceBundleName(bundleName);
+        rec.setSourceClassName(sourceClass);
+        rec.setSourceMethodName(sourceMethod);
+        rec.setParameters(params);
 
-    log(rec);
+        log(rec);
+      }
   }
 
-
-  public synchronized void logrb(Level level,
-                                String sourceClass,
-                                String sourceMethod,
-                                String bundleName,
-                                String message,
-                                Throwable thrown)
+  public void logrb(Level level, String sourceClass, String sourceMethod,
+                    String bundleName, String message, Throwable thrown)
   {
-    LogRecord rec = new LogRecord(level, message);
+    synchronized (lock)
+      {
+        LogRecord rec = new LogRecord(level, message);
 
-    rec.setResourceBundleName(bundleName);
-    rec.setSourceClassName(sourceClass);
-    rec.setSourceMethodName(sourceMethod);
-    rec.setThrown(thrown);
+        rec.setResourceBundleName(bundleName);
+        rec.setSourceClassName(sourceClass);
+        rec.setSourceMethodName(sourceMethod);
+        rec.setThrown(thrown);
 
-    log(rec);
+        log(rec);
+      }
   }
 
-
-  public synchronized void entering(String sourceClass,
-                                   String sourceMethod)
+  public void entering(String sourceClass, String sourceMethod)
   {
-    if (isLoggable(Level.FINER))
-      logp(Level.FINER, sourceClass, sourceMethod, "ENTRY");
+    synchronized (lock)
+      {
+        if (isLoggable(Level.FINER))
+          logp(Level.FINER, sourceClass, sourceMethod, "ENTRY");
+      }
   }
 
-
-  public synchronized void entering(String sourceClass,
-                                   String sourceMethod,
-                                   Object param)
+  public void entering(String sourceClass, String sourceMethod, Object param)
   {
-    if (isLoggable(Level.FINER))
-      logp(Level.FINER, sourceClass, sourceMethod, "ENTRY {0}", param);
+    synchronized (lock)
+      {
+        if (isLoggable(Level.FINER))
+          logp(Level.FINER, sourceClass, sourceMethod, "ENTRY {0}", param);
+      }
   }
 
-
-  public synchronized void entering(String sourceClass,
-                                   String sourceMethod,
-                                   Object[] params)
+  public void entering(String sourceClass, String sourceMethod, Object[] params)
   {
-    if (isLoggable(Level.FINER))
-    {
-      StringBuffer buf = new StringBuffer(80);
-      buf.append("ENTRY");
-      for (int i = 0; i < params.length; i++)
+    synchronized (lock)
       {
-       buf.append(" {");
-       buf.append(i);
-       buf.append('}');
+        if (isLoggable(Level.FINER))
+          {
+            StringBuffer buf = new StringBuffer(80);
+            buf.append("ENTRY");
+            for (int i = 0; i < params.length; i++)
+              {
+                buf.append(" {");
+                buf.append(i);
+                buf.append('}');
+              }
+
+            logp(Level.FINER, sourceClass, sourceMethod, buf.toString(), params);
+          }
       }
-      
-      logp(Level.FINER, sourceClass, sourceMethod, buf.toString(), params);
-    }
   }
 
-
-  public synchronized void exiting(String sourceClass,
-                                  String sourceMethod)
+  public void exiting(String sourceClass, String sourceMethod)
   {
-    if (isLoggable(Level.FINER))
-      logp(Level.FINER, sourceClass, sourceMethod, "RETURN");
+    synchronized (lock)
+      {
+        if (isLoggable(Level.FINER))
+          logp(Level.FINER, sourceClass, sourceMethod, "RETURN");
+      }
   }
 
-   
-  public synchronized void exiting(String sourceClass,
-                                  String sourceMethod,
-                                  Object result)
+  public void exiting(String sourceClass, String sourceMethod, Object result)
   {
-    if (isLoggable(Level.FINER))
-      logp(Level.FINER, sourceClass, sourceMethod, "RETURN {0}", result);
+    synchronized (lock)
+      {
+        if (isLoggable(Level.FINER))
+          logp(Level.FINER, sourceClass, sourceMethod, "RETURN {0}", result);
+      }
   }
 
-  public synchronized void throwing(String sourceClass,
-                                   String sourceMethod,
-                                   Throwable thrown)
+  public void throwing(String sourceClass, String sourceMethod, Throwable thrown)
   {
-    if (isLoggable(Level.FINER))
-      logp(Level.FINER, sourceClass, sourceMethod, "THROW", thrown);
+    synchronized (lock)
+      {
+        if (isLoggable(Level.FINER))
+          logp(Level.FINER, sourceClass, sourceMethod, "THROW", thrown);
+      }
   }
 
-
   /**
-   * Logs a message with severity level SEVERE, indicating a serious
-   * failure that prevents normal program execution.  Messages at this
-   * level should be understandable to an inexperienced, non-technical
-   * end user.  Ideally, they explain in simple words what actions the
-   * user can take in order to resolve the problem.
-   *
+   * Logs a message with severity level SEVERE, indicating a serious failure
+   * that prevents normal program execution. Messages at this level should be
+   * understandable to an inexperienced, non-technical end user. Ideally, they
+   * explain in simple words what actions the user can take in order to resolve
+   * the problem.
+   * 
    * @see Level#SEVERE
-   *
-   * @param message the message text, also used as look-up key if the
-   *                logger is localizing messages with a resource
-   *                bundle.  While it is possible to pass
-   *                <code>null</code>, this is not recommended, since
-   *                a logging message without text is unlikely to be
-   *                helpful.
+   * @param message the message text, also used as look-up key if the logger is
+   *            localizing messages with a resource bundle. While it is possible
+   *            to pass <code>null</code>, this is not recommended, since a
+   *            logging message without text is unlikely to be helpful.
    */
-  public synchronized void severe(String message)
+  public void severe(String message)
   {
-    if (isLoggable(Level.SEVERE))
-      log(Level.SEVERE, message);
+    synchronized (lock)
+      {
+        if (isLoggable(Level.SEVERE))
+          log(Level.SEVERE, message);
+      }
   }
 
-
   /**
-   * Logs a message with severity level WARNING, indicating a
-   * potential problem that does not prevent normal program execution.
-   * Messages at this level should be understandable to an
-   * inexperienced, non-technical end user.  Ideally, they explain in
-   * simple words what actions the user can take in order to resolve
-   * the problem.
-   *
+   * Logs a message with severity level WARNING, indicating a potential problem
+   * that does not prevent normal program execution. Messages at this level
+   * should be understandable to an inexperienced, non-technical end user.
+   * Ideally, they explain in simple words what actions the user can take in
+   * order to resolve the problem.
+   * 
    * @see Level#WARNING
-   *
-   * @param message the message text, also used as look-up key if the
-   *                logger is localizing messages with a resource
-   *                bundle.  While it is possible to pass
-   *                <code>null</code>, this is not recommended, since
-   *                a logging message without text is unlikely to be
-   *                helpful.
+   * @param message the message text, also used as look-up key if the logger is
+   *            localizing messages with a resource bundle. While it is possible
+   *            to pass <code>null</code>, this is not recommended, since a
+   *            logging message without text is unlikely to be helpful.
    */
-  public synchronized void warning(String message)
+  public void warning(String message)
   {
-    if (isLoggable(Level.WARNING))
-      log(Level.WARNING, message);
+    synchronized (lock)
+      {
+        if (isLoggable(Level.WARNING))
+          log(Level.WARNING, message);
+      }
   }
 
-
   /**
-   * Logs a message with severity level INFO.  {@link Level#INFO} is
-   * intended for purely informational messages that do not indicate
-   * error or warning situations. In the default logging
-   * configuration, INFO messages will be written to the system
-   * console.  For this reason, the INFO level should be used only for
-   * messages that are important to end users and system
-   * administrators.  Messages at this level should be understandable
-   * to an inexperienced, non-technical user.
-   *
-   * @param message the message text, also used as look-up key if the
-   *                logger is localizing messages with a resource
-   *                bundle.  While it is possible to pass
-   *                <code>null</code>, this is not recommended, since
-   *                a logging message without text is unlikely to be
-   *                helpful.
+   * Logs a message with severity level INFO. {@link Level#INFO} is intended for
+   * purely informational messages that do not indicate error or warning
+   * situations. In the default logging configuration, INFO messages will be
+   * written to the system console. For this reason, the INFO level should be
+   * used only for messages that are important to end users and system
+   * administrators. Messages at this level should be understandable to an
+   * inexperienced, non-technical user.
+   * 
+   * @param message the message text, also used as look-up key if the logger is
+   *            localizing messages with a resource bundle. While it is possible
+   *            to pass <code>null</code>, this is not recommended, since a
+   *            logging message without text is unlikely to be helpful.
    */
-  public synchronized void info(String message)
+  public void info(String message)
   {
-    if (isLoggable(Level.INFO))
-      log(Level.INFO, message);
+    synchronized (lock)
+      {
+        if (isLoggable(Level.INFO))
+          log(Level.INFO, message);
+      }
   }
 
-
   /**
-   * Logs a message with severity level CONFIG.  {@link Level#CONFIG} is
-   * intended for static configuration messages, for example about the
-   * windowing environment, the operating system version, etc.
-   *
-   * @param message the message text, also used as look-up key if the
-   *     logger is localizing messages with a resource bundle.  While
-   *     it is possible to pass <code>null</code>, this is not
-   *     recommended, since a logging message without text is unlikely
-   *     to be helpful.
+   * Logs a message with severity level CONFIG. {@link Level#CONFIG} is intended
+   * for static configuration messages, for example about the windowing
+   * environment, the operating system version, etc.
+   * 
+   * @param message the message text, also used as look-up key if the logger is
+   *            localizing messages with a resource bundle. While it is possible
+   *            to pass <code>null</code>, this is not recommended, since a
+   *            logging message without text is unlikely to be helpful.
    */
-  public synchronized void config(String message)
+  public void config(String message)
   {
-    if (isLoggable(Level.CONFIG))
-      log(Level.CONFIG, message);
+    synchronized (lock)
+      {
+        if (isLoggable(Level.CONFIG))
+          log(Level.CONFIG, message);
+      }
   }
 
-
   /**
-   * Logs a message with severity level FINE.  {@link Level#FINE} is
-   * intended for messages that are relevant for developers using
-   * the component generating log messages. Examples include minor,
-   * recoverable failures, or possible inefficiencies.
-   *
-   * @param message the message text, also used as look-up key if the
-   *                logger is localizing messages with a resource
-   *                bundle.  While it is possible to pass
-   *                <code>null</code>, this is not recommended, since
-   *                a logging message without text is unlikely to be
-   *                helpful.
+   * Logs a message with severity level FINE. {@link Level#FINE} is intended for
+   * messages that are relevant for developers using the component generating
+   * log messages. Examples include minor, recoverable failures, or possible
+   * inefficiencies.
+   * 
+   * @param message the message text, also used as look-up key if the logger is
+   *            localizing messages with a resource bundle. While it is possible
+   *            to pass <code>null</code>, this is not recommended, since a
+   *            logging message without text is unlikely to be helpful.
    */
-  public synchronized void fine(String message)
+  public void fine(String message)
   {
-    if (isLoggable(Level.FINE))
-      log(Level.FINE, message);
+    synchronized (lock)
+      {
+        if (isLoggable(Level.FINE))
+          log(Level.FINE, message);
+      }
   }
 
-
   /**
-   * Logs a message with severity level FINER.  {@link Level#FINER} is
-   * intended for rather detailed tracing, for example entering a
-   * method, returning from a method, or throwing an exception.
-   *
-   * @param message the message text, also used as look-up key if the
-   *                logger is localizing messages with a resource
-   *                bundle.  While it is possible to pass
-   *                <code>null</code>, this is not recommended, since
-   *                a logging message without text is unlikely to be
-   *                helpful.
+   * Logs a message with severity level FINER. {@link Level#FINER} is intended
+   * for rather detailed tracing, for example entering a method, returning from
+   * a method, or throwing an exception.
+   * 
+   * @param message the message text, also used as look-up key if the logger is
+   *            localizing messages with a resource bundle. While it is possible
+   *            to pass <code>null</code>, this is not recommended, since a
+   *            logging message without text is unlikely to be helpful.
    */
-  public synchronized void finer(String message)
+  public void finer(String message)
   {
-    if (isLoggable(Level.FINER))
-      log(Level.FINER, message);
+    synchronized (lock)
+      {
+        if (isLoggable(Level.FINER))
+          log(Level.FINER, message);
+      }
   }
 
-
   /**
-   * Logs a message with severity level FINEST.  {@link Level#FINEST}
-   * is intended for highly detailed tracing, for example reaching a
-   * certain point inside the body of a method.
-   *
-   * @param message the message text, also used as look-up key if the
-   *                logger is localizing messages with a resource
-   *                bundle.  While it is possible to pass
-   *                <code>null</code>, this is not recommended, since
-   *                a logging message without text is unlikely to be
-   *                helpful.
+   * Logs a message with severity level FINEST. {@link Level#FINEST} is intended
+   * for highly detailed tracing, for example reaching a certain point inside
+   * the body of a method.
+   * 
+   * @param message the message text, also used as look-up key if the logger is
+   *            localizing messages with a resource bundle. While it is possible
+   *            to pass <code>null</code>, this is not recommended, since a
+   *            logging message without text is unlikely to be helpful.
    */
-  public synchronized void finest(String message)
+  public void finest(String message)
   {
-    if (isLoggable(Level.FINEST))
-      log(Level.FINEST, message);
+    synchronized (lock)
+      {
+        if (isLoggable(Level.FINEST))
+          log(Level.FINEST, message);
+      }
   }
 
-
   /**
-   * Adds a handler to the set of handlers that get notified
-   * when a log record is to be published.
-   *
+   * Adds a handler to the set of handlers that get notified when a log record
+   * is to be published.
+   * 
    * @param handler the handler to be added.
-   *
-   * @throws NullPointerException if <code>handler</code>
-   *     is <code>null</code>.
-   *
-   * @throws SecurityException if this logger is not anonymous, a
-   *     security manager exists, and the caller is not granted
-   *     the permission to control the logging infrastructure by
-   *     having LoggingPermission("control").  Untrusted code can
-   *     obtain an anonymous logger through the static factory method
-   *     {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
+   * @throws NullPointerException if <code>handler</code> is <code>null</code>.
+   * @throws SecurityException if this logger is not anonymous, a security
+   *             manager exists, and the caller is not granted the permission to
+   *             control the logging infrastructure by having
+   *             LoggingPermission("control"). Untrusted code can obtain an
+   *             anonymous logger through the static factory method
+   *             {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
    */
-  public synchronized void addHandler(Handler handler)
-    throws SecurityException
+  public void addHandler(Handler handler) throws SecurityException
   {
-    if (handler == null)
-      throw new NullPointerException();
-
-    /* An application is allowed to control an anonymous logger
-     * without having the permission to control the logging
-     * infrastructure.
-     */
-    if (!anonymous)
-      LogManager.getLogManager().checkAccess();
-
-    if (!handlerList.contains(handler))
-    {
-      handlerList.add(handler);
-      handlers = getHandlers();
-    }
+    synchronized (lock)
+      {
+        if (handler == null)
+          throw new NullPointerException();
+
+        /*
+         * An application is allowed to control an anonymous logger without
+         * having the permission to control the logging infrastructure.
+         */
+        if (! anonymous)
+          LogManager.getLogManager().checkAccess();
+
+        if (! handlerList.contains(handler))
+          {
+            handlerList.add(handler);
+            handlers = getHandlers();
+          }
+      }
   }
 
-
   /**
-   * Removes a handler from the set of handlers that get notified
-   * when a log record is to be published.
-   *
+   * Removes a handler from the set of handlers that get notified when a log
+   * record is to be published.
+   * 
    * @param handler the handler to be removed.
-   *
-   * @throws SecurityException if this logger is not anonymous, a
-   *     security manager exists, and the caller is not granted the
-   *     permission to control the logging infrastructure by having
-   *     LoggingPermission("control").  Untrusted code can obtain an
-   *     anonymous logger through the static factory method {@link
-   *     #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
-   *
-   * @throws NullPointerException if <code>handler</code>
-   *     is <code>null</code>.
+   * @throws SecurityException if this logger is not anonymous, a security
+   *             manager exists, and the caller is not granted the permission to
+   *             control the logging infrastructure by having
+   *             LoggingPermission("control"). Untrusted code can obtain an
+   *             anonymous logger through the static factory method {@link
+   *             #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
+   * @throws NullPointerException if <code>handler</code> is <code>null</code>.
    */
-  public synchronized void removeHandler(Handler handler)
-    throws SecurityException
+  public void removeHandler(Handler handler) throws SecurityException
   {
-    /* An application is allowed to control an anonymous logger
-     * without having the permission to control the logging
-     * infrastructure.
-     */
-    if (!anonymous)
-      LogManager.getLogManager().checkAccess();
-
-    if (handler == null)
-      throw new NullPointerException();
-
-    handlerList.remove(handler);
-    handlers = getHandlers();
+    synchronized (lock)
+      {
+        /*
+         * An application is allowed to control an anonymous logger without
+         * having the permission to control the logging infrastructure.
+         */
+        if (! anonymous)
+          LogManager.getLogManager().checkAccess();
+
+        if (handler == null)
+          throw new NullPointerException();
+
+        handlerList.remove(handler);
+        handlers = getHandlers();
+      }
   }
 
-
   /**
-   * Returns the handlers currently registered for this Logger.
-   * When a log record has been deemed as being loggable,
-   * it will be passed to all registered handlers for
-   * publication.  In addition, if the logger uses parent handlers
-   * (see {@link #getUseParentHandlers() getUseParentHandlers}
-   * and {@link #setUseParentHandlers(boolean) setUseParentHandlers},
-   * the log record will be passed to the parent's handlers.
+   * Returns the handlers currently registered for this Logger. When a log
+   * record has been deemed as being loggable, it will be passed to all
+   * registered handlers for publication. In addition, if the logger uses parent
+   * handlers (see {@link #getUseParentHandlers() getUseParentHandlers} and
+   * {@link #setUseParentHandlers(boolean) setUseParentHandlers}, the log
+   * record will be passed to the parent's handlers.
    */
-  public synchronized Handler[] getHandlers()
+  public Handler[] getHandlers()
   {
-    /* We cannot return our internal handlers array
-     * because we do not have any guarantee that the
-     * caller would not change the array entries.
-     */
-    return (Handler[]) handlerList.toArray(new Handler[handlerList.size()]);
+    synchronized (lock)
+      {
+        /*
+         * We cannot return our internal handlers array because we do not have
+         * any guarantee that the caller would not change the array entries.
+         */
+        return (Handler[]) handlerList.toArray(new Handler[handlerList.size()]);
+      }
   }
 
-
   /**
-   * Returns whether or not this Logger forwards log records to
-   * handlers registered for its parent loggers.
-   *
-   * @return <code>false</code> if this Logger sends log records
-   *         merely to Handlers registered with itself;
-   *         <code>true</code> if this Logger sends log records
-   *         not only to Handlers registered with itself, but also
-   *         to those Handlers registered with parent loggers.
+   * Returns whether or not this Logger forwards log records to handlers
+   * registered for its parent loggers.
+   * 
+   * @return <code>false</code> if this Logger sends log records merely to
+   *         Handlers registered with itself; <code>true</code> if this Logger
+   *         sends log records not only to Handlers registered with itself, but
+   *         also to those Handlers registered with parent loggers.
    */
-  public synchronized boolean getUseParentHandlers()
+  public boolean getUseParentHandlers()
   {
-    return useParentHandlers;
+    synchronized (lock)
+      {
+        return useParentHandlers;
+      }
   }
 
-
   /**
-   * Sets whether or not this Logger forwards log records to
-   * handlers registered for its parent loggers.
-   *
-   * @param useParentHandlers <code>false</code> to let this
-   *         Logger send log records merely to Handlers registered
-   *         with itself; <code>true</code> to let this Logger
-   *         send log records not only to Handlers registered
-   *         with itself, but also to those Handlers registered with
-   *         parent loggers.
-   *
-   * @throws SecurityException if this logger is not anonymous, a
-   *     security manager exists, and the caller is not granted
-   *     the permission to control the logging infrastructure by
-   *     having LoggingPermission("control").  Untrusted code can
-   *     obtain an anonymous logger through the static factory method
-   *     {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
-   *
+   * Sets whether or not this Logger forwards log records to handlers registered
+   * for its parent loggers.
+   * 
+   * @param useParentHandlers <code>false</code> to let this Logger send log
+   *            records merely to Handlers registered with itself;
+   *            <code>true</code> to let this Logger send log records not only
+   *            to Handlers registered with itself, but also to those Handlers
+   *            registered with parent loggers.
+   * @throws SecurityException if this logger is not anonymous, a security
+   *             manager exists, and the caller is not granted the permission to
+   *             control the logging infrastructure by having
+   *             LoggingPermission("control"). Untrusted code can obtain an
+   *             anonymous logger through the static factory method
+   *             {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
    */
-  public synchronized void setUseParentHandlers(boolean useParentHandlers)
+  public void setUseParentHandlers(boolean useParentHandlers)
   {
-    /* An application is allowed to control an anonymous logger
-     * without having the permission to control the logging
-     * infrastructure.
-     */
-    if (!anonymous)
-      LogManager.getLogManager().checkAccess();
-
-    this.useParentHandlers = useParentHandlers;
+    synchronized (lock)
+      {
+        /*
+         * An application is allowed to control an anonymous logger without
+         * having the permission to control the logging infrastructure.
+         */
+        if (! anonymous)
+          LogManager.getLogManager().checkAccess();
+
+        this.useParentHandlers = useParentHandlers;
+      }
   }
 
-
   /**
-   * Returns the parent of this logger.  By default, the parent is
-   * assigned by the LogManager by inspecting the logger's name.
-   *
-   * @return the parent of this logger (as detemined by the LogManager
-   *     by inspecting logger names), the root logger if no other
-   *     logger has a name which is a prefix of this logger's name, or
-   *     <code>null</code> for the root logger.
+   * Returns the parent of this logger. By default, the parent is assigned by
+   * the LogManager by inspecting the logger's name.
+   * 
+   * @return the parent of this logger (as detemined by the LogManager by
+   *         inspecting logger names), the root logger if no other logger has a
+   *         name which is a prefix of this logger's name, or <code>null</code>
+   *         for the root logger.
    */
-  public synchronized Logger getParent()
+  public Logger getParent()
   {
-    return parent;
+    synchronized (lock)
+      {
+        return parent;
+      }
   }
 
-
   /**
-   * Sets the parent of this logger.  Usually, applications do not
-   * call this method directly.  Instead, the LogManager will ensure
-   * that the tree of loggers reflects the hierarchical logger
-   * namespace.  Basically, this method should not be public at all,
-   * but the GNU implementation follows the API specification.
-   *
-   * @throws NullPointerException if <code>parent</code> is
-   *     <code>null</code>.
-   *
-   * @throws SecurityException if this logger is not anonymous, a
-   *     security manager exists, and the caller is not granted
-   *     the permission to control the logging infrastructure by
-   *     having LoggingPermission("control").  Untrusted code can
-   *     obtain an anonymous logger through the static factory method
-   *     {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
+   * Sets the parent of this logger. Usually, applications do not call this
+   * method directly. Instead, the LogManager will ensure that the tree of
+   * loggers reflects the hierarchical logger namespace. Basically, this method
+   * should not be public at all, but the GNU implementation follows the API
+   * specification.
+   * 
+   * @throws NullPointerException if <code>parent</code> is <code>null</code>.
+   * @throws SecurityException if this logger is not anonymous, a security
+   *             manager exists, and the caller is not granted the permission to
+   *             control the logging infrastructure by having
+   *             LoggingPermission("control"). Untrusted code can obtain an
+   *             anonymous logger through the static factory method
+   *             {@link #getAnonymousLogger(java.lang.String) getAnonymousLogger}.
    */
-  public synchronized void setParent(Logger parent)
+  public void setParent(Logger parent)
   {
-    if (parent == null)
-      throw new NullPointerException();
+    synchronized (lock)
+      {
+        if (parent == null)
+          throw new NullPointerException();
 
-    if (this == root)
-        throw new IllegalArgumentException(
-          "the root logger can only have a null parent");
+        if (this == root)
+          throw new IllegalArgumentException(
+                                             "the root logger can only have a null parent");
 
-    /* An application is allowed to control an anonymous logger
-     * without having the permission to control the logging
-     * infrastructure.
-     */
-    if (!anonymous)
-      LogManager.getLogManager().checkAccess();
+        /*
+         * An application is allowed to control an anonymous logger without
+         * having the permission to control the logging infrastructure.
+         */
+        if (! anonymous)
+          LogManager.getLogManager().checkAccess();
 
-    this.parent = parent;
+        this.parent = parent;
+      }
   }
-  
+
   /**
-   * Gets the StackTraceElement of the first class that is not this class.
-   * That should be the initial caller of a logging method.
+   * Gets the StackTraceElement of the first class that is not this class. That
+   * should be the initial caller of a logging method.
+   * 
    * @return caller of the initial logging method or null if unknown.
    */
   private StackTraceElement getCallerStackFrame()
@@ -1195,18 +1163,18 @@ public class Logger
     int index = 0;
 
     // skip to stackentries until this class
-    while(index < stackTrace.length
-         && !stackTrace[index].getClassName().equals(getClass().getName()))
+    while (index < stackTrace.length
+           && ! stackTrace[index].getClassName().equals(getClass().getName()))
       index++;
 
     // skip the stackentries of this class
-    while(index < stackTrace.length
-         && stackTrace[index].getClassName().equals(getClass().getName()))
+    while (index < stackTrace.length
+           && stackTrace[index].getClassName().equals(getClass().getName()))
       index++;
 
     return index < stackTrace.length ? stackTrace[index] : null;
   }
-  
+
   /**
    * Reset and close handlers attached to this logger. This function is package
    * private because it must only be available to the LogManager.
index 9b7afa00045e50ddb5b4d510ea9980ac43ec3150..893f043746d4a820c64605fac40860a57b9759ce 100644 (file)
@@ -357,7 +357,7 @@ public class ZipEntry implements ZipConstants, Cloneable
                            | (extra[pos+2] & 0xff) << 8
                            | (extra[pos+3] & 0xff) << 16
                            | (extra[pos+4] & 0xff) << 24);
-                   setTime(time);
+                   setTime(time*1000);
                  }
              }
            pos += len;
index a7cf05e4a04b7a34c8d7478cc55c9221fef882cd..c2e00714176b7c191def6dd8220a7f955c362fc5 100644 (file)
@@ -77,6 +77,22 @@ public interface AccessibleAction
    */
   static final String TOGGLE_EXPAND = "toggle expand";
 
+  /**
+   * The name of an action which causes a component to perform its default
+   * action.
+   *
+   * @since 1.6
+   */
+  static final String CLICK = "click";
+
+  /**
+   * The name of an action which toggles the state of a popup, causing a
+   * hidden popup to be displayed and a visible popup to be hidden.
+   *
+   * @since 1.6
+   */
+  static final String TOGGLE_POPUP = "toggle popup";
+
   /**
    * Get the number possible actions for this object, with the zeroth
    * representing the default action.
index 5ee50e5d7876283dd82172df1981cd4aca9aa2e0..de8edcb97069499feb18f285aa47b7473011dd79 100644 (file)
@@ -41,8 +41,12 @@ package javax.accessibility;
 import javax.swing.text.AttributeSet;
 
 /**
- * This is a convenience class that represents an accessible
- * attribute sequence.
+ * This is a convenience class that wraps together a sequence
+ * of text with the attributes applied to it.  This allows a single
+ * object to be used when
+ * {@link AccessibleContext#ACCESSIBLE_TEXT_ATTRIBUTES_CHANGED}
+ * events are fired.
+ *
  * @since 1.5
  */
 public class AccessibleAttributeSequence
@@ -63,9 +67,19 @@ public class AccessibleAttributeSequence
   public int endIndex;
 
   /**
-   * Create a new instance. 
+   * Creates a new instance using the specified attributes
+   * and the supplied start and end indicies.
+   *
+   * @param start the index of the start of the text.
+   * @param end the index of the end of the text.
+   * @param attr the attributes applied to the text sequence.
+   * @since 1.6
    */
-  public AccessibleAttributeSequence()
+  public AccessibleAttributeSequence(int start, int end, AttributeSet attr)
   {
+    startIndex = start;
+    endIndex = end;
+    attributes = attr;
   }
+
 }
index 07d7530e4f40d6625e1e7fed0fd6660777409b2e..308016a3966f5d78b6b8bea824495a717232dbda 100644 (file)
@@ -125,7 +125,7 @@ public interface AccessibleEditableText extends AccessibleText
    * Select the text between two points.
    *
    * @param start the start position, inclusive
-   * @param end the end position, exclusive
+   * @param stop the end position, exclusive
    */
   // XXX What happens if indices are out of bounds?
   void selectText(int start, int stop);
index 768c9cd791c5e2178e107c7acfa6db0c6c7c3269..49161d77e9d34e2fc262a151aa82d44f0d8c92ca 100644 (file)
@@ -168,7 +168,7 @@ public class AccessibleRelationSet
   {
     int i = relations.size();
     while (--i >= 0)
-      if (((AccessibleRelation) relations.get(i)).key.equals(key))
+      if ((relations.get(i)).key.equals(key))
         return true;
     return false;
   }
@@ -184,7 +184,7 @@ public class AccessibleRelationSet
     int i = relations.size();
     while (--i >= 0)
       {
-        AccessibleRelation r = (AccessibleRelation) relations.get(i);
+        AccessibleRelation r = relations.get(i);
         if (r.key.equals(key))
           return r;
       }
index a5396f147f51450e238fea010e31b9328fbe7653..c568b4fe93be25b58414ddbf19b94f972bf48c5d 100644 (file)
@@ -516,6 +516,19 @@ public class AccessibleRole extends AccessibleBundle
   public static final AccessibleRole RULER
     = new AccessibleRole("ruler");
 
+  /**
+   * A HTML container is an accessible object which contains other
+   * accessible objects that together form some HTML content.  For example,
+   * the content may be a sequence of text containing a link, which
+   * would be represent as two children, one an {@link AccessibleText}
+   * object holding the normal text and the other an
+   * {@link AccessibleHypertext} object representing the link.
+   *
+   * @since 1.6
+   */
+  public static final AccessibleRole HTML_CONTAINER
+    = new AccessibleRole("HTML container");
+
   /**
    * Create a new constant with a locale independent key. Follow the example,
    * keep the constructor private and make public constants instead.
index 88fa4c2b880acefc56d4c6afe86f0d80da94f9a6..b400160aa3589d6b7499e640051dccbbcf82687c 100644 (file)
@@ -39,7 +39,10 @@ exception statement from your version. */
 package javax.accessibility;
 
 /**
- * This is a convenience class that encapsulates a String and a range.
+ * This is a convenience class that encapsulates a string of text
+ * and a range specifying where, within a larger body of text, the
+ * string may be found.
+ *
  * @since 1.5
  */
 public class AccessibleTextSequence
@@ -61,8 +64,18 @@ public class AccessibleTextSequence
 
   /**
    * Create a new instance.
+   *
+   * @param start the initial index of the text within a larger
+   *              body of text.
+   * @param end the final index of the text within a larger body
+   *              of text.
+   * @param txt the text itself.
+   * @since 1.6
    */
-  public AccessibleTextSequence()
+  public AccessibleTextSequence(int start, int end, String txt)
   {
+    startIndex = start;
+    endIndex = end;
+    text = txt;
   }
 }
index c7eed06fbdcc8276f69b5330b747816bad662773..269493f2330e72539ef229c92cade29da1448561 100644 (file)
@@ -429,7 +429,7 @@ public abstract class ImageReader
    * IllegalStateException).  If input is null then the current input
    * source will be removed.
    *
-   * @param input the input source object
+   * @param in the input source object
    * @param seekForwardOnly true if this reader should be allowed to
    * read input from the data stream more than once, false otherwise
    *
@@ -1498,7 +1498,7 @@ public abstract class ImageReader
    * null.  IllegalArgumentException is thrown if either region will
    * contain 0 pixels after clipping.
    *
-   * @param image read parameters, or null
+   * @param param read parameters, or null
    * @param srcWidth the width of the source image
    * @param srcHeight the height of the source image
    * @param image the destination image, or null
@@ -1734,7 +1734,7 @@ public abstract class ImageReader
   public ImageTypeSpecifier getRawImageType (int imageIndex)
     throws IOException
   {
-    return (ImageTypeSpecifier) getImageTypes(imageIndex).next();
+    return getImageTypes(imageIndex).next();
   }
 
   /**
@@ -1828,7 +1828,7 @@ public abstract class ImageReader
    * warning listeners will be notified of read progress, changes in
    * sample sets and warnings respectively.
    *
-   * @param the index of the image frame to read
+   * @param imageIndex the index of the image frame to read
    *
    * @return a buffered image
    *
@@ -1855,8 +1855,8 @@ public abstract class ImageReader
    * The source and destination band settings are checked with a call
    * to checkReadParamBandSettings.
    *
-   * @param the index of the image frame to read
-   * @param the image read parameters
+   * @param imageIndex the index of the image frame to read
+   * @param param the image read parameters
    *
    * @return an IIOImage
    *
@@ -1902,7 +1902,7 @@ public abstract class ImageReader
    * Each set of source and destination band settings are checked with
    * a call to checkReadParamBandSettings.
    *
-   * @param an iterator over the image read parameters
+   * @param params iterator over the image read parameters
    *
    * @return an IIOImage
    *
@@ -1938,8 +1938,8 @@ public abstract class ImageReader
    * before this method returns and so listeners will not necessarily
    * be notified.
    *
-   * @param the index of the image frame to read
-   * @param the image read parameters
+   * @param imageIndex the index of the image frame to read
+   * @param param the image read parameters
    *
    * @return a rendered image
    *
index 05b3a26d493428cae15f7aa3282104331d3baa5f..3faa3c937c350c4d95f8dfa78a5d36f0afb77118 100644 (file)
@@ -119,7 +119,7 @@ public class ImageTypeSpecifier
    * @param colorSpace the color space
    * @param bankIndices the bank indices at which each band will be
    * stored
-   * @param bandOffsets the starting band offset for each band within
+   * @param bankOffsets the starting band offset for each band within
    * its bank
    * @param dataType the data type, a DataBuffer constant
    * @param hasAlpha true if this image type specifier should have an
@@ -168,8 +168,8 @@ public class ImageTypeSpecifier
    * Create a buffered image with the given dimensions using that has
    * the characteristics specified by this image type specifier.
    *
-   * @param the width of the buffered image, in pixels
-   * @param the height of the buffered image, in pixels
+   * @param width  width of the buffered image, in pixels
+   * @param height the height of the buffered image, in pixels
    *
    * @return a buffered image
    *
index b49e081f0028ddd60103a7e18ab696144ebae29f..78d792c72d4b1ef07938f65aff7092dc86795275 100644 (file)
@@ -899,7 +899,7 @@ public abstract class ImageWriter
    * IllegalStateException).  If input is null then the current input
    * source will be removed.
    *
-   * @param input the output destination object
+   * @param output the output destination object
    *
    * @exception IllegalArgumentException if input is not a valid input
    * source for this writer and is not an ImageInputStream
@@ -1338,7 +1338,7 @@ public abstract class ImageWriter
    * @param imageIndex the frame index at which to insert the image
    * @param image the image data, metadata and thumbnails to be
    * inserted
-   * @param the image write parameters, or null
+   * @param param image write parameters, or null
    *
    * @exception IllegalStateException if output is null
    * @exception UnsupportedOperationException if image insertion is
index 78fad1a15f0ef3161d37177a1619daa47b83c01e..444497d7dc59c3ccf24305869aa86a1536475442 100644 (file)
@@ -39,18 +39,13 @@ exception statement from your version. */
 package javax.imageio.metadata;
 
 import org.w3c.dom.Attr;
-import org.w3c.dom.DOMException;
-import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.w3c.dom.TypeInfo;
-import org.w3c.dom.UserDataHandler;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.ResourceBundle;
index 2d52e467078e7d170c7a20f5c0aac222df7fc097..37269f539168f414e52b038bab8317151d24b347 100644 (file)
@@ -334,7 +334,7 @@ public class IIOMetadataNode
    */
   public void setAttribute(String name, String value)
   {
-    Attr attr = (Attr) getAttributeNode(name);
+    Attr attr = getAttributeNode(name);
     if (attr != null)
       attr.setValue(value);
     else
index 3051a813bc3af0e064c4fed7f39246be52d57be9..170ea009ad7d2d2035649bbcae300c73e6fb2988 100644 (file)
@@ -787,10 +787,10 @@ public class ServiceRegistry
    * @param category the service category to which an ordering
    * constraint is to be added.
    *
-   * @param first the provider which is supposed to come before
+   * @param firstProvider the provider which is supposed to come before
    * <code>second</code>.
    *
-   * @param second the provider which is supposed to come after
+   * @param secondProvider the provider which is supposed to come after
    * <code>first</code>.
    *
    * @throws IllegalArgumentException if <code>first</code> and
@@ -815,10 +815,10 @@ public class ServiceRegistry
    * @param category the service category from which an ordering
    * constraint is to be removed.
    *
-   * @param first the provider which is supposed to come before
+   * @param firstProvider the provider which is supposed to come before
    * <code>second</code>.
    *
-   * @param second the provider which is supposed to come after
+   * @param secondProvider the provider which is supposed to come after
    * <code>first</code>.
    *
    * @throws IllegalArgumentException if <code>first</code> and
index a2af6c3e2a1802e55aa606b5f3be562f9856a40a..4d1b5d57aa5b4c6f46f567dac6c3647b4736d3d6 100644 (file)
@@ -469,7 +469,7 @@ public interface ImageInputStream
    * @param offset the index of the first element in <code>i</code>
    * that will hold read data.
    *
-   * @param numLongs the number of signed 32-bit integers to read
+   * @param numInts the number of signed 32-bit integers to read
    * (which is one fourth of the number of bytes).
    *
    * @throws IndexOutOfBoundsException if <code>offset</code> or
index da8a958bb6420a50afc15d7c8a384f248c701fe2..72aa5e8d59f12bfce9380894c21815c79e96f950 100644 (file)
@@ -39,10 +39,8 @@ exception statement from your version. */
 package javax.imageio.stream;
 
 import java.io.BufferedInputStream;
-import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
 
 /**
  * @author Michael Koch (konqueror@gmx.de)
index 2c8dfbd622db26d2bcd103c9c0fe5ee98cffc6c3..1ee0e710433210f12f72046a19b6eae54495214f 100644 (file)
@@ -224,7 +224,7 @@ public class MBeanPermission
    *               or either <code>null</code> or <code>"-"</code> for a
    *               value which may be implied by any member, but not
    *               imply any member itself.
-   * @param objectName the {@link ObjectName} to which this permission applies,
+   * @param name the {@link ObjectName} to which this permission applies,
    *                  or <code>null</code> for a value which may be implied by
    *                  any object name, but not imply any object name itself.
    * @param actions the actions associated with this permission.
index 59d9ec28e16b364a86ef7699b4da1aa61d828942..7eba6eccf25a32ec1b3853d2aa38ae412ff8ef3b 100644 (file)
@@ -105,7 +105,7 @@ public class NotificationBroadcasterSupport
    */
   public NotificationBroadcasterSupport()
   {
-    this(null, null);
+    this(null, (MBeanNotificationInfo[]) null);
   }
 
   /**
@@ -124,7 +124,7 @@ public class NotificationBroadcasterSupport
    */
   public NotificationBroadcasterSupport(Executor executor)
   {
-    this(executor, null);
+    this(executor, (MBeanNotificationInfo) null);
   }
 
   /**
index 4ea21cdc7ae7fc149049902954d3ce12c01c12b2..1fb51506f04ac491f54ec190a67e6cfb218c2b11 100644 (file)
@@ -39,7 +39,6 @@ package javax.management;
 
 import java.io.Serializable;
 
-import java.util.Collections;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.Map;
index 3748384537632061c0de26554bd55493d087e08c..bd59c68ae225cf95e76d7cab844ee1dadae5d161 100644 (file)
@@ -228,13 +228,13 @@ public class StandardMBean
     Method getter;
     try 
       {
-       getter = iface.getMethod("get" + name, null);
+       getter = iface.getMethod("get" + name);
       }
     catch (NoSuchMethodException e)
       {
        try 
          {
-           getter = iface.getMethod("is" + name, null);
+           getter = iface.getMethod("is" + name);
          }
        catch (NoSuchMethodException ex)
          {
@@ -246,7 +246,7 @@ public class StandardMBean
     Object result;
     try
       {
-       result = getter.invoke(impl, null);
+       result = getter.invoke(impl);
       }
     catch (IllegalAccessException e)
       {
index 42f80623d9a9b7b554cfdbf2650be8c102ab74ad..e6cf5261aaadca85d62d3bd4694ca5429e194469 100644 (file)
@@ -39,7 +39,6 @@ package javax.management.openmbean;
 
 import java.lang.reflect.Array;
 
-import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 
diff --git a/libjava/classpath/javax/management/package.html b/libjava/classpath/javax/management/package.html
new file mode 100644 (file)
index 0000000..3543eec
--- /dev/null
@@ -0,0 +1,197 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<!-- package.html - describes classes in javax.management package.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. -->
+
+<html>
+<head><title>GNU Classpath - javax.management</title></head>
+
+<body>
+
+<p>
+Provides the core classes for the Java Management Extensions (JMX).  This API
+builds on the notion of Java beans by providing a layer of abstraction between
+the beans themselves and the method of accessing them.  Instead of being accessed
+directly, management beans or <strong>MBeans</strong> are usually accessed via
+a management server (an implementation of the @see MBeanServer interface).  Thus,
+the bean itself may be a simple Java object or it may be something
+more complicated (for example, the server may map from Java to SNMP).  The server may
+also retrieve the bean from some remote location rather than using a local object.
+</p>
+<p>
+Management beans are usually used for monitoring and/or configuration
+of a particular entity.  For example, the platform management beans
+found in the @see java.lang.management package allow the user
+to obtain information about the operating system, current memory usage, etc.
+as well as turning on and off certain additional facilities.  To this end,
+an MBean consists of:
+</p>
+<ul>
+<li><emph>attributes</emph> that may be read and/or written to.</li>
+<li><emph>operations</emph> which may be performed.</li>
+<li><emph>notifications</emph> that may emitted by the bean and listened for by users.</li>
+</ul>
+<p>
+The most common type of management bean is the @see StandardMBean,  A standard MBean
+relies on the naming patterns established by the JavaBeans framework; the value of an
+attribute <code>name</code> is retrieved by an accessor method named <code>getName</code>
+and changed by a mutator method called <code>setName</code>.  If the mutator is absent,
+the attribute is read only.  Naming is also used to associate the implementation of a
+bean with its interface; an bean <code>Person</code> is assumed to be an implementation
+of the interface <code>PersonMBean</code> (and vice versa).  To avoid these naming constraints,
+the @see StandardMBean class may be used.
+</p>
+<p>
+<h2>Types of Beans</h2>
+<p>
+The @see StandardMBean class is one example of a @see DynamicMBean where the attributes and
+operations of the bean are provided dynamically via the methods provided.  With the
+@see StandardMBean class, this simply means that the class uses reflection to access the
+appropriate methods of the bean implementation.  In a more complex scenario, the bean's
+data could be supplied from a file or over the network.
+</p>
+<p>
+Once we start talking about accessing beans over network and platform boundaries, we run
+in to the issue of how to deal with the types utilised by these beans.  Simple types, such
+as numbers and strings, are usually fine but more complex types need special treatment.
+An <emph>Open MBean</emph> is one that only uses a specific set of types defined in the
+@see javax.management.openmbean package, allowing both sides of a remote connection to provide
+this subset of types and thus interact.  An @see MXBean goes a stage further, and defines
+a method whereby a normal Java MBean may become an Open MBean by performing a defined mapping
+on the types of the bean.  For example, a @see java.util.List or @see java.util.Set of a
+particular type becomes an array of the same type.
+</p>
+<h2>Accessing Beans</h2>
+<p>
+Although beans can be accessed like normal objects, the normal way of accessing them is
+via an @see MBeanServer.  This provides the abstraction from the bean's implementation to
+a set of attributes, operations and notifications.  The server identifies each bean via
+an @see ObjectName.  This name is unique to a particular bean and is used to identify the
+bean when retrieving the value of an attribute or invoking an operation.  Essentially, most
+methods provided by the server are the same as those provided by the @see DynamicMBean
+interface, except that each takes this additional @link ObjectName parameter to identify the
+bean being accessed.
+</p>
+<p>
+The @see MBeanServerFactory keeps track of the current MBean servers in use and allows new
+ones to be created.  A special @see MBeanServer instance, called the <emph>platform MBean
+server</emph>, is created when the Java virtual machine is started and a reference to this
+may be obtained from the @see ManagementFactory using
+@see ManagementFactory#getPlatformMBeanServer().  This primarily exists for the purpose of
+creating and registering the platform MBeans, described in @see java.lang.management, which
+provide access to information about the underlying operating system, memory usage, the behaviour
+of the garbage collector, etc. but is equally suitable for creating and registering your own
+beans.  Alternatively, a server instance may be obtained from the @see MBeanServerFactory.
+</p>
+<p>
+A bean obtains an @link ObjectName by registering with the server.  This operation can be
+performed either by passing an existing instance to the @see MBeanServer#registerMBean method
+or by using the @see MBeanServer#createMBean method to simultaneously create the bean and
+register it with the server.  During the registration process, the bean may perform some
+arbitrary behaviour if it implements the @link MBeanRegistration interface.  The same is
+true when unregistering a bean.
+</p>
+<p>
+To actually access the attributes and operations of a bean via the server, we use code
+like the following:
+</p>
+<pre>
+// First we obtain the platform MBean server which has the platform MBeans registered
+MBeanServer server = ManagementFactory.getPlatformMBeanServer(); 
+// We also need the object name of the memory bean so we can address it
+ObjectName name = new ObjectName(ManagementFactory.MEMORY_MXBEAN_NAME);
+// Next we obtain the value of the 'verbose' attribute
+// What actually happens here is that the server invokes the 'isVerbose' method of
+// the MemoryMXBean
+boolean verbose = server.getAttribute(name, "verbose");
+// We can also set the value of verbose.  Again the server is actually performing
+// a setVerbose(val) on the bean but we don't need to know this.
+Attribute attrib = new Attribute("verbose", true);
+server.setAttribute(name, attrib);
+// We can also invoke the 'gc' operation which calls the garbage collector.
+server.invoke(name, "gc", new Object[]{}, new String[]{});
+</pre>
+<p>
+As noted above, the server is simply making basic method calls on the object using
+reflection. However, the server provides a layer of abstraction which means that something
+more complicated could actually be going on.  The lines above are equally applicable, for
+example, if <code>server</code> is instead an @see MBeanServerConnection connecting us
+to a distant computer.
+</p>
+<p>
+This rather hideous code can be simplified back into simple method calls on an object,
+so that we get the best of both worlds.  This is achieved using a <emph>MBean proxy</emph>:
+<pre>
+MBeanServer server = ManagementFactory.getPlatformMBeanServer(); 
+ObjectName name = new ObjectName(ManagementFactory.MEMORY_MXBEAN_NAME);
+MemoryMXBean bean = JMX.newMBeanProxy(server, name, MemoryMXBean.class);
+boolean verbose = bean.isVerbose();
+bean.setVerbose(true);
+bean.gc();
+</pre>
+<p>
+See how much simpler the operations are?  The proxy handles the task of translating the method
+calls into appropriate invocations of methods on the server, simplifying the code for the user.
+</p>
+<p>
+Finally, we have assumed in the code above that the @see ObjectName of the bean is known.
+If this is not the case, then the server's database can be searched.  The @see Query class
+provides appropriate operators (e.g. boolean (and,or), value comparison (&gt;, &lt;)) for
+building up relatively complex queries.  Once constructed, a query may be passed to either
+the @see MBeanServer#queryNames or @see MBeanServer#queryMBeans to obtain an appropriate
+set of @see ObjectName or MBean instances.
+</p>
+<h2>Notifications</h2>
+<p>
+MBeans also have the capability to emit events.  Beans which do so implement either the
+@see NotificationBroadcaster or @see NotificationEmitter interface (the difference between
+the two is simply the existence of a better removal method in the newer
+@see NotificationEmitter interface, which otherwise extends @see NotificationBroadcaster),
+usually by extending the @see NotificationBroadcasterSupport class.  As is usual with event
+handling, other classes may <emph>signup</emph> to receive events via the
+@see NotificationListener interface.  The signup process can include registering a filter
+(an implementation of @see NotificationFilter) so that only certain events reach the
+listener and others are discarded.
+</p>
+<h2>Remote Access</h2>
+<p>
+The subpackage @see javax.management.remote provides facilities to access remote MBean
+servers.  This consists of a <emph>connector</emph> framework which abstracts the method
+of accessing remote servers from the actual implementation, so that the same method is
+used to connect to a remote server, regardless of how it is accessed.
+</p>
+</body>
+</html>
diff --git a/libjava/classpath/javax/management/remote/NotificationResult.java b/libjava/classpath/javax/management/remote/NotificationResult.java
new file mode 100644 (file)
index 0000000..c0b2d9b
--- /dev/null
@@ -0,0 +1,166 @@
+/* NotificationResult.java -- Wrapper for a series of buffered notifications.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.management.remote;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * Wraps the result of a query for buffered notifications.  In a remote
+ * scenario, it may be more practical for the server to buffer individual
+ * notifications from its beans and then return them in bulk on request.
+ * This class contains the notifications returned by such a request.
+ * </p>
+ * <p>
+ * It consists of a series of {@link Notification} and identifier pairs,
+ * wrapped in a {@link TargetedNotification} object.  The identifiers
+ * serve to pair up the notification with the listener that requested
+ * it.  Two positive numbers are also included: the first sequence number
+ * used by the returned notifications, and the sequence number of the
+ * notification which will be returned by the next query.  The first
+ * sequence number may be greater than the next sequence number if some
+ * notifications have been lost.
+ * </p>
+ *
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @since 1.5
+ */
+public class NotificationResult
+  implements Serializable
+{
+
+  /**
+   * Compatible with JDK 1.6
+   */
+  private static final long serialVersionUID = 1191800228721395279L;
+
+  /**
+   * The sequence number of the first notification.
+   */
+  private long earliestSequenceNumber;
+
+  /**
+   * The sequence number of the next notification to be
+   * returned by a future query.
+   */
+  private long nextSequenceNumber;
+
+  /**
+   * The pairs of notifications and identifiers returned
+   * by the query.
+   */
+  private TargetedNotification[] targetedNotifications;
+
+  /**
+   * Constructs a new {@link NotificationResult} using the specified
+   * sequence numbers and the supplied array of notification pairs.
+   *
+   * @param startSeqNumber the sequence number of the first notification
+   *                       being returned.
+   * @param nextSeqNumber the sequence numbr of the next notification
+   *                      that will be returned from a future query.
+   * @param notifications the notification and identifier pairs.  This
+   *                      may be empty.
+   * @throws IllegalArgumentException if a sequence number is negative
+   *                                  or <code>notifications</code> is
+   *                                  <code>null</code>.
+   */
+  public NotificationResult(long startSeqNumber, long nextSeqNumber,
+                           TargetedNotification[] notifications)
+  {
+    if (startSeqNumber < 0)
+      throw new IllegalArgumentException("Starting sequence number is " +
+                                        "less than 0.");
+    if (nextSeqNumber < 0)
+      throw new IllegalArgumentException("Next sequence number is " +
+                                        "less than 0.");
+    if (notifications == null)
+      throw new IllegalArgumentException("The array of notifications is null.");
+    earliestSequenceNumber = startSeqNumber;
+    nextSequenceNumber = nextSeqNumber;
+    targetedNotifications = notifications;
+  }
+
+  /**
+   * Returns the sequence number of the earliest notification
+   * in the buffer.
+   *
+   * @return the sequence number of the earliest notification.
+   */
+  public long getEarliestSequenceNumber()
+  {
+    return earliestSequenceNumber;
+  }
+
+  /**
+   * Returns the sequence number of the next notification to
+   * be returned by a future query.
+   *
+   * @return the sequence number of the next notification.
+   */
+  public long getNextSequenceNumber()
+  {
+    return nextSequenceNumber;
+  }
+
+  /**
+   * Returns the notification and identifier pairs returned
+   * by the query.
+   *
+   * @return the notification and identifier pairs.
+   */
+  public TargetedNotification[] getTargetedNotifications()
+  {
+    return targetedNotifications;
+  }
+
+  /**
+   * Returns a textual representation of the object.
+   *
+   * @return a textual representation.
+   */
+  public String toString()
+  {
+    return getClass().getName() +
+      "[earliestSequenceNumber=" + earliestSequenceNumber +
+      ",nextSequenceNumber=" + nextSequenceNumber + 
+      ",targetedNotifications=" + targetedNotifications +
+      "]";
+  }
+
+}
diff --git a/libjava/classpath/javax/management/remote/TargetedNotification.java b/libjava/classpath/javax/management/remote/TargetedNotification.java
new file mode 100644 (file)
index 0000000..c383c91
--- /dev/null
@@ -0,0 +1,127 @@
+/* TargetedNotificaton.java -- Wrapper for a notification and identifier pair.
+   Copyright (C) 2008 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.management.remote;
+
+import java.io.Serializable;
+
+import javax.management.Notification;
+
+/**
+ * Wraps a notification with an identifier that specifies
+ * the listener which received it.
+ *
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @since 1.5
+ */
+public class TargetedNotification
+  implements Serializable
+{
+
+  /**
+   * Compatible with JDK 1.6
+   */
+  private static final long serialVersionUID = 7676132089779300926L;
+
+  /**
+   * The notification that was recieved by the listener.
+   */
+  private Notification notif;
+
+  /**
+   * The identifier for the listener that received the notification;
+   */
+  private Integer id;
+
+  /**
+   * Constructs a new {@link TargetedNotification} which connects
+   * the supplied notification with the specified identifier.  The
+   * identifier matches one of those returned by a previous call
+   * to add a new notification listener.
+   *
+   * @param notif the notification.
+   * @param id the identifier of the listener that received the
+   *           notification.
+   * @throws IllegalArgumentException if either argument is
+   *                                  <code>null</code>.
+   */
+  public TargetedNotification(Notification notif, Integer id)
+  {
+    if (notif == null)
+      throw new IllegalArgumentException("The notification is null.");
+    if (id == null)
+      throw new IllegalArgumentException("The identifier is null.");
+    this.notif = notif;
+    this.id = id;
+  }
+
+  /**
+   * Returns the notification.
+   *
+   * @return the notification.
+   */
+  public Notification getNotification()
+  {
+    return notif;
+  }
+
+  /**
+   * Returns the identifier for the listener
+   * which received the notification.
+   *
+   * @return the identifier.
+   */
+  public Integer getListenerID()
+  {
+    return id;
+  }
+
+  /**
+   * Returns a textual representation of the object.
+   *
+   * @return a textual representation.
+   */
+  public String toString()
+  {
+    return getClass().getName() +
+      "[notif=" + notif +
+      ",id=" + id +
+      "]";
+  }
+
+}
+
diff --git a/libjava/classpath/javax/management/remote/package.html b/libjava/classpath/javax/management/remote/package.html
new file mode 100644 (file)
index 0000000..f1d469f
--- /dev/null
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<!-- package.html - describes classes in javax.management.remote package.
+   Copyright (C) 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. -->
+
+<html>
+<head><title>GNU Classpath - javax.management.remote</title></head>
+
+<body>
+
+<p>
+Provides a framework for accessing remote MBean servers.  The JMX
+remote API introduces the notion of a <emph>connector</emph>.  On
+the server side, the connector wraps the MBean server, processing
+calls from remote clients.  The client sends its requests via
+a connector which is responsible for transmitting the request
+to the server.
+</p>
+</body>
+</html>
diff --git a/libjava/classpath/javax/management/remote/rmi/RMIConnection.java b/libjava/classpath/javax/management/remote/rmi/RMIConnection.java
new file mode 100644 (file)
index 0000000..38fb544
--- /dev/null
@@ -0,0 +1,1151 @@
+/* RMIConnection.java -- RMI object representing a MBean server connection.
+   Copyright (C) 2007, 2008 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.management.remote.rmi;
+
+import java.io.Closeable;
+import java.io.IOException;
+
+import java.rmi.MarshalledObject;
+import java.rmi.Remote;
+
+import java.util.Set;
+
+import javax.management.AttributeList;
+import javax.management.AttributeNotFoundException;
+import javax.management.InstanceAlreadyExistsException;
+import javax.management.InstanceNotFoundException;
+import javax.management.IntrospectionException;
+import javax.management.InvalidAttributeValueException;
+import javax.management.ListenerNotFoundException;
+import javax.management.MBeanInfo;
+import javax.management.MBeanException;
+import javax.management.MBeanRegistrationException;
+import javax.management.NotCompliantMBeanException;
+import javax.management.ObjectInstance;
+import javax.management.ObjectName;
+import javax.management.ReflectionException;
+
+import javax.management.remote.NotificationResult;
+
+import javax.security.auth.Subject;
+
+/**
+ * <p>
+ * RMI interface for forwarding requests to a remote
+ * {@link javax.management.MBeanServer}.  This interface
+ * parallels the {@link javax.management.MBeanServerConnection}
+ * interface, providing a way of invoking those methods using
+ * the RMI protocol.  When a client wishes to call a method
+ * of an MBean server using RMI, the method is called on the stub
+ * on the client side, which serializes the object parameters
+ * and sends them to the server where they are deserialized and
+ * an implementation of this interface forwards them to the
+ * appropriate MBean server.  Return values follow the same
+ * process, only in reverse.  Each client obtains its own
+ * implementation of this interface from an {@link RMIServer}
+ * instance.
+ * </p>
+ * <p>
+ * Implementations of this interface do more than simply
+ * forward requests directly to the server.  The arguments
+ * of the server methods are wrapped in {@link MarshalledObject}
+ * instances, so that the correct classloader can be used to
+ * deserialize the arguments.  When a method is called, the
+ * implementation must first retrieve the appropriate classloader
+ * and then use it to deserialize the marshalled object.  Unless
+ * explicitly specified in the documentation for the method,
+ * a parameter of the type {@link MarshalledObject} or an array
+ * of that type should not be {@code null}.
+ * </p>
+ * <p>
+ * Security is also handled by this interface, as the methods
+ * use an additional {@link javax.security.auth.Subject} parameter
+ * for role delegation.
+ * </p>
+ *
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @since 1.5
+ */
+public interface RMIConnection
+  extends Closeable, Remote
+{
+
+  /**
+   * Handles {@link
+   * MBeanServerConnection#addNotificationListener(ObjectName,
+   * ObjectName, NotificationFilter, Object)} by
+   * registering the supplied listener with the specified management
+   * bean.  Notifications emitted by the management bean are forwarded
+   * to the listener via the server, which will convert any MBean
+   * references in the source to portable {@link ObjectName}
+   * instances.  The notification is otherwise unchanged.  The filter
+   * and handback object are wrapped in a {@link MarshalledObject}
+   * so that they are deserialised using the bean's classloader.
+   *
+   * @param name the name of the management bean with which the listener
+   *             should be registered.
+   * @param listener the listener which will handle notifications from
+   *                 the bean.
+   * @param filter a wrapper containing a filter to apply to incoming
+   *               notifications, or <code>null</code> if no filtering
+   *               should be applied.
+   * @param passback a wrapper containing an object to be passed to the
+   *                 listener when a notification is emitted.
+   * @param delegationSubject a {@link javax.security.auth.Subject} instance
+   *                          containing the delegation principles or
+   *                          {@code null} if authentication is used.
+   * @throws InstanceNotFoundException if the name of the management bean
+   *                                   could not be resolved.
+   * @throws RuntimeOperationsException if the bean associated with the given
+   *                                    object name is not a
+   *                                    {@link NotificationListener}.  This
+   *                                    exception wraps an
+   *                                    {@link IllegalArgumentException}.
+   * @throws SecurityException if the client or delegated subject (if any)
+   *                           does not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   * @see #removeNotificationListener(ObjectName, ObjectName,
+   *                                  javax.security.auth.Subject)
+   * @see #removeNotificationListener(ObjectName, ObjectName,
+   *                                  java.rmi.MarshalledObject,
+   *                                  java.rmi.MarshalledObject,
+   *                                  javax.security.auth.Subject)
+   * @see #removeNotificationListeners(ObjectName, Integer[],
+   *                                  javax.security.auth.Subject)
+   * @see NotificationBroadcaster#addNotificationListener(NotificationListener,
+   *                                                      NotificationFilter,
+   *                                                      Object)
+   */
+  void addNotificationListener(ObjectName name, ObjectName listener,
+                              MarshalledObject filter, MarshalledObject passback,
+                              Subject delegationSubject)
+    throws InstanceNotFoundException, IOException;
+
+  /**
+   * Handles {@link
+   * MBeanServerConnection#addNotificationListener(ObjectName,
+   * NotificationListener, NotificationFilter, Object)} by
+   * registering for notifications from the specified management
+   * beans.  The array of filters is assumed to be aligned with
+   * the array of bean names, so that the notifications from each
+   * bean are matched against the appropriate filter (or left as
+   * is if the filter is {@code null}.  Notifications emitted by
+   * the management beans are forwarded to a local listener created
+   * by this method, via the server, which converts any MBean
+   * references in the source to portable {@link ObjectName}
+   * instances.  The notification is otherwise unchanged.
+   * </p>
+   * <p>
+   * This local listener buffers the notifications for retrieval by
+   * {@link #fetchNotifications(long,int,long).  This method returns
+   * an array of listener identifiers which aligns with the supplied
+   * array of beans so that the appropriate listener can be identified
+   * by the client, which retains its own listener and handback object.
+   * The filters are wrapped in {@link MarshalledObject}s so that they are
+   * deserialised using the bean's classloader.
+   * </p>
+   *
+   * @param names the names of the management bean whose notifications
+   *              should be recorded.
+   * @param filters an array of wrappers containing filters to apply to
+   *                incoming notifications.  An element may be <code>null</code>
+   *                if no filtering should be applied to a bean's notifications.
+   * @param delegationSubjects an array of {@link javax.security.auth.Subject}
+   *                          instances containing the delegation principles for
+   *                          each listener.  An element may be {@code null} if
+   *                          authentication is used instead, or the entire
+   *                          argument itself may be {@code null}.  In the latter
+   *                          case, this is treated as an array of {@code null}
+   *                          values.
+   * @return an array of integers which act as listener identifiers, so that
+   *         notifications retrieved from {@link #fetchNotifications(long,int,long)
+   *         can be matched to the beans they were emitted from.  The array is
+   *         aligned against the array of beans supplied to this methods, so that
+   *         the identifier in position 0 represents the bean in position 0 of the
+   *         input array.
+   * @throws IllegalArgumentException if the {@code names} or {@code filters} array
+   *                                  is {@code null}, the {@code names} array contains
+   *                                  a {@code null} value or the three arrays are not
+   *                                  of the same size.
+   * @throws ClassCastException if an element of the {@code filters} array unmarshalls
+   *                            as a non-null object that is not a {@link NotificationFilter}.
+   * @throws InstanceNotFoundException if the name of one of the management beans
+   *                                   could not be resolved.
+   * @throws SecurityException if, for one of the beans, the client or delegated subject
+   *                           (if any) does not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   * @see #removeNotificationListener(ObjectName, ObjectName,
+   *                                  javax.security.auth.Subject)
+   * @see #removeNotificationListener(ObjectName, ObjectName,
+   *                                  java.rmi.MarshalledObject,
+   *                                  java.rmi.MarshalledObject,
+   *                                  javax.security.auth.Subject)
+   * @see #removeNotificationListeners(ObjectName, Integer[],
+   *                                  javax.security.auth.Subject)
+   * @see NotificationBroadcaster#addNotificationListener(NotificationListener,
+   *                                                      NotificationFilter,
+   *                                                      Object)
+   */
+  Integer[] addNotificationListeners(ObjectName[] names, MarshalledObject[] filters,
+                                    Subject[] delegationSubjects)
+    throws InstanceNotFoundException, IOException;
+
+  /**
+   * Closes the connection and unexports the RMI object implementing this
+   * interface.  Following this call, future method calls to this instance
+   * will fail.
+   *
+   * @throws IOException if there is an I/O error in transmitting the close
+   *                     request via RMI, closing the connection, or unexporting
+   *                     the RMI object.
+   */
+  void close()
+    throws IOException;
+
+  /**
+   * <p>
+   * Handles {@link
+   * MBeanServerConnection#createMBean(String, ObjectName,
+   * Object[], String[])}.  The array of parameters is wrapped in
+   * a {@link MarshalledObject} so that it is deserialised using the
+   * bean's classloader.
+   * </p>
+   * <p>
+   * Instantiates a new instance of the specified management bean
+   * using the given constructor and registers it with the server
+   * under the supplied name.  The class is loaded using the
+   * {@link javax.management.loading.ClassLoaderRepository default
+   * loader repository} of the server. 
+   * </p>
+   * <p>
+   * If the name supplied is <code>null</code>, then the bean is
+   * expected to implement the {@link MBeanRegistration} interface.
+   * The {@link MBeanRegistration#preRegister preRegister} method
+   * of this interface will be used to obtain the name in this case.
+   * </p>
+   * 
+   * @param className the class of the management bean, of which
+   *                  an instance should be created.
+   * @param name the name to register the new bean with.  This may
+   *             be <code>null</code>.
+   * @param params the parameters for the bean's constructor, encapsulated
+   *               in a {@link MarshalledObject}.  If this parameter is
+   *               <code>null</code>, it will be judged equivalent to an
+   *               empty array.
+   * @param sig the signature of the constructor to use.  If this parameter
+   *            is <code>null</code>, it will be judged equivalent to an
+   *            empty array.
+   * @param delegationSubject an instance of {@link javax.security.auth.Subject}
+   *                          containing the delegation principles.  This may be
+   *                          {@code null} is authentication is used instead.
+   * @return an {@link ObjectInstance} containing the {@link ObjectName}
+   *         and Java class name of the created instance.
+   * @throws ReflectionException if an exception occurs in creating
+   *                             an instance of the bean.
+   * @throws InstanceAlreadyExistsException if a matching instance
+   *                                        already exists.
+   * @throws MBeanRegistrationException if an exception occurs in
+   *                                    calling the preRegister
+   *                                    method.
+   * @throws MBeanException if the bean's constructor throws an exception.
+   * @throws NotCompliantMBeanException if the created bean is not
+   *                                    compliant with the JMX specification.
+   * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
+   *                                    is thrown by the server due to a
+   *                                    <code>null</code> class name or object
+   *                                    name or if the object name is a pattern.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   */  
+  ObjectInstance createMBean(String className, ObjectName name,
+                            MarshalledObject params, String[] sig,
+                            Subject delegationSubject)
+    throws ReflectionException, InstanceAlreadyExistsException,
+          MBeanRegistrationException, MBeanException,
+          NotCompliantMBeanException, IOException;
+
+  /**
+   * <p>
+   * Handles {@link
+   * MBeanServerConnection#createMBean(String, ObjectName,
+   * ObjectName, Object[], String[])}.  The array of parameters is
+   * wrapped in a {@link MarshalledObject} so that it is deserialised
+   * using the bean's classloader.
+   * </p>
+   * <p>
+   * Instantiates a new instance of the specified management bean
+   * using the given constructor and registers it with the server
+   * under the supplied name.  The class is loaded using the
+   * given class loader.  If this argument is <code>null</code>,
+   * then the same class loader as was used to load the server
+   * is used. 
+   * </p>
+   * <p>
+   * If the name supplied is <code>null</code>, then the bean is
+   * expected to implement the {@link MBeanRegistration} interface.
+   * The {@link MBeanRegistration#preRegister preRegister} method
+   * of this interface will be used to obtain the name in this case.
+   * </p>
+   * 
+   * @param className the class of the management bean, of which
+   *                  an instance should be created.
+   * @param name the name to register the new bean with.  This may
+   *             be <code>null</code>.
+   * @param loaderName the name of the class loader.
+   * @param params the parameters for the bean's constructor, encapsulated
+   *               in a {@link MarshalledObject}.  If this parameter is
+   *               <code>null</code>, it will be judged equivalent to an
+   *               empty array.
+   * @param sig the signature of the constructor to use.  If this parameter
+   *            is <code>null</code>, it will be judged equivalent to an
+   *            empty array.
+   * @param delegationSubject an instance of {@link javax.security.auth.Subject}
+   *                          containing the delegation principles.  This may be
+   *                          {@code null} is authentication is used instead.
+   * @return an {@link ObjectInstance} containing the {@link ObjectName}
+   *         and Java class name of the created instance.
+   * @throws ReflectionException if an exception occurs in creating
+   *                             an instance of the bean.
+   * @throws InstanceAlreadyExistsException if a matching instance
+   *                                        already exists.
+   * @throws MBeanRegistrationException if an exception occurs in
+   *                                    calling the preRegister
+   *                                    method.
+   * @throws MBeanException if the bean's constructor throws an exception.
+   * @throws NotCompliantMBeanException if the created bean is not
+   *                                    compliant with the JMX specification.
+   * @throws InstanceNotFoundException if the specified class loader is not
+   *                                   registered with the server.
+   * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
+   *                                    is thrown by the server due to a
+   *                                    <code>null</code> class name or object
+   *                                    name or if the object name is a pattern.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   */
+  ObjectInstance createMBean(String className, ObjectName name,
+                            ObjectName loaderName, MarshalledObject params,
+                            String[] sig, Subject delegationSubject)
+    throws ReflectionException, InstanceAlreadyExistsException,
+          MBeanRegistrationException, MBeanException,
+          NotCompliantMBeanException, InstanceNotFoundException,
+          IOException;
+
+  /**
+   * <p>
+   * Handles {@link
+   * MBeanServerConnection#createMBean(String, ObjectName,
+   * ObjectName)} by instantiating a new instance of the specified
+   * management bean using the default constructor and registering
+   * it with the server under the supplied name.  The class is loaded
+   * using the given class loader.  If this argument is <code>null</code>,
+   * then the same class loader as was used to load the server
+   * is used.
+   * </p>
+   * <p>
+   * If the name supplied is <code>null</code>, then the bean is
+   * expected to implement the {@link MBeanRegistration} interface.
+   * The {@link MBeanRegistration#preRegister preRegister} method
+   * of this interface will be used to obtain the name in this case.
+   * </p>
+   * <p>
+   * This method is equivalent to calling {@link 
+   * #createMBean(String, ObjectName, ObjectName, Object[], String)
+   * <code>createMBean(className, name, loaderName, (Object[]) null,
+   * (String) null)</code>} with <code>null</code> parameters
+   * and signature.
+   * </p>
+   *
+   * @param className the class of the management bean, of which
+   *                  an instance should be created.
+   * @param name the name to register the new bean with.  This may
+   *             be <code>null</code>.
+   * @param loaderName the name of the class loader.
+   * @param delegationSubject an instance of {@link javax.security.auth.Subject}
+   *                          containing the delegation principles.  This may be
+   *                          {@code null} is authentication is used instead.
+   * @return an {@link ObjectInstance} containing the {@link ObjectName}
+   *         and Java class name of the created instance.
+   * @throws ReflectionException if an exception occurs in creating
+   *                             an instance of the bean.
+   * @throws InstanceAlreadyExistsException if a matching instance
+   *                                        already exists.
+   * @throws MBeanRegistrationException if an exception occurs in
+   *                                    calling the preRegister
+   *                                    method.
+   * @throws MBeanException if the bean's constructor throws an exception.
+   * @throws NotCompliantMBeanException if the created bean is not
+   *                                    compliant with the JMX specification.
+   * @throws InstanceNotFoundException if the specified class loader is not
+   *                                   registered with the server.
+   * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
+   *                                    is thrown by the server due to a
+   *                                    <code>null</code> class name or object
+   *                                    name or if the object name is a pattern.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   * @see #createMBean(String, ObjectName, ObjectName, MarshalledObject,
+   *                   String[], Subject)
+   */
+  ObjectInstance createMBean(String className, ObjectName name, 
+                            ObjectName loaderName, Subject delegationSubject)
+    throws ReflectionException, InstanceAlreadyExistsException,
+          MBeanRegistrationException, MBeanException,
+          NotCompliantMBeanException, InstanceNotFoundException,
+          IOException;
+
+  /**
+   * <p>
+   * Handles {@link
+   * MBeanServerConnection#createMBean(String, ObjectName)} by
+   * instantiating a new instance of the specified management bean
+   * using the default constructor and registering it with the server
+   * under the supplied name.  The class is loaded using the
+   * {@link javax.management.loading.ClassLoaderRepository default
+   * loader repository} of the server. 
+   * </p>
+   * <p>
+   * If the name supplied is <code>null</code>, then the bean is
+   * expected to implement the {@link MBeanRegistration} interface.
+   * The {@link MBeanRegistration#preRegister preRegister} method
+   * of this interface will be used to obtain the name in this case.
+   * </p>
+   * <p>
+   * This method is equivalent to calling {@link 
+   * #createMBean(String, ObjectName, Object[], String[])
+   * <code>createMBean(className, name, (Object[]) null,
+   * (String[]) null)</code>} with <code>null</code> parameters
+   * and signature.
+   * </p>
+   *
+   * @param className the class of the management bean, of which
+   *                  an instance should be created.
+   * @param name the name to register the new bean with.  This may
+   *             be <code>null</code>.
+   * @param delegationSubject an instance of {@link javax.security.auth.Subject}
+   *                          containing the delegation principles.  This may be
+   *                          {@code null} is authentication is used instead.
+   * @return an {@link ObjectInstance} containing the {@link ObjectName}
+   *         and Java class name of the created instance.
+   * @throws ReflectionException if an exception occurs in creating
+   *                             an instance of the bean.
+   * @throws InstanceAlreadyExistsException if a matching instance
+   *                                        already exists.
+   * @throws MBeanRegistrationException if an exception occurs in
+   *                                    calling the preRegister
+   *                                    method.
+   * @throws MBeanException if the bean's constructor throws an exception.
+   * @throws NotCompliantMBeanException if the created bean is not
+   *                                    compliant with the JMX specification.
+   * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
+   *                                    is thrown by the server due to a
+   *                                    <code>null</code> class name or object
+   *                                    name or if the object name is a pattern.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   * @see #createMBean(String, ObjectName, MarshalledObject, String[], Subject)
+   */
+  ObjectInstance createMBean(String className, ObjectName name,
+                            Subject delegationSubject)
+    throws ReflectionException, InstanceAlreadyExistsException,
+          MBeanRegistrationException, MBeanException,
+          NotCompliantMBeanException, IOException;
+
+  /**
+   * <p>
+   * Retrieves any waiting notifications from the server.  When notifications
+   * are requested using the {@link #addNotificationListeners(ObjectName[],
+   * MarshalledObject[], Subject[])} method, the server sets up an internal
+   * listener to receive notifications from the bean and buffer them.  When
+   * this method is called, these buffered notifications can be retrieved.
+   * </p>
+   * <p>
+   * The blocking behaviour of this method depends on the timeout value specified.
+   * If there are no waiting notifications in the buffer, a value of 0 will cause
+   * the method to return immediately.  Conversely, if the value is
+   * {@link Long#MAX_VALUE}, then it will wait indefinitely until a notification
+   * arrives. For any other value, it waits until a notification arrives or the
+   * number of milliseconds specified by the timeout value is exceeded.  The
+   * behaviour for a negative timeout value is undefined.
+   * </p>
+   * <p>
+   * For a notification to be returned, the following criteria must be fulfilled:
+   * </p>
+   * <ul>
+   * <li>the client must have previously requested notifications from at least
+   * one bean</li>
+   * <li>a bean from which notifications have been requested must have emitted
+   * a notification since the last call to this method</li>
+   * <li>the emitted notification must pass through any filters established
+   * when notifications were requested</li>
+   * <li>the sequence number of the notification must be greater than or equal
+   * to the specified sequence number (if non-negative)</li>
+   * </ul>
+   *
+   * @param sequenceNumber the sequence number of each notification returned
+   *                       must be greater than or equal to this value.  If
+   *                       the number is negative, this is interpreted as
+   *                       meaning the sequence number of the next notification
+   *                       and so all notifications are allowed through.
+   * @param maxNotifications the maximum number of notifications to return.
+   *                         This does not include any duplicates so the
+   *                         number of actual notifications returned may
+   *                         be larger.
+   * @param timeout the number of milliseconds to wait for a notification
+   *                if the buffer is empty.  <code>0</code> causes the
+   *                method to return immediately even if there are no
+   *                notifications available (non-blocking behaviour) while
+   *                a value of {@link Long#MAX_VALUE} causes it to wait
+   *                indefinitely (blocking behaviour).  The response to
+   *                a negative value is undefined.
+   * @return a {@link NotificationResult} object containing the buffered
+   *         notifications.
+   * @throws IOException if an I/O error occurs.
+   */
+  NotificationResult fetchNotifications(long sequenceNumber,
+                                       int maxNotifications,
+                                       long timeout)
+    throws IOException;
+
+  /**
+   * Handles {@link
+   * MBeanServerConnection#getAttribute(ObjectName, String)},
+   * returning the value of the supplied attribute from the specified
+   * management bean.
+   *
+   * @param bean the bean to retrieve the value from.
+   * @param name the name of the attribute to retrieve.
+   * @param delegationSubject an instance of {@link javax.security.auth.Subject}
+   *                          containing the delegation principles.  This may be
+   *                          {@code null} is authentication is used instead.
+   * @return the value of the attribute.
+   * @throws AttributeNotFoundException if the attribute could not be
+   *                                    accessed from the bean.
+   * @throws MBeanException if the management bean's accessor throws
+   *                        an exception.
+   * @throws InstanceNotFoundException if the bean can not be found.
+   * @throws ReflectionException if an exception was thrown in trying
+   *                             to invoke the bean's accessor.
+   * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
+   *                                    is thrown by the server due to a
+   *                                    <code>null</code> bean or attribute
+   *                                    name.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   * @see DynamicMBean#getAttribute(String)
+   */
+  Object getAttribute(ObjectName bean, String name, Subject delegationSubject)
+    throws MBeanException, AttributeNotFoundException,
+          InstanceNotFoundException, ReflectionException,
+          IOException;
+
+  /**
+   * Handles {@link
+   * MBeanServerConnection#getAttribute(ObjectName, String)},
+   * returning the values of the named attributes from the specified
+   * management bean.
+   *
+   * @param bean the bean to retrieve the value from.
+   * @param names the names of the attributes to retrieve.
+   * @param delegationSubject an instance of {@link javax.security.auth.Subject}
+   *                          containing the delegation principles.  This may be
+   *                          {@code null} is authentication is used instead.
+   * @return the values of the attributes.
+   * @throws InstanceNotFoundException if the bean can not be found.
+   * @throws ReflectionException if an exception was thrown in trying
+   *                             to invoke the bean's accessor.
+   * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
+   *                                    is thrown by the server due to a
+   *                                    <code>null</code> bean or attribute
+   *                                    name.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   * @see DynamicMBean#getAttributes(String[])
+   */
+  AttributeList getAttributes(ObjectName bean, String[] names,
+                             Subject delegationSubject)
+    throws InstanceNotFoundException, ReflectionException,
+          IOException;
+
+  /**
+   * Returns the unique identifier for this connection to the RMI
+   * server.  
+   *
+   * @return the connection ID.
+   * @throws IOException if an I/O error occurred.
+   */
+  String getConnectionId()
+    throws IOException;
+
+  /**
+   * Handles {@link
+   * MBeanServerConnection#getDefaultDomain()} by returning the default
+   * domain this server applies to beans that have no specified domain.
+   *
+   * @param delegationSubject an instance of {@link javax.security.auth.Subject}
+   *                          containing the delegation principles.  This may be
+   *                          {@code null} is authentication is used instead.
+   * @return the default domain.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   */
+  String getDefaultDomain(Subject delegationSubject)
+    throws IOException;
+
+  /**
+   * Handles {@link
+   * MBeanServerConnection#getDomains()} by returning an array
+   * containing all the domains used by beans registered with
+   * this server.  The ordering of the array is undefined.
+   *
+   * @param delegationSubject an instance of {@link javax.security.auth.Subject}
+   *                          containing the delegation principles.  This may be
+   *                          {@code null} is authentication is used instead.
+   * @return the list of domains.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   * @see ObjectName#getDomain()
+   */
+  String[] getDomains(Subject delegationSubject)
+    throws IOException;
+
+  /**
+   * Handles {@link
+   * MBeanServerConnection#getMBeanCount()} by returning the number of
+   * management beans registered with this server.
+   *
+   * @param delegationSubject an instance of {@link javax.security.auth.Subject}
+   *                          containing the delegation principles.  This may be
+   *                          {@code null} is authentication is used instead.
+   * @return the number of registered beans.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   */
+  Integer getMBeanCount(Subject delegationSubject)
+    throws IOException;
+
+  /**
+   * Handles {@link
+   * MBeanServerConnection#getMBeanInfo(ObjectName)} by returning
+   * information on the given management bean.
+   *
+   * @param name the name of the management bean.
+   * @param delegationSubject an instance of {@link javax.security.auth.Subject}
+   *                          containing the delegation principles.  This may be
+   *                          {@code null} is authentication is used instead.
+   * @return an instance of {@link MBeanInfo} for the bean.
+   * @throws IntrospectionException if an exception occurs in examining
+   *                                the bean.
+   * @throws InstanceNotFoundException if the bean can not be found.
+   * @throws ReflectionException if an exception occurs when trying
+   *                             to invoke {@link DynamicMBean#getMBeanInfo()}
+   *                             on the bean.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   * @see DynamicMBean#getMBeanInfo()
+   */
+  MBeanInfo getMBeanInfo(ObjectName name, Subject delegationSubject)
+    throws InstanceNotFoundException, IntrospectionException,
+          ReflectionException, IOException;
+
+  /**
+   * Handles {@link
+   * MBeanServerConnection#getObjectInstance(ObjectName)} by returning
+   * the {@link ObjectInstance} created for the specified management
+   * bean on registration.
+   *
+   * @param name the name of the bean.
+   * @param delegationSubject an instance of {@link javax.security.auth.Subject}
+   *                          containing the delegation principles.  This may be
+   *                          {@code null} is authentication is used instead.
+   * @return the corresponding {@link ObjectInstance} instance.
+   * @throws InstanceNotFoundException if the bean can not be found.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   * @see #createMBean(String, ObjectName, Subject)
+   */
+  ObjectInstance getObjectInstance(ObjectName name, Subject delegationSubject)
+    throws InstanceNotFoundException, IOException;
+
+  /**
+   * <p>
+   * Handles {@link
+   * MBeanServerConnection#invoke(ObjectName, String, Object[],
+   * String[])}.  The array of parameters is wrapped in a
+   * {@link MarshalledObject} so that it is deserialised
+   * using the bean's classloader.
+   * </p>
+   * <p>
+   * Invokes the supplied operation on the specified management
+   * bean.  The class objects specified in the signature are loaded
+   * using the same class loader as was used for the management bean.
+   *
+   * @param bean the management bean whose operation should be invoked.
+   * @param name the name of the operation to invoke.
+   * @param params the parameters for the bean's constructor, encapsulated
+   *               in a {@link MarshalledObject}.  If this parameter is
+   *               <code>null</code>, it will be judged equivalent to an
+   *               empty array.
+   * @param sig the signature of the constructor to use.  If this parameter
+   *            is <code>null</code>, it will be judged equivalent to an
+   *            empty array.  The class objects will be loaded using the
+   *            bean's classloader.
+   * @param delegationSubject an instance of {@link javax.security.auth.Subject}
+   *                          containing the delegation principles.  This may be
+   *                          {@code null} is authentication is used instead.
+   * @return the return value of the method.
+   * @throws InstanceNotFoundException if the bean can not be found.
+   * @throws MBeanException if the method invoked throws an exception.
+   * @throws ReflectionException if an exception is thrown in invoking the
+   *                             method.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   * @see DynamicMBean#invoke(String, Object[], String[])
+   */
+  Object invoke(ObjectName bean, String name, MarshalledObject params,
+               String[] sig, Subject delegationSubject)
+    throws InstanceNotFoundException, MBeanException,
+          ReflectionException, IOException;
+
+  /**
+   * <p>
+   * Handles {@link
+   * MBeanServerConnection#isInstanceOf(ObjectName, String) by
+   * returning true if the specified management bean is an instance
+   * of the supplied class.
+   * </p>
+   * <p>
+   * A bean, B, is an instance of a class, C, if either of the following
+   * conditions holds:
+   * </p>
+   * <ul>
+   * <li>The class name in B's {@link MBeanInfo} is equal to the supplied
+   * name.</li>
+   * <li>Both the class of B and C were loaded by the same class loader,
+   * and B is assignable to C.</li>
+   * </ul>
+   * 
+   * @param name the name of the management bean.
+   * @param className the name of the class to test if <code>name</code> is
+   *                  an instance of.
+   * @param delegationSubject an instance of {@link javax.security.auth.Subject}
+   *                          containing the delegation principles.  This may be
+   *                          {@code null} is authentication is used instead.
+   * @return true if either B is directly an instance of the named class,
+   *         or B is assignable to the class, given that both it and B's
+   *         current class were loaded using the same class loader.
+   * @throws InstanceNotFoundException if the bean can not be found.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   */
+  boolean isInstanceOf(ObjectName name, String className,
+                      Subject delegationSubject)
+    throws InstanceNotFoundException, IOException;
+
+  /**
+   * Handles {@link
+   * MBeanServerConnection#isRegistered(ObjectName) by returning
+   * true if the specified management bean is registered with
+   * the server.
+   *
+   * @param name the name of the management bean.
+   * @param delegationSubject an instance of {@link javax.security.auth.Subject}
+   *                          containing the delegation principles.  This may be
+   *                          {@code null} is authentication is used instead.
+   * @return true if the bean is registered.
+   * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
+   *                                    is thrown by the server due to a
+   *                                    <code>null</code> bean name.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   */
+  boolean isRegistered(ObjectName name, Subject delegationSubject)
+    throws IOException;
+
+  /**
+   * <p>
+   * Handles {@link
+   * MBeanServerConnection#queryMBeans(ObjectName, QueryExp)}.
+   * The query expression is wrapped in a {@link MarshalledObject}
+   * so that it is deserialised using the bean's classloader.
+   * </p>
+   * <p>
+   * Returns a set of {@link ObjectInstance}s matching the specified
+   * criteria.  The full set of beans registered with the server
+   * are passed through two filters:
+   * </p>
+   * <ol>
+   * <li>Pattern matching is performed using the supplied
+   * {@link ObjectName}.</li>
+   * <li>The supplied query expression is applied.</li>
+   * </ol>
+   * <p>
+   * If both the object name and the query expression are <code>null</code>,
+   * or the object name has no domain and no key properties,
+   * no filtering will be performed and all beans are returned. 
+   * </p>
+   *
+   * @param name an {@link ObjectName} to use as a filter.
+   * @param query a query expression to apply to each of the beans that match
+   *              the given object name, encapsulated in a
+   *              {@link MarshalledObject}.  If a <code>null</code> value is
+   *              encapsulated, then the beans will only be filtered using
+   *              pattern matching on the supplied {@link ObjectName}.
+   * @param delegationSubject an instance of {@link javax.security.auth.Subject}
+   *                          containing the delegation principles.  This may be
+   *                          {@code null} is authentication is used instead.
+   * @return a set of {@link ObjectInstance}s matching the filtered beans.
+   *         This is empty if no beans survived the filters.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   */
+  Set<ObjectInstance> queryMBeans(ObjectName name, MarshalledObject query,
+                                 Subject delegationSubject)
+    throws IOException;
+  
+  /**
+   * <p>
+   * Handles {@link
+   * MBeanServerConnection#queryNames(ObjectName, QueryExp)}.
+   * The query expression is wrapped in a {@link MarshalledObject}
+   * so that it is deserialised using the bean's classloader.
+   * </p>
+   * <p>
+   * Returns a set of {@link ObjectName}s matching the specified
+   * criteria.  The full set of beans registered with the server
+   * are passed through two filters:
+   * </p>
+   * <ol>
+   * <li>Pattern matching is performed using the supplied
+   * {@link ObjectName}.</li>
+   * <li>The supplied query expression is applied.</li>
+   * </ol>
+   * <p>
+   * If both the object name and the query expression are <code>null</code>,
+   * or the object name has no domain and no key properties,
+   * no filtering will be performed and all beans are returned. 
+   * </p>
+   *
+   * @param name an {@link ObjectName} to use as a filter.
+   * @param query a query expression to apply to each of the beans that match
+   *              the given object name, encapsulated in a
+   *              {@link MarshalledObject}.  If a <code>null</code> value is
+   *              encapsulated, then the beans will only be filtered using
+   *              pattern matching on the supplied {@link ObjectName}.
+   * @param delegationSubject an instance of {@link javax.security.auth.Subject}
+   *                          containing the delegation principles.  This may be
+   *                          {@code null} is authentication is used instead.
+   * @return a set of {@link ObjectName}s matching the filtered beans.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   */
+  Set<ObjectName> queryNames(ObjectName name, MarshalledObject query,
+                            Subject delegationSubject)
+    throws IOException;
+
+  /**
+   * <p>
+   * Handles {@link
+   * MBeanServerConnection#removeNotificationListener(ObjectName,
+   * ObjectName, NotificationFilter, Object)}. Both the filter and
+   * the handback object are wrapped in a {@link MarshalledObject}
+   * so that they are deserialised using the bean's classloader.
+   * </p>
+   * <p>
+   * Removes the specified listener from the list of recipients
+   * of notifications from the supplied bean.  Only the first instance with
+   * the supplied filter and passback object is removed.
+   * <code>null</code> is used as a valid value for these parameters,
+   * rather than as a way to remove all registration instances for
+   * the specified listener; for this behaviour instead, see
+   * {@link #removeNotificationListener(ObjectName, NotificationListener)}.
+   * </p>
+   *
+   * @param name the name of the management bean from which the
+   *             listener should be removed.
+   * @param listener the listener to remove.
+   * @param filter a wrapper containing the filter of the listener
+   *               to remove.
+   * @param passback a wrapper containing the handback object of the
+   *                 listener to remove.
+   * @param delegationSubject a {@link javax.security.auth.Subject} instance
+   *                          containing the delegation principles or
+   *                          {@code null} if authentication is used.
+   * @throws InstanceNotFoundException if the bean can not be found.
+   * @throws ListenerNotFoundException if the specified listener
+   *                                   is not registered with the bean.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   * @see #addNotificationListener(ObjectName, NotificationListener,
+   *                               MarshalledObject, MarshalledObject, Subject)
+   * @see NotificationEmitter#removeNotificationListener(NotificationListener,
+   *                                                     NotificationFilter,
+   *                                                     Object)
+   */
+  void removeNotificationListener(ObjectName name,
+                                 ObjectName listener,
+                                 MarshalledObject filter,
+                                 MarshalledObject passback,
+                                 Subject delegationSubject)
+    throws InstanceNotFoundException, ListenerNotFoundException,
+          IOException;
+
+  /**
+   * Handles {@link
+   * MBeanServerConnection#removeNotificationListener(ObjectName,
+   * ObjectName)} by removing the specified listener from the list
+   * of recipients of notifications from the supplied bean.  This
+   * includes all combinations of filters and passback objects
+   * registered for this listener.  For more specific removal of
+   * listeners, see {@link #removeNotificationListener(ObjectName,
+   * ObjectName,MarshalledObject,MarshalledObject,Subject)}
+   *
+   * @param name the name of the management bean from which the
+   *             listener should be removed.
+   * @param listener the name of the listener to remove.
+   * @param delegationSubject a {@link javax.security.auth.Subject} instance
+   *                          containing the delegation principles or
+   *                          {@code null} if authentication is used.
+   * @throws InstanceNotFoundException if a name doesn't match a registered
+   *                                   bean.
+   * @throws ListenerNotFoundException if the specified listener
+   *                                   is not registered with the bean.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   * @see #addNotificationListener(ObjectName, NotificationListener,
+   *                               MarshalledObject, MarshalledObject, Subject)
+   * @see NotificationBroadcaster#removeNotificationListener(NotificationListener)
+   */
+  void removeNotificationListener(ObjectName name, ObjectName listener,
+                                 Subject delegationSubject)
+    throws InstanceNotFoundException, ListenerNotFoundException,
+          IOException;
+
+  /**
+   * Removes one or more {@link NotificationListener}s from the specified
+   * management bean.  This method corresponds to
+   * {@link #addNotificationListeners(ObjectName[], MarshalledObject[],
+   * Subject)} and provides a different way of handling
+   * MBeanServerConnection#removeNotificationListener(ObjectName,
+   * ObjectName)} and
+   * {@link MBeanServerConnection#removeNotificationListener(ObjectName,
+   * ObjectName, NotificationFilter, Object)} by using the integer
+   * identifiers provided by the
+   * {@link #addNotificationListeners(ObjectName[], MarshalledObject[],
+   * Subject)} method to select the listeners to remove.
+   * 
+   * @param name the name of the management bean from which the
+   *             listeners should be removed.
+   * @param listenerIds the identifiers of the listeners to remove.
+   * @param delegationSubject a {@link javax.security.auth.Subject} instance
+   *                          containing the delegation principles or
+   *                          {@code null} if authentication is used.
+   * @throws InstanceNotFoundException if a name doesn't match a registered
+   *                                   bean.
+   * @throws ListenerNotFoundException if the specified listener
+   *                                   is not registered with the bean.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   * @throws IllegalArgumentException if either <code>name</code>,
+   *                                  <code>listenerIds</code> or an element
+   *                                  of <code>listenerIds</code>
+   *                                  is <code>null</code>.
+   * @see #addNotificationListeners(ObjectName[], MarshalledObject[], Subject)
+   */
+  void removeNotificationListeners(ObjectName name, Integer[] listenerIds,
+                                  Subject delegationSubject)
+    throws InstanceNotFoundException, ListenerNotFoundException,
+          IOException;
+
+  /**
+   * Handles {@link
+   * MBeanServerConnection#setAttribute(ObjectName, Attribute)}
+   * by setting the value of the specified attribute of the supplied
+   * management bean.  The attribute is wrapped in a
+   * {@link MarshalledObject} so that it is deserialised using the
+   * bean's classloader.
+   *
+   * @param name the name of the management bean.
+   * @param attribute the attribute to set, encapsulated in a
+   *                  {@link MarshalledObject}.
+   * @param delegationSubject a {@link javax.security.auth.Subject} instance
+   *                          containing the delegation principles or
+   *                          {@code null} if authentication is used.
+   * @throws InstanceNotFoundException if the bean can not be found.
+   * @throws AttributeNotFoundException if the attribute does not
+   *                                    correspond to an attribute
+   *                                    of the bean.
+   * @throws InvalidAttributeValueException if the value is invalid
+   *                                        for this particular
+   *                                        attribute of the bean.
+   * @throws MBeanException if setting the attribute causes
+   *                        the bean to throw an exception (which
+   *                        becomes the cause of this exception).
+   * @throws ReflectionException if an exception occurred in trying
+   *                             to use the reflection interface
+   *                             to lookup the attribute.  The
+   *                             thrown exception is the cause of
+   *                             this exception.
+   * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
+   *                                    is thrown by the server due to a
+   *                                    <code>null</code> bean or attribute
+   *                                    name.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   * @see #getAttribute(ObjectName, String, Subject)
+   * @see javax.management.DynamicMBean#setAttribute(Attribute)
+   */
+  void setAttribute(ObjectName name, MarshalledObject attribute,
+                   Subject delegationSubject)
+    throws InstanceNotFoundException, AttributeNotFoundException,
+          InvalidAttributeValueException, MBeanException,
+          ReflectionException, IOException;
+
+  /**
+   * Handles {@link
+   * MBeanServerConnection#setAttributes(ObjectName, AttributeList)}
+   * by setting the value of each of the specified attributes
+   * of the supplied management bean to that specified by
+   * the {@link Attribute} object.  The returned list contains
+   * the attributes that were set and their new values.
+   * The attribute list is wrapped in a {@link MarshalledObject} so
+   * that it is deserialised using the bean's classloader.
+   *
+   * @param name the name of the management bean.
+   * @param attributes the attributes to set, encapsulated in a
+   *                   {@link MarshalledObject}.
+   * @param delegationSubject a {@link javax.security.auth.Subject} instance
+   *                          containing the delegation principles or
+   *                          {@code null} if authentication is used.
+   * @return a list of the changed attributes.
+   * @throws InstanceNotFoundException if the bean can not be found.
+   * @throws ReflectionException if an exception occurred in trying
+   *                             to use the reflection interface
+   *                             to lookup the attribute.  The
+   *                             thrown exception is the cause of
+   *                             this exception.
+   * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
+   *                                    is thrown by the server due to a
+   *                                    <code>null</code> bean or attribute
+   *                                    list.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   * @see #getAttributes(ObjectName, String[])
+   * @see DynamicMBean#setAttributes(AttributeList)
+   */
+  AttributeList setAttributes(ObjectName name, MarshalledObject attributes,
+                             Subject delegationSubject)
+    throws InstanceNotFoundException, ReflectionException,
+          IOException;
+
+  /**
+   * Handles {@link
+   * MBeanServerConnection#unregisterMBean(ObjectName)} by unregistering
+   * the specified management bean.  Following this operation,
+   * the bean instance is no longer accessible from the server via this
+   * name.  Prior to unregistering the bean, the
+   * {@link MBeanRegistration#preDeregister()} method will be called if
+   * the bean implements the {@link MBeanRegistration} interface.
+   *
+   * @param name the name of the management bean.
+   * @param delegationSubject a {@link javax.security.auth.Subject} instance
+   *                          containing the delegation principles or
+   *                          {@code null} if authentication is used.
+   * @throws InstanceNotFoundException if the bean can not be found.
+   * @throws MBeanRegistrationException if an exception occurs in
+   *                                    calling the preDeregister
+   *                                    method.
+   * @throws RuntimeOperationsException if an {@link IllegalArgumentException}
+   *                                    is thrown by the server due to a
+   *                                    <code>null</code> bean name or a
+   *                                    request being made to unregister the
+   *                                    {@link MBeanServerDelegate} bean.
+   * @throws SecurityException if the client or delegated subject (if any) does
+   *                           not have permission to invoke this operation.
+   * @throws IOException if an I/O error occurred in communicating with
+   *                     the bean server.
+   */ 
+  void unregisterMBean(ObjectName name, Subject delegationSubject)
+    throws InstanceNotFoundException, MBeanRegistrationException,
+          IOException;
+
+}
diff --git a/libjava/classpath/javax/management/remote/rmi/RMIServer.java b/libjava/classpath/javax/management/remote/rmi/RMIServer.java
new file mode 100644 (file)
index 0000000..d862372
--- /dev/null
@@ -0,0 +1,89 @@
+/* RMIServer.java -- RMI object for connecting to an RMI JMX connector.
+   Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.management.remote.rmi;
+
+import java.io.IOException;
+
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+
+/**
+ * RMI interface for obtaining an instance of an
+ * {@link RMIConnection}.  An implementation of this
+ * interface exists for each RMI connector.
+ *
+ * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @since 1.5
+ */
+public interface RMIServer
+  extends Remote
+{
+
+  /**
+   * Returns the version of the RMI connection protocol used
+   * by this server.  The returned string takes the form of
+   * <emph>protocol-version implementation-name</emph> where
+   * <emph>protocol-version</emph> is a series of two or more
+   * non-negative integers, separated by a decimal point (.)
+   * (currently {@code 1.0}) and <emph>implementation-name</emph>
+   * is the string {@code "GNU Classpath"} followed by the version
+   * of GNU Classpath in use.
+   *
+   * @return the string specified above.
+   * @throws RemoteException if there is a problem with the transfer
+   *                         of the string via RMI.
+   */
+  String getVersion()
+    throws RemoteException;
+
+  /**
+   * Constructs and returns a new RMI connection using the specified
+   * authentication credentials.  Each client calls this method to
+   * obtain a connection to the server.
+   *
+   * @param credentials a user-defined object passed to the server
+   *                    to authenticate the client.  May be {@code null}.
+   * @return the new connection.
+   * @throws IOException if the new connection can not be created or
+   *                     exported, or an error occurs in the RMI transmission.
+   * @throws SecurityException if the client could not be authenticated
+   *                           correctly using the supplied credientials.
+   */
+  RMIConnection newClient(Object credentials)
+    throws IOException;
+}
index 7d68162c96a241c79bb6f7026db9f1f80c957747..c02cb9e7b5ceb3cea99a446afa13a985af5b0f87 100644 (file)
@@ -38,7 +38,6 @@ exception statement from your version. */
 
 package javax.net.ssl;
 
-import java.io.IOException;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.security.Principal;
index 997dcbc37797112d344ec90bcad5a3d58ef358be..503c06c0290ee05b1e5d9c41ae0caf6c8930f7f8 100644 (file)
@@ -40,8 +40,6 @@ package javax.print.attribute.standard;
 
 import java.util.Collection;
 import java.util.HashSet;
-import java.util.Iterator;
-
 import javax.print.attribute.Attribute;
 import javax.print.attribute.PrintJobAttribute;
 
index be3f1567812ffd123f70a149f85cb1dc67aed54a..f2fa100a05cb719fe2579d6d25eefb83d8feca14 100644 (file)
@@ -214,7 +214,7 @@ public class MediaSize extends Size2DSyntax
 
     for (int i = 0; i < mediaCache.size(); i++)
       {
-        MediaSize size = (MediaSize) mediaCache.get(i);
+        MediaSize size = mediaCache.get(i);
         int dist = (Math.abs(size.getXMicrometers() - xMicro) 
                     + Math.abs(size.getYMicrometers() - yMicro));
 
@@ -240,7 +240,7 @@ public class MediaSize extends Size2DSyntax
   {
     for (int i = 0; i < mediaCache.size(); i++)
       {
-       MediaSize size = (MediaSize) mediaCache.get(i);
+       MediaSize size = mediaCache.get(i);
        
        if (size.getMediaSizeName().equals(media))
          return size;
index c58dd53795ef6d1ae656b56f6179b600f820d061..3e77e181e5586856baaef91a8b093e088d691254 100644 (file)
@@ -178,7 +178,7 @@ public final class PrinterStateReasons
     if (severity == null)
       throw new NullPointerException("severity is null");
     
-    return super.put((PrinterStateReason) reason, (Severity) severity);
+    return super.put(reason, severity);
   }   
   
   /**
index 2849707632b6cf2607fa3fbbf8d2898214cd1bde..f376bedfe80d9ef55dc6687d523839273fcd6133 100644 (file)
@@ -84,7 +84,7 @@ public interface PortableRemoteObjectDelegate
    * unexported. Also, such object cannot be collected by garbage collector.
    * This is usually impemented via {@link Util#unexportObject}
    * 
-   * @param object the object to export.
+   * @param obj the object to export.
    * 
    * @throws RemoteException
    */
@@ -113,7 +113,7 @@ public interface PortableRemoteObjectDelegate
    * returned stub is also connected to the same ORB. If the target is
    * unconnected, the returned stub is unconnected.
    * 
-   * @param target a server side object.
+   * @param obj a server side object.
    * @return a stub object that can be used to access that server object.
    * 
    * @throws NoSuchObjectException if a stub cannot be located for the given
@@ -127,7 +127,7 @@ public interface PortableRemoteObjectDelegate
    * object to becomes available for garbage collection. This is usually
    * impemented via {@link Util#unexportObject}
    * 
-   * @param object the object to unexport.
+   * @param obj the object to unexport.
    * 
    * @throws NoSuchObjectException if the passed object is not currently
    * exported.
index cfd3d7bd686b0dd74f52f0c359b5d2d2188f54ca..04b6f63a6fb747735490db0b94eaff75c3ab466e 100644 (file)
@@ -332,7 +332,7 @@ public class Util
    * </tr>
    * </table>
    * 
-   * @param ex an exception that was thrown on a server side implementation.
+   * @param exception an exception that was thrown on a server side implementation.
    * 
    * @return the corresponding RemoteException unless it is a RuntimeException.
    * 
index cacb925810bd7d29f37d4117afce47a2f1ea4de8..79d740e7b0a66f2edc7968ae0ad26c2e6be6faec 100644 (file)
@@ -243,7 +243,7 @@ public interface UtilDelegate
    * </tr>
    * </table>
    * 
-   * @param ex an exception that was thrown on a server side implementation.
+   * @param e an exception that was thrown on a server side implementation.
    * 
    * @return the corresponding RemoteException unless it is a RuntimeException.
    * 
@@ -266,7 +266,7 @@ public interface UtilDelegate
    * 
    * @param output a stream to write to, must be
    * org.omg.CORBA_2_3.portable.OutputStream
-   * @param object an object to write.
+   * @param obj an object to write.
    */
   void writeRemoteObject(OutputStream output, Object obj);
 
index c4213efdcfb09d07e33203ac46de392d503a54dc..acc44aa2f4a2f9cd1bb62cde1cc2b8f765673b3b 100644 (file)
@@ -114,7 +114,7 @@ public interface ValueHandler
    * When the value provides the writeReplace method, the result of this method
    * is written. Otherwise, the value itself is written.
    * 
-   * @param the value that should be written to the stream.
+   * @param value the value that should be written to the stream.
    * 
    * @return the value that will be actually written to the stream.
    */
index 5bb6b11261311d337084b91539e35dc3c60212e9..db2ea6b8069772560ac9fb6cb98e506c9808c91c 100644 (file)
@@ -97,10 +97,10 @@ public class PortableRemoteObject
    * <code>a_source</code> parameter. The a_target is connected to the same
    * ORB (and, if applicable, to the same {@link POA}) as the a_source.
    * 
-   * @param a_target the target to connect to ORB, must be an instance of either
+   * @param target the target to connect to ORB, must be an instance of either
    * {@link ObjectImpl} (Stubs and old-style ties) or {@link Tie}.
    * 
-   * @param a_source the object, providing the connection information, must be
+   * @param source the object, providing the connection information, must be
    * an instance of either {@link ObjectImpl} (Stubs and old-style ties) or
    * {@link Servant} (the next-generation Ties supporting {@link POA}).
    * 
index 1fed5824cd48373ab508508c4fcd19d1b89d27da..3a4c6cebeffe9f572f24b1e51cf2484c76224f1b 100644 (file)
@@ -50,7 +50,7 @@ import java.rmi.server.RMIClientSocketFactory;
  * SslRMIClientSocketFactory
  *
  * This class implements an RMIClientSocketFactory for SSL sockets.
- * it uses the defeult SSLClientSocketFactory.
+ * it uses the default SSLClientSocketFactory.
  *
  * This class can optionally use the following system properties, if set: 
  * <code>javax.rmi.ssl.client.enabledCipherSuites</code>
@@ -92,17 +92,19 @@ public class SslRMIClientSocketFactory
 
   private String[] getProp(String p)
   {
-    StringTokenizer st;
+    String o;
     try
       {
-       String o = (String)System.getProperty( p );
-       st = new StringTokenizer( o, "," );
+       o = System.getProperty(p);
       }
     catch(SecurityException se)
       {
        return null;
       }
 
+    if (o == null)
+      return null;
+    StringTokenizer st = new StringTokenizer( o, "," );
     int n = st.countTokens();
     if( n < 1 )
       return null;
index 0ae23f101fa70a410358eb291ad4a1323cf1b2d4..e54d453b8df4d049df278af2a332701b8f418898 100644 (file)
@@ -258,7 +258,7 @@ public class JFrame extends Frame
   {
     // If we're adding in the initialization stage use super.add.
     // Otherwise pass the add onto the content pane.
-    if (isRootPaneCheckingEnabled())
+    if (isRootPaneCheckingEnabled() && comp != rootPane)
       getContentPane().add(comp,constraints,index);
     else
       super.addImpl(comp, constraints, index);
index 332ec74247ddef72947522b8b43c8d27c0e69e84..c0365bc385be1198868293c083ce90012867a110 100644 (file)
@@ -3105,7 +3105,7 @@ public class JTree extends JComponent implements Scrollable, Accessible
   {
     while (toRemove.hasMoreElements())
       {
-        TreePath current = (TreePath) toRemove.nextElement();
+        TreePath current = toRemove.nextElement();
         Enumeration descendants = getDescendantToggledPaths(current);
         
         while (descendants.hasMoreElements())
index 773371489d9a23873afea4d7012d7bfdaa13e4ef..bb88ebfcdcea99c8d6646174f08aa272e49ebdb9 100644 (file)
@@ -59,8 +59,6 @@ import java.util.Iterator;
 import java.util.Set;
 import java.util.WeakHashMap;
 
-import javax.swing.text.JTextComponent;
-
 /**
  * <p>The repaint manager holds a set of dirty regions, invalid components,
  * and a double buffer surface.  The dirty regions and invalid components
index 2e5963f443f13d08079789a61aca984d8460336f..276697475f0bcacbe9d1eb69ab7fa4de2e9bfdd2 100644 (file)
@@ -149,7 +149,7 @@ public class TransferHandler implements Serializable
           Object o;
           try
             {
-              o = getter.invoke(component, null);
+              o = getter.invoke(component);
               return o;
             }
           catch (Exception ex)
index de82bd47bb6490bbe38131da79c63a6cc99a9f05..b1fb727feeb2f52bec5ba8d5d428ecc725eaa77d 100644 (file)
@@ -40,10 +40,8 @@ package javax.swing.plaf.basic;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.io.File;
-import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
-import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Vector;
index e1f8e4b28ba2f2b469cbd66f1bafaae7145bb32f..4b6e2f79856bf2541def92c942b74f1d018e9fb0 100644 (file)
@@ -42,7 +42,6 @@ import java.awt.event.ActionEvent;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
-import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.io.File;
 import java.io.IOException;
index 4c270682d8861edce43762414ddc39f739ac2163..e73c39bf6ac3bce530989c86707434f46188aab2 100644 (file)
@@ -642,7 +642,7 @@ public class BasicGraphicsUtils
         fmet = g.getFontMetrics();
         g.fillRect(
           /* x */ x + fmet.stringWidth(text.substring(0, underlinedIndex)),
-          /* y */ y + fmet.getDescent() - 1,
+          /* y */ y + 1,
           /* width */ fmet.charWidth(text.charAt(underlinedIndex)),
           /* height */ 1);
       }
index ae992594d6b35412939091e5df41e265e72234ef..045740df6095c053752d564e02d34e720a2cb26f 100644 (file)
@@ -59,7 +59,6 @@ import javax.swing.JLabel;
 import javax.swing.KeyStroke;
 import javax.swing.LookAndFeel;
 import javax.swing.SwingUtilities;
-import javax.swing.UIManager;
 import javax.swing.plaf.ComponentUI;
 import javax.swing.plaf.LabelUI;
 import javax.swing.text.View;
index 3952ea18d17d1e4d2d551f93f02914147be8ed53..1c28a5f961d0bd2e12e0d094f29a84201f9905e2 100644 (file)
@@ -278,14 +278,6 @@ public class BasicTreeUI
    */
   static Icon nullIcon;
 
-  /**
-   * The special value of the mouse event is sent indicating that this is not
-   * just the mouse click, but the mouse click on the selected node. Sending
-   * such event forces to start the cell editing session.
-   */
-  static final MouseEvent EDIT = new MouseEvent(new Label(), 7, 7, 7, 7, 7, 7,
-                                                false);
-
   /**
    * Creates a new BasicTreeUI object.
    */
index a55dc0916657f512c7fce505c1f034fb575b0346..8678f680d33f9fda7fd8e303078d85953708a032 100644 (file)
@@ -38,7 +38,6 @@ exception statement from your version. */
 
 package javax.swing.plaf.metal;
 
-import java.awt.Color;
 import java.awt.Dimension;
 import java.awt.Graphics;
 import java.awt.Rectangle;
index a9bbe9a7848ea27a2cd92dc6553d4c63e251ac24..7fecefe0b4ca22c9b8ce931e0ca7cab7bab1b11b 100644 (file)
@@ -43,7 +43,6 @@ import java.awt.Component;
 import java.awt.Rectangle;
 import java.io.Serializable;
 
-import javax.swing.BorderFactory;
 import javax.swing.JLabel;
 import javax.swing.JTable;
 import javax.swing.UIManager;
index e4e7201b18473997b00e6e3acb629dfd58092031..717ea98684a55e9512592c4cce66ff3aaa5e8f2e 100644 (file)
@@ -243,7 +243,7 @@ public class DefaultTableColumnModel
     int columnCount = tableColumns.size();
     for (int i = 0; i < columnCount; i++) 
     {
-      TableColumn tc = (TableColumn) tableColumns.get(i);
+      TableColumn tc = tableColumns.get(i);
       if (identifier.equals(tc.getIdentifier()))
         return i;
     }
@@ -264,7 +264,7 @@ public class DefaultTableColumnModel
    */
   public TableColumn getColumn(int columnIndex)
   {
-    return (TableColumn) tableColumns.get(columnIndex);
+    return tableColumns.get(columnIndex);
   }
 
   /**
@@ -299,7 +299,7 @@ public class DefaultTableColumnModel
   {    
     for (int i = 0; i < tableColumns.size(); ++i)
       {
-        int w = ((TableColumn) tableColumns.get(i)).getWidth();
+        int w = (tableColumns.get(i)).getWidth();
         if (0 <= x && x < w)
           return i;
         else
@@ -654,7 +654,7 @@ public class DefaultTableColumnModel
         totalColumnWidth = 0;
         for (int i = 0; i < tableColumns.size(); ++i)
           {
-            totalColumnWidth += ((TableColumn) tableColumns.get(i)).getWidth();
+            totalColumnWidth += tableColumns.get(i).getWidth();
           }
       }
   }
index 4ed8aa2d26426c775f58736be9d874f23c753be3..341579e3df8ace86d5a6aad625d2bbec9be6a907 100644 (file)
@@ -1158,6 +1158,9 @@ public class DefaultStyledDocument extends AbstractDocument implements
 
     private void insertElement(ElementSpec spec)
     {
+      if (elementStack.isEmpty())
+        return;
+      
       Edit edit = (Edit) elementStack.peek();
       switch (spec.getType())
         {
index 1e418d2e06a1c8a048a0c4785b5ccd39de68173d..6bc2a382c5225b0c3210c6adcdd9c2214762ee87 100644 (file)
@@ -736,7 +736,6 @@ public class GlyphView extends View implements TabableView, Cloneable
     if (bg != null)
       {
         g.setColor(bg);
-        System.err.println("fill background: " + bg);
         g.fillRect(r.x, r.y, r.width, r.height);
       }
 
index fb4ac65d835297a426e8b6545243ada24a6abcb0..f2795e2c38a6c6713f6a2e6024bc1f05f9496d40 100644 (file)
@@ -38,9 +38,6 @@ exception statement from your version. */
 
 package javax.swing.text;
 
-import java.awt.Color;
-import java.awt.Graphics;
-import java.awt.Rectangle;
 import java.awt.Shape;
 
 import javax.swing.SizeRequirements;
index d42951a05eca375663b141507114d8df4a1d1cd1..acb2c04acc2af0d3013b423a7618dc8afc687360 100644 (file)
@@ -321,7 +321,7 @@ public class MinimalHTMLWriter extends AbstractWriter
       }
     else
       { // What else to do here?
-       Style s = (Style)doc.getStyle("default");
+       Style s = doc.getStyle("default");
        if(s != null)
          writeStyle( s );
       }
index 619c24e477cdcb78df029f36d008ee1155562dc5..637ece15149a52671942b28e94088cbf84a711bd 100644 (file)
@@ -38,7 +38,6 @@ exception statement from your version. */
 
 package javax.swing.text.html;
 
-import javax.swing.ButtonGroup;
 import javax.swing.JToggleButton.ToggleButtonModel;
 
 class ResetableToggleButtonModel
index ae3c184f15353577412c95b407b0eb8d86c80cb3..09b50fee7de8a2c594391b92bdad0b1d902a5365 100644 (file)
@@ -181,7 +181,7 @@ public class DTD
   public static DTD getDTD(String name)
                     throws IOException
   {
-    DTD d = (DTD) dtdHash.get(name);
+    DTD d = dtdHash.get(name);
 
     if (d == null)
       {
@@ -210,7 +210,7 @@ public class DTD
    */
   public Element getElement(int index)
   {
-    return (Element) elements.get(index);
+    return elements.get(index);
   }
 
   /**
@@ -235,7 +235,7 @@ public class DTD
    */
   public Entity getEntity(String entity_name)
   {
-    return (Entity) entityHash.get(entity_name);
+    return entityHash.get(entity_name);
   }
 
   /**
index cf294c748db2cc84ed3c6e167c9fbd71879587c9..1d59df237b8ff8a05eb6e9bb0cf10e56370ed75c 100644 (file)
@@ -41,8 +41,6 @@ package javax.swing.text.html.parser;
 
 import gnu.javax.swing.text.html.parser.support.gnuStringIntMapper;
 
-import java.io.Serializable;
-
 /**
  * <p>Stores information, obtained by parsing SGML DTL
  * &lt;!ENTITY % .. &gt; tag.</p>
index 9f587946fc2524a017bda46c3526f9ba3e95f5e7..a1afe781324c1dbae1d14d8410ba31299fc23b78 100644 (file)
@@ -202,7 +202,7 @@ public class DefaultMutableTreeNode
    */
   public void remove(int index)
   {
-    MutableTreeNode child = (MutableTreeNode) children.remove(index);
+    MutableTreeNode child = children.remove(index);
     child.setParent(null);
   }
 
@@ -553,7 +553,7 @@ public class DefaultMutableTreeNode
               {
                 node = node.getParent();
                 size = node.getChildCount();
-                index = ((Integer) stack.pop()).intValue() + 1;
+                index = stack.pop().intValue() + 1;
                 current--;
               }
             while (index >= size
@@ -1052,10 +1052,10 @@ public class DefaultMutableTreeNode
   /** Provides an enumeration of a tree in breadth-first traversal
    * order.
    */
-  static class BreadthFirstEnumeration implements Enumeration
+  static class BreadthFirstEnumeration implements Enumeration<TreeNode>
   {
 
-      LinkedList queue = new LinkedList();
+      LinkedList<TreeNode> queue = new LinkedList<TreeNode>();
 
       BreadthFirstEnumeration(TreeNode node)
       {
@@ -1067,14 +1067,16 @@ public class DefaultMutableTreeNode
           return !queue.isEmpty();
       }
 
-      public Object nextElement()
+      @SuppressWarnings("unchecked")
+      public TreeNode nextElement()
       {
           if (queue.isEmpty())
               throw new NoSuchElementException("No more elements left.");
 
-          TreeNode node = (TreeNode) queue.removeFirst();
+          TreeNode node = queue.removeFirst();
 
-          Enumeration children = node.children();
+          Enumeration<TreeNode> children =
+           (Enumeration<TreeNode>) node.children();
           while (children.hasMoreElements())
               queue.add(children.nextElement());
 
@@ -1085,16 +1087,18 @@ public class DefaultMutableTreeNode
   /** Provides an enumeration of a tree traversing it
    * preordered.
    */
-  static class PreorderEnumeration implements Enumeration
+  static class PreorderEnumeration implements Enumeration<TreeNode>
   {
          TreeNode next;
 
-      Stack childrenEnums = new Stack();
+      Stack<Enumeration<TreeNode>> childrenEnums =
+       new Stack<Enumeration<TreeNode>>();
 
+      @SuppressWarnings("unchecked")
       PreorderEnumeration(TreeNode node)
       {
           next = node;
-          childrenEnums.push(node.children());
+          childrenEnums.push((Enumeration<TreeNode>) node.children());
       }
 
       public boolean hasMoreElements()
@@ -1102,14 +1106,14 @@ public class DefaultMutableTreeNode
           return next != null;
       }
 
-      public Object nextElement()
+      public TreeNode nextElement()
       {
           if (next == null)
               throw new NoSuchElementException("No more elements left.");
 
-          Object current = next;
+          TreeNode current = next;
 
-          Enumeration children = (Enumeration) childrenEnums.peek();
+          Enumeration<TreeNode> children = childrenEnums.peek();
 
           // Retrieves the next element.
           next = traverse(children);
@@ -1117,13 +1121,14 @@ public class DefaultMutableTreeNode
           return current;
       }
 
-      private TreeNode traverse(Enumeration children)
+      @SuppressWarnings("unchecked")
+      private TreeNode traverse(Enumeration<TreeNode> children)
       {
           // If more children are available step down.
           if (children.hasMoreElements())
           {
-              TreeNode child = (TreeNode) children.nextElement();
-              childrenEnums.push(child.children());
+              TreeNode child = children.nextElement();
+              childrenEnums.push((Enumeration<TreeNode>) child.children());
 
               return child;
           }
@@ -1137,7 +1142,7 @@ public class DefaultMutableTreeNode
               return null;
           else
           {
-              return traverse((Enumeration) childrenEnums.peek());
+              return traverse(childrenEnums.peek());
           }
       }
    }
@@ -1145,16 +1150,18 @@ public class DefaultMutableTreeNode
   /** Provides an enumeration of a tree traversing it
    * postordered (= depth-first).
    */
-   static class PostorderEnumeration implements Enumeration
+   static class PostorderEnumeration implements Enumeration<TreeNode>
    {
 
        Stack<TreeNode> nodes = new Stack<TreeNode>();
-       Stack childrenEnums = new Stack();
+       Stack<Enumeration<TreeNode>> childrenEnums =
+        new Stack<Enumeration<TreeNode>>();
 
+       @SuppressWarnings("unchecked")
        PostorderEnumeration(TreeNode node)
        {
            nodes.push(node);
-           childrenEnums.push(node.children());
+           childrenEnums.push((Enumeration<TreeNode>) node.children());
        }
 
        public boolean hasMoreElements()
@@ -1162,24 +1169,26 @@ public class DefaultMutableTreeNode
            return !nodes.isEmpty();
        }
 
-       public Object nextElement()
+       public TreeNode nextElement()
        {
            if (nodes.isEmpty())
                throw new NoSuchElementException("No more elements left!");
 
-           Enumeration children = (Enumeration) childrenEnums.peek();
+           Enumeration<TreeNode> children = childrenEnums.peek();
 
            return traverse(children);
        }
 
-       private Object traverse(Enumeration children)
+       @SuppressWarnings("unchecked")
+       private TreeNode traverse(Enumeration<TreeNode> children)
        {
            if (children.hasMoreElements())
            {
-               TreeNode node = (TreeNode) children.nextElement();
+               TreeNode node = children.nextElement();
                nodes.push(node);
 
-               Enumeration newChildren = node.children();
+               Enumeration<TreeNode> newChildren =
+                (Enumeration<TreeNode>) node.children();
                childrenEnums.push(newChildren);
 
                return traverse(newChildren);
@@ -1190,7 +1199,7 @@ public class DefaultMutableTreeNode
 
                // Returns the node whose children
                // have all been visited. (= postorder)
-               Object next = nodes.peek();
+               TreeNode next = nodes.peek();
                nodes.pop();
 
                return next;
index 4c10bfe1af21e9950ae7622bc33f21711d71b153..04897986d494bc7b8e396bc387dfe102b8329ae4 100644 (file)
@@ -306,13 +306,7 @@ public class DefaultTreeCellEditor
    * Font to paint with, null indicates font of renderer is to be used.
    */
   protected Font font;
-  
-  /**
-   * Helper field used to save the last path seen while the timer was
-   * running.
-   */
-    private TreePath tPath;
-    
+      
   /**
    * Constructs a DefaultTreeCellEditor object for a JTree using the 
    * specified renderer and a default editor. (Use this constructor 
@@ -347,38 +341,6 @@ public class DefaultTreeCellEditor
     Color c = UIManager.getColor("Tree.editorBorderSelectionColor");
     setBorderSelectionColor(c);
   }
-
-  /**
-   * Configures the editing component whenever it is null.
-   * 
-   * @param tree the tree to configure to component for.
-   * @param renderer the renderer used to set up the nodes
-   * @param editor the editor used 
-   */
-  private void configureEditingComponent(JTree tree,
-                                         DefaultTreeCellRenderer renderer,
-                                         TreeCellEditor editor)
-  {    
-    if (tree != null && lastPath != null)
-      {
-        Object val = lastPath.getLastPathComponent();
-        boolean isLeaf = tree.getModel().isLeaf(val);
-        boolean expanded = tree.isExpanded(lastPath);
-        determineOffset(tree, val, true, expanded, isLeaf, lastRow);
-
-        // set up icon
-        if (isLeaf)
-          renderer.setIcon(renderer.getLeafIcon());
-        else if (expanded)
-          renderer.setIcon(renderer.getOpenIcon());
-        else
-          renderer.setIcon(renderer.getClosedIcon());
-        editingIcon = renderer.getIcon();
-        
-        editingComponent = getTreeCellEditorComponent(tree, val, true,
-                                                      expanded, isLeaf, lastRow);
-      }
-  }
   
   /**
    * writeObject
index 3766485abdb4e263c85cacd65dae7e0c2a2cb6ab..b9c84013d16d37445a324d95232c9198f30dfcd7 100644 (file)
@@ -42,18 +42,14 @@ import java.awt.Color;
 import java.awt.Component;
 import java.awt.Dimension;
 import java.awt.Font;
-import java.awt.FontMetrics;
 import java.awt.Graphics;
-import java.awt.Insets;
 import java.awt.Rectangle;
 
 import javax.swing.Icon;
 import javax.swing.JLabel;
 import javax.swing.JTree;
 import javax.swing.LookAndFeel;
-import javax.swing.SwingUtilities;
 import javax.swing.UIManager;
-import javax.swing.border.Border;
 import javax.swing.plaf.UIResource;
 
 /**
@@ -515,7 +511,6 @@ public class DefaultTreeCellRenderer
     int xOffset = -1;
     if (bgColor != null)
       {
-        Icon i = getIcon();
        xOffset = getXOffset();
        g.setColor(bgColor);
        g.fillRect(xOffset, 0, getWidth() - xOffset, getHeight());
index 3d9c67728bdc9da446ab6d343162a621b3d72fd4..2bb0d0045a6fe8d89c4e9323a4e685a17bdfba60 100644 (file)
@@ -164,7 +164,7 @@ public class DefaultTreeSelectionModel
    * @see #removeSelectionPaths(TreePath[])
    * @see #setSelectionPaths(TreePath[])
    */
-  private transient HashSet selectedPaths;
+  private transient HashSet<TreePath> selectedPaths;
 
   /**
    * A supporting datastructure that is used in addSelectionPaths() and
@@ -174,7 +174,7 @@ public class DefaultTreeSelectionModel
    * @see #removeSelectionPaths(TreePath[])
    * @see #setSelectionPaths(TreePath[])
    */
-  private transient HashSet tmpPaths;
+  private transient HashSet<TreePath> tmpPaths;
 
   /**
    * Constructs a new DefaultTreeSelectionModel.
@@ -185,8 +185,8 @@ public class DefaultTreeSelectionModel
     listSelectionModel = new DefaultListSelectionModel();
     listenerList = new EventListenerList();
     leadIndex = -1;
-    tmpPaths = new HashSet();
-    selectedPaths = new HashSet();
+    tmpPaths = new HashSet<TreePath>();
+    selectedPaths = new HashSet<TreePath>();
   }
 
   /**
@@ -206,8 +206,8 @@ public class DefaultTreeSelectionModel
     cloned.listenerList = new EventListenerList();
     cloned.listSelectionModel =
       (DefaultListSelectionModel) listSelectionModel.clone();
-    cloned.selectedPaths = new HashSet();
-    cloned.tmpPaths = new HashSet();
+    cloned.selectedPaths = new HashSet<TreePath>();
+    cloned.tmpPaths = new HashSet<TreePath>();
 
     return cloned;
   }
@@ -394,7 +394,7 @@ public class DefaultTreeSelectionModel
             newLength = 1;
           }
         // Find new paths.
-        Vector changedPaths = null;
+        Vector<PathPlaceHolder> changedPaths = null;
         tmpPaths.clear();
         int validPaths = 0;
         TreePath oldLeadPath = leadPath;
@@ -407,7 +407,7 @@ public class DefaultTreeSelectionModel
                 if (! selectedPaths.contains(paths[i]))
                   {
                     if (changedPaths == null)
-                      changedPaths = new Vector();
+                      changedPaths = new Vector<PathPlaceHolder>();
                     changedPaths.add(new PathPlaceHolder(paths[i], true));
                   }
                 leadPath = paths[i];
@@ -422,10 +422,10 @@ public class DefaultTreeSelectionModel
                 // Some of the paths are already selected, put together
                 // the new selection carefully.
                 newSelection = new TreePath[validPaths];
-                Iterator newPaths = tmpPaths.iterator();
+                Iterator<TreePath> newPaths = tmpPaths.iterator();
                 validPaths = 0;
                 for (int i = 0; newPaths.hasNext(); i++)
-                  newSelection[i] = (TreePath) newPaths.next();
+                  newSelection[i] = newPaths.next();
               }
             else
               {
@@ -440,14 +440,14 @@ public class DefaultTreeSelectionModel
             if (selection[i] != null && ! tmpPaths.contains(selection[i]))
               {
                 if (changedPaths == null)
-                  changedPaths = new Vector();
+                  changedPaths = new Vector<PathPlaceHolder>();
                 changedPaths.add(new PathPlaceHolder(selection[i], false));
               }
           }
 
         // Perform changes and notification.
         selection = newSelection;
-        HashSet tmp = selectedPaths;
+        HashSet<TreePath> tmp = selectedPaths;
         selectedPaths = tmpPaths;
         tmpPaths = tmp;
         tmpPaths.clear();
@@ -505,7 +505,7 @@ public class DefaultTreeSelectionModel
           }
         else
           {
-            Vector changedPaths = null;
+            Vector<PathPlaceHolder> changedPaths = null;
             tmpPaths.clear();
             int validPaths = 0;
             TreePath oldLeadPath = leadPath;
@@ -521,7 +521,7 @@ public class DefaultTreeSelectionModel
                       {
                         validPaths++;
                         if (changedPaths == null)
-                          changedPaths = new Vector();
+                          changedPaths = new Vector<PathPlaceHolder>();
                         changedPaths.add(new PathPlaceHolder(paths[i], true));
                         selectedPaths.add(paths[i]);
                         tmpPaths.add(paths[i]);
@@ -538,11 +538,11 @@ public class DefaultTreeSelectionModel
                   {
                     // Some of the paths are already selected, put together
                     // the new selection carefully.
-                    Iterator newPaths = tmpPaths.iterator();
+                    Iterator<TreePath> newPaths = tmpPaths.iterator();
                     i = oldPaths;
                     while (newPaths.hasNext())
                       {
-                        newSelection[i] = (TreePath) newPaths.next();
+                        newSelection[i] = newPaths.next();
                         i++;
                       }
                   }
@@ -589,13 +589,13 @@ public class DefaultTreeSelectionModel
           clearSelection();
         else
           {
-            Vector pathsToRemove = null;
+            Vector<PathPlaceHolder> pathsToRemove = null;
             for (int i = paths.length - 1; i >= 0; i--)
               {
                 if (paths[i] != null && selectedPaths.contains(paths[i]))
                   {
                     if (pathsToRemove == null)
-                      pathsToRemove = new Vector();
+                      pathsToRemove = new Vector<PathPlaceHolder>();
                     selectedPaths.remove(paths[i]);
                     pathsToRemove.add(new PathPlaceHolder(paths[i],
                                                           false));
@@ -610,9 +610,9 @@ public class DefaultTreeSelectionModel
                 else
                   {
                     selection = new TreePath[selection.length - numRemove];
-                    Iterator keep = selectedPaths.iterator();
+                    Iterator<TreePath> keep = selectedPaths.iterator();
                     for (int valid = 0; keep.hasNext(); valid++)
-                      selection[valid] = (TreePath) keep.next();
+                      selection[valid] = keep.next();
                   }
                 // Update lead path.
                 if (leadPath != null && ! selectedPaths.contains(leadPath))
@@ -1120,7 +1120,7 @@ public class DefaultTreeSelectionModel
         || selectionMode == DISCONTIGUOUS_TREE_SELECTION)
       return true;
     
-    HashSet set = new HashSet();
+    HashSet<TreePath> set = new HashSet<TreePath>();
     for (int i = 0; i < selection.length; i++)
       set.add(selection[i]);
     
@@ -1128,10 +1128,10 @@ public class DefaultTreeSelectionModel
       set.remove(paths[i]);
     
     TreePath[] remaining = new TreePath[set.size()];
-    Iterator iter = set.iterator();
+    Iterator<TreePath> iter = set.iterator();
     
     for (int i = 0; i < remaining.length; i++)
-      remaining[i] = (TreePath) iter.next();
+      remaining[i] = iter.next();
     
     return arePathsContiguous(remaining);
   }
@@ -1144,7 +1144,8 @@ public class DefaultTreeSelectionModel
    * @param vPaths the vector of the changed patches
    * @param oldLeadSelection the old selection index
    */
-  protected void notifyPathChange(Vector vPaths, TreePath oldLeadSelection)
+  protected void notifyPathChange(Vector<PathPlaceHolder> vPaths,
+                                 TreePath oldLeadSelection)
   {
 
     int numChangedPaths = vPaths.size();
@@ -1152,7 +1153,7 @@ public class DefaultTreeSelectionModel
     TreePath[] paths = new TreePath[numChangedPaths];
     for (int i = 0; i < numChangedPaths; i++)
       {
-        PathPlaceHolder p = (PathPlaceHolder) vPaths.get(i);
+        PathPlaceHolder p = vPaths.get(i);
         news[i] = p.isNew;
         paths[i] = p.path;
       }
index dff9298e8f5bed861250923595960c1c1ab48cd8..488809e0232644cb4864bede532ca1946af818b7 100644 (file)
@@ -135,7 +135,7 @@ public class FixedHeightLayoutCache
                 }
             }
 
-          LinkedList lpath = new LinkedList();
+          LinkedList<Object> lpath = new LinkedList<Object>();
           NodeRecord rp = this;
           while (rp != null)
             {
@@ -173,17 +173,17 @@ public class FixedHeightLayoutCache
   /**
    * The set of all expanded tree nodes.
    */
-  Set expanded = new HashSet();
+  Set<Object> expanded = new HashSet<Object>();
   
   /**
    * Maps nodes to the row numbers.
    */
-  Hashtable nodes = new Hashtable();
+  Hashtable<Object,NodeRecord> nodes = new Hashtable<Object,NodeRecord>();
   
   /**
    * Maps row numbers to nodes.
    */
-  Hashtable row2node = new Hashtable();
+  Hashtable<Integer,Object> row2node = new Hashtable<Integer,Object>();
   
   /**
    * If true, the row map must be recomputed before using.
@@ -338,7 +338,7 @@ public class FixedHeightLayoutCache
     if (dirty)
       update();
     Object last = path.getLastPathComponent();
-    NodeRecord r = (NodeRecord) nodes.get(last);
+    NodeRecord r = nodes.get(last);
     if (r == null)
     // This node is not visible.
       {
@@ -373,7 +373,7 @@ public class FixedHeightLayoutCache
       return null;
     else
       {
-        NodeRecord r = (NodeRecord) nodes.get(last);
+        NodeRecord r = nodes.get(last);
         return r.getPath();
       }
   } 
@@ -391,7 +391,7 @@ public class FixedHeightLayoutCache
     
     if (dirty) update();
 
-    NodeRecord r = (NodeRecord) nodes.get(path.getLastPathComponent());
+    NodeRecord r = nodes.get(path.getLastPathComponent());
     if (r == null)
       return - 1;
     else
@@ -413,13 +413,13 @@ public class FixedHeightLayoutCache
     // As the rows have arbitrary height, we need to iterate.
     NodeRecord best = null;
     NodeRecord r;
-    Enumeration en = nodes.elements();
+    Enumeration<NodeRecord> en = nodes.elements();
     
     int dist = Integer.MAX_VALUE;
 
     while (en.hasMoreElements() && dist > 0)
       {
-        r = (NodeRecord) en.nextElement();
+        r = en.nextElement();
         if (best == null)
           {
             best = r;
@@ -474,7 +474,7 @@ public class FixedHeightLayoutCache
   } 
 
   /**
-   * Get the enumeration over all visible pathes that start from the given
+   * Get the enumeration over all visible paths that start from the given
    * parent path.
    * 
    * @param parentPath the parent path
@@ -491,7 +491,7 @@ public class FixedHeightLayoutCache
     for (int i = 0; i < parentPath.getPathCount(); i++)
       {
         node = parentPath.getPathComponent(i);
-        nr = (NodeRecord) nodes.get(node);
+        nr = nodes.get(node);
         if (nr.row >= 0)
           p.add(node);
       }
@@ -583,10 +583,10 @@ public class FixedHeightLayoutCache
     if (dirty)
       update();
     totalHeight = 0;
-    Enumeration en = nodes.elements();
+    Enumeration<NodeRecord> en = nodes.elements();
     while (en.hasMoreElements())
       {
-        NodeRecord nr = (NodeRecord) en.nextElement();
+        NodeRecord nr = en.nextElement();
         Rectangle r = nr.getBounds();
         totalHeight += r.height;
       }
@@ -602,10 +602,10 @@ public class FixedHeightLayoutCache
       update();
     
     maximalWidth = 0;
-    Enumeration en = nodes.elements();
+    Enumeration<NodeRecord> en = nodes.elements();
     while (en.hasMoreElements())
       {
-        NodeRecord nr = (NodeRecord) en.nextElement();
+        NodeRecord nr = en.nextElement();
         Rectangle r = nr.getBounds();
         if (r.x + r.width > maximalWidth)
           maximalWidth = r.x + r.width;
index 8c70c13afd297d797d92120f42eb37d81153d5a5..50e8e5ce92e6a0b2b86c7335da7ee4685f749692 100644 (file)
@@ -138,7 +138,7 @@ public class VariableHeightLayoutCache
                 }
             }
 
-          LinkedList lpath = new LinkedList();
+          LinkedList<Object> lpath = new LinkedList<Object>();
           NodeRecord rp = this;
           while (rp != null)
             {
@@ -146,7 +146,7 @@ public class VariableHeightLayoutCache
               if (rp.parent != null)
                 {
                   Object parent = rp.parent;
-                  rp = (NodeRecord) nodes.get(parent);
+                  rp = nodes.get(parent);
                   // Add the root node, even if it is not visible.
                   if (rp == null)
                     lpath.addFirst(parent);
@@ -171,17 +171,17 @@ public class VariableHeightLayoutCache
   /**
    * The set of all expanded tree nodes.
    */
-  Set expanded = new HashSet();
+  Set<Object> expanded = new HashSet<Object>();
   
   /**
    * Maps nodes to the row numbers.
    */
-  Hashtable nodes = new Hashtable();
+  Hashtable<Object,NodeRecord> nodes = new Hashtable<Object,NodeRecord>();
   
   /**
    * Maps row numbers to nodes.
    */
-  ArrayList row2node = new ArrayList();
+  ArrayList<Object> row2node = new ArrayList<Object>();
   
   /**
    * If true, the row map must be recomputed before using.
@@ -292,7 +292,7 @@ public class VariableHeightLayoutCache
    */
   public void invalidatePathBounds(TreePath path)
   {
-    NodeRecord r = (NodeRecord) nodes.get(path.getLastPathComponent());
+    NodeRecord r = nodes.get(path.getLastPathComponent());
     if (r != null)
       r.bounds = null;
   } 
@@ -354,7 +354,7 @@ public class VariableHeightLayoutCache
 
     Object last = path.getLastPathComponent();
     Rectangle result = null;
-    NodeRecord r = (NodeRecord) nodes.get(last);
+    NodeRecord r = nodes.get(last);
     if (r != null)
       {
         // The RI allows null arguments for rect, in which case a new Rectangle
@@ -405,7 +405,7 @@ public class VariableHeightLayoutCache
     if (dirty)
       update();
 
-    NodeRecord r = (NodeRecord) nodes.get(path.getLastPathComponent());
+    NodeRecord r = nodes.get(path.getLastPathComponent());
     if (r == null)
       return - 1;
     else
@@ -427,13 +427,13 @@ public class VariableHeightLayoutCache
     // As the rows have arbitrary height, we need to iterate.
     NodeRecord best = null;
     NodeRecord r;
-    Enumeration en = nodes.elements();
+    Enumeration<NodeRecord> en = nodes.elements();
     
     int dist = Integer.MAX_VALUE;
 
     while (en.hasMoreElements() && dist > 0)
       {
-        r = (NodeRecord) en.nextElement();
+        r = en.nextElement();
         if (best == null)
           {
             best = r;
@@ -488,7 +488,7 @@ public class VariableHeightLayoutCache
   } 
 
   /**
-   * Get the enumeration over all visible pathes that start from the given
+   * Get the enumeration over all visible paths that start from the given
    * parent path.
    * 
    * @param parentPath the parent path
@@ -505,7 +505,7 @@ public class VariableHeightLayoutCache
     for (int i = 0; i < parentPath.getPathCount(); i++)
       {
         node = parentPath.getPathComponent(i);
-        nr = (NodeRecord) nodes.get(node);
+        nr = nodes.get(node);
         if (nr != null && nr.row >= 0)
           p.add(node);
       }
@@ -603,7 +603,7 @@ public class VariableHeightLayoutCache
     int rowCount = getRowCount();
     if (rowCount > 0)
       {
-        NodeRecord last = (NodeRecord) nodes.get(row2node.get(rowCount - 1));
+        NodeRecord last = nodes.get(row2node.get(rowCount - 1));
         height = last.bounds.y + last.bounds.height;
       }
     return height;
@@ -618,10 +618,10 @@ public class VariableHeightLayoutCache
       update();
     
     maximalWidth = 0;
-    Enumeration en = nodes.elements();
+    Enumeration<NodeRecord> en = nodes.elements();
     while (en.hasMoreElements())
       {
-        NodeRecord nr = (NodeRecord) en.nextElement();
+        NodeRecord nr = en.nextElement();
         if (nr != null)
           {
             Rectangle r = nr.getBounds();
index 91fc88faa60304f6366e466c7d82ffe99feccfb1..55282ab37c834025d780aa311ba3bf206ef097bc 100644 (file)
@@ -177,8 +177,8 @@ public class StateEdit
   {
     object = obj;
     undoRedoName = name;
-    preState = new Hashtable();
-    postState = new Hashtable();
+    preState = new Hashtable<Object,Object>();
+    postState = new Hashtable<Object,Object>();
     obj.storeState(preState);
   }
 
index b9e6de67576d82f98d327cbd39e4ff8a49cac5e3..1f47d51706ed32e2579b6007f39c04d2c654bd9b 100644 (file)
@@ -196,7 +196,7 @@ public class UndoManager
 
     size = edits.size();
     for (int i = size - 1; i >= 0; i--)
-      ((UndoableEdit) edits.get(i)).die();
+      edits.get(i).die();
     indexOfNextAdd = 0;
     edits.clear();
   }
@@ -244,7 +244,7 @@ public class UndoManager
       return;
 
     for (int i = to; i >= from; i--)
-        ((UndoableEdit) edits.get(i)).die();
+        edits.get(i).die();
 
     // Remove the range [from .. to] from edits. If from == to, which
     // is likely to be a very common case, we can do better than
@@ -275,7 +275,7 @@ public class UndoManager
 
     for (int i = indexOfNextAdd - 1; i >= 0; i--)
       {
-        result = (UndoableEdit) edits.get(i);
+        result = edits.get(i);
         if (result.isSignificant())
           return result;
       }
@@ -298,7 +298,7 @@ public class UndoManager
 
     for (int i = indexOfNextAdd; i < edits.size(); i++)
       {
-        result = (UndoableEdit) edits.get(i);
+        result = edits.get(i);
         if (result.isSignificant())
           return result;
       }
@@ -324,7 +324,7 @@ public class UndoManager
     while (true)
       {
         indexOfNextAdd -= 1;
-        cur = (UndoableEdit) edits.get(indexOfNextAdd);
+        cur = edits.get(indexOfNextAdd);
         cur.undo();
         if (cur == edit)
           return;
@@ -348,7 +348,7 @@ public class UndoManager
 
     while (true)
       {
-        cur = (UndoableEdit) edits.get(indexOfNextAdd);
+        cur = edits.get(indexOfNextAdd);
         indexOfNextAdd += 1;
         cur.redo();
         if (cur == edit)
diff --git a/libjava/classpath/javax/tools/Diagnostic.java b/libjava/classpath/javax/tools/Diagnostic.java
new file mode 100644 (file)
index 0000000..67776e6
--- /dev/null
@@ -0,0 +1,167 @@
+/* Diagnostic.java --
+   Copyright (C) 2008  Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.tools;
+
+import java.util.Locale;
+
+/**
+ * Encapsulates diagnostic information from a tool. This usually includes
+ * (but is not required) a position in a source file, line and column number
+ * information and a message.
+ *
+ * @author Roman Kennke (roman@kennke.org)
+ *
+ * @param <S> the type of the source object
+ *
+ * @since 1.6
+ */
+public interface Diagnostic<S>
+{
+  /**
+   * The kind of diagnostic information.
+   */
+  public static enum Kind
+  {
+    /**
+     * Indicates and error.
+     */
+    ERROR,
+
+    /**
+     * Indicates a warning.
+     */
+    WARNING,
+
+    /**
+     * Indicates a mandatory warning.
+     */
+    MANDATORY_WARNING,
+
+    /**
+     * Indicates a note.
+     */
+    NOTE,
+
+    /**
+     * Indicates something else.
+     */
+    OTHER
+  }
+
+  /**
+   * Indicates that this diagnostic object doesn't carry position information.
+   */
+  public static final long NOPOS = -1L;
+
+  /**
+   * Returns the kind of this diagnostic object.
+   *
+   * @return the kind of this diagnostic object
+   */
+  Kind getKind();
+
+  /**
+   * Returns the source of this diagnostic object.
+   *
+   * @return the source of this diagnostic object
+   */
+  S getSource();
+
+  /**
+   * Returns the position in the source object. This is a zero based value,
+   * or {@link # NOPOS}, indicating that this doesn't carry position
+   * information.
+   *
+   * @return the position in the source object
+   */
+  long getPosition();
+
+  /**
+   * Returns the start position in the source object. This is a zero based
+   * value, or {@link #NOPOS}, indicating that this doesn't carry position
+   * information.
+   *
+   * @return the start position in the source object
+   */
+  long getStartPosition();
+
+  /*
+  * Returns the end position in the source object. This is a zero based
+  * value, or {@link #NOPOS}, indicating that this doesn't carry position
+  * information.
+  *
+  * @return the end position in the source object
+  */
+  long getEndPosition();
+
+  /**
+   * Returns the line number or {@link #NOPOS}, indicating that this doesn't
+   * carry position information. This is a 1-based value indicating the line
+   * in the source object.
+   *
+   * @return the line number
+   */
+  long getLineNumber();
+
+  /**
+   * Returns the column number or {@link #NOPOS}, indicating that this doesn't
+   * carry position information. This is a 1-based value indicating the column
+   * in the source object.
+   *
+   * @return the column number
+   */
+  long getColumnNumber();
+
+  /**
+   * Return a diagnostic code. This is implementation dependend and might
+   * be <code>null</code>.
+   *
+   * @return a diagnostic code or <code>null</code>
+   */
+  String getCode();
+
+  /**
+   * Returns a localized message. This is implementation dependend. If
+   * <code>locale</code> is <code>null</code> this uses the default locale.
+   *
+   * @param locale the locale, or <code>null</code>
+   *
+   * @return a localized message
+   */
+  String getMessage(Locale locale);
+}
diff --git a/libjava/classpath/javax/tools/DiagnosticListener.java b/libjava/classpath/javax/tools/DiagnosticListener.java
new file mode 100644 (file)
index 0000000..6a114f9
--- /dev/null
@@ -0,0 +1,61 @@
+/* DiagnosticListener.java --
+   Copyright (C) 2008  Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.tools;
+
+/**
+ * Receices diagnostic notifications from tools.
+ *
+ * @author Roman Kennke (roman@kennke.org)
+ *
+ * @param <S> the type of the source object
+ *
+ * @since 1.6
+ */
+public interface DiagnosticListener<S>
+{
+
+  /**
+   * Receive diagnostic information from tools.
+   *
+   * @param diagnostic the diagnostic information
+   *
+   * @throws NullPointerException if <code>diagnostic</code> is
+   *         <code>null</code> and the implemenatation can't handle this
+   */
+  void report(Diagnostic<? extends S> diagnostic);
+}
diff --git a/libjava/classpath/javax/tools/FileObject.java b/libjava/classpath/javax/tools/FileObject.java
new file mode 100644 (file)
index 0000000..56ecaba
--- /dev/null
@@ -0,0 +1,155 @@
+/* FileObject.java --
+   Copyright (C) 2008  Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.tools;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Reader;
+import java.io.Writer;
+import java.net.URI;
+
+/**
+ * Abstraction for all kinds of file objects used by tools, e.g. regular files,
+ * memory cache, or database data.
+ *
+ * @author Roman Kennke (roman@kennke.org)
+ *
+ * @since 1.6
+ */
+public interface FileObject
+{
+
+  /**
+   * Returns a URI that represents this file object.
+   *
+   * @return a URI that represents this file object
+   */
+  URI toURI();
+
+  /**
+   * Returns a name for this file object. The exact name is implementation
+   * dependent.
+   *
+   * @return a name for this file object
+   */
+  String getName();
+
+  /**
+   * Opens this file for reading and returns an input stream.
+   *
+   * @return an input stream to read this file object
+   *
+   * @throws IOException if an I/O error occured
+   * @throws IllegalStateException if this file was opened for writing and
+   *         does not support reading
+   * @throws UnsupportedOperationException if this kind of file does not allow
+   *         byte reading
+   */
+  InputStream openInputStream() throws IOException;
+
+  /**
+   * Opens this file for writing and returns an output stream.
+   *
+   * @return an output stream for writing this file object
+   *
+   * @throws IOException if an I/O error occurs
+   * @throws IllegalStateException if this file was opened for reading and
+   *         does not support writing
+   * @throws UnsupportedOperationException if this kind of file does not allow
+   *         byte writing
+   */
+  OutputStream openOutputStream() throws IOException;
+
+  /**
+   * Opens this file for reading and returns a reader.
+   *
+   * @return a reader for reading this file object
+   *
+   * @throws IOException if an I/O error occurs
+   * @throws IllegalStateException if this file was opened for writing and
+   *         does not support reading
+   * @throws UnsupportedOperationException if this kind of file does not allow
+   *         character reading
+   */
+  Reader openReader() throws IOException;
+
+  /**
+   * Returns the character content of the file, if available. Any byte
+   * that cannot be decoded will be replaced by the default replacement
+   * character. A diagnostic may be reported, unless
+   * <code>ignoreEncodingErrors</code> is <code>true</code>.
+   * 
+   * @param ignoreEncodingErrors <code>true</code> when encoding errors should be ignored
+   *                             <code>false</code> otherwise
+   * @return the character content, or <code>null</code> if not available
+   *
+   * @throws IOException if an I/O error occurs
+   */
+  CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException;
+
+  /**
+   * Opens this file for writer and returns a writer.
+   *
+   * @return a writer for writing this file object
+   *
+   * @throws IOException if an I/O error occurs
+   * @throws IllegalStateException if this file was opened for reading and
+   *         does not support writing
+   * @throws UnsupportedOperationException if this kind of file does not allow
+   *         character writing
+   */
+  Writer openWriter() throws IOException;
+
+  /**
+   * Returns the time when the file was last modified. The time is measured
+   * like in <code>System.currentTimeMillis()</code>.
+   *
+   * @return the time when the file was last modified
+   */
+  long getLastModified();
+
+  /**
+   * Deletes this file object. In case of errors this returns
+   * <code>false</code>.
+   *
+   * @return <code>true</code> when the file deletion was successful,
+   *         <code>false</code> otherwise
+   */
+  boolean delete();
+}
index 14f507416abdec4ac57f60bc7a308aaa99638c13..06f465c353ecd33d32ee7df69c1641e1a92b49fe 100644 (file)
@@ -37,11 +37,8 @@ exception statement from your version. */
 
 package javax.xml.datatype;
 
-import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.util.GregorianCalendar;
index edc6678e3500eb7b36e5b31196b59a2af7ef1fdb..18dee79bbffbb03e1c0e3659019f58f2e868c970 100644 (file)
@@ -146,6 +146,9 @@ public class QName implements Serializable
 
   public static QName valueOf(String qNameAsString)
   {
+    if (qNameAsString == null)
+      throw new IllegalArgumentException("qNameAsString can't be null");
+    
     String namespaceUri = "", prefix = null;
     int start = qNameAsString.indexOf('{');
     int end = qNameAsString.indexOf('}');
index ee47af2a90dd528829aa680a13f0913ff348b0b9..cb850baaec8ac3b73aec45f08ac053ba8d204d53 100644 (file)
@@ -43,7 +43,6 @@ import java.io.FileInputStream;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.IOException;
-import java.io.Reader;
 import java.util.Iterator;
 import java.util.Properties;
 import javax.xml.namespace.NamespaceContext;
index 4dfd1203a70f76185074f42a1e8ca18dcdae057a..f88451e54bfbf482a2c9d70c77f4b73fca088898 100644 (file)
@@ -44,7 +44,6 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.IOException;
 import java.io.Reader;
-import java.io.Writer;
 import java.util.Properties;
 import javax.xml.stream.util.XMLEventAllocator;
 import javax.xml.transform.Source;
index cf471137484e66daac3b73cc3bd2ce643430e8d3..6e6d0274c4a49ff52c7936adb2c3ace16bf923d6 100644 (file)
@@ -59,7 +59,7 @@ public interface Attribute
   /**
    * Returns the type of this attribute.
    */
-  QName getDTDType();
+  String getDTDType();
 
   /**
    * Indicates whether this attribute was specified in the input source, or
index 926c94a87116728347eb673f9560e893adb3c421..74ddaf84829f713ea1851249142b5b0de7af9c37 100644 (file)
@@ -5,28 +5,11 @@ JAVA_DEPEND = java.dep
 ## this file and restart the make process again
 sinclude $(JAVA_DEPEND)
 
-compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:$(top_srcdir)/external/jsr166:.:$(USER_CLASSLIB):$(PATH_TO_ESCHER)
+compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:$(top_srcdir)/external/jsr166:.:$(PATH_TO_GLIBJ_ZIP):$(PATH_TO_ESCHER)
 
 # handling source to bytecode compiler programs like gcj, jikes  and kjc
-if FOUND_GCJ
-## See the compile-classes target.
-## There's no point in warning, and we always want debug info.
-## GCJ LOCAL: use srcdir
-JCOMPILER = $(GCJ) -C -g -w --encoding=UTF-8 -bootclasspath '' --classpath $(compile_classpath) -d $(srcdir) @classes
-else
-if FOUND_JIKES
-JCOMPILER = $(JIKES) $(JIKESWARNINGS) +F $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(compile_classpath) -d . @classes
-else
-if FOUND_KJC
-## FIXME: from what I can tell, kjc does not support a -encoding option.
-JCOMPILER = $(KJC) -classpath .:$(USER_CLASSLIB) -d . @classes
-else
-if FOUND_ECJ
-JCOMPILER = $(ECJ) -source 1.4 -encoding UTF-8 -warn:-deprecation,serial,unused -proceedOnError -bootclasspath '' -classpath $(compile_classpath) -d . @classes
-endif # FOUND_ECJ
-endif # FOUND_KJC
-endif # FOUND_GCJ
-endif # FOUND_JIKES
+## GCJ LOCAL: use srcdir, don't pass $(JAVACFLAGS) $(JAVAC_MEM_OPT) -source 1.5 -target 1.5
+JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath '' --classpath $(compile_classpath) -d $(srcdir) @classes
 
 if CREATE_COLLECTIONS
 COLLECTIONS = collections.jar
@@ -35,7 +18,7 @@ collections.jar: mkcollections.pl
        ./mkcollections.pl $(top_srcdir)
        $(JCOMPILER) `$(FIND) $(COLLECTIONS_PREFIX) -name '*.java' -type f -print`
        if test "$(FASTJAR)" != ""; then \
-         $(FASTJAR) cf $@ $(COLLECTIONS_PREFIX); \
+         "$(FASTJAR)" cf $@ $(COLLECTIONS_PREFIX); \
        else \
          echo "fastjar not found" > collections.jar; \
        fi
@@ -56,7 +39,7 @@ endif # BUILD_CLASS_FILES
 if INSTALL_CLASS_FILES
 
 install-data-local: genclasses compile-classes
-       -$(top_srcdir)/mkinstalldirs $(DESTDIR)$(pkgdatadir)
+       $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
        cp -R gnu $(DESTDIR)$(pkgdatadir)
        cp -R java $(DESTDIR)$(pkgdatadir)
        cp -R javax $(DESTDIR)$(pkgdatadir)
@@ -86,7 +69,7 @@ else
 
 glibj.zip: classes compile-classes resources
        if test "$(ZIP)" != ""; then $(ZIP) -r -D glibj.zip gnu java javax org sun META-INF > /dev/null; fi
-       if test "$(FASTJAR)" != ""; then $(FASTJAR) cf glibj.zip gnu java javax org sun META-INF; fi
+       if test "$(FASTJAR)" != ""; then "$(FASTJAR)" cf glibj.zip gnu java javax org sun META-INF; fi
 
 endif # USE_PREBUILT_GLIBJ_ZIP
 
@@ -154,7 +137,7 @@ endif
        touch compile-classes
 # endif
 
-EXTRA_DIST = standard.omit.in mkcollections.pl.in Makefile.gcj split-for-gcj.sh
+EXTRA_DIST = standard.omit.in mkcollections.pl.in Makefile.gcj split-for-gcj.sh glibj.zip
 CLEANFILES = compile-classes resources classes \
        glibj.zip classes.1 classes.2 Makefile.deps \
        $(top_builddir)/gnu/java/locale/LocaleData.java \
@@ -181,3 +164,4 @@ dist-hook:
        rm -f $(distdir)/../gnu/classpath/Configuration.java
        rm -f $(distdir)/../gnu/java/security/Configuration.java
        rm -f $(distdir)/../gnu/java/locale/LocaleData.java
+       rm -f $(distdir)/glibj.zip
index bbd8a960a62d6325e202a3d3c74d02d3e7e54bea..d0f2304bbe3d8984bcf9d34bc9c34d57c32af785 100644 (file)
@@ -52,6 +52,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -134,7 +136,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -146,19 +147,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -190,15 +180,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -246,10 +233,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -322,17 +307,14 @@ target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
 vm_classes = @vm_classes@
 JAVA_DEPEND = java.dep
-compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:$(top_srcdir)/external/jsr166:.:$(USER_CLASSLIB):$(PATH_TO_ESCHER)
-@FOUND_ECJ_TRUE@@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@@FOUND_KJC_FALSE@JCOMPILER = $(ECJ) -source 1.4 -encoding UTF-8 -warn:-deprecation,serial,unused -proceedOnError -bootclasspath '' -classpath $(compile_classpath) -d . @classes
-@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@@FOUND_KJC_TRUE@JCOMPILER = $(KJC) -classpath .:$(USER_CLASSLIB) -d . @classes
-@FOUND_GCJ_FALSE@@FOUND_JIKES_TRUE@JCOMPILER = $(JIKES) $(JIKESWARNINGS) +F $(JIKESENCODING) -bootclasspath '' -extdirs '' -sourcepath '' --classpath $(compile_classpath) -d . @classes
+compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:$(top_srcdir)/external/jsr166:.:$(PATH_TO_GLIBJ_ZIP):$(PATH_TO_ESCHER)
 
 # handling source to bytecode compiler programs like gcj, jikes  and kjc
-@FOUND_GCJ_TRUE@JCOMPILER = $(GCJ) -C -g -w --encoding=UTF-8 -bootclasspath '' --classpath $(compile_classpath) -d $(srcdir) @classes
+JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath '' --classpath $(compile_classpath) -d $(srcdir) @classes
 @CREATE_COLLECTIONS_TRUE@COLLECTIONS = collections.jar
 @BUILD_CLASS_FILES_TRUE@noinst_DATA = genclasses compile-classes resources
 # endif
-EXTRA_DIST = standard.omit.in mkcollections.pl.in Makefile.gcj split-for-gcj.sh
+EXTRA_DIST = standard.omit.in mkcollections.pl.in Makefile.gcj split-for-gcj.sh glibj.zip
 CLEANFILES = compile-classes resources classes \
        glibj.zip classes.1 classes.2 Makefile.deps \
        $(top_builddir)/gnu/java/locale/LocaleData.java \
@@ -520,13 +502,13 @@ sinclude $(JAVA_DEPEND)
 @CREATE_COLLECTIONS_TRUE@      ./mkcollections.pl $(top_srcdir)
 @CREATE_COLLECTIONS_TRUE@      $(JCOMPILER) `$(FIND) $(COLLECTIONS_PREFIX) -name '*.java' -type f -print`
 @CREATE_COLLECTIONS_TRUE@      if test "$(FASTJAR)" != ""; then \
-@CREATE_COLLECTIONS_TRUE@        $(FASTJAR) cf $@ $(COLLECTIONS_PREFIX); \
+@CREATE_COLLECTIONS_TRUE@        "$(FASTJAR)" cf $@ $(COLLECTIONS_PREFIX); \
 @CREATE_COLLECTIONS_TRUE@      else \
 @CREATE_COLLECTIONS_TRUE@        echo "fastjar not found" > collections.jar; \
 @CREATE_COLLECTIONS_TRUE@      fi
 
 @INSTALL_CLASS_FILES_TRUE@install-data-local: genclasses compile-classes
-@INSTALL_CLASS_FILES_TRUE@     -$(top_srcdir)/mkinstalldirs $(DESTDIR)$(pkgdatadir)
+@INSTALL_CLASS_FILES_TRUE@     $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
 @INSTALL_CLASS_FILES_TRUE@     cp -R gnu $(DESTDIR)$(pkgdatadir)
 @INSTALL_CLASS_FILES_TRUE@     cp -R java $(DESTDIR)$(pkgdatadir)
 @INSTALL_CLASS_FILES_TRUE@     cp -R javax $(DESTDIR)$(pkgdatadir)
@@ -550,7 +532,7 @@ sinclude $(JAVA_DEPEND)
 
 @USE_PREBUILT_GLIBJ_ZIP_FALSE@glibj.zip: classes compile-classes resources
 @USE_PREBUILT_GLIBJ_ZIP_FALSE@ if test "$(ZIP)" != ""; then $(ZIP) -r -D glibj.zip gnu java javax org sun META-INF > /dev/null; fi
-@USE_PREBUILT_GLIBJ_ZIP_FALSE@ if test "$(FASTJAR)" != ""; then $(FASTJAR) cf glibj.zip gnu java javax org sun META-INF; fi
+@USE_PREBUILT_GLIBJ_ZIP_FALSE@ if test "$(FASTJAR)" != ""; then "$(FASTJAR)" cf glibj.zip gnu java javax org sun META-INF; fi
 
 resources: copy-vmresources.sh
        @list=`cd $(top_srcdir)/resource && $(FIND) gnu java javax org -name \*\.properties -print -o -name \*\.css -print`; for p in $$list; do \
@@ -629,6 +611,7 @@ dist-hook:
        rm -f $(distdir)/../gnu/classpath/Configuration.java
        rm -f $(distdir)/../gnu/java/security/Configuration.java
        rm -f $(distdir)/../gnu/java/locale/LocaleData.java
+       rm -f $(distdir)/glibj.zip
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
index 89e1b94e81e981c520b204dcddcd62018adc60f8..88eef1abe923c1f6e2ded0e8a768b3f7935f58aa 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class and b/libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class differ
index 85adfcd3b6e4213de43a9abf19d0a13cb6ba3058..ec399198ea7a492f83a781df822d53c30dc14342 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/ByteArrayComparator.class and b/libjava/classpath/lib/gnu/CORBA/ByteArrayComparator.class differ
index c6cfcd242a255042f70e0194b9169fa0031e6c35..1935411e9de37e6be7d6185405a9625f16c78033 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class and b/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class differ
index ede296b9dd6c90accd2ac9a294b6ea538c7abe29..0b886ecfd5725ac58c70d4b8f90caffdb9d24755 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/CollocatedOrbs.class and b/libjava/classpath/lib/gnu/CORBA/CollocatedOrbs.class differ
index a2b42881116d4eb6b6879a8e99bd2ee396bc450d..b78d6f4e47b5caa8dd70c84423949bb5646e56b6 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/DynAn/DivideableAny.class and b/libjava/classpath/lib/gnu/CORBA/DynAn/DivideableAny.class differ
index 56c73a613ac8d47c4ebb01a0f49fbecded698c96..48c6b331e32dd75a8f8ae75755805fb7f3f25e08 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynArray.class and b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynArray.class differ
index 5e7f599bef19a7ec2544ec3fec139f323547d5d8..6bfc3e39a70154593149329bbdc34ec9792303ce 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynUnion.class and b/libjava/classpath/lib/gnu/CORBA/DynAn/gnuDynUnion.class differ
index af7cb100bc78e3e1baf2d7372c5b7f9af5282f04..3b05758ef333e22474bb73d636d599a0f8681b8a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/EmptyExceptionHolder.class and b/libjava/classpath/lib/gnu/CORBA/EmptyExceptionHolder.class differ
index 88201b7615d3e1ffc4e21de87f5653579f55cae3..bbb7452eebc359b94fb941fdcf0654443c9ebd55 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/GIOP/CodeSetServiceContext.class and b/libjava/classpath/lib/gnu/CORBA/GIOP/CodeSetServiceContext.class differ
index b6eda9e7fe0221ac8e3b9713b7b0ab4c315d7a81..222baca1d049a170f4d67faed6ceced86b6c98e2 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/Interceptor/IORInterceptors.class and b/libjava/classpath/lib/gnu/CORBA/Interceptor/IORInterceptors.class differ
index f7c29adc237208da0033e9288a9c9bd49df78b60..64d75d7046a9395a8b039a753ea8407b1dec39b9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/IorDelegate.class and b/libjava/classpath/lib/gnu/CORBA/IorDelegate.class differ
index d778d558ba94c572a88d10ac90a6edb4b055c037..220af43ef4ce6bdcb9ce3657a59eb9a97203d2c9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class and b/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class differ
index b8b674a19e479f83cec4c72d78a1549b83488f1f..dfd5c6413771fe86f616833d70497d83daa68adb 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/OrbRestricted.class and b/libjava/classpath/lib/gnu/CORBA/OrbRestricted.class differ
index 8881d5db1335d019cbdf2b9a89f73521777f227e..7fd549fe35d6d7652285c299c27ba93601b50221 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOAManager.class and b/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOAManager.class differ
index bc813062b99ff644b34479fb23cb2c2cb6e4f448..55ce01dc78efea1510f1540f1a1469a62c9c84c3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/ServiceRequestAdapter.class and b/libjava/classpath/lib/gnu/CORBA/ServiceRequestAdapter.class differ
index 11d150dbf5131f1ed6b0805c0eb2161e566b6f5a..ed97df78d9b226da320e9e0d63ad1d57de0eb5b9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/gnuContextList.class and b/libjava/classpath/lib/gnu/CORBA/gnuContextList.class differ
index 4afd4167444be19350829c006d1f4ffb0f224fda..614d005c6967055cf4d8d4515f5b7bafbaecfdfa 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/gnuExceptionList.class and b/libjava/classpath/lib/gnu/CORBA/gnuExceptionList.class differ
index 24fd691e54924353147d8b0ca84b378716b613a5..f787e7b67e0c079001346843341754307273415e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/gnuRequest$1.class and b/libjava/classpath/lib/gnu/CORBA/gnuRequest$1.class differ
index c40b1808a1d8aced5afbb4c11aae2908e7b2a486..873e8aba8886914997171a8a3d577edffc0f33b5 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/gnuRequest$2.class and b/libjava/classpath/lib/gnu/CORBA/gnuRequest$2.class differ
index 3333011a1ef030e7768b6da70d9d062e45c498bc..61633c2ce0d69b1d6b413b84082dcb45ff25708e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/CORBA/gnuRequest.class and b/libjava/classpath/lib/gnu/CORBA/gnuRequest.class differ
index 01dff2d71d5e7f1604daa092a1d7aa47074dc25d..5ba2c0d87007bf90467e2d200af6dce939c0171a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/classpath/ServiceFactory$ServiceIterator.class and b/libjava/classpath/lib/gnu/classpath/ServiceFactory$ServiceIterator.class differ
index 96ba62654c9f13ba34439a4deebbfd1e682f78fb..77f126888db295b19f4b23a37b1f09267dfb6987 100644 (file)
Binary files a/libjava/classpath/lib/gnu/classpath/ServiceFactory.class and b/libjava/classpath/lib/gnu/classpath/ServiceFactory.class differ
index 3d1680839e15759b0f0ecc8c89621a65e3791822..4aed261f90f8eba8c755f4e6444742fcf0c60705 100644 (file)
Binary files a/libjava/classpath/lib/gnu/classpath/ServiceProviderLoadingAction.class and b/libjava/classpath/lib/gnu/classpath/ServiceProviderLoadingAction.class differ
index c3bedb71e3498e4df9f715c3c12bdbc03a3e2b9b..abc3f679d57a9aea214c55005dc3576ab64ad6cb 100644 (file)
Binary files a/libjava/classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class and b/libjava/classpath/lib/gnu/classpath/jdwp/VMVirtualMachine.class differ
index 3ce2f59cd27b26a9c15a9f63d7b0023cc8bce1d4..0f02270bc1e351a7bb3cc3a4690a7dcd2fc599f9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/classpath/jdwp/event/ExceptionEvent.class and b/libjava/classpath/lib/gnu/classpath/jdwp/event/ExceptionEvent.class differ
index 00c99201a97b02223610e45d3c8eb30003d890a6..a50d370f78d9bbc811030056dcbe9af0b326cece 100644 (file)
Binary files a/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/StepFilter.class and b/libjava/classpath/lib/gnu/classpath/jdwp/event/filters/StepFilter.class differ
index 093ff57353e201b6a1b990c18c7ac2e18bda0ca2..c26126f06fe38e8fe06224c73da67baebb45e3cd 100644 (file)
Binary files a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.class and b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ObjectReferenceCommandSet.class differ
index 4783f59bf808086406e4afb347aef3067e9571fe..0190c6adf8ad01dd48f04547bf72989f89a91dad 100644 (file)
Binary files a/libjava/classpath/lib/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.class and b/libjava/classpath/lib/gnu/classpath/jdwp/processor/ReferenceTypeCommandSet.class differ
diff --git a/libjava/classpath/lib/gnu/classpath/toolkit/DefaultDaemonThreadFactory.class b/libjava/classpath/lib/gnu/classpath/toolkit/DefaultDaemonThreadFactory.class
new file mode 100644 (file)
index 0000000..ba1685c
Binary files /dev/null and b/libjava/classpath/lib/gnu/classpath/toolkit/DefaultDaemonThreadFactory.class differ
index 4ddeff914ca8d5190d430fe401a5f4b11c46f9bd..a2237951b0f6068693c3cd5f0ed25f8a79fbbe9a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/ClasspathToolkit.class and b/libjava/classpath/lib/gnu/java/awt/ClasspathToolkit.class differ
index 39357c5236aa677e04aa48c7b673d5a05b0ca9ea..08a52965c78b11cecbcbcda01cf383767c3a8072 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/EmbeddedWindow.class and b/libjava/classpath/lib/gnu/java/awt/EmbeddedWindow.class differ
index 9f70d72c371dcf720513d49f5a7fc099a0f3477a..a33239c8162940fddfbb57c9357ee000e2676652 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/font/GNUGlyphVector.class and b/libjava/classpath/lib/gnu/java/awt/font/GNUGlyphVector.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.class b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.class
new file mode 100644 (file)
index 0000000..0ea8a6a
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.class b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.class
new file mode 100644 (file)
index 0000000..982715f
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.class b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.class
new file mode 100644 (file)
index 0000000..9162dad
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/image/AsyncImage$AsyncImageSource.class b/libjava/classpath/lib/gnu/java/awt/image/AsyncImage$AsyncImageSource.class
new file mode 100644 (file)
index 0000000..8539c77
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/image/AsyncImage$AsyncImageSource.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/image/AsyncImage.class b/libjava/classpath/lib/gnu/java/awt/image/AsyncImage.class
new file mode 100644 (file)
index 0000000..ad1c0c2
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/image/AsyncImage.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/image/ImageConverter.class b/libjava/classpath/lib/gnu/java/awt/image/ImageConverter.class
new file mode 100644 (file)
index 0000000..208d59b
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/image/ImageConverter.class differ
index cbbf6fd7b8c0a8684dd8d917fcecfb3fe93bd3d7..ff4c6e491f5f6d96ceb2bd05b0120d5a1634aa19 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class and b/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage$Bucket.class b/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage$Bucket.class
new file mode 100644 (file)
index 0000000..3305bc5
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage$Bucket.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage.class b/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage.class
new file mode 100644 (file)
index 0000000..1bba56f
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/java2d/PixelCoverage.class differ
index d4615e8231587d2e1e5095381d79512c4a95d79d..e3b450ed8e39a7017fa628b3aaafcfa091c8a21b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class and b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ShapeWrapper.class b/libjava/classpath/lib/gnu/java/awt/java2d/ShapeWrapper.class
new file mode 100644 (file)
index 0000000..9e67e6b
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/java2d/ShapeWrapper.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/TextCacheKey.class b/libjava/classpath/lib/gnu/java/awt/java2d/TextCacheKey.class
new file mode 100644 (file)
index 0000000..f966155
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/java2d/TextCacheKey.class differ
index 6436a4492961b4bf4d61d60c1367251e5f60fa66..e8b506246a7a4319968d69f879cb296502e46f4f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class differ
index 49ee40561eb60f0ed2d6f57f5f59c697510d7005..9fcc24310b49b326587463ba2cb10a5c4eda5ba4 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class differ
index f02fab32ce79829fe45f9946a182b59c0ff7c625..482c60ab7499e271278e8e3c7d4aaf6a1130d7a2 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoSurface.class differ
index 0770325b444a68900017f0ce496fdf300297ab23..9bde7ce1964119ce1662a8f2173121d814258bc5 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/ComponentGraphics.class differ
index 2df0587b70ce8810580fd9b814799182a8ed79f6..1dace9a00f1ea278903fc3a9e4975b836153c48d 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class differ
index a20978bc9969d8c1cb5de68df354398b5027ecf2..e6495e90232a8b81e4bd5ed4da91811978dfa71e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class differ
index e4dfec577ef54f41da380731372d36a67f0d5a28..839acb4c958a09a643e6d150f38a63b3eeec14ad 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class differ
index 6e3a11a3cf1c30a780846a4a025ad41b7afd06ff..d9feb6be6dd9ce9813c22e4a0af9259b7fe4ac1e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.class differ
index 5806dc2f5a82805dd90ed1447992a0d21e7b015a..f2590b200035c760f449583302c540ad0b1c1c44 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReader.class differ
index a4105ea03a9dd67ea6ebd3f62a77c833f633ac9c..fe6a391a33ed9893fbf4fe1fad34da701ab8a50f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.class differ
index 3eb57b1611fa69f36a6239593daec4efe51f3169..6436b9a27a945040840c405ef9a892b8da91b666 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter.class differ
index 84223c8a55be6283cef34bcbd9b119ecacb1b531..7aa9b30457d20e6225e18185f8e2e30874f02918 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.class differ
index 53fcf3bbbcb5c0143e8c369cc920adf84a5c8cf9..66d3f1f1de87f2df64d7883f5f33c1eeabd03b54 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec.class differ
index 118b4d808664501e6766ca3c1a254a0755f40893..e53fa21ce722cc5dad428e1dc91e98b35a0afc4d 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.class differ
index a13f74232bb7c2b21f71df7d907f0431309a528e..eb8c279e0cabc5741d1523805d6c4b0dc2884dc1 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode.class differ
index 97fe84a8ec8cbbd9f1cb2aa8d2664cac6ca267f8..114b8f00e57980d75fe239811f8548042130d8f6 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.class differ
index abf76c0d9ee15a930e5b17492d91a488995a12d5..bc45490cfe9dceead59be14e7975fdb8a012d1c2 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer$RepaintTimerTask.class differ
index 45f9c47f8c6e8199373199de090d6e0cd1fbe1ed..12f5a707025eb5ca0b730cc57f59c9b9f963ae42 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkComponentPeer.class differ
index a8334f655bc9fb867e71db7b313dda0db61d59f5..37572654a12cc1404a73cd09972c97b223b8d8ac 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMainThread.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkMainThread.class differ
index 8e9d88427b3f3327acf45b37c4a150a4899b9420..c3d1948c8b9231f3d687b137ecba8cd2c85c5ecd 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit$LRUCache.class differ
index 15180e0769bd0f6bb624ceb3c8e6208200f7c7e2..abdb577004af906a23a348800ac7122067913346 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkToolkit.class differ
index a348cf02d4ab66380c7d6d3adfc3dd7bfde58533..26550bb0e3e976575aab49076c0ef35c41891b60 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkWindowPeer.class differ
index a5df713903faaa111deb813fdd2c81be8cc12ad1..13a8368cd44faf732a88f92389f179a0f9917c86 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/VolatileImageGraphics.class differ
index a290ef3135c3591d167e119e24ee1f738e9d0390..a6effe15bc345d2360bea5b5bf388d1423b3937f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.class differ
index 7259ec2e1a3dca9450fe5030524466f26b13fe66..8a026d829bdde52867b56674c248a762b6e4de9b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.class differ
index fce29a616f2b51a8ddb4f759cb8703adc725da8f..89d5c5173d61d68b468ab13cec02208579444638 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class differ
index 63400301f79723793396ae14c9e6c89bb6390cf1..39471592d1b57deb3edd9643f7df5c88b4c5c97e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.class differ
index 394a3acf5bed59e70d6548a512371f35fb6b2187..ea9d1cbf35404cceb82fb3f25bf7302cef77b1ac 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.class differ
index cb80579e17f66e14a3f62a641a74fccf8c9d1ed2..4e14f3086b3794ea00547a6d079113484fa67cdb 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.class differ
index 643ba7a05cc7794682bc1f21612920ab9add24f1..5cf6ab822c5248ddd923cc3760bdb8287c442448 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer.class differ
index db2bf26d071bc98d1ef63ca68b464d1a894b81df..db5d6e7ff28a6bfe0988029e219d8fb4a9aae6e8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.class differ
index 55eaafca06d8552a660d8da2367b3c197269770f..2335ea0dd49262fd6406b5d586cdaaf43dd848d3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextFieldPeer.class differ
index 3fd30fabdd8d45df76bf0f62e9230572ab34ae7d..89ad94e3fbf44578686b57c3bff76cd7fa86c7f9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/print/PostScriptGraphics2D.class and b/libjava/classpath/lib/gnu/java/awt/print/PostScriptGraphics2D.class differ
index 49bbe1c45665540b3c72bc682c9b3e64a8cdae91..e6d552587416cfd93d3955ca27dcb3c9f74131f8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/print/SpooledDocument.class and b/libjava/classpath/lib/gnu/java/awt/print/SpooledDocument.class differ
index 76e89f2ce921556740c1cdd46bfb1a69366520e0..9146d21090140ca8e4a72c867a98fc38c8c14d79 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/io/PlatformHelper.class and b/libjava/classpath/lib/gnu/java/io/PlatformHelper.class differ
index ff63fd05907df86e49aaaeea8dd96aa6f9605aff..1cbf3e0d15552d26edae4a5ccb6f19a5038aff3c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/lang/management/BeanImpl.class and b/libjava/classpath/lib/gnu/java/lang/management/BeanImpl.class differ
index 80aa4cf7789a43cefdb596dce591dcbf1e4b56c5..f2eb3336b2758dd426e32ac70c70a7f0e6eac5b8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class and b/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class differ
index b2fa5f27cdf0f5f17edaf255488ea3a7f214ed98..88a6dd3036916a7e1414b2207bdd971d55d264e5 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/locale/LocaleHelper.class and b/libjava/classpath/lib/gnu/java/locale/LocaleHelper.class differ
index 8f821023465fc62c0e7edbb2e3213d971eb5d8fc..fac66baa2e34628e3ca3812324675c7bfd54e5c9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class and b/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$1.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$1.class
new file mode 100644 (file)
index 0000000..e98e106
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$1.class differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$2.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$2.class
new file mode 100644 (file)
index 0000000..00d0f21
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$2.class differ
index 166210902d046a75dfca69d531985f356524377d..37c41474f05d5d45c434178b6e54fafa9e64ac81 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Decoder.class and b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Decoder.class differ
index fed5aaf03847a8918a6c6e87b7d0efbd217f0c13..4c467cba21efe176cf03cbaf7c3bf221abff7934 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Encoder.class and b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset$Encoder.class differ
index abbfcc29ec550d30de781daa977d4201d8a23785..522e716131bb04e7bebfecc0591a78607615c733 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset.class and b/libjava/classpath/lib/gnu/java/nio/charset/ByteCharset.class differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.class
new file mode 100644 (file)
index 0000000..27a0d83
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.class differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.class
new file mode 100644 (file)
index 0000000..654da73
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.class differ
index 85f73b42322af3d29e97c1106f0539c7ebbb2d5e..8c7cfa89f8520af0c2fc5e9f2ec6f68811e754d6 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Cp424.class and b/libjava/classpath/lib/gnu/java/nio/charset/Cp424.class differ
index 6799af3e1ea9c1e6595197c78d939f419b32d4e8..68013652bb5d505664337c6325b400cb6f607ee0 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Cp437.class and b/libjava/classpath/lib/gnu/java/nio/charset/Cp437.class differ
index 3dc1a6402f1f851993a2f893a9b977fae3847df4..5d34ce8df1ee2d7c0fa145abdd44da07d7b30a0f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Cp737.class and b/libjava/classpath/lib/gnu/java/nio/charset/Cp737.class differ
index d571c10661acd7c7c07287c440fdde89d477244b..0f6ad7409b3e98c38fa5c0381a9b5577517c7415 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Cp775.class and b/libjava/classpath/lib/gnu/java/nio/charset/Cp775.class differ
index 7196ca2de2d37b2714d1c3a51288f26e8f86317c..dc3faddc1331e6a7c8085caee64c6a7aafd9615f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Cp850.class and b/libjava/classpath/lib/gnu/java/nio/charset/Cp850.class differ
index 8373403213ec30f21d82a7acc5d7571c8393d74f..523a82b65d488584417e17fca8eb8f167c4747fa 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Cp852.class and b/libjava/classpath/lib/gnu/java/nio/charset/Cp852.class differ
index 17c1793bd757956ef0f1b615850db6a85c40c7d6..90480934fa74e3fd0ac4c80c634e434835e913ec 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Cp855.class and b/libjava/classpath/lib/gnu/java/nio/charset/Cp855.class differ
index a214f8effa3688fdc0157f2239e955cd01762ee1..cd7c28444809fc7b1c450f159e3fc64d8900f89c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Cp857.class and b/libjava/classpath/lib/gnu/java/nio/charset/Cp857.class differ
index 8553e8d875c7bd5e3d6a68b55ab05d8c1e729dda..666e2cff6099ccc7e863a1dd214ecd9f710abb1e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Cp860.class and b/libjava/classpath/lib/gnu/java/nio/charset/Cp860.class differ
index 634255c87ef56ca393050f3bd0cc54ff48b5e53d..462c553775974b76c655e3250b333cd60817032f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Cp861.class and b/libjava/classpath/lib/gnu/java/nio/charset/Cp861.class differ
index ef5df4421081c8b125f3534bee8f4e948ee8bdb4..7d89f443aba1769cf0c336b868d542d4e79a320b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Cp862.class and b/libjava/classpath/lib/gnu/java/nio/charset/Cp862.class differ
index 0e03ff4d4b23a3d1dcaea054399b45f13ba3da39..cce7044363e402a51dd7c4e57e3ed32d5172e54a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Cp863.class and b/libjava/classpath/lib/gnu/java/nio/charset/Cp863.class differ
index c982051bfb7f5f289888e3845ee2d43b7b26ec79..fed145730235caf0d7882be60becbbeaa38ad4f3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Cp864.class and b/libjava/classpath/lib/gnu/java/nio/charset/Cp864.class differ
index cb82993678af49ff66f8b4cac47ee944b5599d35..7f64054b09f2e941e8f0f0943bc9b12c4714025d 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Cp865.class and b/libjava/classpath/lib/gnu/java/nio/charset/Cp865.class differ
index 16ca0f4cd824a8000512238938873409682df42c..37568f0b83f995128cad880330c35f908686a688 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Cp866.class and b/libjava/classpath/lib/gnu/java/nio/charset/Cp866.class differ
index 4b692542f2385d79fa89432a5ed0edabea80e1f5..d3e42d93e697aa2732e5293256b28d059738a421 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Cp869.class and b/libjava/classpath/lib/gnu/java/nio/charset/Cp869.class differ
index 24ab44ca9422fdfd1dab6ba376d21ed873e7dc73..e1e2150f56544d0e5d5ef5adc97c1fcc4256f756 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Cp874.class and b/libjava/classpath/lib/gnu/java/nio/charset/Cp874.class differ
index 4e81021f07b400afec15c8cc5256fb7e1207e3e9..9464535d5511ebbd2a9803b668393d180bd3c3a1 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/EncodingHelper.class and b/libjava/classpath/lib/gnu/java/nio/charset/EncodingHelper.class differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$1.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$1.class
new file mode 100644 (file)
index 0000000..1d7d769
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$1.class differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$2.class b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$2.class
new file mode 100644 (file)
index 0000000..a03951c
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$2.class differ
index 64e6768b89544eb009f73277d47904f781eceebf..10d63f4e864d2c8f29f2321f1a652ec03e708f37 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Decoder.class and b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Decoder.class differ
index 6fe13059542293462c107879f6a90a129f98de3d..5a570105b6078e642481f815b7d9d83ef9862686 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Encoder.class and b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1$Encoder.class differ
index 28c62ca33ce8d528d8c21011d21f0b17c0dd9bb8..04d0a3770cb98d8b89053e24155ce9fdf0392c43 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1.class and b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_1.class differ
index cc21df464c677d00659e2631a9ec056509b95127..3c6918720613a0a6f224f86eddee4a3752abe73f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_13.class and b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_13.class differ
index 89bf8bfd60e63aaf0637906e06dfe1ccd6c34f2f..51ba54e904bc5da57ed5b409e67baa30f2cf1a6f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_15.class and b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_15.class differ
index 71744a0ffdd3d2192033ccd9b81b02ebdfab1dad..f52316d5d2515383f0866355ca43214d0a850b08 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_2.class and b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_2.class differ
index 807b45e816b1d84299f6571117fee21d4455563e..8c593144b20144e4caa9a75dde2e3cccc808c7bd 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_3.class and b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_3.class differ
index e4fe01855836270400aa43af2e46d0621cdeda2b..051cc3d3754078168cb82398a119ff344fe5e4db 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_4.class and b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_4.class differ
index 70601828b0ef012a83c732be92b4ae43e5246e8a..ec1f56adede56395ded52f8e550eae2b241c4c12 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_5.class and b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_5.class differ
index 4e7ed95828f1d45cfd4a415b2ee493c6ceb8dde7..be1564f4713207147f8d6ff2ce5b68fc327fb370 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_6.class and b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_6.class differ
index 11c9523c7d9cdd9c56d594d125b8d9917931ecbc..cc4e0f1e196739d40076e2b0eb7433c57b412fa2 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_7.class and b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_7.class differ
index 58f8954a97b710c6aab80de8f4bde4fd2d724dd7..1b2892e62432dee11a92a7cbbdcb06bbeb60888c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_8.class and b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_8.class differ
index 8c9a6fa38a2d93b937a17bf0391934e2b332da0c..d306a5a1e73634e42be00ad4c6345e0d8958a3b7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_9.class and b/libjava/classpath/lib/gnu/java/nio/charset/ISO_8859_9.class differ
index 32beb9e78675e524af7637b5b220e59065db75a0..557d8a3d821f5f1371bd871f511677e2ce02d8d0 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/KOI_8.class and b/libjava/classpath/lib/gnu/java/nio/charset/KOI_8.class differ
index 20728d0b68ff6c17cb474d72aa9e2c88893b95e7..cccdca52d71f613526a70d642a0f904086a3ab89 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/MS874.class and b/libjava/classpath/lib/gnu/java/nio/charset/MS874.class differ
index 53a16c2831724be1df360bbe78403a518553df3e..be90e5a7450d9e7670defc381e20695144abefb0 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/MacCentralEurope.class and b/libjava/classpath/lib/gnu/java/nio/charset/MacCentralEurope.class differ
index 531b25f639179a99ad1040557a14ba65a48f476e..590543136c3f0df9f24b48d036410e1c30f6490d 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/MacCroatian.class and b/libjava/classpath/lib/gnu/java/nio/charset/MacCroatian.class differ
index 1581808705238252bd4045599f4e12c770aba2e5..846a7894afce687d2083f000570f2f8afeab6464 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/MacCyrillic.class and b/libjava/classpath/lib/gnu/java/nio/charset/MacCyrillic.class differ
index fe35fe8e12387f2d6f9a5d6561fb13f06f4bbc34..52e6f45bbe0d6ce4a6aff86e51d204c97c549352 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/MacDingbat.class and b/libjava/classpath/lib/gnu/java/nio/charset/MacDingbat.class differ
index 3e88fad3a52ab639d612d2af2074ff6f317f6f5e..d586c5595d9e896fa515997afceb06acc1cfca9c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/MacGreek.class and b/libjava/classpath/lib/gnu/java/nio/charset/MacGreek.class differ
index 5d72231184a160f93f093eb40477cd0005a2464d..767c707b3857ea0ddae1c73cd6ec32d8a3cdc66e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/MacIceland.class and b/libjava/classpath/lib/gnu/java/nio/charset/MacIceland.class differ
index 9185ccc6d812c46919c6d7cafe793981381f3dc6..b9d49539ea72b818fb052d2f1d3ccedcc21d7731 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/MacRoman.class and b/libjava/classpath/lib/gnu/java/nio/charset/MacRoman.class differ
index ff7cd8a13c79396311da0412b80e4dceaace6620..9749b390b4938fac489f3ec83f702f9613d6857c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/MacRomania.class and b/libjava/classpath/lib/gnu/java/nio/charset/MacRomania.class differ
index 16996e6ff4015c0a4cc8eacdcbc05aa56bd13c99..ec1b6ae77326a82dc7e11c07abd98c328f1e587f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/MacSymbol.class and b/libjava/classpath/lib/gnu/java/nio/charset/MacSymbol.class differ
index 92a895a7887010d67ad73b8d125e48ea0f73fd7e..fdcebea05dc299858c87013c366d2caf72e8e5f0 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/MacThai.class and b/libjava/classpath/lib/gnu/java/nio/charset/MacThai.class differ
index 177250741dce627b4499dbbcea4c8b2f1af39644..4eb0780012b041ef2290981186e70372d3c2e6e3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/MacTurkish.class and b/libjava/classpath/lib/gnu/java/nio/charset/MacTurkish.class differ
index ecc9fd09e7ca1f3d1e370f3100efaa49e883f5ec..8fea10f671fd3edc54e879e56ed01b739135bcad 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Provider$1.class and b/libjava/classpath/lib/gnu/java/nio/charset/Provider$1.class differ
index 52cd4e4477c0519e962e7f1c1ccf4eb7e93d093f..4324dce01d0e4d70c4091a4c3ac37f7d14333c8e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Provider.class and b/libjava/classpath/lib/gnu/java/nio/charset/Provider.class differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$1.class b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$1.class
new file mode 100644 (file)
index 0000000..646f96e
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$1.class differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$2.class b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$2.class
new file mode 100644 (file)
index 0000000..25ff411
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$2.class differ
index afa2964f97ec920b1eca150679629d82fcc27045..cae4a18fc62a07cb05fc12e42084217dd169c46f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Decoder.class and b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Decoder.class differ
index 6b770a24f0034fcdd1d688008d20ce75abcb258d..c95cd1113d550b149f15f23341dce55164e11636 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Encoder.class and b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII$Encoder.class differ
index 7e33ad70eeb7b9c57c3b82bb4040be9f9c26bbb7..1831af96a725a61749231b5b10ebf33cf72475d1 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII.class and b/libjava/classpath/lib/gnu/java/nio/charset/US_ASCII.class differ
index 3cf9112ac6060e83826a061590681405c986c1d1..a69a3a9fe97f10d7cb647ce1eb86725ebae13079 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Windows1250.class and b/libjava/classpath/lib/gnu/java/nio/charset/Windows1250.class differ
index 55fdf449389a5997ee47442b1be8f1d1bc6ce549..49f321d6bca5e8117c9506bccf0aaf8a19ca2551 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Windows1251.class and b/libjava/classpath/lib/gnu/java/nio/charset/Windows1251.class differ
index 8885cd85c7b9453fb33a39c509c9a55836c0bd06..10659edfcd352b25f1dc310961e9d47caa675b02 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Windows1252.class and b/libjava/classpath/lib/gnu/java/nio/charset/Windows1252.class differ
index 522f9c3987e691b50273fd5b97e08b5ab5856aac..7357b7c3aa58db1d3090b3cb06b530786f14af62 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Windows1253.class and b/libjava/classpath/lib/gnu/java/nio/charset/Windows1253.class differ
index a254778da8be9bb78746d375ad54054d31c5653b..06c622ee851c542c5d79d7446d0b9d587a73786b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Windows1254.class and b/libjava/classpath/lib/gnu/java/nio/charset/Windows1254.class differ
index 2326a628c88ecc23bfd976be084f122c50a52cdc..6991f6d73793e74d62751c41bf0722e673f128bb 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Windows1255.class and b/libjava/classpath/lib/gnu/java/nio/charset/Windows1255.class differ
index 132aee7793157077d377fc23bad87e3fc9268ed1..87483fe15e1ea833235fa53a79e3ec22cb1f510f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Windows1256.class and b/libjava/classpath/lib/gnu/java/nio/charset/Windows1256.class differ
index 9b2c6935ec382aaa68f0afd87b9d660ccf612ea8..6226c8abb8abfd316bc89b95ac7b09469a61f214 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Windows1257.class and b/libjava/classpath/lib/gnu/java/nio/charset/Windows1257.class differ
index dff7817b2ac44671297445ef002468bf946fc93b..225c5d3628bed2c2c56ab0c1f04552a69f10c474 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/nio/charset/Windows1258.class and b/libjava/classpath/lib/gnu/java/nio/charset/Windows1258.class differ
index 1f187b7679426361e44b3942082e262345049332..8acb0f8621420e2032cc99bf684c893ead564e38 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool.class and b/libjava/classpath/lib/gnu/java/rmi/server/ConnectionRunnerPool.class differ
index 39323eb2a9d34a344b9f5ee531c4be48c372b1c3..f453e3176fbe34d1d398978c18f34753602bab62 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class and b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class differ
index fef7f673bd1ac645763adc96e197074036e2dafd..96787de186e352b3dcfb3200faa697bcae25009b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class and b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class differ
index c39da5c9136a71bf476e28dc7e75efb59eda1dd1..ca9e12924be8ee44e2a1d5f4a3cb03ed0a3b25d7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class and b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class differ
index 88a6fdec35678180abeb1f6083af21e891074970..6cb48a65e3e69a8c1b96798a19fdfabf68ac1b09 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/rmi/server/RMIObjectInputStream.class and b/libjava/classpath/lib/gnu/java/rmi/server/RMIObjectInputStream.class differ
diff --git a/libjava/classpath/lib/gnu/java/util/LRUCache.class b/libjava/classpath/lib/gnu/java/util/LRUCache.class
new file mode 100644 (file)
index 0000000..97b6468
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/util/LRUCache.class differ
index da1645dc711287e2941f5de953d37158861f3a4e..f84e8b759e7c78c53a5e2bf3921c65a8a994d337 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class and b/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class differ
index 4dd3fd602f9de4b50cca3ada29c2b3f4046b7110..c4f07208943d1a4d32e0a7911491f04d93f6f00b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class and b/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class differ
index 8d2299f63e5985d7bb12848e5f566e9dda91287f..8e926135966a84ae77f1896ca82ca2ef7663f3a9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class and b/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class differ
index b9be6348bd044f56b7074f6ff9168fe25aa5c553..b0cbde240ab684a83db17ef8606179417c2fb24e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class and b/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class differ
index e7e5fac75f3a2f10d4521bd97c4a275043bb3c53..25f1aafacb4570384f2a2f960940ad409b2cd46c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class and b/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class differ
index 9092caa5ffa4f4c7f0726df4c8ec17130aa6604c..ff81c5978757ea5ef6fabd34ba6be03387e34a6a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RE.class and b/libjava/classpath/lib/gnu/java/util/regex/RE.class differ
index 03dd2facb4a9fb59ad2fa2219caeb3db4ca07128..46de3c96815136574973bf4df60ccc33c5b8a0bc 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/REException.class and b/libjava/classpath/lib/gnu/java/util/regex/REException.class differ
index 45223b2b296c448840a77de974ea4556342bf285..6426e92eb88a13593a7989dcae66ef5cf7a08d41 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class differ
index 64eefa696ceac1b3cb77b2e637a8832c2d7bf744..e9747317af1242d2d72a1959923a929fc8847ff7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.class
new file mode 100644 (file)
index 0000000..a23e960
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.class differ
index 828a02efe08b5e7f77eaec268465e67254be1659..86b3605ca1347af67b8a2bb67fed2d04d6c8e694 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class differ
index 8b63c0b1e0caaaefea57b97ba6df14fd24fceb94..b54a750ae82af68ac9f48dfdeabadb716db6bf71 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class differ
index b288615658e267db9324e7435e8b0a249bb13fd9..00fe6e6d4e8d133709c35f566f1b2749698f32af 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class differ
index 1c7997b6544190b282e411f32e023835822eb87c..9aa8ae42badd005cc5039a70ae520989f88db396 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class differ
index 6232c7e321389e306c30dc6539b823db1d7e8f22..317420b764298e76b061f0974af369def6e4c2f5 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class and b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class differ
index 777d436d796c0f7f917df06d9919ba56eaac47aa..942f48b16cbe06668fbd368486a0164b80629e2a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/crypto/jce/DiffieHellmanImpl.class and b/libjava/classpath/lib/gnu/javax/crypto/jce/DiffieHellmanImpl.class differ
index 2f65103b73cf1868281ecfe3a80023bec2f3b21e..1031c659533494aed5dc9add080011899999a561 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF16.class and b/libjava/classpath/lib/gnu/javax/imageio/bmp/DecodeBF16.class differ
index fe373030d4fa4230b747aa5df7a5f8879bf583f4..93e697b98079c61951c1f9bf0a688d07c34a25f3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB32.class and b/libjava/classpath/lib/gnu/javax/imageio/bmp/EncodeRGB32.class differ
index 5d11e339c168bbc8e60670ef60ab63be57624a3c..d0ef1d1340b53764e3022a54c054d4b19fa640bf 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGDecoder.class and b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGDecoder.class differ
index 0ae6fd9a3fe21aaac0a9f7bd13ce5fa9dcfcdca5..075004966eff98bde3d6d0b0b46a16ee037f923c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGException.class and b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGException.class differ
index 4dc722d41a95fe0580639ccae43ef9a3b66beccc..2a3a8df1e9352db6b10f363dbc4f1be70e944339 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageInputStream.class and b/libjava/classpath/lib/gnu/javax/imageio/jpeg/JPEGImageInputStream.class differ
index e5bd013ae00506e78325c75cd2e6d5038f2870d8..77412e31cc6eade1dd1bb8f189138143b14468ed 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/imageio/png/PNGChunk.class and b/libjava/classpath/lib/gnu/javax/imageio/png/PNGChunk.class differ
index 6712c7ecacff50bcedcbdaec41b8d4d58759e563..8d97bb355f12601c9fc068424aa32c413b411194 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/imageio/png/PNGEncoder.class and b/libjava/classpath/lib/gnu/javax/imageio/png/PNGEncoder.class differ
index 85f16e07f3c05fc002c01e67a34a3c965c2d94c2..f1b9d6158a18c9886ca25612ec327e231a72c138 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/imageio/png/PNGFile.class and b/libjava/classpath/lib/gnu/javax/imageio/png/PNGFile.class differ
index a806c42419c52a7f9d60f8d9fa9e90c4b8675a2a..6769f1894e71ff20e98a51ec2dedf54c28a7dda0 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/imageio/png/PNGGamma.class and b/libjava/classpath/lib/gnu/javax/imageio/png/PNGGamma.class differ
index 66a0933e81ea10d4d04f272e1f0094077e8c0b69..0ef1b5cb0286941ca414afaa69cf00e1b2e8b2e3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class and b/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class differ
index 13e6231a5ae8fe266e039066c713321be38909dd..6081214dc6a54a14adeca726c39a22156bb0a89c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class and b/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class differ
index 99d0cdcee3dc7357c131ebca94062e50d534d22e..86f3ef079540bb96e015affe2440460609315248 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class and b/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class differ
index 060f70738c3f856129b8e55b1c024ac44372b320..c31cffe1ddbce759a6cb0ab8ee3a76a931c2a1e9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/management/Server.class and b/libjava/classpath/lib/gnu/javax/management/Server.class differ
index ea04b309b55a833d677b2db1900bdced3ae546ba..4572fa4fa45a62f2daa300687a9448da941c358e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/management/Translator.class and b/libjava/classpath/lib/gnu/javax/management/Translator.class differ
index 5c399712b0ef0305e8d638e8e5a54c7bfba863e4..0af8b1353e0bce78e59fb8cb4aaa4e5667870f20 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/SSLRecordHandler.class and b/libjava/classpath/lib/gnu/javax/net/ssl/SSLRecordHandler.class differ
index 50b76a7c2817ef4bf8a81fe57c9a08adf3fc8eb0..63a4101494e08439ccb9bf30cd61d142154fa187 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/StaticTrustAnchors.class and b/libjava/classpath/lib/gnu/javax/net/ssl/StaticTrustAnchors.class differ
index 30130493dedd389b7e82e39f76e9cd79e589b07c..9898f9f3ab6a382c1402047be11632145a71db93 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequestBuilder.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/CertificateRequestBuilder.class differ
index 615693f3a14fcacbeecf44c80b69fa34dc2fac92..9c364315302af0bc4d6cd77069d28bd99a5ffe46 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$CertLoader.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$CertLoader.class differ
index f4930c7d070b3c0944b9344d83efdc599c1ca22a..2bc032c56920ec8e47ae1c6134b489333c786d59 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ClientDHGen.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ClientDHGen.class differ
index c614ed58477223762e42fd638c17940d6c814afb..8e97f4050537a3dd93d13fd2d5823010d58bc248 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$GenCertVerify.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$GenCertVerify.class differ
index ae8f45ed816f55b31101efd90584fccf108714b1..229d23063184e927e473546336aa46a2c91d0375 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ParamsVerifier.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$ParamsVerifier.class differ
index cdd388d0381f14568610b24f8c82257693f621d7..6085682a6a7f84105b7c6ab66068532bd06fa027 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$RSAGen.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$RSAGen.class differ
index 5f1a5aba13bcbf7897ead8953775ba10db8f377a..20ddf2940c8ed49a44ba9bc2f5df8e5626ad1621 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$State.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake$State.class differ
index e828c1d0b6953f152c67becfa1c1c611d23063d4..1e344fc6206392b26aefedcc11c57adf73f62722 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientHandshake.class differ
index 43c99e0376798fa422483296b819177b8857aece..166fbb7a74a045c227fd12cb11ca62a2d62a57a1 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientPSKParameters.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientPSKParameters.class differ
index 776eb4a1898292cfb1fad68729b4f8e5dde621aa..71975e7c82d9b3571889b77d8d638031384f9aa6 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ClientRSA_PSKParameters.class differ
index b4d148a45d50d049e1c92a38d87dbacea3d9f1ef..2db5c71dc974f4dc15c39a95f4abcc8fdf0831ae 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ContentType.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ContentType.class differ
index 381d8668168e53e89058ca3ea039d145c1261ec9..018d1d5c6224e4cfddf96996dd285c7d10469a61 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/EncryptedPreMasterSecret.class differ
index 06559fc7184d54dcbff12242ac217d15e99b7cdb..c22cae5ed0d9b5fbb17d762b8f98139f0c18a0fd 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake$Type.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake$Type.class differ
index 85412abbdfa7ba809e3a49172bfb1b08a9c047d2..fe1bac8f3c5126fe6cf21dba8c687bfdb958cae9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Handshake.class differ
index ff278f3e56f69b78221c4c0d017b488462ef70e5..fc39498e5c7ae61358939f94172647b13dfdc7e3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/InputSecurityParameters.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/InputSecurityParameters.class differ
index c36422821d74995e69e4bb47bfe81710c9e5cf35..a2b35ee158ede3a1e2b00e42122cc5882a5a8d40 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/OutputSecurityParameters.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/OutputSecurityParameters.class differ
index e194365901293270a983dd096ab003db69718d9a..356d6c499e6cd7bd379bbcc327b19e4813ff0100 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ProtocolVersion.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ProtocolVersion.class differ
index dca9cec74251457d88b0ed21a7b9207a3ff2d0b0..4d4b03016b5facc3d3a5ae257a61cec50e2be915 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Random.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Random.class differ
index 94c704bde66f12466a48f8207a6a9244657d910f..fb89fc3dc26644a77429e41787ec1b4d0f99a93b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory$Manager.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory$Manager.class differ
index 5a6957bfaf14d48974419fdec656ebd810edbe40..b6d10a334dced3bf2a40e82137bbc86741189632 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SRPTrustManagerFactory.class differ
index d8f64b27a955087b2e3ea15d705b722fe1de73ec..7a0d9d469fcee0283b2d0ed1492f0f2eb510bee0 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/ServerDHE_PSKParameters.class differ
index d938211ac99f5c9861c0cd943fc8b29352183acf..eae778e6e8bf4208b6d77c9cc052bdf06c09efd4 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl$PrivateData.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl$PrivateData.class differ
index 0b4f9d617e853f094c650915422fb8e2dbb0beb1..f6ee27ed4a64e2cb84456eea24237db07591a0cd 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SessionImpl.class differ
index 31d3f3d650e192fc08c6c232b05774eeab1b187c..99fb8bded0f42c861933b3be1999c86bb68010a6 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Signature.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Signature.class differ
index bdf9a8f9c1129422695fb7c019ac7a28acb4b9a9..99584f80ab7d21ee699415b25e8d9f846efb382a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext$1.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext$1.class differ
index acfa9636cab449f6b9bf6caf1b91c3d3b2cd243c..e73c2102da894108ed6b26eb5d57264a14f4e637 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/SimpleSessionContext.class differ
index 22ce76a9f51dd41183f56d765b9d0d2808a5c258..d7dc0c32b113fc55165f41951733c5b5a9f6ed62 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSHMac.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TLSHMac.class differ
index ce63025ddb24dffb941fc715787070ec40a15d8a..168a4cc24950fb7c1244d9feab719e7fc6e88976 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$AuthoritiesIterator.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$AuthoritiesIterator.class differ
index 496741b93b867e15be0a24de06d242c71e84e6fa..7da01ce5acbbcfda588d95136a3dd91801a7aeff 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$IdentifierType.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$IdentifierType.class differ
index c197231aec0ea56256701895e0f03604add0b8de..ebe5d3ad289c7c76544641e89bbce8593c7a8e03 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$TrustedAuthority.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities$TrustedAuthority.class differ
index 63ae2b0ec7f94ff6e69edeb0122e25618fcbe8e0..de8b26df8c6cfb8fcda21145531b73f5a8e7a8cb 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/TrustedAuthorities.class differ
index c3c254663b1fb932066a7cf413d70aa5f51afd7e..68afc6bf8054453448789b9ebfeae8b6db0587c7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/UnresolvedExtensionValue.class differ
index ce7c38555d7db329cbcdcb16441560a18d22a9b2..e64416225db28d0c627dbb13c240bc6eca0bb894 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory$Manager.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory$Manager.class differ
index 5a45271700a2e23c691b4d43f23d7afdc56ab349..2745b238b669af15bf7fe12b0bd06af2688df885 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory.class and b/libjava/classpath/lib/gnu/javax/net/ssl/provider/X509KeyManagerFactory.class differ
index df75b3a547007b2a46a43c9adaaba73d49f2f409..b7882b4a3210b023d0cc4ed8d8ae18086415626c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/security/auth/Password.class and b/libjava/classpath/lib/gnu/javax/security/auth/Password.class differ
index 3eae4f238dae6fb4daac38d845d43cb50f1b116f..bb6f983ab13ac65a3c36025f35f0084ea9b4bf3e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class and b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class differ
index 1b2798c8b6c80fab88f382222f2640422c7a8bdb..eb21af3cac6c5c15c22aab40dc3d7145b8ec3882 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class and b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class differ
index aff7264f4a3766ce790cc026ccbf20981563a9b6..098f70ccb2fdf631688380e2553838e17c377e05 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$1.class and b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$1.class differ
index 0ea0abe19eca6999be30dc51f2c53c784a6e3ee0..98308e6611c53a5b613498b6a6836d803de2cf13 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$DSSIInfo.class and b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider$DSSIInfo.class differ
index f074048d422a3789dd4d98cf9fb2cc38ab4acb49..dec2b5f668206c1f18454e3a7c58d4c6db89d555 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.class and b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.class differ
index 1982f16ae34e7f1dc842fbcfd98c330547856c36..963cacc96fee22f8088f312b7f452f1624909ead 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileWriter.class and b/libjava/classpath/lib/gnu/javax/sound/midi/file/MidiFileWriter.class differ
index 7162632e6e7d4121e7949fbc576cec5cdde865f1..85614a0035573ae75cf4b122afac1568bfc0ce1b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUFormatType.class and b/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUFormatType.class differ
index 2358516af8b98d1cf56a37600e431599bc7cbd25..ef18f64a9b7f0cb6c157b8d9f82648b53531a558 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUHeader.class and b/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader$AUHeader.class differ
index aa0b71e2da67a608f13f517781702c159ec24a67..96a83ff4c4969920c4b6796dee72ba45f1a4f081 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader.class and b/libjava/classpath/lib/gnu/javax/sound/sampled/AU/AUReader.class differ
index 2921e8f68a0903649e4d07cb4cd4750df552ffbf..9bf51ef425048caf8ff9dbee3b3d95d1372bd08e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer$GstInfo.class and b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer$GstInfo.class differ
index 5fedce0c99859798e135e439c6f535a2a2a7e288..4c2a29eefd45524b65b69e3be67521b97a02cc8f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.class and b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.class differ
index ee09fb9caec7855bd6dd0ce6d04a7822c8abdcba..fc3c438b46960fdf0722f22d1f87fb3f10ad02fc 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.class and b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.class differ
index 3adbce40d1210c8acbde72271e05b5f60d0f0ef9..7ced67c621b416291545b6a5c852bd6ad3cb76c3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader.class and b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader.class differ
index 337c1182b1189046c5bba23db46e6695a5acc5e2..5d7c6b60b097a46c113e32fc316e0334f0be77c9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.class and b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.class differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.class
new file mode 100644 (file)
index 0000000..213fa61
Binary files /dev/null and b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.class differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.class
deleted file mode 100644 (file)
index 0facc0d..0000000
Binary files a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.class and /dev/null differ
index a03af0675fb5de6d3af009c32a8f45102070cf42..dc5fa8eaa0e91ddc96c489c9106d0226857ddef0 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.class and b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.class differ
index b3843f0afd2004a5b76b6267b9c0a8430c98465a..e7c28a455d7ffd6171bf0f0fa897d330daba335f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.class and b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.class differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$CleanPipeline.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$CleanPipeline.class
new file mode 100644 (file)
index 0000000..51a64f6
Binary files /dev/null and b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$CleanPipeline.class differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$State.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$State.class
new file mode 100644 (file)
index 0000000..7f197f8
Binary files /dev/null and b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$State.class differ
index 775dd74199887b39fa1902c976beadcd7961bd09..460bab8fd643a9b22a2a37e73b5e3c23a99efcbe 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.class and b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.class differ
index 627ba8d936eda5fbbe44973ed26819032ab8b460..a3556960d92bbd320d3d85073fd4793524ee4f13 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.class and b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.class differ
index a847e5c8f31358d63f42a2d75e32182e93e72e55..bbb0027ba4ee5e7b77b0d884c47948e15bcad4de 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/swing/text/html/css/FontSize.class and b/libjava/classpath/lib/gnu/javax/swing/text/html/css/FontSize.class differ
index fb5de5c504009bccecbed502bcbbfa237379442d..0b380a047e02f37bac6f1639ade0f019818137b1 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/swing/text/html/css/Selector.class and b/libjava/classpath/lib/gnu/javax/swing/text/html/css/Selector.class differ
index 3847b7ad7194762e6b5c3202e26d93d8d5c9cbdc..6de4c8342fd78ab9286a6b34200abc29f5026417 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.class and b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.class differ
index d7f253263a2de162ef7cffc13b5e6a1b4a86a8b6..62024141a16c7157b2650801ec8a08a3f7de4c4d 100644 (file)
Binary files a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.class and b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/low/ReaderTokenizer.class differ
index 8bb85a3f0ec3c51905d3daacac6d4c113b9b923f..97aee7353bf137c3b171b900cc796b0e330685d5 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$AttributeDecl.class and b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$AttributeDecl.class differ
index 9fbede093bb9f815fa4d3b7b71d3eadff981c139..e9372cd155400b833a4df3585a5c9f9580020201 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ElementDecl.class and b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ElementDecl.class differ
index 75be2936f7cd04739e60e58d67fab970ce124f77..b694987a8dbd8fcc08dbe435427155cc8999573f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$EntityInfo.class and b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$EntityInfo.class differ
index 65a9cb98b3fc21622fc7a7835a4445f2f353d023..1a695b6823ac63a8258287d834d9f06c48d58e43 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.class and b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$ExternalIdentifiers.class differ
index 7347af6010d60c1b071ae9c5be304a573e772da2..730b656ba9e74ceff1844b785e3264a916b9a9a2 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$Input.class and b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser$Input.class differ
index 56a21d2c93ddb2b957c0f09f0418f07af634d373..ca02bddf3e6a62f938f8aa188f401fdd553a90a5 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser.class and b/libjava/classpath/lib/gnu/xml/aelfred2/XmlParser.class differ
index 93e0e4c798a98d8fda27cbca43a31cab932dc524..b7eda30fe9581ef51f815fb1f54d959e8f8ecfbb 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLButtonElement.class and b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLButtonElement.class differ
index c1438b30b60a9bc0f1178a37176aa6a5267536f5..507a7fab82c62ae0fafa5d73a35fe0906811ab93 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLCollection.class and b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLCollection.class differ
index 340066c124b2fe7a90d34582b6aaca2d44775a01..6345164cfa31985ba906d19d647425e34c5f4e87 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParser.class and b/libjava/classpath/lib/gnu/xml/dom/html2/DomHTMLParser.class differ
index d8006e3e3f872448e4b1e5e83191d1ee690e1d19..3289a5969c49be84edd77c9d0e6c4893af888fa8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class and b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class differ
index ada998d556ea48525ac1b71f87d2307cef5b24c9..b0997cf3eb391b2ac7db35748fcfdb97f0b4e61b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/pipeline/EventFilter.class and b/libjava/classpath/lib/gnu/xml/pipeline/EventFilter.class differ
index b3ebe4577dc8661f7fc5d3bd8fea36709ce24459..af6574f11adf7ceca0a9ad1d211153b1c300ce4f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/AttributeImpl.class and b/libjava/classpath/lib/gnu/xml/stream/AttributeImpl.class differ
index d017cf68b59c5257ac1dd7eda7a485d5a3f13eab..82f8d700e6d32a4a52e4edd62103b9bb092dcf36 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/EndDocumentImpl.class and b/libjava/classpath/lib/gnu/xml/stream/EndDocumentImpl.class differ
index e3f889d90b84ae77e9d49fe2bdd5e29d0e2cb725..4b92ca03cd8500bf3bc4414312c2428e36c379dc 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/SAXParser.class and b/libjava/classpath/lib/gnu/xml/stream/SAXParser.class differ
index afd44e4a0743f007e5e3d5583622d60a8ac9d8ab..24ba028ad105063ad5a66c5991066c3692d71557 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class and b/libjava/classpath/lib/gnu/xml/stream/XIncludeFilter.class differ
index 1a19a8f4a2aca761497b648bf61951a51d95730a..e569c9c843e7605f89a19ae6fd114235c5f7adb1 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class and b/libjava/classpath/lib/gnu/xml/stream/XMLEventAllocatorImpl.class differ
index b6336683457a0a85e7e769a59bc060dd7a3271b3..cbb14e6c5293e3da330ff7d993c89444d7ed125a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class and b/libjava/classpath/lib/gnu/xml/stream/XMLEventFactoryImpl.class differ
index 187ee4f6e27a00ddbe20ba5d5be1e963f874795b..5d989edf2b7ef2aed3e126b8a4a2d6b2b095a17d 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class and b/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class differ
index 517fa692f8b2cb77e0c87a94318fdcdd3843fd40..af7afc820b4393e56d5ddb02b790cb98ec2952b5 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class differ
index 099ec4ac773990c11e9298e7a8c75b8866a6fa99..21af86839551375a5322f00fa3e023f91ed02784 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class differ
index af7ce24839561692a6be2ce267dd783ee68bd4d9..7ea4289dadeac103a9865769252fc6a8a1857d09 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class differ
index f5f1f53615998f0c9e0f7968486af7c8c2dfc0ad..15ca13ca8a380cdc720dcab6b89652fb863c0a7e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class differ
index c5289181000920b4cacc8e00847c17be77896bab..b9a9d7db78db41971eb6cf425a919b19d6932bdb 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class differ
index 9b457cbe0c0e4f8e797409b4e4f8162688fc342c..277d09631096a0c11cc8c4486416cd3778577058 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class differ
index b3c4eed3bb323e5c87efeaa3394e0f8657fdb944..756e31153303d90d08c77851e281c23098faf6e7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class differ
index 6a3ba1e8256551021898327e036454d895b08c3e..1beaf13fd1087a0074797a5814f9221d03f5ccd8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class differ
index dcb88dd26858bc97a6618a4438f6cd7893fb980d..8921d02b9b4093bbc9312918ee0d5bbdaa9be79a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class differ
index 7fb33b06247c26f2450d4d21e8a9061de14f9ad2..0081e42cb028e32fd9ec09806f805a22e2d4f33a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class differ
index 70cd47ed8c4ed0eb8cdd07190d44e63118a88a43..d3614647c116adca81840752197065a578864225 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class differ
index 331704e4fc0ee8c9efa38d7ddbe4612287329ff1..88a6803d94e027f3a91d8fb1fbc13aa910ef5703 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/stream/XMLParser.class and b/libjava/classpath/lib/gnu/xml/stream/XMLParser.class differ
index e0c7d8f90f033bd55622bc260fb937553ceaf320..406c9d5f9cec68d20d69d78c9c6e8ad2022e2cbe 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class and b/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class differ
index 9f585171c0270c9e085868985c245de1b6a22b8d..b7f401dff947a413d04db8c7d133cfaa17018e07 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class and b/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class differ
index 65a8ec9943236a6f720f11c4fec17a434fd30158..b71544e16bfd0066b05176c867f84ea104d673ac 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/validation/datatype/Base64BinaryType.class and b/libjava/classpath/lib/gnu/xml/validation/datatype/Base64BinaryType.class differ
index 321f8973df0b58c2737225b05c4f0916871ddc7f..57e648415a1a01a81c575d71a1850d6eb2d51b18 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/validation/datatype/BooleanType.class and b/libjava/classpath/lib/gnu/xml/validation/datatype/BooleanType.class differ
index ea1d9f4d280dc297884171ba3b2ae724772f2979..02dfc5637947252015bd9ac81b3604fcd4648761 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/validation/datatype/DecimalType.class and b/libjava/classpath/lib/gnu/xml/validation/datatype/DecimalType.class differ
index 371fe6168773720aa5e9a3cafb54b0da404c53bc..16eca5e86cdfb32215a0ef8b0b9196b7ec65cba1 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/validation/datatype/DoubleType.class and b/libjava/classpath/lib/gnu/xml/validation/datatype/DoubleType.class differ
index 39741ba75cc71d120492e2f21d3f28c1252baa70..13ffbc2e037934d24d934be24a66b6feec4157b9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/validation/datatype/FloatType.class and b/libjava/classpath/lib/gnu/xml/validation/datatype/FloatType.class differ
index 9ff9248e6ef884947ddeece664784404b00b28cf..7cdc9e0ff85bcf6e45fcaf93d4f9804163e40c45 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/validation/datatype/HexBinaryType.class and b/libjava/classpath/lib/gnu/xml/validation/datatype/HexBinaryType.class differ
index bea3e1e02187bef806a04b6e88fd643cefccc418..8768a42f8be5d3a2acadae5609bb377084050a4c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/validation/datatype/NotationType.class and b/libjava/classpath/lib/gnu/xml/validation/datatype/NotationType.class differ
index 7151477bf5e3750a94a9ec127b027c0c4ce1337d..a289c649e7cc3c412e5ed98ac228d4be34794099 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/validation/datatype/SimpleType.class and b/libjava/classpath/lib/gnu/xml/validation/datatype/SimpleType.class differ
index 35cf941235711cb668037ada108f7240f3cb70d5..544ea97859498c695aef139344ec381d46d88de8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/validation/datatype/StringType.class and b/libjava/classpath/lib/gnu/xml/validation/datatype/StringType.class differ
index 637eb4f250001e951ee20a1177a2cee03074657d..7ca2c8e7dc60ed5089fbfb3079b5f259f2f9955f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/validation/datatype/Type.class and b/libjava/classpath/lib/gnu/xml/validation/datatype/Type.class differ
index 6c9ee2a353eadd9858fdc8665d5f725850ef2613..d76494468bb4d2de9eee2891bbc0736d90ede628 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/validation/datatype/TypeBuilder.class and b/libjava/classpath/lib/gnu/xml/validation/datatype/TypeBuilder.class differ
index 97dc26307f671b35acb1ff3b1c308a8526f7a593..00392feb16db24dbf6d263c9c984fe205c7cc7b0 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/validation/relaxng/FullSyntaxBuilder.class and b/libjava/classpath/lib/gnu/xml/validation/relaxng/FullSyntaxBuilder.class differ
index e3294ea9b698e24f0eeaead9e8ee2c5357b7a3f7..75e70c99a1ca86ed2aba51a3e101a64ecda5ffe5 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.class and b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.class differ
index 04a824ba9c0569bb674440ef80e3035476d1a073..f2cae8e4a43b7d7d039a316660fbfd498d5956fa 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaBuilder.class and b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaBuilder.class differ
index a5c892cbf50f91ec58156676e8049888211dcc9e..39be8266c89a7af567030c007add30fcd632e696 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.class and b/libjava/classpath/lib/gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.class differ
index 8be1bbc8d92ed98078f3b813e6e65e54a4f0fb98..99015763c7171eb186a2d0a2409fe26b29ba9a9a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class differ
index 1fe427dbd355e3cbea99c621eba85ef3c7fcd1aa..5463ec7459e743e63941f9b3ab376f7154e246cc 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class differ
index eb13d8206b4ebfa8e6c0199deaebd6525cb11bd5..def77566450421c14d20f22bea075853e3e561c6 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class differ
index ae12af85ade68e3bb068f654cd7492d3f45a5048..210ac236ddbf54c32d217b7ceb3d62b4a7214ece 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class differ
index 563f40d74a6629cc43689efa7659a2adc485be4f..cf416f56a969738bc9f2e57d90a8215d51826dd6 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class differ
index 61bb72ccb69797fb08bc9f3b91a6a20ee0be9bfa..39660d055da113c78325cbf00239beb91a2d29c9 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class differ
index 345c33c482f5e26474a0d3c1642ef9c19ad1a5c7..321c5683054885cbeb8280009267e3084080873d 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class differ
index c1d94e2553759b6bb5d4b21961631813e9d519ac..3305a4a97e686a3681e36e80ac8f1903cbd733bd 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class differ
index 1ac22ce48589054456bf4dc838bc50e6814c67df..a02bc9ac72365d8618a30b34d4449bb8101d8a6e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class differ
index 66abc5a9871628e6520b643bb31e31e4e5178edb..c1144a39df7774b096157e3c71c45dd73b06535e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class differ
index 11453366a5cfa38d61a6184beef7ed74d41f52fb..03bbb2d0fdaf28d6afef65e1d2828fe9ba5bab4a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyException.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$yyException.class differ
index b504a9ac7fd8a8d4af508564de57011949d5177f..ec9063df491fabba3e8577f0dd14458782ba1097 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class and b/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class differ
index 7351b4633078b5b5b74bf1cc2bb08b0bc49b9846..6093a79cfa3fee69016bd43f75f8e066e5956253 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/AWTKeyStroke$3.class and b/libjava/classpath/lib/java/awt/AWTKeyStroke$3.class differ
index ac0f424aab172fc0821f794aa0f7025fdd21dd3b..4bafedefceeeaee7b70fcdd16319dc5914c2a361 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/AWTKeyStroke.class and b/libjava/classpath/lib/java/awt/AWTKeyStroke.class differ
index f6b029ec2587659e06a999c4b4358fd6f8186798..73f55656a0f525a8b40b257ac52a93c1f0c999b2 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Container.class and b/libjava/classpath/lib/java/awt/Container.class differ
index 58071294c2ef504a3873a592a6f48b78ca5fe13d..904656489444f00f02b5da634cfce3184328b31e 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Desktop.class and b/libjava/classpath/lib/java/awt/Desktop.class differ
index d0df448d21b7a432e59e834f332e3076c7cf9a67..0e99b08b3b14e0f41ec4e2fcb213fed2a9d53148 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Font.class and b/libjava/classpath/lib/java/awt/Font.class differ
index 2c406eb99786b7192388156ec0e271c1273ee513..db8fc23c826b20f493a09b14778e20d916756703 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/GridBagLayout.class and b/libjava/classpath/lib/java/awt/GridBagLayout.class differ
index f8377f8d87774b92e12171d68c92e46bd200e754..cb3d95539517f38b4d54c102cd4db6d3b5878a13 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/LightweightDispatcher.class and b/libjava/classpath/lib/java/awt/LightweightDispatcher.class differ
index 44cbb58936cd2ce937c3043ef63940da318a91e3..554a1b51dc74b5a9cd1395271f6c5c05f5c60710 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/MenuShortcut.class and b/libjava/classpath/lib/java/awt/MenuShortcut.class differ
index 6e698a6a88937323ba578f82db04c15b0376f9eb..e142ab3ceb6c6038d69bb31d5d9cd9a2e844bafc 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/color/ICC_Profile.class and b/libjava/classpath/lib/java/awt/color/ICC_Profile.class differ
index 0a7888a3cf06fcb419c00543fd5b26fb2661dcbd..2f6cffea92dbf12cda3e1fb4b63ea390149c9cf9 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/event/MouseEvent.class and b/libjava/classpath/lib/java/awt/event/MouseEvent.class differ
index 5219b788e3892a56084e36ab867bb67c2566d3a0..db61c47e69635ce21af4cf814d5a3f1bd4afa75d 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/font/LineBreakMeasurer.class and b/libjava/classpath/lib/java/awt/font/LineBreakMeasurer.class differ
index dbbb2a3ad7fd57df4828f540147b15f0c12b2552..746165399c0b02c9866a549e685edfc28f962089 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/font/TextMeasurer.class and b/libjava/classpath/lib/java/awt/font/TextMeasurer.class differ
index a954db3de99cb67ff20fa6ac679a5f6c0a66e5e6..591ced2e17fa7ceb32d37b024ad7f3603f78d4cd 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/im/InputContext.class and b/libjava/classpath/lib/java/awt/im/InputContext.class differ
index 5654d4267bcb02c54038f28f053a76d18189af89..5d5a3c8e1d813368ea76328765e225bcf8415b37 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/image/BufferedImage$1.class and b/libjava/classpath/lib/java/awt/image/BufferedImage$1.class differ
index d4eab3b5f5fd0da0b951edcc589099ad194eaac9..dc90bfc626b4ed9994327ca692ba4776259d20b2 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/image/BufferedImage.class and b/libjava/classpath/lib/java/awt/image/BufferedImage.class differ
index 9f456ec8235839b4a1927768493aa5fe4085be37..6e2c4493bbc85fac55cddb7ea470a3df7ed33cfa 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/image/PixelInterleavedSampleModel.class and b/libjava/classpath/lib/java/awt/image/PixelInterleavedSampleModel.class differ
index c0573de77c7725b43feb9c3bd672d37e6ac4d05f..033839816ce535ec15642ae8e9b30dbda39ee9c4 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/image/RGBImageFilter.class and b/libjava/classpath/lib/java/awt/image/RGBImageFilter.class differ
index 054d9b364a6e519afbc0045cfee28084204aec82..bc95252b6c322058611533adffc9a2a28fd37c68 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/image/Raster.class and b/libjava/classpath/lib/java/awt/image/Raster.class differ
index 6c13217644ffe7da56a7b0d04a44f01cc852fec7..5c7c6f640e02eb62f325e23d48e0058193299ce3 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/DefaultPersistenceDelegate.class and b/libjava/classpath/lib/java/beans/DefaultPersistenceDelegate.class differ
index 9e0c30b914a9a37659fd6a837b7876fec1a7b4eb..7b763c6e02aa0adee1af33ff662b5fbe35ce4d7a 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/EventHandler.class and b/libjava/classpath/lib/java/beans/EventHandler.class differ
index 699186fb82b6e7852f7f4dcf35e271e1838fc26a..d509bd15a5f28619eff189afa8ed8de2d1bd1e7a 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/PropertyChangeSupport.class and b/libjava/classpath/lib/java/beans/PropertyChangeSupport.class differ
index f48cabe6849d214ed33bdb0f62abdb98e2ae07df..706614f24b7cbe274a908330c0e1d9aa30cc3f37 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/VetoableChangeSupport.class and b/libjava/classpath/lib/java/beans/VetoableChangeSupport.class differ
index dd6ff0647921f663469ba7a80df3654a68755d38..0a2c72c6996eea430f349205733a143f240cd588 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.class and b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSChild.class differ
index 53724e026a232c8b53b3207f17ad631d8c4fee53..8e653bbf182482ef8317a8c4737599152a828cf4 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class and b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class differ
index 4881c940616d6e951c33cf6e8fcabcf607666c6e..a4b93fd5a38a4b78c8612fb3d3f1424553fbb0b7 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class and b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class differ
index 6fef7beb1a7d2a24fdcf071317003cc6b9695be9..d9a621d1631318d242bec58f560ebac1f8ab7a01 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class and b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class differ
index 6ea592d45702475a7503df4ea7bcb865102fc1f0..b8af638dc5c265335cfc135a650d0f9efa54256a 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class and b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class differ
index a973c8215f9f898c45a2dd860f88d8a94282fa78..5ecc39bb60edd87fee6c4c0bf5c07316e12c446d 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class and b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class differ
index eff88884037d8b02873a8cb924ae8b1043a05cf5..369f5f93eaf46743f1e54a63ec34efe05dbf5eda 100644 (file)
Binary files a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class and b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class differ
index efe3c2caf90471271e06d60d3728302704324975..8189aac893d538efc767a06cadc88f37b33d2b47 100644 (file)
Binary files a/libjava/classpath/lib/java/io/BufferedReader.class and b/libjava/classpath/lib/java/io/BufferedReader.class differ
index 6730b4a924133eaa31103e7230e3573f516d93df..87ac5bd3ee03634e7217fa1c548ca273e86c95e9 100644 (file)
Binary files a/libjava/classpath/lib/java/io/DataInputStream.class and b/libjava/classpath/lib/java/io/DataInputStream.class differ
index 228fbeb740198773ffabf65b7c25e4cbca4c4a7b..b2f67208d2b9702b1c6ac9c4a3939b14b07178cb 100644 (file)
Binary files a/libjava/classpath/lib/java/io/DataOutputStream.class and b/libjava/classpath/lib/java/io/DataOutputStream.class differ
index a871c05837bf2e2eab57deda7d4e2cd3d7276a51..e53b0d67025b1727faf985833af45074495a927d 100644 (file)
Binary files a/libjava/classpath/lib/java/io/ObjectInputStream$1.class and b/libjava/classpath/lib/java/io/ObjectInputStream$1.class differ
index c854e075581417e251e5e687bb6f497fc9446a86..45242b60b01083227f540a230841e2fe27f2b3c4 100644 (file)
Binary files a/libjava/classpath/lib/java/io/ObjectInputStream$2.class and b/libjava/classpath/lib/java/io/ObjectInputStream$2.class differ
index ae17235458ee700bef4f2162bddfd2a47b7619eb..0662f872473b05ebebf325244bf211c733d14c31 100644 (file)
Binary files a/libjava/classpath/lib/java/io/ObjectInputStream$GetField.class and b/libjava/classpath/lib/java/io/ObjectInputStream$GetField.class differ
index a25dab6eb7b343cdb8ebe319559cd1f711c35355..a95eebd471a32aeff214f4ed39a8d1e57da9f1a8 100644 (file)
Binary files a/libjava/classpath/lib/java/io/ObjectInputStream$ValidatorAndPriority.class and b/libjava/classpath/lib/java/io/ObjectInputStream$ValidatorAndPriority.class differ
index 1840e3fc2aacecb53d9878fc29bfd3ef142059c6..dcc37dda2b4d113fd69297dfe73377d8a0e33819 100644 (file)
Binary files a/libjava/classpath/lib/java/io/ObjectInputStream.class and b/libjava/classpath/lib/java/io/ObjectInputStream.class differ
index e1c5ee9b8d5de977afc5b84ef994b0655b5d2f6c..25403384a55312e5127efaa328790f7152a98e55 100644 (file)
Binary files a/libjava/classpath/lib/java/io/ObjectOutputStream$1.class and b/libjava/classpath/lib/java/io/ObjectOutputStream$1.class differ
index bd154eab7fefc9fea6af442c93676f574b5b8cab..ebb56959a50a35a7eff9221110f8d9c8c3020c82 100644 (file)
Binary files a/libjava/classpath/lib/java/io/ObjectOutputStream$PutField.class and b/libjava/classpath/lib/java/io/ObjectOutputStream$PutField.class differ
index 2b9d84e516e862ab5308f7df60166b804ee0cb70..5417d3d854124e204042a88c08676704dc9615e7 100644 (file)
Binary files a/libjava/classpath/lib/java/io/ObjectOutputStream.class and b/libjava/classpath/lib/java/io/ObjectOutputStream.class differ
index 9767f9fc6cf9821c11773367170269cae333e05e..f58e7320119ddc5ccde242c414401f023d011f91 100644 (file)
Binary files a/libjava/classpath/lib/java/io/ObjectStreamClass.class and b/libjava/classpath/lib/java/io/ObjectStreamClass.class differ
index b2c32046a978697329bf09bb6bc3b8ab53d531d5..02ab5f87de6aa1254ac098152b987463ec2bb9fe 100644 (file)
Binary files a/libjava/classpath/lib/java/io/PipedInputStream.class and b/libjava/classpath/lib/java/io/PipedInputStream.class differ
index 9c4806c02337392a561302e5da00c839f9d02193..09e3e86f9954b60f48813dff60c6349d9a59a6f1 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Class$1.class and b/libjava/classpath/lib/java/lang/Class$1.class differ
index d6757549165c7e250253d146374d3eca99adefd3..8316ce2d5e4ea1e15fc83cfda4fa490a1e8ac023 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Double.class and b/libjava/classpath/lib/java/lang/Double.class differ
index 7565a07d535d256e52f31301daf52fd1dd76226c..8a47f1edf5167178b084d21aa9ca1756c04d99c0 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Float.class and b/libjava/classpath/lib/java/lang/Float.class differ
index 291b0d03f8c64f4d3b16dc18dd1a83b7b760259e..c1d69f894944a9ed2dbd16864b282440deb6bc11 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Integer.class and b/libjava/classpath/lib/java/lang/Integer.class differ
index df9dc0ce90f573e31f8dcadf103c2e2b2ab287b9..3b8b9041c543174b4200b3a917d1ce5fca1b7ec0 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Long.class and b/libjava/classpath/lib/java/lang/Long.class differ
index 623d8d9e2a9cff0a58382f7f7409e24362610ff7..a135946506e588619c419a1e24f307200f0d66bd 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/StackTraceElement.class and b/libjava/classpath/lib/java/lang/StackTraceElement.class differ
index 3f3b5ffddfd4aa1b3a02c94d1a9c52068e57282d..48ea036748531ed731e48c5f5a2fec8d2d3291c0 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Throwable.class and b/libjava/classpath/lib/java/lang/Throwable.class differ
index 25e861fe1b20700526cf176b8c625bd5d9e98846..94282772faf0e201186c1ab76d9a7997fca965f8 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/management/ThreadInfo.class and b/libjava/classpath/lib/java/lang/management/ThreadInfo.class differ
index 0c833b283d1ee8bd0c68054af64e9e61b0fab3b3..245c4e6e5a83180496fdb3afc943d5f86e617ecc 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class and b/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class differ
index b31ea764f0b8cc9960ddf158a6ea1df4707682a0..97905c6c995b2930567b2be8bf5d36fb8d62bbe5 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class and b/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class differ
index 15a85be814fef0194afe75cf2bdc3c3642ed8ee8..01a604a9c8f656a579ebafbca4ca985a9610cd6f 100644 (file)
Binary files a/libjava/classpath/lib/java/math/BigInteger.class and b/libjava/classpath/lib/java/math/BigInteger.class differ
index d7e9440c458cb23fc6385db293748d2cff0a9289..cf367bce130ac07296ccb65301c8b10b1c903753 100644 (file)
Binary files a/libjava/classpath/lib/java/net/DatagramSocket.class and b/libjava/classpath/lib/java/net/DatagramSocket.class differ
index dd942a8b00255efa97d8883c46f9b2986881b932..ec6df9fc57c02d78fac98dacf0ad9a172ed0d3a6 100644 (file)
Binary files a/libjava/classpath/lib/java/net/ServerSocket.class and b/libjava/classpath/lib/java/net/ServerSocket.class differ
index 75b3cd6fa97a846fe5262c5f5ebcffcf50fd42d9..d0084213b21190521671c0a2ec7762b95de01b56 100644 (file)
Binary files a/libjava/classpath/lib/java/net/Socket.class and b/libjava/classpath/lib/java/net/Socket.class differ
index be72cf438de14831759b0c50618920fea427f958..c44d2235e47e01e39b2e4a907ed3726e752cb26d 100644 (file)
Binary files a/libjava/classpath/lib/java/net/URI.class and b/libjava/classpath/lib/java/net/URI.class differ
index 8ec9a2d572a8b567e16a8bf614fff66a456d21b5..80a5e081bc1d893eff5fc7c56a526ac322b2431d 100644 (file)
Binary files a/libjava/classpath/lib/java/net/URLClassLoader.class and b/libjava/classpath/lib/java/net/URLClassLoader.class differ
index 4beca0018fb1dbfc93d26abe66caac7c74310889..d573af85be79ed04958951779e19a8f37b4ba5af 100644 (file)
Binary files a/libjava/classpath/lib/java/net/URLEncoder.class and b/libjava/classpath/lib/java/net/URLEncoder.class differ
index 4d885f09d59b16711a029454571c5b99a1eaea07..6efc840755f7391a7008fcb5e8b161700bdc5569 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/charset/CoderResult$Cache.class and b/libjava/classpath/lib/java/nio/charset/CoderResult$Cache.class differ
index 384d80e4171c51ec369aa772b6bfc16aff6809a0..539d9d79c0e2d237c10d590b54a24346fcf7e76a 100644 (file)
Binary files a/libjava/classpath/lib/java/security/SecureClassLoader.class and b/libjava/classpath/lib/java/security/SecureClassLoader.class differ
index 33419eb80c5f6c475bae6c7a98bb4568c10f0169..c36911e73c3eb4c58e972fc291d24b09c09bf92d 100644 (file)
Binary files a/libjava/classpath/lib/java/security/Security.class and b/libjava/classpath/lib/java/security/Security.class differ
index 955a1f3db7268173fe4c069fccfbd5005a6e42e5..65043ff2fa482a29ade4dc457ca3906005db8f47 100644 (file)
Binary files a/libjava/classpath/lib/java/security/VMSecureRandom$Spinner.class and b/libjava/classpath/lib/java/security/VMSecureRandom$Spinner.class differ
index 08a44d63f8015b69c44e093cbc2f3416d895f721..8e0a093de1b18ef4e470af64b6f34484f4f533c4 100644 (file)
Binary files a/libjava/classpath/lib/java/security/VMSecureRandom.class and b/libjava/classpath/lib/java/security/VMSecureRandom.class differ
index 8b0973e2b732af4840a4bbf8b42a91493e11e0c0..192a302a4df442a42855238ea781905eb1829119 100644 (file)
Binary files a/libjava/classpath/lib/java/security/cert/CertificateFactory.class and b/libjava/classpath/lib/java/security/cert/CertificateFactory.class differ
index 302add6f2c6d8a67b367d330345a5df3108a758e..c8562f7af03cfe695cccaaedd2e6941068df2b5b 100644 (file)
Binary files a/libjava/classpath/lib/java/security/spec/RSAKeyGenParameterSpec.class and b/libjava/classpath/lib/java/security/spec/RSAKeyGenParameterSpec.class differ
index 68a81e5eb4b67ad65894d9595029e90c36dcb5d2..77d704b730a29e17a1424a05ca19471cb3e7a7be 100644 (file)
Binary files a/libjava/classpath/lib/java/text/ChoiceFormat.class and b/libjava/classpath/lib/java/text/ChoiceFormat.class differ
index ba383a850bae1cca75de117b1cf51981e72df725..23e55d78f903dd28574a4bffd5f7e00514a4376c 100644 (file)
Binary files a/libjava/classpath/lib/java/text/CollationElementIterator.class and b/libjava/classpath/lib/java/text/CollationElementIterator.class differ
index 17695da869337eaf96081b5b6404cbe3f100ae5f..ad90313d82b9d847660ba576e4b4a787dc2a15e3 100644 (file)
Binary files a/libjava/classpath/lib/java/text/DecimalFormat.class and b/libjava/classpath/lib/java/text/DecimalFormat.class differ
index 12f9465a707fd950adaac4fcb1dfaa1eddc0b581..35ac131e24cccbb3335cb99cec8e7b09e0f25f8e 100644 (file)
Binary files a/libjava/classpath/lib/java/text/MessageFormat.class and b/libjava/classpath/lib/java/text/MessageFormat.class differ
index e15199eefb32facc36292773ef3cd5e726c707b5..b11b44cfa4a038802067514dc062c4f1c32afb13 100644 (file)
Binary files a/libjava/classpath/lib/java/text/RuleBasedCollator.class and b/libjava/classpath/lib/java/text/RuleBasedCollator.class differ
index 559c5ce9dfe5f337233cc65a4c06a54b8b738f54..500c6f2918e566f24ec40abe41abb06d1ea6351f 100644 (file)
Binary files a/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class and b/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class differ
index 08ac4f3f0509737a04ba8160c8ab030409c56903..443bb4359d343cc1b8e9f88d6ad699be32587942 100644 (file)
Binary files a/libjava/classpath/lib/java/text/SimpleDateFormat.class and b/libjava/classpath/lib/java/text/SimpleDateFormat.class differ
index 739ed73f7095884b8c308867da0b4b55149b160c..77e9a2566a28fa90cce7ddaaa0f32893b80ab37d 100644 (file)
Binary files a/libjava/classpath/lib/java/util/AbstractMap.class and b/libjava/classpath/lib/java/util/AbstractMap.class differ
index 1743652bff95002200e37f188565e2e9b94cdaca..5f32ee15a9c424946aec284d1a9b538e491544d8 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Calendar.class and b/libjava/classpath/lib/java/util/Calendar.class differ
index 4bdae0659262986449556635e2d5bdab8a33383f..422dcb544983c1a1d464d4babd39524e5a918c7c 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Date.class and b/libjava/classpath/lib/java/util/Date.class differ
index 6ba870b1050c1a713d874b1344a62e54f18858ee..4e33c8f715e2230ccefbd28d2958ae83040c1dc0 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class and b/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class differ
index 3a9ed2c24fbd4283eeea223d492a0a2e75ac3ea3..e1331ae23d3eb0d8e88d28a425dbfb7d894490d5 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class and b/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class differ
index 8ba2ab97678622d934c24166efa3bda7da210932..0a396cb0bf62a6a195f5267687b6f99ebd37ccae 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class and b/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class differ
index 3b8332c35842e60ee2ec5d953d6f8a93d842d785..53ab7e1872dc4d999b35f638d936ccdc93967d06 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class and b/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class differ
index 49850b0908c9d0031b3762ecb20b84594695308d..6ffdf57d09622732548c1f46883608324b8b93cd 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Hashtable.class and b/libjava/classpath/lib/java/util/Hashtable.class differ
index 32bc023b9d54d65d7651488961f9c2691fe29f69..3ea366f8b2eff964bddeb177fff1144f3246cf8e 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Locale.class and b/libjava/classpath/lib/java/util/Locale.class differ
diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$1.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$1.class
new file mode 100644 (file)
index 0000000..d92a7e9
Binary files /dev/null and b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$1.class differ
diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$2.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$2.class
new file mode 100644 (file)
index 0000000..6989e8a
Binary files /dev/null and b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$2.class differ
diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$3.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$3.class
new file mode 100644 (file)
index 0000000..4673577
Binary files /dev/null and b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$3.class differ
diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.class
new file mode 100644 (file)
index 0000000..83fd284
Binary files /dev/null and b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.class differ
diff --git a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$SubList.class b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$SubList.class
new file mode 100644 (file)
index 0000000..20dd205
Binary files /dev/null and b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList$SubList.class differ
index 151c514b344f308ea8e8f145dc347e8d64ac6774..0e7bd0f5aee8e5df8ffeefad416d36fad3471e43 100644 (file)
Binary files a/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class and b/libjava/classpath/lib/java/util/concurrent/CopyOnWriteArrayList.class differ
index dc9b197e8127c3f71d78c38bb283a00cd403c7e7..045a90f56beb386469a5e4aa69e714f617d543dd 100644 (file)
Binary files a/libjava/classpath/lib/java/util/zip/ZipEntry.class and b/libjava/classpath/lib/java/util/zip/ZipEntry.class differ
index 149eef171018b3306f7c98749d08958f56760bb6..0c096f088dc5f39b9c5ab688d1858a553add2b83 100644 (file)
Binary files a/libjava/classpath/lib/javax/accessibility/AccessibleAction.class and b/libjava/classpath/lib/javax/accessibility/AccessibleAction.class differ
index 2bd35220370c4b92e667b97ffb4951df19d0b2e6..f8e3ef58930a78f642a5e003ae94b6acb73b3061 100644 (file)
Binary files a/libjava/classpath/lib/javax/accessibility/AccessibleAttributeSequence.class and b/libjava/classpath/lib/javax/accessibility/AccessibleAttributeSequence.class differ
index d05eefb9166204346628d6d10c8c86cd4edcdac0..f5dbfb99e51a8efafbfde249d4ec4c629cda35b8 100644 (file)
Binary files a/libjava/classpath/lib/javax/accessibility/AccessibleRole.class and b/libjava/classpath/lib/javax/accessibility/AccessibleRole.class differ
index b0fd35da23ecec2d15deaa9adccfc0519c07e736..99fa6829f73439cbbc7a2f5710bd20495caaef91 100644 (file)
Binary files a/libjava/classpath/lib/javax/accessibility/AccessibleTextSequence.class and b/libjava/classpath/lib/javax/accessibility/AccessibleTextSequence.class differ
index e4259856bd69fdc249391904fa80342f2a6818e5..e4525c4a98b02d800eea831f8e52359ecc5bdc69 100644 (file)
Binary files a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$1.class and b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$1.class differ
index 8da0e36d9cf8fdfae7f5414fdf7670e76d3474d4..475c20de75aecee7e95fc39e96ca7a77facf1cdc 100644 (file)
Binary files a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.class and b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttr.class differ
index b6111e2aa5b2987050e8d94ef9216ef54ce998be..92b21a1e8008de00ae9c7d586c8985b629a1a669 100644 (file)
Binary files a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.class and b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrBounded.class differ
index acadd96ee5cc104b65be078ec039a2c4212d4dad..5a2059ea6724a2d285e3229ad09217470b0e4cf1 100644 (file)
Binary files a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.class and b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrEnumerated.class differ
index a488e1076ff836ab78aa224941da714927d9a67e..2bd05a08dd2813e27fda06b5b74f11f00c36bc72 100644 (file)
Binary files a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.class and b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$IIOMetadataNodeAttrList.class differ
index c6ddf8ed845b721769263396e632f3d828d6f4cf..9d770744deadcb0fa9c92665fa63b0ef64de60b0 100644 (file)
Binary files a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.class and b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.class differ
index 44648d6f2630efb02640feea080c506366208a6a..8a9bc135cba123c39c724256addd7f022bc1895d 100644 (file)
Binary files a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.class and b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectArray.class differ
index 7acc42e7243be6a91e9c2c44700f12a194fb39cc..3c3964bb5a2519e5b4e7e4780c7a48b24597503f 100644 (file)
Binary files a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.class and b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectBounded.class differ
index 542176895b299791e6f009f55e8d5d6ad0c13148..4dd59ff1b0c75e71a79eb9e6ee0f3a094f18a552 100644 (file)
Binary files a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.class and b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl$NodeObjectEnumerated.class differ
index 7a9fdff3b96aa1f44d9993ae594c1dfe5c7af0fd..2c80f9d68a3815d802cca82783423c87ecebd11a 100644 (file)
Binary files a/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl.class and b/libjava/classpath/lib/javax/imageio/metadata/IIOMetadataFormatImpl.class differ
index 57dc68de42521dee4d551c5b30bb2ec4668e3a35..7a37f9579c9f3d5eb229add1be9af35c681ed287 100644 (file)
Binary files a/libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageInputStream.class and b/libjava/classpath/lib/javax/imageio/stream/MemoryCacheImageInputStream.class differ
index 8a18372f34c08ffddae4fc41e527b95f4dbbcb60..b9ba526dc3cdf8fa9715fec53a7cb059b7c36f59 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/NotificationBroadcasterSupport.class and b/libjava/classpath/lib/javax/management/NotificationBroadcasterSupport.class differ
index 99df669d32d51a6c49ec7502f7751c4bad772d38..55cb11360f68cc9bb9179f2f4c80b8e4f5f6f66a 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/ObjectName.class and b/libjava/classpath/lib/javax/management/ObjectName.class differ
index ca59e8f73030d2b1b858581fb08570063e51c3bd..8a454a156c52fdb970654e54735221d15359cc4b 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/StandardMBean.class and b/libjava/classpath/lib/javax/management/StandardMBean.class differ
index 112ba8bb556fb6f636e160f43a293e8bc898e2ba..fe1fdfa512aa384af0e8cc2ce820008caba77adb 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/openmbean/ArrayType.class and b/libjava/classpath/lib/javax/management/openmbean/ArrayType.class differ
diff --git a/libjava/classpath/lib/javax/management/remote/NotificationResult.class b/libjava/classpath/lib/javax/management/remote/NotificationResult.class
new file mode 100644 (file)
index 0000000..75e1f89
Binary files /dev/null and b/libjava/classpath/lib/javax/management/remote/NotificationResult.class differ
diff --git a/libjava/classpath/lib/javax/management/remote/TargetedNotification.class b/libjava/classpath/lib/javax/management/remote/TargetedNotification.class
new file mode 100644 (file)
index 0000000..050dbe4
Binary files /dev/null and b/libjava/classpath/lib/javax/management/remote/TargetedNotification.class differ
diff --git a/libjava/classpath/lib/javax/management/remote/rmi/RMIConnection.class b/libjava/classpath/lib/javax/management/remote/rmi/RMIConnection.class
new file mode 100644 (file)
index 0000000..56a629d
Binary files /dev/null and b/libjava/classpath/lib/javax/management/remote/rmi/RMIConnection.class differ
diff --git a/libjava/classpath/lib/javax/management/remote/rmi/RMIServer.class b/libjava/classpath/lib/javax/management/remote/rmi/RMIServer.class
new file mode 100644 (file)
index 0000000..22afd3a
Binary files /dev/null and b/libjava/classpath/lib/javax/management/remote/rmi/RMIServer.class differ
index d531508bb79d66e2fa6bf62255e77c4393586d0c..3350b80ef7cd7f3b3561c20b36e609bbf3d66ebe 100644 (file)
Binary files a/libjava/classpath/lib/javax/net/ssl/HttpsURLConnection.class and b/libjava/classpath/lib/javax/net/ssl/HttpsURLConnection.class differ
index 9098cf72a79e0723f3d213e21754fb2ec3cc4570..f9cc7b3e866cc5085a3ae68b12095865447c3ddd 100644 (file)
Binary files a/libjava/classpath/lib/javax/print/attribute/standard/JobStateReasons.class and b/libjava/classpath/lib/javax/print/attribute/standard/JobStateReasons.class differ
index 4ba2d6fa0604f4e56d44f69351a1f86d84618325..6bad624cd582c6da283ad56d12840c96826b26bd 100644 (file)
Binary files a/libjava/classpath/lib/javax/rmi/ssl/SslRMIClientSocketFactory.class and b/libjava/classpath/lib/javax/rmi/ssl/SslRMIClientSocketFactory.class differ
index 828e84b040a291f68faaf930b4d2ad75058c76ed..4d9e344a4577cd1cba16d93454e3d1d7f00b8980 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/JFrame.class and b/libjava/classpath/lib/javax/swing/JFrame.class differ
index 25387601917fc1ea5b858ef829bc86e9f3d4aa1f..249c1334259c138135a73803497b1f16a8179bf3 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorker.class and b/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorker.class differ
index 17ccff4f0091bac0e9df9678a22e43387406c65d..9b93045fb25e202a967a3f35cc2464af26bf5061 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorkerEvent.class and b/libjava/classpath/lib/javax/swing/RepaintManager$RepaintWorkerEvent.class differ
index 3e2ff61b4e7bc51f2ae9040049b9a19195ee6978..c26f622617556467a8983333ebb1571d9836e407 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/RepaintManager.class and b/libjava/classpath/lib/javax/swing/RepaintManager.class differ
index 9dee2f30edaf88ead21139f6ebd90bf45725443d..1a45c9637d398db47168485eba7a9ceeb7a7c82a 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/TransferHandler$PropertyTransferable.class and b/libjava/classpath/lib/javax/swing/TransferHandler$PropertyTransferable.class differ
index a4d80b5a9d36a5958ff4dba36c67a83c11520368..124f1b8b758cfd56c567a89ea5b9e474416ecc17 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$1.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$1.class differ
index 4a5483b66d14f3ff0891d859083809c054b57c4b..2e9ff39324c71bb4b6c0b9c93c64b08ccfe4cd3a 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread$UpdateSwingRequest.class differ
index b36b60abfb6e216d40229fb8a0e4f928ca682af6..b1a98484d5349f80d492519d2ce4c1186f11c581 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel$DirectoryLoadThread.class differ
index df8c3d573d4a1cba586f830844311998e5de569c..46f14baeb48ff993729b12d8b65fe3a035d525cd 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicDirectoryModel.class differ
index 8ca7e20f85f92381573fabacd91112d6172c7380..829dc6b35e754767185f3c5c2899871188fee0a4 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$AcceptAllFileFilter.class differ
index 73241f215728a55c7c8dad9a4677cab0a9fa0107..2e32596d38f4b190191096e008a62cb71e6bb513 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ApproveSelectionAction.class differ
index 094561bacdae768276863d72afa61f954233bec9..2b354bb468e1a7a86183c7006091ff28089acb32 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$BasicFileView.class differ
index f62de1736c910fd8f0a1640a2262481102a7707f..2e83ae986c053316a38f3f499a2bf83409eea326 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$CancelSelectionAction.class differ
index 1634c3b5eb3e317fff6e880bf189f2813bf6c82b..a863e5efe91099751f411b1433d8fad6d9309a68 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$ChangeToParentDirectoryAction.class differ
index 058f9488e75810df06c519e12bd59a95c4cd8ece..fddf378707b466ea17b89c54185a76fc2157fbc1 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$DoubleClickListener.class differ
index ea8ebb0c309f5bdf917dbee90c6935971cdbc1af..f075a987d8d4d5b0a1561205a371cf54ae8ec302 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$GoHomeAction.class differ
index 1e87303914e49783042b619d28bc25b5dea335cc..0187bc8344bf5201daf851a53f6c243f27cfbe6e 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$NewFolderAction.class differ
index ddfb435899613ae92559e3b6ddda39d9823447ab..576842627ab195150788920961b963a2550ec4f6 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$SelectionListener.class differ
index ac37a3c03d58dbd10d504177ad4d646be5fcb43c..6120071df4a753ca85fc8ea1ee31d439de7c5452 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI$UpdateAction.class differ
index a1b88613a468f2a7b3808e911c996a3c2edc2993..df337fcfc820e68b992d36ebfcf635b0c9b233fc 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicFileChooserUI.class differ
index ae608e087429ac316b59252e95c3a7b64f6a3e38..9a2197be08b84a91da96bdf5bf729a18c177258c 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicGraphicsUtils.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicGraphicsUtils.class differ
index 3f7f6494ffeeb438f8d5cd1f3e0be9722b121dca..038f1c8579c0830056b13ff12a4a5384a5c2223d 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI$1.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI$1.class differ
index 877860bb320d94ce5741c387d0a047cc9336971b..204829b6e408d6c92e375be09cccd068c86b27a8 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicLabelUI.class differ
index d7cb6ce5a45afa6dddb1572af4fbe2bddd18ce21..b4026606b3dc7ccba55327d6710f8ddbb4665f1d 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$1.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$1.class differ
index b98d9dc5a6558a4b6503e16fa27db4dc5bd91a6c..345724e355a5bda3234d9eab357402b217c13a08 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$CellEditorHandler.class differ
index ea9d2675361f0c29d178f32cc04d4af9faf9c666..6799d071339c6c1f4533c0a3947dcd3fbb2b3cd1 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$ComponentHandler.class differ
index 988cfd35a2dcb1a7fa6e6bb990a1529b53e666f7..47c42a3c4d3968ebf55744c4e39fb9cd0ad40896 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$FocusHandler.class differ
index ee2d88500234e5deb2fdb67e1a39a00f55b2ff90..6ff06a0162db0ef9f85d5fb04399efd50ea4bab0 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$KeyHandler.class differ
index 8fd02ee81f419768c6b8ac6f50db0c139f673259..1ab723d80f7cd2aca43eaeca24ecb7d2d2214612 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseHandler.class differ
index 3958c1a9490bcca56052a0237f56c58cac60cab6..59d5b384cc6fa15683d8cc613f7712f493fe068b 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$MouseInputHandler.class differ
index 3357831e45059f2452845e8ec2a682440e47ea40..881d8ed6991b957ee77c35e1d546559cca1015cd 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$NodeDimensionsHandler.class differ
index b631da1f36fc7d1198aa824cf50c1bea0efe2941..f02d43849edfc78eec005af2fb676b3ce6afea40 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$PropertyChangeHandler.class differ
index e99e40816ba4abebe586b70ebee10dd12a4162fe..2066c99d40e0764ecddf77fd809d4dd3cb52e1f7 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$SelectionModelPropertyChangeHandler.class differ
index 6f1e98c8b3b2f7e6f81797f2ad91cd697d228bc3..28a5f7948aff42331a36c087aaec96ce92f060d3 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeCancelEditingAction.class differ
index 0ad38c4c2903d2ba2e6ba0ad9fe186c10f022a04..c5e521274e2021a6cab752b35657ae5215efd67d 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeExpansionHandler.class differ
index d34480324f626a6dac236d94a626171a21fe0afd..702b10803e83c434fdbb8961fa36afd5ed955afb 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeHomeAction.class differ
index bc92c59ed3a27eca10e79267711adeecd77a0af6..1bde00409af0d395a7d124699ee63265ba79a425 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeIncrementAction.class differ
index 94a4001313b46a5ddbfb5d47ae46f2df645c5d95..b4b505bb6b42fbf6ae267ffd895f0afaebbfe863 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeModelHandler.class differ
index 1dc563f6d5718d9968a5387ecc59030517cc55fe..b5b5b66a08e83a7dace47bd90598d5c0bc6014c4 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreePageAction.class differ
index 897ff794392810d6698edf89f39b60643d5ce1ba..06751dd99221ae370676fb5c822384441a7500e3 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeSelectionHandler.class differ
index 55843927a580b115d7fa16a500bf519c374ac066..0b4758ed8c4117605741f98cb26f64cca2db98c6 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeStartEditingAction.class differ
index fbf43c4d0893a4d53cf801db96e5884581199fae..52f1d75d5c9c09811866ddc54bc4b0949128df8e 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeToggleAction.class differ
index 1d3be171ead1b51d118818a939cce2a642a7eb39..57cd62c2cda20580e83a1f100a7ec1e6c6b5afd6 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI$TreeTraverseAction.class differ
index a32d1dc4895b9dfcdf84f91717551047264e800a..7cf5420e19066f0b53cef938353e2a62b28f74f9 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicTreeUI.class differ
index 84f5c6487d9cd00b42e93ac08cda1dbbb0c7e121..085811a33361671437943206f7142ea55a194ff9 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollButton.class and b/libjava/classpath/lib/javax/swing/plaf/metal/MetalScrollButton.class differ
index 59a68ae75c1fe12891bb9444129f1a63e18e0fdf..f26fe7e4fd8338d48a9199be2979270fb5c011c6 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer$UIResource.class and b/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer$UIResource.class differ
index 500f418190d77e58cd26b78515d6744501c4a6af..d89c2dceecf654d34078b0edddec3d2dd5ec553b 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer.class and b/libjava/classpath/lib/javax/swing/table/DefaultTableCellRenderer.class differ
index ea3f5a507009edbdaa10583019b9f53b640d2a3e..8cfb9d984fae29035a6d812b543b43a24ac21e55 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class and b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class differ
index e93478185e7f9a64a37f7cf882e654060a79204b..fdf2590afd9f93ed8692b448995b728e3fb40ebc 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class and b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class differ
index 0c12f0c83859afb3d8f8524e4d4f917860da9496..d22f506395c006c02a55652adcb2dd92343b6c60 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class and b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class differ
index defb925e3ba78d5292fe1446a82ac39d1a1d8021..0418b79e5a1f3275d675ebe01c99ae127d6f454c 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class and b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class differ
index 0581bde6b24ab174f3238967e71c4e702d55c988..611c734f9b29259ab6b57f02a1ce76580fd084a6 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/GlyphView.class and b/libjava/classpath/lib/javax/swing/text/GlyphView.class differ
index ab9c2654c5d08e44af8bae3a77abd28c99e451d1..907c1dd498dcf13962fb6f4dc1cc443504671829 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/ParagraphView$Row.class and b/libjava/classpath/lib/javax/swing/text/ParagraphView$Row.class differ
index 6a3391ed0d97a03567503ead50fd06ecc1879964..ac3b9c059986f32b00f2d93643d26bf48d5ae64e 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/ParagraphView.class and b/libjava/classpath/lib/javax/swing/text/ParagraphView.class differ
index 8b838bbb9da636a54556ffeb222c7426f505d9b8..4a32bcc18deb3c4bb36ce5f747221e231bde8e0d 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/html/ResetableToggleButtonModel.class and b/libjava/classpath/lib/javax/swing/text/html/ResetableToggleButtonModel.class differ
index 1e7467e443695402b571d9481ac9fdff55ad4d95..562c4c044e4583d415f575b57372095a7b144d86 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/html/parser/Entity$1.class and b/libjava/classpath/lib/javax/swing/text/html/parser/Entity$1.class differ
index ae8e13f3ac7f9e6d1895790207e3ba0c167dc731..d6b03ca7c0e9bee0bd80c898d6b0afc55daec176 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/html/parser/Entity.class and b/libjava/classpath/lib/javax/swing/text/html/parser/Entity.class differ
index d07fce4d2da5b881a0f89fec000757a5fbb53020..6f23724597dd8338f21d1d7a35e1067223537aca 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class and b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class differ
index 5f645d64dc9b255b275331cba8931a25da0bffbb..7917c51e95aaf66c2c97a35148c10f44c1420b57 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class and b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class differ
index 2f343c8de98bf7872cf28b96e905513e7d348532..891da01ae65b85ca8a6d428a90a4d37da4b494b4 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class and b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PreorderEnumeration.class differ
index 2ea56b2723ed55f2e772aecc8cd3e0be6f314ef7..6a0c995ae3f8675d314d06c796a14db103c6c1bb 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor.class and b/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellEditor.class differ
index 2bb653795807460858a608ecb93fc3b66d512ec2..feb720fd23b03673bec7dc1c6722735209053e0e 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellRenderer.class and b/libjava/classpath/lib/javax/swing/tree/DefaultTreeCellRenderer.class differ
index e62123a128b35a090544dee90f76940f6e35048d..c87947509a3c7f8e83470c3d5fd581bed1fdd8da 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class and b/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class differ
index cb3ea86b32198b5438c673ba3fb0ff1aa4ae8386..cf1a20a4b795214061536625d39a59d4481e1b5a 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.class and b/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache$NodeRecord.class differ
index 56ffb9a9990ecdd3fbb3a7b194daf1c1e23ce1b3..7bb67005cf5b5dfac44ff8d320dd188c5c777037 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class and b/libjava/classpath/lib/javax/swing/tree/FixedHeightLayoutCache.class differ
index 1d95a1927dd03b09e09dbfed2779098712cac1e0..f227924c9cd372ee68b8bd31c6b75a1703fd05f2 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.class and b/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache$NodeRecord.class differ
index 39763091fcb61923ec9bf3bd7faaba37ccc47bee..607238c174407a0744815da319e92d478194c2ba 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class and b/libjava/classpath/lib/javax/swing/tree/VariableHeightLayoutCache.class differ
diff --git a/libjava/classpath/lib/javax/tools/Diagnostic$Kind.class b/libjava/classpath/lib/javax/tools/Diagnostic$Kind.class
new file mode 100644 (file)
index 0000000..95f7e0d
Binary files /dev/null and b/libjava/classpath/lib/javax/tools/Diagnostic$Kind.class differ
diff --git a/libjava/classpath/lib/javax/tools/Diagnostic.class b/libjava/classpath/lib/javax/tools/Diagnostic.class
new file mode 100644 (file)
index 0000000..204a03b
Binary files /dev/null and b/libjava/classpath/lib/javax/tools/Diagnostic.class differ
diff --git a/libjava/classpath/lib/javax/tools/DiagnosticListener.class b/libjava/classpath/lib/javax/tools/DiagnosticListener.class
new file mode 100644 (file)
index 0000000..a910a6c
Binary files /dev/null and b/libjava/classpath/lib/javax/tools/DiagnosticListener.class differ
diff --git a/libjava/classpath/lib/javax/tools/FileObject.class b/libjava/classpath/lib/javax/tools/FileObject.class
new file mode 100644 (file)
index 0000000..39db6c5
Binary files /dev/null and b/libjava/classpath/lib/javax/tools/FileObject.class differ
index 00b5df1affbe010ae9c606f0bcd52ad620f3882a..1d3209f009bdbaf5ac1cf09bce0885cd9e50d7d0 100644 (file)
Binary files a/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class and b/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class differ
index c5f6eebc3ccca7a4389f1b8f80e9a8aae1ee5d01..9c101dec842a6f83ee72b7e82c3b9005d84cc8ce 100644 (file)
Binary files a/libjava/classpath/lib/javax/xml/namespace/QName.class and b/libjava/classpath/lib/javax/xml/namespace/QName.class differ
index 3c4fbd41581334e81affb7ea9f06e393e9aa69b7..ec7264a198006469f25013739a5bdc5c308dda5d 100644 (file)
Binary files a/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class and b/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class differ
index 66894397c533672e543cce18fc6117defca7720a..670d77cb8a9f3bb9cd97081c5a80230ab02d2c9e 100644 (file)
Binary files a/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class and b/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class differ
index 58f2af2966a5a0870d6bb503f9d866758865c22e..cdddb4ad0534411481866a293557e58efa362acd 100644 (file)
Binary files a/libjava/classpath/lib/javax/xml/stream/events/Attribute.class and b/libjava/classpath/lib/javax/xml/stream/events/Attribute.class differ
index 5fbb45f95afcbad6da3c0eafaf38b76815c89dab..03cc2bfac88d91ff240f1df0e3e63904f13db150 100644 (file)
Binary files a/libjava/classpath/lib/org/omg/IOP/TaggedComponentHelper.class and b/libjava/classpath/lib/org/omg/IOP/TaggedComponentHelper.class differ
index 7773618aacdf0e5ef52f6663e0fa0d130495a347..894ec25f6ca4d65ddecb2cd8a7d8af7da943ee04 100644 (file)
Binary files a/libjava/classpath/lib/sun/reflect/annotation/ExceptionProxy.class and b/libjava/classpath/lib/sun/reflect/annotation/ExceptionProxy.class differ
index a3c55f9a7513048bf549ec98b8a6a1d18e44c733..9d8441856208704f76a36abd11d6923fb5951165 100644 (file)
@@ -1,10 +1,12 @@
-# ltmain.sh - Provide generalized library-building support services.
-# NOTE: Changing this file will not affect anything until you rerun ltconfig.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
+# Generated from ltmain.m4sh; do not edit by hand
+
+# ltmain.sh (GNU libtool 1.2435 2007/03/18 18:44:42) 2.1a
+# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions.  There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 2 of the License, or
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
-# Check that we have a working $echo.
+# Usage: $progname [OPTION]... [MODE-ARG]...
+#
+# Provide generalized library-building support services.
+#
+#     --config             show all configuration variables
+#     --debug              enable verbose shell tracing
+# -n, --dry-run            display commands without modifying any files
+#     --features           display basic configuration information and exit
+#     --mode=MODE          use operation mode MODE
+#     --preserve-dup-deps  don't remove duplicate dependency libraries
+#     --quiet, --silent    don't print informational messages
+#     --tag=TAG            use configuration variables from tag TAG
+# -v, --verbose            print informational messages (default)
+#     --version            print version information
+# -h, --help               print short or long help message
+#
+# MODE must be one of the following:
+#
+#       clean              remove files from the build directory
+#       compile            compile a source file into a libtool object
+#       execute            automatically set library path, then run a program
+#       finish             complete the installation of libtool libraries
+#       install            install libraries or executables
+#       link               create a library or an executable
+#       uninstall          remove libraries from an installed directory
+#
+# MODE-ARGS vary depending on the MODE.
+# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
+#
+# When reporting a bug, please describe a test case to reproduce it and
+# include the following information:
+#
+#       host-triplet:  $host
+#       shell:         $SHELL
+#       compiler:              $LTCC
+#       compiler flags:                $LTCFLAGS
+#       linker:                $LD (gnu? $with_gnu_ld)
+#       $progname:             (GNU libtool 1.2435 2007/03/18 18:44:42) 2.1a
+#       automake:              $automake_version
+#       autoconf:              $autoconf_version
+#
+# Report bugs to <bug-libtool@gnu.org>.
+
+PROGRAM=ltmain.sh
+PACKAGE=libtool
+VERSION=2.1a
+TIMESTAMP=" 1.2435 2007/03/18 18:44:42"
+package_revision=1.2435
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# NLS nuisances: We save the old values to restore during execute mode.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+do
+  eval "if test \"\${$lt_var+set}\" = set; then
+          save_$lt_var=\$$lt_var
+          $lt_var=C
+         export $lt_var
+       fi"
+done
+
+$lt_unset CDPATH
+
+
+
+
+
+: ${CP="cp -f"}
+: ${ECHO="echo"}
+: ${EGREP="/bin/grep -E"}
+: ${FGREP="/bin/grep -F"}
+: ${GREP="/bin/grep"}
+: ${LN_S="ln -s"}
+: ${MAKE="make"}
+: ${MKDIR="mkdir"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+: ${SED="/bin/sed"}
+: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
+: ${Xsed="$SED -e 1s/^X//"}
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
+EXIT_SKIP=77     # $? = 77 is used to indicate a skipped test to automake.
+
+exit_status=$EXIT_SUCCESS
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS="  $lt_nl"
+
+dirname="s,/[^/]*$,,"
+basename="s,^.*/,,"
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+# In the unlikely event $progname began with a '-', it would play havoc with
+# func_echo (imagine progname=-n), so we prepend ./ in that case:
+progname=`$ECHO "X$progpath" | $Xsed -e "$basename" -e 's,^-,./-,'`
+
+# Make sure we have an absolute path for reexecution:
+case $progpath in
+  [\\/]*|[A-Za-z]:\\*) ;;
+  *[\\/]*)
+     progdir=`$ECHO "X$progpath" | $Xsed -e "$dirname"`
+     progdir=`cd "$progdir" && pwd`
+     progpath="$progdir/$progname"
+     ;;
+  *)
+     save_IFS="$IFS"
+     IFS=:
+     for progdir in $PATH; do
+       IFS="$save_IFS"
+       test -x "$progdir/$progname" && break
+     done
+     IFS="$save_IFS"
+     test -n "$progdir" || progdir=`pwd`
+     progpath="$progdir/$progname"
+     ;;
+esac
+
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Re-`\' parameter expansions in output of double_quote_subst that were
+# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
+# in input to double_quote_subst, that '$' was protected from expansion.
+# Since each input `\' is now two `\'s, look for any number of runs of
+# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
+bs='\\'
+bs2='\\\\'
+bs4='\\\\\\\\'
+dollar='\$'
+sed_double_backslash="\
+  s/$bs4/&\\
+/g
+  s/^$bs2$dollar/$bs&/
+  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
+  s/\n//g"
+
+# Standard options:
+opt_dry_run=false
+opt_help=false
+opt_quiet=false
+opt_verbose=false
+
+# func_echo arg...
+# Echo program name prefixed message, along with the current mode
+# name if it has been set yet.
+func_echo ()
+{
+    $ECHO "$progname${mode+: }$mode: "${1+"$@"}
+}
+
+# func_verbose arg...
+# Echo program name prefixed message in verbose mode only.
+func_verbose ()
+{
+    $opt_verbose && func_echo ${1+"$@"}
+
+    # A bug in bash halts the script if the last line of a function
+    # fails when set -e is in force, so we need another command to
+    # work around that:
+    :
+}
+
+# func_error arg...
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+    $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
+}
+
+# func_warning arg...
+# Echo program name prefixed warning message to standard error.
+func_warning ()
+{
+    $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
+}
+
+# func_fatal_error arg...
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+    func_error ${1+"$@"}
+    exit $EXIT_FAILURE
+}
+
+# func_fatal_help arg...
+# Echo program name prefixed message to standard error, followed by
+# a help hint, and exit.
+func_fatal_help ()
+{
+    func_error ${1+"$@"}
+    func_fatal_error "$help"
+}
+help="Try \`$progname --help' for more information."  ## default
+
+
+# func_grep expression filename
+# Check whether EXPRESSION matches any line of FILENAME, without output.
+func_grep ()
+{
+    $GREP "$1" "$2" >/dev/null 2>&1
+}
+
+
+# func_mkdir_p directory-path
+# Make sure the entire path to DIRECTORY-PATH is available.
+func_mkdir_p ()
+{
+    my_directory_path="$1"
+    my_dir_list=
+
+    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
+
+      # Protect directory names starting with `-'
+      case $my_directory_path in
+        -*) my_directory_path="./$my_directory_path" ;;
+      esac
+
+      # While some portion of DIR does not yet exist...
+      while test ! -d "$my_directory_path"; do
+        # ...make a list in topmost first order.  Use a colon delimited
+       # list incase some portion of path contains whitespace.
+        my_dir_list="$my_directory_path:$my_dir_list"
+
+        # If the last portion added has no slash in it, the list is done
+        case $my_directory_path in */*) ;; *) break ;; esac
+
+        # ...otherwise throw away the child directory and loop
+        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
+      done
+      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
+
+      save_mkdir_p_IFS="$IFS"; IFS=':'
+      for my_dir in $my_dir_list; do
+       IFS="$save_mkdir_p_IFS"
+        # mkdir can fail with a `File exist' error if two processes
+        # try to create one of the directories concurrently.  Don't
+        # stop in that case!
+        $MKDIR "$my_dir" 2>/dev/null || :
+      done
+      IFS="$save_mkdir_p_IFS"
+
+      # Bail out if we (or some other process) failed to create a directory.
+      test -d "$my_directory_path" || \
+        func_fatal_error "Failed to create \`$1'"
+    fi
+}
+
+
+# func_mktempdir [string]
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible.  If
+# given, STRING is the basename for that directory.
+func_mktempdir ()
+{
+    my_template="${TMPDIR-/tmp}/${1-$progname}"
+
+    if test "$opt_dry_run" = ":"; then
+      # Return a directory name, but don't create it in dry-run mode
+      my_tmpdir="${my_template}-$$"
+    else
+
+      # If mktemp works, use that first and foremost
+      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+
+      if test ! -d "$my_tmpdir"; then
+        # Failing that, at least try and use $RANDOM to avoid a race
+        my_tmpdir="${my_template}-${RANDOM-0}$$"
+
+        save_mktempdir_umask=`umask`
+        umask 0077
+        $MKDIR "$my_tmpdir"
+        umask $save_mktempdir_umask
+      fi
+
+      # If we're not in dry-run mode, bomb out on failure
+      test -d "$my_tmpdir" || \
+        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
+    fi
+
+    $ECHO "X$my_tmpdir" | $Xsed
+}
+
+
+# func_quote_for_eval arg
+# Aesthetically quote ARG to be evaled later.
+# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
+# is double-quoted, suitable for a subsequent eval, whereas
+# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
+# which are still active within double quotes backslashified.
+func_quote_for_eval ()
+{
+    case $1 in
+      *[\\\`\"\$]*)
+       func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
+      *)
+        func_quote_for_eval_unquoted_result="$1" ;;
+    esac
+
+    case $func_quote_for_eval_unquoted_result in
+      # Double-quote args containing shell metacharacters to delay
+      # word splitting, command substitution and and variable
+      # expansion for a subsequent eval.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
+        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
+        ;;
+      *)
+        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
+    esac
+}
+
+
+# func_quote_for_expand arg
+# Aesthetically quote ARG to be evaled later; same as above,
+# but do not quote variable references.
+func_quote_for_expand ()
+{
+    case $1 in
+      *[\\\`\"]*)
+       my_arg=`$ECHO "X$1" | $Xsed \
+           -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
+      *)
+        my_arg="$1" ;;
+    esac
+
+    case $my_arg in
+      # Double-quote args containing shell metacharacters to delay
+      # word splitting and command substitution for a subsequent eval.
+      # Many Bourne shells cannot handle close brackets correctly
+      # in scan sets, so we specify it separately.
+      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
+        my_arg="\"$my_arg\""
+        ;;
+    esac
+
+    func_quote_for_expand_result="$my_arg"
+}
+
+
+# func_show_eval cmd [fail_exp]
+# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
+# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.
+func_show_eval ()
+{
+    my_cmd="$1"
+    my_fail_exp="${2-:}"
+
+    ${opt_silent-false} || {
+      func_quote_for_expand "$my_cmd"
+      eval "func_echo $func_quote_for_expand_result"
+    }
+
+    if ${opt_dry_run-false}; then :; else
+      eval "$my_cmd"
+      my_status=$?
+      if test "$my_status" -eq 0; then :; else
+       eval "(exit $my_status); $my_fail_exp"
+      fi
+    fi
+}
+
+
+
+
+
+# func_version
+# Echo version message to standard output and exit.
+func_version ()
+{
+    $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
+        s/^# //
+       s/^# *$//
+        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
+        p
+     }' < "$progpath"
+     exit $?
+}
+
+# func_usage
+# Echo short help message to standard output and exit.
+func_usage ()
+{
+    $SED -n '/^# Usage:/,/# -h/ {
+        s/^# //
+       s/^# *$//
+       s/\$progname/'$progname'/
+       p
+    }' < "$progpath"
+    $ECHO
+    $ECHO "run \`$progname --help | more' for full usage"
+    exit $?
+}
+
+# func_help
+# Echo long help message to standard output and exit.
+func_help ()
+{
+    $SED -n '/^# Usage:/,/# Report bugs to/ {
+        s/^# //
+       s/^# *$//
+       s*\$progname*'$progname'*
+       s*\$host*'"$host"'*
+       s*\$SHELL*'"$SHELL"'*
+       s*\$LTCC*'"$LTCC"'*
+       s*\$LTCFLAGS*'"$LTCFLAGS"'*
+       s*\$LD*'"$LD"'*
+       s/\$with_gnu_ld/'"$with_gnu_ld"'/
+       s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
+       s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
+       p
+     }' < "$progpath"
+    exit $?
+}
+
+# func_missing_arg argname
+# Echo program name prefixed message to standard error and set global
+# exit_cmd.
+func_missing_arg ()
+{
+    func_error "missing argument for $1"
+    exit_cmd=exit
+}
+
+exit_cmd=:
+
+
+
+
+
+# Check that we have a working $ECHO.
 if test "X$1" = X--no-reexec; then
   # Discard the --no-reexec flag, and continue.
   shift
 elif test "X$1" = X--fallback-echo; then
   # Avoid inline document here, it may be left over
   :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
-  # Yippee, $echo works!
+elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+  # Yippee, $ECHO works!
   :
 else
-  # Restart under the correct shell, and then maybe $echo will work.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
+  # Restart under the correct shell, and then maybe $ECHO will work.
+  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
 fi
 
 if test "X$1" = X--fallback-echo; then
@@ -45,5245 +511,6675 @@ if test "X$1" = X--fallback-echo; then
   cat <<EOF
 $*
 EOF
-  exit 0
+  exit $EXIT_SUCCESS
 fi
 
-# The name of this program.
-progname=`$echo "$0" | sed 's%^.*/%%'`
-modename="$progname"
-
-# Constants.
-PROGRAM=ltmain.sh
-PACKAGE=libtool
-VERSION=1.4a-GCC3.0
-TIMESTAMP=" (1.641.2.256 2001/05/28 20:09:07 with GCC-local changes)"
-
-default_mode=
-help="Try \`$progname --help' for more information."
 magic="%%%MAGIC variable%%%"
-mkdir="mkdir"
-mv="mv -f"
-rm="rm -f"
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e 1s/^X//'
-sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-SP2NL='tr \040 \012'
-NL2SP='tr \015\012 \040\040'
-
-# NLS nuisances.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
-# We save the old values to restore during execute mode.
-if test "${LC_ALL+set}" = set; then
-  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
-fi
-if test "${LANG+set}" = set; then
-  save_LANG="$LANG"; LANG=C; export LANG
-fi
-
-if test "$LTCONFIG_VERSION" != "$VERSION"; then
-  echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2
-  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-  exit 1
-fi
 
-if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-  echo "$modename: not configured to build any kind of library" 1>&2
-  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-  exit 1
-fi
 
 # Global variables.
-mode=$default_mode
+# $mode is unset
 nonopt=
-prev=
-prevopt=
-run=
-show="$echo"
-show_help=
 execute_dlfiles=
+preserve_args=
 lo2o="s/\\.lo\$/.${objext}/"
 o2lo="s/\\.${objext}\$/.lo/"
-taglist=
-
-# Parse our command line options once, thoroughly.
-while test $# -gt 0
-do
-  arg="$1"
-  shift
+extracted_archives=
+extracted_serial=0
 
-  case $arg in
-  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) optarg= ;;
-  esac
-
-  # If the previous option needs an argument, assign it.
-  if test -n "$prev"; then
-    case $prev in
-    execute_dlfiles)
-      execute_dlfiles="$execute_dlfiles $arg"
-      ;;
-    tag)
-      tagname="$arg"
+opt_dry_run=false
+opt_duplicate_deps=false
+opt_silent=false
+opt_debug=:
 
-      # Check whether tagname contains only valid characters
-      case $tagname in
-      *[!-_A-Za-z0-9,/]*)
-       echo "$progname: invalid tag name: $tagname" 1>&2
-       exit 1
-        ;;
-      esac
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end.  This prevents here-documents from being
+# left over by shells.
+exec_cmd=
 
-      case $tagname in
-      CC)
-       # Don't test for the "default" C tag, as we know, it's there, but
-       # not specially marked.
-       taglist="$taglist $tagname"
-       ;;
-      *)
-        if grep "^### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then
-          taglist="$taglist $tagname"
-         # Evaluate the configuration.
-         eval "`sed -n -e '/^### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
-        else
-         echo "$progname: ignoring unknown tag $tagname" 1>&2
-        fi
-        ;;
-      esac
-      ;;
-    *)
-      eval "$prev=\$arg"
-      ;;
-    esac
+# func_fatal_configuration arg...
+# Echo program name prefixed message to standard error, followed by
+# a configuration failure hint, and exit.
+func_fatal_configuration ()
+{
+    func_error ${1+"$@"}
+    func_error "See the $PACKAGE documentation for more information."
+    func_fatal_error "Fatal configuration error."
+}
 
-    prev=
-    prevopt=
-    continue
-  fi
 
-  # Have we seen a non-optional argument yet?
-  case $arg in
-  --help)
-    show_help=yes
-    ;;
+# func_config
+# Display the configuration for all the tags in this script.
+func_config ()
+{
+    re_begincf='^# ### BEGIN LIBTOOL'
+    re_endcf='^# ### END LIBTOOL'
 
-  --version)
-    echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
-    exit 0
-    ;;
+    # Default configuration.
+    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
 
-  --config)
-    sed -n -e '/^### BEGIN LIBTOOL CONFIG/,/^### END LIBTOOL CONFIG/p' < "$0"
     # Now print the configurations for the tags.
     for tagname in $taglist; do
-      sed -n -e "/^### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0"
+      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
     done
-    exit 0
-    ;;
-
-  --debug)
-    echo "$progname: enabling shell trace mode"
-    set -x
-    ;;
 
-  --dry-run | -n)
-    run=:
-    ;;
+    exit $?
+}
 
-  --features)
-    echo "host: $host"
+# func_features
+# Display the features supported by this script.
+func_features ()
+{
+    $ECHO "host: $host"
     if test "$build_libtool_libs" = yes; then
-      echo "enable shared libraries"
+      $ECHO "enable shared libraries"
     else
-      echo "disable shared libraries"
+      $ECHO "disable shared libraries"
     fi
     if test "$build_old_libs" = yes; then
-      echo "enable static libraries"
+      $ECHO "enable static libraries"
     else
-      echo "disable static libraries"
+      $ECHO "disable static libraries"
     fi
-    exit 0
-    ;;
 
-  --finish) mode="finish" ;;
+    exit $?
+}
 
-  --mode) prevopt="--mode" prev=mode ;;
-  --mode=*) mode="$optarg" ;;
+# func_enable_tag tagname
+# Verify that TAGNAME is valid, and either flag an error and exit, or
+# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
+# variable here.
+func_enable_tag ()
+{
+  # Global variable:
+  tagname="$1"
+
+  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
+  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
+  sed_extractcf="/$re_begincf/,/$re_endcf/p"
+
+  # Validate tagname.
+  case $tagname in
+    *[!-_A-Za-z0-9,/]*)
+      func_fatal_error "invalid tag name: $tagname"
+      ;;
+  esac
 
-  --quiet | --silent)
-    show=:
-    ;;
+  # Don't test for the "default" C tag, as we know it's
+  # there but not specially marked.
+  case $tagname in
+    CC) ;;
+    *)
+      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
+       taglist="$taglist $tagname"
 
-  --tag) prevopt="--tag" prev=tag ;;
-  --tag=*)
-    set tag "$optarg" ${1+"$@"}
-    shift
-    prev=tag
-    ;;
+       # Evaluate the configuration.  Be careful to quote the path
+       # and the sed script, to avoid splitting on whitespace, but
+       # also don't use non-portable quotes within backquotes within
+       # quotes we have to do it in 2 steps:
+       extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
+       eval "$extractedcf"
+      else
+       func_error "ignoring unknown tag $tagname"
+      fi
+      ;;
+  esac
+}
 
-  -dlopen)
-    prevopt="-dlopen"
-    prev=execute_dlfiles
-    ;;
 
-  -*)
-    $echo "$modename: unrecognized option \`$arg'" 1>&2
-    $echo "$help" 1>&2
-    exit 1
-    ;;
+func_mode_help ()
+{
+    # We need to display help for each of the modes.
+    case $mode in
+      "")
+        # Generic help is extracted from the usage comments
+        # at the start of this file.
+        func_help
+        ;;
 
-  *)
-    nonopt="$arg"
-    break
-    ;;
-  esac
-done
+      clean)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
 
-if test -n "$prevopt"; then
-  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
-  $echo "$help" 1>&2
-  exit 1
-fi
+Remove files from the build directory.
 
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end.  This prevents here-documents from being
-# left over by shells.
-exec_cmd=
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
 
-if test -z "$show_help"; then
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+        ;;
 
-  # Infer the operation mode.
-  if test -z "$mode"; then
-    case $nonopt in
-    *cc | *++ | gcc* | *-gcc*)
-      mode=link
-      for arg
-      do
-       case $arg in
-       -c)
-          mode=compile
-          break
-          ;;
-       esac
-      done
-      ;;
-    *db | *dbx | *strace | *truss)
-      mode=execute
-      ;;
-    *install*|cp|mv)
-      mode=install
-      ;;
-    *rm)
-      mode=uninstall
-      ;;
-    *)
-      # If we have no mode, but dlfiles were specified, then do execute mode.
-      test -n "$execute_dlfiles" && mode=execute
+      compile)
+      $ECHO \
+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
 
-      # Just use the default operation mode.
-      if test -z "$mode"; then
-       if test -n "$nonopt"; then
-         $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
-       else
-         $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
-       fi
-      fi
-      ;;
-    esac
-  fi
+Compile a source file into a libtool library object.
 
-  # Only execute mode is allowed to have -dlopen flags.
-  if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
-    $echo "$help" 1>&2
-    exit 1
-  fi
+This mode accepts the following additional options:
 
-  # Change the help message to a mode-specific one.
-  generic_help="$help"
-  help="Try \`$modename --help --mode=$mode' for more information."
+  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
+  -no-suppress      do not suppress compiler output for multiple passes
+  -prefer-pic       try to building PIC objects only
+  -prefer-non-pic   try to building non-PIC objects only
+  -shared           do not build a \`.o' file suitable for static linking
+  -static           only build a \`.o' file suitable for static linking
 
-  # These modes are in order of execution frequency so that they run quickly.
-  case $mode in
-  # libtool compile mode
-  compile)
-    modename="$modename: compile"
-    # Get the compilation command and the source file.
-    base_compile=
-    prev=
-    lastarg=
-    srcfile="$nonopt"
-    suppress_output=
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
 
-    user_target=no
-    for arg
-    do
-      case $prev in
-      "") ;;
-      xcompiler)
-       # Aesthetically quote the previous argument.
-       prev=
-       lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+        ;;
 
-       case $arg in
-       # Double-quote args containing other shell metacharacters.
-       # Many Bourne shells cannot handle close brackets correctly
-       # in scan sets, so we specify it separately.
-       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
-         arg="\"$arg\""
-         ;;
-       esac
+      execute)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
 
-       # Add the previous argument to base_compile.
-       if test -z "$base_compile"; then
-         base_compile="$lastarg"
-       else
-         base_compile="$base_compile $lastarg"
-       fi
-       continue
-       ;;
-      esac
+Automatically set library path, then run a program.
 
-      # Accept any command-line options.
-      case $arg in
-      -o)
-       if test "$user_target" != "no"; then
-         $echo "$modename: you cannot specify \`-o' more than once" 1>&2
-         exit 1
-       fi
-       user_target=next
-       ;;
+This mode accepts the following additional options:
 
-      -static)
-       build_old_libs=yes
-       continue
-       ;;
+  -dlopen FILE      add the directory containing FILE to the library path
 
-      -prefer-pic)
-       pic_mode=yes
-       continue
-       ;;
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
 
-      -prefer-non-pic)
-       pic_mode=no
-       continue
-       ;;
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
 
-      -Xcompiler)
-       prev=xcompiler
-       continue
-       ;;
+Then, COMMAND is executed, with ARGS as arguments."
+        ;;
 
-      -Wc,*)
-       args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
-       lastarg=
-       IFS="${IFS=     }"; save_ifs="$IFS"; IFS=','
-       for arg in $args; do
-         IFS="$save_ifs"
+      finish)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
 
-         # Double-quote args containing other shell metacharacters.
-         # Many Bourne shells cannot handle close brackets correctly
-         # in scan sets, so we specify it separately.
-         case $arg in
-           *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
-           arg="\"$arg\""
-           ;;
-         esac
-         lastarg="$lastarg $arg"
-       done
-       IFS="$save_ifs"
-       lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
+Complete the installation of libtool libraries.
 
-       # Add the arguments to base_compile.
-       if test -z "$base_compile"; then
-         base_compile="$lastarg"
-       else
-         base_compile="$base_compile $lastarg"
-       fi
-       continue
-       ;;
-      esac
+Each LIBDIR is a directory that contains libtool libraries.
 
-      case $user_target in
-      next)
-       # The next one is the -o target name
-       user_target=yes
-       continue
-       ;;
-      yes)
-       # We got the output file
-       user_target=set
-       libobj="$arg"
-       continue
-       ;;
-      esac
+The commands that this mode executes may require superuser privileges.  Use
+the \`--dry-run' option if you just want to see what would be executed."
+        ;;
 
-      # Accept the current argument as the source file.
-      lastarg="$srcfile"
-      srcfile="$arg"
+      install)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
 
-      # Aesthetically quote the previous argument.
+Install executables or libraries.
 
-      # Backslashify any backslashes, double quotes, and dollar signs.
-      # These are the only characters that are still specially
-      # interpreted inside of double-quoted scrings.
-      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
+INSTALL-COMMAND is the installation command.  The first component should be
+either the \`install' or \`cp' program.
 
-      # Double-quote args containing other shell metacharacters.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      case $lastarg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
-       lastarg="\"$lastarg\""
-       ;;
-      esac
+The following components of INSTALL-COMMAND are treated specially:
 
-      # Add the previous argument to base_compile.
-      if test -z "$base_compile"; then
-       base_compile="$lastarg"
-      else
-       base_compile="$base_compile $lastarg"
-      fi
-    done
+  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
 
-    case $user_target in
-    set)
-      ;;
-    no)
-      # Get the name of the library object.
-      libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
-      ;;
-    *)
-      $echo "$modename: you must specify a target with \`-o'" 1>&2
-      exit 1
-      ;;
-    esac
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+        ;;
 
-    # Recognize several different file suffixes.
-    # If the user specifies -o file.o, it is replaced with file.lo
-    xform='[cCFSfmso]'
-    case $libobj in
-    *.ada) xform=ada ;;
-    *.adb) xform=adb ;;
-    *.ads) xform=ads ;;
-    *.asm) xform=asm ;;
-    *.c++) xform=c++ ;;
-    *.cc) xform=cc ;;
-    *.class) xform=class ;;
-    *.cpp) xform=cpp ;;
-    *.cxx) xform=cxx ;;
-    *.f90) xform=f90 ;;
-    *.for) xform=for ;;
-    *.java) xform=java ;;
-    esac
+      link)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
 
-    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
+Link object files or libraries together to form another library, or to
+create an executable program.
 
-    case $libobj in
-    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
-    *)
-      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
-      exit 1
-      ;;
-    esac
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
 
-    # Infer tagged configuration to use if any are available and
-    # if one wasn't chosen via the "--tag" command line option.
-    # Only attempt this if the compiler in the base compile
-    # command doesn't match the default compiler.
-    if test -n "$available_tags" && test -z "$tagname"; then
-      case $base_compile in
-      "$CC "*) ;;
-      # Blanks in the command may have been stripped by the calling shell,
-      # but not from the CC environment variable when ltconfig was run.
-      "`$echo $CC` "*) ;;
-      *)
-        for z in $available_tags; do
-          if grep "^### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
-           # Evaluate the configuration.
-           eval "`sed -n -e '/^### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
-            case $base_compile in
-           "$CC "*)
-              # The compiler in the base compile command matches
-              # the one in the tagged configuration.
-              # Assume this is the tagged configuration we want.
-              tagname=$z
-              break
-              ;;
-           "`$echo $CC` "*)
-             tagname=$z
-             break
-             ;;
-           esac
-          fi
-        done
-        # If $tagname still isn't set, then no tagged configuration
-        # was found and let the user know that the "--tag" command
-        # line option must be used.
-        if test -z "$tagname"; then
-          echo "$modename: unable to infer tagged configuration"
-          echo "$modename: specify a tag with \`--tag'" 1>&2
-         exit 1
-#        else
-#          echo "$modename: using $tagname tagged configuration"
-        fi
-       ;;
-      esac
-    fi
+The following components of LINK-COMMAND are treated specially:
 
-    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
-    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
-    if test "X$xdir" = "X$obj"; then
-      xdir=
-    else
-      xdir=$xdir/
-    fi
-    lobj=${xdir}$objdir/$objname
+  -all-static       do not do any dynamic linking at all
+  -avoid-version    do not add a version suffix if possible
+  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
+  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
+  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+  -export-symbols SYMFILE
+                    try to export only the symbols listed in SYMFILE
+  -export-symbols-regex REGEX
+                    try to export only the symbols matching REGEX
+  -LLIBDIR          search LIBDIR for required installed libraries
+  -lNAME            OUTPUT-FILE requires the installed library libNAME
+  -module           build a library that can dlopened
+  -no-fast-install  disable the fast-install mode
+  -no-install       link a not-installable executable
+  -no-undefined     declare that a library does not refer to external symbols
+  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
+  -objectlist FILE  Use a list of object files found in FILE to specify objects
+  -precious-files-regex REGEX
+                    don't remove output files matching REGEX
+  -release RELEASE  specify package release information
+  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
+  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
+  -shared           only do dynamic linking of libtool libraries
+  -shrext SUFFIX    override the standard shared library file extension
+  -static           do not do any dynamic linking of uninstalled libtool libraries
+  -static-libtool-libs
+                    do not do any dynamic linking of libtool libraries
+  -version-info CURRENT[:REVISION[:AGE]]
+                    specify library version info [each variable defaults to 0]
+  -weak LIBNAME     declare that the target provides the LIBNAME interface
 
-    if test -z "$base_compile"; then
-      $echo "$modename: you must specify a compilation command" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
+All other options (arguments beginning with \`-') are ignored.
 
-    # Delete any leftover library objects.
-    if test "$build_old_libs" = yes; then
-      removelist="$obj $lobj $libobj ${libobj}T"
-    else
-      removelist="$lobj $libobj ${libobj}T"
-    fi
+Every other argument is treated as a filename.  Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
 
-    $run $rm $removelist
-    trap "$run $rm $removelist; exit 1" 1 2 15
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
 
-    # On Cygwin there's no "real" PIC flag so we must build both object types
-    case $host_os in
-    cygwin* | mingw* | pw32* | os2*)
-      pic_mode=default
-      ;;
-    esac
-    if test $pic_mode = no && test "$deplibs_check_method" != pass_all; then
-      # non-PIC code in shared libraries is not supported
-      pic_mode=default
-    fi
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
 
-    # Calculate the filename of the output object if compiler does
-    # not support -o with -c
-    if test "$compiler_c_o" = no; then
-      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
-      lockfile="$output_obj.lock"
-      removelist="$removelist $output_obj $lockfile"
-      trap "$run $rm $removelist; exit 1" 1 2 15
-    else
-      output_obj=
-      need_locks=no
-      lockfile=
-    fi
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+        ;;
 
-    # Lock this critical section if it is needed
-    # We use this script file to make the link, it avoids creating a new file
-    if test "$need_locks" = yes; then
-      until $run ln "$0" "$lockfile" 2>/dev/null; do
-       $show "Waiting for $lockfile to be removed"
-       sleep 2
-      done
-    elif test "$need_locks" = warn; then
-      if test -f "$lockfile"; then
-       echo "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
+      uninstall)
+        $ECHO \
+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
 
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
+Remove libraries from an installation directory.
 
-       $run $rm $removelist
-       exit 1
-      fi
-      echo $srcfile > "$lockfile"
-    fi
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
 
-    if test -n "$fix_srcfile_path"; then
-      eval srcfile=\"$fix_srcfile_path\"
-    fi
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+        ;;
 
-    $run $rm "$libobj" "${libobj}T"
+      *)
+        func_fatal_help "invalid operation mode \`$mode'"
+        ;;
+    esac
 
-    # Create a libtool object file (analogous to a ".la" file),
-    # but don't create it if we're doing a dry run.
-    test -z "$run" && cat > ${libobj}T <<EOF
-# $libobj - a libtool object file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
+    $ECHO
+    $ECHO "Try \`$progname --help' for more information about other modes."
 
-# Name of the PIC object.
-EOF
+    exit $?
+}
 
-    # Only build a PIC object if we are building libtool libraries.
-    if test "$build_libtool_libs" = yes; then
-      # Without this assignment, base_compile gets emptied.
-      fbsd_hideous_sh_bug=$base_compile
+# Generated shell functions inserted here.
 
-      if test "$pic_mode" != no; then
-       command="$base_compile $srcfile $pic_flag"
-      else
-       # Don't build PIC code
-       command="$base_compile $srcfile"
-      fi
 
-      if test ! -d ${xdir}$objdir; then
-       $show "$mkdir ${xdir}$objdir"
-       $run $mkdir ${xdir}$objdir
-       status=$?
-       if test $status -ne 0 && test ! -d ${xdir}$objdir; then
-         exit $status
-        fi
-      fi 
+# Parse options once, thoroughly.  This comes as soon as possible in
+# the script to make things like `libtool --version' happen quickly.
+{
 
-      if test -z "$output_obj"; then
-        # Place PIC objects in $objdir
-        command="$command -o $lobj"
-      fi
+  # Shorthand for --mode=foo, only valid as the first argument
+  case $1 in
+  clean|clea|cle|cl)
+    shift; set dummy --mode clean ${1+"$@"}; shift
+    ;;
+  compile|compil|compi|comp|com|co|c)
+    shift; set dummy --mode compile ${1+"$@"}; shift
+    ;;
+  execute|execut|execu|exec|exe|ex|e)
+    shift; set dummy --mode execute ${1+"$@"}; shift
+    ;;
+  finish|finis|fini|fin|fi|f)
+    shift; set dummy --mode finish ${1+"$@"}; shift
+    ;;
+  install|instal|insta|inst|ins|in|i)
+    shift; set dummy --mode install ${1+"$@"}; shift
+    ;;
+  link|lin|li|l)
+    shift; set dummy --mode link ${1+"$@"}; shift
+    ;;
+  uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+    shift; set dummy --mode uninstall ${1+"$@"}; shift
+    ;;
+  esac
 
-      $run $rm "$lobj" "$output_obj"
+  # Parse non-mode specific arguments:
+  while test "$#" -gt 0; do
+    opt="$1"
+    shift
 
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-       test -n "$output_obj" && $run $rm $removelist
-       exit 1
-      fi
+    case $opt in
+      --config)                func_config                                     ;;
+
+      --debug)         preserve_args="$preserve_args $opt"
+                       func_echo "enabling shell trace mode"
+                       opt_debug='set -x'
+                       $opt_debug
+                       ;;
+
+      -dlopen)         test "$#" -eq 0 && func_missing_arg "$opt" && break
+                       execute_dlfiles="$execute_dlfiles $1"
+                       shift
+                       ;;
+
+      --dry-run | -n)  opt_dry_run=:                                   ;;
+      --features)       func_features                                  ;;
+      --finish)                mode="finish"                                   ;;
+
+      --mode)          test "$#" -eq 0 && func_missing_arg "$opt" && break
+                       case $1 in
+                         # Valid mode arguments:
+                         clean)        ;;
+                         compile)      ;;
+                         execute)      ;;
+                         finish)       ;;
+                         install)      ;;
+                         link)         ;;
+                         relink)       ;;
+                         uninstall)    ;;
+
+                         # Catch anything else as an error
+                         *) func_error "invalid argument for $opt"
+                            exit_cmd=exit
+                            break
+                            ;;
+                       esac
+
+                       mode="$1"
+                       shift
+                       ;;
+
+      --preserve-dup-deps)
+                       opt_duplicate_deps=:                            ;;
+
+      --quiet|--silent)        preserve_args="$preserve_args $opt"
+                       opt_silent=:
+                       ;;
+
+      --verbose| -v)   preserve_args="$preserve_args $opt"
+                       opt_silent=false
+                       ;;
+
+      --tag)           test "$#" -eq 0 && func_missing_arg "$opt" && break
+                       preserve_args="$preserve_args $opt $1"
+                       func_enable_tag "$1"    # tagname is set here
+                       shift
+                       ;;
+
+      # Separate optargs to long options:
+      -dlopen=*|--mode=*|--tag=*)
+                       func_opt_split "$opt"
+                       set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
+                       shift
+                       ;;
+
+      -\?|-h)          func_usage                                      ;;
+      --help)          opt_help=:                                      ;;
+      --version)       func_version                                    ;;
+
+      -*)              func_fatal_help "unrecognized option \`$opt'"   ;;
+
+      *)               nonopt="$opt"
+                       break
+                       ;;
+    esac
+  done
 
-      if test "$need_locks" = warn &&
-        test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
-       echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
+  # Now that we've collected a possible --mode arg, show help if necessary
+  $opt_help && func_mode_help
 
-but it should contain:
-$srcfile
+  case $host in
+    *cygwin* | *mingw* | *pw32*)
+      # don't eliminate duplications in $postdeps and $predeps
+      opt_duplicate_compiler_generated_deps=:
+      ;;
+    *)
+      opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
+      ;;
+  esac
 
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
+  # Having warned about all mis-specified options, bail out if
+  # anything was wrong.
+  $exit_cmd $EXIT_FAILURE
+}
 
-       $run $rm $removelist
-       exit 1
+# func_check_version_match
+# Ensure that we are using m4 macros, and libtool script from the same
+# release of libtool.
+func_check_version_match ()
+{
+  if test "$package_revision" != "$macro_revision"; then
+    if test "$VERSION" != "$macro_version"; then
+      if test -z "$macro_version"; then
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from an older release.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+      else
+        cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
       fi
+    else
+      cat >&2 <<_LT_EOF
+$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+$progname: of $PACKAGE $VERSION and run autoconf again.
+_LT_EOF
+    fi
 
-      # Just move the object if needed, then go on to compile the next one
-      if test -n "$output_obj" && test "x$output_obj" != "x$lobj"; then
-       $show "$mv $output_obj $lobj"
-       if $run $mv $output_obj $lobj; then :
-       else
-         error=$?
-         $run $rm $removelist
-         exit $error
-       fi
-      fi
+    exit $EXIT_MISMATCH
+  fi
+}
 
-      # Append the name of the PIC object to the libtool object file.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object='$objdir/$objname'
 
-EOF
+## ----------- ##
+##    Main.    ##
+## ----------- ##
 
-      # Allow error messages only from the first compilation.
-      suppress_output=' >/dev/null 2>&1'
-    else
-      # No PIC object so indicate it doesn't exist in the libtool
-      # object file.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object=none
+{
+  # Sanity checks first:
+  func_check_version_match
 
-EOF
+  if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+    func_fatal_configuration "not configured to build any kind of library"
+  fi
+
+  test -z "$mode" && func_fatal_error "error: you must specify a MODE."
+
+
+  # Darwin sucks
+  eval std_shrext=\"$shrext_cmds\"
+
+
+  # Only execute mode is allowed to have -dlopen flags.
+  if test -n "$execute_dlfiles" && test "$mode" != execute; then
+    func_error "unrecognized option \`-dlopen'"
+    $ECHO "$help" 1>&2
+    exit $EXIT_FAILURE
+  fi
+
+  # Change the help message to a mode-specific one.
+  generic_help="$help"
+  help="Try \`$progname --help --mode=$mode' for more information."
+}
+
+
+# func_lalib_p file
+# True iff FILE is a libtool `.la' library or `.lo' object file.
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_lalib_p ()
+{
+    $SED -e 4q "$1" 2>/dev/null \
+      | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+}
+
+# func_lalib_unsafe_p file
+# True iff FILE is a libtool `.la' library or `.lo' object file.
+# This function implements the same check as func_lalib_p without
+# resorting to external programs.  To this end, it redirects stdin and
+# closes it afterwards, without saving the original file descriptor.
+# As a safety measure, use it only where a negative result would be
+# fatal anyway.  Works if `file' does not exist.
+func_lalib_unsafe_p ()
+{
+    lalib_p=no
+    if test -r "$1" && exec 5<&1 <"$1"; then
+       for lalib_p_l in 1 2 3 4
+       do
+           read lalib_p_line
+           case "$lalib_p_line" in
+               \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
+           esac
+       done
+       exec 1<&5 5<&-
     fi
+    test "$lalib_p" = yes
+}
 
-    # Only build a position-dependent object if we build old libraries.
-    if test "$build_old_libs" = yes; then
-      if test "$pic_mode" != yes; then
-       # Don't build PIC code
-       command="$base_compile $srcfile"
-      else
-       command="$base_compile $srcfile $pic_flag"
-      fi
-      if test "$compiler_c_o" = yes; then
-       command="$command -o $obj"
-      fi
+# func_ltwrapper_p file
+# True iff FILE is a libtool wrapper script.
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_p ()
+{
+    func_lalib_p "$1"
+}
 
-      # Suppress compiler output if we already did a PIC compilation.
-      command="$command$suppress_output"
-      $run $rm "$obj" "$output_obj"
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-       $run $rm $removelist
-       exit 1
-      fi
 
-      if test "$need_locks" = warn &&
-        test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
-       echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
+# func_execute_cmds commands fail_cmd
+# Execute tilde-delimited COMMANDS.
+# If FAIL_CMD is given, eval that upon failure.
+# FAIL_CMD may read-access the current command in variable CMD!
+func_execute_cmds ()
+{
+    $opt_debug
+    save_ifs=$IFS; IFS='~'
+    for cmd in $1; do
+      IFS=$save_ifs
+      eval cmd=\"$cmd\"
+      func_show_eval "$cmd" "${2-:}"
+    done
+    IFS=$save_ifs
+}
 
-but it should contain:
-$srcfile
 
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
+# func_source file
+# Source FILE, adding directory component if necessary.
+# Note that it is not necessary on cygwin/mingw to append a dot to
+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
+# behavior happens only for exec(3), not for open(2)!  Also, sourcing
+# `FILE.' does not work on cygwin managed mounts.
+func_source ()
+{
+    $opt_debug
+    case $1 in
+    */* | *\\*)        . "$1" ;;
+    *)         . "./$1" ;;
+    esac
+}
 
-       $run $rm $removelist
-       exit 1
-      fi
 
-      # Just move the object if needed
-      if test -n "$output_obj" && test "x$output_obj" != "x$obj"; then
-       $show "$mv $output_obj $obj"
-       if $run $mv $output_obj $obj; then :
-       else
-         error=$?
-         $run $rm $removelist
-         exit $error
-       fi
-      fi
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+func_win32_libid ()
+{
+  $opt_debug
+  win32_libid_type="unknown"
+  win32_fileres=`file -L $1 2>/dev/null`
+  case $win32_fileres in
+  *ar\ archive\ import\ library*) # definitely import
+    win32_libid_type="x86 archive import"
+    ;;
+  *ar\ archive*) # could be an import, or static
+    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
+       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
+      win32_nmres=`eval $NM -f posix -A $1 |
+       $SED -n -e '
+           1,100{
+               / I /{
+                   s,.*,import,
+                   p
+                   q
+               }
+           }'`
+      case $win32_nmres in
+      import*)  win32_libid_type="x86 archive import";;
+      *)        win32_libid_type="x86 archive static";;
+      esac
+    fi
+    ;;
+  *DLL*)
+    win32_libid_type="x86 DLL"
+    ;;
+  *executable*) # but shell scripts are "executable" too...
+    case $win32_fileres in
+    *MS\ Windows\ PE\ Intel*)
+      win32_libid_type="x86 DLL"
+      ;;
+    esac
+    ;;
+  esac
+  $ECHO "$win32_libid_type"
+}
 
-      # Append the name of the non-PIC object the libtool object file.
-      # Only append if the libtool object file exists.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object='$objname'
 
-EOF
-    else
-      # Append the name of the non-PIC object the libtool object file.
-      # Only append if the libtool object file exists.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object=none
 
-EOF
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+    $opt_debug
+    if test -n "$available_tags" && test -z "$tagname"; then
+      CC_quoted=
+      for arg in $CC; do
+        func_quote_for_eval "$arg"
+       CC_quoted="$CC_quoted $func_quote_for_eval_result"
+      done
+      case $@ in
+      # Blanks in the command may have been stripped by the calling shell,
+      # but not from the CC environment variable when configure was run.
+      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
+      # Blanks at the start of $base_compile will cause this to fail
+      # if we don't check for them as well.
+      *)
+       for z in $available_tags; do
+         if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+           # Evaluate the configuration.
+           eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+           CC_quoted=
+           for arg in $CC; do
+             # Double-quote args containing other shell metacharacters.
+             func_quote_for_eval "$arg"
+             CC_quoted="$CC_quoted $func_quote_for_eval_result"
+           done
+           case "$@ " in
+             " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
+             # The compiler in the base compile command matches
+             # the one in the tagged configuration.
+             # Assume this is the tagged configuration we want.
+             tagname=$z
+             break
+             ;;
+           esac
+         fi
+       done
+       # If $tagname still isn't set, then no tagged configuration
+       # was found and let the user know that the "--tag" command
+       # line option must be used.
+       if test -z "$tagname"; then
+         func_echo "unable to infer tagged configuration"
+         func_fatal_error "specify a tag with \`--tag'"
+#      else
+#        func_verbose "using $tagname tagged configuration"
+       fi
+       ;;
+      esac
     fi
+}
+
+
 
-    $run $mv "${libobj}T" "${libobj}"
+# func_generate_dlsyms outputname originator pic_p
+# Extract symbols from dlprefiles and create ${outputname}S.o with
+# a dlpreopen symbol table.
+func_generate_dlsyms ()
+{
+    $opt_debug
+    my_outputname="$1"
+    my_originator="$2"
+    my_pic_p="${3-no}"
+    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
+    my_dlsyms=
 
-    # Unlock the critical section if it was locked
-    if test "$need_locks" != no; then
-      $run $rm "$lockfile"
+    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+      if test -n "$NM" && test -n "$global_symbol_pipe"; then
+       my_dlsyms="${my_outputname}S.c"
+      else
+       func_error "not configured to extract global symbols from dlpreopened files"
+      fi
     fi
 
-    exit 0
-    ;;
+    if test -n "$my_dlsyms"; then
+      case $my_dlsyms in
+      "") ;;
+      *.c)
+       # Discover the nlist of each of the dlfiles.
+       nlist="$output_objdir/${my_outputname}.nm"
 
-  # libtool link mode
-  link | relink)
-    modename="$modename: link"
-    case $host in
-    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-      # It is impossible to link a dll without this setting, and
-      # we shouldn't force the makefile maintainer to figure out
-      # which system we are compiling for in order to pass an extra
-      # flag for every libtool invokation.
-      # allow_undefined=no
+       func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
 
-      # FIXME: Unfortunately, there are problems with the above when trying
-      # to make a dll which has undefined symbols, in which case not
-      # even a static library is built.  For now, we need to specify
-      # -no-undefined on the libtool link line when we can be certain
-      # that all symbols are satisfied, otherwise we get a static library.
-      allow_undefined=yes
-      ;;
-    *)
-      allow_undefined=yes
-      ;;
-    esac
-    libtool_args="$nonopt"
-    base_compile="$nonopt"
-    compile_command="$nonopt"
-    finalize_command="$nonopt"
+       # Parse the name list into a source file.
+       func_echo "creating $output_objdir/$my_dlsyms"
 
-    compile_rpath=
-    finalize_rpath=
-    compile_shlibpath=
-    finalize_shlibpath=
-    convenience=
-    old_convenience=
-    deplibs=
-    old_deplibs=
-    compiler_flags=
-    linker_flags=
-    dllsearchpath=
-    lib_search_path=`pwd`
-    inst_prefix_dir=
+       $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
+/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
+/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
 
-    avoid_version=no
-    dlfiles=
-    dlprefiles=
-    dlself=no
-    export_dynamic=no
-    export_symbols=
-    export_symbols_regex=
-    generated=
-    libobjs=
-    ltlibs=
-    module=no
-    no_install=no
-    objs=
-    non_pic_objects=
-    prefer_static_libs=no
-    preload=no
-    prev=
-    prevarg=
-    release=
-    rpath=
-    xrpath=
-    perm_rpath=
-    temp_rpath=
-    thread_safe=no
-    vinfo=
+#ifdef __cplusplus
+extern \"C\" {
+#endif
 
-    # We need to know -static, to get the right output filenames.
-    for arg
-    do
-      case $arg in
-      -all-static | -static)
-       if test "X$arg" = "X-all-static"; then
-         if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
-           $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
+/* External symbol declarations for the compiler. */\
+"
+
+       if test "$dlself" = yes; then
+         func_echo "generating symbol list for \`$output'"
+
+         $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
+
+         # Add our own program objects to the symbol list.
+         progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+         for progfile in $progfiles; do
+           func_echo "extracting global C symbols from \`$progfile'"
+           $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
+         done
+
+         if test -n "$exclude_expsyms"; then
+           $opt_dry_run || {
+             eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+             eval '$MV "$nlist"T "$nlist"'
+           }
          fi
-         if test -n "$link_static_flag"; then
-           dlopen_self=$dlopen_self_static
+
+         if test -n "$export_symbols_regex"; then
+           $opt_dry_run || {
+             eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+             eval '$MV "$nlist"T "$nlist"'
+           }
          fi
-       else
-         if test -z "$pic_flag" && test -n "$link_static_flag"; then
-           dlopen_self=$dlopen_self_static
+
+         # Prepare the list of exported symbols
+         if test -z "$export_symbols"; then
+           export_symbols="$output_objdir/$outputname.exp"
+           $opt_dry_run || {
+             $RM $export_symbols
+             eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+             case $host in
+             *cygwin* | *mingw* )
+                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+               ;;
+             esac
+           }
+         else
+           $opt_dry_run || {
+             eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+             eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+             eval '$MV "$nlist"T "$nlist"'
+             case $host in
+               *cygwin | *mingw* )
+                 eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+                 eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+                 ;;
+             esac
+           }
          fi
        fi
-       build_libtool_libs=no
-       build_old_libs=yes
-       prefer_static_libs=yes
-       break
-       ;;
-      esac
-    done
 
-    # See if our shared archives depend on static archives.
-    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+       for dlprefile in $dlprefiles; do
+         func_echo "extracting global C symbols from \`$dlprefile'"
+         func_basename "$dlprefile"
+         name="$func_basename_result"
+         $opt_dry_run || {
+           eval '$ECHO ": $name " >> "$nlist"'
+           eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+         }
+       done
 
-    # Go through the arguments, transforming them on the way.
-    while test $# -gt 0; do
-      arg="$1"
-      base_compile="$base_compile $arg"
-      shift
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*|"")
-       qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
-       ;;
-      *) qarg=$arg ;;
-      esac
-      libtool_args="$libtool_args $qarg"
+       $opt_dry_run || {
+         # Make sure we have at least an empty file.
+         test -f "$nlist" || : > "$nlist"
 
-      # If the previous option needs an argument, assign it.
-      if test -n "$prev"; then
-       case $prev in
-       output)
-         compile_command="$compile_command @OUTPUT@"
-         finalize_command="$finalize_command @OUTPUT@"
-         ;;
-       esac
+         if test -n "$exclude_expsyms"; then
+           $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+           $MV "$nlist"T "$nlist"
+         fi
 
-       case $prev in
-       dlfiles|dlprefiles)
-         if test "$preload" = no; then
-           # Add the symbol object into the linking commands.
-           compile_command="$compile_command @SYMFILE@"
-           finalize_command="$finalize_command @SYMFILE@"
-           preload=yes
+         # Try sorting and uniquifying the output.
+         if $GREP -v "^: " < "$nlist" |
+             if sort -k 3 </dev/null >/dev/null 2>&1; then
+               sort -k 3
+             else
+               sort +2
+             fi |
+             uniq > "$nlist"S; then
+           :
+         else
+           $GREP -v "^: " < "$nlist" > "$nlist"S
          fi
-         case $arg in
-         *.la | *.lo) ;;  # We handle these cases below.
-         force)
-           if test "$dlself" = no; then
-             dlself=needless
-             export_dynamic=yes
-           fi
-           prev=
-           continue
-           ;;
-         self)
-           if test "$prev" = dlprefiles; then
-             dlself=yes
-           elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
-             dlself=yes
-           else
-             dlself=needless
-             export_dynamic=yes
-           fi
-           prev=
-           continue
-           ;;
+
+         if test -f "$nlist"S; then
+           eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
+         else
+           $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
+         fi
+
+         $ECHO >> "$output_objdir/$my_dlsyms" "\
+
+/* The mapping between symbol names and symbols.  */
+typedef struct {
+  const char *name;
+  void *address;
+} lt_dlsymlist;
+"
+         case $host in
+         *cygwin* | *mingw* )
+           $ECHO >> "$output_objdir/$my_dlsyms" "\
+/* DATA imports from DLLs on WIN32 con't be const, because
+   runtime relocations are performed -- see ld's documentation
+   on pseudo-relocs.  */"
+           lt_dlsym_const= ;;
+         *osf5*)
+           echo >> "$output_objdir/$my_dlsyms" "\
+/* This system does not cope well with relocations in const data */"
+           lt_dlsym_const= ;;
          *)
-           if test "$prev" = dlfiles; then
-             dlfiles="$dlfiles $arg"
-           else
-             dlprefiles="$dlprefiles $arg"
-           fi
-           prev=
-           continue
-           ;;
+           lt_dlsym_const=const ;;
+         esac
+
+         $ECHO >> "$output_objdir/$my_dlsyms" "\
+extern $lt_dlsym_const lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[];
+$lt_dlsym_const lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[] =
+{\
+  { \"$my_originator\", (void *) 0 },"
+
+         eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
+
+         $ECHO >> "$output_objdir/$my_dlsyms" "\
+  {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+  return lt_${my_prefix}_LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+       } # !$opt_dry_run
+
+       pic_flag_for_symtable=
+       case "$compile_command " in
+       *" -static "*) ;;
+       *)
+         case $host in
+         # compiling the symbol table file with pic_flag works around
+         # a FreeBSD bug that causes programs to crash when -lm is
+         # linked before any other PIC object.  But we must not use
+         # pic_flag when linking with -static.  The problem exists in
+         # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+         *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+           pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
+         *-*-hpux*)
+           pic_flag_for_symtable=" $pic_flag"  ;;
+         *)
+           if test "X$my_pic_p" != Xno; then
+             pic_flag_for_symtable=" $pic_flag"
+           fi
+           ;;
          esac
          ;;
-       expsyms)
-         export_symbols="$arg"
-         if test ! -f "$arg"; then
-           $echo "$modename: symbol file \`$arg' does not exist"
-           exit 1
-         fi
-         prev=
-         continue
-         ;;
-       expsyms_regex)
-         export_symbols_regex="$arg"
-         prev=
-         continue
-         ;;
-       inst_prefix)
-         inst_prefix_dir="$arg"
-         prev=
-         continue
+       esac
+       symtab_cflags=
+       for arg in $LTCFLAGS; do
+         case $arg in
+         -pie | -fpie | -fPIE) ;;
+         *) symtab_cflags="$symtab_cflags $arg" ;;
+         esac
+       done
+
+       # Now compile the dynamic symbol file.
+       func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
+
+       # Clean up the generated files.
+       func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
+
+       # Transform the symbol file into the correct name.
+       symfileobj="$output_objdir/${my_outputname}S.$objext"
+       case $host in
+       *cygwin* | *mingw* )
+         if test -f "$output_objdir/$my_outputname.def"; then
+           compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+           finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+         else
+           compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+           finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+         fi
          ;;
-       release)
-         release="-$arg"
-         prev=
-         continue
+       *)
+         compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+         finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
          ;;
-       objectlist)
-         if test -f "$arg"; then
-            save_arg=$arg
-           moreargs=
-           for fil in `cat $save_arg`
-           do
-#            moreargs="$moreargs $fil"
-              arg=$fil
-              # A libtool-controlled object.
+       esac
+       ;;
+      *)
+       func_fatal_error "unknown suffix for \`$my_dlsyms'"
+       ;;
+      esac
+    else
+      # We keep going just in case the user didn't refer to
+      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
+      # really was required.
 
-             # Check to see that this really is a libtool object.
-             if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-                pic_object=
-                non_pic_object=
-
-                # Read the .lo file
-                # If there is no directory component, then add one.
-                case $arg in
-                */* | *\\*) . $arg ;;
-                *) . ./$arg ;;
-                esac
-
-                if test -z "$pic_object" || \
-                   test -z "$non_pic_object" ||
-                   test "$pic_object" = none && \
-                   test "$non_pic_object" = none; then
-                  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-                  exit 1
-                fi
-
-               # Extract subdirectory from the argument.
-               xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-               if test "X$xdir" = "X$arg"; then
-                 xdir=
-               else
-                 xdir="$xdir/"
-               fi
+      # Nullify the symbol file.
+      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+    fi
+}
 
-                if test "$pic_object" != none; then
-                  # Prepend the subdirectory the object is found in.
-                 pic_object="$xdir$pic_object"
-
-                 if test "$prev" = dlfiles; then
-                   if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-                     dlfiles="$dlfiles $pic_object"
-                     prev=
-                     continue
-                   else
-                     # If libtool objects are unsupported, then we need to preload.
-                     prev=dlprefiles
-                   fi
-                 fi
-
-                 # CHECK ME:  I think I busted this.  -Ossama
-                  if test "$prev" = dlprefiles; then
-                   # Preload the old-style object.
-                   dlprefiles="$dlprefiles $pic_object"
-                   prev=
-                  fi
-
-                  # A PIC object.
-                 libobjs="$libobjs $pic_object"
-                 arg="$pic_object"
-                fi
-
-                # Non-PIC object.
-                if test "$non_pic_object" != none; then
-                  # Prepend the subdirectory the object is found in.
-                 non_pic_object="$xdir$non_pic_object"
-
-                  # A standard non-PIC object
-                  non_pic_objects="$non_pic_objects $non_pic_object"
-                  if test -z "$pic_object" || test "$pic_object" = none ; then
-                    arg="$non_pic_object"
-                  fi
-               else
-                 # If the PIC object exists, use it instead.
-                 # $xdir was prepended to $pic_object above.
-                 non_pic_object="$pic_object"
-                 non_pic_objects="$non_pic_objects $non_pic_object"
-                fi
-              else
-                # Only an error if not doing a dry-run.
-                if test -z "$run"; then
-                  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-                  exit 1
-                else
-                  # Dry-run case.
-
-                 # Extract subdirectory from the argument.
-                 xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-                 if test "X$xdir" = "X$arg"; then
-                   xdir=
-                 else
-                   xdir="$xdir/"
-                 fi
-
-                  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-                  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
-                 libobjs="$libobjs $pic_object"
-                  non_pic_objects="$non_pic_objects $non_pic_object"
-                fi
-             fi
-           done
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+    $opt_debug
+    f_ex_an_ar_dir="$1"; shift
+    f_ex_an_ar_oldlib="$1"
+    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" 'exit $?'
+    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+     :
+    else
+      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
+    fi
+}
+
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+    $opt_debug
+    my_gentop="$1"; shift
+    my_oldlibs=${1+"$@"}
+    my_oldobjs=""
+    my_xlib=""
+    my_xabs=""
+    my_xdir=""
+
+    for my_xlib in $my_oldlibs; do
+      # Extract the objects.
+      case $my_xlib in
+       [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+       *) my_xabs=`pwd`"/$my_xlib" ;;
+      esac
+      func_basename "$my_xlib"
+      my_xlib="$func_basename_result"
+      my_xlib_u=$my_xlib
+      while :; do
+        case " $extracted_archives " in
+       *" $my_xlib_u "*)
+         extracted_serial=`expr $extracted_serial + 1`
+         my_xlib_u=lt$extracted_serial-$my_xlib ;;
+       *) break ;;
+       esac
+      done
+      extracted_archives="$extracted_archives $my_xlib_u"
+      my_xdir="$my_gentop/$my_xlib_u"
+
+      func_mkdir_p "$my_xdir"
+
+      case $host in
+      *-darwin*)
+       func_echo "Extracting $my_xabs"
+       # Do not bother doing anything if just a dry run
+       $opt_dry_run || {
+         darwin_orig_dir=`pwd`
+         cd $my_xdir || exit $?
+         darwin_archive=$my_xabs
+         darwin_curdir=`pwd`
+         darwin_base_archive=`basename $darwin_archive`
+         darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
+         if test -n "$darwin_arches"; then
+           darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
+           darwin_arch=
+           func_echo "$darwin_base_archive has multiple architectures $darwin_arches"
+           for darwin_arch in  $darwin_arches ; do
+             func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+             lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+             cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+             func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+             cd "$darwin_curdir"
+             $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+           done # $darwin_arches
+            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
+           darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
+           darwin_file=
+           darwin_files=
+           for darwin_file in $darwin_filelist; do
+             darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+             lipo -create -output "$darwin_file" $darwin_files
+           done # $darwin_filelist
+           $RM -rf unfat-$$
+           cd "$darwin_orig_dir"
          else
-           $echo "$modename: link input file \`$save_arg' does not exist"
-           exit 1
-         fi
-          arg=$save_arg
-         prev=
+           cd $darwin_orig_dir
+           func_extract_an_archive "$my_xdir" "$my_xabs"
+         fi # $darwin_arches
+       } # !$opt_dry_run
+       ;;
+      *)
+        func_extract_an_archive "$my_xdir" "$my_xabs"
+       ;;
+      esac
+      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+    done
+
+    func_extract_archives_result="$my_oldobjs"
+}
+
+
+
+# func_write_libtool_object output_name pic_name nonpic_name
+# Create a libtool object file (analogous to a ".la" file),
+# but don't create it if we're doing a dry run.
+func_write_libtool_object ()
+{
+    write_libobj=${1}
+    if test "$build_libtool_libs" = yes; then
+      write_lobj=\'${2}\'
+    else
+      write_lobj=none
+    fi
+
+    if test "$build_old_libs" = yes; then
+      write_oldobj=\'${3}\'
+    else
+      write_oldobj=none
+    fi
+
+    $opt_dry_run || {
+      cat >${write_libobj}T <<EOF
+# $write_libobj - a libtool object file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object=$write_lobj
+
+# Name of the non-PIC object
+non_pic_object=$write_oldobj
+
+EOF
+      mv -f "${write_libobj}T" "${write_libobj}"
+    }
+}
+
+# func_mode_compile arg...
+func_mode_compile ()
+{
+    $opt_debug
+    # Get the compilation command and the source file.
+    base_compile=
+    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
+    suppress_opt=yes
+    suppress_output=
+    arg_mode=normal
+    libobj=
+    later=
+    pie_flag=
+
+    for arg
+    do
+      case $arg_mode in
+      arg  )
+       # do not "continue".  Instead, add this to base_compile
+       lastarg="$arg"
+       arg_mode=normal
+       ;;
+
+      target )
+       libobj="$arg"
+       arg_mode=normal
+       continue
+       ;;
+
+      normal )
+       # Accept any command-line options.
+       case $arg in
+       -o)
+         test -n "$libobj" && \
+           func_fatal_error "you cannot specify \`-o' more than once"
+         arg_mode=target
          continue
          ;;
-       rpath | xrpath)
-         # We need an absolute path.
-         case $arg in
-         [\\/]* | [A-Za-z]:[\\/]*) ;;
-         *)
-           $echo "$modename: only absolute run-paths are allowed" 1>&2
-           exit 1
-           ;;
-         esac
-         if test "$prev" = rpath; then
-           case "$rpath " in
-           *" $arg "*) ;;
-           *) rpath="$rpath $arg" ;;
-           esac
-         else
-           case "$xrpath " in
-           *" $arg "*) ;;
-           *) xrpath="$xrpath $arg" ;;
-           esac
-         fi
-         prev=
+
+       -pie | -fpie | -fPIE)
+          pie_flag="$pie_flag $arg"
          continue
          ;;
-       xcompiler)
-         compiler_flags="$compiler_flags $qarg"
-         prev=
-         compile_command="$compile_command $qarg"
-         finalize_command="$finalize_command $qarg"
+
+       -shared | -static | -prefer-pic | -prefer-non-pic)
+         later="$later $arg"
          continue
          ;;
-       xlinker)
-         linker_flags="$linker_flags $qarg"
-         compiler_flags="$compiler_flags $wl$qarg"
-         prev=
-         compile_command="$compile_command $wl$qarg"
-         finalize_command="$finalize_command $wl$qarg"
+
+       -no-suppress)
+         suppress_opt=no
          continue
          ;;
-       framework)
-         case $host in
-          *-*-darwin*)
-            case "$deplibs " in
-              *" $qarg.framework "*) ;;
-              *) deplibs="$deplibs $qarg.framework" # this is fixed later
-                 ;;
-            esac
-            ;;
-         esac
-         prev=
+
+       -Xcompiler)
+         arg_mode=arg  #  the next one goes into the "base_compile" arg list
+         continue      #  The current "srcfile" will either be retained or
+         ;;            #  replaced later.  I would guess that would be a bug.
+
+       -Wc,*)
+         func_stripname '-Wc,' '' "$arg"
+         args=$func_stripname_result
+         lastarg=
+         save_ifs="$IFS"; IFS=','
+         for arg in $args; do
+           IFS="$save_ifs"
+           func_quote_for_eval "$arg"
+           lastarg="$lastarg $func_quote_for_eval_result"
+         done
+         IFS="$save_ifs"
+         func_stripname ' ' '' "$lastarg"
+         lastarg=$func_stripname_result
+
+         # Add the arguments to base_compile.
+         base_compile="$base_compile $lastarg"
          continue
          ;;
+
        *)
-         eval "$prev=\"\$arg\""
-         prev=
-         continue
+         # Accept the current argument as the source file.
+         # The previous "srcfile" becomes the current argument.
+         #
+         lastarg="$srcfile"
+         srcfile="$arg"
          ;;
-       esac
-      fi # test -n $prev
+       esac  #  case $arg
+       ;;
+      esac    #  case $arg_mode
 
-      prevarg="$arg"
+      # Aesthetically quote the previous argument.
+      func_quote_for_eval "$lastarg"
+      base_compile="$base_compile $func_quote_for_eval_result"
+    done # for arg
 
-      case $arg in
-      -all-static)
-       if test -n "$link_static_flag"; then
-         compile_command="$compile_command $link_static_flag"
-         finalize_command="$finalize_command $link_static_flag"
-       fi
-       continue
-       ;;
+    case $arg_mode in
+    arg)
+      func_fatal_error "you must specify an argument for -Xcompile"
+      ;;
+    target)
+      func_fatal_error "you must specify a target with \`-o'"
+      ;;
+    *)
+      # Get the name of the library object.
+      test -z "$libobj" && {
+       func_basename "$srcfile"
+       libobj="$func_basename_result"
+      }
+      ;;
+    esac
 
-      -allow-undefined)
-       # FIXME: remove this flag sometime in the future.
-       $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
-       continue
-       ;;
+    # Recognize several different file suffixes.
+    # If the user specifies -o file.o, it is replaced with file.lo
+    xform='[cCFSifmso]'
+    case $libobj in
+    *.ada) xform=ada ;;
+    *.adb) xform=adb ;;
+    *.ads) xform=ads ;;
+    *.asm) xform=asm ;;
+    *.c++) xform=c++ ;;
+    *.cc) xform=cc ;;
+    *.ii) xform=ii ;;
+    *.class) xform=class ;;
+    *.cpp) xform=cpp ;;
+    *.cxx) xform=cxx ;;
+    *.[fF][09]?) xform='[fF][09].' ;;
+    *.for) xform=for ;;
+    *.java) xform=java ;;
+    *.obj) xform=obj ;;
+    esac
 
-      -avoid-version)
-       avoid_version=yes
-       continue
-       ;;
+    libobj=`$ECHO "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
 
-      -dlopen)
-       prev=dlfiles
-       continue
-       ;;
+    case $libobj in
+    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
+    *)
+      func_fatal_error "cannot determine name of library object from \`$libobj'"
+      ;;
+    esac
 
-      -dlpreopen)
-       prev=dlprefiles
-       continue
-       ;;
+    func_infer_tag $base_compile
 
-      -export-dynamic)
-       export_dynamic=yes
+    for arg in $later; do
+      case $arg in
+      -shared)
+       test "$build_libtool_libs" != yes && \
+         func_fatal_configuration "can not build a shared library"
+       build_old_libs=no
        continue
        ;;
 
-      -export-symbols | -export-symbols-regex)
-       if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-         $echo "$modename: more than one -exported-symbols argument is not allowed"
-         exit 1
-       fi
-       if test "X$arg" = "X-export-symbols"; then
-         prev=expsyms
-       else
-         prev=expsyms_regex
-       fi
+      -static)
+       build_libtool_libs=no
+       build_old_libs=yes
        continue
        ;;
 
-      -inst-prefix-dir)
-       prev=inst_prefix
+      -prefer-pic)
+       pic_mode=yes
        continue
        ;;
 
-      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
-      # so, if we see these flags be careful not to treat them like -L
-      -L[A-Z][A-Z]*:*)
-       case $with_gcc/$host in
-       no/*-*-irix*)
-         compile_command="$compile_command $arg"
-         finalize_command="$finalize_command $arg"
-         ;;
-       esac
+      -prefer-non-pic)
+       pic_mode=no
        continue
        ;;
+      esac
+    done
 
-      -L*)
-       dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
-       # We need an absolute path.
-       case $dir in
-       [\\/]* | [A-Za-z]:[\\/]*) ;;
-       *)
-         absdir=`cd "$dir" && pwd`
-         if test -z "$absdir"; then
-           $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
-           exit 1
-         fi
-         dir="$absdir"
-         ;;
-       esac
-       case "$deplibs " in
-       *" -L$dir "*) ;;
-       *)
-         deplibs="$deplibs -L$dir"
-         lib_search_path="$lib_search_path $dir"
-         ;;
-       esac
-       case $host in
-       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-         case :$dllsearchpath: in
-         *":$dir:"*) ;;
-         *) dllsearchpath="$dllsearchpath:$dir";;
-         esac
-         ;;
-       esac
-       continue
-       ;;
-
-      -l*)
-       if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
-         case $host in
-         *-*-cygwin* | *-*-pw32* | *-*-beos*)
-           # These systems don't actually have a C or math library (as such)
-           continue
-           ;;
-         *-*-mingw* | *-*-os2*)
-           # These systems don't actually have a C library (as such)
-           test "X$arg" = "X-lc" && continue
-           ;;
-         esac
-       fi
-       deplibs="$deplibs $arg"
-       continue
-       ;;
-
-      -module)
-       module=yes
-       continue
-       ;;
+    func_quote_for_eval "$libobj"
+    test "X$libobj" != "X$func_quote_for_eval_result" \
+      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'  &()|`$[]' \
+      && func_warning "libobj name \`$libobj' may not contain shell special characters."
+    func_basename "$obj"
+    objname="$func_basename_result"
+    func_dirname "$obj" "/" ""
+    xdir="$func_dirname_result"
+    lobj=${xdir}$objdir/$objname
 
-      -no-fast-install)
-       fast_install=no
-       continue
-       ;;
+    test -z "$base_compile" && \
+      func_fatal_help "you must specify a compilation command"
 
-      -no-install)
-       case $host in
-       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-         # The PATH hackery in wrapper scripts is required on Windows
-         # in order for the loader to find any dlls it needs.
-         $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
-         $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
-         fast_install=no
-         ;;
-       *) no_install=yes ;;
-       esac
-       continue
-       ;;
+    # Delete any leftover library objects.
+    if test "$build_old_libs" = yes; then
+      removelist="$obj $lobj $libobj ${libobj}T"
+    else
+      removelist="$lobj $libobj ${libobj}T"
+    fi
 
-      -no-undefined)
-       allow_undefined=no
-       continue
-       ;;
+    $opt_dry_run || $RM $removelist
+    trap "$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE" 1 2 15
 
-      -objectlist)
-       prev=objectlist
-       continue
-       ;;
+    # On Cygwin there's no "real" PIC flag so we must build both object types
+    case $host_os in
+    cygwin* | mingw* | pw32* | os2*)
+      pic_mode=default
+      ;;
+    esac
+    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+      # non-PIC code in shared libraries is not supported
+      pic_mode=default
+    fi
 
-      -o) prev=output ;;
+    # Calculate the filename of the output object if compiler does
+    # not support -o with -c
+    if test "$compiler_c_o" = no; then
+      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+      lockfile="$output_obj.lock"
+      removelist="$removelist $output_obj $lockfile"
+      trap "$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE" 1 2 15
+    else
+      output_obj=
+      need_locks=no
+      lockfile=
+    fi
 
-      -release)
-       prev=release
-       continue
-       ;;
+    # Lock this critical section if it is needed
+    # We use this script file to make the link, it avoids creating a new file
+    if test "$need_locks" = yes; then
+      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+       func_echo "Waiting for $lockfile to be removed"
+       sleep 2
+      done
+    elif test "$need_locks" = warn; then
+      if test -f "$lockfile"; then
+       $ECHO "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
 
-      -rpath)
-       prev=rpath
-       continue
-       ;;
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
 
-      -R)
-       prev=xrpath
-       continue
-       ;;
+       $opt_dry_run || $RM $removelist
+       exit $EXIT_FAILURE
+      fi
+      $ECHO "$srcfile" > "$lockfile"
+    fi
 
-      -R*)
-       dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
-       # We need an absolute path.
-       case $dir in
-       [\\/]* | [A-Za-z]:[\\/]*) ;;
-       *)
-         $echo "$modename: only absolute run-paths are allowed" 1>&2
-         exit 1
-         ;;
-       esac
-       case "$xrpath " in
-       *" $dir "*) ;;
-       *) xrpath="$xrpath $dir" ;;
-       esac
-       continue
-       ;;
+    if test -n "$fix_srcfile_path"; then
+      eval srcfile=\"$fix_srcfile_path\"
+    fi
+    func_quote_for_eval "$srcfile"
+    qsrcfile=$func_quote_for_eval_result
 
-      -static)
-       # The effects of -static are defined in a previous loop.
-       # We used to do the same as -all-static on platforms that
-       # didn't have a PIC flag, but the assumption that the effects
-       # would be equivalent was wrong.  It would break on at least
-       # Digital Unix and AIX.
-       continue
-       ;;
+    $opt_dry_run || $RM "$libobj" "${libobj}T"
 
-      -thread-safe)
-       thread_safe=yes
-       continue
-       ;;
+    # Only build a PIC object if we are building libtool libraries.
+    if test "$build_libtool_libs" = yes; then
+      # Without this assignment, base_compile gets emptied.
+      fbsd_hideous_sh_bug=$base_compile
 
-      -version-info)
-       prev=vinfo
-       continue
-       ;;
+      if test "$pic_mode" != no; then
+       command="$base_compile $qsrcfile $pic_flag"
+      else
+       # Don't build PIC code
+       command="$base_compile $qsrcfile"
+      fi
 
-      -Wc,*)
-       args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
-       arg=
-       IFS="${IFS=     }"; save_ifs="$IFS"; IFS=','
-       for flag in $args; do
-         IFS="$save_ifs"
-         case $flag in
-           *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
-           flag="\"$flag\""
-           ;;
-         esac
-         arg="$arg $wl$flag"
-         compiler_flags="$compiler_flags $flag"
-       done
-       IFS="$save_ifs"
-       arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-       ;;
+      func_mkdir_p "$xdir$objdir"
 
-      -Wl,*)
-       args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
-       arg=
-       IFS="${IFS=     }"; save_ifs="$IFS"; IFS=','
-       for flag in $args; do
-         IFS="$save_ifs"
-         case $flag in
-           *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \       ]*|*]*|"")
-           flag="\"$flag\""
-           ;;
-         esac
-         arg="$arg $wl$flag"
-         compiler_flags="$compiler_flags $wl$flag"
-         linker_flags="$linker_flags $flag"
-       done
-       IFS="$save_ifs"
-       arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-       ;;
+      if test -z "$output_obj"; then
+       # Place PIC objects in $objdir
+       command="$command -o $lobj"
+      fi
 
-      -Xcompiler)
-       prev=xcompiler
-       continue
-       ;;
+      $opt_dry_run || $RM "$lobj" "$output_obj"
 
-      -Xlinker)
-       prev=xlinker
-       continue
-       ;;
-      -framework)
-       prev=framework
-       continue
-       ;;
+      func_show_eval "$command"        \
+          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
 
-      # Some other compiler flag.
-      -* | +*)
-       # Unknown arguments in both finalize_command and compile_command need
-       # to be aesthetically quoted because they are evaled later.
-       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-       case $arg in
-       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
-         arg="\"$arg\""
-         ;;
-       esac
-       ;;
+      if test "$need_locks" = warn &&
+        test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+       $ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
 
-      *.$objext)
-       # A standard object.
-       objs="$objs $arg"
-       ;;
+but it should contain:
+$srcfile
 
-      *.lo)
-       # A libtool-controlled object.
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
 
-       # Check to see that this really is a libtool object.
-       if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-          pic_object=
-          non_pic_object=
-
-          # Read the .lo file
-          # If there is no directory component, then add one.
-          case $arg in
-          */* | *\\*) . $arg ;;
-          *) . ./$arg ;;
-          esac
-
-          if test -z "$pic_object" || \
-             test -z "$non_pic_object" ||
-             test "$pic_object" = none && \
-             test "$non_pic_object" = none; then
-            $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-            exit 1
-          fi
+       $opt_dry_run || $RM $removelist
+       exit $EXIT_FAILURE
+      fi
 
-         # Extract subdirectory from the argument.
-         xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-         if test "X$xdir" = "X$arg"; then
-           xdir=
-         else
-           xdir="$xdir/"
-         fi
+      # Just move the object if needed, then go on to compile the next one
+      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+       func_show_eval '$MV "$output_obj" "$lobj"' \
+         'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
 
-          if test "$pic_object" != none; then
-            # Prepend the subdirectory the object is found in.
-           pic_object="$xdir$pic_object"
+      # Allow error messages only from the first compilation.
+      if test "$suppress_opt" = yes; then
+       suppress_output=' >/dev/null 2>&1'
+      fi
+    fi
 
-           if test "$prev" = dlfiles; then
-             if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-               dlfiles="$dlfiles $pic_object"
-               prev=
-               continue
-             else
-               # If libtool objects are unsupported, then we need to preload.
-               prev=dlprefiles
-             fi
-           fi
+    # Only build a position-dependent object if we build old libraries.
+    if test "$build_old_libs" = yes; then
+      if test "$pic_mode" != yes; then
+       # Don't build PIC code
+       command="$base_compile $qsrcfile$pie_flag"
+      else
+       command="$base_compile $qsrcfile $pic_flag"
+      fi
+      if test "$compiler_c_o" = yes; then
+       command="$command -o $obj"
+      fi
 
-           # CHECK ME:  I think I busted this.  -Ossama
-            if test "$prev" = dlprefiles; then
-             # Preload the old-style object.
-             dlprefiles="$dlprefiles $pic_object"
-             prev=
-            fi
+      # Suppress compiler output if we already did a PIC compilation.
+      command="$command$suppress_output"
+      $opt_dry_run || $RM "$obj" "$output_obj"
+      func_show_eval "$command" \
+        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
 
-            # A PIC object.
-           libobjs="$libobjs $pic_object"
-           arg="$pic_object"
-          fi
+      if test "$need_locks" = warn &&
+        test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+       $ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
 
-          # Non-PIC object.
-          if test "$non_pic_object" != none; then
-            # Prepend the subdirectory the object is found in.
-           non_pic_object="$xdir$non_pic_object"
+but it should contain:
+$srcfile
 
-            # A standard non-PIC object
-            non_pic_objects="$non_pic_objects $non_pic_object"
-            if test -z "$pic_object" || test "$pic_object" = none ; then
-              arg="$non_pic_object"
-            fi
-         else
-           # If the PIC object exists, use it instead.
-           # $xdir was prepended to $pic_object above.
-           non_pic_object="$pic_object"
-           non_pic_objects="$non_pic_objects $non_pic_object"
-          fi
-        else
-          # Only an error if not doing a dry-run.
-          if test -z "$run"; then
-            $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-            exit 1
-          else
-            # Dry-run case.
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together.  If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
 
-           # Extract subdirectory from the argument.
-           xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-           if test "X$xdir" = "X$arg"; then
-             xdir=
-           else
-             xdir="$xdir/"
-           fi
+       $opt_dry_run || $RM $removelist
+       exit $EXIT_FAILURE
+      fi
 
-            pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-            non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
-           libobjs="$libobjs $pic_object"
-            non_pic_objects="$non_pic_objects $non_pic_object"
-          fi
-       fi
-       ;;
+      # Just move the object if needed
+      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+       func_show_eval '$MV "$output_obj" "$obj"' \
+         'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+      fi
+    fi
 
-      *.$libext)
-       # An archive.
-       deplibs="$deplibs $arg"
-       old_deplibs="$old_deplibs $arg"
-       continue
-       ;;
+    $opt_dry_run || {
+      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
+
+      # Unlock the critical section if it was locked
+      if test "$need_locks" != no; then
+        $RM "$lockfile"
+      fi
+    }
+
+    exit $EXIT_SUCCESS
+}
+
+test "$mode" = compile && func_mode_compile ${1+"$@"}
+
+
+# func_mode_execute arg...
+func_mode_execute ()
+{
+    $opt_debug
+    # The first argument is the command name.
+    cmd="$nonopt"
+    test -z "$cmd" && \
+      func_fatal_help "you must specify a COMMAND"
+
+    # Handle -dlopen flags immediately.
+    for file in $execute_dlfiles; do
+      test -f "$file" \
+       || func_fatal_help "\`$file' is not a file"
 
+      dir=
+      case $file in
       *.la)
-       # A libtool-controlled library.
+       # Check to see that this really is a libtool archive.
+       func_lalib_unsafe_p "$file" \
+         || func_fatal_help "\`$lib' is not a valid libtool archive"
 
-       if test "$prev" = dlfiles; then
-         # This library was specified with -dlopen.
-         dlfiles="$dlfiles $arg"
-         prev=
-       elif test "$prev" = dlprefiles; then
-         # The library was specified with -dlpreopen.
-         dlprefiles="$dlprefiles $arg"
-         prev=
+       # Read the libtool library.
+       dlname=
+       library_names=
+       func_source "$file"
+
+       # Skip this library if it cannot be dlopened.
+       if test -z "$dlname"; then
+         # Warn if it was a shared library.
+         test -n "$library_names" && \
+           func_warning "\`$file' was not linked with \`-export-dynamic'"
+         continue
+       fi
+
+       func_dirname "$file" "" "."
+       dir="$func_dirname_result"
+
+       if test -f "$dir/$objdir/$dlname"; then
+         dir="$dir/$objdir"
        else
-         deplibs="$deplibs $arg"
+         if test ! -f "$dir/$dlname"; then
+           func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
+         fi
        fi
-       continue
        ;;
 
-      # Some other compiler argument.
+      *.lo)
+       # Just add the directory containing the .lo file.
+       func_dirname "$file" "" "."
+       dir="$func_dirname_result"
+       ;;
+
       *)
-       # Unknown arguments in both finalize_command and compile_command need
-       # to be aesthetically quoted because they are evaled later.
-       arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-       case $arg in
-       *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \   ]*|*]*|"")
-         arg="\"$arg\""
-         ;;
-       esac
+       func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
+       continue
        ;;
-      esac # arg
+      esac
 
-      # Now actually substitute the argument into the commands.
-      if test -n "$arg"; then
-       compile_command="$compile_command $arg"
-       finalize_command="$finalize_command $arg"
+      # Get the absolute pathname.
+      absdir=`cd "$dir" && pwd`
+      test -n "$absdir" && dir="$absdir"
+
+      # Now add the directory to shlibpath_var.
+      if eval "test -z \"\$$shlibpath_var\""; then
+       eval "$shlibpath_var=\"\$dir\""
+      else
+       eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
       fi
-    done # argument parsing loop
+    done
 
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
+    # This variable tells wrapper scripts just to set shlibpath_var
+    # rather than running their programs.
+    libtool_execute_magic="$magic"
 
-    # Infer tagged configuration to use if any are available and
-    # if one wasn't chosen via the "--tag" command line option.
-    # Only attempt this if the compiler in the base link
-    # command doesn't match the default compiler.
-    if test -n "$available_tags" && test -z "$tagname"; then
-      case $base_compile in
-      "$CC "*) ;;
-      # Blanks in the command may have been stripped by the calling shell,
-      # but not from the CC environment variable when ltconfig was run.
-      "`$echo $CC` "*) ;;
+    # Check if any of the arguments is a wrapper script.
+    args=
+    for file
+    do
+      case $file in
+      -*) ;;
       *)
-        for z in $available_tags; do
-          if grep "^### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
-           # Evaluate the configuration.
-           eval "`sed -n -e '/^### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
-            case $base_compile in
-           "$CC "*)
-              # The compiler in $compile_command matches
-              # the one in the tagged configuration.
-              # Assume this is the tagged configuration we want.
-              tagname=$z
-              break
-             ;;
-           "`$echo $CC` "*)
-             tagname=$z
-             break
-             ;;
-           esac
-          fi
-        done
-        # If $tagname still isn't set, then no tagged configuration
-        # was found and let the user know that the "--tag" command
-        # line option must be used.
-        if test -z "$tagname"; then
-          echo "$modename: unable to infer tagged configuration"
-          echo "$modename: specify a tag with \`--tag'" 1>&2
-         exit 1
-#       else
-#         echo "$modename: using $tagname tagged configuration"
-        fi
+       # Do a test to see if this is really a libtool program.
+       if func_ltwrapper_p "$file"; then
+         func_source "$file"
+
+         # Transform arg to wrapped name.
+         file="$progdir/$program"
+       fi
        ;;
       esac
+      # Quote arguments (to preserve shell metacharacters).
+      func_quote_for_eval "$file"
+      args="$args $func_quote_for_eval_result"
+    done
+
+    if test "X$opt_dry_run" = Xfalse; then
+      if test -n "$shlibpath_var"; then
+       # Export the shlibpath_var.
+       eval "export $shlibpath_var"
+      fi
+
+      # Restore saved environment variables
+      for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+      do
+       eval "if test \"\${save_$lt_var+set}\" = set; then
+                $lt_var=\$save_$lt_var; export $lt_var
+             else
+               $lt_unset $lt_var
+             fi"
+      done
+
+      # Now prepare to actually exec the command.
+      exec_cmd="\$cmd$args"
+    else
+      # Display what would be done.
+      if test -n "$shlibpath_var"; then
+       eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
+       $ECHO "export $shlibpath_var"
+      fi
+      $ECHO "$cmd$args"
+      exit $EXIT_SUCCESS
     fi
+}
 
-    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
-      eval arg=\"$export_dynamic_flag_spec\"
-      compile_command="$compile_command $arg"
-      finalize_command="$finalize_command $arg"
+test "$mode" = execute && func_mode_execute ${1+"$@"}
+
+
+# func_mode_finish arg...
+func_mode_finish ()
+{
+    $opt_debug
+    libdirs="$nonopt"
+    admincmds=
+
+    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+      for dir
+      do
+       libdirs="$libdirs $dir"
+      done
+
+      for libdir in $libdirs; do
+       if test -n "$finish_cmds"; then
+         # Do each command in the finish commands.
+         func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
+'"$cmd"'"'
+       fi
+       if test -n "$finish_eval"; then
+         # Do the single finish_eval.
+         eval cmds=\"$finish_eval\"
+         $opt_dry_run || eval "$cmds" || admincmds="$admincmds
+       $cmds"
+       fi
+      done
     fi
 
-    # calculate the name of the file, without its directory
-    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
-    libobjs_save="$libobjs"
+    # Exit here if they wanted silent mode.
+    $opt_silent && exit $EXIT_SUCCESS
 
+    $ECHO "X----------------------------------------------------------------------" | $Xsed
+    $ECHO "Libraries have been installed in:"
+    for libdir in $libdirs; do
+      $ECHO "   $libdir"
+    done
+    $ECHO
+    $ECHO "If you ever happen to want to link against installed libraries"
+    $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
+    $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
+    $ECHO "flag during linking and do at least one of the following:"
     if test -n "$shlibpath_var"; then
-      # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
-    else
-      shlib_search_path=
+      $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
+      $ECHO "     during execution"
     fi
-    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
-    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+    if test -n "$runpath_var"; then
+      $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
+      $ECHO "     during linking"
+    fi
+    if test -n "$hardcode_libdir_flag_spec"; then
+      libdir=LIBDIR
+      eval flag=\"$hardcode_libdir_flag_spec\"
 
-    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
-    if test "X$output_objdir" = "X$output"; then
-      output_objdir="$objdir"
-    else
-      output_objdir="$output_objdir/$objdir"
+      $ECHO "   - use the \`$flag' linker flag"
     fi
-    # Create the object directory.
-    if test ! -d $output_objdir; then
-      $show "$mkdir $output_objdir"
-      $run $mkdir $output_objdir
-      status=$?
-      if test $status -ne 0 && test ! -d $output_objdir; then
-       exit $status
-      fi
+    if test -n "$admincmds"; then
+      $ECHO "   - have your system administrator run these commands:$admincmds"
+    fi
+    if test -f /etc/ld.so.conf; then
+      $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
     fi
+    $ECHO
 
-    # Determine the type of output
-    case $output in
-    "")
-      $echo "$modename: you must specify an output file" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-      ;;
-    *.$libext) linkmode=oldlib ;;
-    *.lo | *.$objext) linkmode=obj ;;
-    *.la) linkmode=lib ;;
-    *) linkmode=prog ;; # Anything else should be a program.
+    $ECHO "See any operating system documentation about shared libraries for"
+    case $host in
+      solaris2.[6789]|solaris2.1[0-9])
+        $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+       $ECHO "pages."
+       ;;
+      *)
+        $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
+        ;;
     esac
+    $ECHO "X----------------------------------------------------------------------" | $Xsed
+    exit $EXIT_SUCCESS
+}
 
-    specialdeplibs=
-    libs=
-    # Find all interdependent deplibs by searching for libraries
-    # that are linked more than once (e.g. -la -lb -la)
-    for deplib in $deplibs; do
-      case "$libs " in
-      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-      esac
-      libs="$libs $deplib"
-    done
+test "$mode" = finish && func_mode_finish ${1+"$@"}
 
-    if test $linkmode = lib; then
-      libs="$predeps $libs $compiler_lib_search_path $postdeps"
 
-      # Compute libraries that are listed more than once in $predeps
-      # $postdeps and mark them as special (i.e., whose duplicates are
-      # not to be eliminated).
-      pre_post_deps=
-      for pre_post_dep in $predeps $postdeps; do
-        case "$pre_post_deps " in
-       *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
-       esac
-       pre_post_deps="$pre_post_deps $pre_post_dep"
-      done
-      pre_post_deps=
+# func_mode_install arg...
+func_mode_install ()
+{
+    $opt_debug
+    # There may be an optional sh(1) argument at the beginning of
+    # install_prog (especially on Windows NT).
+    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+       # Allow the use of GNU shtool's install command.
+       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
+      # Aesthetically quote it.
+      func_quote_for_eval "$nonopt"
+      install_prog="$func_quote_for_eval_result "
+      arg=$1
+      shift
+    else
+      install_prog=
+      arg=$nonopt
     fi
 
-    deplibs=
-    newdependency_libs=
-    newlib_search_path=
-    need_relink=no # whether we're linking any uninstalled libtool libraries
-    notinst_deplibs= # not-installed libtool libraries
-    notinst_path= # paths that contain not-installed libtool libraries
-    case $linkmode in
-    lib)
-       passes="conv link"
-       for file in $dlfiles $dlprefiles; do
-         case $file in
-         *.la) ;;
-         *)
-           $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
-           exit 1
-           ;;
-         esac
-       done
+    # The real first argument should be the name of the installation program.
+    # Aesthetically quote it.
+    func_quote_for_eval "$arg"
+    install_prog="$install_prog$func_quote_for_eval_result"
+
+    # We need to accept at least all the BSD install flags.
+    dest=
+    files=
+    opts=
+    prev=
+    install_type=
+    isdir=no
+    stripme=
+    for arg
+    do
+      if test -n "$dest"; then
+       files="$files $dest"
+       dest=$arg
+       continue
+      fi
+
+      case $arg in
+      -d) isdir=yes ;;
+      -f)
+       case " $install_prog " in
+       *[\\\ /]cp\ *) ;;
+       *) prev=$arg ;;
+       esac
        ;;
-    prog)
-       compile_deplibs=
-       finalize_deplibs=
-       alldeplibs=no
-       newdlfiles=
-       newdlprefiles=
-       passes="conv scan dlopen dlpreopen link"
+      -g | -m | -o)
+       prev=$arg
        ;;
-    *)  passes="conv"
+      -s)
+       stripme=" -s"
+       continue
        ;;
-    esac
-    for pass in $passes; do
-      if test $linkmode = prog; then
-       # Determine which files to process
-       case $pass in
-       dlopen)
-         libs="$dlfiles"
-         save_deplibs="$deplibs" # Collect dlpreopened libraries
-         deplibs=
-         ;;
-       dlpreopen) libs="$dlprefiles" ;;
-       link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
-       esac
-      fi
-      for deplib in $libs; do
-       lib=
-       found=no
-       case $deplib in
-       -l*)
-         if test $linkmode = oldlib && test $linkmode = obj; then
-           $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
-           continue
-         fi
-         if test $pass = conv; then
-           deplibs="$deplib $deplibs"
-           continue
-         fi
-         name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
-         for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
-           # Search the libtool library
-           lib="$searchdir/lib${name}.la"
-           if test -f "$lib"; then
-             found=yes
-             break
-           fi
-         done
-         if test "$found" != yes; then
-           # deplib doesn't seem to be a libtool library
-           if test "$linkmode,$pass" = "prog,link"; then
-             compile_deplibs="$deplib $compile_deplibs"
-             finalize_deplibs="$deplib $finalize_deplibs"
-           else
-             deplibs="$deplib $deplibs"
-             test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs"
-           fi
-           continue
-         fi
-         ;; # -l
-       -L*)
-         case $linkmode in
-         lib)
-           deplibs="$deplib $deplibs"
-           test $pass = conv && continue
-           newdependency_libs="$deplib $newdependency_libs"
-           newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-           ;;
-         prog)
-           if test $pass = conv; then
-             deplibs="$deplib $deplibs"
-             continue
-           fi
-           if test $pass = scan; then
-             deplibs="$deplib $deplibs"
-             newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-           else
-             compile_deplibs="$deplib $compile_deplibs"
-             finalize_deplibs="$deplib $finalize_deplibs"
-           fi
-           ;;
-         *)
-           $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2
-           ;;
-         esac # linkmode
-         continue
-         ;; # -L
-       -R*)
-         if test $pass = link; then
-           dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
-           # Make sure the xrpath contains only unique directories.
-           case "$xrpath " in
-           *" $dir "*) ;;
-           *) xrpath="$xrpath $dir" ;;
-           esac
-         fi
-         deplibs="$deplib $deplibs"
-         continue
-         ;;
-       *.la) lib="$deplib" ;;
-       *.$libext)
-         if test $pass = conv; then
-           deplibs="$deplib $deplibs"
-           continue
-         fi
-         case $linkmode in
-         lib)
-           if test "$deplibs_check_method" != pass_all; then
-             echo
-             echo "*** Warning: This library needs some functionality provided by $deplib."
-             echo "*** I have the capability to make that library automatically link in when"
-             echo "*** you link to this library.  But I can only do this if you have a"
-             echo "*** shared version of the library, which you do not appear to have."
-           else
-             echo
-             echo "*** Warning: Linking the shared library $output against the"
-             echo "*** static library $deplib is not portable!"
-             deplibs="$deplib $deplibs"
-           fi
-           continue
-           ;;
-         prog)
-           if test $pass != link; then
-             deplibs="$deplib $deplibs"
-           else
-             compile_deplibs="$deplib $compile_deplibs"
-             finalize_deplibs="$deplib $finalize_deplibs"
-           fi
-           continue
-           ;;
-         esac # linkmode
-         ;; # *.$libext
-       *.lo | *.$objext)
-         if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-           # If there is no dlopen support or we're linking statically,
-           # we need to preload.
-           newdlprefiles="$newdlprefiles $deplib"
-           compile_deplibs="$deplib $compile_deplibs"
-           finalize_deplibs="$deplib $finalize_deplibs"
-         else
-           newdlfiles="$newdlfiles $deplib"
-         fi
-         continue
-         ;;
-       %DEPLIBS%)
-         alldeplibs=yes
-         continue
-         ;;
-       esac # case $deplib
-       if test $found = yes || test -f "$lib"; then :
+      -*)
+       ;;
+      *)
+       # If the previous option needed an argument, then skip it.
+       if test -n "$prev"; then
+         prev=
        else
-         $echo "$modename: cannot find the library \`$lib'" 1>&2
-         exit 1
+         dest=$arg
+         continue
        fi
+       ;;
+      esac
+
+      # Aesthetically quote the argument.
+      func_quote_for_eval "$arg"
+      install_prog="$install_prog $func_quote_for_eval_result"
+    done
+
+    test -z "$install_prog" && \
+      func_fatal_help "you must specify an install program"
+
+    test -n "$prev" && \
+      func_fatal_help "the \`$prev' option requires an argument"
+
+    if test -z "$files"; then
+      if test -z "$dest"; then
+       func_fatal_help "no file or destination specified"
+      else
+       func_fatal_help "you must specify a destination"
+      fi
+    fi
+
+    # Strip any trailing slash from the destination.
+    func_stripname '' '/' "$dest"
+    dest=$func_stripname_result
+
+    # Check to see that the destination is a directory.
+    test -d "$dest" && isdir=yes
+    if test "$isdir" = yes; then
+      destdir="$dest"
+      destname=
+    else
+      func_dirname "$dest" "" "."
+      destdir="$func_dirname_result"
+      func_basename "$dest"
+      destname="$func_basename_result"
+
+      # Not a directory, so check to see that there is only one file specified.
+      set dummy $files; shift
+      test "$#" -gt 1 && \
+       func_fatal_help "\`$dest' is not a directory"
+    fi
+    case $destdir in
+    [\\/]* | [A-Za-z]:[\\/]*) ;;
+    *)
+      for file in $files; do
+       case $file in
+       *.lo) ;;
+       *)
+         func_fatal_help "\`$destdir' must be an absolute directory name"
+         ;;
+       esac
+      done
+      ;;
+    esac
+
+    # This variable tells wrapper scripts just to set variables rather
+    # than running their programs.
+    libtool_install_magic="$magic"
+
+    staticlibs=
+    future_libdirs=
+    current_libdirs=
+    for file in $files; do
+
+      # Do each installation.
+      case $file in
+      *.$libext)
+       # Do the static libraries later.
+       staticlibs="$staticlibs $file"
+       ;;
 
+      *.la)
        # Check to see that this really is a libtool archive.
-       if (sed -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+       func_lalib_unsafe_p "$file" \
+         || func_fatal_help "\`$file' is not a valid libtool archive"
+
+       library_names=
+       old_library=
+       relink_command=
+       func_source "$file"
+
+       # Add the libdir to current_libdirs if it is the destination.
+       if test "X$destdir" = "X$libdir"; then
+         case "$current_libdirs " in
+         *" $libdir "*) ;;
+         *) current_libdirs="$current_libdirs $libdir" ;;
+         esac
        else
-         $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-         exit 1
+         # Note the libdir as a future libdir.
+         case "$future_libdirs " in
+         *" $libdir "*) ;;
+         *) future_libdirs="$future_libdirs $libdir" ;;
+         esac
        fi
 
-       ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
-       test "X$ladir" = "X$lib" && ladir="."
+       func_dirname "$file" "/" ""
+       dir="$func_dirname_result"
+       dir="$dir$objdir"
 
-       dlname=
-       dlopen=
-       dlpreopen=
-       libdir=
-       library_names=
-       old_library=
-       # If the library was installed with an old release of libtool,
-       # it will not redefine variable installed.
-       installed=yes
+       if test -n "$relink_command"; then
+         # Determine the prefix the user has applied to our future dir.
+         inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
 
-       # Read the .la file
-       case $lib in
-       */* | *\\*) . $lib ;;
-       *) . ./$lib ;;
-       esac
+         # Don't allow the user to place us outside of our expected
+         # location b/c this prevents finding dependent libraries that
+         # are installed to the same prefix.
+         # At present, this check doesn't affect windows .dll's that
+         # are installed into $libdir/../bin (currently, that works fine)
+         # but it's something to keep an eye on.
+         test "$inst_prefix_dir" = "$destdir" && \
+           func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
 
-       case $host in
-           *-*-darwin*)
-         # Convert "-framework foo" to "foo.framework" in dependency_libs
-               test -n "$dependency_libs" && dependency_libs=`$echo "X$dependency_libs" | $Xsed -e 's/-framework \([^ $]*\)/\1.framework/g'`
-               ;;
-       esac
+         if test -n "$inst_prefix_dir"; then
+           # Stick the inst_prefix_dir data into the link command.
+           relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+         else
+           relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
+         fi
 
-       if test "$linkmode,$pass" = "lib,link" ||
-          test "$linkmode,$pass" = "prog,scan" ||
-          { test $linkmode = oldlib && test $linkmode = obj; }; then
-          # Add dl[pre]opened files of deplib
-         test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
-         test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+         func_warning "relinking \`$file'"
+         func_show_eval "$relink_command" \
+           'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
        fi
 
-       if test $pass = conv; then
-         # Only check for convenience libraries
-         deplibs="$lib $deplibs"
-         if test -z "$libdir"; then
-           if test -z "$old_library"; then
-             $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-             exit 1
-           fi
-           # It is a libtool convenience library, so add in its objects.
-           convenience="$convenience $ladir/$objdir/$old_library"
-           old_convenience="$old_convenience $ladir/$objdir/$old_library"
-           tmp_libs=
-           for deplib in $dependency_libs; do
-             deplibs="$deplib $deplibs"
-             case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-             esac
-             tmp_libs="$tmp_libs $deplib"
+       # See the names of the shared library.
+       set dummy $library_names; shift
+       if test -n "$1"; then
+         realname="$1"
+         shift
+
+         srcname="$realname"
+         test -n "$relink_command" && srcname="$realname"T
+
+         # Install the shared library and build the symlinks.
+         func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
+             'exit $?'
+         tstripme="$stripme"
+         case $host_os in
+         cygwin* | mingw* | pw32*)
+           case $realname in
+           *.dll.a)
+             tstripme=""
+             ;;
+           esac
+           ;;
+         esac
+         if test -n "$tstripme" && test -n "$striplib"; then
+           func_show_eval "$striplib $destdir/$realname" 'exit $?'
+         fi
+
+         if test "$#" -gt 0; then
+           # Delete the old symlinks, and create new ones.
+           # Try `ln -sf' first, because the `ln' binary might depend on
+           # the symlink we replace!  Solaris /bin/ln does not understand -f,
+           # so we also need to try rm && ln -s.
+           for linkname
+           do
+             test "$linkname" != "$realname" \
+               && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
            done
-         elif test $linkmode != prog && test $linkmode != lib; then
-           $echo "$modename: \`$lib' is not a convenience library" 1>&2
-           exit 1
          fi
-         continue
-       fi # $pass = conv
 
-       # Get the name of the library we link against.
-       linklib=
-       for l in $old_library $library_names; do
-         linklib="$l"
-       done
-       if test -z "$linklib"; then
-         $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-         exit 1
+         # Do each command in the postinstall commands.
+         lib="$destdir/$realname"
+         func_execute_cmds "$postinstall_cmds" 'exit $?'
        fi
 
-       # This library was specified with -dlopen.
-       if test $pass = dlopen; then
-         if test -z "$libdir"; then
-           $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
-           exit 1
-         fi
-         if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-           # If there is no dlname, no dlopen support or we're linking
-           # statically, we need to preload.
-           dlprefiles="$dlprefiles $lib"
-         else
-           newdlfiles="$newdlfiles $lib"
-         fi
-         continue
-       fi # $pass = dlopen
+       # Install the pseudo-library for information purposes.
+       func_basename "$file"
+       name="$func_basename_result"
+       instname="$dir/$name"i
+       func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
 
-       # We need an absolute path.
-       case $ladir in
-       [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+       # Maybe install the static library, too.
+       test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+       ;;
+
+      *.lo)
+       # Install (i.e. copy) a libtool object.
+
+       # Figure out destination file name, if it wasn't already specified.
+       if test -n "$destname"; then
+         destfile="$destdir/$destname"
+       else
+         func_basename "$file"
+         destfile="$func_basename_result"
+         destfile="$destdir/$destfile"
+       fi
+
+       # Deduce the name of the destination old-style object file.
+       case $destfile in
+       *.lo)
+         func_lo2o "$destfile"
+         staticdest=$func_lo2o_result
+         ;;
+       *.$objext)
+         staticdest="$destfile"
+         destfile=
+         ;;
        *)
-         abs_ladir=`cd "$ladir" && pwd`
-         if test -z "$abs_ladir"; then
-           $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
-           $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
-           abs_ladir="$ladir"
-         fi
+         func_fatal_help "cannot copy a libtool object to \`$destfile'"
          ;;
        esac
-       laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
 
-       # Find the relevant object directory and library name.
-       if test "X$installed" = Xyes; then
-         if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-           $echo "$modename: warning: library \`$lib' was moved." 1>&2
-           dir="$ladir"
-           absdir="$abs_ladir"
-           libdir="$abs_ladir"
-         else
-           dir="$libdir"
-           absdir="$libdir"
-         fi
+       # Install the libtool object if requested.
+       test -n "$destfile" && \
+         func_show_eval "$install_prog $file $destfile" 'exit $?'
+
+       # Install the old object if enabled.
+       if test "$build_old_libs" = yes; then
+         # Deduce the name of the old-style object file.
+         func_lo2o "$file"
+         staticobj=$func_lo2o_result
+         func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
+       fi
+       exit $EXIT_SUCCESS
+       ;;
+
+      *)
+       # Figure out destination file name, if it wasn't already specified.
+       if test -n "$destname"; then
+         destfile="$destdir/$destname"
        else
-         dir="$ladir/$objdir"
-         absdir="$abs_ladir/$objdir"
-         # Remove this search path later
-         notinst_path="$notinst_path $abs_ladir"
-       fi # $installed = yes
-       name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+         func_basename "$file"
+         destfile="$func_basename_result"
+         destfile="$destdir/$destfile"
+       fi
 
-       # This library was specified with -dlpreopen.
-       if test $pass = dlpreopen; then
-         if test -z "$libdir"; then
-           $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
-           exit 1
-         fi
-         # Prefer using a static library (so that no silly _DYNAMIC symbols
-         # are required to link).
-         if test -n "$old_library"; then
-           newdlprefiles="$newdlprefiles $dir/$old_library"
-         # Otherwise, use the dlname, so that lt_dlopen finds it.
-         elif test -n "$dlname"; then
-           newdlprefiles="$newdlprefiles $dir/$dlname"
-         else
-           newdlprefiles="$newdlprefiles $dir/$linklib"
-         fi
-       fi # $pass = dlpreopen
+       # If the file is missing, and there is a .exe on the end, strip it
+       # because it is most likely a libtool script we actually want to
+       # install
+       stripped_ext=""
+       case $file in
+         *.exe)
+           if test ! -f "$file"; then
+             func_stripname '' '.exe' "$file"
+             file=$func_stripname_result
+             stripped_ext=".exe"
+           fi
+           ;;
+       esac
 
-       if test -z "$libdir"; then
-         # Link the convenience library
-         if test $linkmode = lib; then
-           deplibs="$dir/$old_library $deplibs"
-         elif test "$linkmode,$pass" = "prog,link"; then
-           compile_deplibs="$dir/$old_library $compile_deplibs"
-           finalize_deplibs="$dir/$old_library $finalize_deplibs"
+       # Do a test to see if this is really a libtool program.
+       case $host in
+       *cygwin*|*mingw*)
+           func_stripname '' '.exe' "$file"
+           wrapper=$func_stripname_result
+           ;;
+       *)
+           wrapper=$file
+           ;;
+       esac
+       if func_ltwrapper_p "$wrapper"; then
+         notinst_deplibs=
+         relink_command=
+
+         func_source "$wrapper"
+
+         # Check the variables that should have been set.
+         test -z "$generated_by_libtool_version" && \
+           func_fatal_error "invalid libtool wrapper script \`$wrapper'"
+
+         finalize=yes
+         for lib in $notinst_deplibs; do
+           # Check to see that each library is installed.
+           libdir=
+           if test -f "$lib"; then
+             func_source "$lib"
+           fi
+           libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+           if test -n "$libdir" && test ! -f "$libfile"; then
+             func_warning "\`$lib' has not been installed in \`$libdir'"
+             finalize=no
+           fi
+         done
+
+         relink_command=
+         func_source "$wrapper"
+
+         outputname=
+         if test "$fast_install" = no && test -n "$relink_command"; then
+           $opt_dry_run || {
+             if test "$finalize" = yes; then
+               tmpdir=`func_mktempdir`
+               func_basename "$file$stripped_ext"
+               file="$func_basename_result"
+               outputname="$tmpdir/$file"
+               # Replace the output file specification.
+               relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+
+               $opt_silent || {
+                 func_quote_for_expand "$relink_command"
+                 eval "func_echo $func_quote_for_expand_result"
+               }
+               if eval "$relink_command"; then :
+                 else
+                 func_error "error: relink \`$file' with the above command before installing it"
+                 $opt_dry_run || ${RM}r "$tmpdir"
+                 continue
+               fi
+               file="$outputname"
+             else
+               func_warning "cannot relink \`$file'"
+             fi
+           }
          else
-           deplibs="$lib $deplibs"
+           # Install the binary that we compiled earlier.
+           file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
          fi
-         continue
        fi
 
-       if test $linkmode = prog && test $pass != link; then
-         newlib_search_path="$newlib_search_path $ladir"
-         deplibs="$lib $deplibs"
+       # remove .exe since cygwin /usr/bin/install will append another
+       # one anyway
+       case $install_prog,$host in
+       */usr/bin/install*,*cygwin*)
+         case $file:$destfile in
+         *.exe:*.exe)
+           # this is ok
+           ;;
+         *.exe:*)
+           destfile=$destfile.exe
+           ;;
+         *:*.exe)
+           func_stripname '' '.exe' "$destfile"
+           destfile=$func_stripname_result
+           ;;
+         esac
+         ;;
+       esac
+       func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
+       $opt_dry_run || if test -n "$outputname"; then
+         ${RM}r "$tmpdir"
+       fi
+       ;;
+      esac
+    done
 
-         linkalldeplibs=no
-         if test "$link_all_deplibs" != no || test -z "$library_names" ||
-            test "$build_libtool_libs" = no; then
-           linkalldeplibs=yes
-         fi
+    for file in $staticlibs; do
+      func_basename "$file"
+      name="$func_basename_result"
 
-         tmp_libs=
-         for deplib in $dependency_libs; do
-           case $deplib in
-           -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
-           esac
-           # Need to link against all dependency_libs?
-           if test $linkalldeplibs = yes; then
-             deplibs="$deplib $deplibs"
-           else
-             # Need to hardcode shared library paths
-             # or/and link against static libraries
-             newdependency_libs="$deplib $newdependency_libs"
-           fi
-           case "$tmp_libs " in
-           *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-           esac
-           tmp_libs="$tmp_libs $deplib"
-         done # for deplib
-         continue
-       fi # $linkmode = prog...
+      # Set up the ranlib parameters.
+      oldlib="$destdir/$name"
 
-       link_static=no # Whether the deplib will be linked statically
-       if test -n "$library_names" &&
-          { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
-         # Link against this shared library
+      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
 
-         if test "$linkmode,$pass" = "prog,link" ||
-          { test $linkmode = lib && test $hardcode_into_libs = yes; }; then
-           # Hardcode the library path.
-           # Skip directories that are in the system default run-time
-           # search path.
-           case " $sys_lib_dlsearch_path " in
-           *" $absdir "*) ;;
-           *)
-             case "$compile_rpath " in
-             *" $absdir "*) ;;
-             *) compile_rpath="$compile_rpath $absdir"
-             esac
-             ;;
-           esac
-           case " $sys_lib_dlsearch_path " in
-           *" $libdir "*) ;;
-           *)
-             case "$finalize_rpath " in
-             *" $libdir "*) ;;
-             *) finalize_rpath="$finalize_rpath $libdir"
-             esac
-             ;;
-           esac
-           if test $linkmode = prog; then
-             # We need to hardcode the library path
-             if test -n "$shlibpath_var"; then
-               # Make sure the rpath contains only unique directories.
-               case "$temp_rpath " in
-               *" $dir "*) ;;
-               *" $absdir "*) ;;
-               *) temp_rpath="$temp_rpath $dir" ;;
-               esac
-             fi
-           fi
-         fi # $linkmode,$pass = prog,link...
+      if test -n "$stripme" && test -n "$old_striplib"; then
+       func_show_eval "$old_striplib $oldlib" 'exit $?'
+      fi
 
-         if test "$alldeplibs" = yes &&
-            { test "$deplibs_check_method" = pass_all ||
-              { test "$build_libtool_libs" = yes &&
-                test -n "$library_names"; }; }; then
-           # We only need to search for static libraries
-           continue
-         fi
+      # Do each command in the postinstall commands.
+      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
+    done
 
-         if test "$installed" = no; then
-           notinst_deplibs="$notinst_deplibs $lib"
-           need_relink=yes
-         fi
+    test -n "$future_libdirs" && \
+      func_warning "remember to run \`$progname --finish$future_libdirs'"
 
-         if test -n "$old_archive_from_expsyms_cmds"; then
-           # figure out the soname
-           set dummy $library_names
-           realname="$2"
-           shift; shift
-           libname=`eval \\$echo \"$libname_spec\"`
-           # use dlname if we got it. it's perfectly good, no?
-           if test -n "$dlname"; then
-             soname="$dlname"
-           elif test -n "$soname_spec"; then
-             # bleh windows
-             case $host in
-             *cygwin*)
-               major=`expr $current - $age`
-               versuffix="-$major"
-               ;;
-             esac
-             eval soname=\"$soname_spec\"
-           else
-             soname="$realname"
-           fi
+    if test -n "$current_libdirs"; then
+      # Maybe just do a dry run.
+      $opt_dry_run && current_libdirs=" -n$current_libdirs"
+      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+    else
+      exit $EXIT_SUCCESS
+    fi
+}
 
-           # Make a new name for the extract_expsyms_cmds to use
-           soroot="$soname"
-           soname=`echo $soroot | sed -e 's/^.*\///'`
-           newlib="libimp-`echo $soname | sed 's/^lib//;s/\.dll$//'`.a"
+test "$mode" = install && func_mode_install ${1+"$@"}
 
-           # If the library has no export list, then create one now
-           if test -f "$output_objdir/$soname-def"; then :
-           else
-             $show "extracting exported symbol list from \`$soname'"
-             IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
-             cmds=$extract_expsyms_cmds
-             for cmd in $cmds; do
-               IFS="$save_ifs"
-               eval cmd=\"$cmd\"
-               $show "$cmd"
-               $run eval "$cmd" || exit $?
-             done
-             IFS="$save_ifs"
-           fi
 
-           # Create $newlib
-           if test -f "$output_objdir/$newlib"; then :; else
-             $show "generating import library for \`$soname'"
-             IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
-             cmds=$old_archive_from_expsyms_cmds
-             for cmd in $cmds; do
-               IFS="$save_ifs"
-               eval cmd=\"$cmd\"
-               $show "$cmd"
-               $run eval "$cmd" || exit $?
-             done
-             IFS="$save_ifs"
-           fi
-           # make sure the library variables are pointing to the new library
-           dir=$output_objdir
-           linklib=$newlib
-         fi # test -n $old_archive_from_expsyms_cmds
+# func_mode_link arg...
+func_mode_link ()
+{
+    $opt_debug
+    case $host in
+    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+      # It is impossible to link a dll without this setting, and
+      # we shouldn't force the makefile maintainer to figure out
+      # which system we are compiling for in order to pass an extra
+      # flag for every libtool invocation.
+      # allow_undefined=no
 
-         if test $linkmode = prog || test "$mode" != relink; then
-           add_shlibpath=
-           add_dir=
-           add=
-           lib_linked=yes
-           case $hardcode_action in
-           immediate | unsupported)
-             if test "$hardcode_direct" = no; then
-               add="$dir/$linklib"
-             elif test "$hardcode_minus_L" = no; then
-               case $host in
-               *-*-sunos*) add_shlibpath="$dir" ;;
-               esac
-               add_dir="-L$dir"
-               add="-l$name"
-             elif test "$hardcode_shlibpath_var" = no; then
-               add_shlibpath="$dir"
-               add="-l$name"
-             else
-               lib_linked=no
-             fi
-             ;;
-           relink)
-             if test "$hardcode_direct" = yes; then
-               add="$dir/$linklib"
-             elif test "$hardcode_minus_L" = yes; then
-               add_dir="-L$dir"
-               # Try looking first in the location we're being installed to.
-               if test -n "$inst_prefix_dir"; then
-                 case "$libdir" in
-                   [\\/]*)
-                     add_dir="$add_dir -L$inst_prefix_dir$libdir"
-                     ;;
-                 esac
-               fi
-               add="-l$name"
-             elif test "$hardcode_shlibpath_var" = yes; then
-               add_shlibpath="$dir"
-               add="-l$name"
-             else
-               lib_linked=no
-             fi
-             ;;
-           *) lib_linked=no ;;
-           esac
+      # FIXME: Unfortunately, there are problems with the above when trying
+      # to make a dll which has undefined symbols, in which case not
+      # even a static library is built.  For now, we need to specify
+      # -no-undefined on the libtool link line when we can be certain
+      # that all symbols are satisfied, otherwise we get a static library.
+      allow_undefined=yes
+      ;;
+    *)
+      allow_undefined=yes
+      ;;
+    esac
+    libtool_args=$nonopt
+    base_compile="$nonopt $@"
+    compile_command=$nonopt
+    finalize_command=$nonopt
 
-           if test "$lib_linked" != yes; then
-             $echo "$modename: configuration error: unsupported hardcode properties"
-             exit 1
-           fi
+    compile_rpath=
+    finalize_rpath=
+    compile_shlibpath=
+    finalize_shlibpath=
+    convenience=
+    old_convenience=
+    deplibs=
+    old_deplibs=
+    compiler_flags=
+    linker_flags=
+    dllsearchpath=
+    lib_search_path=`pwd`
+    inst_prefix_dir=
+    new_inherited_linker_flags=
 
-           if test -n "$add_shlibpath"; then
-             case :$compile_shlibpath: in
-             *":$add_shlibpath:"*) ;;
-             *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
-             esac
-           fi
-           if test $linkmode = prog; then
-             test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
-             test -n "$add" && compile_deplibs="$add $compile_deplibs"
-           else
-             test -n "$add_dir" && deplibs="$add_dir $deplibs"
-             test -n "$add" && deplibs="$add $deplibs"
-             if test "$hardcode_direct" != yes && \
-                test "$hardcode_minus_L" != yes && \
-                test "$hardcode_shlibpath_var" = yes; then
-               case :$finalize_shlibpath: in
-               *":$libdir:"*) ;;
-               *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-               esac
-             fi
-           fi
+    avoid_version=no
+    dlfiles=
+    dlprefiles=
+    dlself=no
+    export_dynamic=no
+    export_symbols=
+    export_symbols_regex=
+    generated=
+    libobjs=
+    ltlibs=
+    module=no
+    no_install=no
+    objs=
+    non_pic_objects=
+    precious_files_regex=
+    prefer_static_libs=no
+    preload=no
+    prev=
+    prevarg=
+    release=
+    rpath=
+    xrpath=
+    perm_rpath=
+    temp_rpath=
+    thread_safe=no
+    vinfo=
+    vinfo_number=no
+    weak_libs=
+    single_module="${wl}-single_module"
+    func_infer_tag $base_compile
+
+    # We need to know -static, to get the right output filenames.
+    for arg
+    do
+      case $arg in
+      -shared)
+       test "$build_libtool_libs" != yes && \
+         func_fatal_configuration "can not build a shared library"
+       build_old_libs=no
+       break
+       ;;
+      -all-static | -static | -static-libtool-libs)
+       case $arg in
+       -all-static)
+         if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+           func_warning "complete static linking is impossible in this configuration"
+         fi
+         if test -n "$link_static_flag"; then
+           dlopen_self=$dlopen_self_static
+           # See comment for -static flag below, for more details.
+           func_append compile_command " $link_static_flag"
+           func_append finalize_command " $link_static_flag"
+         fi
+         prefer_static_libs=yes
+         ;;
+       -static)
+         if test -z "$pic_flag" && test -n "$link_static_flag"; then
+           dlopen_self=$dlopen_self_static
+         fi
+         prefer_static_libs=built
+         ;;
+       -static-libtool-libs)
+         if test -z "$pic_flag" && test -n "$link_static_flag"; then
+           dlopen_self=$dlopen_self_static
          fi
+         prefer_static_libs=yes
+         ;;
+       esac
+       build_libtool_libs=no
+       build_old_libs=yes
+       break
+       ;;
+      esac
+    done
 
-         if test $linkmode = prog || test "$mode" = relink; then
-           add_shlibpath=
-           add_dir=
-           add=
-           # Finalize command for both is simple: just hardcode it.
-           if test "$hardcode_direct" = yes; then
-             add="$libdir/$linklib"
-           elif test "$hardcode_minus_L" = yes; then
-             add_dir="-L$libdir"
-             add="-l$name"
-           elif test "$hardcode_shlibpath_var" = yes; then
-             case :$finalize_shlibpath: in
-             *":$libdir:"*) ;;
-             *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-             esac
-             add="-l$name"
+    # See if our shared archives depend on static archives.
+    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+    # Go through the arguments, transforming them on the way.
+    while test "$#" -gt 0; do
+      arg="$1"
+      shift
+      func_quote_for_eval "$arg"
+      qarg=$func_quote_for_eval_unquoted_result
+      func_append libtool_args " $func_quote_for_eval_result"
+
+      # If the previous option needs an argument, assign it.
+      if test -n "$prev"; then
+       case $prev in
+       output)
+         func_append compile_command " @OUTPUT@"
+         func_append finalize_command " @OUTPUT@"
+         ;;
+       esac
+
+       case $prev in
+       dlfiles|dlprefiles)
+         if test "$preload" = no; then
+           # Add the symbol object into the linking commands.
+           func_append compile_command " @SYMFILE@"
+           func_append finalize_command " @SYMFILE@"
+           preload=yes
+         fi
+         case $arg in
+         *.la | *.lo) ;;  # We handle these cases below.
+         force)
+           if test "$dlself" = no; then
+             dlself=needless
+             export_dynamic=yes
+           fi
+           prev=
+           continue
+           ;;
+         self)
+           if test "$prev" = dlprefiles; then
+             dlself=yes
+           elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+             dlself=yes
            else
-             # We cannot seem to hardcode it, guess we'll fake it.
-             add_dir="-L$libdir"
-             # Try looking first in the location we're being installed to.
-             if test -n "$inst_prefix_dir"; then
-               case "$libdir" in
-                 [\\/]*)
-                   add_dir="$add_dir -L$inst_prefix_dir$libdir"
-                   ;;
-               esac
-             fi
-             add="-l$name"
+             dlself=needless
+             export_dynamic=yes
            fi
-
-           if test $linkmode = prog; then
-             test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
-             test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+           prev=
+           continue
+           ;;
+         *)
+           if test "$prev" = dlfiles; then
+             dlfiles="$dlfiles $arg"
            else
-             test -n "$add_dir" && deplibs="$add_dir $deplibs"
-             test -n "$add" && deplibs="$add $deplibs"
+             dlprefiles="$dlprefiles $arg"
            fi
-         fi
-       elif test $linkmode = prog; then
-         if test "$alldeplibs" = yes &&
-            { test "$deplibs_check_method" = pass_all ||
-              { test "$build_libtool_libs" = yes &&
-                test -n "$library_names"; }; }; then
-           # We only need to search for static libraries
+           prev=
            continue
-         fi
-
-         # Try to link the static library
-         # Here we assume that one of hardcode_direct or hardcode_minus_L
-         # is not unsupported.  This is valid on all known static and
-         # shared platforms.
-         if test "$hardcode_direct" != unsupported; then
-           test -n "$old_library" && linklib="$old_library"
-           compile_deplibs="$dir/$linklib $compile_deplibs"
-           finalize_deplibs="$dir/$linklib $finalize_deplibs"
-         else
-           compile_deplibs="-l$name -L$dir $compile_deplibs"
-           finalize_deplibs="-l$name -L$dir $finalize_deplibs"
-         fi
-       elif test "$build_libtool_libs" = yes; then
-         # Not a shared library
-         if test "$deplibs_check_method" != pass_all; then
-           # We're trying link a shared library against a static one
-           # but the system doesn't support it.
+           ;;
+         esac
+         ;;
+       expsyms)
+         export_symbols="$arg"
+         test -f "$arg" \
+           || func_fatal_error "symbol file \`$arg' does not exist"
+         prev=
+         continue
+         ;;
+       expsyms_regex)
+         export_symbols_regex="$arg"
+         prev=
+         continue
+         ;;
+       framework)
+         case $host in
+           *-*-darwin*)
+             case "$deplibs " in
+               *" $qarg.ltframework "*) ;;
+               *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
+                  ;;
+             esac
+             ;;
+         esac
+         prev=
+         continue
+         ;;
+       inst_prefix)
+         inst_prefix_dir="$arg"
+         prev=
+         continue
+         ;;
+       objectlist)
+         if test -f "$arg"; then
+           save_arg=$arg
+           moreargs=
+           for fil in `cat "$save_arg"`
+           do
+#            moreargs="$moreargs $fil"
+             arg=$fil
+             # A libtool-controlled object.
 
-           # Just print a warning and add the library to dependency_libs so
-           # that the program can be linked against the static library.
-           echo
-           echo "*** Warning: This library needs some functionality provided by $lib."
-           echo "*** I have the capability to make that library automatically link in when"
-           echo "*** you link to this library.  But I can only do this if you have a"
-           echo "*** shared version of the library, which you do not appear to have."
-           if test "$module" = yes; then
-             echo "*** Therefore, libtool will create a static module, that should work "
-             echo "*** as long as the dlopening application is linked with the -dlopen flag."
-             if test -z "$global_symbol_pipe"; then
-               echo
-               echo "*** However, this would only work if libtool was able to extract symbol"
-               echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-               echo "*** not find such a program.  So, this module is probably useless."
-               echo "*** \`nm' from GNU binutils and a full rebuild may help."
-             fi
-             if test "$build_old_libs" = no; then
-               build_libtool_libs=module
-               build_old_libs=yes
+             # Check to see that this really is a libtool object.
+             if func_lalib_unsafe_p "$arg"; then
+               pic_object=
+               non_pic_object=
+
+               # Read the .lo file
+               func_source "$arg"
+
+               if test -z "$pic_object" ||
+                  test -z "$non_pic_object" ||
+                  test "$pic_object" = none &&
+                  test "$non_pic_object" = none; then
+                 func_fatal_error "cannot find name of object for \`$arg'"
+               fi
+
+               # Extract subdirectory from the argument.
+               func_dirname "$arg" "/" ""
+               xdir="$func_dirname_result"
+
+               if test "$pic_object" != none; then
+                 # Prepend the subdirectory the object is found in.
+                 pic_object="$xdir$pic_object"
+
+                 if test "$prev" = dlfiles; then
+                   if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+                     dlfiles="$dlfiles $pic_object"
+                     prev=
+                     continue
+                   else
+                     # If libtool objects are unsupported, then we need to preload.
+                     prev=dlprefiles
+                   fi
+                 fi
+
+                 # CHECK ME:  I think I busted this.  -Ossama
+                 if test "$prev" = dlprefiles; then
+                   # Preload the old-style object.
+                   dlprefiles="$dlprefiles $pic_object"
+                   prev=
+                 fi
+
+                 # A PIC object.
+                 func_append libobjs " $pic_object"
+                 arg="$pic_object"
+               fi
+
+               # Non-PIC object.
+               if test "$non_pic_object" != none; then
+                 # Prepend the subdirectory the object is found in.
+                 non_pic_object="$xdir$non_pic_object"
+
+                 # A standard non-PIC object
+                 func_append non_pic_objects " $non_pic_object"
+                 if test -z "$pic_object" || test "$pic_object" = none ; then
+                   arg="$non_pic_object"
+                 fi
+               else
+                 # If the PIC object exists, use it instead.
+                 # $xdir was prepended to $pic_object above.
+                 non_pic_object="$pic_object"
+                 func_append non_pic_objects " $non_pic_object"
+               fi
              else
-               build_libtool_libs=no
+               # Only an error if not doing a dry-run.
+               if $opt_dry_run; then
+                 # Extract subdirectory from the argument.
+                 func_dirname "$arg" "/" ""
+                 xdir="$func_dirname_result"
+
+                 func_lo2o "$arg"
+                 pic_object=$xdir$objdir/$func_lo2o_result
+                 non_pic_object=$xdir$func_lo2o_result
+                 func_append libobjs " $pic_object"
+                 func_append non_pic_objects " $non_pic_object"
+               else
+                 func_fatal_error "\`$arg' is not a valid libtool object"
+               fi
              fi
-           fi
+           done
          else
-           convenience="$convenience $dir/$old_library"
-           old_convenience="$old_convenience $dir/$old_library"
-           deplibs="$dir/$old_library $deplibs"
-           link_static=yes
+           func_fatal_error "link input file \`$arg' does not exist"
          fi
-       fi # link shared/static library?
+         arg=$save_arg
+         prev=
+         continue
+         ;;
+       precious_regex)
+         precious_files_regex="$arg"
+         prev=
+         continue
+         ;;
+       release)
+         release="-$arg"
+         prev=
+         continue
+         ;;
+       rpath | xrpath)
+         # We need an absolute path.
+         case $arg in
+         [\\/]* | [A-Za-z]:[\\/]*) ;;
+         *)
+           func_fatal_error "only absolute run-paths are allowed"
+           ;;
+         esac
+         if test "$prev" = rpath; then
+           case "$rpath " in
+           *" $arg "*) ;;
+           *) rpath="$rpath $arg" ;;
+           esac
+         else
+           case "$xrpath " in
+           *" $arg "*) ;;
+           *) xrpath="$xrpath $arg" ;;
+           esac
+         fi
+         prev=
+         continue
+         ;;
+       shrext)
+         shrext_cmds="$arg"
+         prev=
+         continue
+         ;;
+       weak)
+         weak_libs="$weak_libs $arg"
+         prev=
+         continue
+         ;;
+       xcclinker)
+         linker_flags="$linker_flags $qarg"
+         compiler_flags="$compiler_flags $qarg"
+         prev=
+         func_append compile_command " $qarg"
+         func_append finalize_command " $qarg"
+         continue
+         ;;
+       xcompiler)
+         compiler_flags="$compiler_flags $qarg"
+         prev=
+         func_append compile_command " $qarg"
+         func_append finalize_command " $qarg"
+         continue
+         ;;
+       xlinker)
+         linker_flags="$linker_flags $qarg"
+         compiler_flags="$compiler_flags $wl$qarg"
+         prev=
+         func_append compile_command " $wl$qarg"
+         func_append finalize_command " $wl$qarg"
+         continue
+         ;;
+       *)
+         eval "$prev=\"\$arg\""
+         prev=
+         continue
+         ;;
+       esac
+      fi # test -n "$prev"
 
-       if test $linkmode = lib; then
-         if test -n "$dependency_libs" &&
-            { test $hardcode_into_libs != yes || test $build_old_libs = yes ||
-              test $link_static = yes; }; then
-           # Extract -R from dependency_libs
-           temp_deplibs=
-           for libdir in $dependency_libs; do
-             case $libdir in
-             -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
-                  case " $xrpath " in
-                  *" $temp_xrpath "*) ;;
-                  *) xrpath="$xrpath $temp_xrpath";;
-                  esac;;
-             *) temp_deplibs="$temp_deplibs $libdir";;
-             esac
-           done
-           dependency_libs="$temp_deplibs"
+      prevarg="$arg"
+
+      case $arg in
+      -all-static)
+       # The effects of -all-static are defined in a previous loop.
+       continue
+       ;;
+
+      -allow-undefined)
+       # FIXME: remove this flag sometime in the future.
+       func_fatal_error "\`-allow-undefined' must not be used because it is the default"
+       ;;
+
+      -avoid-version)
+       avoid_version=yes
+       continue
+       ;;
+
+      -dlopen)
+       prev=dlfiles
+       continue
+       ;;
+
+      -dlpreopen)
+       prev=dlprefiles
+       continue
+       ;;
+
+      -export-dynamic)
+       export_dynamic=yes
+       continue
+       ;;
+
+      -export-symbols | -export-symbols-regex)
+       if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+         func_fatal_error "more than one -exported-symbols argument is not allowed"
+       fi
+       if test "X$arg" = "X-export-symbols"; then
+         prev=expsyms
+       else
+         prev=expsyms_regex
+       fi
+       continue
+       ;;
+
+      -framework)
+       prev=framework
+       continue
+       ;;
+
+      -inst-prefix-dir)
+       prev=inst_prefix
+       continue
+       ;;
+
+      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+      # so, if we see these flags be careful not to treat them like -L
+      -L[A-Z][A-Z]*:*)
+       case $with_gcc/$host in
+       no/*-*-irix* | /*-*-irix*)
+         func_append compile_command " $arg"
+         func_append finalize_command " $arg"
+         ;;
+       esac
+       continue
+       ;;
+
+      -L*)
+       func_stripname '-L' '' "$arg"
+       dir=$func_stripname_result
+       # We need an absolute path.
+       case $dir in
+       [\\/]* | [A-Za-z]:[\\/]*) ;;
+       *)
+         absdir=`cd "$dir" && pwd`
+         test -z "$absdir" && \
+           func_fatal_error "cannot determine absolute directory name of \`$dir'"
+         dir="$absdir"
+         ;;
+       esac
+       case "$deplibs " in
+       *" -L$dir "*) ;;
+       *)
+         deplibs="$deplibs -L$dir"
+         lib_search_path="$lib_search_path $dir"
+         ;;
+       esac
+       case $host in
+       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+         testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
+         case :$dllsearchpath: in
+         *":$dir:"*) ;;
+         *) dllsearchpath="$dllsearchpath:$dir";;
+         esac
+         case :$dllsearchpath: in
+         *":$testbindir:"*) ;;
+         *) dllsearchpath="$dllsearchpath:$testbindir";;
+         esac
+         ;;
+       esac
+       continue
+       ;;
+
+      -l*)
+       if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+         case $host in
+         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
+           # These systems don't actually have a C or math library (as such)
+           continue
+           ;;
+         *-*-os2*)
+           # These systems don't actually have a C library (as such)
+           test "X$arg" = "X-lc" && continue
+           ;;
+         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+           # Do not include libc due to us having libc/libc_r.
+           test "X$arg" = "X-lc" && continue
+           ;;
+         *-*-rhapsody* | *-*-darwin1.[012])
+           # Rhapsody C and math libraries are in the System framework
+           deplibs="$deplibs System.ltframework"
+           continue
+           ;;
+         *-*-sco3.2v5* | *-*-sco5v6*)
+           # Causes problems with __ctype
+           test "X$arg" = "X-lc" && continue
+           ;;
+         *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+           # Compiler inserts libc in the correct place for threads to work
+           test "X$arg" = "X-lc" && continue
+           ;;
+         esac
+       elif test "X$arg" = "X-lc_r"; then
+        case $host in
+        *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+          # Do not include libc_r directly, use -pthread flag.
+          continue
+          ;;
+        esac
+       fi
+       deplibs="$deplibs $arg"
+       continue
+       ;;
+
+      -module)
+       module=yes
+       continue
+       ;;
+
+      # Tru64 UNIX uses -model [arg] to determine the layout of C++
+      # classes, name mangling, and exception handling.
+      # Darwin uses the -arch flag to determine output architecture.
+      -model|-arch|-isysroot)
+       compiler_flags="$compiler_flags $arg"
+       func_append compile_command " $arg"
+       func_append finalize_command " $arg"
+       prev=xcompiler
+       continue
+       ;;
+
+      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+       compiler_flags="$compiler_flags $arg"
+       func_append compile_command " $arg"
+       func_append finalize_command " $arg"
+       case "$new_inherited_linker_flags " in
+           *" $arg "*) ;;
+           * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
+       esac
+       continue
+       ;;
+
+      -multi_module)
+       single_module="${wl}-multi_module"
+       continue
+       ;;
+
+      -no-fast-install)
+       fast_install=no
+       continue
+       ;;
+
+      -no-install)
+       case $host in
+       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+         # The PATH hackery in wrapper scripts is required on Windows
+         # in order for the loader to find any dlls it needs.
+         func_warning "\`-no-install' is ignored for $host"
+         func_warning "assuming \`-no-fast-install' instead"
+         fast_install=no
+         ;;
+       *) no_install=yes ;;
+       esac
+       continue
+       ;;
+
+      -no-undefined)
+       allow_undefined=no
+       continue
+       ;;
+
+      -objectlist)
+       prev=objectlist
+       continue
+       ;;
+
+      -o) prev=output ;;
+
+      -precious-files-regex)
+       prev=precious_regex
+       continue
+       ;;
+
+      -release)
+       prev=release
+       continue
+       ;;
+
+      -rpath)
+       prev=rpath
+       continue
+       ;;
+
+      -R)
+       prev=xrpath
+       continue
+       ;;
+
+      -R*)
+       func_stripname '-R' '' "$arg"
+       dir=$func_stripname_result
+       # We need an absolute path.
+       case $dir in
+       [\\/]* | [A-Za-z]:[\\/]*) ;;
+       *)
+         func_fatal_error "only absolute run-paths are allowed"
+         ;;
+       esac
+       case "$xrpath " in
+       *" $dir "*) ;;
+       *) xrpath="$xrpath $dir" ;;
+       esac
+       continue
+       ;;
+
+      -shared)
+       # The effects of -shared are defined in a previous loop.
+       continue
+       ;;
+
+      -shrext)
+       prev=shrext
+       continue
+       ;;
+
+      -static | -static-libtool-libs)
+       # The effects of -static are defined in a previous loop.
+       # We used to do the same as -all-static on platforms that
+       # didn't have a PIC flag, but the assumption that the effects
+       # would be equivalent was wrong.  It would break on at least
+       # Digital Unix and AIX.
+       continue
+       ;;
+
+      -thread-safe)
+       thread_safe=yes
+       continue
+       ;;
+
+      -version-info)
+       prev=vinfo
+       continue
+       ;;
+
+      -version-number)
+       prev=vinfo
+       vinfo_number=yes
+       continue
+       ;;
+
+      -weak)
+        prev=weak
+       continue
+       ;;
+
+      -Wc,*)
+       func_stripname '-Wc,' '' "$arg"
+       args=$func_stripname_result
+       arg=
+       save_ifs="$IFS"; IFS=','
+       for flag in $args; do
+         IFS="$save_ifs"
+          func_quote_for_eval "$flag"
+         arg="$arg $wl$func_quote_for_eval_result"
+         compiler_flags="$compiler_flags $func_quote_for_eval_result"
+       done
+       IFS="$save_ifs"
+       func_stripname ' ' '' "$arg"
+       arg=$func_stripname_result
+       ;;
+
+      -Wl,*)
+       func_stripname '-Wl,' '' "$arg"
+       args=$func_stripname_result
+       arg=
+       save_ifs="$IFS"; IFS=','
+       for flag in $args; do
+         IFS="$save_ifs"
+          func_quote_for_eval "$flag"
+         arg="$arg $wl$func_quote_for_eval_result"
+         compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
+         linker_flags="$linker_flags $func_quote_for_eval_result"
+       done
+       IFS="$save_ifs"
+       func_stripname ' ' '' "$arg"
+       arg=$func_stripname_result
+       ;;
+
+      -Xcompiler)
+       prev=xcompiler
+       continue
+       ;;
+
+      -Xlinker)
+       prev=xlinker
+       continue
+       ;;
+
+      -XCClinker)
+       prev=xcclinker
+       continue
+       ;;
+
+      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
+      # -r[0-9][0-9]* specifies the processor on the SGI compiler
+      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
+      # +DA*, +DD* enable 64-bit mode on the HP compiler
+      # -q* pass through compiler args for the IBM compiler
+      # -m*, -t[45]*, -txscale* pass through architecture-specific
+      # compiler args for GCC
+      # -F/path gives path to uninstalled frameworks, gcc on darwin
+      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
+      # @file GCC response files
+      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
+        func_quote_for_eval "$arg"
+       arg="$func_quote_for_eval_result"
+        func_append compile_command " $arg"
+        func_append finalize_command " $arg"
+        compiler_flags="$compiler_flags $arg"
+        continue
+        ;;
+
+      # Some other compiler flag.
+      -* | +*)
+        func_quote_for_eval "$arg"
+       arg="$func_quote_for_eval_result"
+       ;;
+
+      *.$objext)
+       # A standard object.
+       objs="$objs $arg"
+       ;;
+
+      *.lo)
+       # A libtool-controlled object.
+
+       # Check to see that this really is a libtool object.
+       if func_lalib_unsafe_p "$arg"; then
+         pic_object=
+         non_pic_object=
+
+         # Read the .lo file
+         func_source "$arg"
+
+         if test -z "$pic_object" ||
+            test -z "$non_pic_object" ||
+            test "$pic_object" = none &&
+            test "$non_pic_object" = none; then
+           func_fatal_error "cannot find name of object for \`$arg'"
+         fi
+
+         # Extract subdirectory from the argument.
+         func_dirname "$arg" "/" ""
+         xdir="$func_dirname_result"
+
+         if test "$pic_object" != none; then
+           # Prepend the subdirectory the object is found in.
+           pic_object="$xdir$pic_object"
+
+           if test "$prev" = dlfiles; then
+             if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+               dlfiles="$dlfiles $pic_object"
+               prev=
+               continue
+             else
+               # If libtool objects are unsupported, then we need to preload.
+               prev=dlprefiles
+             fi
+           fi
+
+           # CHECK ME:  I think I busted this.  -Ossama
+           if test "$prev" = dlprefiles; then
+             # Preload the old-style object.
+             dlprefiles="$dlprefiles $pic_object"
+             prev=
+           fi
+
+           # A PIC object.
+           func_append libobjs " $pic_object"
+           arg="$pic_object"
          fi
 
-         newlib_search_path="$newlib_search_path $absdir"
-         # Link against this library
-         test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
-         # ... and its dependency_libs
-         tmp_libs=
-         for deplib in $dependency_libs; do
-           newdependency_libs="$deplib $newdependency_libs"
-           case "$tmp_libs " in
-           *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-           esac
-           tmp_libs="$tmp_libs $deplib"
-         done
+         # Non-PIC object.
+         if test "$non_pic_object" != none; then
+           # Prepend the subdirectory the object is found in.
+           non_pic_object="$xdir$non_pic_object"
 
-         if test $link_all_deplibs != no; then
-           # Add the search paths of all dependency libraries
-           for deplib in $dependency_libs; do
-             case $deplib in
-             -L*) path="$deplib" ;;
-             *.la)
-               dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
-               test "X$dir" = "X$deplib" && dir="."
-               # We need an absolute path.
-               case $dir in
-               [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
-               *)
-                 absdir=`cd "$dir" && pwd`
-                 if test -z "$absdir"; then
-                   $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
-                   absdir="$dir"
-                 fi
-                 ;;
-               esac
-               if grep "^installed=no" $deplib > /dev/null; then
-                 path="-L$absdir/$objdir"
-               else
-                 eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-                 if test -z "$libdir"; then
-                   $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-                   exit 1
-                 fi
-                 if test "$absdir" != "$libdir"; then
-                   $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
-                 fi
-                 path="-L$absdir"
-               fi
-               ;;
-             *) continue ;;
-             esac
-             case " $deplibs " in
-             *" $path "*) ;;
-             *) deplibs="$path $deplibs" ;;
-             esac
-           done
-         fi # link_all_deplibs != no
-       fi # linkmode = lib
-      done # for deplib in $libs
-      if test $pass = dlpreopen; then
-       # Link the dlpreopened libraries before other libraries
-       for deplib in $save_deplibs; do
-         deplibs="$deplib $deplibs"
-       done
-      fi
-      if test $pass != dlopen; then
-       test $pass != scan && dependency_libs="$newdependency_libs"
-       if test $pass != conv; then
-         # Make sure lib_search_path contains only unique directories.
-         lib_search_path=
-         for dir in $newlib_search_path; do
-           case "$lib_search_path " in
-           *" $dir "*) ;;
-           *) lib_search_path="$lib_search_path $dir" ;;
-           esac
-         done
-         newlib_search_path=
+           # A standard non-PIC object
+           func_append non_pic_objects " $non_pic_object"
+           if test -z "$pic_object" || test "$pic_object" = none ; then
+             arg="$non_pic_object"
+           fi
+         else
+           # If the PIC object exists, use it instead.
+           # $xdir was prepended to $pic_object above.
+           non_pic_object="$pic_object"
+           func_append non_pic_objects " $non_pic_object"
+         fi
+       else
+         # Only an error if not doing a dry-run.
+         if $opt_dry_run; then
+           # Extract subdirectory from the argument.
+           func_dirname "$arg" "/" ""
+           xdir="$func_dirname_result"
+
+           func_lo2o "$arg"
+           pic_object=$xdir$objdir/$func_lo2o_result
+           non_pic_object=$xdir$func_lo2o_result
+           func_append libobjs " $pic_object"
+           func_append non_pic_objects " $non_pic_object"
+         else
+           func_fatal_error "\`$arg' is not a valid libtool object"
+         fi
        fi
+       ;;
 
-       if test "$linkmode,$pass" != "prog,link"; then
-         vars="deplibs"
+      *.$libext)
+       # An archive.
+       deplibs="$deplibs $arg"
+       old_deplibs="$old_deplibs $arg"
+       continue
+       ;;
+
+      *.la)
+       # A libtool-controlled library.
+
+       if test "$prev" = dlfiles; then
+         # This library was specified with -dlopen.
+         dlfiles="$dlfiles $arg"
+         prev=
+       elif test "$prev" = dlprefiles; then
+         # The library was specified with -dlpreopen.
+         dlprefiles="$dlprefiles $arg"
+         prev=
        else
-         vars="compile_deplibs finalize_deplibs"
+         deplibs="$deplibs $arg"
        fi
-       for var in $vars dependency_libs; do
-         # Add libraries to $var in reverse order
-         eval tmp_libs=\"\$$var\"
-         new_libs=
-         for deplib in $tmp_libs; do
-           case $deplib in
-           -L*) new_libs="$deplib $new_libs" ;;
-           *)
-             case " $specialdeplibs " in
-             *" $deplib "*) new_libs="$deplib $new_libs" ;;
-             *)
-               case " $new_libs " in
-               *" $deplib "*) ;;
-               *) new_libs="$deplib $new_libs" ;;
-               esac
-               ;;
-             esac
-             ;;
-           esac
-         done
-         tmp_libs=
-         for deplib in $new_libs; do
-           case $deplib in
-           -L*)
-             case " $tmp_libs " in
-             *" $deplib "*) ;;
-             *) tmp_libs="$tmp_libs $deplib" ;;
-             esac
-             ;;
-           *) tmp_libs="$tmp_libs $deplib" ;;
-           esac
-         done
-         eval $var=\"$tmp_libs\"
-       done # for var
-      fi
-      if test "$pass" = "conv" &&
-       { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then
-       libs="$deplibs" # reset libs
-       deplibs=
+       continue
+       ;;
+
+      # Some other compiler argument.
+      *)
+       # Unknown arguments in both finalize_command and compile_command need
+       # to be aesthetically quoted because they are evaled later.
+       func_quote_for_eval "$arg"
+       arg="$func_quote_for_eval_result"
+       ;;
+      esac # arg
+
+      # Now actually substitute the argument into the commands.
+      if test -n "$arg"; then
+       func_append compile_command " $arg"
+       func_append finalize_command " $arg"
       fi
-    done # for pass
-    if test $linkmode = prog; then
-      dlfiles="$newdlfiles"
-      dlprefiles="$newdlprefiles"
+    done # argument parsing loop
+
+    test -n "$prev" && \
+      func_fatal_help "the \`$prevarg' option requires an argument"
+
+    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+      eval arg=\"$export_dynamic_flag_spec\"
+      func_append compile_command " $arg"
+      func_append finalize_command " $arg"
     fi
 
-    case $linkmode in
-    oldlib)
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-       $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
-      fi
+    oldlibs=
+    # calculate the name of the file, without its directory
+    func_basename "$output"
+    outputname="$func_basename_result"
+    libobjs_save="$libobjs"
 
-      if test -n "$rpath"; then
-       $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
-      fi
+    if test -n "$shlibpath_var"; then
+      # get the directories listed in $shlibpath_var
+      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+    else
+      shlib_search_path=
+    fi
+    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
 
-      if test -n "$xrpath"; then
-       $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
-      fi
+    func_dirname "$output" "/" ""
+    output_objdir="$func_dirname_result$objdir"
+    # Create the object directory.
+    func_mkdir_p "$output_objdir"
 
-      if test -n "$vinfo"; then
-       $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
-      fi
+    # Determine the type of output
+    case $output in
+    "")
+      func_fatal_help "you must specify an output file"
+      ;;
+    *.$libext) linkmode=oldlib ;;
+    *.lo | *.$objext) linkmode=obj ;;
+    *.la) linkmode=lib ;;
+    *) linkmode=prog ;; # Anything else should be a program.
+    esac
+
+    specialdeplibs=
 
-      if test -n "$release"; then
-       $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
+    libs=
+    # Find all interdependent deplibs by searching for libraries
+    # that are linked more than once (e.g. -la -lb -la)
+    for deplib in $deplibs; do
+      if $opt_duplicate_deps ; then
+       case "$libs " in
+       *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+       esac
       fi
+      libs="$libs $deplib"
+    done
 
-      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-       $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
+    if test "$linkmode" = lib; then
+      libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+      # Compute libraries that are listed more than once in $predeps
+      # $postdeps and mark them as special (i.e., whose duplicates are
+      # not to be eliminated).
+      pre_post_deps=
+      if $opt_duplicate_compiler_generated_deps; then
+       for pre_post_dep in $predeps $postdeps; do
+         case "$pre_post_deps " in
+         *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+         esac
+         pre_post_deps="$pre_post_deps $pre_post_dep"
+       done
       fi
+      pre_post_deps=
+    fi
 
-      # Now set the variables for building old libraries.
-      build_libtool_libs=no
-      oldlibs="$output"
-      objs="$objs$old_deplibs"
-      ;;
+    deplibs=
+    newdependency_libs=
+    newlib_search_path=
+    need_relink=no # whether we're linking any uninstalled libtool libraries
+    notinst_deplibs= # not-installed libtool libraries
+    notinst_path= # paths that contain not-installed libtool libraries
 
+    case $linkmode in
     lib)
-      # Make sure we only generate libraries of the form `libNAME.la'.
-      case $outputname in
-      lib*)
-       name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-       eval shared_ext=\"$shrext\"
-       eval libname=\"$libname_spec\"
+       passes="conv dlpreopen link"
+       for file in $dlfiles $dlprefiles; do
+         case $file in
+         *.la) ;;
+         *)
+           func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
+           ;;
+         esac
+       done
        ;;
-      *)
-       if test "$module" = no; then
-         $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
-         $echo "$help" 1>&2
-         exit 1
-       fi
-       if test "$need_lib_prefix" != no; then
-         # Add the "lib" prefix for modules if required
-         name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-         eval shared_ext=\"$shrext\"
-         eval libname=\"$libname_spec\"
-       else
-         libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-       fi
+    prog)
+       compile_deplibs=
+       finalize_deplibs=
+       alldeplibs=no
+       newdlfiles=
+       newdlprefiles=
+       passes="conv scan dlopen dlpreopen link"
        ;;
-      esac
+    *)  passes="conv"
+       ;;
+    esac
 
-      if test -n "$objs"; then
-       if test "$deplibs_check_method" != pass_all; then
-         $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
-         exit 1
-       else
-         echo
-         echo "*** Warning: Linking the shared library $output against the non-libtool"
-         echo "*** objects $objs is not portable!"
-         libobjs="$libobjs $objs"
-       fi
+    for pass in $passes; do
+      # The preopen pass in lib mode reverses $deplibs; put it back here
+      # so that -L comes before libs that need it for instance...
+      if test "$linkmode,$pass" = "lib,link"; then
+       ## FIXME: Find the place where the list is rebuilt in the wrong
+       ##        order, and fix it there properly
+        tmp_deplibs=
+       for deplib in $deplibs; do
+         tmp_deplibs="$deplib $tmp_deplibs"
+       done
+       deplibs="$tmp_deplibs"
+      fi
+
+      if test "$linkmode,$pass" = "lib,link" ||
+        test "$linkmode,$pass" = "prog,scan"; then
+       libs="$deplibs"
+       deplibs=
+      fi
+      if test "$linkmode" = prog; then
+       case $pass in
+       dlopen) libs="$dlfiles" ;;
+       dlpreopen) libs="$dlprefiles" ;;
+       link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+       esac
       fi
+      if test "$linkmode,$pass" = "lib,dlpreopen"; then
+       # Collect and forward deplibs of preopened libtool libs
+       for lib in $dlprefiles; do
+         # Ignore non-libtool-libs
+         dependency_libs=
+         case $lib in
+         *.la) func_source "$lib" ;;
+         esac
 
-      if test "$dlself" != no; then
-       $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
+         # Collect preopened libtool deplibs, except any this library
+         # has declared as weak libs
+         for deplib in $dependency_libs; do
+            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
+           case " $weak_libs " in
+           *" $deplib_base "*) ;;
+           *) deplibs="$deplibs $deplib" ;;
+           esac
+         done
+       done
+       libs="$dlprefiles"
       fi
-
-      set dummy $rpath
-      if test $# -gt 2; then
-       $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
+      if test "$pass" = dlopen; then
+       # Collect dlpreopened libraries
+       save_deplibs="$deplibs"
+       deplibs=
       fi
-      install_libdir="$2"
-
-      oldlibs=
-      if test -z "$rpath"; then
-       if test "$build_libtool_libs" = yes; then
-         # Building a libtool convenience library.
-         # Some compilers have problems with a `.al' extension so
-          # convenience libraries should have the same extension an
-          # archive normally would.
-         oldlibs="$output_objdir/$libname.$libext $oldlibs"
-         build_libtool_libs=convenience
-         build_old_libs=yes
-       fi
-
-       if test -n "$vinfo"; then
-         $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
-       fi
-
-       if test -n "$release"; then
-         $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
-       fi
-      else
-
-       # Parse the version information argument.
-       IFS="${IFS=     }"; save_ifs="$IFS"; IFS=':'
-       set dummy $vinfo 0 0 0
-       IFS="$save_ifs"
-
-       if test -n "$8"; then
-         $echo "$modename: too many parameters to \`-version-info'" 1>&2
-         $echo "$help" 1>&2
-         exit 1
-       fi
-
-       current="$2"
-       revision="$3"
-       age="$4"
 
-       # Check that each of the things are valid numbers.
-       case $current in
-       0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-       *)
-         $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
-         $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-         exit 1
-         ;;
-       esac
-
-       case $revision in
-       0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-       *)
-         $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
-         $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-         exit 1
+      for deplib in $libs; do
+       lib=
+       found=no
+       case $deplib in
+       -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
+         if test "$linkmode,$pass" = "prog,link"; then
+           compile_deplibs="$deplib $compile_deplibs"
+           finalize_deplibs="$deplib $finalize_deplibs"
+         else
+           compiler_flags="$compiler_flags $deplib"
+           if test "$linkmode" = lib ; then
+               case "$new_inherited_linker_flags " in
+                   *" $deplib "*) ;;
+                   * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+               esac
+           fi
+         fi
+         continue
          ;;
-       esac
-
-       case $age in
-       0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-       *)
-         $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
-         $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-         exit 1
+       -l*)
+         if test "$linkmode" != lib && test "$linkmode" != prog; then
+           func_warning "\`-l' is ignored for archives/objects"
+           continue
+         fi
+         func_stripname '-l' '' "$deplib"
+         name=$func_stripname_result
+         for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
+           for search_ext in .la $std_shrext .so .a; do
+             # Search the libtool library
+             lib="$searchdir/lib${name}${search_ext}"
+             if test -f "$lib"; then
+               if test "$search_ext" = ".la"; then
+                 found=yes
+               else
+                 found=no
+               fi
+               break 2
+             fi
+           done
+         done
+         if test "$found" != yes; then
+           # deplib doesn't seem to be a libtool library
+           if test "$linkmode,$pass" = "prog,link"; then
+             compile_deplibs="$deplib $compile_deplibs"
+             finalize_deplibs="$deplib $finalize_deplibs"
+           else
+             deplibs="$deplib $deplibs"
+             test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+           fi
+           continue
+         else # deplib is a libtool library
+           # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+           # We need to do some special things here, and not later.
+           if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+             case " $predeps $postdeps " in
+             *" $deplib "*)
+               if func_lalib_p "$lib"; then
+                 library_names=
+                 old_library=
+                 func_source "$lib"
+                 for l in $old_library $library_names; do
+                   ll="$l"
+                 done
+                 if test "X$ll" = "X$old_library" ; then # only static version available
+                   found=no
+                   func_dirname "$lib" "" "."
+                   ladir="$func_dirname_result"
+                   lib=$ladir/$old_library
+                   if test "$linkmode,$pass" = "prog,link"; then
+                     compile_deplibs="$deplib $compile_deplibs"
+                     finalize_deplibs="$deplib $finalize_deplibs"
+                   else
+                     deplibs="$deplib $deplibs"
+                     test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+                   fi
+                   continue
+                 fi
+               fi
+               ;;
+             *) ;;
+             esac
+           fi
+         fi
+         ;; # -l
+       *.ltframework)
+         if test "$linkmode,$pass" = "prog,link"; then
+           compile_deplibs="$deplib $compile_deplibs"
+           finalize_deplibs="$deplib $finalize_deplibs"
+         else
+           deplibs="$deplib $deplibs"
+           if test "$linkmode" = lib ; then
+               case "$new_inherited_linker_flags " in
+                   *" $deplib "*) ;;
+                   * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
+               esac
+           fi
+         fi
+         continue
          ;;
-       esac
-
-       if test $age -gt $current; then
-         $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
-         $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-         exit 1
-       fi
-
-       # Calculate the version variables.
-       major=
-       versuffix=
-       verstring=
-       case $version_type in
-       none) ;;
-
-       darwin)
-         # Like Linux, but with the current version available in
-         # verstring for coding it into the library header
-         major=.`expr $current - $age`
-         versuffix="$major.$age.$revision"
-         # Darwin ld doesn't like 0 for these options...
-         minor_current=`expr $current + 1`
-         verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+       -L*)
+         case $linkmode in
+         lib)
+           deplibs="$deplib $deplibs"
+           test "$pass" = conv && continue
+           newdependency_libs="$deplib $newdependency_libs"
+           func_stripname '-L' '' "$deplib"
+           newlib_search_path="$newlib_search_path $func_stripname_result"
+           ;;
+         prog)
+           if test "$pass" = conv; then
+             deplibs="$deplib $deplibs"
+             continue
+           fi
+           if test "$pass" = scan; then
+             deplibs="$deplib $deplibs"
+           else
+             compile_deplibs="$deplib $compile_deplibs"
+             finalize_deplibs="$deplib $finalize_deplibs"
+           fi
+           func_stripname '-L' '' "$deplib"
+           newlib_search_path="$newlib_search_path $func_stripname_result"
+           ;;
+         *)
+           func_warning "\`-L' is ignored for archives/objects"
+           ;;
+         esac # linkmode
+         continue
+         ;; # -L
+       -R*)
+         if test "$pass" = link; then
+           func_stripname '-R' '' "$deplib"
+           dir=$func_stripname_result
+           # Make sure the xrpath contains only unique directories.
+           case "$xrpath " in
+           *" $dir "*) ;;
+           *) xrpath="$xrpath $dir" ;;
+           esac
+         fi
+         deplibs="$deplib $deplibs"
+         continue
          ;;
-
-       freebsd-aout)
-         major=".$current"
-         versuffix=".$current.$revision";
+       *.la) lib="$deplib" ;;
+       *.$libext)
+         if test "$pass" = conv; then
+           deplibs="$deplib $deplibs"
+           continue
+         fi
+         case $linkmode in
+         lib)
+           # Linking convenience modules into shared libraries is allowed,
+           # but linking other static libraries is non-portable.
+           case " $dlpreconveniencelibs " in
+           *" $deplib "*) ;;
+           *)
+             valid_a_lib=no
+             case $deplibs_check_method in
+               match_pattern*)
+                 set dummy $deplibs_check_method; shift
+                 match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+                 if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
+                   | $EGREP "$match_pattern_regex" > /dev/null; then
+                   valid_a_lib=yes
+                 fi
+               ;;
+               pass_all)
+                 valid_a_lib=yes
+               ;;
+             esac
+             if test "$valid_a_lib" != yes; then
+               $ECHO
+               $ECHO "*** Warning: Trying to link with static lib archive $deplib."
+               $ECHO "*** I have the capability to make that library automatically link in when"
+               $ECHO "*** you link to this library.  But I can only do this if you have a"
+               $ECHO "*** shared version of the library, which you do not appear to have"
+               $ECHO "*** because the file extensions .$libext of this argument makes me believe"
+               $ECHO "*** that it is just a static archive that I should not use here."
+             else
+               $ECHO
+               $ECHO "*** Warning: Linking the shared library $output against the"
+               $ECHO "*** static library $deplib is not portable!"
+               deplibs="$deplib $deplibs"
+             fi
+             ;;
+           esac
+           continue
+           ;;
+         prog)
+           if test "$pass" != link; then
+             deplibs="$deplib $deplibs"
+           else
+             compile_deplibs="$deplib $compile_deplibs"
+             finalize_deplibs="$deplib $finalize_deplibs"
+           fi
+           continue
+           ;;
+         esac # linkmode
+         ;; # *.$libext
+       *.lo | *.$objext)
+         if test "$pass" = conv; then
+           deplibs="$deplib $deplibs"
+         elif test "$linkmode" = prog; then
+           if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+             # If there is no dlopen support or we're linking statically,
+             # we need to preload.
+             newdlprefiles="$newdlprefiles $deplib"
+             compile_deplibs="$deplib $compile_deplibs"
+             finalize_deplibs="$deplib $finalize_deplibs"
+           else
+             newdlfiles="$newdlfiles $deplib"
+           fi
+         fi
+         continue
          ;;
-
-       freebsd-elf)
-         major=".$current"
-         versuffix=".$current";
+       %DEPLIBS%)
+         alldeplibs=yes
+         continue
          ;;
+       esac # case $deplib
 
-       irix)
-         major=`expr $current - $age + 1`
-         verstring="sgi$major.$revision"
+       if test "$found" = yes || test -f "$lib"; then :
+       else
+         func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
+       fi
 
-         # Add in all the interfaces that we are compatible with.
-         loop=$revision
-         while test $loop != 0; do
-           iface=`expr $revision - $loop`
-           loop=`expr $loop - 1`
-           verstring="sgi$major.$iface:$verstring"
-         done
+       # Check to see that this really is a libtool archive.
+       func_lalib_unsafe_p "$lib" \
+         || func_fatal_error "\`$lib' is not a valid libtool archive"
 
-         # Before this point, $major must not contain `.'.
-         major=.$major
-         versuffix="$major.$revision"
-         ;;
+       func_dirname "$lib" "" "."
+       ladir="$func_dirname_result"
 
-       linux)
-         major=.`expr $current - $age`
-         versuffix="$major.$age.$revision"
-         ;;
+       dlname=
+       dlopen=
+       dlpreopen=
+       libdir=
+       library_names=
+       old_library=
+       inherited_linker_flags=
+       # If the library was installed with an old release of libtool,
+       # it will not redefine variables installed, or shouldnotlink
+       installed=yes
+       shouldnotlink=no
+       avoidtemprpath=
 
-       osf)
-         major=.`expr $current - $age`
-         versuffix=".$current.$age.$revision"
-         verstring="$current.$age.$revision"
 
-         # Add in all the interfaces that we are compatible with.
-         loop=$age
-         while test $loop != 0; do
-           iface=`expr $current - $loop`
-           loop=`expr $loop - 1`
-           verstring="$verstring:${iface}.0"
+       # Read the .la file
+       func_source "$lib"
+
+       # Convert "-framework foo" to "foo.ltframework"
+       if test -n "$inherited_linker_flags"; then
+         tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
+         for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+           case " $new_inherited_linker_flags " in
+             *" $tmp_inherited_linker_flag "*) ;;
+             *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
+           esac
          done
+       fi
+       dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+       if test "$linkmode,$pass" = "prog,link"; then
+         compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
+         finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
+       else
+         compiler_flags="$compiler_flags $inherited_linker_flags"
+       fi
+       if test "$linkmode,$pass" = "lib,link" ||
+          test "$linkmode,$pass" = "prog,scan" ||
+          { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+         test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+         test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+       fi
 
-         # Make executables depend on our current version.
-         verstring="$verstring:${current}.0"
-         ;;
-
-       sunos)
-         major=".$current"
-         versuffix=".$current.$revision"
-         ;;
+       if test "$pass" = conv; then
+         # Only check for convenience libraries
+         deplibs="$lib $deplibs"
+         if test -z "$libdir"; then
+           if test -z "$old_library"; then
+             func_fatal_error "cannot find name of link library for \`$lib'"
+           fi
+           # It is a libtool convenience library, so add in its objects.
+           convenience="$convenience $ladir/$objdir/$old_library"
+           old_convenience="$old_convenience $ladir/$objdir/$old_library"
+         elif test "$linkmode" != prog && test "$linkmode" != lib; then
+           func_fatal_error "\`$lib' is not a convenience library"
+         fi
+         tmp_libs=
+         for deplib in $dependency_libs; do
+           deplibs="$deplib $deplibs"
+           if $opt_duplicate_deps ; then
+             case "$tmp_libs " in
+             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             esac
+           fi
+           tmp_libs="$tmp_libs $deplib"
+         done
+         continue
+       fi # $pass = conv
 
-       windows)
-         # Use '-' rather than '.', since we only want one
-         # extension on DOS 8.3 filesystems.
-         major=`expr $current - $age`
-         versuffix="-$major"
-         ;;
 
+       # Get the name of the library we link against.
+       linklib=
+       for l in $old_library $library_names; do
+         linklib="$l"
+       done
+       if test -z "$linklib"; then
+         func_fatal_error "cannot find name of link library for \`$lib'"
+       fi
+
+       # This library was specified with -dlopen.
+       if test "$pass" = dlopen; then
+         if test -z "$libdir"; then
+           func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
+         fi
+         if test -z "$dlname" ||
+            test "$dlopen_support" != yes ||
+            test "$build_libtool_libs" = no; then
+           # If there is no dlname, no dlopen support or we're linking
+           # statically, we need to preload.  We also need to preload any
+           # dependent libraries so libltdl's deplib preloader doesn't
+           # bomb out in the load deplibs phase.
+           dlprefiles="$dlprefiles $lib $dependency_libs"
+         else
+           newdlfiles="$newdlfiles $lib"
+         fi
+         continue
+       fi # $pass = dlopen
+
+       # We need an absolute path.
+       case $ladir in
+       [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
        *)
-         $echo "$modename: unknown library version type \`$version_type'" 1>&2
-         echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-         exit 1
+         abs_ladir=`cd "$ladir" && pwd`
+         if test -z "$abs_ladir"; then
+           func_warning "cannot determine absolute directory name of \`$ladir'"
+           func_warning "passing it literally to the linker, although it might fail"
+           abs_ladir="$ladir"
+         fi
          ;;
        esac
+       func_basename "$lib"
+       laname="$func_basename_result"
 
-       # Clear the version info if we defaulted, and they specified a release.
-       if test -z "$vinfo" && test -n "$release"; then
-         major=
-         case $version_type in
-         darwin)
-           # we can't check for "0.0" in archive_cmds due to quoting
-           # problems, so we reset it completely
-           verstring=
-           ;;
-         *)
-           verstring="0.0"
-           ;;
-         esac
-         if test "$need_version" = no; then
-           versuffix=
+       # Find the relevant object directory and library name.
+       if test "X$installed" = Xyes; then
+         if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+           func_warning "library \`$lib' was moved."
+           dir="$ladir"
+           absdir="$abs_ladir"
+           libdir="$abs_ladir"
          else
-           versuffix=".0.0"
+           dir="$libdir"
+           absdir="$libdir"
          fi
-       fi
+         test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+       else
+         if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+           dir="$ladir"
+           absdir="$abs_ladir"
+           # Remove this search path later
+           notinst_path="$notinst_path $abs_ladir"
+         else
+           dir="$ladir/$objdir"
+           absdir="$abs_ladir/$objdir"
+           # Remove this search path later
+           notinst_path="$notinst_path $abs_ladir"
+         fi
+       fi # $installed = yes
+       func_stripname 'lib' '.la' "$laname"
+       name=$func_stripname_result
 
-       # Remove version info from name if versioning should be avoided
-       if test "$avoid_version" = yes && test "$need_version" = no; then
-         major=
-         versuffix=
-         verstring=""
-       fi
+       # This library was specified with -dlpreopen.
+       if test "$pass" = dlpreopen; then
+         if test -z "$libdir" && test "$linkmode" = prog; then
+           func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
+         fi
+         # Prefer using a static library (so that no silly _DYNAMIC symbols
+         # are required to link).
+         if test -n "$old_library"; then
+           newdlprefiles="$newdlprefiles $dir/$old_library"
+           # Keep a list of preopened convenience libraries to check
+           # that they are being used correctly in the link pass.
+           test -z "$libdir" && \
+               dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
+         # Otherwise, use the dlname, so that lt_dlopen finds it.
+         elif test -n "$dlname"; then
+           newdlprefiles="$newdlprefiles $dir/$dlname"
+         else
+           newdlprefiles="$newdlprefiles $dir/$linklib"
+         fi
+       fi # $pass = dlpreopen
 
-       # Check to see if the archive will have undefined symbols.
-       if test "$allow_undefined" = yes; then
-         if test "$allow_undefined_flag" = unsupported; then
-           $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
-           build_libtool_libs=no
-           build_old_libs=yes
+       if test -z "$libdir"; then
+         # Link the convenience library
+         if test "$linkmode" = lib; then
+           deplibs="$dir/$old_library $deplibs"
+         elif test "$linkmode,$pass" = "prog,link"; then
+           compile_deplibs="$dir/$old_library $compile_deplibs"
+           finalize_deplibs="$dir/$old_library $finalize_deplibs"
+         else
+           deplibs="$lib $deplibs" # used for prog,scan pass
          fi
-       else
-         # Don't allow undefined symbols.
-         allow_undefined_flag="$no_undefined_flag"
+         continue
        fi
-      fi
 
-      if test "$mode" != relink; then
-       # Remove our outputs, but don't remove object files since they
-        # may have been created when compiling PIC objects.
-        removelist=
-        tempremovelist=`echo "$output_objdir/*"`
-       for p in $tempremovelist; do
-          case $p in
-            *.$objext)
-               ;;
-            $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-               removelist="$removelist $p"
-               ;;
-            *) ;;
-          esac
-        done
-        if test -n "$removelist"; then
-         $show "${rm}r $removelist"
-         $run ${rm}r $removelist
-        fi
-      fi
 
-      # Now set the variables for building old libraries.
-      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-       oldlibs="$oldlibs $output_objdir/$libname.$libext"
+       if test "$linkmode" = prog && test "$pass" != link; then
+         newlib_search_path="$newlib_search_path $ladir"
+         deplibs="$lib $deplibs"
 
-       # Transform .lo files to .o files.
-       oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
-      fi
+         linkalldeplibs=no
+         if test "$link_all_deplibs" != no || test -z "$library_names" ||
+            test "$build_libtool_libs" = no; then
+           linkalldeplibs=yes
+         fi
 
-      # Eliminate all temporary directories.
-      for path in $notinst_path; do
-       lib_search_path=`echo "$lib_search_path " | sed -e 's% $path % %g'`
-       deplibs=`echo "$deplibs " | sed -e 's% -L$path % %g'`
-       dependency_libs=`echo "$dependency_libs " | sed -e 's% -L$path % %g'`
-      done
+         tmp_libs=
+         for deplib in $dependency_libs; do
+           case $deplib in
+           -L*) func_stripname '-L' '' "$deplib"
+                newlib_search_path="$newlib_search_path $func_stripname_result"
+                ;;
+           esac
+           # Need to link against all dependency_libs?
+           if test "$linkalldeplibs" = yes; then
+             deplibs="$deplib $deplibs"
+           else
+             # Need to hardcode shared library paths
+             # or/and link against static libraries
+             newdependency_libs="$deplib $newdependency_libs"
+           fi
+           if $opt_duplicate_deps ; then
+             case "$tmp_libs " in
+             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+             esac
+           fi
+           tmp_libs="$tmp_libs $deplib"
+         done # for deplib
+         continue
+       fi # $linkmode = prog...
 
-      if test -n "$xrpath"; then
-       # If the user specified any rpath flags, then add them.
-       temp_xrpath=
-       for libdir in $xrpath; do
-         temp_xrpath="$temp_xrpath -R$libdir"
-         case "$finalize_rpath " in
-         *" $libdir "*) ;;
-         *) finalize_rpath="$finalize_rpath $libdir" ;;
-         esac
-       done
-       if test $hardcode_into_libs != yes || test $build_old_libs = yes; then
-         dependency_libs="$temp_xrpath $dependency_libs"
+       if test "$linkmode,$pass" = "prog,link"; then
+         if test -n "$library_names" &&
+            { { test "$prefer_static_libs" = no ||
+                test "$prefer_static_libs,$installed" = "built,yes"; } ||
+              test -z "$old_library"; }; then
+           # We need to hardcode the library path
+           if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+             # Make sure the rpath contains only unique directories.
+             case "$temp_rpath:" in
+             *"$absdir:"*) ;;
+             *) temp_rpath="$temp_rpath$absdir:" ;;
+             esac
+           fi
+
+           # Hardcode the library path.
+           # Skip directories that are in the system default run-time
+           # search path.
+           case " $sys_lib_dlsearch_path " in
+           *" $absdir "*) ;;
+           *)
+             case "$compile_rpath " in
+             *" $absdir "*) ;;
+             *) compile_rpath="$compile_rpath $absdir"
+             esac
+             ;;
+           esac
+           case " $sys_lib_dlsearch_path " in
+           *" $libdir "*) ;;
+           *)
+             case "$finalize_rpath " in
+             *" $libdir "*) ;;
+             *) finalize_rpath="$finalize_rpath $libdir"
+             esac
+             ;;
+           esac
+         fi # $linkmode,$pass = prog,link...
+
+         if test "$alldeplibs" = yes &&
+            { test "$deplibs_check_method" = pass_all ||
+              { test "$build_libtool_libs" = yes &&
+                test -n "$library_names"; }; }; then
+           # We only need to search for static libraries
+           continue
+         fi
        fi
-      fi
 
-      # Make sure dlfiles contains only unique files that won't be dlpreopened
-      old_dlfiles="$dlfiles"
-      dlfiles=
-      for lib in $old_dlfiles; do
-       case " $dlprefiles $dlfiles " in
-       *" $lib "*) ;;
-       *) dlfiles="$dlfiles $lib" ;;
-       esac
-      done
+       link_static=no # Whether the deplib will be linked statically
+       use_static_libs=$prefer_static_libs
+       if test "$use_static_libs" = built && test "$installed" = yes; then
+         use_static_libs=no
+       fi
+       if test -n "$library_names" &&
+          { test "$use_static_libs" = no || test -z "$old_library"; }; then
+         case $host in
+         *cygwin* | *mingw*)
+             # No point in relinking DLLs because paths are not encoded
+             notinst_deplibs="$notinst_deplibs $lib"
+             need_relink=no
+           ;;
+         *)
+           if test "$installed" = no; then
+             notinst_deplibs="$notinst_deplibs $lib"
+             need_relink=yes
+           fi
+           ;;
+         esac
+         # This is a shared library
+
+         # Warn about portability, can't link against -module's on some
+         # systems (darwin).  Don't bleat about dlopened modules though!
+         dlopenmodule=""
+         for dlpremoduletest in $dlprefiles; do
+           if test "X$dlpremoduletest" = "X$lib"; then
+             dlopenmodule="$dlpremoduletest"
+             break
+           fi
+         done
+         if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
+           $ECHO
+           if test "$linkmode" = prog; then
+             $ECHO "*** Warning: Linking the executable $output against the loadable module"
+           else
+             $ECHO "*** Warning: Linking the shared library $output against the loadable module"
+           fi
+           $ECHO "*** $linklib is not portable!"
+         fi
+         if test "$linkmode" = lib &&
+            test "$hardcode_into_libs" = yes; then
+           # Hardcode the library path.
+           # Skip directories that are in the system default run-time
+           # search path.
+           case " $sys_lib_dlsearch_path " in
+           *" $absdir "*) ;;
+           *)
+             case "$compile_rpath " in
+             *" $absdir "*) ;;
+             *) compile_rpath="$compile_rpath $absdir"
+             esac
+             ;;
+           esac
+           case " $sys_lib_dlsearch_path " in
+           *" $libdir "*) ;;
+           *)
+             case "$finalize_rpath " in
+             *" $libdir "*) ;;
+             *) finalize_rpath="$finalize_rpath $libdir"
+             esac
+             ;;
+           esac
+         fi
 
-      # Make sure dlprefiles contains only unique files
-      old_dlprefiles="$dlprefiles"
-      dlprefiles=
-      for lib in $old_dlprefiles; do
-       case "$dlprefiles " in
-       *" $lib "*) ;;
-       *) dlprefiles="$dlprefiles $lib" ;;
-       esac
-      done
+         if test -n "$old_archive_from_expsyms_cmds"; then
+           # figure out the soname
+           set dummy $library_names
+           shift
+           realname="$1"
+           shift
+           libname=`eval "\\$ECHO \"$libname_spec\""`
+           # use dlname if we got it. it's perfectly good, no?
+           if test -n "$dlname"; then
+             soname="$dlname"
+           elif test -n "$soname_spec"; then
+             # bleh windows
+             case $host in
+             *cygwin* | mingw*)
+               major=`expr $current - $age`
+               versuffix="-$major"
+               ;;
+             esac
+             eval soname=\"$soname_spec\"
+           else
+             soname="$realname"
+           fi
+
+           # Make a new name for the extract_expsyms_cmds to use
+           soroot="$soname"
+           func_basename "$soroot"
+           soname="$func_basename_result"
+           func_stripname 'lib' '.dll' "$soname"
+           newlib=libimp-$func_stripname_result.a
 
-      if test "$build_libtool_libs" = yes; then
-       if test -n "$rpath"; then
-         case $host in
-         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
-           # these systems don't actually have a c library (as such)!
-           ;;
-         *-*-rhapsody* | *-*-darwin1.[012])
-           # Rhapsody C library is in the System framework
-           deplibs="$deplibs -framework System"
-           ;;
-         *-*-netbsd*)
-           # Don't link with libc until the a.out ld.so is fixed.
-           ;;
-         *)
-           # Add libc to deplibs on all other systems if necessary.
-           if test $build_libtool_need_lc = "yes"; then
-             deplibs="$deplibs -lc"
+           # If the library has no export list, then create one now
+           if test -f "$output_objdir/$soname-def"; then :
+           else
+             func_echo "extracting exported symbol list from \`$soname'"
+             func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
            fi
-           ;;
-         esac
-       fi
 
-       # Transform deplibs into only deplibs that can be linked in shared.
-       name_save=$name
-       libname_save=$libname
-       release_save=$release
-       versuffix_save=$versuffix
-       major_save=$major
-       # I'm not sure if I'm treating the release correctly.  I think
-       # release should show up in the -l (ie -lgmp5) so we don't want to
-       # add it in twice.  Is that correct?
-       release=""
-       versuffix=""
-       major=""
-       newdeplibs=
-       droppeddeps=no
-       case $deplibs_check_method in
-       pass_all)
-         # Don't check for shared/static.  Everything works.
-         # This might be a little naive.  We might want to check
-         # whether the library exists or not.  But this is on
-         # osf3 & osf4 and I'm not really sure... Just
-         # implementing what was already the behaviour.
-         newdeplibs=$deplibs
-         ;;
-       test_compile)
-         # This code stresses the "libraries are programs" paradigm to its
-         # limits. Maybe even breaks it.  We compile a program, linking it
-         # against the deplibs as a proxy for the library.  Then we can check
-         # whether they linked in statically or dynamically with ldd.
-         $rm conftest.c
-         cat > conftest.c <<EOF
-         int main() { return 0; }
-EOF
-         $rm conftest
-         $LTCC -o conftest conftest.c $deplibs
-         if test $? -eq 0 ; then
-           ldd_output=`ldd conftest`
-           for i in $deplibs; do
-             name="`expr $i : '-l\(.*\)'`"
-             # If $name is empty we are operating on a -L argument.
-             if test -n "$name" && test "$name" != "0"; then
-               libname=`eval \\$echo \"$libname_spec\"`
-               deplib_matches=`eval \\$echo \"$library_names_spec\"`
-               set dummy $deplib_matches
-               deplib_match=$2
-               if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-                 newdeplibs="$newdeplibs $i"
-               else
-                 droppeddeps=yes
-                 echo
-                 echo "*** Warning: This library needs some functionality provided by $i."
-                 echo "*** I have the capability to make that library automatically link in when"
-                 echo "*** you link to this library.  But I can only do this if you have a"
-                 echo "*** shared version of the library, which you do not appear to have."
-               fi
+           # Create $newlib
+           if test -f "$output_objdir/$newlib"; then :; else
+             func_echo "generating import library for \`$soname'"
+             func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
+           fi
+           # make sure the library variables are pointing to the new library
+           dir=$output_objdir
+           linklib=$newlib
+         fi # test -n "$old_archive_from_expsyms_cmds"
+
+         if test "$linkmode" = prog || test "$mode" != relink; then
+           add_shlibpath=
+           add_dir=
+           add=
+           lib_linked=yes
+           case $hardcode_action in
+           immediate | unsupported)
+             if test "$hardcode_direct" = no; then
+               add="$dir/$linklib"
+               case $host in
+                 *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
+                 *-*-sysv4*uw2*) add_dir="-L$dir" ;;
+                 *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+                   *-*-unixware7*) add_dir="-L$dir" ;;
+                 *-*-darwin* )
+                   # if the lib is a (non-dlopened) module then we can not
+                   # link against it, someone is ignoring the earlier warnings
+                   if /usr/bin/file -L $add 2> /dev/null |
+                        $GREP ": [^:]* bundle" >/dev/null ; then
+                     if test "X$dlopenmodule" != "X$lib"; then
+                       $ECHO "*** Warning: lib $linklib is a module, not a shared library"
+                       if test -z "$old_library" ; then
+                         $ECHO
+                         $ECHO "*** And there doesn't seem to be a static archive available"
+                         $ECHO "*** The link will probably fail, sorry"
+                       else
+                         add="$dir/$old_library"
+                       fi
+                     elif test -n "$old_library"; then
+                       add="$dir/$old_library"
+                     fi
+                   fi
+               esac
+             elif test "$hardcode_minus_L" = no; then
+               case $host in
+               *-*-sunos*) add_shlibpath="$dir" ;;
+               esac
+               add_dir="-L$dir"
+               add="-l$name"
+             elif test "$hardcode_shlibpath_var" = no; then
+               add_shlibpath="$dir"
+               add="-l$name"
              else
-               newdeplibs="$newdeplibs $i"
+               lib_linked=no
              fi
-           done
-         else
-           # Error occured in the first compile.  Let's try to salvage the situation:
-           # Compile a seperate program for each library.
-           for i in $deplibs; do
-             name="`expr $i : '-l\(.*\)'`"
-            # If $name is empty we are operating on a -L argument.
-             if test -n "$name" && test "$name" != "0"; then
-               $rm conftest
-               $LTCC -o conftest conftest.c $i
-               # Did it work?
-               if test $? -eq 0 ; then
-                 ldd_output=`ldd conftest`
-                 libname=`eval \\$echo \"$libname_spec\"`
-                 deplib_matches=`eval \\$echo \"$library_names_spec\"`
-                 set dummy $deplib_matches
-                 deplib_match=$2
-                 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-                   newdeplibs="$newdeplibs $i"
-                 else
-                   droppeddeps=yes
-                   echo
-                   echo "*** Warning: This library needs some functionality provided by $i."
-                   echo "*** I have the capability to make that library automatically link in when"
-                   echo "*** you link to this library.  But I can only do this if you have a"
-                   echo "*** shared version of the library, which you do not appear to have."
-                 fi
-               else
-                 droppeddeps=yes
-                 echo
-                 echo "*** Warning!  Library $i is needed by this library but I was not able to"
-                 echo "***  make it link in!  You will probably need to install it or some"
-                 echo "*** library that it depends on before this library will be fully"
-                 echo "*** functional.  Installing it before continuing would be even better."
+             ;;
+           relink)
+             if test "$hardcode_direct" = yes &&
+                test "$hardcode_direct_absolute" = no; then
+               add="$dir/$linklib"
+             elif test "$hardcode_minus_L" = yes; then
+               add_dir="-L$dir"
+               # Try looking first in the location we're being installed to.
+               if test -n "$inst_prefix_dir"; then
+                 case $libdir in
+                   [\\/]*)
+                     add_dir="$add_dir -L$inst_prefix_dir$libdir"
+                     ;;
+                 esac
                fi
+               add="-l$name"
+             elif test "$hardcode_shlibpath_var" = yes; then
+               add_shlibpath="$dir"
+               add="-l$name"
              else
-               newdeplibs="$newdeplibs $i"
-             fi
-           done
-         fi
-         ;;
-       file_magic*)
-         set dummy $deplibs_check_method
-         file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-         for a_deplib in $deplibs; do
-           name="`expr $a_deplib : '-l\(.*\)'`"
-           # If $name is empty we are operating on a -L argument.
-           if test -n "$name" && test "$name" != "0"; then
-             libname=`eval \\$echo \"$libname_spec\"`
-             for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-                   potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-                   for potent_lib in $potential_libs; do
-                     # Follow soft links.
-                     if ls -lLd "$potent_lib" 2>/dev/null \
-                        | grep " -> " >/dev/null; then
-                       continue
-                     fi
-                     # The statement above tries to avoid entering an
-                     # endless loop below, in case of cyclic links.
-                     # We might still enter an endless loop, since a link
-                     # loop can be closed while we follow links,
-                     # but so what?
-                     potlib="$potent_lib"
-                     while test -h "$potlib" 2>/dev/null; do
-                       potliblink=`ls -ld $potlib | sed 's/.* -> //'`
-                       case $potliblink in
-                       [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-                       *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
-                       esac
-                     done
-                     if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
-                        | sed 10q \
-                        | egrep "$file_magic_regex" > /dev/null; then
-                       newdeplibs="$newdeplibs $a_deplib"
-                       a_deplib=""
-                       break 2
-                     fi
-                   done
-             done
-             if test -n "$a_deplib" ; then
-               droppeddeps=yes
-               echo
-               echo "*** Warning: This library needs some functionality provided by $a_deplib."
-               echo "*** I have the capability to make that library automatically link in when"
-               echo "*** you link to this library.  But I can only do this if you have a"
-               echo "*** shared version of the library, which you do not appear to have."
+               lib_linked=no
              fi
-           else
-             # Add a -L argument.
-             newdeplibs="$newdeplibs $a_deplib"
+             ;;
+           *) lib_linked=no ;;
+           esac
+
+           if test "$lib_linked" != yes; then
+             func_fatal_configuration "unsupported hardcode properties"
            fi
-         done # Gone through all deplibs.
-         ;;
-       match_pattern*)
-         set dummy $deplibs_check_method
-         match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-         for a_deplib in $deplibs; do
-           name="`expr $a_deplib : '-l\(.*\)'`"
-           # If $name is empty we are operating on a -L argument.
-           if test -n "$name" && test "$name" != "0"; then
-             libname=`eval \\$echo \"$libname_spec\"`
-             for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-               potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-               for potent_lib in $potential_libs; do
-                 if eval echo \"$potent_lib\" 2>/dev/null \
-                     | sed 10q \
-                     | egrep "$match_pattern_regex" > /dev/null; then
-                   newdeplibs="$newdeplibs $a_deplib"
-                   a_deplib=""
-                   break 2
-                 fi
-               done
-             done
-             if test -n "$a_deplib" ; then
-               droppeddeps=yes
-               echo
-               echo "*** Warning: This library needs some functionality provided by $a_deplib."
-               echo "*** I have the capability to make that library automatically link in when"
-               echo "*** you link to this library.  But I can only do this if you have a"
-               echo "*** shared version of the library, which you do not appear to have."
-             fi
-           else
-             # Add a -L argument.
-             newdeplibs="$newdeplibs $a_deplib"
+
+           if test -n "$add_shlibpath"; then
+             case :$compile_shlibpath: in
+             *":$add_shlibpath:"*) ;;
+             *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+             esac
            fi
-         done # Gone through all deplibs.
-         ;;
-       none | unknown | *)
-         newdeplibs=""
-         if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
-              -e 's/ -[LR][^ ]*//g' -e 's/[    ]//g' |
-            grep . >/dev/null; then
-           echo
-           if test "X$deplibs_check_method" = "Xnone"; then
-             echo "*** Warning: inter-library dependencies are not supported in this platform."
+           if test "$linkmode" = prog; then
+             test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+             test -n "$add" && compile_deplibs="$add $compile_deplibs"
            else
-             echo "*** Warning: inter-library dependencies are not known to be supported."
+             test -n "$add_dir" && deplibs="$add_dir $deplibs"
+             test -n "$add" && deplibs="$add $deplibs"
+             if test "$hardcode_direct" != yes &&
+                test "$hardcode_minus_L" != yes &&
+                test "$hardcode_shlibpath_var" = yes; then
+               case :$finalize_shlibpath: in
+               *":$libdir:"*) ;;
+               *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+               esac
+             fi
            fi
-           echo "*** All declared inter-library dependencies are being dropped."
-           droppeddeps=yes
          fi
-         ;;
-       esac
-       versuffix=$versuffix_save
-       major=$major_save
-       release=$release_save
-       libname=$libname_save
-       name=$name_save
-
-       case $host in
-       *-*-rhapsody* | *-*-darwin1.[012])
-         # On Rhapsody replace the C library is the System framework
-         newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
-         ;;
-       esac
 
-       if test "$droppeddeps" = yes; then
-         if test "$module" = yes; then
-           echo
-           echo "*** Warning: libtool could not satisfy all declared inter-library"
-           echo "*** dependencies of module $libname.  Therefore, libtool will create"
-           echo "*** a static module, that should work as long as the dlopening"
-           echo "*** application is linked with the -dlopen flag."
-           if test -z "$global_symbol_pipe"; then
-             echo
-             echo "*** However, this would only work if libtool was able to extract symbol"
-             echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-             echo "*** not find such a program.  So, this module is probably useless."
-             echo "*** \`nm' from GNU binutils and a full rebuild may help."
+         if test "$linkmode" = prog || test "$mode" = relink; then
+           add_shlibpath=
+           add_dir=
+           add=
+           # Finalize command for both is simple: just hardcode it.
+           if test "$hardcode_direct" = yes &&
+              test "$hardcode_direct_absolute" = no; then
+             add="$libdir/$linklib"
+           elif test "$hardcode_minus_L" = yes; then
+             add_dir="-L$libdir"
+             add="-l$name"
+           elif test "$hardcode_shlibpath_var" = yes; then
+             case :$finalize_shlibpath: in
+             *":$libdir:"*) ;;
+             *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+             esac
+             add="-l$name"
+           elif test "$hardcode_automatic" = yes; then
+             if test -n "$inst_prefix_dir" &&
+                test -f "$inst_prefix_dir$libdir/$linklib" ; then
+               add="$inst_prefix_dir$libdir/$linklib"
+             else
+               add="$libdir/$linklib"
+             fi
+           else
+             # We cannot seem to hardcode it, guess we'll fake it.
+             add_dir="-L$libdir"
+             # Try looking first in the location we're being installed to.
+             if test -n "$inst_prefix_dir"; then
+               case $libdir in
+                 [\\/]*)
+                   add_dir="$add_dir -L$inst_prefix_dir$libdir"
+                   ;;
+               esac
+             fi
+             add="-l$name"
            fi
-           if test "$build_old_libs" = no; then
-             oldlibs="$output_objdir/$libname.$libext"
-             build_libtool_libs=module
-             build_old_libs=yes
+
+           if test "$linkmode" = prog; then
+             test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+             test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
            else
-             build_libtool_libs=no
+             test -n "$add_dir" && deplibs="$add_dir $deplibs"
+             test -n "$add" && deplibs="$add $deplibs"
            fi
+         fi
+       elif test "$linkmode" = prog; then
+         # Here we assume that one of hardcode_direct or hardcode_minus_L
+         # is not unsupported.  This is valid on all known static and
+         # shared platforms.
+         if test "$hardcode_direct" != unsupported; then
+           test -n "$old_library" && linklib="$old_library"
+           compile_deplibs="$dir/$linklib $compile_deplibs"
+           finalize_deplibs="$dir/$linklib $finalize_deplibs"
          else
-           echo "*** The inter-library dependencies that have been dropped here will be"
-           echo "*** automatically added whenever a program is linked with this library"
-           echo "*** or is declared to -dlopen it."
-
-           if test $allow_undefined = no; then
-             echo
-             echo "*** Since this library must not contain undefined symbols,"
-             echo "*** because either the platform does not support them or"
-             echo "*** it was explicitly requested with -no-undefined,"
-             echo "*** libtool will only create a static version of it."
+           compile_deplibs="-l$name -L$dir $compile_deplibs"
+           finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+         fi
+       elif test "$build_libtool_libs" = yes; then
+         # Not a shared library
+         if test "$deplibs_check_method" != pass_all; then
+           # We're trying link a shared library against a static one
+           # but the system doesn't support it.
+
+           # Just print a warning and add the library to dependency_libs so
+           # that the program can be linked against the static library.
+           $ECHO
+           $ECHO "*** Warning: This system can not link to static lib archive $lib."
+           $ECHO "*** I have the capability to make that library automatically link in when"
+           $ECHO "*** you link to this library.  But I can only do this if you have a"
+           $ECHO "*** shared version of the library, which you do not appear to have."
+           if test "$module" = yes; then
+             $ECHO "*** But as you try to build a module library, libtool will still create "
+             $ECHO "*** a static module, that should work as long as the dlopening application"
+             $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
+             if test -z "$global_symbol_pipe"; then
+               $ECHO
+               $ECHO "*** However, this would only work if libtool was able to extract symbol"
+               $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
+               $ECHO "*** not find such a program.  So, this module is probably useless."
+               $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+             fi
              if test "$build_old_libs" = no; then
-               oldlibs="$output_objdir/$libname.$libext"
                build_libtool_libs=module
                build_old_libs=yes
              else
                build_libtool_libs=no
              fi
            fi
+         else
+           deplibs="$dir/$old_library $deplibs"
+           link_static=yes
          fi
-       fi
-       # Time to change all our "foo.framework" stuff back to "-framework foo"
-       case $host in
-           *-*-darwin*)
-               newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).framework% -framework \1%g'`
-               dependency_libs=`$echo "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).framework% -framework \1%g'`
-               ;;
-       esac
-       # Done checking deplibs!
-       # Done checking deplibs!
-       deplibs=$newdeplibs
-      fi
+       fi # link shared/static library?
 
-      # All the library-specific variables (install_libdir is set above).
-      library_names=
-      old_library=
-      dlname=
+       if test "$linkmode" = lib; then
+         if test -n "$dependency_libs" &&
+            { test "$hardcode_into_libs" != yes ||
+              test "$build_old_libs" = yes ||
+              test "$link_static" = yes; }; then
+           # Extract -R from dependency_libs
+           temp_deplibs=
+           for libdir in $dependency_libs; do
+             case $libdir in
+             -R*) func_stripname '-R' '' "$libdir"
+                  temp_xrpath=$func_stripname_result
+                  case " $xrpath " in
+                  *" $temp_xrpath "*) ;;
+                  *) xrpath="$xrpath $temp_xrpath";;
+                  esac;;
+             *) temp_deplibs="$temp_deplibs $libdir";;
+             esac
+           done
+           dependency_libs="$temp_deplibs"
+         fi
 
-      # Test again, we may have decided not to build it any more
-      if test "$build_libtool_libs" = yes; then
-       if test $hardcode_into_libs = yes; then
-         # Hardcode the library paths
-         hardcode_libdirs=
-         dep_rpath=
-         rpath="$finalize_rpath"
-         test "$mode" != relink && rpath="$compile_rpath$rpath"
-         for libdir in $rpath; do
-           if test -n "$hardcode_libdir_flag_spec"; then
-             if test -n "$hardcode_libdir_separator"; then
-               if test -z "$hardcode_libdirs"; then
-                 hardcode_libdirs="$libdir"
-               else
-                 # Just accumulate the unique libdirs.
-                 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-                 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-                   ;;
-                 *)
-                   hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-                   ;;
-                 esac
-               fi
-             else
-               eval flag=\"$hardcode_libdir_flag_spec\"
-               dep_rpath="$dep_rpath $flag"
-             fi
-           elif test -n "$runpath_var"; then
-             case "$perm_rpath " in
-             *" $libdir "*) ;;
-             *) perm_rpath="$perm_rpath $libdir" ;;
+         newlib_search_path="$newlib_search_path $absdir"
+         # Link against this library
+         test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+         # ... and its dependency_libs
+         tmp_libs=
+         for deplib in $dependency_libs; do
+           newdependency_libs="$deplib $newdependency_libs"
+           if $opt_duplicate_deps ; then
+             case "$tmp_libs " in
+             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
              esac
            fi
+           tmp_libs="$tmp_libs $deplib"
          done
-         # Substitute the hardcoded libdirs into the rpath.
-         if test -n "$hardcode_libdir_separator" &&
-            test -n "$hardcode_libdirs"; then
-           libdir="$hardcode_libdirs"
-           eval dep_rpath=\"$hardcode_libdir_flag_spec\"
-         fi
-         if test -n "$runpath_var" && test -n "$perm_rpath"; then
-           # We should set the runpath_var.
-           rpath=
-           for dir in $perm_rpath; do
-             rpath="$rpath$dir:"
-           done
-           eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
-         fi
-         test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
-       fi
 
-       shlibpath="$finalize_shlibpath"
-       test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
-       if test -n "$shlibpath"; then
-         eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
-       fi
+         if test "$link_all_deplibs" != no; then
+           # Add the search paths of all dependency libraries
+           for deplib in $dependency_libs; do
+             case $deplib in
+             -L*) path="$deplib" ;;
+             *.la)
+               func_dirname "$deplib" "" "."
+               dir="$func_dirname_result"
+               # We need an absolute path.
+               case $dir in
+               [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+               *)
+                 absdir=`cd "$dir" && pwd`
+                 if test -z "$absdir"; then
+                   func_warning "cannot determine absolute directory name of \`$dir'"
+                   absdir="$dir"
+                 fi
+                 ;;
+               esac
+               if $GREP "^installed=no" $deplib > /dev/null; then
+               case $host in
+               *-*-darwin*)
+                 depdepl=
+                 eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+                 if test -n "$deplibrary_names" ; then
+                   for tmp in $deplibrary_names ; do
+                     depdepl=$tmp
+                   done
+                   if test -f "$absdir/$objdir/$depdepl" ; then
+                     depdepl="$absdir/$objdir/$depdepl"
+                     darwin_install_name=`otool -L $depdepl | $SED -n -e '3q;2,2p' | $SED -e 's/(.*//'`
+                     darwin_install_name=`$ECHO $darwin_install_name`
+                      if test -z "$darwin_install_name"; then
+                          darwin_install_name=`otool64 -L $depdepl | $SED -n -e '3q;2,2p' | $SED -e 's/(.*//'`
+                          darwin_install_name=`$ECHO $darwin_install_name`
+                      fi
+                     compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
+                     linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
+                     path=
+                   fi
+                 fi
+                 ;;
+               *)
+                 path="-L$absdir/$objdir"
+                 ;;
+               esac
+               else
+                 eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+                 test -z "$libdir" && \
+                   func_fatal_error "\`$deplib' is not a valid libtool archive"
+                 test "$absdir" != "$libdir" && \
+                   func_warning "\`$deplib' seems to be moved"
 
-       # Get the real and link names of the library.
-       eval library_names=\"$library_names_spec\"
-       eval shared_ext=\"$shrext\"
-       set dummy $library_names
-       realname="$2"
-       shift; shift
+                 path="-L$absdir"
+               fi
+               ;;
+             esac
+             case " $deplibs " in
+             *" $path "*) ;;
+             *) deplibs="$path $deplibs" ;;
+             esac
+           done
+         fi # link_all_deplibs != no
+       fi # linkmode = lib
+      done # for deplib in $libs
+      dependency_libs="$newdependency_libs"
+      if test "$pass" = dlpreopen; then
+       # Link the dlpreopened libraries before other libraries
+       for deplib in $save_deplibs; do
+         deplibs="$deplib $deplibs"
+       done
+      fi
+      if test "$pass" != dlopen; then
+       if test "$pass" != conv; then
+         # Make sure lib_search_path contains only unique directories.
+         lib_search_path=
+         for dir in $newlib_search_path; do
+           case "$lib_search_path " in
+           *" $dir "*) ;;
+           *) lib_search_path="$lib_search_path $dir" ;;
+           esac
+         done
+         newlib_search_path=
+       fi
 
-       if test -n "$soname_spec"; then
-         eval soname=\"$soname_spec\"
+       if test "$linkmode,$pass" != "prog,link"; then
+         vars="deplibs"
        else
-         soname="$realname"
+         vars="compile_deplibs finalize_deplibs"
+       fi
+       for var in $vars dependency_libs; do
+         # Add libraries to $var in reverse order
+         eval tmp_libs=\"\$$var\"
+         new_libs=
+         for deplib in $tmp_libs; do
+           # FIXME: Pedantically, this is the right thing to do, so
+           #        that some nasty dependency loop isn't accidentally
+           #        broken:
+           #new_libs="$deplib $new_libs"
+           # Pragmatically, this seems to cause very few problems in
+           # practice:
+           case $deplib in
+           -L*) new_libs="$deplib $new_libs" ;;
+           -R*) ;;
+           *)
+             # And here is the reason: when a library appears more
+             # than once as an explicit dependence of a library, or
+             # is implicitly linked in more than once by the
+             # compiler, it is considered special, and multiple
+             # occurrences thereof are not removed.  Compare this
+             # with having the same library being listed as a
+             # dependency of multiple other libraries: in this case,
+             # we know (pedantically, we assume) the library does not
+             # need to be listed more than once, so we keep only the
+             # last copy.  This is not always right, but it is rare
+             # enough that we require users that really mean to play
+             # such unportable linking tricks to link the library
+             # using -Wl,-lname, so that libtool does not consider it
+             # for duplicate removal.
+             case " $specialdeplibs " in
+             *" $deplib "*) new_libs="$deplib $new_libs" ;;
+             *)
+               case " $new_libs " in
+               *" $deplib "*) ;;
+               *) new_libs="$deplib $new_libs" ;;
+               esac
+               ;;
+             esac
+             ;;
+           esac
+         done
+         tmp_libs=
+         for deplib in $new_libs; do
+           case $deplib in
+           -L*)
+             case " $tmp_libs " in
+             *" $deplib "*) ;;
+             *) tmp_libs="$tmp_libs $deplib" ;;
+             esac
+             ;;
+           *) tmp_libs="$tmp_libs $deplib" ;;
+           esac
+         done
+         eval $var=\"$tmp_libs\"
+       done # for var
+      fi
+      # Last step: remove runtime libs from dependency_libs
+      # (they stay in deplibs)
+      tmp_libs=
+      for i in $dependency_libs ; do
+       case " $predeps $postdeps $compiler_lib_search_path " in
+       *" $i "*)
+         i=""
+         ;;
+       esac
+       if test -n "$i" ; then
+         tmp_libs="$tmp_libs $i"
        fi
-       test -z "$dlname" && dlname=$soname
+      done
+      dependency_libs=$tmp_libs
+    done # for pass
+    if test "$linkmode" = prog; then
+      dlfiles="$newdlfiles"
+    fi
+    if test "$linkmode" = prog || test "$linkmode" = lib; then
+      dlprefiles="$newdlprefiles"
+    fi
 
-       lib="$output_objdir/$realname"
-       for link
-       do
-         linknames="$linknames $link"
-       done
+    case $linkmode in
+    oldlib)
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+       func_warning "\`-dlopen' is ignored for archives"
+      fi
 
-#      # Ensure that we have .o objects for linkers which dislike .lo
-#      # (e.g. aix) in case we are running --disable-static
-#      for obj in $libobjs; do
-#        xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
-#        if test "X$xdir" = "X$obj"; then
-#          xdir="."
-#        else
-#          xdir="$xdir"
-#        fi
-#        baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
-#        oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
-#        if test ! -f $xdir/$oldobj && test "$baseobj" != "$oldobj"; then
-#          $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
-#          $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
-#        fi
-#      done
+      test -n "$deplibs" && \
+       func_warning "\`-l' and \`-L' are ignored for archives"
 
-       # Use standard objects if they are pic
-       test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
 
-       # Prepare the list of exported symbols
-       if test -z "$export_symbols"; then
-         if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-           $show "generating symbol list for \`$libname.la'"
-           export_symbols="$output_objdir/$libname.exp"
-           $run $rm $export_symbols
-           eval cmds=\"$export_symbols_cmds\"
-           IFS="${IFS=         }"; save_ifs="$IFS"; IFS='~'
-           for cmd in $cmds; do
-             IFS="$save_ifs"
-             $show "$cmd"
-             $run eval "$cmd" || exit $?
-           done
-           IFS="$save_ifs"
-           if test -n "$export_symbols_regex"; then
-             $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
-             $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-             $show "$mv \"${export_symbols}T\" \"$export_symbols\""
-             $run eval '$mv "${export_symbols}T" "$export_symbols"'
-           fi
-         fi
-       fi
+      test -n "$rpath" && \
+       func_warning "\`-rpath' is ignored for archives"
 
-       if test -n "$export_symbols" && test -n "$include_expsyms"; then
-         $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
-       fi
+      test -n "$xrpath" && \
+       func_warning "\`-R' is ignored for archives"
 
-       if test -n "$convenience"; then
-         if test -n "$whole_archive_flag_spec"; then
-           save_libobjs=$libobjs
-           eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-         else
-           gentop="$output_objdir/${outputname}x"
-           $show "${rm}r $gentop"
-           $run ${rm}r "$gentop"
-           $show "$mkdir $gentop"
-           $run $mkdir "$gentop"
-           status=$?
-           if test $status -ne 0 && test ! -d "$gentop"; then
-             exit $status
-           fi
-           generated="$generated $gentop"
+      test -n "$vinfo" && \
+       func_warning "\`-version-info/-version-number' is ignored for archives"
 
-           for xlib in $convenience; do
-             # Extract the objects.
-             case $xlib in
-             [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-             *) xabs=`pwd`"/$xlib" ;;
-             esac
-             xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-             xdir="$gentop/$xlib"
-
-             $show "${rm}r $xdir"
-             $run ${rm}r "$xdir"
-             $show "$mkdir $xdir"
-             $run $mkdir "$xdir"
-             status=$?
-             if test $status -ne 0 && test ! -d "$xdir"; then
-               exit $status
-             fi
-             $show "(cd $xdir && $AR x $xabs)"
-             $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+      test -n "$release" && \
+       func_warning "\`-release' is ignored for archives"
 
-             libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-           done
-         fi
-       fi
+      test -n "$export_symbols$export_symbols_regex" && \
+       func_warning "\`-export-symbols' is ignored for archives"
 
-       if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
-         eval flag=\"$thread_safe_flag_spec\"
-         linker_flags="$linker_flags $flag"
-       fi
+      # Now set the variables for building old libraries.
+      build_libtool_libs=no
+      oldlibs="$output"
+      objs="$objs$old_deplibs"
+      ;;
+
+    lib)
+      # Make sure we only generate libraries of the form `libNAME.la'.
+      case $outputname in
+      lib*)
+       func_stripname 'lib' '.la' "$outputname"
+       name=$func_stripname_result
+       eval shared_ext=\"$shrext_cmds\"
+       eval libname=\"$libname_spec\"
+       ;;
+      *)
+       test "$module" = no && \
+         func_fatal_help "libtool library \`$output' must begin with \`lib'"
 
-       # Make a backup of the uninstalled library when relinking
-       if test "$mode" = relink; then
-         $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
+       if test "$need_lib_prefix" != no; then
+         # Add the "lib" prefix for modules if required
+         func_stripname '' '.la' "$outputname"
+         name=$func_stripname_result
+         eval shared_ext=\"$shrext_cmds\"
+         eval libname=\"$libname_spec\"
+       else
+         func_stripname '' '.la' "$outputname"
+         libname=$func_stripname_result
        fi
+       ;;
+      esac
 
-       # Do each of the archive commands.
-       if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-         eval test_cmds=\"$archive_expsym_cmds\"
-         cmds=$archive_expsym_cmds
+      if test -n "$objs"; then
+       if test "$deplibs_check_method" != pass_all; then
+         func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
        else
-         eval test_cmds=\"$archive_cmds\"
-         cmds=$archive_cmds
+         $ECHO
+         $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
+         $ECHO "*** objects $objs is not portable!"
+         libobjs="$libobjs $objs"
        fi
-        if len=`expr "X$test_cmds" : ".*"` &&
-           test $len -le $max_cmd_len; then
-          :
-        else
-         # The command line is too long to link in one step, link piecewise.
-
-         # Save the value of $output and $libobjs because we want to
-         # use them later.  If we have whole_archive_flag_spec, we
-         # want to use save_libobjs as it was before
-         # whole_archive_flag_spec was expanded, because we can't
-         # assume the linker understands whole_archive_flag_spec.
-         # This may have to be revisited, in case too many
-         # convenience libraries get linked in and end up exceeding
-         # the spec.
-         if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
-           save_libobjs=$libobjs
-         fi
-          save_output=$output
-         output_la=`$echo "X$output" | $Xsed -e "s,^.*/,,"`
+      fi
 
-         # Clear the reloadable object creation command queue and
-         # initialize k to one.
-          test_cmds=
-          concat_cmds=
-          objlist=
-          delfiles=
-          last_robj=
-          k=1
-
-         if test "$with_gnu_ld" = yes; then
-           output=${output_objdir}/${output_la}.lnkscript
-           $echo "creating GNU ld script: $output"
-           $echo 'INPUT (' > $output
-           for obj in $save_libobjs
-           do
-             $echo \""$obj"\" >> $output
-           done
-           $echo ')' >> $output
-           delfiles="$delfiles $output"
-         elif test "X$file_list_spec" != X; then
-           output=${output_objdir}/${output_la}.lnk
-           $echo "creating linker input file list: $output"
-           : > $output
-           for obj in $save_libobjs
-           do
-             $echo "$obj" >> $output
-           done
-           delfiles="$delfiles $output"
-           output=\"$file_list_spec$output\"
-         else
-           $echo "creating reloadable object files..."
-           output=$output_objdir/$save_output-${k}.$objext
-           # Loop over the list of objects to be linked.
-           for obj in $save_libobjs
-           do
-             eval test_cmds=\"$reload_cmds $objlist $last_robj\"
-             if test "X$objlist" = X ||
-                { len=`expr "X$test_cmds" : ".*"` &&
-                  test $len -le $max_cmd_len; }; then
-               objlist="$objlist $obj"
-             else
-               # The command $test_cmds is almost too long, add a
-               # command to the queue.
-               if test $k -eq 1 ; then
-                 # The first file doesn't have a previous command to add.
-                 eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
-               else
-                 # All subsequent reloadable object files will link in
-                 # the last one created.
-                 eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
-               fi
-               last_robj=$output_objdir/$save_output-${k}.$objext
-               k=`expr $k + 1`
-               output=$output_objdir/$save_output-${k}.$objext
-               objlist=$obj
-               len=1
-             fi
-           done
-           # Handle the remaining objects by creating one last
-           # reloadable object file.  All subsequent reloadable object
-           # files will link in the last one created.
-           test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-           eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
-
-           # Set up a command to remove the reloadale object files
-           # after they are used.
-           i=0
-           while test $i -lt $k
-           do
-             i=`expr $i + 1`
-             delfiles="$delfiles $output_objdir/$save_output-${i}.$objext"
-           done
+      test "$dlself" != no && \
+       func_warning "\`-dlopen self' is ignored for libtool libraries"
 
-           $echo "creating a temporary reloadable object file: $output"
+      set dummy $rpath
+      shift
+      test "$#" -gt 1 && \
+       func_warning "ignoring multiple \`-rpath's for a libtool library"
 
-           # Loop through the commands generated above and execute them.
-           IFS="${IFS=         }"; save_ifs="$IFS"; IFS='~'
-           for cmd in $concat_cmds; do
-             IFS="$save_ifs"
-             eval cmd=\"$cmd\"
-             $show "$cmd"
-             $run eval "$cmd" || exit $?
-           done
-           IFS="$save_ifs"
-         fi
+      install_libdir="$1"
 
-         libobjs=$output
-         # Restore the value of output.
-         output=$save_output
+      oldlibs=
+      if test -z "$rpath"; then
+       if test "$build_libtool_libs" = yes; then
+         # Building a libtool convenience library.
+         # Some compilers have problems with a `.al' extension so
+         # convenience libraries should have the same extension an
+         # archive normally would.
+         oldlibs="$output_objdir/$libname.$libext $oldlibs"
+         build_libtool_libs=convenience
+         build_old_libs=yes
+       fi
 
-         if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
-           eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-         fi
-         # Expand the library linking commands again to reset the
-         # value of $libobjs for piecewise linking.
+       test -n "$vinfo" && \
+         func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
 
-         # Do each of the archive commands.
-          if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-           cmds=$archive_expsym_cmds
-         else
-           cmds=$archive_cmds
-         fi
+       test -n "$release" && \
+         func_warning "\`-release' is ignored for convenience libraries"
+      else
 
-         # Append the command to remove the reloadable object files
-         # to the just-reset $cmds.
-         eval cmds=\"\$cmds~$rm $delfiles\"
-       fi
-       IFS="${IFS=     }"; save_ifs="$IFS"; IFS='~'
-       for cmd in $cmds; do
-         IFS="$save_ifs"
-         eval cmd=\"$cmd\"
-         $show "$cmd"
-         $run eval "$cmd" || exit $?
-       done
+       # Parse the version information argument.
+       save_ifs="$IFS"; IFS=':'
+       set dummy $vinfo 0 0 0
+       shift
        IFS="$save_ifs"
 
-       # Restore the uninstalled library and exit
-       if test "$mode" = relink; then
-         $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
-         exit 0
-       fi
+       test -n "$7" && \
+         func_fatal_help "too many parameters to \`-version-info'"
+
+       # convert absolute version numbers to libtool ages
+       # this retains compatibility with .la files and attempts
+       # to make the code below a bit more comprehensible
+
+       case $vinfo_number in
+       yes)
+         number_major="$1"
+         number_minor="$2"
+         number_revision="$3"
+         #
+         # There are really only two kinds -- those that
+         # use the current revision as the major version
+         # and those that subtract age and use age as
+         # a minor version.  But, then there is irix
+         # which has an extra 1 added just for fun
+         #
+         case $version_type in
+         darwin|linux|osf|windows|none)
+           current=`expr $number_major + $number_minor`
+           age="$number_minor"
+           revision="$number_revision"
+           ;;
+         freebsd-aout|freebsd-elf|sunos)
+           current="$number_major"
+           revision="$number_minor"
+           age="0"
+           ;;
+         irix|nonstopux)
+           current=`expr $number_major + $number_minor - 1`
+           age="$number_minor"
+           revision="$number_minor"
+           ;;
+         esac
+         ;;
+       no)
+         current="$1"
+         revision="$2"
+         age="$3"
+         ;;
+       esac
 
-       # Create links to the real library.
-       for linkname in $linknames; do
-         if test "$realname" != "$linkname"; then
-           $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
-           $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
-         fi
-       done
+       # Check that each of the things are valid numbers.
+       case $current in
+       0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+       *)
+         func_error "CURRENT \`$current' must be a nonnegative integer"
+         func_fatal_error "\`$vinfo' is not valid version information"
+         ;;
+       esac
 
-       # If -module or -export-dynamic was specified, set the dlname.
-       if test "$module" = yes || test "$export_dynamic" = yes; then
-         # On all known operating systems, these are identical.
-         dlname="$soname"
-       fi
-      fi
-      ;;
+       case $revision in
+       0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+       *)
+         func_error "REVISION \`$revision' must be a nonnegative integer"
+         func_fatal_error "\`$vinfo' is not valid version information"
+         ;;
+       esac
 
-    obj)
-      if test -n "$deplibs"; then
-       $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
-      fi
+       case $age in
+       0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+       *)
+         func_error "AGE \`$age' must be a nonnegative integer"
+         func_fatal_error "\`$vinfo' is not valid version information"
+         ;;
+       esac
 
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-       $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
-      fi
+       if test "$age" -gt "$current"; then
+         func_error "AGE \`$age' is greater than the current interface number \`$current'"
+         func_fatal_error "\`$vinfo' is not valid version information"
+       fi
 
-      if test -n "$rpath"; then
-       $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
-      fi
+       # Calculate the version variables.
+       major=
+       versuffix=
+       verstring=
+       case $version_type in
+       none) ;;
 
-      if test -n "$xrpath"; then
-       $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
-      fi
+       darwin)
+         # Like Linux, but with the current version available in
+         # verstring for coding it into the library header
+         major=.`expr $current - $age`
+         versuffix="$major.$age.$revision"
+         # Darwin ld doesn't like 0 for these options...
+         minor_current=`expr $current + 1`
+         verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+         ;;
 
-      if test -n "$vinfo"; then
-       $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
-      fi
+       freebsd-aout)
+         major=".$current"
+         versuffix=".$current.$revision";
+         ;;
 
-      if test -n "$release"; then
-       $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
-      fi
+       freebsd-elf)
+         major=".$current"
+         versuffix=".$current"
+         ;;
 
-      case $output in
-      *.lo)
-       if test -n "$objs$old_deplibs"; then
-         $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
-         exit 1
-       fi
-       libobj="$output"
-       obj=`$echo "X$output" | $Xsed -e "$lo2o"`
-       ;;
-      *)
-       libobj=
-       obj="$output"
-       ;;
-      esac
+       irix | nonstopux)
+         major=`expr $current - $age + 1`
 
-      # Delete the old objects.
-      $run $rm $obj $libobj
+         case $version_type in
+           nonstopux) verstring_prefix=nonstopux ;;
+           *)         verstring_prefix=sgi ;;
+         esac
+         verstring="$verstring_prefix$major.$revision"
 
-      # Objects from convenience libraries.  This assumes
-      # single-version convenience libraries.  Whenever we create
-      # different ones for PIC/non-PIC, this we'll have to duplicate
-      # the extraction.
-      reload_conv_objs=
-      gentop=
-      # reload_cmds runs $LD directly, so let us get rid of
-      # -Wl from whole_archive_flag_spec
-      wl=
+         # Add in all the interfaces that we are compatible with.
+         loop=$revision
+         while test "$loop" -ne 0; do
+           iface=`expr $revision - $loop`
+           loop=`expr $loop - 1`
+           verstring="$verstring_prefix$major.$iface:$verstring"
+         done
 
-      if test -n "$convenience"; then
-       if test -n "$whole_archive_flag_spec"; then
-         eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
-       else
-         gentop="$output_objdir/${obj}x"
-         $show "${rm}r $gentop"
-         $run ${rm}r "$gentop"
-         $show "$mkdir $gentop"
-         $run $mkdir "$gentop"
-         status=$?
-         if test $status -ne 0 && test ! -d "$gentop"; then
-           exit $status
-         fi
-         generated="$generated $gentop"
+         # Before this point, $major must not contain `.'.
+         major=.$major
+         versuffix="$major.$revision"
+         ;;
 
-         for xlib in $convenience; do
-           # Extract the objects.
-           case $xlib in
-           [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-           *) xabs=`pwd`"/$xlib" ;;
-           esac
-           xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-           xdir="$gentop/$xlib"
-
-           $show "${rm}r $xdir"
-           $run ${rm}r "$xdir"
-           $show "$mkdir $xdir"
-           $run $mkdir "$xdir"
-           status=$?
-           if test $status -ne 0 && test ! -d "$xdir"; then
-             exit $status
-           fi
-           $show "(cd $xdir && $AR x $xabs)"
-           $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+       linux)
+         major=.`expr $current - $age`
+         versuffix="$major.$age.$revision"
+         ;;
+
+       osf)
+         major=.`expr $current - $age`
+         versuffix=".$current.$age.$revision"
+         verstring="$current.$age.$revision"
 
-           reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+         # Add in all the interfaces that we are compatible with.
+         loop=$age
+         while test "$loop" -ne 0; do
+           iface=`expr $current - $loop`
+           loop=`expr $loop - 1`
+           verstring="$verstring:${iface}.0"
          done
-       fi
-      fi
 
-      # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+         # Make executables depend on our current version.
+         verstring="$verstring:${current}.0"
+         ;;
 
-      output="$obj"
-      eval cmds=\"$reload_cmds\"
-      IFS="${IFS=      }"; save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-       IFS="$save_ifs"
-       $show "$cmd"
-       $run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
+       qnx)
+         major=".$current"
+         versuffix=".$current"
+         ;;
 
-      # Exit if we aren't doing a library object file.
-      if test -z "$libobj"; then
-       if test -n "$gentop"; then
-         $show "${rm}r $gentop"
-         $run ${rm}r $gentop
-       fi
+       sunos)
+         major=".$current"
+         versuffix=".$current.$revision"
+         ;;
 
-       exit 0
-      fi
+       windows)
+         # Use '-' rather than '.', since we only want one
+         # extension on DOS 8.3 filesystems.
+         major=`expr $current - $age`
+         versuffix="-$major"
+         ;;
 
-      if test "$build_libtool_libs" != yes; then
-       if test -n "$gentop"; then
-         $show "${rm}r $gentop"
-         $run ${rm}r $gentop
+       *)
+         func_fatal_configuration "unknown library version type \`$version_type'"
+         ;;
+       esac
+
+       # Clear the version info if we defaulted, and they specified a release.
+       if test -z "$vinfo" && test -n "$release"; then
+         major=
+         case $version_type in
+         darwin)
+           # we can't check for "0.0" in archive_cmds due to quoting
+           # problems, so we reset it completely
+           verstring=
+           ;;
+         *)
+           verstring="0.0"
+           ;;
+         esac
+         if test "$need_version" = no; then
+           versuffix=
+         else
+           versuffix=".0.0"
+         fi
        fi
 
-       # Create an invalid libtool object if no PIC, so that we don't
-       # accidentally link it into a program.
-       # $show "echo timestamp > $libobj"
-       # $run eval "echo timestamp > $libobj" || exit $?
-       exit 0
-      fi
+       # Remove version info from name if versioning should be avoided
+       if test "$avoid_version" = yes && test "$need_version" = no; then
+         major=
+         versuffix=
+         verstring=""
+       fi
 
-      if test -n "$pic_flag" || test "$pic_mode" != default; then
-       # Only do commands if we really have different PIC objects.
-       reload_objs="$libobjs $reload_conv_objs"
-       output="$libobj"
-       eval cmds=\"$reload_cmds\"
-       IFS="${IFS=     }"; save_ifs="$IFS"; IFS='~'
-       for cmd in $cmds; do
-         IFS="$save_ifs"
-         $show "$cmd"
-         $run eval "$cmd" || exit $?
-       done
-       IFS="$save_ifs"
-#     else
-#      # Just create a symlink.
-#      $show $rm $libobj
-#      $run $rm $libobj
-#      xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
-#      if test "X$xdir" = "X$libobj"; then
-#        xdir="."
-#      else
-#        xdir="$xdir"
-#      fi
-#      baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
-#      oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
-#      $show "(cd $xdir && $LN_S $oldobj $baseobj)"
-#      $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
-      fi
+       # Check to see if the archive will have undefined symbols.
+       if test "$allow_undefined" = yes; then
+         if test "$allow_undefined_flag" = unsupported; then
+           func_warning "undefined symbols not allowed in $host shared libraries"
+           build_libtool_libs=no
+           build_old_libs=yes
+         fi
+       else
+         # Don't allow undefined symbols.
+         allow_undefined_flag="$no_undefined_flag"
+       fi
 
-      if test -n "$gentop"; then
-       $show "${rm}r $gentop"
-       $run ${rm}r $gentop
       fi
 
-      exit 0
-      ;;
+      func_generate_dlsyms "$libname" "$libname" "yes"
+      libobjs="$libobjs $symfileobj"
+      test "X$libobjs" = "X " && libobjs=
 
-    prog)
-      case $host in
-       *cygwin*) output=`echo $output | sed -e 's,.exe$,,;s,$,.exe,'` ;;
-      esac
-      if test -n "$vinfo"; then
-       $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
+      if test "$mode" != relink; then
+       # Remove our outputs, but don't remove object files since they
+       # may have been created when compiling PIC objects.
+       removelist=
+       tempremovelist=`$ECHO "$output_objdir/*"`
+       for p in $tempremovelist; do
+         case $p in
+           *.$objext)
+              ;;
+           $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+              if test "X$precious_files_regex" != "X"; then
+                if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+                then
+                  continue
+                fi
+              fi
+              removelist="$removelist $p"
+              ;;
+           *) ;;
+         esac
+       done
+       test -n "$removelist" && \
+         func_show_eval "${RM}r \$removelist"
       fi
 
-      if test -n "$release"; then
-       $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
-      fi
+      # Now set the variables for building old libraries.
+      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+       oldlibs="$oldlibs $output_objdir/$libname.$libext"
 
-      if test "$preload" = yes; then
-       if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
-          test "$dlopen_self_static" = unknown; then
-         $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
-       fi
+       # Transform .lo files to .o files.
+       oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
       fi
 
-      case $host in
-      *-*-rhapsody* | *-*-darwin1.[012])
-       # On Rhapsody replace the C library is the System framework
-       compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-       finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-       ;;
-      esac
-
-      case $host in
-      *-*-darwin*)
-      # Don't allow lazy linking, it breaks C++ global constructors
-       if test "$tagname" = CXX ; then
-          compile_command="$compile_command ${wl}-bind_at_load"
-          finalize_command="$finalize_command ${wl}-bind_at_load"
-       fi
-      # Time to change all our "foo.framework" stuff back to "-framework foo"
-       compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).framework% -framework \1%g'`
-       finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).framework% -framework \1%g'`
-       ;;
-      esac
-
-      compile_command="$compile_command $compile_deplibs"
-      finalize_command="$finalize_command $finalize_deplibs"
+      # Eliminate all temporary directories.
+      #for path in $notinst_path; do
+      #        lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
+      #        deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
+      #        dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
+      #done
 
-      if test -n "$rpath$xrpath"; then
+      if test -n "$xrpath"; then
        # If the user specified any rpath flags, then add them.
-       for libdir in $rpath $xrpath; do
-         # This is the magic to use -rpath.
+       temp_xrpath=
+       for libdir in $xrpath; do
+         temp_xrpath="$temp_xrpath -R$libdir"
          case "$finalize_rpath " in
          *" $libdir "*) ;;
          *) finalize_rpath="$finalize_rpath $libdir" ;;
          esac
        done
+       if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+         dependency_libs="$temp_xrpath $dependency_libs"
+       fi
       fi
 
-      # Now hardcode the library paths
-      rpath=
-      hardcode_libdirs=
-      for libdir in $compile_rpath; do
-       if test -n "$hardcode_libdir_flag_spec"; then
-         if test -n "$hardcode_libdir_separator"; then
-           if test -z "$hardcode_libdirs"; then
-             hardcode_libdirs="$libdir"
+      # Make sure dlfiles contains only unique files that won't be dlpreopened
+      old_dlfiles="$dlfiles"
+      dlfiles=
+      for lib in $old_dlfiles; do
+       case " $dlprefiles $dlfiles " in
+       *" $lib "*) ;;
+       *) dlfiles="$dlfiles $lib" ;;
+       esac
+      done
+
+      # Make sure dlprefiles contains only unique files
+      old_dlprefiles="$dlprefiles"
+      dlprefiles=
+      for lib in $old_dlprefiles; do
+       case "$dlprefiles " in
+       *" $lib "*) ;;
+       *) dlprefiles="$dlprefiles $lib" ;;
+       esac
+      done
+
+      if test "$build_libtool_libs" = yes; then
+       if test -n "$rpath"; then
+         case $host in
+         *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
+           # these systems don't actually have a c library (as such)!
+           ;;
+         *-*-rhapsody* | *-*-darwin1.[012])
+           # Rhapsody C library is in the System framework
+           deplibs="$deplibs System.ltframework"
+           ;;
+         *-*-netbsd*)
+           # Don't link with libc until the a.out ld.so is fixed.
+           ;;
+         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+           # Do not include libc due to us having libc/libc_r.
+           ;;
+         *-*-sco3.2v5* | *-*-sco5v6*)
+           # Causes problems with __ctype
+           ;;
+         *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+           # Compiler inserts libc in the correct place for threads to work
+           ;;
+         *)
+           # Add libc to deplibs on all other systems if necessary.
+           if test "$build_libtool_need_lc" = "yes"; then
+             deplibs="$deplibs -lc"
+           fi
+           ;;
+         esac
+       fi
+
+       # Transform deplibs into only deplibs that can be linked in shared.
+       name_save=$name
+       libname_save=$libname
+       release_save=$release
+       versuffix_save=$versuffix
+       major_save=$major
+       # I'm not sure if I'm treating the release correctly.  I think
+       # release should show up in the -l (ie -lgmp5) so we don't want to
+       # add it in twice.  Is that correct?
+       release=""
+       versuffix=""
+       major=""
+       newdeplibs=
+       droppeddeps=no
+       case $deplibs_check_method in
+       pass_all)
+         # Don't check for shared/static.  Everything works.
+         # This might be a little naive.  We might want to check
+         # whether the library exists or not.  But this is on
+         # osf3 & osf4 and I'm not really sure... Just
+         # implementing what was already the behavior.
+         newdeplibs=$deplibs
+         ;;
+       test_compile)
+         # This code stresses the "libraries are programs" paradigm to its
+         # limits. Maybe even breaks it.  We compile a program, linking it
+         # against the deplibs as a proxy for the library.  Then we can check
+         # whether they linked in statically or dynamically with ldd.
+         $opt_dry_run || $RM conftest.c
+         cat > conftest.c <<EOF
+         int main() { return 0; }
+EOF
+         $opt_dry_run || $RM conftest
+         if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+           ldd_output=`ldd conftest`
+           for i in $deplibs; do
+             name=`expr $i : '-l\(.*\)'`
+             # If $name is empty we are operating on a -L argument.
+             if test "$name" != "" && test "$name" != "0"; then
+               if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+                 case " $predeps $postdeps " in
+                 *" $i "*)
+                   newdeplibs="$newdeplibs $i"
+                   i=""
+                   ;;
+                 esac
+               fi
+               if test -n "$i" ; then
+                 libname=`eval "\\$ECHO \"$libname_spec\""`
+                 deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+                 set dummy $deplib_matches; shift
+                 deplib_match=$1
+                 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+                   newdeplibs="$newdeplibs $i"
+                 else
+                   droppeddeps=yes
+                   $ECHO
+                   $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+                   $ECHO "*** I have the capability to make that library automatically link in when"
+                   $ECHO "*** you link to this library.  But I can only do this if you have a"
+                   $ECHO "*** shared version of the library, which I believe you do not have"
+                   $ECHO "*** because a test_compile did reveal that the linker did not use it for"
+                   $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
+                 fi
+               fi
+             else
+               newdeplibs="$newdeplibs $i"
+             fi
+           done
+         else
+           # Error occurred in the first compile.  Let's try to salvage
+           # the situation: Compile a separate program for each library.
+           for i in $deplibs; do
+             name=`expr $i : '-l\(.*\)'`
+             # If $name is empty we are operating on a -L argument.
+             if test "$name" != "" && test "$name" != "0"; then
+               $opt_dry_run || $RM conftest
+               if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+                 ldd_output=`ldd conftest`
+                 if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+                   case " $predeps $postdeps " in
+                   *" $i "*)
+                     newdeplibs="$newdeplibs $i"
+                     i=""
+                     ;;
+                   esac
+                 fi
+                 if test -n "$i" ; then
+                   libname=`eval "\\$ECHO \"$libname_spec\""`
+                   deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+                   set dummy $deplib_matches; shift
+                   deplib_match=$1
+                   if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+                     newdeplibs="$newdeplibs $i"
+                   else
+                     droppeddeps=yes
+                     $ECHO
+                     $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+                     $ECHO "*** I have the capability to make that library automatically link in when"
+                     $ECHO "*** you link to this library.  But I can only do this if you have a"
+                     $ECHO "*** shared version of the library, which you do not appear to have"
+                     $ECHO "*** because a test_compile did reveal that the linker did not use this one"
+                     $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
+                   fi
+                 fi
+               else
+                 droppeddeps=yes
+                 $ECHO
+                 $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
+                 $ECHO "*** make it link in!  You will probably need to install it or some"
+                 $ECHO "*** library that it depends on before this library will be fully"
+                 $ECHO "*** functional.  Installing it before continuing would be even better."
+               fi
+             else
+               newdeplibs="$newdeplibs $i"
+             fi
+           done
+         fi
+         ;;
+       file_magic*)
+         set dummy $deplibs_check_method; shift
+         file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+         for a_deplib in $deplibs; do
+           name=`expr $a_deplib : '-l\(.*\)'`
+           # If $name is empty we are operating on a -L argument.
+           if test "$name" != "" && test  "$name" != "0"; then
+             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+               case " $predeps $postdeps " in
+               *" $a_deplib "*)
+                 newdeplibs="$newdeplibs $a_deplib"
+                 a_deplib=""
+                 ;;
+               esac
+             fi
+             if test -n "$a_deplib" ; then
+               libname=`eval "\\$ECHO \"$libname_spec\""`
+               for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+                 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+                 for potent_lib in $potential_libs; do
+                     # Follow soft links.
+                     if ls -lLd "$potent_lib" 2>/dev/null |
+                        $GREP " -> " >/dev/null; then
+                       continue
+                     fi
+                     # The statement above tries to avoid entering an
+                     # endless loop below, in case of cyclic links.
+                     # We might still enter an endless loop, since a link
+                     # loop can be closed while we follow links,
+                     # but so what?
+                     potlib="$potent_lib"
+                     while test -h "$potlib" 2>/dev/null; do
+                       potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+                       case $potliblink in
+                       [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+                       *) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+                       esac
+                     done
+                     if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
+                        $SED -e 10q |
+                        $EGREP "$file_magic_regex" > /dev/null; then
+                       newdeplibs="$newdeplibs $a_deplib"
+                       a_deplib=""
+                       break 2
+                     fi
+                 done
+               done
+             fi
+             if test -n "$a_deplib" ; then
+               droppeddeps=yes
+               $ECHO
+               $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+               $ECHO "*** I have the capability to make that library automatically link in when"
+               $ECHO "*** you link to this library.  But I can only do this if you have a"
+               $ECHO "*** shared version of the library, which you do not appear to have"
+               $ECHO "*** because I did check the linker path looking for a file starting"
+               if test -z "$potlib" ; then
+                 $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
+               else
+                 $ECHO "*** with $libname and none of the candidates passed a file format test"
+                 $ECHO "*** using a file magic. Last file checked: $potlib"
+               fi
+             fi
            else
-             # Just accumulate the unique libdirs.
-             case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-             *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-               ;;
-             *)
-               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-               ;;
-             esac
+             # Add a -L argument.
+             newdeplibs="$newdeplibs $a_deplib"
+           fi
+         done # Gone through all deplibs.
+         ;;
+       match_pattern*)
+         set dummy $deplibs_check_method; shift
+         match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+         for a_deplib in $deplibs; do
+           name=`expr $a_deplib : '-l\(.*\)'`
+           # If $name is empty we are operating on a -L argument.
+           if test -n "$name" && test "$name" != "0"; then
+             if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+               case " $predeps $postdeps " in
+               *" $a_deplib "*)
+                 newdeplibs="$newdeplibs $a_deplib"
+                 a_deplib=""
+                 ;;
+               esac
+             fi
+             if test -n "$a_deplib" ; then
+               libname=`eval "\\$ECHO \"$libname_spec\""`
+               for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+                 potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+                 for potent_lib in $potential_libs; do
+                   potlib="$potent_lib" # see symlink-check above in file_magic test
+                   if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
+                      $EGREP "$match_pattern_regex" > /dev/null; then
+                     newdeplibs="$newdeplibs $a_deplib"
+                     a_deplib=""
+                     break 2
+                   fi
+                 done
+               done
+             fi
+             if test -n "$a_deplib" ; then
+               droppeddeps=yes
+               $ECHO
+               $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+               $ECHO "*** I have the capability to make that library automatically link in when"
+               $ECHO "*** you link to this library.  But I can only do this if you have a"
+               $ECHO "*** shared version of the library, which you do not appear to have"
+               $ECHO "*** because I did check the linker path looking for a file starting"
+               if test -z "$potlib" ; then
+                 $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
+               else
+                 $ECHO "*** with $libname and none of the candidates passed a file format test"
+                 $ECHO "*** using a regex pattern. Last file checked: $potlib"
+               fi
+             fi
+           else
+             # Add a -L argument.
+             newdeplibs="$newdeplibs $a_deplib"
+           fi
+         done # Gone through all deplibs.
+         ;;
+       none | unknown | *)
+         newdeplibs=""
+         tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
+             -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
+         if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+           for i in $predeps $postdeps ; do
+             # can't use Xsed below, because $i might contain '/'
+             tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
+           done
+         fi
+         if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[     ]//g' |
+            $GREP . >/dev/null; then
+           $ECHO
+           if test "X$deplibs_check_method" = "Xnone"; then
+             $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
+           else
+             $ECHO "*** Warning: inter-library dependencies are not known to be supported."
            fi
-         else
-           eval flag=\"$hardcode_libdir_flag_spec\"
-           rpath="$rpath $flag"
+           $ECHO "*** All declared inter-library dependencies are being dropped."
+           droppeddeps=yes
          fi
-       elif test -n "$runpath_var"; then
-         case "$perm_rpath " in
-         *" $libdir "*) ;;
-         *) perm_rpath="$perm_rpath $libdir" ;;
-         esac
-       fi
+         ;;
+       esac
+       versuffix=$versuffix_save
+       major=$major_save
+       release=$release_save
+       libname=$libname_save
+       name=$name_save
+
        case $host in
-       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-         case :$dllsearchpath: in
-         *":$libdir:"*) ;;
-         *) dllsearchpath="$dllsearchpath:$libdir";;
-         esac
+       *-*-rhapsody* | *-*-darwin1.[012])
+         # On Rhapsody replace the C library with the System framework
+         newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
          ;;
        esac
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-        test -n "$hardcode_libdirs"; then
-       libdir="$hardcode_libdirs"
-       eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      compile_rpath="$rpath"
 
-      rpath=
-      hardcode_libdirs=
-      for libdir in $finalize_rpath; do
-       if test -n "$hardcode_libdir_flag_spec"; then
-         if test -n "$hardcode_libdir_separator"; then
-           if test -z "$hardcode_libdirs"; then
-             hardcode_libdirs="$libdir"
+       if test "$droppeddeps" = yes; then
+         if test "$module" = yes; then
+           $ECHO
+           $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
+           $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
+           $ECHO "*** a static module, that should work as long as the dlopening"
+           $ECHO "*** application is linked with the -dlopen flag."
+           if test -z "$global_symbol_pipe"; then
+             $ECHO
+             $ECHO "*** However, this would only work if libtool was able to extract symbol"
+             $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
+             $ECHO "*** not find such a program.  So, this module is probably useless."
+             $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
+           fi
+           if test "$build_old_libs" = no; then
+             oldlibs="$output_objdir/$libname.$libext"
+             build_libtool_libs=module
+             build_old_libs=yes
            else
-             # Just accumulate the unique libdirs.
-             case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-             *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-               ;;
-             *)
-               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-               ;;
-             esac
+             build_libtool_libs=no
            fi
          else
-           eval flag=\"$hardcode_libdir_flag_spec\"
-           rpath="$rpath $flag"
+           $ECHO "*** The inter-library dependencies that have been dropped here will be"
+           $ECHO "*** automatically added whenever a program is linked with this library"
+           $ECHO "*** or is declared to -dlopen it."
+
+           if test "$allow_undefined" = no; then
+             $ECHO
+             $ECHO "*** Since this library must not contain undefined symbols,"
+             $ECHO "*** because either the platform does not support them or"
+             $ECHO "*** it was explicitly requested with -no-undefined,"
+             $ECHO "*** libtool will only create a static version of it."
+             if test "$build_old_libs" = no; then
+               oldlibs="$output_objdir/$libname.$libext"
+               build_libtool_libs=module
+               build_old_libs=yes
+             else
+               build_libtool_libs=no
+             fi
+           fi
          fi
-       elif test -n "$runpath_var"; then
-         case "$finalize_perm_rpath " in
-         *" $libdir "*) ;;
-         *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
-         esac
-       fi
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-        test -n "$hardcode_libdirs"; then
-       libdir="$hardcode_libdirs"
-       eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      finalize_rpath="$rpath"
-
-      dlsyms=
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-       if test -n "$NM" && test -n "$global_symbol_pipe"; then
-         dlsyms="${outputname}S.c"
-       else
-         $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
        fi
+       # Done checking deplibs!
+       deplibs=$newdeplibs
       fi
+      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+      case $host in
+       *-*-darwin*)
+         newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+         new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+         deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+         ;;
+      esac
 
-      if test -n "$dlsyms"; then
-       case $dlsyms in
-       "") ;;
-       *.c)
-         # Discover the nlist of each of the dlfiles.
-         nlist="$output_objdir/${outputname}.nm"
-
-         $show "$rm $nlist ${nlist}S ${nlist}T"
-         $run $rm "$nlist" "${nlist}S" "${nlist}T"
-
-         # Parse the name list into a source file.
-         $show "creating $output_objdir/$dlsyms"
-
-         test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
-/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
-/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-/* Prevent the only kind of declaration conflicts we can make. */
-#define lt_preloaded_symbols some_other_symbol
-
-/* External symbol declarations for the compiler. */\
-"
-
-         if test "$dlself" = yes; then
-           $show "generating symbol list for \`$output'"
-
-           test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
-
-           # Add our own program objects to the symbol list.
-           progfiles="$objs$old_deplibs"
-           for arg in $progfiles; do
-             $show "extracting global C symbols from \`$arg'"
-             $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-           done
-
-           if test -n "$exclude_expsyms"; then
-             $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
-             $run eval '$mv "$nlist"T "$nlist"'
-           fi
-
-           if test -n "$export_symbols_regex"; then
-             $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
-             $run eval '$mv "$nlist"T "$nlist"'
-           fi
-
-           # Prepare the list of exported symbols
-           if test -z "$export_symbols"; then
-             export_symbols="$output_objdir/$output.exp"
-             $run $rm $export_symbols
-             $run eval "sed -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
-           else
-             $run eval "sed -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
-             $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
-             $run eval 'mv "$nlist"T "$nlist"'
-           fi
-         fi
-
-         for arg in $dlprefiles; do
-           $show "extracting global C symbols from \`$arg'"
-           name=`echo "$arg" | sed -e 's%^.*/%%'`
-           $run eval 'echo ": $name " >> "$nlist"'
-           $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-         done
-
-         if test -z "$run"; then
-           # Make sure we have at least an empty file.
-           test -f "$nlist" || : > "$nlist"
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+       case " $new_libs " in
+       *" -L$path/$objdir "*) ;;
+       *)
+         case " $deplibs " in
+         *" -L$path/$objdir "*)
+           new_libs="$new_libs -L$path/$objdir" ;;
+         esac
+         ;;
+       esac
+      done
+      for deplib in $deplibs; do
+       case $deplib in
+       -L*)
+         case " $new_libs " in
+         *" $deplib "*) ;;
+         *) new_libs="$new_libs $deplib" ;;
+         esac
+         ;;
+       *) new_libs="$new_libs $deplib" ;;
+       esac
+      done
+      deplibs="$new_libs"
 
-           if test -n "$exclude_expsyms"; then
-             egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
-             $mv "$nlist"T "$nlist"
-           fi
+      # All the library-specific variables (install_libdir is set above).
+      library_names=
+      old_library=
+      dlname=
 
-           # Try sorting and uniquifying the output.
-           if grep -v "^: " < "$nlist" |
-               if sort -k 3 </dev/null >/dev/null 2>&1; then
-                 sort -k 3
+      # Test again, we may have decided not to build it any more
+      if test "$build_libtool_libs" = yes; then
+       if test "$hardcode_into_libs" = yes; then
+         # Hardcode the library paths
+         hardcode_libdirs=
+         dep_rpath=
+         rpath="$finalize_rpath"
+         test "$mode" != relink && rpath="$compile_rpath$rpath"
+         for libdir in $rpath; do
+           if test -n "$hardcode_libdir_flag_spec"; then
+             if test -n "$hardcode_libdir_separator"; then
+               if test -z "$hardcode_libdirs"; then
+                 hardcode_libdirs="$libdir"
                else
-                 sort +2
-               fi |
-               uniq > "$nlist"S; then
-             :
-           else
-             grep -v "^: " < "$nlist" > "$nlist"S
+                 # Just accumulate the unique libdirs.
+                 case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+                 *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+                   ;;
+                 *)
+                   hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+                   ;;
+                 esac
+               fi
+             else
+               eval flag=\"$hardcode_libdir_flag_spec\"
+               dep_rpath="$dep_rpath $flag"
+             fi
+           elif test -n "$runpath_var"; then
+             case "$perm_rpath " in
+             *" $libdir "*) ;;
+             *) perm_rpath="$perm_rpath $libdir" ;;
+             esac
            fi
-
-           if test -f "$nlist"S; then
-             eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
+         done
+         # Substitute the hardcoded libdirs into the rpath.
+         if test -n "$hardcode_libdir_separator" &&
+            test -n "$hardcode_libdirs"; then
+           libdir="$hardcode_libdirs"
+           if test -n "$hardcode_libdir_flag_spec_ld"; then
+             eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
            else
-             echo '/* NONE */' >> "$output_objdir/$dlsyms"
+             eval dep_rpath=\"$hardcode_libdir_flag_spec\"
            fi
+         fi
+         if test -n "$runpath_var" && test -n "$perm_rpath"; then
+           # We should set the runpath_var.
+           rpath=
+           for dir in $perm_rpath; do
+             rpath="$rpath$dir:"
+           done
+           eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+         fi
+         test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+       fi
 
-           $echo >> "$output_objdir/$dlsyms" "\
-
-#undef lt_preloaded_symbols
+       shlibpath="$finalize_shlibpath"
+       test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+       if test -n "$shlibpath"; then
+         eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+       fi
 
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
+       # Get the real and link names of the library.
+       eval shared_ext=\"$shrext_cmds\"
+       eval library_names=\"$library_names_spec\"
+       set dummy $library_names
+       shift
+       realname="$1"
+       shift
 
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[] =
-{\
-"
+       if test -n "$soname_spec"; then
+         eval soname=\"$soname_spec\"
+       else
+         soname="$realname"
+       fi
+       if test -z "$dlname"; then
+         dlname=$soname
+       fi
 
-           sed -n -e 's/^: \([^ ]*\) $/  {\"\1\", (lt_ptr_t) 0},/p' \
-               -e 's/^. \([^ ]*\) \([^ ]*\)$/  {"\2", (lt_ptr_t) \&\2},/p' \
-                 < "$nlist" >> "$output_objdir/$dlsyms"
+       lib="$output_objdir/$realname"
+       linknames=
+       for link
+       do
+         linknames="$linknames $link"
+       done
 
-           $echo >> "$output_objdir/$dlsyms" "\
-  {0, (lt_ptr_t) 0}
-};
+       # Use standard objects if they are pic
+       test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+       test "X$libobjs" = "X " && libobjs=
 
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt_preloaded_symbols;
-}
-#endif
+       delfiles=
+       if test -n "$export_symbols" && test -n "$include_expsyms"; then
+         $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
+         export_symbols="$output_objdir/$libname.uexp"
+         delfiles="$delfiles $export_symbols"
+       fi
 
-#ifdef __cplusplus
-}
-#endif\
-"
+       orig_export_symbols=
+       case $host_os in
+       cygwin* | mingw*)
+         if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
+           # exporting using user supplied symfile
+           if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
+             # and it's NOT already a .def file. Must figure out
+             # which of the given symbols are data symbols and tag
+             # them as such. So, trigger use of export_symbols_cmds.
+             # export_symbols gets reassigned inside the "prepare
+             # the list of exported symbols" if statement, so the
+             # include_expsyms logic still works.
+             orig_export_symbols="$export_symbols"
+             export_symbols=
+             always_export_symbols=yes
+           fi
          fi
-
-         pic_flag_for_symtable=
-         case $host in
-         # compiling the symbol table file with pic_flag works around
-         # a FreeBSD bug that causes programs to crash when -lm is
-         # linked before any other PIC object.  But we must not use
-         # pic_flag when linking with -static.  The problem exists in
-         # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
-         *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
-           case "$compile_command " in
-           *" -static "*) ;;
-           *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
-           esac;;
-         *-*-hpux*)
-           case "$compile_command " in
-           *" -static "*) ;;
-           *) pic_flag_for_symtable=" $pic_flag";;
-           esac
-         esac
-
-         # Now compile the dynamic symbol file.
-         $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
-         $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
-
-         # Clean up the generated files.
-         $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
-         $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
-
-         # Transform the symbol file into the correct name.
-         compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-         finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-         ;;
-       *)
-         $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
-         exit 1
          ;;
        esac
-      else
-       # We keep going just in case the user didn't refer to
-       # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
-       # really was required.
-
-       # Nullify the symbol file.
-       compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-       finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
-      fi
-
-      if test $need_relink = no || test "$build_libtool_libs" != yes; then
-       # Replace the output file specification.
-       compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-       link_command="$compile_command$compile_rpath"
 
-       # We have no uninstalled library dependencies, so finalize right now.
-       $show "$link_command"
-       $run eval "$link_command"
-       status=$?
+       # Prepare the list of exported symbols
+       if test -z "$export_symbols"; then
+         if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+           func_echo "generating symbol list for \`$libname.la'"
+           export_symbols="$output_objdir/$libname.exp"
+           $opt_dry_run || $RM $export_symbols
+           cmds=$export_symbols_cmds
+           save_ifs="$IFS"; IFS='~'
+           for cmd in $cmds; do
+             IFS="$save_ifs"
+             eval cmd=\"$cmd\"
+             if len=`expr "X$cmd" : ".*"` &&
+              test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+               func_show_eval "$cmd" 'exit $?'
+               skipped_export=false
+             else
+               # The command line is too long to execute in one step.
+               func_echo "using reloadable object file for export list..."
+               skipped_export=:
+               # Break out early, otherwise skipped_export may be
+               # set to false by a later but shorter cmd.
+               break
+             fi
+           done
+           IFS="$save_ifs"
+           if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
+             func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+             func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+           fi
+         fi
+       fi
 
-       # Delete the generated files.
-       if test -n "$dlsyms"; then
-         $show "$rm $output_objdir/${outputname}S.${objext}"
-         $run $rm "$output_objdir/${outputname}S.${objext}"
+       if test -n "$export_symbols" && test -n "$include_expsyms"; then
+         tmp_export_symbols="$export_symbols"
+         test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+         $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
        fi
 
-       exit $status
-      fi
+       if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
+         # The given exports_symbols file has to be filtered, so filter it.
+         func_echo "filter symbol list for \`$libname.la' to tag DATA exports"
+         # FIXME: $output_objdir/$libname.filter potentially contains lots of
+         # 's' commands which not all seds can handle. GNU sed should be fine
+         # though. Also, the filter scales superlinearly with the number of
+         # global variables. join(1) would be nice here, but unfortunately
+         # isn't a blessed tool.
+         $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+         delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+         export_symbols=$output_objdir/$libname.def
+         $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+       fi
 
-      if test -n "$shlibpath_var"; then
-       # We should set the shlibpath_var
-       rpath=
-       for dir in $temp_rpath; do
-         case $dir in
-         [\\/]* | [A-Za-z]:[\\/]*)
-           # Absolute path.
-           rpath="$rpath$dir:"
-           ;;
+       tmp_deplibs=
+       for test_deplib in $deplibs; do
+         case " $convenience " in
+         *" $test_deplib "*) ;;
          *)
-           # Relative path: add a thisdir entry.
-           rpath="$rpath\$thisdir/$dir:"
+           tmp_deplibs="$tmp_deplibs $test_deplib"
            ;;
          esac
        done
-       temp_rpath="$rpath"
-      fi
+       deplibs="$tmp_deplibs"
 
-      if test -n "$compile_shlibpath$finalize_shlibpath"; then
-       compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
-      fi
-      if test -n "$finalize_shlibpath"; then
-       finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
-      fi
+       if test -n "$convenience"; then
+         if test -n "$whole_archive_flag_spec" &&
+           test "$compiler_needs_object" = yes &&
+           test -z "$libobjs"; then
+           # extract the archives, so we have objects to list.
+           # TODO: could optimize this to just extract one archive.
+           whole_archive_flag_spec=
+         fi
+         if test -n "$whole_archive_flag_spec"; then
+           save_libobjs=$libobjs
+           eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+           test "X$libobjs" = "X " && libobjs=
+         else
+           gentop="$output_objdir/${outputname}x"
+           generated="$generated $gentop"
 
-      compile_var=
-      finalize_var=
-      if test -n "$runpath_var"; then
-       if test -n "$perm_rpath"; then
-         # We should set the runpath_var.
-         rpath=
-         for dir in $perm_rpath; do
-           rpath="$rpath$dir:"
-         done
-         compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
-       fi
-       if test -n "$finalize_perm_rpath"; then
-         # We should set the runpath_var.
-         rpath=
-         for dir in $finalize_perm_rpath; do
-           rpath="$rpath$dir:"
-         done
-         finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+           func_extract_archives $gentop $convenience
+           libobjs="$libobjs $func_extract_archives_result"
+           test "X$libobjs" = "X " && libobjs=
+         fi
        fi
-      fi
 
-      if test "$no_install" = yes; then
-       # We don't need to create a wrapper script.
-       link_command="$compile_var$compile_command$compile_rpath"
-       # Replace the output file specification.
-       link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-       # Delete the old output file.
-       $run $rm $output
-       # Link the executable and exit
-       $show "$link_command"
-       $run eval "$link_command" || exit $?
-       exit 0
-      fi
+       if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+         eval flag=\"$thread_safe_flag_spec\"
+         linker_flags="$linker_flags $flag"
+       fi
 
-      if test "$hardcode_action" = relink; then
-       # Fast installation is not supported
-       link_command="$compile_var$compile_command$compile_rpath"
-       relink_command="$finalize_var$finalize_command$finalize_rpath"
+       # Make a backup of the uninstalled library when relinking
+       if test "$mode" = relink; then
+         $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
+       fi
 
-       $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
-       $echo "$modename: \`$output' will be relinked during installation" 1>&2
-      else
-       if test "$fast_install" != no; then
-         link_command="$finalize_var$compile_command$finalize_rpath"
-         if test "$fast_install" = yes; then
-           relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+       # Do each of the archive commands.
+       if test "$module" = yes && test -n "$module_cmds" ; then
+         if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+           eval test_cmds=\"$module_expsym_cmds\"
+           cmds=$module_expsym_cmds
          else
-           # fast_install is set to needless
-           relink_command=
+           eval test_cmds=\"$module_cmds\"
+           cmds=$module_cmds
          fi
        else
-         link_command="$compile_var$compile_command$compile_rpath"
-         relink_command="$finalize_var$finalize_command$finalize_rpath"
+         if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+           eval test_cmds=\"$archive_expsym_cmds\"
+           cmds=$archive_expsym_cmds
+         else
+           eval test_cmds=\"$archive_cmds\"
+           cmds=$archive_cmds
+         fi
        fi
-      fi
-
-      # Replace the output file specification.
-      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
 
-      # Delete the old output files.
-      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
+       if test "X$skipped_export" != "X:" &&
+          len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+          test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+         :
+       else
+         # The command line is too long to link in one step, link piecewise
+         # or, if using GNU ld and skipped_export is not :, use a linker
+         # script.
 
-      $show "$link_command"
-      $run eval "$link_command" || exit $?
+         # Save the value of $output and $libobjs because we want to
+         # use them later.  If we have whole_archive_flag_spec, we
+         # want to use save_libobjs as it was before
+         # whole_archive_flag_spec was expanded, because we can't
+         # assume the linker understands whole_archive_flag_spec.
+         # This may have to be revisited, in case too many
+         # convenience libraries get linked in and end up exceeding
+         # the spec.
+         if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+           save_libobjs=$libobjs
+         fi
+         save_output=$output
+         output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
 
-      # Now create the wrapper script.
-      $show "creating $output"
+         # Clear the reloadable object creation command queue and
+         # initialize k to one.
+         test_cmds=
+         concat_cmds=
+         objlist=
+         last_robj=
+         k=1
 
-      # Quote the relink command for shipping.
-      if test -n "$relink_command"; then
-       # Preserve any variables that may affect compiler behavior
-       for var in $variables_saved_for_relink; do
-         if eval test -z \"\${$var+set}\"; then
-           relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
-         elif eval var_value=\$$var; test -z "$var_value"; then
-           relink_command="$var=; export $var; $relink_command"
+         if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
+           output=${output_objdir}/${output_la}.lnkscript
+           func_echo "creating GNU ld script: $output"
+           $ECHO 'INPUT (' > $output
+           for obj in $save_libobjs
+           do
+             $ECHO "$obj" >> $output
+           done
+           $ECHO ')' >> $output
+           delfiles="$delfiles $output"
+         elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
+           output=${output_objdir}/${output_la}.lnk
+           func_echo "creating linker input file list: $output"
+           : > $output
+           set x $save_libobjs
+           shift
+           firstobj=
+           if test "$compiler_needs_object" = yes; then
+             firstobj="$1 "
+             shift
+           fi
+           for obj
+           do
+             $ECHO "$obj" >> $output
+           done
+           delfiles="$delfiles $output"
+           output=$firstobj\"$file_list_spec$output\"
          else
-           var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-           relink_command="$var=\"$var_value\"; export $var; $relink_command"
-         fi
-       done
-       relink_command="cd `pwd`; $relink_command"
-       relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      fi
+           if test -n "$save_libobjs"; then
+             func_echo "creating reloadable object files..."
+             output=$output_objdir/$output_la-${k}.$objext
+             # Loop over the list of objects to be linked.
+             for obj in $save_libobjs
+             do
+               eval test_cmds=\"$reload_cmds $objlist $last_robj\"
+               if test "X$objlist" = X ||
+                  { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+                    test "$len" -le "$max_cmd_len"; }; then
+                 objlist="$objlist $obj"
+               else
+                 # The command $test_cmds is almost too long, add a
+                 # command to the queue.
+                 if test "$k" -eq 1 ; then
+                   # The first file doesn't have a previous command to add.
+                   eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+                 else
+                   # All subsequent reloadable object files will link in
+                   # the last one created.
+                   eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
+                 fi
+                 last_robj=$output_objdir/$output_la-${k}.$objext
+                 k=`expr $k + 1`
+                 output=$output_objdir/$output_la-${k}.$objext
+                 objlist=$obj
+                 len=1
+               fi
+             done
+             # Handle the remaining objects by creating one last
+             # reloadable object file.  All subsequent reloadable object
+             # files will link in the last one created.
+             test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+             eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+
+             # Set up a command to remove the reloadable object files
+             # after they are used.
+             i=0
+             while test "$i" -lt "$k"
+             do
+               i=`expr $i + 1`
+               delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
+             done
+           else
+             output=
+           fi
 
-      # Quote $echo for shipping.
-      if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
-       case $0 in
-       [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
-       *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
-       esac
-       qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
-      else
-       qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
-      fi
+           if ${skipped_export-false}; then
+             func_echo "generating symbol list for \`$libname.la'"
+             export_symbols="$output_objdir/$libname.exp"
+             $opt_dry_run || $RM $export_symbols
+             libobjs=$output
+             # Append the command to create the export file.
+             test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+             eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
+           fi
 
-      # Only actually do things if our run command is non-null.
-      if test -z "$run"; then
-       # win32 will think the script is a binary if it has
-       # a .exe suffix, so we strip it off here.
-       case $output in
-         *.exe) output=`echo $output|sed 's,.exe$,,'` ;;
-       esac
-       # test for cygwin because mv fails w/o .exe extensions
-       case $host in
-         *cygwin*) exeext=.exe ;;
-         *) exeext= ;;
-       esac
-       $rm $output
-       trap "$rm $output; exit 1" 1 2 15
+           test -n "$save_libobjs" &&
+             func_echo "creating a temporary reloadable object file: $output"
 
-       $echo > $output "\
-#! $SHELL
+           # Loop through the commands generated above and execute them.
+           save_ifs="$IFS"; IFS='~'
+           for cmd in $concat_cmds; do
+             IFS="$save_ifs"
+             $opt_silent || {
+                 func_quote_for_expand "$cmd"
+                 eval "func_echo $func_quote_for_expand_result"
+             }
+             $opt_dry_run || eval "$cmd" || {
+               lt_exit=$?
+
+               # Restore the uninstalled library and exit
+               if test "$mode" = relink; then
+                 ( cd "$output_objdir" && \
+                   $RM "${realname}T" && \
+                   $MV "${realname}U" "$realname" )
+               fi
 
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
+               exit $lt_exit
+             }
+           done
+           IFS="$save_ifs"
 
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e 1s/^X//'
-sed_quote_subst='$sed_quote_subst'
+           if test -n "$export_symbols_regex" && ${skipped_export-false}; then
+             func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+             func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+           fi
+         fi
 
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
+          if ${skipped_export-false}; then
+           if test -n "$export_symbols" && test -n "$include_expsyms"; then
+             tmp_export_symbols="$export_symbols"
+             test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
+             $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
+           fi
 
-relink_command=\"$relink_command\"
+           if test -n "$orig_export_symbols"; then
+             # The given exports_symbols file has to be filtered, so filter it.
+             func_echo "filter symbol list for \`$libname.la' to tag DATA exports"
+             # FIXME: $output_objdir/$libname.filter potentially contains lots of
+             # 's' commands which not all seds can handle. GNU sed should be fine
+             # though. Also, the filter scales superlinearly with the number of
+             # global variables. join(1) would be nice here, but unfortunately
+             # isn't a blessed tool.
+             $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+             delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
+             export_symbols=$output_objdir/$libname.def
+             $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+           fi
+         fi
 
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
-  # install mode needs the following variable:
-  notinst_deplibs='$notinst_deplibs'
-else
-  # When we are sourced in execute mode, \$file and \$echo are already set.
-  if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    echo=\"$qecho\"
-    file=\"\$0\"
-    # Make sure echo works.
-    if test \"X\$1\" = X--no-reexec; then
-      # Discard the --no-reexec flag, and continue.
-      shift
-    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
-      # Yippee, \$echo works!
-      :
-    else
-      # Restart under the correct shell, and then maybe \$echo will work.
-      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
-    fi
-  fi\
-"
-       $echo >> $output "\
+         libobjs=$output
+         # Restore the value of output.
+         output=$save_output
 
-  # Find the directory that this script lives in.
-  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
-  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+         if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+           eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+           test "X$libobjs" = "X " && libobjs=
+         fi
+         # Expand the library linking commands again to reset the
+         # value of $libobjs for piecewise linking.
 
-  # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\`
-  while test -n \"\$file\"; do
-    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+         # Do each of the archive commands.
+         if test "$module" = yes && test -n "$module_cmds" ; then
+           if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+             cmds=$module_expsym_cmds
+           else
+             cmds=$module_cmds
+           fi
+         else
+           if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+             cmds=$archive_expsym_cmds
+           else
+             cmds=$archive_cmds
+           fi
+         fi
+       fi
 
-    # If there was a directory component, then change thisdir.
-    if test \"x\$destdir\" != \"x\$file\"; then
-      case \"\$destdir\" in
-      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
-      *) thisdir=\"\$thisdir/\$destdir\" ;;
-      esac
-    fi
+       if test -n "$delfiles"; then
+         # Append the command to remove temporary files to $cmds.
+         eval cmds=\"\$cmds~\$RM $delfiles\"
+       fi
 
-    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\`
-  done
+       # Add any objects from preloaded convenience libraries
+       if test -n "$dlprefiles"; then
+         gentop="$output_objdir/${outputname}x"
+         generated="$generated $gentop"
 
-  # Try to get the absolute directory name.
-  absdir=\`cd \"\$thisdir\" && pwd\`
-  test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
+         func_extract_archives $gentop $dlprefiles
+         libobjs="$libobjs $func_extract_archives_result"
+         test "X$libobjs" = "X " && libobjs=
+       fi
 
-       if test "$fast_install" = yes; then
-         echo >> $output "\
-  program=lt-'$outputname'$exeext
-  progdir=\"\$thisdir/$objdir\"
+       save_ifs="$IFS"; IFS='~'
+       for cmd in $cmds; do
+         IFS="$save_ifs"
+         eval cmd=\"$cmd\"
+         $opt_silent || {
+           func_quote_for_expand "$cmd"
+           eval "func_echo $func_quote_for_expand_result"
+         }
+         $opt_dry_run || eval "$cmd" || {
+           lt_exit=$?
+
+           # Restore the uninstalled library and exit
+           if test "$mode" = relink; then
+             ( cd "$output_objdir" && \
+               $RM "${realname}T" && \
+               $MV "${realname}U" "$realname" )
+           fi
 
-  if test ! -f \"\$progdir/\$program\" || \\
-     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | sed 1q\`; \\
-       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+           exit $lt_exit
+         }
+       done
+       IFS="$save_ifs"
 
-    file=\"\$\$-\$program\"
+       # Restore the uninstalled library and exit
+       if test "$mode" = relink; then
+         $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
 
-    if test ! -d \"\$progdir\"; then
-      $mkdir \"\$progdir\"
-    else
-      $rm \"\$progdir/\$file\"
-    fi"
+         if test -n "$convenience"; then
+           if test -z "$whole_archive_flag_spec"; then
+             func_show_eval '${RM}r "$gentop"'
+           fi
+         fi
 
-         echo >> $output "\
+         exit $EXIT_SUCCESS
+       fi
 
-    # relink executable if necessary
-    if test -n \"\$relink_command\"; then
-      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
-      else
-        $echo \"\$relink_command_output\" >&2
-       $rm \"\$progdir/\$file\"
-       exit 1
+       # Create links to the real library.
+       for linkname in $linknames; do
+         if test "$realname" != "$linkname"; then
+           func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
+         fi
+       done
+
+       # If -module or -export-dynamic was specified, set the dlname.
+       if test "$module" = yes || test "$export_dynamic" = yes; then
+         # On all known operating systems, these are identical.
+         dlname="$soname"
+       fi
+      fi
+      ;;
+
+    obj)
+      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+       func_warning "\`-dlopen' is ignored for objects"
       fi
-    fi
 
-    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
-    { $rm \"\$progdir/\$program\";
-      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
-    $rm \"\$progdir/\$file\"
-  fi"
-       else
-         echo >> $output "\
-  program='$outputname'
-  progdir=\"\$thisdir/$objdir\"
-"
-       fi
+      test -n "$deplibs" && \
+       func_warning "\`-l' and \`-L' are ignored for objects"
 
-       echo >> $output "\
+      test -n "$rpath" && \
+       func_warning "\`-rpath' is ignored for objects"
 
-  if test -f \"\$progdir/\$program\"; then"
+      test -n "$xrpath" && \
+       func_warning "\`-R' is ignored for objects"
 
-       # Export our shlibpath_var if we have one.
-       if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-         $echo >> $output "\
-    # Add our own library path to $shlibpath_var
-    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+      test -n "$vinfo" && \
+       func_warning "\`-version-info' is ignored for objects"
 
-    # Some systems cannot cope with colon-terminated $shlibpath_var
-    # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+      test -n "$release" && \
+       func_warning "\`-release' is ignored for objects"
 
-    export $shlibpath_var
-"
-       fi
+      case $output in
+      *.lo)
+       test -n "$objs$old_deplibs" && \
+         func_fatal_error "cannot build library object \`$output' from non-libtool objects"
 
-       # fixup the dll searchpath if we need to.
-       if test -n "$dllsearchpath"; then
-         $echo >> $output "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-       fi
+       libobj=$output
+       func_lo2o "$libobj"
+       obj=$func_lo2o_result
+       ;;
+      *)
+       libobj=
+       obj="$output"
+       ;;
+      esac
 
-       $echo >> $output "\
-    if test \"\$libtool_execute_magic\" != \"$magic\"; then
-      # Run the actual program with our arguments.
-"
-       case $host in
-       # win32 systems need to use the prog path for dll
-       # lookup to work
-       *-*-cygwin* | *-*-pw32*)
-         $echo >> $output "\
-      exec \$progdir/\$program \${1+\"\$@\"}
-"
-         ;;
+      # Delete the old objects.
+      $opt_dry_run || $RM $obj $libobj
 
-       # Backslashes separate directories on plain windows
-       *-*-mingw | *-*-os2*)
-         $echo >> $output "\
-      exec \$progdir\\\\\$program \${1+\"\$@\"}
-"
-         ;;
+      # Objects from convenience libraries.  This assumes
+      # single-version convenience libraries.  Whenever we create
+      # different ones for PIC/non-PIC, this we'll have to duplicate
+      # the extraction.
+      reload_conv_objs=
+      gentop=
+      # reload_cmds runs $LD directly, so let us get rid of
+      # -Wl from whole_archive_flag_spec and hope we can get by with
+      # turning comma into space..
+      wl=
 
-       *)
-         $echo >> $output "\
-      # Export the path to the program.
-      PATH=\"\$progdir:\$PATH\"
-      export PATH
+      if test -n "$convenience"; then
+       if test -n "$whole_archive_flag_spec"; then
+         eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+         reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
+       else
+         gentop="$output_objdir/${obj}x"
+         generated="$generated $gentop"
 
-      exec \$program \${1+\"\$@\"}
-"
-         ;;
-       esac
-       $echo >> $output "\
-      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
-      exit 1
-    fi
-  else
-    # The program doesn't exist.
-    \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
-    \$echo \"This script is just a wrapper for \$program.\" 1>&2
-    echo \"See the $PACKAGE documentation for more information.\" 1>&2
-    exit 1
-  fi
-fi\
-"
-       chmod +x $output
+         func_extract_archives $gentop $convenience
+         reload_conv_objs="$reload_objs $func_extract_archives_result"
+       fi
       fi
-      exit 0
-      ;;
-    esac
 
-    # See if we need to build an old-fashioned archive.
-    for oldlib in $oldlibs; do
+      # Create the old-style object.
+      reload_objs="$objs$old_deplibs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
 
-      if test "$build_libtool_libs" = convenience; then
-       oldobjs="$libobjs_save"
-       addlibs="$convenience"
-       build_libtool_libs=no
-      else
-       if test "$build_libtool_libs" = module; then
-         oldobjs="$libobjs_save"
-         build_libtool_libs=no
-       else
-         oldobjs="$objs$old_deplibs $non_pic_objects"
+      output="$obj"
+      func_execute_cmds "$reload_cmds" 'exit $?'
+
+      # Exit if we aren't doing a library object file.
+      if test -z "$libobj"; then
+       if test -n "$gentop"; then
+         func_show_eval '${RM}r "$gentop"'
        fi
-       addlibs="$old_convenience"
+
+       exit $EXIT_SUCCESS
       fi
 
-      if test -n "$addlibs"; then
-       gentop="$output_objdir/${outputname}x"
-       $show "${rm}r $gentop"
-       $run ${rm}r "$gentop"
-       $show "$mkdir $gentop"
-       $run $mkdir "$gentop"
-       status=$?
-       if test $status -ne 0 && test ! -d "$gentop"; then
-         exit $status
+      if test "$build_libtool_libs" != yes; then
+       if test -n "$gentop"; then
+         func_show_eval '${RM}r "$gentop"'
        fi
-       generated="$generated $gentop"
 
-       # Add in members from convenience archives.
-       for xlib in $addlibs; do
-         # Extract the objects.
-         case $xlib in
-         [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-         *) xabs=`pwd`"/$xlib" ;;
-         esac
-         xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-         xdir="$gentop/$xlib"
-
-         $show "${rm}r $xdir"
-         $run ${rm}r "$xdir"
-         $show "$mkdir $xdir"
-         $run $mkdir "$xdir"
-         status=$?
-         if test $status -ne 0 && test ! -d "$xdir"; then
-           exit $status
-         fi
-         $show "(cd $xdir && $AR x $xabs)"
-         $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+       # Create an invalid libtool object if no PIC, so that we don't
+       # accidentally link it into a program.
+       # $show "echo timestamp > $libobj"
+       # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
+       exit $EXIT_SUCCESS
+      fi
 
-         oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print | $NL2SP`
-       done
+      if test -n "$pic_flag" || test "$pic_mode" != default; then
+       # Only do commands if we really have different PIC objects.
+       reload_objs="$libobjs $reload_conv_objs"
+       output="$libobj"
+       func_execute_cmds "$reload_cmds" 'exit $?'
       fi
 
-      # Do each command in the archive commands.
-      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
-       eval cmds=\"$old_archive_from_new_cmds\"
-      else
-#      # Ensure that we have .o objects in place in case we decided
-#      # not to build a shared library, and have fallen back to building
-#      # static libs even though --disable-static was passed!
-#      for oldobj in $oldobjs; do
-#        if test ! -f $oldobj; then
-#          xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
-#          if test "X$xdir" = "X$oldobj"; then
-#            xdir="."
-#          else
-#            xdir="$xdir"
-#          fi
-#          baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
-#          obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
-#          $show "(cd $xdir && ${LN_S} $obj $baseobj)"
-#          $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
-#        fi
-#      done
+      if test -n "$gentop"; then
+       func_show_eval '${RM}r "$gentop"'
+      fi
 
-       # POSIX demands no paths to be encoded in archives.  We have
-       # to avoid creating archives with duplicate basenames if we
-       # might have to extract them afterwards, e.g., when creating a
-       # static archive out of a convenience library, or when linking
-       # the entirety of a libtool archive into another (currently
-       # not supported by libtool).
-        if (for obj in $oldobjs
-           do
-             $echo "X$obj" | $Xsed -e 's%^.*/%%'
-           done | sort | sort -uc >/dev/null 2>&1); then
-         :
-       else
-         $echo "copying selected object files to avoid basename conflicts..."
+      exit $EXIT_SUCCESS
+      ;;
 
-         if test -z "$gentop"; then
-           gentop="$output_objdir/${outputname}x"
+    prog)
+      case $host in
+       *cygwin*) func_stripname '' '.exe' "$output"
+                 output=$func_stripname_result.exe;;
+      esac
+      test -n "$vinfo" && \
+       func_warning "\`-version-info' is ignored for programs"
 
-           $show "${rm}r $gentop"
-           $run ${rm}r "$gentop"
-           $show "$mkdir $gentop"
-           $run $mkdir "$gentop"
-           status=$?
-           if test $status -ne 0 && test ! -d "$gentop"; then
-             exit $status
-           fi
-           generated="$generated $gentop"
-         fi
+      test -n "$release" && \
+       func_warning "\`-release' is ignored for programs"
 
-         save_oldobjs=$oldobjs
-         oldobjs=
-         counter=1
-         for obj in $save_oldobjs
-         do
-           objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
-           case " $oldobjs " in
-           " ") oldobjs=$obj ;;
-           *[\ /]"$objbase "*)
-             while :; do
-               # Make sure we don't pick an alternate name that also
-               # overlaps.
-               newobj=lt$counter-$objbase
-               counter=`expr $counter + 1`
-               case " $oldobjs " in
-               *[\ /]"$newobj "*) ;;
-               *) if test ! -f "$gentop/$newobj"; then break; fi ;;
-               esac
-             done
-             $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
-             $run ln "$obj" "$gentop/$newobj" ||
-             $run cp "$obj" "$gentop/$newobj"
-             oldobjs="$oldobjs $gentop/$newobj"
-             ;;
-           *) oldobjs="$oldobjs $obj" ;;
-           esac
-         done
+      test "$preload" = yes \
+        && test "$dlopen_support" = unknown \
+       && test "$dlopen_self" = unknown \
+       && test "$dlopen_self_static" = unknown && \
+         func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
+
+      case $host in
+      *-*-rhapsody* | *-*-darwin1.[012])
+       # On Rhapsody replace the C library is the System framework
+       compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+       finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+       ;;
+      esac
+
+      case $host in
+      *-*-darwin*)
+       # Don't allow lazy linking, it breaks C++ global constructors
+       # But is supposedly fixed on 10.4 or later (yay!).
+       if test "$tagname" = CXX ; then
+         case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
+           10.[0123])
+             compile_command="$compile_command ${wl}-bind_at_load"
+             finalize_command="$finalize_command ${wl}-bind_at_load"
+           ;;
+         esac
        fi
+       # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+       compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+       finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+       ;;
+      esac
 
-        eval cmds=\"$old_archive_cmds\"
 
-        if len=`expr "X$cmds" : ".*"` &&
-             test $len -le $max_cmd_len; then
-          :
-        else
-          # the command line is too long to link in one step, link in parts
-          $echo "using piecewise archive linking..."
-         save_RANLIB=$RANLIB
-         RANLIB=:
-          objlist=
-          concat_cmds=
-          save_oldobjs=$oldobjs
-
-          for obj in $save_oldobjs
-          do
-            oldobjs="$objlist $obj"
-            objlist="$objlist $obj"
-            eval test_cmds=\"$old_archive_cmds\"
-            if len=`expr "X$test_cmds" : ".*"` &&
-               test $len -le $max_cmd_len; then
-              :
-            else
-              # the above command should be used before it gets too long
-              oldobjs=$objlist
-             test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-              eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
-              objlist=
-            fi
-          done
-         RANLIB=$save_RANLIB
-          oldobjs=$objlist
-          eval cmds=\"\$concat_cmds~$old_archive_cmds\"
-        fi
-      fi
-      IFS="${IFS=      }"; save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-       IFS="$save_ifs"
-       $show "$cmd"
-       $run eval "$cmd" || exit $?
+      # move library search paths that coincide with paths to not yet
+      # installed libraries to the beginning of the library search list
+      new_libs=
+      for path in $notinst_path; do
+       case " $new_libs " in
+       *" -L$path/$objdir "*) ;;
+       *)
+         case " $compile_deplibs " in
+         *" -L$path/$objdir "*)
+           new_libs="$new_libs -L$path/$objdir" ;;
+         esac
+         ;;
+       esac
       done
-      IFS="$save_ifs"
-    done
+      for deplib in $compile_deplibs; do
+       case $deplib in
+       -L*)
+         case " $new_libs " in
+         *" $deplib "*) ;;
+         *) new_libs="$new_libs $deplib" ;;
+         esac
+         ;;
+       *) new_libs="$new_libs $deplib" ;;
+       esac
+      done
+      compile_deplibs="$new_libs"
 
-    if test -n "$generated"; then
-      $show "${rm}r$generated"
-      $run ${rm}r$generated
-    fi
 
-    # Now create the libtool archive.
-    case $output in
-    *.la)
-      old_library=
-      test "$build_old_libs" = yes && old_library="$libname.$libext"
-      $show "creating $output"
+      compile_command="$compile_command $compile_deplibs"
+      finalize_command="$finalize_command $finalize_deplibs"
 
-      # Preserve any variables that may affect compiler behavior
-      for var in $variables_saved_for_relink; do
-       if eval test -z \"\${$var+set}\"; then
-         relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
-       elif eval var_value=\$$var; test -z "$var_value"; then
-         relink_command="$var=; export $var; $relink_command"
-       else
-         var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-         relink_command="$var=\"$var_value\"; export $var; $relink_command"
-       fi
-      done
-      # Quote the link command for shipping.
-      tagopts=
-      for tag in $taglist; do
-        tagopts="$tagopts --tag $tag"
-      done
-      relink_command="(cd `pwd`; $SHELL $0$tagopts --mode=relink $libtool_args @inst_prefix_dir@)"
-      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      if test -n "$rpath$xrpath"; then
+       # If the user specified any rpath flags, then add them.
+       for libdir in $rpath $xrpath; do
+         # This is the magic to use -rpath.
+         case "$finalize_rpath " in
+         *" $libdir "*) ;;
+         *) finalize_rpath="$finalize_rpath $libdir" ;;
+         esac
+       done
+      fi
 
-      # Only create the output if not a dry run.
-      if test -z "$run"; then
-       for installed in no yes; do
-         if test "$installed" = yes; then
-           if test -z "$install_libdir"; then
-             break
+      # Now hardcode the library paths
+      rpath=
+      hardcode_libdirs=
+      for libdir in $compile_rpath $finalize_rpath; do
+       if test -n "$hardcode_libdir_flag_spec"; then
+         if test -n "$hardcode_libdir_separator"; then
+           if test -z "$hardcode_libdirs"; then
+             hardcode_libdirs="$libdir"
+           else
+             # Just accumulate the unique libdirs.
+             case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+             *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+               ;;
+             *)
+               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+               ;;
+             esac
            fi
-           output="$output_objdir/$outputname"i
-           # Replace all uninstalled libtool libraries with the installed ones
-           newdependency_libs=
-           for deplib in $dependency_libs; do
-             case $deplib in
-             *.la)
-               name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
-               eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-               if test -z "$libdir"; then
-                 $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-                 exit 1
-               fi
-               newdependency_libs="$newdependency_libs $libdir/$name"
+         else
+           eval flag=\"$hardcode_libdir_flag_spec\"
+           rpath="$rpath $flag"
+         fi
+       elif test -n "$runpath_var"; then
+         case "$perm_rpath " in
+         *" $libdir "*) ;;
+         *) perm_rpath="$perm_rpath $libdir" ;;
+         esac
+       fi
+       case $host in
+       *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+         testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
+         case :$dllsearchpath: in
+         *":$libdir:"*) ;;
+         *) dllsearchpath="$dllsearchpath:$libdir";;
+         esac
+         case :$dllsearchpath: in
+         *":$testbindir:"*) ;;
+         *) dllsearchpath="$dllsearchpath:$testbindir";;
+         esac
+         ;;
+       esac
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+        test -n "$hardcode_libdirs"; then
+       libdir="$hardcode_libdirs"
+       eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      compile_rpath="$rpath"
+
+      rpath=
+      hardcode_libdirs=
+      for libdir in $finalize_rpath; do
+       if test -n "$hardcode_libdir_flag_spec"; then
+         if test -n "$hardcode_libdir_separator"; then
+           if test -z "$hardcode_libdirs"; then
+             hardcode_libdirs="$libdir"
+           else
+             # Just accumulate the unique libdirs.
+             case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+             *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+               ;;
+             *)
+               hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
                ;;
-             *) newdependency_libs="$newdependency_libs $deplib" ;;
              esac
-           done
-           dependency_libs="$newdependency_libs"
-           newdlfiles=
-           for lib in $dlfiles; do
-             name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-             eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-             if test -z "$libdir"; then
-               $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-               exit 1
-             fi
-             newdlfiles="$newdlfiles $libdir/$name"
-           done
-           dlfiles="$newdlfiles"
-           newdlprefiles=
-           for lib in $dlprefiles; do
-             name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-             eval libdir=`sed -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-             if test -z "$libdir"; then
-               $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-               exit 1
-             fi
-             newdlprefiles="$newdlprefiles $libdir/$name"
-           done
-           dlprefiles="$newdlprefiles"
+           fi
+         else
+           eval flag=\"$hardcode_libdir_flag_spec\"
+           rpath="$rpath $flag"
          fi
-         $rm $output
-         # place dlname in correct position for cygwin
-         tdlname=$dlname
-         case $host,$output,$installed,$module,$dlname in
-           *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+       elif test -n "$runpath_var"; then
+         case "$finalize_perm_rpath " in
+         *" $libdir "*) ;;
+         *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
          esac
-         $echo > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$tdlname'
+       fi
+      done
+      # Substitute the hardcoded libdirs into the rpath.
+      if test -n "$hardcode_libdir_separator" &&
+        test -n "$hardcode_libdirs"; then
+       libdir="$hardcode_libdirs"
+       eval rpath=\" $hardcode_libdir_flag_spec\"
+      fi
+      finalize_rpath="$rpath"
 
-# Names of this library.
-library_names='$library_names'
+      if test -n "$libobjs" && test "$build_old_libs" = yes; then
+       # Transform all the library objects into standard objects.
+       compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+       finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+      fi
 
-# The name of the static archive.
-old_library='$old_library'
+      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
 
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
+      # template prelinking step
+      if test -n "$prelink_cmds"; then
+       func_execute_cmds "$prelink_cmds" 'exit $?'
+      fi
 
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
+      wrappers_required=yes
+      case $host in
+      *cygwin* | *mingw* )
+        if test "$build_libtool_libs" != yes; then
+          wrappers_required=no
+        fi
+        ;;
+      *)
+        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+          wrappers_required=no
+        fi
+        ;;
+      esac
+      if test "$wrappers_required" = no; then
+       # Replace the output file specification.
+       compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+       link_command="$compile_command$compile_rpath"
 
-# Is this an already installed library?
-installed=$installed
+       # We have no uninstalled library dependencies, so finalize right now.
+       exit_status=0
+       func_show_eval "$link_command" 'exit_status=$?'
 
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
+       # Delete the generated files.
+       if test -f "$output_objdir/${outputname}S.${objext}"; then
+         func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
+       fi
 
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
-         if test "$installed" = no && test $need_relink = yes; then
-           $echo >> $output "\
-relink_command=\"$relink_command\""
-         fi
-       done
+       exit $exit_status
       fi
 
-      # Do a symbolic link so that the libtool archive can be found in
-      # LD_LIBRARY_PATH before the program is installed.
-      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
-      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
-      ;;
-    esac
-    exit 0
-    ;;
-
-  # libtool install mode
-  install)
-    modename="$modename: install"
-
-    # There may be an optional sh(1) argument at the beginning of
-    # install_prog (especially on Windows NT).
-    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
-       # Allow the use of GNU shtool's install command.
-       $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
-      # Aesthetically quote it.
-      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*)
-       arg="\"$arg\""
-       ;;
-      esac
-      install_prog="$arg "
-      arg="$1"
-      shift
-    else
-      install_prog=
-      arg="$nonopt"
-    fi
+      if test -n "$compile_shlibpath$finalize_shlibpath"; then
+       compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+      fi
+      if test -n "$finalize_shlibpath"; then
+       finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+      fi
 
-    # The real first argument should be the name of the installation program.
-    # Aesthetically quote it.
-    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-    case $arg in
-    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \      ]*|*]*)
-      arg="\"$arg\""
-      ;;
-    esac
-    install_prog="$install_prog$arg"
+      compile_var=
+      finalize_var=
+      if test -n "$runpath_var"; then
+       if test -n "$perm_rpath"; then
+         # We should set the runpath_var.
+         rpath=
+         for dir in $perm_rpath; do
+           rpath="$rpath$dir:"
+         done
+         compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+       fi
+       if test -n "$finalize_perm_rpath"; then
+         # We should set the runpath_var.
+         rpath=
+         for dir in $finalize_perm_rpath; do
+           rpath="$rpath$dir:"
+         done
+         finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+       fi
+      fi
 
-    # We need to accept at least all the BSD install flags.
-    dest=
-    files=
-    opts=
-    prev=
-    install_type=
-    isdir=no
-    stripme=
-    for arg
-    do
-      if test -n "$dest"; then
-       files="$files $dest"
-       dest="$arg"
-       continue
+      if test "$no_install" = yes; then
+       # We don't need to create a wrapper script.
+       link_command="$compile_var$compile_command$compile_rpath"
+       # Replace the output file specification.
+       link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+       # Delete the old output file.
+       $opt_dry_run || $RM $output
+       # Link the executable and exit
+       func_show_eval "$link_command" 'exit $?'
+       exit $EXIT_SUCCESS
       fi
 
-      case $arg in
-      -d) isdir=yes ;;
-      -f) prev="-f" ;;
-      -g) prev="-g" ;;
-      -m) prev="-m" ;;
-      -o) prev="-o" ;;
-      -s)
-       stripme=" -s"
-       continue
-       ;;
-      -*) ;;
+      if test "$hardcode_action" = relink; then
+       # Fast installation is not supported
+       link_command="$compile_var$compile_command$compile_rpath"
+       relink_command="$finalize_var$finalize_command$finalize_rpath"
 
-      *)
-       # If the previous option needed an argument, then skip it.
-       if test -n "$prev"; then
-         prev=
+       func_warning "this platform does not like uninstalled shared libraries"
+       func_warning "\`$output' will be relinked during installation"
+      else
+       if test "$fast_install" != no; then
+         link_command="$finalize_var$compile_command$finalize_rpath"
+         if test "$fast_install" = yes; then
+           relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+         else
+           # fast_install is set to needless
+           relink_command=
+         fi
        else
-         dest="$arg"
-         continue
+         link_command="$compile_var$compile_command$compile_rpath"
+         relink_command="$finalize_var$finalize_command$finalize_rpath"
        fi
-       ;;
-      esac
-
-      # Aesthetically quote the argument.
-      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \    ]*|*]*)
-       arg="\"$arg\""
-       ;;
-      esac
-      install_prog="$install_prog $arg"
-    done
+      fi
 
-    if test -z "$install_prog"; then
-      $echo "$modename: you must specify an install program" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
+      # Replace the output file specification.
+      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
 
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prev' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
+      # Delete the old output files.
+      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
 
-    if test -z "$files"; then
-      if test -z "$dest"; then
-       $echo "$modename: no file or destination specified" 1>&2
-      else
-       $echo "$modename: you must specify a destination" 1>&2
-      fi
-      $echo "$help" 1>&2
-      exit 1
-    fi
+      func_show_eval "$link_command" 'exit $?'
 
-    # Strip any trailing slash from the destination.
-    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
+      # Now create the wrapper script.
+      func_echo "creating $output"
 
-    # Check to see that the destination is a directory.
-    test -d "$dest" && isdir=yes
-    if test "$isdir" = yes; then
-      destdir="$dest"
-      destname=
-    else
-      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
-      test "X$destdir" = "X$dest" && destdir=.
-      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
+      # Quote the relink command for shipping.
+      if test -n "$relink_command"; then
+       # Preserve any variables that may affect compiler behavior
+       for var in $variables_saved_for_relink; do
+         if eval test -z \"\${$var+set}\"; then
+           relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+         elif eval var_value=\$$var; test -z "$var_value"; then
+           relink_command="$var=; export $var; $relink_command"
+         else
+           func_quote_for_eval "$var_value"
+           relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+         fi
+       done
+       relink_command="(cd `pwd`; $relink_command)"
+       relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      fi
 
-      # Not a directory, so check to see that there is only one file specified.
-      set dummy $files
-      if test $# -gt 2; then
-       $echo "$modename: \`$dest' is not a directory" 1>&2
-       $echo "$help" 1>&2
-       exit 1
+      # Quote $ECHO for shipping.
+      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
+       case $progpath in
+       [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
+       *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
+       esac
+       qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
+      else
+       qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
       fi
-    fi
-    case $destdir in
-    [\\/]* | [A-Za-z]:[\\/]*) ;;
-    *)
-      for file in $files; do
-       case $file in
-       *.lo) ;;
-       *)
-         $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
-         $echo "$help" 1>&2
-         exit 1
-         ;;
+
+      # Only actually do things if not in dry run mode.
+      $opt_dry_run || {
+       # win32 will think the script is a binary if it has
+       # a .exe suffix, so we strip it off here.
+       case $output in
+         *.exe) func_stripname '' '.exe' "$output"
+                output=$func_stripname_result ;;
        esac
-      done
-      ;;
-    esac
+       # test for cygwin because mv fails w/o .exe extensions
+       case $host in
+         *cygwin*)
+           exeext=.exe
+           func_stripname '' '.exe' "$outputname"
+           outputname=$func_stripname_result ;;
+         *) exeext= ;;
+       esac
+       case $host in
+         *cygwin* | *mingw* )
+           output_name=`basename $output`
+           output_path=`dirname $output`
+           cwrappersource="$output_path/$objdir/lt-$output_name.c"
+           cwrapper="$output_path/$output_name.exe"
+           $RM $cwrappersource $cwrapper
+           trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
 
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
+           cat > $cwrappersource <<EOF
 
-    staticlibs=
-    future_libdirs=
-    current_libdirs=
-    for file in $files; do
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
 
-      # Do each installation.
-      case $file in
-      *.$libext)
-       # Do the static libraries later.
-       staticlibs="$staticlibs $file"
-       ;;
+   The $output program cannot be directly executed until all the libtool
+   libraries that it depends on are installed.
 
-      *.la)
-       # Check to see that this really is a libtool archive.
-       if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-       else
-         $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
-         $echo "$help" 1>&2
-         exit 1
-       fi
+   This wrapper executable should never be moved out of the build directory.
+   If it is, it will not operate correctly.
 
-       library_names=
-       old_library=
-       relink_command=
-       # If there is no directory component, then add one.
-       case $file in
-       */* | *\\*) . $file ;;
-       *) . ./$file ;;
-       esac
+   Currently, it simply execs the wrapper *script* "/bin/sh $output",
+   but could eventually absorb all of the scripts functionality and
+   exec $objdir/$outputname directly.
+*/
+EOF
+           cat >> $cwrappersource<<"EOF"
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <sys/stat.h>
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
 
-       # Add the libdir to current_libdirs if it is the destination.
-       if test "X$destdir" = "X$libdir"; then
-         case "$current_libdirs " in
-         *" $libdir "*) ;;
-         *) current_libdirs="$current_libdirs $libdir" ;;
-         esac
-       else
-         # Note the libdir as a future libdir.
-         case "$future_libdirs " in
-         *" $libdir "*) ;;
-         *) future_libdirs="$future_libdirs $libdir" ;;
-         esac
-       fi
+#ifndef DIR_SEPARATOR
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
+#endif
 
-       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
-       test "X$dir" = "X$file/" && dir=
-       dir="$dir$objdir"
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+  defined (__OS2__)
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# ifndef DIR_SEPARATOR_2
+#  define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+#  define PATH_SEPARATOR_2 ';'
+# endif
+#endif
 
-       if test -n "$relink_command"; then
-         # Determine the prefix the user has applied to our future dir.
-         inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"`
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+       (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
+
+#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+  if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+/* -DDEBUG is fairly common in CFLAGS.  */
+#undef DEBUG
+#if defined DEBUGWRAPPER
+# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
+#else
+# define DEBUG(format, ...)
+#endif
 
-         # Don't allow the user to place us outside of our expected
-         # location b/c this prevents finding dependent libraries that
-         # are installed to the same prefix.
-         # At present, this check doesn't affect windows .dll's that
-         # are installed into $libdir/../bin (currently, that works fine)
-         # but it's something to keep an eye on.
-         if test "$inst_prefix_dir" = "$destdir"; then
-           $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
-           exit 1
-         fi
+const char *program_name = NULL;
+
+void * xmalloc (size_t num);
+char * xstrdup (const char *string);
+const char * base_name (const char *name);
+char * find_executable(const char *wrapper);
+int    check_executable(const char *path);
+char * strendzap(char *str, const char *pat);
+void lt_fatal (const char *message, ...);
+
+int
+main (int argc, char *argv[])
+{
+  char **newargz;
+  int i;
+
+  program_name = (char *) xstrdup (base_name (argv[0]));
+  DEBUG("(main) argv[0]      : %s\n",argv[0]);
+  DEBUG("(main) program_name : %s\n",program_name);
+  newargz = XMALLOC(char *, argc+2);
+EOF
 
-         if test -n "$inst_prefix_dir"; then
-           # Stick the inst_prefix_dir data into the link command.
-           relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
-         else
-           relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"`
-         fi
+           cat >> $cwrappersource <<EOF
+  newargz[0] = (char *) xstrdup("$SHELL");
+EOF
 
-         $echo "$modename: warning: relinking \`$file'" 1>&2
-         $show "$relink_command"
-         if $run eval "$relink_command"; then :
-         else
-           $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-           exit 1
-         fi
-       fi
+           cat >> $cwrappersource <<"EOF"
+  newargz[1] = find_executable(argv[0]);
+  if (newargz[1] == NULL)
+    lt_fatal("Couldn't find %s", argv[0]);
+  DEBUG("(main) found exe at : %s\n",newargz[1]);
+  /* we know the script has the same name, without the .exe */
+  /* so make sure newargz[1] doesn't end in .exe */
+  strendzap(newargz[1],".exe");
+  for (i = 1; i < argc; i++)
+    newargz[i+1] = xstrdup(argv[i]);
+  newargz[argc+1] = NULL;
+
+  for (i=0; i<argc+1; i++)
+  {
+    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
+    ;
+  }
 
-       # See the names of the shared library.
-       set dummy $library_names
-       if test -n "$2"; then
-         realname="$2"
-         shift
-         shift
+EOF
 
-         srcname="$realname"
-         test -n "$relink_command" && srcname="$realname"T
+           case $host_os in
+             mingw*)
+               cat >> $cwrappersource <<EOF
+  execv("$SHELL",(char const **)newargz);
+EOF
+             ;;
+             *)
+               cat >> $cwrappersource <<EOF
+  execv("$SHELL",newargz);
+EOF
+             ;;
+           esac
 
-         # Install the shared library and build the symlinks.
-         $show "$install_prog $dir/$srcname $destdir/$realname"
-         $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
-         if test -n "$stripme" && test -n "$striplib"; then
-           $show "$striplib $destdir/$realname"
-           $run eval "$striplib $destdir/$realname" || exit $?
-         fi
+           cat >> $cwrappersource <<"EOF"
+  return 127;
+}
 
-         if test $# -gt 0; then
-           # Delete the old symlinks, and create new ones.
-           for linkname
-           do
-             if test "$linkname" != "$realname"; then
-               $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
-               $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
-             fi
-           done
-         fi
+void *
+xmalloc (size_t num)
+{
+  void * p = (void *) malloc (num);
+  if (!p)
+    lt_fatal ("Memory exhausted");
 
-         # Do each command in the postinstall commands.
-         lib="$destdir/$realname"
-         eval cmds=\"$postinstall_cmds\"
-         IFS="${IFS=   }"; save_ifs="$IFS"; IFS='~'
-         for cmd in $cmds; do
-           IFS="$save_ifs"
-           $show "$cmd"
-           $run eval "$cmd" || exit $?
-         done
-         IFS="$save_ifs"
-       fi
+  return p;
+}
 
-       # Install the pseudo-library for information purposes.
-       name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-       instname="$dir/$name"i
-       $show "$install_prog $instname $destdir/$name"
-       $run eval "$install_prog $instname $destdir/$name" || exit $?
+char *
+xstrdup (const char *string)
+{
+  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
+;
+}
 
-       # Maybe install the static library, too.
-       test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
-       ;;
+const char *
+base_name (const char *name)
+{
+  const char *base;
 
-      *.lo)
-       # Install (i.e. copy) a libtool object.
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  /* Skip over the disk name in MSDOS pathnames. */
+  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
+    name += 2;
+#endif
 
-       # Figure out destination file name, if it wasn't already specified.
-       if test -n "$destname"; then
-         destfile="$destdir/$destname"
+  for (base = name; *name; name++)
+    if (IS_DIR_SEPARATOR (*name))
+      base = name + 1;
+  return base;
+}
+
+int
+check_executable(const char * path)
+{
+  struct stat st;
+
+  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
+  if ((!path) || (!*path))
+    return 0;
+
+  if ((stat (path, &st) >= 0) &&
+      (
+       /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
+#if defined (S_IXOTH)
+       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
+#endif
+#if defined (S_IXGRP)
+       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
+#endif
+       ((st.st_mode & S_IXUSR) == S_IXUSR))
+      )
+    return 1;
+  else
+    return 0;
+}
+
+/* Searches for the full path of the wrapper.  Returns
+   newly allocated full path name if found, NULL otherwise */
+char *
+find_executable (const char* wrapper)
+{
+  int has_slash = 0;
+  const char* p;
+  const char* p_next;
+  /* static buffer for getcwd */
+  char tmp[LT_PATHMAX + 1];
+  int tmp_len;
+  char* concat_name;
+
+  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
+
+  if ((wrapper == NULL) || (*wrapper == '\0'))
+    return NULL;
+
+  /* Absolute path? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
+  {
+    concat_name = xstrdup (wrapper);
+    if (check_executable(concat_name))
+      return concat_name;
+    XFREE(concat_name);
+  }
+  else
+  {
+#endif
+    if (IS_DIR_SEPARATOR (wrapper[0]))
+    {
+      concat_name = xstrdup (wrapper);
+      if (check_executable(concat_name))
+       return concat_name;
+      XFREE(concat_name);
+    }
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+  }
+#endif
+
+  for (p = wrapper; *p; p++)
+    if (*p == '/')
+    {
+      has_slash = 1;
+      break;
+    }
+  if (!has_slash)
+  {
+    /* no slashes; search PATH */
+    const char* path = getenv ("PATH");
+    if (path != NULL)
+    {
+      for (p = path; *p; p = p_next)
+      {
+       const char* q;
+       size_t p_len;
+       for (q = p; *q; q++)
+         if (IS_PATH_SEPARATOR(*q))
+           break;
+       p_len = q - p;
+       p_next = (*q == '\0' ? q : q + 1);
+       if (p_len == 0)
+       {
+         /* empty path: current directory */
+         if (getcwd (tmp, LT_PATHMAX) == NULL)
+           lt_fatal ("getcwd failed");
+         tmp_len = strlen(tmp);
+         concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
+         memcpy (concat_name, tmp, tmp_len);
+         concat_name[tmp_len] = '/';
+         strcpy (concat_name + tmp_len + 1, wrapper);
+       }
        else
-         destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-         destfile="$destdir/$destfile"
-       fi
+       {
+         concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
+         memcpy (concat_name, p, p_len);
+         concat_name[p_len] = '/';
+         strcpy (concat_name + p_len + 1, wrapper);
+       }
+       if (check_executable(concat_name))
+         return concat_name;
+       XFREE(concat_name);
+      }
+    }
+    /* not found in PATH; assume curdir */
+  }
+  /* Relative path | not found in path: prepend cwd */
+  if (getcwd (tmp, LT_PATHMAX) == NULL)
+    lt_fatal ("getcwd failed");
+  tmp_len = strlen(tmp);
+  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
+  memcpy (concat_name, tmp, tmp_len);
+  concat_name[tmp_len] = '/';
+  strcpy (concat_name + tmp_len + 1, wrapper);
+
+  if (check_executable(concat_name))
+    return concat_name;
+  XFREE(concat_name);
+  return NULL;
+}
 
-       # Deduce the name of the destination old-style object file.
-       case $destfile in
-       *.lo)
-         staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
-         ;;
-       *.$objext)
-         staticdest="$destfile"
-         destfile=
-         ;;
-       *)
-         $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
-         $echo "$help" 1>&2
-         exit 1
+char *
+strendzap(char *str, const char *pat)
+{
+  size_t len, patlen;
+
+  assert(str != NULL);
+  assert(pat != NULL);
+
+  len = strlen(str);
+  patlen = strlen(pat);
+
+  if (patlen <= len)
+  {
+    str += len - patlen;
+    if (strcmp(str, pat) == 0)
+      *str = '\0';
+  }
+  return str;
+}
+
+static void
+lt_error_core (int exit_status, const char * mode,
+         const char * message, va_list ap)
+{
+  fprintf (stderr, "%s: %s: ", program_name, mode);
+  vfprintf (stderr, message, ap);
+  fprintf (stderr, ".\n");
+
+  if (exit_status >= 0)
+    exit (exit_status);
+}
+
+void
+lt_fatal (const char *message, ...)
+{
+  va_list ap;
+  va_start (ap, message);
+  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+  va_end (ap);
+}
+EOF
+         # we should really use a build-platform specific compiler
+         # here, but OTOH, the wrappers (shell script and this C one)
+         # are only useful if you want to execute the "real" binary.
+         # Since the "real" binary is built for $host, then this
+         # wrapper might as well be built for $host, too.
+         $opt_dry_run || $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
          ;;
        esac
+       $RM $output
+       trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
 
-       # Install the libtool object if requested.
-       if test -n "$destfile"; then
-         $show "$install_prog $file $destfile"
-         $run eval "$install_prog $file $destfile" || exit $?
-       fi
+       $ECHO > $output "\
+#! $SHELL
 
-       # Install the old object if enabled.
-       if test "$build_old_libs" = yes; then
-         # Deduce the name of the old-style object file.
-         staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
 
-         $show "$install_prog $staticobj $staticdest"
-         $run eval "$install_prog \$staticobj \$staticdest" || exit $?
-       fi
-       exit 0
-       ;;
+# Sed substitution that helps us do robust quoting.  It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='${SED} -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
 
-      *)
-       # Figure out destination file name, if it wasn't already specified.
-       if test -n "$destname"; then
-         destfile="$destdir/$destname"
-       else
-         destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-         destfile="$destdir/$destfile"
-       fi
+# Be Bourne compatible
+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
 
-       # Do a test to see if this is really a libtool program.
-       if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-         notinst_deplibs=
-         relink_command=
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
-         # If there is no directory component, then add one.
-         case $file in
-         */* | *\\*) . $file ;;
-         *) . ./$file ;;
-         esac
+relink_command=\"$relink_command\"
 
-         # Check the variables that should have been set.
-         if test -z "$notinst_deplibs"; then
-           $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2
-           exit 1
-         fi
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+  # install mode needs the following variables:
+  generated_by_libtool_version='$macro_version'
+  notinst_deplibs='$notinst_deplibs'
+else
+  # When we are sourced in execute mode, \$file and \$ECHO are already set.
+  if test \"\$libtool_execute_magic\" != \"$magic\"; then
+    ECHO=\"$qecho\"
+    file=\"\$0\"
+    # Make sure echo works.
+    if test \"X\$1\" = X--no-reexec; then
+      # Discard the --no-reexec flag, and continue.
+      shift
+    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
+      # Yippee, \$ECHO works!
+      :
+    else
+      # Restart under the correct shell, and then maybe \$ECHO will work.
+      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+    fi
+  fi\
+"
+       $ECHO >> $output "\
 
-         finalize=yes
-         for lib in $notinst_deplibs; do
-           # Check to see that each library is installed.
-           libdir=
-           if test -f "$lib"; then
-             # If there is no directory component, then add one.
-             case $lib in
-             */* | *\\*) . $lib ;;
-             *) . ./$lib ;;
-             esac
-           fi
-           libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
-           if test -n "$libdir" && test ! -f "$libfile"; then
-             $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
-             finalize=no
-           fi
-         done
+  # Find the directory that this script lives in.
+  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
 
-         relink_command=
-         # If there is no directory component, then add one.
-         case $file in
-         */* | *\\*) . $file ;;
-         *) . ./$file ;;
-         esac
+  # Follow symbolic links until we get to the real thisdir.
+  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+  while test -n \"\$file\"; do
+    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
 
-         outputname=
-         if test "$fast_install" = no && test -n "$relink_command"; then
-           if test "$finalize" = yes && test -z "$run"; then
-             tmpdir="/tmp"
-             test -n "$TMPDIR" && tmpdir="$TMPDIR"
-             tmpdir="$tmpdir/libtool-$$"
-             if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
-             else
-               $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
-               continue
-             fi
-             file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-             outputname="$tmpdir/$file"
-             # Replace the output file specification.
-             relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+    # If there was a directory component, then change thisdir.
+    if test \"x\$destdir\" != \"x\$file\"; then
+      case \"\$destdir\" in
+      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+      *) thisdir=\"\$thisdir/\$destdir\" ;;
+      esac
+    fi
 
-             $show "$relink_command"
-             if $run eval "$relink_command"; then :
-             else
-               $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-               ${rm}r "$tmpdir"
-               continue
-             fi
-             file="$outputname"
-           else
-             $echo "$modename: warning: cannot relink \`$file'" 1>&2
-           fi
-         else
-           # Install the binary that we compiled earlier.
-           file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
-         fi
-       fi
+    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+  done
 
+  # Try to get the absolute directory name.
+  absdir=\`cd \"\$thisdir\" && pwd\`
+  test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
 
-       # remove .exe since cygwin /usr/bin/install will append another
-       # one anyways
-       case $install_prog,$host in
-       */usr/bin/install*,*cygwin*)
-         case $file:$destfile in
-         *.exe:*.exe)
-           # this is ok
-           ;;
-         *.exe:*)
-           destfile=$destfile.exe
-           ;;
-         *:*.exe)
-           destfile=`echo $destfile | sed -e 's,.exe$,,'`
-           ;;
-         esac
-         ;;
-       esac
+       if test "$fast_install" = yes; then
+         $ECHO >> $output "\
+  program=lt-'$outputname'$exeext
+  progdir=\"\$thisdir/$objdir\"
 
-       $show "$install_prog$stripme $file $destfile"
-       $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
-       test -n "$outputname" && ${rm}r "$tmpdir"
-       ;;
-      esac
-    done
+  if test ! -f \"\$progdir/\$program\" ||
+     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
 
-    for file in $staticlibs; do
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+    file=\"\$\$-\$program\"
 
-      # Set up the ranlib parameters.
-      oldlib="$destdir/$name"
+    if test ! -d \"\$progdir\"; then
+      $MKDIR \"\$progdir\"
+    else
+      $RM \"\$progdir/\$file\"
+    fi"
 
-      $show "$install_prog $file $oldlib"
-      $run eval "$install_prog \$file \$oldlib" || exit $?
+         $ECHO >> $output "\
 
-      if test -n "$stripme" && test -n "$striplib"; then
-       $show "$old_striplib $oldlib"
-       $run eval "$old_striplib $oldlib" || exit $?
+    # relink executable if necessary
+    if test -n \"\$relink_command\"; then
+      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+      else
+       $ECHO \"\$relink_command_output\" >&2
+       $RM \"\$progdir/\$file\"
+       exit 1
       fi
+    fi
 
-      # Do each command in the postinstall commands.
-      eval cmds=\"$old_postinstall_cmds\"
-      IFS="${IFS=      }"; save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-       IFS="$save_ifs"
-       $show "$cmd"
-       $run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
+    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+    { $RM \"\$progdir/\$program\";
+      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+    $RM \"\$progdir/\$file\"
+  fi"
+       else
+         $ECHO >> $output "\
+  program='$outputname'
+  progdir=\"\$thisdir/$objdir\"
+"
+       fi
 
-    if test -n "$future_libdirs"; then
-      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
-    fi
+       $ECHO >> $output "\
 
-    if test -n "$current_libdirs"; then
-      # Maybe just do a dry run.
-      test -n "$run" && current_libdirs=" -n$current_libdirs"
-      exec_cmd='$SHELL $0 --finish$current_libdirs'
-    else
-      exit 0
-    fi
-    ;;
+  if test -f \"\$progdir/\$program\"; then"
 
-  # libtool finish mode
-  finish)
-    modename="$modename: finish"
-    libdirs="$nonopt"
-    admincmds=
+       # Export our shlibpath_var if we have one.
+       if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+         $ECHO >> $output "\
+    # Add our own library path to $shlibpath_var
+    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
 
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for dir
-      do
-       libdirs="$libdirs $dir"
-      done
+    # Some systems cannot cope with colon-terminated $shlibpath_var
+    # The second colon is a workaround for a bug in BeOS R4 sed
+    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
 
-      for libdir in $libdirs; do
-       if test -n "$finish_cmds"; then
-         # Do each command in the finish commands.
-         eval cmds=\"$finish_cmds\"
-         IFS="${IFS=   }"; save_ifs="$IFS"; IFS='~'
-         for cmd in $cmds; do
-           IFS="$save_ifs"
-           $show "$cmd"
-           $run eval "$cmd" || admincmds="$admincmds
-       $cmd"
-         done
-         IFS="$save_ifs"
+    export $shlibpath_var
+"
        fi
-       if test -n "$finish_eval"; then
-         # Do the single finish_eval.
-         eval cmds=\"$finish_eval\"
-         $run eval "$cmds" || admincmds="$admincmds
-       $cmds"
+
+       # fixup the dll searchpath if we need to.
+       if test -n "$dllsearchpath"; then
+         $ECHO >> $output "\
+    # Add the dll search path components to the executable PATH
+    PATH=$dllsearchpath:\$PATH
+"
        fi
-      done
-    fi
 
-    # Exit here if they wanted silent mode.
-    test "$show" = ":" && exit 0
+       $ECHO >> $output "\
+    if test \"\$libtool_execute_magic\" != \"$magic\"; then
+      # Run the actual program with our arguments.
+"
+       case $host in
+       # Backslashes separate directories on plain windows
+       *-*-mingw | *-*-os2*)
+         $ECHO >> $output "\
+      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+         ;;
 
-    echo "----------------------------------------------------------------------"
-    echo "Libraries have been installed in:"
-    for libdir in $libdirs; do
-      echo "   $libdir"
-    done
-    echo
-    echo "If you ever happen to want to link against installed libraries"
-    echo "in a given directory, LIBDIR, you must either use libtool, and"
-    echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
-    echo "flag during linking and do at least one of the following:"
-    if test -n "$shlibpath_var"; then
-      echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-      echo "     during execution"
-    fi
-    if test -n "$runpath_var"; then
-      echo "   - add LIBDIR to the \`$runpath_var' environment variable"
-      echo "     during linking"
+       *)
+         $ECHO >> $output "\
+      exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+         ;;
+       esac
+       $ECHO >> $output "\
+      \$ECHO \"\$0: cannot exec \$program \$*\"
+      exit 1
     fi
-    if test -n "$hardcode_libdir_flag_spec"; then
-      libdir=LIBDIR
-      eval flag=\"$hardcode_libdir_flag_spec\"
+  else
+    # The program doesn't exist.
+    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
+    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
+    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+    exit 1
+  fi
+fi\
+"
+       chmod +x $output
+      }
+      exit $EXIT_SUCCESS
+      ;;
+    esac
 
-      echo "   - use the \`$flag' linker flag"
-    fi
-    if test -n "$admincmds"; then
-      echo "   - have your system administrator run these commands:$admincmds"
-    fi
-    if test -f /etc/ld.so.conf; then
-      echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-    fi
-    echo
-    echo "See any operating system documentation about shared libraries for"
-    echo "more information, such as the ld(1) and ld.so(8) manual pages."
-    echo "----------------------------------------------------------------------"
-    exit 0
-    ;;
+    # See if we need to build an old-fashioned archive.
+    for oldlib in $oldlibs; do
 
-  # libtool execute mode
-  execute)
-    modename="$modename: execute"
+      if test "$build_libtool_libs" = convenience; then
+       oldobjs="$libobjs_save $symfileobj"
+       addlibs="$convenience"
+       build_libtool_libs=no
+      else
+       if test "$build_libtool_libs" = module; then
+         oldobjs="$libobjs_save"
+         build_libtool_libs=no
+       else
+         oldobjs="$old_deplibs $non_pic_objects"
+         if test "$preload" = yes && test -f "$symfileobj"; then
+           oldobjs="$oldobjs $symfileobj"
+         fi
+       fi
+       addlibs="$old_convenience"
+      fi
 
-    # The first argument is the command name.
-    cmd="$nonopt"
-    if test -z "$cmd"; then
-      $echo "$modename: you must specify a COMMAND" 1>&2
-      $echo "$help"
-      exit 1
-    fi
+      if test -n "$addlibs"; then
+       gentop="$output_objdir/${outputname}x"
+       generated="$generated $gentop"
 
-    # Handle -dlopen flags immediately.
-    for file in $execute_dlfiles; do
-      if test ! -f "$file"; then
-       $echo "$modename: \`$file' is not a file" 1>&2
-       $echo "$help" 1>&2
-       exit 1
+       func_extract_archives $gentop $addlibs
+       oldobjs="$oldobjs $func_extract_archives_result"
       fi
 
-      dir=
-      case $file in
-      *.la)
-       # Check to see that this really is a libtool archive.
-       if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+      # Do each command in the archive commands.
+      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+       cmds=$old_archive_from_new_cmds
+      else
+
+       # Add any objects from preloaded convenience libraries
+       if test -n "$dlprefiles"; then
+         gentop="$output_objdir/${outputname}x"
+         generated="$generated $gentop"
+
+         func_extract_archives $gentop $dlprefiles
+         oldobjs="$oldobjs $func_extract_archives_result"
+       fi
+
+       # POSIX demands no paths to be encoded in archives.  We have
+       # to avoid creating archives with duplicate basenames if we
+       # might have to extract them afterwards, e.g., when creating a
+       # static archive out of a convenience library, or when linking
+       # the entirety of a libtool archive into another (currently
+       # not supported by libtool).
+       if (for obj in $oldobjs
+           do
+             func_basename "$obj"
+             $ECHO "$func_basename_result"
+           done | sort | sort -uc >/dev/null 2>&1); then
+         :
        else
-         $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-         $echo "$help" 1>&2
-         exit 1
+         $ECHO "copying selected object files to avoid basename conflicts..."
+         gentop="$output_objdir/${outputname}x"
+         generated="$generated $gentop"
+         func_mkdir_p "$gentop"
+         save_oldobjs=$oldobjs
+         oldobjs=
+         counter=1
+         for obj in $save_oldobjs
+         do
+           func_basename "$obj"
+           objbase="$func_basename_result"
+           case " $oldobjs " in
+           " ") oldobjs=$obj ;;
+           *[\ /]"$objbase "*)
+             while :; do
+               # Make sure we don't pick an alternate name that also
+               # overlaps.
+               newobj=lt$counter-$objbase
+               counter=`expr $counter + 1`
+               case " $oldobjs " in
+               *[\ /]"$newobj "*) ;;
+               *) if test ! -f "$gentop/$newobj"; then break; fi ;;
+               esac
+             done
+             func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+             oldobjs="$oldobjs $gentop/$newobj"
+             ;;
+           *) oldobjs="$oldobjs $obj" ;;
+           esac
+         done
        fi
+       eval cmds=\"$old_archive_cmds\"
 
-       # Read the libtool library.
-       dlname=
-       library_names=
+       if len=`expr "X$cmds" : ".*" 2>/dev/null` &&
+          test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+         cmds=$old_archive_cmds
+       else
+         # the command line is too long to link in one step, link in parts
+         func_echo "using piecewise archive linking..."
+         save_RANLIB=$RANLIB
+         RANLIB=:
+         objlist=
+         concat_cmds=
+         save_oldobjs=$oldobjs
+         # Is there a better way of finding the last object in the list?
+         for obj in $save_oldobjs
+         do
+           last_oldobj=$obj
+         done
+         for obj in $save_oldobjs
+         do
+           oldobjs="$objlist $obj"
+           objlist="$objlist $obj"
+           eval test_cmds=\"$old_archive_cmds\"
+           if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+              test "$len" -le "$max_cmd_len"; then
+             :
+           else
+             # the above command should be used before it gets too long
+             oldobjs=$objlist
+             if test "$obj" = "$last_oldobj" ; then
+               RANLIB=$save_RANLIB
+             fi
+             test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+             eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+             objlist=
+           fi
+         done
+         RANLIB=$save_RANLIB
+         oldobjs=$objlist
+         if test "X$oldobjs" = "X" ; then
+           eval cmds=\"\$concat_cmds\"
+         else
+           eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+         fi
+       fi
+      fi
+      func_execute_cmds "$cmds" 'exit $?'
+    done
+
+    test -n "$generated" && \
+      func_show_eval "${RM}r$generated"
+
+    # Now create the libtool archive.
+    case $output in
+    *.la)
+      old_library=
+      test "$build_old_libs" = yes && old_library="$libname.$libext"
+      func_echo "creating $output"
+
+      # Preserve any variables that may affect compiler behavior
+      for var in $variables_saved_for_relink; do
+       if eval test -z \"\${$var+set}\"; then
+         relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+       elif eval var_value=\$$var; test -z "$var_value"; then
+         relink_command="$var=; export $var; $relink_command"
+       else
+         func_quote_for_eval "$var_value"
+         relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
+       fi
+      done
+      # Quote the link command for shipping.
+      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+      if test "$hardcode_automatic" = yes ; then
+       relink_command=
+      fi
+
+      # Only create the output if not a dry run.
+      $opt_dry_run || {
+       for installed in no yes; do
+         if test "$installed" = yes; then
+           if test -z "$install_libdir"; then
+             break
+           fi
+           output="$output_objdir/$outputname"i
+           # Replace all uninstalled libtool libraries with the installed ones
+           newdependency_libs=
+           for deplib in $dependency_libs; do
+             case $deplib in
+             *.la)
+               func_basename "$deplib"
+               name="$func_basename_result"
+               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+               test -z "$libdir" && \
+                 func_fatal_error "\`$deplib' is not a valid libtool archive"
+               newdependency_libs="$newdependency_libs $libdir/$name"
+               ;;
+             *) newdependency_libs="$newdependency_libs $deplib" ;;
+             esac
+           done
+           dependency_libs="$newdependency_libs"
+           newdlfiles=
+
+           for lib in $dlfiles; do
+             case $lib in
+             *.la)
+               func_basename "$lib"
+               name="$func_basename_result"
+               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+               test -z "$libdir" && \
+                 func_fatal_error "\`$lib' is not a valid libtool archive"
+               newdlfiles="$newdlfiles $libdir/$name"
+               ;;
+             *) newdlfiles="$newdlfiles $lib" ;;
+             esac
+           done
+           dlfiles="$newdlfiles"
+           newdlprefiles=
+           for lib in $dlprefiles; do
+             case $lib in
+             *.la)
+               # Only pass preopened files to the pseudo-archive (for
+               # eventual linking with the app. that links it) if we
+               # didn't already link the preopened objects directly into
+               # the library:
+               func_basename "$lib"
+               name="$func_basename_result"
+               eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+               test -z "$libdir" && \
+                 func_fatal_error "\`$lib' is not a valid libtool archive"
+               newdlprefiles="$newdlprefiles $libdir/$name"
+               ;;
+             esac
+           done
+           dlprefiles="$newdlprefiles"
+         else
+           newdlfiles=
+           for lib in $dlfiles; do
+             case $lib in
+               [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+               *) abs=`pwd`"/$lib" ;;
+             esac
+             newdlfiles="$newdlfiles $abs"
+           done
+           dlfiles="$newdlfiles"
+           newdlprefiles=
+           for lib in $dlprefiles; do
+             case $lib in
+               [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+               *) abs=`pwd`"/$lib" ;;
+             esac
+             newdlprefiles="$newdlprefiles $abs"
+           done
+           dlprefiles="$newdlprefiles"
+         fi
+         $RM $output
+         # place dlname in correct position for cygwin
+         tdlname=$dlname
+         case $host,$output,$installed,$module,$dlname in
+           *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+         esac
+         $ECHO > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
 
-       # If there is no directory component, then add one.
-       case $file in
-       */* | *\\*) . $file ;;
-       *) . ./$file ;;
-       esac
+# The name that we can dlopen(3).
+dlname='$tdlname'
 
-       # Skip this library if it cannot be dlopened.
-       if test -z "$dlname"; then
-         # Warn if it was a shared library.
-         test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
-         continue
-       fi
+# Names of this library.
+library_names='$library_names'
 
-       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-       test "X$dir" = "X$file" && dir=.
+# The name of the static archive.
+old_library='$old_library'
 
-       if test -f "$dir/$objdir/$dlname"; then
-         dir="$dir/$objdir"
-       else
-         $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
-         exit 1
-       fi
-       ;;
+# Linker flags that can not go in dependency_libs.
+inherited_linker_flags='$new_inherited_linker_flags'
 
-      *.lo)
-       # Just add the directory containing the .lo file.
-       dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-       test "X$dir" = "X$file" && dir=.
-       ;;
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
 
-      *)
-       $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
-       continue
-       ;;
-      esac
+# Names of additional weak libraries provided by this library
+weak_library_names='$weak_libs'
 
-      # Get the absolute pathname.
-      absdir=`cd "$dir" && pwd`
-      test -n "$absdir" && dir="$absdir"
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
 
-      # Now add the directory to shlibpath_var.
-      if eval "test -z \"\$$shlibpath_var\""; then
-       eval "$shlibpath_var=\"\$dir\""
-      else
-       eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
-      fi
-    done
+# Is this an already installed library?
+installed=$installed
 
-    # This variable tells wrapper scripts just to set shlibpath_var
-    # rather than running their programs.
-    libtool_execute_magic="$magic"
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
 
-    # Check if any of the arguments is a wrapper script.
-    args=
-    for file
-    do
-      case $file in
-      -*) ;;
-      *)
-       # Do a test to see if this is really a libtool program.
-       if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-         # If there is no directory component, then add one.
-         case $file in
-         */* | *\\*) . $file ;;
-         *) . ./$file ;;
-         esac
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
 
-         # Transform arg to wrapped name.
-         file="$progdir/$program"
-       fi
-       ;;
-      esac
-      # Quote arguments (to preserve shell metacharacters).
-      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
-      args="$args \"$file\""
-    done
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+         if test "$installed" = no && test "$need_relink" = yes; then
+           $ECHO >> $output "\
+relink_command=\"$relink_command\""
+         fi
+       done
+      }
 
-    if test -z "$run"; then
-      if test -n "$shlibpath_var"; then
-       # Export the shlibpath_var.
-       eval "export $shlibpath_var"
-      fi
+      # Do a symbolic link so that the libtool archive can be found in
+      # LD_LIBRARY_PATH before the program is installed.
+      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
+      ;;
+    esac
+    exit $EXIT_SUCCESS
+}
 
-      # Restore saved enviroment variables
-      if test "${save_LC_ALL+set}" = set; then
-       LC_ALL="$save_LC_ALL"; export LC_ALL
-      fi
-      if test "${save_LANG+set}" = set; then
-       LANG="$save_LANG"; export LANG
-      fi
+{ test "$mode" = link || test "$mode" = relink; } &&
+    func_mode_link ${1+"$@"}
 
-      # Now prepare to actually exec the command.
-      exec_cmd='"$cmd"$args'
-    else
-      # Display what would be done.
-      if test -n "$shlibpath_var"; then
-       eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
-       $echo "export $shlibpath_var"
-      fi
-      $echo "$cmd$args"
-      exit 0
-    fi
-    ;;
 
-  # libtool clean and uninstall mode
-  clean | uninstall)
-    modename="$modename: $mode"
-    rm="$nonopt"
+# func_mode_uninstall arg...
+func_mode_uninstall ()
+{
+    $opt_debug
+    RM="$nonopt"
     files=
     rmforce=
     exit_status=0
@@ -5295,33 +7191,32 @@ relink_command=\"$relink_command\""
     for arg
     do
       case $arg in
-      -f) rm="$rm $arg"; rmforce=yes ;;
-      -*) rm="$rm $arg" ;;
+      -f) RM="$RM $arg"; rmforce=yes ;;
+      -*) RM="$RM $arg" ;;
       *) files="$files $arg" ;;
       esac
     done
 
-    if test -z "$rm"; then
-      $echo "$modename: you must specify an RM program" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
+    test -z "$RM" && \
+      func_fatal_help "you must specify an RM program"
 
     rmdirs=
 
+    origobjdir="$objdir"
     for file in $files; do
-      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-      if test "X$dir" = "X$file"; then
-       dir=.
-       objdir="$objdir"
+      func_dirname "$file" "" "."
+      dir="$func_dirname_result"
+      if test "X$dir" = X.; then
+       objdir="$origobjdir"
       else
-       objdir="$dir/$objdir"
+       objdir="$dir/$origobjdir"
       fi
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-      test $mode = uninstall && objdir="$dir"
+      func_basename "$file"
+      name="$func_basename_result"
+      test "$mode" = uninstall && objdir="$dir"
 
       # Remember objdir for removal later, being careful to avoid duplicates
-      if test $mode = clean; then
+      if test "$mode" = clean; then
        case " $rmdirs " in
          *" $objdir "*) ;;
          *) rmdirs="$rmdirs $objdir" ;;
@@ -5329,15 +7224,15 @@ relink_command=\"$relink_command\""
       fi
 
       # Don't error if the file doesn't exist and rm -f was used.
-      if (test -L "$file") >/dev/null 2>&1 \
-        || (test -h "$file") >/dev/null 2>&1 \
-       || test -f "$file"; then
-        :
+      if { test -L "$file"; } >/dev/null 2>&1 ||
+        { test -h "$file"; } >/dev/null 2>&1 ||
+        test -f "$file"; then
+       :
       elif test -d "$file"; then
-        exit_status=1
+       exit_status=1
        continue
       elif test "$rmforce" = yes; then
-        continue
+       continue
       fi
 
       rmfiles="$file"
@@ -5345,312 +7240,125 @@ relink_command=\"$relink_command\""
       case $name in
       *.la)
        # Possibly a libtool archive, so verify it.
-       if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-         . $dir/$name
+       if func_lalib_p "$file"; then
+         func_source $dir/$name
 
          # Delete the libtool libraries and symlinks.
          for n in $library_names; do
            rmfiles="$rmfiles $objdir/$n"
          done
          test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
-         test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
 
-         if test $mode = uninstall; then
+         case "$mode" in
+         clean)
+           case "  $library_names " in
+           # "  " in the beginning catches empty $dlname
+           *" $dlname "*) ;;
+           *) rmfiles="$rmfiles $objdir/$dlname" ;;
+           esac
+           test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+           ;;
+         uninstall)
            if test -n "$library_names"; then
              # Do each command in the postuninstall commands.
-             eval cmds=\"$postuninstall_cmds\"
-             IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
-             for cmd in $cmds; do
-               IFS="$save_ifs"
-               $show "$cmd"
-               $run eval "$cmd"
-               if test $? != 0 && test "$rmforce" != yes; then
-                 exit_status=1
-               fi
-             done
-             IFS="$save_ifs"
+             func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
            fi
 
            if test -n "$old_library"; then
              # Do each command in the old_postuninstall commands.
-             eval cmds=\"$old_postuninstall_cmds\"
-             IFS="${IFS=       }"; save_ifs="$IFS"; IFS='~'
-             for cmd in $cmds; do
-               IFS="$save_ifs"
-               $show "$cmd"
-               $run eval "$cmd"
-               if test $? != 0 && test "$rmforce" != yes; then
-                 exit_status=1
-               fi
-             done
-             IFS="$save_ifs"
+             func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
            fi
            # FIXME: should reinstall the best remaining shared library.
-         fi
+           ;;
+         esac
        fi
        ;;
 
       *.lo)
        # Possibly a libtool object, so verify it.
-       if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+       if func_lalib_p "$file"; then
 
-          # Read the .lo file
-          . $dir/$name
+         # Read the .lo file
+         func_source $dir/$name
 
          # Add PIC object to the list of files to remove.
-          if test -n "$pic_object" \
-             && test "$pic_object" != none; then
+         if test -n "$pic_object" &&
+            test "$pic_object" != none; then
            rmfiles="$rmfiles $dir/$pic_object"
-          fi
+         fi
 
          # Add non-PIC object to the list of files to remove.
-          if test -n "$non_pic_object" \
-             && test "$non_pic_object" != none; then
+         if test -n "$non_pic_object" &&
+            test "$non_pic_object" != none; then
            rmfiles="$rmfiles $dir/$non_pic_object"
-          fi
+         fi
        fi
        ;;
 
       *)
-       # Do a test to see if this is a libtool program.
-       if test $mode = clean &&
-          (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-         relink_command=
-         . $dir/$file
+       if test "$mode" = clean ; then
+         noexename=$name
+         case $file in
+         *.exe)
+           func_stripname '' '.exe' "$file"
+           file=$func_stripname_result
+           func_stripname '' '.exe' "$name"
+           noexename=$func_stripname_result
+           # $file with .exe has already been added to rmfiles,
+           # add $file without .exe
+           rmfiles="$rmfiles $file"
+           ;;
+         esac
+         # Do a test to see if this is a libtool program.
+         if func_ltwrapper_p "$file"; then
+           relink_command=
+           func_source $dir/$noexename
 
-         rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
-         if test "$fast_install" = yes && test -n "$relink_command"; then
-           rmfiles="$rmfiles $objdir/lt-$name"
+           # note $name still contains .exe if it was in $file originally
+           # as does the version of $file that was added into $rmfiles
+           rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+           if test "$fast_install" = yes && test -n "$relink_command"; then
+             rmfiles="$rmfiles $objdir/lt-$name"
+           fi
+           if test "X$noexename" != "X$name" ; then
+             rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+           fi
          fi
        fi
        ;;
       esac
-      $show "$rm $rmfiles"
-      $run $rm $rmfiles || exit_status=1
+      func_show_eval "$RM $rmfiles" 'exit_status=1'
     done
+    objdir="$origobjdir"
 
     # Try to remove the ${objdir}s in the directories where we deleted files
     for dir in $rmdirs; do
       if test -d "$dir"; then
-       $show "rmdir $dir"
-       $run rmdir $dir >/dev/null 2>&1
+       func_show_eval "rmdir $dir >/dev/null 2>&1"
       fi
     done
 
     exit $exit_status
-    ;;
+}
 
-  "")
-    $echo "$modename: you must specify a MODE" 1>&2
-    $echo "$generic_help" 1>&2
-    exit 1
-    ;;
-  esac
+{ test "$mode" = uninstall || test "$mode" = clean; } &&
+    func_mode_uninstall ${1+"$@"}
 
-  if test -z "$exec_cmd"; then
-    $echo "$modename: invalid operation mode \`$mode'" 1>&2
-    $echo "$generic_help" 1>&2
-    exit 1
-  fi
-fi # test -z "$show_help"
+test -z "$mode" && {
+  help="$generic_help"
+  func_fatal_help "you must specify a MODE"
+}
+
+test -z "$exec_cmd" && \
+  func_fatal_help "invalid operation mode \`$mode'"
 
 if test -n "$exec_cmd"; then
-  eval exec $exec_cmd
-  exit 1
+  eval exec "$exec_cmd"
+  exit $EXIT_FAILURE
 fi
 
-# We need to display help for each of the modes.
-case $mode in
-"") $echo \
-"Usage: $modename [OPTION]... [MODE-ARG]...
-
-Provide generalized library-building support services.
-
-    --config          show all configuration variables
-    --debug           enable verbose shell tracing
--n, --dry-run         display commands without modifying any files
-    --features        display basic configuration information and exit
-    --finish          same as \`--mode=finish'
-    --help            display this help message and exit
-    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
-    --quiet           same as \`--silent'
-    --silent          don't print informational messages
-    --tag=TAG         use configuration variables from tag TAG
-    --version         print version information
-
-MODE must be one of the following:
-
-      clean           remove files from the build directory
-      compile         compile a source file into a libtool object
-      execute         automatically set library path, then run a program
-      finish          complete the installation of libtool libraries
-      install         install libraries or executables
-      link            create a library or an executable
-      uninstall       remove libraries from an installed directory
-
-MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
-a more detailed description of MODE."
-  exit 0
-  ;;
-
-clean)
-  $echo \
-"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
-  ;;
-
-compile)
-  $echo \
-"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
-  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
-  -prefer-pic       try to building PIC objects only
-  -prefer-non-pic   try to building non-PIC objects only
-  -static           always build a \`.o' file suitable for static linking
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
-  ;;
-
-execute)
-  $echo \
-"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
-  -dlopen FILE      add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
-  ;;
-
-finish)
-  $echo \
-"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges.  Use
-the \`--dry-run' option if you just want to see what would be executed."
-  ;;
-
-install)
-  $echo \
-"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command.  The first component should be
-either the \`install' or \`cp' program.
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
-  ;;
-
-link)
-  $echo \
-"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
-  -all-static       do not do any dynamic linking at all
-  -avoid-version    do not add a version suffix if possible
-  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
-  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
-  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-  -export-symbols SYMFILE
-                   try to export only the symbols listed in SYMFILE
-  -export-symbols-regex REGEX
-                   try to export only the symbols matching REGEX
-  -LLIBDIR          search LIBDIR for required installed libraries
-  -lNAME            OUTPUT-FILE requires the installed library libNAME
-  -module           build a library that can dlopened
-  -no-fast-install  disable the fast-install mode
-  -no-install       link a not-installable executable
-  -no-undefined     declare that a library does not refer to external symbols
-  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-  -objectlist FILE  Use a list of object files found in FILE to specify objects
-  -release RELEASE  specify package release information
-  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
-  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
-  -static           do not do any dynamic linking of libtool libraries
-  -version-info CURRENT[:REVISION[:AGE]]
-                   specify library version info [each variable defaults to 0]
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename.  Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
-  ;;
-
-uninstall)
-  $echo \
-"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
-  ;;
-
-*)
-  $echo "$modename: invalid operation mode \`$mode'" 1>&2
-  $echo "$help" 1>&2
-  exit 1
-  ;;
-esac
-
-echo
-$echo "Try \`$modename --help' for more information about other modes."
+exit $exit_status
 
-exit 0
 
 # The TAGs below are defined such that we never get into a situation
 # in which we disable both kinds of libraries.  Given conflicting
@@ -5663,16 +7371,19 @@ exit 0
 # If a disable-shared tag is given, we'll fallback to a static-only
 # configuration.  But we'll never go from static-only to shared-only.
 
-### BEGIN LIBTOOL TAG CONFIG: disable-shared
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
 build_libtool_libs=no
 build_old_libs=yes
-### END LIBTOOL TAG CONFIG: disable-shared
+# ### END LIBTOOL TAG CONFIG: disable-shared
 
-### BEGIN LIBTOOL TAG CONFIG: disable-static
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
 build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
-### END LIBTOOL TAG CONFIG: disable-static
+# ### END LIBTOOL TAG CONFIG: disable-static
 
 # Local Variables:
 # mode:shell-script
 # sh-indentation:2
 # End:
+# vi:sw=2
+
+
diff --git a/libjava/classpath/m4/ac_prog_javac.m4 b/libjava/classpath/m4/ac_prog_javac.m4
new file mode 100644 (file)
index 0000000..869c194
--- /dev/null
@@ -0,0 +1,51 @@
+dnl @synopsis AC_PROG_JAVAC
+dnl
+dnl AC_PROG_JAVAC tests an existing Java compiler. It uses the
+dnl environment variable JAVAC then tests in sequence various common
+dnl Java compilers. For political reasons, it starts with the free
+dnl ones.
+dnl
+dnl If you want to force a specific compiler:
+dnl
+dnl - at the configure.in level, set JAVAC=yourcompiler before calling
+dnl AC_PROG_JAVAC
+dnl
+dnl - at the configure level, setenv JAVAC
+dnl
+dnl You can use the JAVAC variable in your Makefile.in, with @JAVAC@.
+dnl
+dnl *Warning*: its success or failure can depend on a proper setting of
+dnl the CLASSPATH env. variable.
+dnl
+dnl TODO: allow to exclude compilers (rationale: most Java programs
+dnl cannot compile with some compilers like guavac).
+dnl
+dnl Note: This is part of the set of autoconf M4 macros for Java
+dnl programs. It is VERY IMPORTANT that you download the whole set,
+dnl some macros depend on other. Unfortunately, the autoconf archive
+dnl does not support the concept of set of macros, so I had to break it
+dnl for submission. The general documentation, as well as the sample
+dnl configure.in, is included in the AC_PROG_JAVA macro.
+dnl
+dnl @category Java
+dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr>
+dnl @version 2000-07-19
+dnl @license GPLWithACException
+dnl
+dnl Modified to remove jikes by Andrew John Hughes on 2008-02-11
+
+AC_DEFUN([AC_PROG_JAVAC],[
+AC_REQUIRE([AC_EXEEXT])dnl
+if test "x$JAVAPREFIX" = x; then
+        test "x$JAVAC" = x && AC_CHECK_PROGS(JAVAC, ["ecj$EXEEXT -warn:-deprecation,serial,unusedImport"] ["ecj-3.3$EXEEXT -warn:-deprecation,serial,unusedImport"] ["ecj-3.2$EXEEXT -warn:-deprecation,serial,unusedImport"] ["javac$EXEEXT -Xlint:unchecked"] "gcj$EXEEXT -C")
+else
+        test "x$JAVAC" = x && AC_CHECK_PROGS(JAVAC, ["ecj$EXEEXT -warn:-deprecation,serial,unusedImport"] ["ecj-3.3$EXEEXT -warn:-deprecation,serial,unusedImport"] ["ecj-3.2$EXEEXT -warn:-deprecation,serial,unusedImport"] ["javac$EXEEXT -Xlint:unchecked"] "gcj$EXEEXT -C", $JAVAPREFIX)
+fi
+test "x$JAVAC" = x && AC_MSG_ERROR([no acceptable Java compiler found in \$PATH])
+dnl GCJ LOCAL
+if test "$enable_java_maintainer_mode" = yes; then
+AC_PROG_JAVAC_WORKS
+fi
+dnl END GCJ LOCAL
+AC_PROVIDE([$0])dnl
+])
diff --git a/libjava/classpath/m4/ac_prog_javac_works.m4 b/libjava/classpath/m4/ac_prog_javac_works.m4
new file mode 100644 (file)
index 0000000..827ecc9
--- /dev/null
@@ -0,0 +1,45 @@
+dnl @synopsis AC_PROG_JAVAC_WORKS
+dnl
+dnl Internal use ONLY.
+dnl
+dnl Note: This is part of the set of autoconf M4 macros for Java
+dnl programs. It is VERY IMPORTANT that you download the whole set,
+dnl some macros depend on other. Unfortunately, the autoconf archive
+dnl does not support the concept of set of macros, so I had to break it
+dnl for submission. The general documentation, as well as the sample
+dnl configure.in, is included in the AC_PROG_JAVA macro.
+dnl
+dnl @category Java
+dnl @author Stephane Bortzmeyer <bortzmeyer@pasteur.fr>
+dnl @version 2000-07-19
+dnl @license GPLWithACException
+dnl
+dnl Modified to test for 1.5 by Andrew John Hughes on 2008-02-11
+
+AC_DEFUN([AC_PROG_JAVAC_WORKS],[
+AC_CACHE_CHECK([if $JAVAC works], ac_cv_prog_javac_works, [
+JAVA_TEST=Object.java
+CLASS_TEST=Object.class
+cat << \EOF > $JAVA_TEST
+/* [#]line __oline__ "configure" */
+package java.lang;
+
+public class Object
+{
+  static <T> void doStuff()
+  {
+  }
+}
+EOF
+dnl GCJ LOCAL: don't call JAVAC with $JAVACFLAGS -source 1.5 -target 1.5
+if AC_TRY_COMMAND($JAVAC $JAVA_TEST) >/dev/null 2>&1; then
+  ac_cv_prog_javac_works=yes
+else
+  AC_MSG_ERROR([The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)])
+  echo "configure: failed program was:" >&AC_FD_CC
+  cat $JAVA_TEST >&AC_FD_CC
+fi
+rm -f $JAVA_TEST $CLASS_TEST
+])
+AC_PROVIDE([$0])dnl
+])
index e61ddd8038c95faa12020aff32096249bfc131b2..6c4eacda48669aa51c339761f917d77b144c742a 100644 (file)
@@ -1,193 +1,5 @@
 dnl Used by aclocal to generate configure
 
-dnl -----------------------------------------------------------
-AC_DEFUN([CLASSPATH_FIND_JAVAC],
-[
-  user_specified_javac=
-
-  CLASSPATH_WITH_GCJ
-  CLASSPATH_WITH_JIKES
-  CLASSPATH_WITH_KJC
-  CLASSPATH_WITH_ECJ
-  CLASSPATH_WITH_JAVAC
-
-  if test "x${user_specified_javac}" = x; then
-    AM_CONDITIONAL(FOUND_GCJ, test "x${GCJ}" != x)
-    AM_CONDITIONAL(FOUND_JIKES, test "x${JIKES}" != x)
-    AM_CONDITIONAL(FOUND_ECJ, test "x${ECJ}" != x)
-    AM_CONDITIONAL(FOUND_JAVAC, test "x${JAVAC}" != x)
-  else
-    AM_CONDITIONAL(FOUND_GCJ, test "x${user_specified_javac}" = xgcj)
-    AM_CONDITIONAL(FOUND_JIKES, test "x${user_specified_javac}" = xjikes)
-    AM_CONDITIONAL(FOUND_ECJ, test "x${user_specified_javac}" = xecj)
-    AM_CONDITIONAL(FOUND_JAVAC, test "x${user_specified_javac}" = xjavac)
-  fi
-  AM_CONDITIONAL(FOUND_KJC, test "x${user_specified_javac}" = xkjc)
-
-  ## GCJ LOCAL
-  if test "x${GCJ}" = x && test "x${JIKES}" = x && test "x${ECJ}" = x \
-     && test "x${JAVAC}" = x && test "x${user_specified_javac}" != xkjc
-  then
-      AC_MSG_ERROR([cannot find javac, try --with-ecj])
-  fi
-  ## END GCJ LOCAL
-])
-
-dnl -----------------------------------------------------------
-AC_DEFUN([CLASSPATH_WITH_GCJ],
-[
-  AC_ARG_WITH([gcj],
-             [AS_HELP_STRING(--with-gcj,bytecode compilation with gcj)],
-  [
-    if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
-      CLASSPATH_CHECK_GCJ(${withval})
-    else
-      if test "x${withval}" != xno; then
-        CLASSPATH_CHECK_GCJ
-      fi
-    fi
-    user_specified_javac=gcj
-  ],
-  [
-    CLASSPATH_CHECK_GCJ
-  ])
-  AC_SUBST(GCJ)
-])
-
-dnl -----------------------------------------------------------
-AC_DEFUN([CLASSPATH_CHECK_GCJ],
-[
-  if test "x$1" != x; then
-    if test -f "$1"; then
-      GCJ="$1"
-    else
-      AC_PATH_PROG(GCJ, "$1")
-    fi
-  else
-    AC_PATH_PROG(GCJ, "gcj")
-  fi  
-  dnl Test the given GCJ, but use it as C (!) compiler to check version
-  if test "x$GCJ" != x; then
-    AC_MSG_CHECKING([gcj version 4.0])
-    AC_LANG_PUSH([C])
-    AC_LANG_CONFTEST(
-    [[#if __GNUC__ <= 3
-    #error GCJ 4.0.0 or higher is required
-    #endif
-    ]])
-    $GCJ -E conftest.c > /dev/null
-    gcj_4_result=$?
-    if test "x$gcj_4_result" = "x0"; then
-      AC_MSG_RESULT([4.0 or higher found])
-    else
-      AC_MSG_WARN([4.0 or higher required])
-    fi
-    AC_LANG_POP
-  fi 
-])
-
-dnl -----------------------------------------------------------
-AC_DEFUN([CLASSPATH_WITH_JIKES],
-[
-  AC_ARG_WITH([jikes],
-             [AS_HELP_STRING(--with-jikes,bytecode compilation with jikes)],
-  [
-    if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
-      CLASSPATH_CHECK_JIKES(${withval})
-    else
-      if test "x${withval}" != xno; then
-        CLASSPATH_CHECK_JIKES
-      fi
-    fi
-    user_specified_javac=jikes
-  ],
-  [ 
-    CLASSPATH_CHECK_JIKES
-  ])
-  AC_SUBST(JIKES)
-])
-
-dnl -----------------------------------------------------------
-AC_DEFUN([CLASSPATH_CHECK_JIKES],
-[
-  if test "x$1" != x; then
-    if test -f "$1"; then
-      JIKES="$1"
-    else
-      AC_PATH_PROG(JIKES, "$1")
-    fi
-  else
-    AC_PATH_PROG(JIKES, "jikes")
-  fi
-  if test "x$JIKES" != "x"; then
-    dnl Require at least version 1.19
-    AC_MSG_CHECKING(jikes version)
-    JIKES_VERSION=`$JIKES --version | awk '/^Jikes Compiler/' | cut -d ' ' -f 5`
-    JIKES_VERSION_MAJOR=`echo "$JIKES_VERSION" | cut -d '.' -f 1`
-    JIKES_VERSION_MINOR=`echo "$JIKES_VERSION" | cut -d '.' -f 2`
-    if expr "$JIKES_VERSION_MAJOR" = 1 > /dev/null; then
-      if expr "$JIKES_VERSION_MINOR" \< 19 > /dev/null; then
-        JIKES=""
-      fi
-    fi
-    if test "x$JIKES" != "x"; then
-      AC_MSG_RESULT($JIKES_VERSION)
-    else
-      AC_MSG_WARN($JIKES_VERSION: jikes 1.19 or higher required)
-    fi
-
-    JIKESENCODING=
-    if test -n "`$JIKES --help 2>&1 | grep encoding`"; then
-      JIKESENCODING='-encoding UTF-8'
-    fi
-    AC_SUBST(JIKESENCODING)
-
-    JIKESWARNINGS="+Pno-switchcheck"
-    if test "x$JIKES_VERSION_MAJOR" = x"1" ; then
-      if ! test "x$JIKES_VERSION_MINOR" = x"19"; then
-        JIKESWARNINGS="$JIKESWARNINGS +Pno-shadow"
-      fi
-    fi
-    AC_SUBST(JIKESWARNINGS)
-
-  fi
-])
-
-dnl -----------------------------------------------------------
-AC_DEFUN([CLASSPATH_WITH_KJC],
-[
-  AC_ARG_WITH([kjc], 
-             [AS_HELP_STRING(--with-kjc,bytecode compilation with kjc)],
-  [
-    if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
-      CLASSPATH_CHECK_KJC(${withval})
-    else
-      if test "x${withval}" != xno; then
-        CLASSPATH_CHECK_KJC
-      fi
-    fi
-    user_specified_javac=kjc
-  ],
-  [ 
-    CLASSPATH_CHECK_KJC
-  ])
-  AC_SUBST(KJC)
-])
-
-dnl -----------------------------------------------------------
-AC_DEFUN([CLASSPATH_CHECK_KJC],
-[
-  if test "x$1" != x; then
-    if test -f "$1"; then
-      KJC="$1"
-    else
-      AC_PATH_PROG(KJC, "$1")
-    fi
-  else
-    AC_PATH_PROG(KJC, "kJC")
-  fi
-])
-
 dnl -----------------------------------------------------------
 AC_DEFUN([CLASSPATH_WITH_JAVAH],
 [
@@ -218,7 +30,7 @@ AC_DEFUN([CLASSPATH_CHECK_JAVAH],
       AC_PATH_PROG(USER_JAVAH, "$1")
     fi
   else
-    AC_PATH_PROGS([USER_JAVAH],[gjavah gcjh-wrapper-4.1 gcjh-4.1 gcjh javah])
+    AC_PATH_PROGS([USER_JAVAH],[gjavah gjavah-4.3 gjavah-4.2 gjavah-4.1 gcjh-wrapper-4.1 gcjh-4.1 javah])
   fi
   
   if test "x${USER_JAVAH}" = x; then
@@ -231,28 +43,6 @@ dnl CLASSPATH_WITH_CLASSLIB - checks for user specified classpath additions
 dnl -----------------------------------------------------------
 AC_DEFUN([CLASSPATH_WITH_CLASSLIB],
 [
-  AC_ARG_WITH([classpath],
-             [AS_HELP_STRING(--with-classpath,specify path to a classes.zip like file)],
-  [
-    if test "x${withval}" = xyes; then
-      # set user classpath to CLASSPATH from env
-      AC_MSG_CHECKING(for classlib)
-      USER_CLASSLIB=${CLASSPATH}
-      AC_SUBST(USER_CLASSLIB)
-      AC_MSG_RESULT(${USER_CLASSLIB})
-      conditional_with_classlib=true      
-    elif test "x${withval}" != x && test "x${withval}" != xno; then
-      # set user classpath to specified value
-      AC_MSG_CHECKING(for classlib)
-      USER_CLASSLIB=${withval}
-      AC_SUBST(USER_CLASSLIB)
-      AC_MSG_RESULT(${withval})
-      conditional_with_classlib=true
-    fi
-  ],
-  [ conditional_with_classlib=false ])
-  AM_CONDITIONAL(USER_SPECIFIED_CLASSLIB, test "x${conditional_with_classlib}" = xtrue)
-
   AC_ARG_WITH([vm-classes],
              [AS_HELP_STRING(--with-vm-classes,specify path to VM override source files)], [vm_classes="$with_vm_classes"],
              [vm_classes='${top_srcdir}/vm/reference'])
@@ -272,7 +62,7 @@ AC_DEFUN([CLASSPATH_WITH_GLIBJ],
                FASTJAR=${withval}
                AC_MSG_RESULT([${FASTJAR}])
              ],
-             [AC_PATH_PROG(FASTJAR, fastjar)])
+             [AC_PATH_PROGS([FASTJAR], [fastjar gjar jar])])
 dnl We disable ZIP by default if we find fastjar.
   if test x"${FASTJAR}" != x; then
     ZIP=""
@@ -325,6 +115,19 @@ dnl We disable ZIP by default if we find fastjar.
     EXAMPLESDIR=""
   fi
   AC_SUBST(EXAMPLESDIR)
+
+  AC_ARG_ENABLE([tools],
+               [AS_HELP_STRING(--enable-tools,enable build of the tools [default=yes])],
+               [case "${enableval}" in
+                 yes) TOOLSDIR="tools" ;;
+                 no) TOOLSDIR="" ;;
+                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-tools) ;;
+               esac],
+               [TOOLSDIR="tools"])
+  if test "x${use_zip}" = xno && test "x${install_class_files}" = xno; then
+    TOOLSDIR=""
+  fi
+  AC_SUBST(TOOLSDIR)
 ])
 
 dnl -----------------------------------------------------------
@@ -363,63 +166,44 @@ dnl -----------------------------------------------------------
 AC_DEFUN([REGEN_WITH_JAY],
 [
   AC_ARG_WITH([jay],
-              [AS_HELP_STRING(--with-jay,Regenerate the parsers with jay must be given the path to the jay executable)],
+              [AS_HELP_STRING(--with-jay[=DIR|PATH],Regenerate the parsers with jay)],
   [
-    if test -d "${withval}"; then
+    AC_MSG_CHECKING([whether to regenerate parsers with jay])
+    JAY_FOUND=no
+    JAY_DIR_PATH=
+    if test "x${withval}" = xno; then
+      AC_MSG_RESULT(no)
+    elif test "x${withval}" = xyes; then
+      AC_MSG_RESULT(yes)
+      JAY_DIR_PATH="/usr/share/jay"
+    elif test -d "${withval}"; then
+      AC_MSG_RESULT(yes)
       JAY_DIR_PATH="${withval}"
-      AC_PATH_PROG(JAY, jay, "no", ${JAY_DIR_PATH})
-      if test "x${JAY}" = xno; then
-        AC_MSG_ERROR("jay executable not found");
-      fi
-    else
+    elif test -f "${withval}"; then
+      AC_MSG_RESULT(yes)
       JAY_DIR_PATH=`dirname "${withval}"`
       JAY="${withval}"
-      AC_SUBST(JAY)
+    else
+        AC_MSG_ERROR(jay not found at ${withval})
     fi
-    JAY_SKELETON="${JAY_DIR_PATH}/skeleton"
-    AC_CHECK_FILE(${JAY_SKELETON}, AC_SUBST(JAY_SKELETON),
-       AC_MSG_ERROR("Expected skeleton file in `dirname ${withval}`"))
-    JAY_FOUND=yes
-  ],
-  [
-    JAY_FOUND=no
-  ])
-  AM_CONDITIONAL(REGEN_PARSERS, test "x${JAY_FOUND}" = xyes)
-])
 
-dnl -----------------------------------------------------------
-AC_DEFUN([CLASSPATH_WITH_ECJ],
-[
-  AC_ARG_WITH([ecj],
-             [AS_HELP_STRING(--with-ecj,bytecode compilation with ecj)],
-  [
-    if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
-      CLASSPATH_CHECK_ECJ(${withval})
-    else
-      if test "x${withval}" != xno; then
-        CLASSPATH_CHECK_ECJ
+    if test "x${JAY_DIR_PATH}" != x; then
+      AC_PATH_PROG(JAY, jay, "no", ${JAY_DIR_PATH}:${PATH})
+      if test "x${JAY}" = xno; then
+        AC_MSG_ERROR(jay executable not found);
       fi
+      JAY_SKELETON="${JAY_DIR_PATH}/skeleton"
+      AC_CHECK_FILE(${JAY_SKELETON}, AC_SUBST(JAY_SKELETON),
+          AC_MSG_ERROR(Expected skeleton file in ${JAY_DIR_PATH}))
+      JAY_FOUND=yes
     fi
-    user_specified_javac=ecj
   ],
-  [ 
-    CLASSPATH_CHECK_ECJ
+  [
+    AC_MSG_CHECKING([whether to regenerate parsers with jay])
+    AC_MSG_RESULT(no)
+    JAY_FOUND=no
   ])
-  AC_SUBST(ECJ)
-])
-
-dnl -----------------------------------------------------------
-AC_DEFUN([CLASSPATH_CHECK_ECJ],
-[
-  if test "x$1" != x; then
-    if test -f "$1"; then
-      ECJ="$1"
-    else
-      AC_PATH_PROG(ECJ, "$1")
-    fi
-  else
-    AC_PATH_PROG(ECJ, "ecj")
-  fi
+  AM_CONDITIONAL(REGEN_PARSERS, test "x${JAY_FOUND}" = xyes)
 ])
 
 dnl -----------------------------------------------------------
@@ -436,32 +220,29 @@ AC_DEFUN([CLASSPATH_TOOLEXECLIBDIR],
 ])
 
 dnl -----------------------------------------------------------
-AC_DEFUN([CLASSPATH_WITH_JAVAC],
-[
-  AC_ARG_WITH([javac],
-             [AS_HELP_STRING(--with-javac,bytecode compilation with javac)],
-  [
-    if test "x${withval}" != x && test "x${withval}" != xyes && test "x${withval}" != xno; then
-      CLASSPATH_CHECK_JAVAC(${withval})
-    else
-      if test "x${withval}" != xno; then
-        CLASSPATH_CHECK_JAVAC
-      fi
-    fi
-    user_specified_javac=javac
-  ],
-  [ 
-    CLASSPATH_CHECK_JAVAC
-  ])
-  AC_SUBST(JAVAC)
-])
-
-dnl -----------------------------------------------------------
-AC_DEFUN([CLASSPATH_CHECK_JAVAC],
-[
-  if test "x$1" != x; then
-    JAVAC="$1"
+AC_DEFUN([CLASSPATH_JAVAC_MEM_CHECK],
+[
+  JAVA_TEST=Test.java
+  CLASS_TEST=Test.class
+  cat << \EOF > $JAVA_TEST
+  /* [#]line __oline__ "configure" */
+  public class Test 
+  {
+    public static void main(String[] args)
+    {
+      System.out.println("Hello World");
+    }
+  }
+EOF
+  AC_MSG_CHECKING([whether javac supports -J])
+  $JAVAC $JAVACFLAGS -J-Xmx768M -sourcepath '' $JAVA_TEST
+  javac_result=$?
+  if test "x$javac_result" = "x0"; then
+    AC_MSG_RESULT([yes])
+    JAVAC_MEM_OPT="-J-Xmx768M"
   else
-    AC_PATH_PROG(JAVAC, "javac")
+    AC_MSG_RESULT([no])
   fi
+  rm -f $JAVA_TEST $CLASS_TEST
+  AC_SUBST(JAVAC_MEM_OPT)
 ])
index 894e786e16c1d0d94dfc08d6b475270fe1418d6a..1c8ff7049d8f3aaa9741c53e7f3145d9b76a77d8 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
 
-scriptversion=2005-06-08.21
+scriptversion=2006-05-10.23
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
 #   Free Software Foundation, Inc.
 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
@@ -33,6 +33,8 @@ if test $# -eq 0; then
 fi
 
 run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
 
 # In the cases where this matters, `missing' is being run in the
 # srcdir already.
@@ -44,7 +46,7 @@ fi
 
 msg="missing on your system"
 
-case "$1" in
+case $1 in
 --run)
   # Try to run requested program, and just exit if it succeeds.
   run=
@@ -77,6 +79,7 @@ Supported PROGRAM values:
   aclocal      touch file \`aclocal.m4'
   autoconf     touch file \`configure'
   autoheader   touch file \`config.h.in'
+  autom4te     touch the output file, or create a stub one
   automake     touch all \`Makefile.in' files
   bison        create \`y.tab.[ch]', if possible, from existing .[ch]
   flex         create \`lex.yy.c', if possible, from existing .c
@@ -106,7 +109,7 @@ esac
 # Now exit if we have it, but it failed.  Also exit now if we
 # don't have it and --version was passed (most likely to detect
 # the program).
-case "$1" in
+case $1 in
   lex|yacc)
     # Not GNU programs, they don't have --version.
     ;;
@@ -135,7 +138,7 @@ esac
 
 # If it does not exist, or fails to run (possibly an outdated version),
 # try to emulate it.
-case "$1" in
+case $1 in
   aclocal*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
@@ -164,7 +167,7 @@ WARNING: \`$1' is $msg.  You should only need it if
     test -z "$files" && files="config.h"
     touch_files=
     for f in $files; do
-      case "$f" in
+      case $f in
       *:*) touch_files="$touch_files "`echo "$f" |
                                       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
       *) touch_files="$touch_files $f.in";;
@@ -192,8 +195,8 @@ WARNING: \`$1' is needed, but is $msg.
          You can get \`$1' as part of \`Autoconf' from any GNU
          archive site."
 
-    file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
-    test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
     if test -f "$file"; then
        touch $file
     else
@@ -214,25 +217,25 @@ WARNING: \`$1' $msg.  You should only need it if
          in order for those modifications to take effect.  You can get
          \`Bison' from any GNU archive site."
     rm -f y.tab.c y.tab.h
-    if [ $# -ne 1 ]; then
+    if test $# -ne 1; then
         eval LASTARG="\${$#}"
-       case "$LASTARG" in
+       case $LASTARG in
        *.y)
            SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-           if [ -f "$SRCFILE" ]; then
+           if test -f "$SRCFILE"; then
                 cp "$SRCFILE" y.tab.c
            fi
            SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-           if [ -f "$SRCFILE" ]; then
+           if test -f "$SRCFILE"; then
                 cp "$SRCFILE" y.tab.h
            fi
          ;;
        esac
     fi
-    if [ ! -f y.tab.h ]; then
+    if test ! -f y.tab.h; then
        echo >y.tab.h
     fi
-    if [ ! -f y.tab.c ]; then
+    if test ! -f y.tab.c; then
        echo 'main() { return 0; }' >y.tab.c
     fi
     ;;
@@ -244,18 +247,18 @@ WARNING: \`$1' is $msg.  You should only need it if
          in order for those modifications to take effect.  You can get
          \`Flex' from any GNU archive site."
     rm -f lex.yy.c
-    if [ $# -ne 1 ]; then
+    if test $# -ne 1; then
         eval LASTARG="\${$#}"
-       case "$LASTARG" in
+       case $LASTARG in
        *.l)
            SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-           if [ -f "$SRCFILE" ]; then
+           if test -f "$SRCFILE"; then
                 cp "$SRCFILE" lex.yy.c
            fi
          ;;
        esac
     fi
-    if [ ! -f lex.yy.c ]; then
+    if test ! -f lex.yy.c; then
        echo 'main() { return 0; }' >lex.yy.c
     fi
     ;;
@@ -267,11 +270,9 @@ WARNING: \`$1' is $msg.  You should only need it if
         \`Help2man' package in order for those modifications to take
         effect.  You can get \`Help2man' from any GNU archive site."
 
-    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
-    if test -z "$file"; then
-       file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
-    fi
-    if [ -f "$file" ]; then
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -f "$file"; then
        touch $file
     else
        test -z "$file" || exec >$file
@@ -289,11 +290,17 @@ WARNING: \`$1' is $msg.  You should only need it if
          DU, IRIX).  You might want to install the \`Texinfo' package or
          the \`GNU make' package.  Grab either from any GNU archive site."
     # The file to touch is that specified with -o ...
-    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
     if test -z "$file"; then
       # ... or it is the one specified with @setfilename ...
       infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
+      file=`sed -n '
+       /^@setfilename/{
+         s/.* \([^ ]*\) *$/\1/
+         p
+         q
+       }' $infile`
       # ... or it is derived from the source name (dir/f.texi becomes f.info)
       test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
     fi
@@ -317,13 +324,13 @@ WARNING: \`$1' is $msg.  You should only need it if
     fi
     firstarg="$1"
     if shift; then
-       case "$firstarg" in
+       case $firstarg in
        *o*)
            firstarg=`echo "$firstarg" | sed s/o//`
            tar "$firstarg" "$@" && exit 0
            ;;
        esac
-       case "$firstarg" in
+       case $firstarg in
        *h*)
            firstarg=`echo "$firstarg" | sed s/h//`
            tar "$firstarg" "$@" && exit 0
index ab3004a464aba75a3c34a6552c8c8b7ef3310d74..7e7c4f2e3db3841f431a18a24f64481b04e1ead4 100644 (file)
@@ -49,6 +49,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -137,7 +139,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -149,19 +150,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -193,15 +183,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -249,10 +236,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 998ba8420d6d37111269466a2bf054888b5d1abc..dc4c34f342de0c8573a8e3c5445a8bf9e964930a 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -156,7 +158,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -168,19 +169,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -212,15 +202,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -268,10 +255,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index e710d96deae978195b402dceae4f79677947b8d2..458e629d349631fb4a25cb0103812cde71a776f2 100644 (file)
        dmg@research.att.com or research!dmg
  */
 
-#include "mprec.h"
 #include <string.h>
 #include <stdlib.h>
+#include "mprec.h"
+#include <stdlib.h>
 
 static int
 _DEFUN (quorem,
index bf9f5699107494b5a834eefb107a03ec9ac2ac19..112504e4cc40a119fa147c0bdd6a9e85877e616c 100644 (file)
 #ifndef __CLASSPATH_FDLIBM_H__
 #define __CLASSPATH_FDLIBM_H__
 
-/* AIX needs _XOPEN_SOURCE */
+/*
+ * On AIX we need _ALL_SOURCE defined to compile/configure native-lib, but can't
+ *  have it defined to compile fdlibm.  UGH.
+ */
 #ifdef _AIX
-#define _XOPEN_SOURCE
+#undef _ALL_SOURCE
 #endif
 
 #include <config.h>
index 1a9740f66dd9154664f6cdff245cd3dff228bd7d..c230bbb3c72aa08ac5fb13e52d74cbcf89f15f05 100644 (file)
 #define __IEEE_LITTLE_ENDIAN
 #endif
 
+#ifdef __AVR32__
+#define __IEEE_BIG_ENDIAN
+#endif
+
 #ifdef __MIPSEL__
 #define __IEEE_LITTLE_ENDIAN
 #endif
index 0efa2d9890408a8dbf551d1c450192d42e2b078c..1139b72f1ff8deda1a8beca6638d3444b85afacc 100644 (file)
@@ -294,7 +294,9 @@ struct _Jv_Bigint
 #define        _SIGNED         signed
 #define        _DOTS           , ...
 #define _VOID void
+#ifndef _EXFUN
 #define        _EXFUN(name, proto)             name proto
+#endif  /* !EXFUN */
 #define        _DEFUN(name, arglist, args)     name(args)
 #define        _DEFUN_VOID(name)               name(_NOARGS)
 #define _CAST_VOID (void)
index 90a0f8671b1a67e90d82fe4087fe578872f845ca..662881b303afe1d6cc866bc23e641f49efb0a5ea 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -156,7 +158,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -168,19 +169,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -212,15 +202,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -268,10 +255,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index b820fe745d2879ca0dcd2f1d6c386e7bb20f756d..f37e738648011d15175c9faeeeb7a1abea5c47ab 100644 (file)
@@ -40,4 +40,4 @@ DIST_SUBDIRS = classpath java-io java-lang java-net java-nio java-util \
                midi-dssi native-lib
 
 all-local:
-       cd $(top_srcdir) && $(SHELL) ./scripts/check_jni_methods.sh
+       $(SHELL) $(top_builddir)/scripts/check_jni_methods.sh
index 4b71496a56f60d52f13a6bf463214f1e49dad2c0..b3dafbce4ae6901278454011dc87bee87b975f1b 100644 (file)
@@ -49,6 +49,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -137,7 +139,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -149,19 +150,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -193,15 +183,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -249,10 +236,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -650,7 +635,7 @@ uninstall-info: uninstall-info-recursive
 
 
 all-local:
-       cd $(top_srcdir) && $(SHELL) ./scripts/check_jni_methods.sh
+       $(SHELL) $(top_builddir)/scripts/check_jni_methods.sh
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
index c20cf87fe9b12c441db621058f800252792d1504..cde67a51ce4744c5f3f946d54703d07b347208fd 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -147,7 +149,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -159,19 +160,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -203,15 +193,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -259,10 +246,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 9c0a4c3310717f6361c7cc207fbffca122ead459..ffdc4e40e98ec3f3605f7e9cf33af53b8154d2f1 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -156,7 +158,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -168,19 +169,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -212,15 +202,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -268,10 +255,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/native/jni/gstreamer-peer/GStreamerIOPeer.c b/libjava/classpath/native/jni/gstreamer-peer/GStreamerIOPeer.c
deleted file mode 100644 (file)
index f5d52e8..0000000
+++ /dev/null
@@ -1,772 +0,0 @@
-/* GStreamerIOPeer.c -- Implements native methods for class GStreamerNativePeer
-   Copyright (C) 2007 Free Software Foundation, Inc.
-   
-   This file is part of GNU Classpath.
-   
-   GNU Classpath is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-   
-   GNU Classpath is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with GNU Classpath; see the file COPYING.  If not, write to the
-   Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-   02110-1301 USA.
-   
-   Linking this library statically or dynamically with other modules is
-   making a combined work based on this library.  Thus, the terms and
-   conditions of the GNU General Public License cover the whole
-   combination.
-   
-   As a special exception, the copyright holders of this library give you
-   permission to link this library with independent modules to produce an
-   executable, regardless of the license terms of these independent
-   modules, and to copy and distribute the resulting executable under
-   terms of your choice, provided that you also meet, for each linked
-   independent module, the terms and conditions of the license of that
-   module.  An independent module is a module which is not derived from
-   or based on this library.  If you modify this library, you may extend
-   this exception to your version of the library, but you are not
-   obligated to do so.  If you do not wish to do so, delete this
-   exception statement from your version. */
-
-#include <stdio.h>
-#include <string.h>
-
-#include <jni.h>
-
-#include <glib.h>
-#include <glib/gprintf.h>
-
-#include <gdk/gdk.h>
-
-#include <gst/gst.h>
-
-#include "jcl.h"
-
-#include "gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h"
-
-#include "gstclasspathsrc.h"
-#include "gstinputstream.h"
-
-#define _GST_MALLOC_SIZE_ 256
-
-typedef struct _AudioProperties AudioProperties;
-struct _AudioProperties
-{
-  /*
-   * NOTE: descriptions of the properties are taken from:
-   * http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-types-definitions.html#table-audio-types
-   */
-  
-  /* decoder name */
-  const char *name;
-  
-  /* audio endiannes */
-  const char *endianness;
-  
-  /* header size */
-  const char *header_size;
-  
-  /* mime */  
-  const char *mimetype;
-
-  /* The sample rate of the data, in samples (per channel) per second */
-  const char *samplerate;
-  
-  /* The number of channels of audio data */
-  const char *channels;
-
-  const char *layer;
-  
-  const char *bitrate;
-  
-  const char *framed;
-  
-  /*
-   *  Defines if the values of the integer samples are signed or not.
-   * Signed samples use one bit to indicate sign (negative or positive)
-   * of the value. Unsigned samples are always positive.
-   */
-  const char *signess;
-  
-  /* */
-  const char *rate;
-  
-  /* Number of bits allocated per sample. */
-  const char *width;
-
-  /*
-   * The number of bits used per sample.
-   * If the depth is less than the width, the low bits are assumed to be the
-   * ones used. For example, a width of 32 and a depth of 24 means that
-   * each sample is stored in a 32 bit word, but only the low
-   * 24 bits are actually used.
-   */
-  const char *depth;
-  
-  /*
-   * This is set in the case of the mpeg files.
-   */
-  const char *type;
-  
-  gboolean done;
-  
-};
-
-/* ***** PRIVATE FUNCTIONS DECLARATION ***** */
-
-static gboolean
-set_strings (JNIEnv *env, const jclass GstHeader,
-             const AudioProperties *properties, jobject header);
-
-static gboolean
-typefind_callback(GstElement *typefind, guint probability, const GstCaps *caps,
-                  gpointer data);
-
-static void
-element_added (GstBin *bin, GstElement *element, gpointer data);
-
-static void
-new_decoded_pad (GstElement *decoder, GstPad *pad,
-                 gboolean last, GstElement *pipeline);
-                 
-static gboolean
-fill_info (GstElement *decoder, AudioProperties *properties);
-
-static gchar *
-get_string_property (const GstStructure *structure, const gchar *property);
-
-static gchar *
-get_boolean_property (const GstStructure *structure, const gchar *property);
-                                         
-static gboolean
-set_string (JNIEnv *env, const jclass GstHeader, jobject header,
-            const char *field, const gchar *property);
-
-static void
-free_properties (AudioProperties *properties);
-
-static void
-reset_properties (AudioProperties *properties);
-
-/* ***** END: PRIVATE FUNCTIONS DECLARATION ***** */
-
-/* ***** NATIVE FUNCTIONS ***** */
-
-JNIEXPORT jboolean JNICALL
-Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_gstreamer_1get_1audio_1format_1stream
-  (JNIEnv *env, jclass clazz __attribute__ ((unused)), jobject header __attribute__ ((unused)),
-                                                       jobject jstream __attribute__ ((unused)))
-{
-  GstInputStream *istream = NULL;
-  JavaVM *vm = NULL;
-  jclass GstHeader = NULL;
-
-  GstElement *pipeline = NULL;
-
-  GstElement *typefind = NULL;
-  GstElement *decodebin = NULL;
-  GstElement *source = NULL;
-  
-  AudioProperties *properties = NULL;
-  
-  jboolean result = JNI_FALSE;
-  
-  GstHeader = (*env)->GetObjectClass(env, header);
-  
-  gst_init (NULL, NULL);
-
-  properties = (AudioProperties *) g_malloc0 (sizeof (AudioProperties));
-  if (properties == NULL)
-    {
-      g_warning ("unable to allocate memory for properties");
-      return JNI_FALSE;
-    }
-
-  /* create the GstInputStream object */
-  istream = g_object_new (GST_TYPE_INPUT_STREAM, NULL);
-  if (istream == NULL)
-    {
-      free_properties (properties);
-      
-      g_warning ("unable to create an istream");
-      return JNI_FALSE;
-    }
-  source = gst_element_factory_make ("classpathsrc", "source");
-  if (source == NULL)
-    {
-      free_properties (properties);
-      g_free ((gpointer) istream);
-      
-      g_warning ("unable to create a source");
-      return JNI_FALSE;
-    }
-   
-  /* store the vm and the input stream in the gstinputstream class */  
-  (*env)->GetJavaVM(env, &vm);
-  g_object_set (G_OBJECT (istream), GST_ISTREAM_JVM, vm,
-                                    GST_ISTREAM_READER, jstream,
-                NULL);
-  g_object_set (G_OBJECT (source), GST_CLASSPATH_SRC_ISTREAM, istream, NULL);
-  
-  pipeline = gst_pipeline_new ("pipe");
-  if (pipeline == NULL)
-    {
-      gst_object_unref (GST_OBJECT (source));
-      g_free ((gpointer) istream);
-      free_properties (properties);
-      
-      g_warning ("unable to create the pipeline");
-      return JNI_FALSE;
-    }
-
-  decodebin = gst_element_factory_make ("decodebin", "decodebin");
-  if (decodebin == NULL)
-    {
-      gst_object_unref (GST_OBJECT (source));
-      
-      g_free ((gpointer) istream);
-      free_properties(properties);
-      
-      gst_object_unref(GST_OBJECT(pipeline));
-    
-      g_warning ("unable to create decodebin");
-      return JNI_FALSE;
-    }
-  
-  g_signal_connect (decodebin, "new-decoded-pad", G_CALLBACK (new_decoded_pad),
-                    pipeline);
-  
-  gst_bin_add_many (GST_BIN (pipeline), source, decodebin, NULL);
-  gst_element_link (source, decodebin);
-  
-  typefind = gst_bin_get_by_name (GST_BIN (decodebin), "typefind");
-  if (typefind == NULL)
-    {
-      g_free ((gpointer) istream);
-      free_properties(properties);
-      
-      gst_object_unref(GST_OBJECT(pipeline));
-    
-      g_warning ("unable to create decodebin");
-      return JNI_FALSE;
-    }
-    
-  g_signal_connect (G_OBJECT (typefind), "have-type",
-                    G_CALLBACK (typefind_callback), properties);
-  
-  gst_element_set_state (GST_ELEMENT(pipeline), GST_STATE_PLAYING);
-  if (gst_element_get_state (pipeline, NULL, NULL, 100000) ==
-      GST_STATE_CHANGE_FAILURE)
-    {
-      g_free ((gpointer) istream);
-      free_properties(properties);
-      gst_object_unref(GST_OBJECT(pipeline));
-      
-      g_warning ("Failed to go into PLAYING state");
-      return JNI_FALSE;
-    }
-
-  result = JNI_FALSE;
-  if (fill_info (decodebin, properties))
-    {
-      result = set_strings (env, GstHeader, properties, header);
-    }
-    
-  gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);
-  
-  gst_object_unref (GST_OBJECT(pipeline));
-  free_properties (properties);
-  
-  return result;
-}
-
-JNIEXPORT jboolean JNICALL
-Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_gstreamer_1get_1audio_1format_1file
-       (JNIEnv *env, jclass clazz __attribute__ ((unused)), jobject header)
-{
-  /* will contain the properties we need to put into the given GstHeader */
-  AudioProperties *properties = NULL;
-  
-  /* source file */
-  const char *file = NULL;
-    
-  /* GStreamer elements */
-  GstElement *pipeline = NULL;
-  GstElement *source = NULL;
-  GstElement *decoder = NULL;
-  
-  GstElement *typefind = NULL;
-  
-  GstStateChangeReturn res;
-
-  jboolean result = JNI_FALSE;
-  
-  /* java fields */
-  jfieldID _fid = NULL;
-  jclass GstHeader = NULL;
-  jstring _file = NULL;
-
-  GstHeader = (*env)->GetObjectClass(env, header);
-  _fid = (*env)->GetFieldID(env, GstHeader, "file", "Ljava/lang/String;");
-  if (_fid == NULL)
-    {
-      return JNI_FALSE; /* failed to find the field */
-    }
-
-  _file = (*env)->GetObjectField(env, header, _fid);
-  file = JCL_jstring_to_cstring (env, _file);
-  if (file == NULL)
-    {
-      return JNI_FALSE;
-    }
-  gst_init (NULL, NULL);
-  
-  properties = (AudioProperties *) g_malloc0 (sizeof (AudioProperties));
-  if (properties == NULL)
-    {
-      free_properties (properties);
-      JCL_free_cstring (env, _file, file);
-      return JNI_FALSE;
-    }
-
-  /* this is not really needed */  
-  reset_properties(properties);
-
-  /* create the source element, will be used to read the file */
-  source = gst_element_factory_make ("filesrc", "source");
-  if (source == NULL)
-    {
-      free_properties (properties);
-      JCL_free_cstring (env, _file, file);
-      return JNI_FALSE;
-    }
-  
-  /* set the file name */
-  g_object_set (G_OBJECT (source), "location", file, NULL);
-  
-  /* 
-   * create the decoder element, this will decode the stream and retrieve
-   * its properties.
-   * We connect a signal to this element, to be informed when it is done
-   * in decoding the stream and to get the needed informations about the
-   * audio file.
-   */
-  decoder = gst_element_factory_make ("decodebin", "decoder");
-  if (decoder == NULL)
-    {
-      gst_object_unref (GST_OBJECT (source));
-      free_properties(properties);
-      
-      JCL_free_cstring (env, _file, file);
-      return JNI_FALSE;
-    }
-  
-  g_signal_connect (decoder, "new-decoded-pad", G_CALLBACK (new_decoded_pad),
-                    pipeline);
-  g_signal_connect (G_OBJECT (decoder), "element-added",
-                    G_CALLBACK (element_added), properties);
-  /* now, we create a pipeline and fill it with the other elements */
-  pipeline = gst_pipeline_new ("pipeline");
-  if (pipeline == NULL)
-    {
-      gst_object_unref (GST_OBJECT (source));
-      gst_object_unref (GST_OBJECT (decoder));
-      
-      free_properties(properties);
-      
-      JCL_free_cstring (env, _file, file);
-      return JNI_FALSE;
-    }
-  
-  /*
-   * we get the typefind from the decodebin to catch the additional properties
-   * that the decodebin does not expose to us
-   */
-  typefind = gst_bin_get_by_name (GST_BIN (decoder), "typefind");
-  if (typefind != NULL)
-    {
-      /* 
-       * NOTE: the above is not a typo, we can live without the typefind,
-       * just, our stream detection will not be as accurate as we would.
-       * Anyway, if this fails, there is some problem, probabily a memory
-       * error.
-       */
-       g_signal_connect (G_OBJECT (typefind), "have-type",
-                         G_CALLBACK (typefind_callback), properties);
-    }
-  
-  gst_bin_add_many (GST_BIN (pipeline), source, decoder, NULL);
-  gst_element_link (source, decoder);
-  
-  /* 
-   * now, we set the pipeline playing state to pause and traverse it
-   * to get the info we need.
-   */
-  
-  res = gst_element_set_state (pipeline, GST_STATE_PAUSED);
-  if (res == GST_STATE_CHANGE_FAILURE)
-    {
-      JCL_free_cstring (env, _file, file);
-      gst_element_set_state (pipeline, GST_STATE_NULL);
-      gst_object_unref (GST_OBJECT (pipeline));
-      
-      free_properties(properties);
-      
-      return JNI_FALSE;
-    }
-  
-  /* (GstClockTime) 300000000 ? */
-  res = gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE);
-  if (res != GST_STATE_CHANGE_SUCCESS)
-    {
-      JCL_free_cstring (env, _file, file);
-      gst_element_set_state (pipeline, GST_STATE_NULL);
-      gst_object_unref (GST_OBJECT (pipeline));
-      
-      free_properties(properties);
-      
-      return JNI_FALSE;
-    }
-  
-  result = JNI_FALSE;
-  if (fill_info (decoder, properties))
-    {
-      result = set_strings (env, GstHeader, properties, header);
-    }
-   
-  /* free stuff */
-  JCL_free_cstring (env, _file, file);
-  gst_element_set_state (pipeline, GST_STATE_NULL);
-  
-  gst_object_unref (GST_OBJECT (pipeline));
-  
-  free_properties (properties);
-
-  return result;
-}
-
-/* ***** END: NATIVE FUNCTIONS ***** */
-
-/* ***** PRIVATE FUNCTIONS IMPLEMENTATION ***** */
-static gboolean typefind_callback(GstElement *typefind __attribute__ ((unused)),
-                                  guint probability __attribute__ ((unused)),
-                                  const GstCaps *caps,
-                                  gpointer data)
-{
-  GstStructure *structure = NULL;  
-  AudioProperties *properties = NULL;
-  
-  const char *mpeg = NULL;
-  
-  properties = (AudioProperties *) data;
-  
-  structure = gst_caps_get_structure (caps, 0);
-  
-  /* MIMETYPE */
-  properties->mimetype = gst_structure_get_name (structure); 
-  mpeg = get_string_property(structure, "mpegversion");
-  
-  if (mpeg != NULL)
-    {
-      properties->layer = get_string_property(structure, "layer");
-      properties->type = (gchar *) g_malloc0 (_GST_MALLOC_SIZE_);
-      g_snprintf ((gpointer) properties->type, _GST_MALLOC_SIZE_,
-                  "MPEG%sV%s", mpeg,
-                  properties->layer);
-              
-      g_free ((gpointer) mpeg);
-    }
-    
-  return TRUE;
-}
-
-static void
-new_decoded_pad (GstElement *decoder  __attribute__ ((unused)),
-                 GstPad *pad,
-                 gboolean last        __attribute__ ((unused)),
-                 GstElement *pipeline)
-{
-  GstElement *fakesink = NULL;
-  GstPad *sinkpad = NULL;
-  
-  fakesink = gst_element_factory_make ("fakesink", NULL);
-  gst_bin_add (GST_BIN (pipeline), fakesink);
-
-  sinkpad = gst_element_get_pad (fakesink, "sink");
-  if (GST_PAD_LINK_FAILED (gst_pad_link (pad, sinkpad)))
-    {
-      gst_bin_remove (GST_BIN (pipeline), fakesink);
-    }
-  else
-    {
-      gst_element_set_state (fakesink, GST_STATE_PAUSED);
-    }
-}
-
-static gboolean
-set_strings (JNIEnv *env, const jclass GstHeader,
-             const AudioProperties *properties, jobject header)
-{
-  gboolean result = FALSE;
-  
-  /* 
-   * we only need at least one of them to be sure we can handle this
-   * kind of audio data.
-   */
-      
-  /* now, map our properties to the java class */
-  set_string (env, GstHeader, header, "mimetype", properties->mimetype);
-                      
-  if (set_string (env, GstHeader, header, "endianness",
-                  properties->endianness)) result = JNI_TRUE;
-                      
-  if (set_string (env, GstHeader, header, "channels",
-                  properties->channels)) result = JNI_TRUE;
-      
-  if (set_string (env, GstHeader, header, "rate",
-                  properties->rate)) result = JNI_TRUE;
-      
-  if (set_string (env, GstHeader, header, "width",
-                  properties->width)) result = JNI_TRUE;
-      
-  if (set_string (env, GstHeader, header, "depth",
-                  properties->depth)) result = JNI_TRUE;
-      
-  if (set_string (env, GstHeader, header, "isSigned",
-                  properties->signess)) result = JNI_TRUE;
-     
-  if (set_string (env, GstHeader, header, "name",
-                  properties->name)) result = JNI_TRUE;
-     
-  /* non primary properties */
-  set_string (env, GstHeader, header, "layer", properties->layer);
-  set_string (env, GstHeader, header, "bitrate", properties->bitrate);
-  set_string (env, GstHeader, header, "framed", properties->framed);
-  set_string (env, GstHeader, header, "type", properties->type);
-  return result;    
-}
-
-static gboolean fill_info (GstElement *decoder, AudioProperties *properties)
-{
-  GstIterator *it = NULL;
-  gpointer data = NULL;
-  gboolean result = FALSE;
-  it = gst_element_iterate_src_pads (decoder);
-  while (gst_iterator_next (it, &data) == GST_ITERATOR_OK)
-    {
-      GstPad *pad = GST_PAD (data);
-      GstCaps *caps;
-      
-      GstStructure *structure;
-      
-      const gchar *caps_string = NULL;
-     
-      caps = gst_pad_get_caps (pad);
-      caps_string = gst_caps_to_string (caps);
-      
-      if (g_str_has_prefix (caps_string, "video"))
-        {
-          /* no video support, this is an audio library */
-          
-          g_free ((gpointer) caps_string);
-          gst_caps_unref (caps);
-          gst_object_unref (pad);
-          
-          continue; 
-        }
-      
-      g_free ((gpointer) caps_string);
-      
-      structure = gst_caps_get_structure (GST_CAPS (caps), 0);
-      
-      /* fill the properties we need */
-       
-      /* SIGNESS */
-      properties->signess = get_boolean_property(structure, "signed");
-      if (properties->signess != NULL)
-        {
-          result = TRUE;
-        }
-      
-      /* ENDIANNESS */
-      properties->endianness = get_string_property(structure, "endianness");
-      if (properties->endianness != NULL)
-        {
-          result = TRUE;
-        }
-      
-      /* CHANNELS */
-      properties->channels = get_string_property(structure, "channels");
-      if (properties->channels != NULL)
-        {
-          result = TRUE;
-        }
-      
-      /* RATE */
-      properties->rate = get_string_property(structure, "rate");
-      if (properties->rate != NULL)
-        {
-          result = TRUE;
-        }
-      
-      /* WIDTH */
-      properties->width = get_string_property(structure, "width");
-      if (properties->width != NULL)
-        {
-          result = TRUE;
-        }
-      
-      /* DEPTH */
-      properties->depth = get_string_property(structure, "depth");
-      if (properties->depth != NULL)
-        {
-          result = TRUE;
-        }
-      
-      gst_caps_unref (caps);
-      gst_object_unref (pad);
-    }
-    
-    return result;
-}
-
-static void free_properties (AudioProperties *properties)
-{
-  if (properties->name != NULL) g_free((gpointer) properties->name);
-  if (properties->endianness != NULL) g_free((gpointer) properties->endianness);
-  if (properties->channels != NULL) g_free((gpointer) properties->channels);
-  if (properties->rate != NULL) g_free((gpointer) properties->rate);
-  if (properties->width != NULL) g_free((gpointer) properties->width);
-  if (properties->depth != NULL) g_free((gpointer) properties->depth);
-  if (properties->layer != NULL) g_free((gpointer) properties->layer);
-  if (properties->bitrate != NULL) g_free((gpointer) properties->bitrate);
-  if (properties->framed != NULL) g_free((gpointer) properties->framed);
-  
-  if (properties != NULL) g_free ((gpointer) properties);
-}
-
-static void reset_properties (AudioProperties *properties)
-{
-  properties->done = FALSE;
-  properties->signess = FALSE;
-  properties->name = NULL;
-  properties->endianness = NULL;
-  properties->channels = NULL;
-  properties->rate = NULL;
-  properties->width  = NULL;
-  properties->depth = NULL;
-  properties->layer = NULL;
-  properties->bitrate = NULL;
-  properties->framed = NULL;
-}
-
-static gchar *get_string_property (const GstStructure *structure,
-                                   const gchar *property)
-{
-  int props = 0;
-  gchar *result = NULL;
-  
-  if (property == NULL)
-    {
-      return NULL;
-    }
-  
-  /* we don't need more */
-  result = (gchar *) g_malloc0 (_GST_MALLOC_SIZE_);
-  if (result == NULL)
-    {
-      /* huston, we have a problem here... */
-      return NULL;
-    }
-  
-  if (gst_structure_get_int (structure, property, &props))
-    {
-      g_snprintf (result, _GST_MALLOC_SIZE_, "%d", props);
-    }
-  else
-    {
-      g_free ((gpointer) result);
-      return NULL;
-    }
-    
-  return result;
-}
-
-static gchar *get_boolean_property (const GstStructure *structure,
-                                    const gchar *property)
-{
-  gchar *result = NULL;
-  gboolean props = FALSE;
-  
-  result = (gchar *) g_malloc0 (_GST_MALLOC_SIZE_);
-  if (result == NULL)
-    {
-      /* huston, we have a problem here... */
-      return NULL;
-    }
-  
-  if (gst_structure_get_boolean (structure, property, &props))
-    {
-      g_snprintf (result, _GST_MALLOC_SIZE_, "%s", (props ? "true" : "false" ));
-    }
-  else
-    {
-      g_free ((gpointer) result);
-      return NULL;
-    }
-  
-  return result;
-}
-
-static gboolean set_string (JNIEnv *env, const jclass GstHeader,
-                            jobject header,
-                            const char *field,
-                            const gchar *property)
-{
-  jfieldID _fid = NULL; 
-  jstring property_string_field = NULL; 
-  
-  if (property == NULL || field == NULL || header == NULL || GstHeader == NULL)
-    {
-      return JNI_FALSE;
-    }
-  
-  _fid = (*env)->GetFieldID(env, GstHeader, field, "Ljava/lang/String;");
-  if (_fid == NULL)
-    {
-      return JNI_FALSE; /* failed to find the field */
-    }
-  
-  property_string_field = (*env)->NewStringUTF(env, property);
-  if (property_string_field == NULL)
-    {
-      return JNI_FALSE;
-    }
-    
-  (*env)->SetObjectField(env, header, _fid, property_string_field);
-
-  return JNI_TRUE;
-}
-
-static void
-element_added (GstBin *bin, GstElement *element, gpointer data)
-{
-  GstElementFactory *factory;
-  
-  factory = gst_element_get_factory (element);
-  ((AudioProperties *) data)->name = gst_element_factory_get_longname (factory);
-}
-
-/* ***** END: PRIVATE FUNCTIONS IMPLEMENTATION ***** */
index 45c91d13c2dcf3da9aa87ff89058f11c71fcbf8c..d15f0a2addbfdd7f8ee5f54868b7f4db1f8970d9 100644 (file)
@@ -1,10 +1,15 @@
 nativeexeclib_LTLIBRARIES = libgstreamerpeer.la
 
-libgstreamerpeer_la_SOURCES = GStreamerIOPeer.c \
-                              gstinputstream.c \
-                                                                                                                 gstclasspathsrc.c \
-                              gstclasspathsrc.h \
-                              gstinputstream.h
+libgstreamerpeer_la_SOURCES = gst_peer.c \
+                              gstreamer_io_peer.c \
+                              gst_native_data_line.c \
+                              gst_input_stream.c \
+                              gst_native_pipeline.c \
+                              gst_classpath_src.c \
+                              gst_peer.h \
+                              gst_classpath_src.h \
+                              gst_input_stream.h \
+                              gst_native_pipeline.h
 
 libgstreamerpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
 
@@ -17,7 +22,8 @@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@
 
 # We cannot use -Wwrite-strings and the strict flags since
 # gstreamer contain broken prototypes (by design).
-AM_CFLAGS = @WARNING_CFLAGS@ -Wno-write-strings -Wno-missing-field-initializers \
+AM_CFLAGS = @WARNING_CFLAGS@ -Wno-write-strings \
+            -Wno-missing-field-initializers \
             @ERROR_CFLAGS@ -Wno-unused-parameter @GSTREAMER_BASE_CFLAGS@ \
             @GDK_CFLAGS@ @GSTREAMER_CFLAGS@ @GSTREAMER_PLUGINS_BASE_CFLAGS@ \
             @EXTRA_CFLAGS@
index 4942b2d004d8ae465d38ce7df0806b5da5737f01..be6f33623710d090fd0830dfcc76e9fce38d7fd1 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -74,8 +76,9 @@ nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL)
 LTLIBRARIES = $(nativeexeclib_LTLIBRARIES)
 libgstreamerpeer_la_DEPENDENCIES =  \
        $(top_builddir)/native/jni/classpath/jcl.lo
-am_libgstreamerpeer_la_OBJECTS = GStreamerIOPeer.lo gstinputstream.lo \
-       gstclasspathsrc.lo
+am_libgstreamerpeer_la_OBJECTS = gst_peer.lo gstreamer_io_peer.lo \
+       gst_native_data_line.lo gst_input_stream.lo \
+       gst_native_pipeline.lo gst_classpath_src.lo
 libgstreamerpeer_la_OBJECTS = $(am_libgstreamerpeer_la_OBJECTS)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
 depcomp = $(SHELL) $(top_srcdir)/../../depcomp
@@ -157,7 +160,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -169,19 +171,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -213,15 +204,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -269,10 +257,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -345,11 +331,16 @@ target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
 vm_classes = @vm_classes@
 nativeexeclib_LTLIBRARIES = libgstreamerpeer.la
-libgstreamerpeer_la_SOURCES = GStreamerIOPeer.c \
-                              gstinputstream.c \
-                                                                                                                 gstclasspathsrc.c \
-                              gstclasspathsrc.h \
-                              gstinputstream.h
+libgstreamerpeer_la_SOURCES = gst_peer.c \
+                              gstreamer_io_peer.c \
+                              gst_native_data_line.c \
+                              gst_input_stream.c \
+                              gst_native_pipeline.c \
+                              gst_classpath_src.c \
+                              gst_peer.h \
+                              gst_classpath_src.h \
+                              gst_input_stream.h \
+                              gst_native_pipeline.h
 
 libgstreamerpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
 libgstreamerpeer_la_LDFLAGS = $(AM_LDFLAGS) @GST_PLUGIN_LDFLAGS@ -avoid-version
@@ -360,7 +351,8 @@ AM_CPPFLAGS = @CLASSPATH_INCLUDES@
 
 # We cannot use -Wwrite-strings and the strict flags since
 # gstreamer contain broken prototypes (by design).
-AM_CFLAGS = @WARNING_CFLAGS@ -Wno-write-strings -Wno-missing-field-initializers \
+AM_CFLAGS = @WARNING_CFLAGS@ -Wno-write-strings \
+            -Wno-missing-field-initializers \
             @ERROR_CFLAGS@ -Wno-unused-parameter @GSTREAMER_BASE_CFLAGS@ \
             @GDK_CFLAGS@ @GSTREAMER_CFLAGS@ @GSTREAMER_PLUGINS_BASE_CFLAGS@ \
             @EXTRA_CFLAGS@
@@ -434,9 +426,12 @@ mostlyclean-compile:
 distclean-compile:
        -rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GStreamerIOPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstclasspathsrc.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstinputstream.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst_classpath_src.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst_input_stream.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst_native_data_line.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst_native_pipeline.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gst_peer.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gstreamer_io_peer.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gst_classpath_src.c b/libjava/classpath/native/jni/gstreamer-peer/gst_classpath_src.c
new file mode 100644 (file)
index 0000000..80c6795
--- /dev/null
@@ -0,0 +1,408 @@
+/*gstclasspathsrc.c - Class file for the GstClasspathPlugin
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+/*
+ * We don't really use version numbering here, we give it the same version
+ * number of classpath, so that gstreamer is happy.
+ * TODO: Maybe this should be moved in config.h instead?
+ */
+#define CLASSPATH_GST_PLUGIN_VERSION PACKAGE_VERSION
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <gst/gst.h>
+#include <gst/base/gstbasesrc.h>
+#include <gst/base/gstpushsrc.h>
+
+#include <glib.h>
+#include <glib/gprintf.h>
+
+#include <gdk/gdk.h>
+
+#include "gst_classpath_src.h"
+#include "gst_input_stream.h"
+
+GST_DEBUG_CATEGORY_STATIC (gst_classpath_src_debug);
+#define GST_CAT_DEFAULT gst_classpath_src_debug
+
+enum
+{
+  ARG_0,
+  ARG_INPUTSTREAM
+};
+
+struct _GstClasspathSrcPrivate
+{
+  GstInputStream *istream;
+  GstCaps *caps;
+};
+
+static const GstElementDetails gst_classpath_src_details =
+GST_ELEMENT_DETAILS ("ClasspathSrc",
+  "Source/Network",
+  "Read from a java input stream",
+  "Mario Torre <neugens@limasoftware.net>");
+
+static GstStaticPadTemplate _template =
+GST_STATIC_PAD_TEMPLATE ("src",
+  GST_PAD_SRC,
+  GST_PAD_ALWAYS,
+  GST_STATIC_CAPS_ANY);
+
+/* ***** plugin init ***** */
+
+static void
+_do_init (GType filesrc_type __attribute__ ((unused)))
+{
+  GST_DEBUG_CATEGORY_INIT (gst_classpath_src_debug, "classpathsrc",
+         0, "classpathsrc");
+}
+
+GST_BOILERPLATE_FULL (GstClasspathSrc, gst_classpath_src, GstPushSrc,
+                  GST_TYPE_PUSH_SRC, _do_init);
+
+static gboolean
+plugin_init (GstPlugin *plugin)
+{
+  return gst_element_register (plugin, "classpathsrc",
+                               GST_RANK_NONE, GST_TYPE_CLASSPATH_SRC);
+}
+
+GST_PLUGIN_DEFINE_STATIC (GST_VERSION_MAJOR,
+  GST_VERSION_MINOR,
+  "classpathsrc",
+  "Java InputStream Reader",
+  plugin_init, CLASSPATH_GST_PLUGIN_VERSION,
+  GST_LICENSE_UNKNOWN, /* GPL + Exception */
+  "Classpath", "http://www.classpath.org/")
+        
+/* ***** public class methods ***** */
+
+static void gst_classpath_src_set_property (GObject *object,
+                                            guint prop_id,
+                                            const GValue *value,
+                                            GParamSpec *pspec);
+
+static void gst_classpath_src_get_property (GObject *object,
+                                            guint prop_id,
+                                            GValue *value,
+                                            GParamSpec *pspec);
+
+static void gst_classpath_src_finalize (GObject *object);
+
+static GstCaps *gst_classpath_src_getcaps (GstBaseSrc *basesrc);
+
+static gboolean gst_classpath_src_start (GstBaseSrc *basesrc);
+
+static gboolean gst_classpath_src_stop (GstBaseSrc *basesrc);
+
+static GstFlowReturn gst_classpath_src_create (GstPushSrc *src,
+                                               GstBuffer **buffer);
+
+static GstFlowReturn
+gst_classpath_src_create_stream (GstClasspathSrc *src, GstBuffer **buffer);
+
+static GstFlowReturn
+check_read (GstClasspathSrc *src, int read, int buffer_size,
+            GstBuffer **buffer);
+
+/* ***** public class methods: end ***** */
+
+static void
+gst_classpath_src_base_init (gpointer gclass)
+{
+  GstElementClass *gstelement_class = GST_ELEMENT_CLASS (gclass);
+
+  gst_element_class_add_pad_template (gstelement_class,
+                                      gst_static_pad_template_get (&_template));
+
+  gst_element_class_set_details (gstelement_class, &gst_classpath_src_details);
+}
+
+static void
+gst_classpath_src_class_init (GstClasspathSrcClass *klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *gstelement_class;
+  GstBaseSrcClass *gstbasesrc_class;
+  GstPushSrcClass *gstpushsrc_class;
+  
+  GParamSpec *pspec;
+
+  gobject_class = G_OBJECT_CLASS (klass);
+  gstelement_class = GST_ELEMENT_CLASS (klass);
+  gstbasesrc_class = GST_BASE_SRC_CLASS (klass);
+  gstpushsrc_class = GST_PUSH_SRC_CLASS (klass);
+  
+  g_type_class_add_private (klass, sizeof (GstClasspathSrcPrivate));
+  
+  /* getter and setters */
+
+  gobject_class->set_property = gst_classpath_src_set_property;
+  gobject_class->get_property = gst_classpath_src_get_property;
+
+  /* register properties */    
+  pspec = g_param_spec_pointer (GST_CLASSPATH_SRC_ISTREAM,
+                                "GstInputStream instance",
+                                "GstInputStream instance",
+                                G_PARAM_READWRITE);
+  g_object_class_install_property (gobject_class, ARG_INPUTSTREAM, pspec);
+
+  /* register callbacks */
+  gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_classpath_src_finalize);
+
+  gstbasesrc_class->get_caps = GST_DEBUG_FUNCPTR (gst_classpath_src_getcaps);
+  gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_classpath_src_start);
+  gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_classpath_src_stop);
+
+  gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_classpath_src_create);
+}
+
+/* ***** */
+
+static void
+gst_classpath_src_init (GstClasspathSrc *src,
+                        GstClasspathSrcClass * g_class __attribute__ ((unused)))
+{
+  src->priv = G_TYPE_INSTANCE_GET_PRIVATE (src, GST_TYPE_CLASSPATH_SRC,
+                                           GstClasspathSrcPrivate);
+  
+  src->priv->istream = NULL;
+  src->priv->caps = NULL;
+}
+
+static void
+gst_classpath_src_finalize (GObject *object)
+{
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+/* ************************************************************************** */
+
+static void
+gst_classpath_src_set_property (GObject *object,
+                                guint prop_id,
+                                const GValue *value,
+                                GParamSpec *pspec)
+{
+  GstClasspathSrc *src;
+  
+  g_return_if_fail (GST_IS_CLASSPATH_SRC (object));
+  
+  src = GST_CLASSPATH_SRC (object);
+  
+  GST_OBJECT_LOCK (src);
+  switch (prop_id)
+    {
+      case ARG_INPUTSTREAM:
+        {
+          GST_STATE_LOCK (src);
+            {
+              GstState state;
+              state = GST_STATE (src);
+              
+              if (state != GST_STATE_READY && state != GST_STATE_NULL)
+                {
+                  GST_DEBUG_OBJECT (src, "setting reader in wrong state");
+                  GST_STATE_UNLOCK (src);
+                  break;
+                }
+            }
+          GST_STATE_UNLOCK (src);
+          
+          /* FIXME: check if this is a valid instance of GstInputStream */
+          src->priv->istream = g_value_get_pointer (value);
+        }
+        break;
+        
+      default:
+        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);   
+        break;
+    }
+  GST_OBJECT_UNLOCK (src);
+}
+
+static void
+gst_classpath_src_get_property (GObject *object,
+                                guint prop_id __attribute__ ((unused)),
+                                GValue *value __attribute__ ((unused)),
+                                GParamSpec *pspec __attribute__ ((unused)))
+{
+  /* TODO */
+}
+
+/* ************************************************************************** */
+
+static GstCaps *gst_classpath_src_getcaps (GstBaseSrc *basesrc)
+{
+  GstClasspathSrc *src;
+  GstCaps *caps = NULL;
+
+  src = GST_CLASSPATH_SRC (basesrc);
+
+  if (src->priv->caps)
+    caps = gst_caps_copy (src->priv->caps);
+  else
+    caps = gst_caps_new_any ();
+  
+  GST_DEBUG_OBJECT (src, "returning caps %" GST_PTR_FORMAT, caps);
+  g_assert (GST_IS_CAPS (caps));
+  
+  return caps;
+}
+
+static GstFlowReturn
+gst_classpath_src_create_stream (GstClasspathSrc *src, GstBuffer **buffer)
+{
+  int buffer_size = 2048;
+  int read = -1; 
+  
+  buffer_size = gst_input_stream_available (src->priv->istream);
+  if (buffer_size < 0)
+    return GST_FLOW_ERROR;
+  else if (buffer_size == 0)
+    return GST_FLOW_WRONG_STATE;
+  
+  *buffer = gst_buffer_new_and_alloc (buffer_size);
+  if (*buffer == NULL)
+    {
+      return GST_FLOW_ERROR;
+    }
+  
+  read = gst_input_stream_read (src->priv->istream,
+                                (int *) GST_BUFFER_DATA (*buffer),
+                                0,
+                                buffer_size);
+  
+  return check_read (src, read, buffer_size, buffer);
+}
+
+GstFlowReturn
+check_read (GstClasspathSrc *src, int read, int buffer_size, GstBuffer **buffer)
+{
+  if (G_UNLIKELY (read < 0))
+    {
+      g_warning("GST_FLOW_UNEXPECTED (read < 0)");
+      
+      gst_buffer_unref (*buffer);
+      *buffer = NULL;
+      
+      return GST_FLOW_ERROR;
+    }
+  else if (G_UNLIKELY (read == 0))
+    {
+      g_warning("GST_FLOW_WRONG_STATE (read == 0)");
+      
+      gst_buffer_unref (*buffer);
+      *buffer = NULL;
+      
+      return GST_FLOW_WRONG_STATE;
+    }
+  else if (G_UNLIKELY (read < buffer_size))
+    {
+      g_warning("shorter read");
+      gst_buffer_unref (*buffer);
+      *buffer = NULL;
+      
+      return GST_FLOW_ERROR;
+    }
+
+  GST_BUFFER_SIZE (*buffer) = read;
+  gst_buffer_set_caps (*buffer, src->priv->caps);
+  
+  return GST_FLOW_OK;
+}
+
+static GstFlowReturn
+gst_classpath_src_create (GstPushSrc *basesrc, GstBuffer **buffer)
+{
+  GstClasspathSrc *src = NULL;
+  GstFlowReturn ret = GST_FLOW_OK;
+  
+  src = GST_CLASSPATH_SRC (basesrc);
+   
+  /* create the buffer */
+  ret = gst_classpath_src_create_stream (src, buffer);
+  
+  return ret;
+}
+
+static gboolean
+gst_classpath_src_start (GstBaseSrc *basesrc)
+{
+  GstClasspathSrc *src;
+
+  src = GST_CLASSPATH_SRC (basesrc);
+   
+  if (src->priv->istream == NULL)
+    {
+      g_warning("GstInputStream is still null. You need to " \
+                "pass a valid InputStream object");
+          
+      GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, (NULL),
+                         ("GstInputStream is still null. You need to " \
+                          "pass a valid InputStream"));
+      return FALSE;
+    }
+          
+  return TRUE;
+}
+
+static gboolean
+gst_classpath_src_stop (GstBaseSrc *basesrc)
+{
+  GstClasspathSrc *src;
+
+  src = GST_CLASSPATH_SRC (basesrc);
+  
+  /* clean the stream */
+  if (src->priv->istream != NULL)
+    gst_input_stream_clean (src->priv->istream);
+
+  if (src->priv->caps) {
+    gst_caps_unref (src->priv->caps);
+    src->priv->caps = NULL;
+  }
+
+  return TRUE;
+}
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gst_classpath_src.h b/libjava/classpath/native/jni/gstreamer-peer/gst_classpath_src.h
new file mode 100644 (file)
index 0000000..9e2acb0
--- /dev/null
@@ -0,0 +1,88 @@
+/*gstclasspathsrc.h - Header file for the GstClasspathPlugin
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+#ifndef __GST_CLASSPATH_SRC_H__
+#define __GST_CLASSPATH_SRC_H__
+
+#include <gst/gst.h>
+#include <gst/base/gstpushsrc.h>
+
+#include "gst_input_stream.h"
+
+G_BEGIN_DECLS
+
+/* #defines don't like whitespacey bits */
+#define GST_TYPE_CLASSPATH_SRC (gst_classpath_src_get_type())
+
+#define GST_CLASSPATH_SRC(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_CLASSPATH_SRC,GstClasspathSrc))
+  
+#define GST_CLASSPATH_SRC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_CLASSPATH_SRC,GstClasspathSrcClass))
+  
+#define GST_IS_CLASSPATH_SRC(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_CLASSPATH_SRC))
+  
+#define GST_IS_CLASSPATH_SRC_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CLASSPATH_SRC))
+
+typedef struct _GstClasspathSrcPrivate GstClasspathSrcPrivate;
+typedef struct _GstClasspathSrc GstClasspathSrc;
+typedef struct _GstClasspathSrcClass GstClasspathSrcClass;
+
+struct _GstClasspathSrc
+{
+  GstPushSrc element;
+  
+  /* instance members */
+  GstClasspathSrcPrivate *priv;
+};
+
+struct _GstClasspathSrcClass
+{
+  GstPushSrcClass parent_class;
+};
+
+GType gst_classpath_src_get_type (void);
+
+/* exported properties */
+
+#define GST_CLASSPATH_SRC_ISTREAM "input-stream"
+
+G_END_DECLS
+
+#endif /* __GST_CLASSPATH_SRC_H__ */
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gst_input_stream.c b/libjava/classpath/native/jni/gstreamer-peer/gst_input_stream.c
new file mode 100644 (file)
index 0000000..c5e5129
--- /dev/null
@@ -0,0 +1,290 @@
+/*GstInputStream.c - Header file for the GstClasspathPlugin
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+#include <jni.h>
+#include <jcl.h>
+
+#include <string.h>
+#include <stdlib.h>
+
+#include <gdk/gdk.h>
+
+#include <glib.h>
+
+#include "gst_peer.h"
+
+#include "gnu_javax_sound_sampled_gstreamer_io_GstInputStream.h"
+#include "gst_input_stream.h"
+
+/* for caching */
+static jmethodID readID = NULL;
+static jmethodID pointerConstructorID = NULL;
+static jmethodID availableID = NULL;
+
+static jfieldID streamID = NULL;
+static jfieldID pointerDataID = NULL;
+
+struct _GstInputStreamPrivate
+{
+  JavaVM *vm;
+  jclass readerClass;
+  jclass pointerClass;
+  
+  jobject reader;
+};
+
+/* ************************************************************************** */
+
+static void init_pointer_IDs (JNIEnv* env);
+
+/* ************************************************************************** */
+
+/* JNI Methods */
+
+JNIEXPORT void JNICALL
+Java_gnu_javax_sound_sampled_gstreamer_io_GstInputStream_init_1id_1cache
+  (JNIEnv *env, jclass clazz)
+{
+  readID = (*env)->GetMethodID(env, clazz, "read", "([BII)I");
+  availableID = (*env)->GetMethodID(env, clazz, "available", "()I");
+  
+  streamID = (*env)->GetFieldID(env, clazz, "gstInputStream",
+                                "Lgnu/classpath/Pointer;");
+  init_pointer_IDs(env);
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_javax_sound_sampled_gstreamer_io_GstInputStream_init_1instance
+  (JNIEnv *env, jobject reader)
+{
+  GstInputStream *istream = NULL;
+  
+  jclass localReader = NULL;
+  jclass localPointer = NULL;
+  jobject _pointer = NULL;
+  
+  istream = (GstInputStream *) JCL_malloc (env, sizeof (GstInputStream));
+  if (istream == NULL)
+    return;
+   
+  istream->priv = (GstInputStreamPrivate *)
+      JCL_malloc (env, sizeof (GstInputStreamPrivate));
+  if (istream->priv == NULL)
+    {
+      JCL_free (env, istream);
+      return;
+    }
+  
+  /* get a local references first */
+  localReader = (*env)->GetObjectClass(env, reader);
+  if (localReader == NULL)
+    {
+      JCL_free (env, istream->priv);
+      JCL_free (env, istream);
+      JCL_ThrowException (env, "java/lang/InternalError",
+                               "Class Initialization failed.");
+      
+      return;
+    }
+  
+#if SIZEOF_VOID_P == 8
+  localPointer = JCL_FindClass (env, "gnu/classpath/Pointer64");
+#else
+# if SIZEOF_VOID_P == 4
+  localPointer = JCL_FindClass (env, "gnu/classpath/Pointer32");
+# else
+#   error "Pointer size is not supported."
+# endif /* SIZEOF_VOID_P == 4 */
+#endif /* SIZEOF_VOID_P == 8 */
+
+  if (localReader == NULL || localPointer == NULL)
+    { 
+      JCL_free (env, istream->priv);
+      JCL_free (env, istream);
+      JCL_ThrowException (env, "java/lang/InternalError",
+                               "Class Initialization failed.");
+      return;
+    }
+
+  /* fill out our structure */
+  istream->priv->readerClass = (*env)->NewGlobalRef(env, localReader);
+  istream->priv->pointerClass = (*env)->NewGlobalRef(env, localPointer);
+  (*env)->GetJavaVM(env, &istream->priv->vm);
+  istream->priv->reader = (*env)->NewGlobalRef(env, reader);
+  
+  _pointer = (*env)->GetObjectField(env, reader, streamID);
+  
+   /* this should be always null */
+  if (_pointer == NULL)
+    {
+#if SIZEOF_VOID_P == 8
+      _pointer = (*env)->NewObject(env, istream->priv->pointerClass,
+                                   pointerConstructorID, (jlong) istream);
+#else
+      _pointer = (*env)->NewObject(env, istream->priv->pointerClass,
+                                   pointerConstructorID, (jint) istream);
+#endif
+    }
+  else
+    {
+#if SIZEOF_VOID_P == 8
+      (*env)->SetLongField(env, reader, streamID, (jlong) istream);
+#else
+      (*env)->SetIntField(env, reader, streamID, (jint) istream);
+#endif
+    }
+    
+    /* store back our pointer into the calling class */
+    (*env)->SetObjectField(env, reader, streamID, _pointer);
+}
+
+/* exported library functions */
+
+void
+gst_input_stream_clean (GstInputStream *self)
+{
+  JNIEnv *env = NULL;
+  
+  env = gst_get_jenv (self->priv->vm);
+  
+  (*env)->DeleteGlobalRef (env, self->priv->reader);
+  (*env)->DeleteGlobalRef (env, self->priv->readerClass);
+  (*env)->DeleteGlobalRef (env, self->priv->pointerClass);
+  
+  JCL_free (env, self->priv);
+  JCL_free (env, self);
+}
+
+int
+gst_input_stream_available (GstInputStream *self)
+{
+  JNIEnv *env = NULL;
+  
+  if (self == NULL || self->priv == NULL ||
+      self->priv->vm == NULL || self->priv->reader == NULL)
+    {
+      return -1;
+    }
+  
+  env = gst_get_jenv (self->priv->vm);
+  if (env == NULL)
+    {
+      g_warning("GstInputStream::gst_input_stream_available " \
+                "failed to get java env");
+      return -1;
+    }
+  
+  return (*env)->CallIntMethod (env, self->priv->reader, availableID); 
+}
+
+int
+gst_input_stream_read (GstInputStream *self, int *data, int offset,
+                       int length)
+{
+  JNIEnv *env = NULL;
+  
+  int ret = -1;
+  jbyteArray buffer;
+  jbyte *bytes = NULL;
+  
+  if (self == NULL || self->priv == NULL ||
+      self->priv->vm == NULL || self->priv->reader == NULL)
+    {
+      return -1;
+    }
+
+  env = gst_get_jenv (self->priv->vm);
+  if (env == NULL)
+    {
+      g_warning("GstInputStream::gst_input_stream_read failed to get java env");
+      return -1;
+    }
+   
+  buffer = (*env)->NewByteArray (env, length);   
+  if (buffer == NULL)
+    {
+      g_warning ("GstInputStream::gst_input_stream_read called, failed");
+      return -1;
+    }
+
+  ret = (*env)->CallIntMethod (env, self->priv->reader, readID, buffer, 0,
+                               length);
+  if (ret < 0)
+    {
+      (*env)->DeleteLocalRef(env, buffer);
+      return ret;
+    }
+  
+  bytes = (*env)->GetByteArrayElements (env, buffer, NULL);
+  
+  /* copy bytes and release */
+  memcpy (data + offset, bytes, ret);
+  
+  (*env)->ReleaseByteArrayElements (env, buffer, bytes, 0);
+  (*env)->DeleteLocalRef (env, buffer);
+
+  return ret;
+}
+
+/* private functions */
+
+static void init_pointer_IDs (JNIEnv* env)
+{
+  jclass pointerClass = NULL;
+  
+#if SIZEOF_VOID_P == 8
+  pointerClass = JCL_FindClass (env, "gnu/classpath/Pointer64");
+  if (pointerClass != NULL)
+    {
+      pointerDataID = (*env)->GetFieldID (env, pointerClass, "data", "J");
+      pointerConstructorID = (*env)->GetMethodID (env, pointerClass, "<init>",
+                                                  "(J)V");
+    }
+#else
+# if SIZEOF_VOID_P == 4
+  pointerClass = JCL_FindClass (env, "gnu/classpath/Pointer32"); 
+  if (pointerClass != NULL)
+    { 
+      pointerDataID = (*env)->GetFieldID(env, pointerClass, "data", "I");
+      pointerConstructorID = (*env)->GetMethodID(env, pointerClass,
+                                                 "<init>", "(I)V");
+    }
+# else
+#   error "Pointer size is not supported."
+# endif /* SIZEOF_VOID_P == 4 */
+#endif /* SIZEOF_VOID_P == 8 */
+}
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gst_input_stream.h b/libjava/classpath/native/jni/gstreamer-peer/gst_input_stream.h
new file mode 100644 (file)
index 0000000..8e9d3cf
--- /dev/null
@@ -0,0 +1,71 @@
+/*gstinputstream.h - Header file for the GstClasspathPlugin
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+#ifndef __GST_INPUT_STREAM_H__
+#define __GST_INPUT_STREAM_H__
+
+typedef struct _GstInputStream GstInputStream;
+typedef struct _GstInputStreamPrivate GstInputStreamPrivate;
+
+struct _GstInputStream
+{
+  /* instance members */
+  GstInputStreamPrivate *priv;
+};
+
+/**
+ * Clean the given instance of GstInputStream so that the garbage
+ * collector can collect the cached Java classes.
+ * Call this fuction when you don't need anymore to use this instance of
+ * GstInputStream. Note that failure to call this routine will result in
+ * memroy leaks.
+ */
+void gst_input_stream_clean (GstInputStream *self);
+
+/**
+ * Perform the "read" operation on this GstInputStream.
+ */
+int gst_input_stream_read (GstInputStream *self, int *data, int offset,
+                           int length);
+
+/**
+ * Returns the number of byte currently available for read in this
+ * GstInputStream.
+ */
+int gst_input_stream_available (GstInputStream *self);
+
+#endif /* __GST_INPUT_STREAM_H__ */
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gst_native_data_line.c b/libjava/classpath/native/jni/gstreamer-peer/gst_native_data_line.c
new file mode 100644 (file)
index 0000000..84e76a1
--- /dev/null
@@ -0,0 +1,251 @@
+/*gst_native_data_line.c - Implements the native methods of GstNativeDataLine 
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+#include <jni.h>
+
+#include <gst/gst.h>
+
+#include "jcl.h"
+#include "gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h"
+
+#include "gst_peer.h"
+#include "gst_classpath_src.h"
+#include "gst_native_pipeline.h"
+
+static jfieldID pointerDataFID = NULL;
+
+/* ************************************************************************** */
+
+static GstElement *setup_pipeline (GstNativePipeline *jpipeline, int fd);
+static void
+gst_newpad (GstElement *decodebin, GstPad *pad, gboolean last, gpointer data);
+
+/* ************************************************************************** */
+
+JNIEXPORT void JNICALL
+Java_gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine_init_1id_1cache
+  (JNIEnv *env __attribute__ ((unused)), jclass clazz __attribute__ ((unused)))
+{
+  jclass pointerClass = NULL;
+  
+#if SIZEOF_VOID_P == 8
+  pointerClass = JCL_FindClass (env, "gnu/classpath/Pointer64");
+  if (pointerClass != NULL)
+    {
+      pointerDataFID = (*env)->GetFieldID (env, pointerClass, "data", "J");
+    }
+#else
+# if SIZEOF_VOID_P == 4
+  pointerClass = JCL_FindClass (env, "gnu/classpath/Pointer32"); 
+  if (pointerClass != NULL)
+    { 
+      pointerDataFID = (*env)->GetFieldID(env, pointerClass, "data", "I");
+    }
+# else
+#   error "Pointer size is not supported."
+# endif /* SIZEOF_VOID_P == 4 */
+#endif /* SIZEOF_VOID_P == 8 */
+}
+
+JNIEXPORT jboolean JNICALL
+Java_gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine_setup_1sink_1pipeline
+  (JNIEnv *env, jclass clazz __attribute__ ((unused)),
+   jobject pointer)
+{
+  GstNativePipeline *jpipeline = NULL;
+  
+  GstElement *pipeline = NULL;
+  GstElement *sink = NULL;
+  GstElement *audioconv= NULL;
+  GstElement *resample = NULL;
+  GstElement *audio = NULL;
+  GstElement *decodebin = NULL;
+  
+  GstPad *audiopad = NULL;
+  
+  gst_init (NULL, NULL);
+  
+  /* get the pipeline from the pointer, then create it if needed */
+  jpipeline = (GstNativePipeline *) get_object_from_pointer (env, pointer,
+                                                            pointerDataFID);
+  if (jpipeline == NULL)
+    return JNI_FALSE;
+  pipeline = setup_pipeline (jpipeline,
+                             gst_native_pipeline_get_pipeline_fd (jpipeline));
+  if (pipeline == NULL)
+    return JNI_FALSE;
+   
+  /* add the audio sink to the pipeline */
+  /* TODO: hardcoded values */
+  sink = gst_element_factory_make ("autoaudiosink", "alsa-output");
+  if (sink == NULL)
+    {
+      gst_object_unref(GST_OBJECT(pipeline));
+      gst_object_unref(GST_OBJECT(sink));
+
+      g_warning ("unable to create sink\n");
+      return JNI_FALSE;
+    }
+  
+  audioconv = gst_element_factory_make ("audioconvert", "aconv");
+  if (audioconv == NULL)
+    {
+      gst_object_unref(GST_OBJECT(pipeline));
+      gst_object_unref(GST_OBJECT(sink));
+      gst_object_unref(GST_OBJECT(decodebin));
+
+      g_warning ("unable to create audioconv\n");
+      return JNI_FALSE;
+    }
+  
+  audio = gst_bin_new ("audiobin");
+  if (audio == NULL)
+    {
+      gst_object_unref(GST_OBJECT(pipeline));
+      gst_object_unref(GST_OBJECT(sink));
+      gst_object_unref(GST_OBJECT(decodebin));
+
+      g_warning ("unable to create audioconv\n");
+      return JNI_FALSE;
+    }
+  
+  resample = gst_element_factory_make ("audioresample", "audioresample");
+  if (audioconv == NULL)
+    {
+      gst_object_unref(GST_OBJECT(pipeline));
+      gst_object_unref(GST_OBJECT(sink));
+      gst_object_unref(GST_OBJECT(decodebin));
+      gst_object_unref(GST_OBJECT(audio));
+
+      g_warning ("unable to create resample\n");
+      return JNI_FALSE;
+    }
+  
+  audiopad = gst_element_get_pad (audioconv, "sink");
+  gst_bin_add_many (GST_BIN (audio), audioconv, resample, sink, NULL);
+  gst_element_link (audioconv, sink);
+
+  gst_element_add_pad (audio, gst_ghost_pad_new ("sink", audiopad));
+
+  gst_object_unref (audiopad);
+  gst_bin_add (GST_BIN (pipeline), audio);
+    
+  decodebin = gst_bin_get_by_name (GST_BIN (pipeline), "decodebin");
+  g_signal_connect (decodebin, "new-decoded-pad", G_CALLBACK (gst_newpad),
+                    audio);
+  
+  gst_native_pipeline_set_pipeline (jpipeline, pipeline);
+  
+  return JNI_TRUE;
+}
+
+/* ************************************************************************** */
+
+static GstElement *setup_pipeline (GstNativePipeline *jpipeline, int fd)
+{
+  GstElement *decodebin = NULL;
+  GstElement *source = NULL;
+  
+  GstElement *pipeline = NULL;
+  
+  if (fd < 0)
+    return NULL;
+  
+  pipeline = gst_pipeline_new ("java sound pipeline");
+  if (pipeline == NULL)
+    return NULL;
+    
+  decodebin = gst_element_factory_make ("decodebin", "decodebin");
+  if (decodebin == NULL)
+    {
+      gst_object_unref(GST_OBJECT(pipeline));
+      gst_object_unref(GST_OBJECT(source));
+
+      g_warning ("unable to create decodebin\n");
+      return NULL;
+    }
+    
+  source = gst_element_factory_make ("fdsrc", "source");
+  if (source == NULL)
+    {
+      gst_object_unref(GST_OBJECT(pipeline));
+      gst_object_unref(GST_OBJECT(source));
+      gst_object_unref(GST_OBJECT(decodebin));
+
+      g_warning ("unable to create a source");
+      return JNI_FALSE;
+    }
+  g_object_set (G_OBJECT (source), "fd", fd, NULL);
+  
+  gst_bin_add_many (GST_BIN (pipeline), source, decodebin, NULL);
+  gst_element_link (source, decodebin);
+  
+  return pipeline;
+}
+
+static void
+gst_newpad (GstElement *decodebin, GstPad *pad, gboolean last, gpointer data)
+{
+  GstCaps *caps;
+  GstStructure *str;
+  GstPad *audiopad;
+    
+  GstElement *audio = (GstElement *) data;
+
+  /* only link once */
+  audiopad = gst_element_get_pad (audio, "sink");
+  if (GST_PAD_IS_LINKED (audiopad))
+    {
+      g_object_unref (audiopad);
+      return;
+    } 
+  
+  /* check media type */
+  caps = gst_pad_get_caps (pad);
+  str = gst_caps_get_structure (caps, 0);
+  if (!g_strrstr (gst_structure_get_name (str), "audio"))
+    {
+      gst_caps_unref (caps);
+      gst_object_unref (audiopad);
+      return;
+    } 
+  gst_caps_unref (caps);
+  
+  /* link'n'play */
+  gst_pad_link (pad, audiopad);
+}
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.c b/libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.c
new file mode 100644 (file)
index 0000000..3e32568
--- /dev/null
@@ -0,0 +1,611 @@
+/*gst_native_pipeline.c - Header file for the GstClasspathPlugin
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+#include <jni.h>
+#include <jcl.h>
+
+#include <string.h>
+#include <stdlib.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+
+#include <unistd.h>
+
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif /* HAVE_FCNTL_H */
+
+#if defined(HAVE_SYS_IOCTL_H)
+#define BSD_COMP /* Get FIONREAD on Solaris2 */
+#include <sys/ioctl.h>
+#endif
+#if defined(HAVE_SYS_FILIO_H) /* Get FIONREAD on Solaris 2.5 */
+#include <sys/filio.h>
+#endif
+
+#include <gdk/gdk.h>
+#include <glib.h>
+
+#include <gst/gst.h>
+
+#include "cpio.h"
+#include "gst_peer.h"
+
+#include "gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h"
+#include "gst_native_pipeline.h"
+
+static jmethodID pointerConstructorMID = NULL;
+
+static jfieldID pipelineFID = NULL;
+static jfieldID pointerDataFID = NULL;
+static jfieldID nameFID = NULL;
+static jfieldID capacityFID = NULL;
+
+/*
+ * Needed to compute the size of the data still available for processing in the
+ * pipeline. We give a default here but this will be overwritten by the
+ * detection routines.
+ */
+static long GST_DETECTED_PIPE_CAPACITY = 65536;
+
+/*
+ * Note: the Java code uses enum classes, these are not mapped into constants
+ * by the javah tool, changes to these values should be reflected in the Java
+ * side.
+ */
+enum
+{
+  PLAY,
+  PAUSE,
+  STOP
+};
+
+/*
+ * Defined as constants in the Java code, hence mapped by javah.
+ */
+enum
+{
+  READ = gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_READ,
+  WRITE = gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_WRITE
+};
+
+struct _GstNativePipelinePrivate
+{
+  JavaVM *vm;
+  jclass GstPipelineClass;
+  jclass PointerClass;
+  
+  jobject jni_pipeline;
+
+  char *name;
+  int fd;
+  GstElement *pipeline;
+};
+
+/* ************************************************************************** */
+/*
+static void gst_native_pipeline_clean (GstNativePipeline *self);*/
+static char *create_name (void);
+static void init_pointer_IDs (JNIEnv* env);
+static jint get_free_space (int fd);
+static void detect_pipe_max (void);
+
+/* ************************************************************************** */
+
+/* JNI Methods */
+
+JNIEXPORT void JNICALL
+Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_init_1id_1cache
+  (JNIEnv *env, jclass clazz)
+{
+  pipelineFID = (*env)->GetFieldID (env, clazz, "pipeline",
+                                    "Lgnu/classpath/Pointer;");
+  nameFID = (*env)->GetFieldID (env, clazz, "name", "Ljava/lang/String;");
+  capacityFID = (*env)->GetFieldID (env, clazz, "capacity", "J");
+
+  init_pointer_IDs (env);
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_init_1instance
+  (JNIEnv *env, jobject pipeline)
+{
+  GstNativePipeline *_pipeline = NULL;
+  
+  jclass localGstPipelineClass = NULL;
+  jclass localPointerClass = NULL;
+  jobject _pointer = NULL;
+  
+  _pipeline =
+    (GstNativePipeline *) JCL_malloc (env, sizeof (GstNativePipeline));
+  if (_pipeline == NULL)
+    return;
+  
+  _pipeline->priv = (GstNativePipelinePrivate *)
+    JCL_malloc (env, sizeof (GstNativePipelinePrivate));
+  if (_pipeline->priv == NULL)
+    {
+      JCL_free (env, _pipeline);
+      return;
+    }
+  
+#if SIZEOF_VOID_P == 8
+  localPointerClass = JCL_FindClass (env, "gnu/classpath/Pointer64");
+#else
+# if SIZEOF_VOID_P == 4
+  localPointerClass = JCL_FindClass (env, "gnu/classpath/Pointer32");
+# else
+#   error "Pointer size is not supported."
+# endif /* SIZEOF_VOID_P == 4 */
+#endif /* SIZEOF_VOID_P == 8 */
+
+  localGstPipelineClass = (*env)->GetObjectClass(env, pipeline);
+  if (localGstPipelineClass == NULL || localGstPipelineClass == NULL)
+    {
+      JCL_free (env, _pipeline->priv);
+      JCL_free (env, _pipeline);
+      JCL_ThrowException (env, "java/lang/InternalError",
+                               "Class Initialization failed.");
+      return;
+    }
+
+  GST_DETECTED_PIPE_CAPACITY = (long) (*env)->GetLongField(env, pipeline,
+                                                           capacityFID);
+  
+  /* fill the object */
+  (*env)->GetJavaVM(env, &_pipeline->priv->vm);
+  _pipeline->priv->jni_pipeline = (*env)->NewGlobalRef(env, pipeline);
+  _pipeline->priv->GstPipelineClass =
+    (*env)->NewGlobalRef(env, localGstPipelineClass);
+  _pipeline->priv->PointerClass = (*env)->NewGlobalRef(env, localPointerClass);
+  _pipeline->priv->pipeline = NULL;
+  
+  _pointer = (*env)->GetObjectField(env, pipeline, pipelineFID);
+  
+  if (_pointer == NULL)
+    {
+#if SIZEOF_VOID_P == 8
+      _pointer = (*env)->NewObject(env, _pipeline->priv->PointerClass,
+                                   pointerConstructorMID, (jlong) _pipeline);
+#else
+      _pointer = (*env)->NewObject(env, _pipeline->priv->PointerClass,
+                                   pointerConstructorMID, (jint) _pipeline);
+#endif
+    }
+  else
+    {
+#if SIZEOF_VOID_P == 8
+      (*env)->SetLongField(env, pipeline, pipelineFID, (jlong) _pipeline);
+#else
+      (*env)->SetIntField(env, pipeline, pipelineFID, (jint) _pipeline);
+#endif
+    }
+      
+  /* store back our pointer into the calling class */
+  (*env)->SetObjectField(env, pipeline, pipelineFID, _pointer);
+}
+
+JNIEXPORT jboolean JNICALL
+Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_set_1state
+  (JNIEnv *env, jclass clazz, jobject pointer, jint state)
+{
+  GstNativePipeline *jpipeline = NULL;
+  jboolean result = JNI_FALSE;
+  
+  if (pointer == NULL)
+    {
+      JCL_ThrowException (env, "javax/sound/sampled/LineUnavailableException",
+                               "Can't change pipeline state: " \
+                               "pipeline not initialized");
+      return result;
+    }
+    
+  jpipeline = (GstNativePipeline *) get_object_from_pointer (env, pointer,
+                                                             pointerDataFID);
+  if (jpipeline == NULL)
+    return JNI_FALSE;
+                                                         
+  switch (state)
+    {
+      case (PLAY):
+        gst_element_set_state(GST_ELEMENT(jpipeline->priv->pipeline),
+                              GST_STATE_PLAYING);
+        result = JNI_TRUE;
+        break;
+        
+      case (PAUSE):
+        gst_element_set_state(GST_ELEMENT(jpipeline->priv->pipeline),
+                              GST_STATE_PAUSED);
+        result = JNI_TRUE;
+        break;
+        
+      case (STOP):
+#ifndef WITHOUT_FILESYSTEM
+        /* clean the pipeline and kill named pipe */
+        if (jpipeline->priv->name)
+          {
+            cpio_removeFile (jpipeline->priv->name);
+            g_free (jpipeline->priv->name);
+            jpipeline->priv->name = NULL;
+          }
+#endif /* WITHOUT_FILESYSTEM */
+  
+        if (jpipeline->priv->pipeline != NULL)
+          gst_object_unref (GST_OBJECT(jpipeline->priv->pipeline));
+        result = JNI_TRUE;
+        break;
+        
+      default:
+        /* nothing */
+        result = JNI_FALSE;
+        break; 
+    }
+    
+  return result;
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_open_1native_1pipe
+  (JNIEnv *env, jclass clazz, jobject pointer, jint mode)
+{
+  GstNativePipeline *jpipeline = NULL;
+  
+  jpipeline = (GstNativePipeline *) get_object_from_pointer (env, pointer,
+                                                             pointerDataFID);
+  switch (mode)
+    {
+      case (READ):
+        jpipeline->priv->fd =
+            open (jpipeline->priv->name, O_RDONLY | O_NONBLOCK);
+        break;
+      
+      case (WRITE):
+        /* TODO: no-op currently */
+        break;
+    }
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_close_1native_1pipe
+  (JNIEnv *env, jclass clazz, jobject pointer)
+{
+#ifndef WITHOUT_FILESYSTEM
+  GstNativePipeline *jpipeline = NULL;
+  jpipeline = (GstNativePipeline *) get_object_from_pointer (env, pointer,
+                                                             pointerDataFID);
+  /* kill the named pipe */
+  if (jpipeline->priv->name)
+    {
+      cpio_removeFile (jpipeline->priv->name);
+      g_free (jpipeline->priv->name);
+      jpipeline->priv->name = NULL;
+    }
+#endif /* WITHOUT_FILESYSTEM */
+}
+
+JNIEXPORT jboolean JNICALL
+Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_create_1named_1pipe
+  (JNIEnv *env, jobject GstPipeline, jobject pointer)
+{
+#ifndef WITHOUT_FILESYSTEM
+  /*
+   * We get a temp name for the named pipe, create the named pipe and then
+   * set the relative field in the java class.
+   */
+  GstNativePipeline *jpipeline = NULL;
+  jstring *name = NULL;
+  
+  jpipeline = (GstNativePipeline *) get_object_from_pointer (env, pointer,
+                                                             pointerDataFID);
+  if (jpipeline == NULL)
+    return JNI_FALSE;                                                        
+  
+  jpipeline->priv->name = create_name ();
+  if (jpipeline->priv->name == NULL)
+    return JNI_FALSE;
+   
+  if (mkfifo (jpipeline->priv->name, 0600) < 0)
+    {
+      if (jpipeline->priv->name != NULL)
+        free (jpipeline->priv->name);
+      return JNI_FALSE;
+    }
+  
+  /* now set the String field */
+  name = (*env)->NewStringUTF(env, jpipeline->priv->name);
+  if (name == NULL)
+    {
+      cpio_removeFile (jpipeline->priv->name);
+      if (jpipeline->priv->name != NULL)
+        free (jpipeline->priv->name);
+      
+      return JNI_FALSE;
+    }
+  
+  (*env)->SetObjectField(env, GstPipeline, nameFID, name);
+    
+  return JNI_TRUE;
+  
+#else /* not WITHOUT_FILESYSTEM */
+  return JNI_FALSE;
+#endif /* not WITHOUT_FILESYSTEM */
+}
+
+JNIEXPORT jint JNICALL
+Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_available
+  (JNIEnv *env, jclass clazz, jobject pointer, jint mode)
+{
+  jint result = -1;
+#ifndef WITHOUT_FILESYSTEM
+  
+  GstNativePipeline *jpipeline = NULL;
+  jpipeline = (GstNativePipeline *) get_object_from_pointer (env, pointer,
+                                                             pointerDataFID);
+                                                                                                         
+  if (mode == READ)
+    {
+      result = get_free_space (jpipeline->priv->fd);
+    }
+  else
+    {
+# if defined (FIONREAD)      
+      if (ioctl (jpipeline->priv->fd, FIONREAD, &result) == -1)
+        g_warning("IMPLEMENT ME: ioctl failed");
+        
+# else /* not defined (FIONREAD) */
+      g_warning("IMPLEMENT ME: !defined (FIONREAD");
+# endif /* defined (FIONREAD) */
+    
+    } /* if (mode == READ) */
+    
+#endif  /* not WITHOUT_FILESYSTEM */
+
+  return result;
+}
+
+JNIEXPORT jlong JNICALL
+Java_gnu_javax_sound_sampled_gstreamer_lines_GstPipeline_detect_1pipe_1size
+  (JNIEnv *env, jobject GstPipeline)
+{
+  detect_pipe_max ();
+  
+  return GST_DETECTED_PIPE_CAPACITY;
+}
+
+/* exported library functions */
+/*
+static void gst_native_pipeline_clean (GstNativePipeline *self)
+{
+  JNIEnv *env = NULL;
+  
+  env = gst_get_jenv (self->priv->vm);
+  
+  (*env)->DeleteGlobalRef (env, self->priv->jni_pipeline);
+  (*env)->DeleteGlobalRef (env, self->priv->GstPipelineClass);
+  (*env)->DeleteGlobalRef (env, self->priv->PointerClass);
+  
+  if (self->priv->pipeline != NULL)
+    gst_object_unref (GST_OBJECT (self->priv->pipeline));
+  
+  if (self->priv->name)
+    {
+      cpio_removeFile (self->priv->name);
+      g_free (self->priv->name);
+      self->priv->name = NULL;
+    }
+    
+  JCL_free (env, self->priv);
+  JCL_free (env, self);
+}
+*/
+void gst_native_pipeline_set_pipeline (GstNativePipeline *self,
+                                       GstElement *pipeline)
+{
+  if (self->priv->pipeline != NULL)
+    gst_object_unref (GST_OBJECT (self->priv->pipeline));
+    
+  self->priv->pipeline = pipeline;
+}
+
+GstElement *gst_native_pipeline_get_pipeline (GstNativePipeline *self)
+{
+  return self->priv->pipeline;
+}
+
+char *gst_native_pipeline_get_pipeline_name (GstNativePipeline *self)
+{
+  return self->priv->name;
+}
+
+int gst_native_pipeline_get_pipeline_fd (GstNativePipeline *self)
+{
+  return self->priv->fd;
+}
+
+/* private functions */
+
+static void init_pointer_IDs (JNIEnv* env)
+{
+  jclass PointerClass = NULL;
+  
+#if SIZEOF_VOID_P == 8
+  PointerClass = JCL_FindClass (env, "gnu/classpath/Pointer64");
+  if (PointerClass != NULL)
+    {
+      pointerDataFID = (*env)->GetFieldID (env, PointerClass, "data", "J");
+      pointerConstructorMID = (*env)->GetMethodID (env, PointerClass, "<init>",
+                                                   "(J)V");
+    }
+#else
+# if SIZEOF_VOID_P == 4
+  PointerClass = JCL_FindClass (env, "gnu/classpath/Pointer32"); 
+  if (PointerClass != NULL)
+    { 
+      pointerDataFID = (*env)->GetFieldID(env, PointerClass, "data", "I");
+      pointerConstructorMID = (*env)->GetMethodID(env, PointerClass,
+                                                  "<init>", "(I)V");
+    }
+# else
+#   error "Pointer size is not supported."
+# endif /* SIZEOF_VOID_P == 4 */
+#endif /* SIZEOF_VOID_P == 8 */
+}
+
+static jint get_free_space (int fd)
+{
+  jint result = -1;
+  
+#if defined (FIONSPACE)
+
+  if (ioctl (fd, FIONSPACE, &result) == -1)
+    {
+      g_warning("IMPLEMENT ME: ioctl failed");
+    }
+    
+#elif defined (FIONREAD)
+
+  if (ioctl (fd, FIONREAD, &result) == -1)
+    {
+      g_warning("IMPLEMENT ME: ioctl failed");
+    }
+
+  result = GST_DETECTED_PIPE_CAPACITY - result;
+  
+#elif
+   g_warning("IMPLEMENT ME!!! - !defined (FIONSPACE), !defined (FIONREAD");
+#endif
+
+  return result;
+}
+
+static char *create_name (void)
+{
+  char *buffer = NULL;
+  char *tmp = NULL;
+  
+  buffer = (char *) g_malloc0 (_GST_MALLOC_SIZE_);
+  if (buffer == NULL)
+    {
+      /* huston, we have a problem... */
+      return NULL;
+    }
+    
+  tmp = tempnam (NULL, _GST_PIPELINE_PREFIX_);
+  if (tmp == NULL)
+    {
+      g_free (buffer);
+      return NULL;
+    }
+  
+  g_snprintf (buffer, _GST_MALLOC_SIZE_, "%s%s", tmp, _GST_PIPELINE_SUFFIX_);
+  g_free (tmp);
+  
+  return buffer;
+}
+
+static void detect_pipe_max (void)
+{
+  int read_fd;
+  int write_fd;
+  
+  /* can be anything! */
+  char *character = "a";
+  char *pipe = NULL;
+  
+  gboolean available = TRUE;
+  int w = 0;
+  long wrote = 0;
+  
+  pipe = create_name ();
+  if (pipe == NULL)
+    {
+      g_warning ("can't create test pipe name");
+      return;
+    }
+  if (mkfifo (pipe, 0600) < 0)
+    {
+      g_warning ("unable to create test pipe...");
+      g_free (pipe);
+      
+      return;
+    }
+  /* open both end of the pipe */
+  read_fd = open (pipe, O_RDONLY | O_NONBLOCK);
+  if (read_fd < 0)
+    {
+      cpio_removeFile (pipe);
+      g_free (pipe);
+      
+      return;
+    }
+    
+  write_fd = open (pipe, O_WRONLY | O_NONBLOCK);
+  if (write_fd < 0)
+    {
+      cpio_closeFile (write_fd);
+      cpio_removeFile (pipe);
+      g_free (pipe);
+      
+      return;
+    }
+
+  while (available)
+    {
+      w = 0;
+          
+      cpio_write (write_fd, character, 1, &w);
+      if (w < 0)
+        available = FALSE;
+      else
+        wrote += w;
+    }
+    
+  GST_DETECTED_PIPE_CAPACITY = wrote;
+    
+  cpio_closeFile (write_fd);    
+  cpio_closeFile (read_fd);
+  cpio_removeFile (pipe);
+      
+  g_free (pipe);  
+}
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.h b/libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.h
new file mode 100644 (file)
index 0000000..b5a45b4
--- /dev/null
@@ -0,0 +1,63 @@
+/*gst_native_pipeline.h - Header file for the GstClasspathPlugin
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+#ifndef __GST_NATIVE_PIPELINE_H__
+#define __GST_NATIVE_PIPELINE_H__
+
+#include <glib.h>
+
+#include <gst/gst.h>
+
+typedef struct _GstNativePipeline GstNativePipeline;
+typedef struct _GstNativePipelinePrivate GstNativePipelinePrivate;
+
+struct _GstNativePipeline
+{
+  /* instance members */
+  GstNativePipelinePrivate *priv;
+};
+
+void gst_native_pipeline_set_pipeline (GstNativePipeline *self,
+                                       GstElement *pipeline);
+
+GstElement *gst_native_pipeline_get_pipeline (GstNativePipeline *self);
+
+char *gst_native_pipeline_get_pipeline_name (GstNativePipeline *self);
+
+int gst_native_pipeline_get_pipeline_fd (GstNativePipeline *self);
+
+#endif /* __GST_NATIVE_PIPELINE_H__ */
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gst_peer.c b/libjava/classpath/native/jni/gstreamer-peer/gst_peer.c
new file mode 100644 (file)
index 0000000..da83b00
--- /dev/null
@@ -0,0 +1,83 @@
+/*gst_peer.c - Common utility functions for the native peer.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+#include <glib.h>
+
+#include <jni.h>
+#include "jcl.h"
+
+#include "gst_peer.h"
+
+JNIEnv *gst_get_jenv (JavaVM *vm)
+{
+  void *env = NULL;
+  
+  if ((*vm)->GetEnv(vm, &env, JNI_VERSION_1_2) != JNI_OK)
+    {
+      if ((*vm)->AttachCurrentThreadAsDaemon(vm, &env, NULL) < 0)
+        {
+          g_warning ("GstNativePipeline:- env not attached");
+          return NULL;
+        }
+    }
+  
+  return (JNIEnv *) env;
+}
+
+void *
+get_object_from_pointer (JNIEnv *env, jobject pointer, jfieldID pointerDataFID)
+{
+  void *_object = NULL;
+  
+  if (env == NULL)
+    return NULL;
+    
+  if ((*env)->IsSameObject(env, pointer, NULL) == JNI_TRUE)
+    return NULL;
+  
+#if SIZEOF_VOID_P == 8
+  _object = (void *) (*env)->GetLongField(env, pointer, pointerDataFID);
+#else
+# if SIZEOF_VOID_P == 4
+  _object = (void *) (*env)->GetIntField(env, pointer, pointerDataFID);
+# else
+#   error "Pointer size is not supported."
+# endif /* SIZEOF_VOID_P == 4 */
+#endif /* SIZEOF_VOID_P == 8 */
+
+  return _object;
+}
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gst_peer.h b/libjava/classpath/native/jni/gstreamer-peer/gst_peer.h
new file mode 100644 (file)
index 0000000..4500001
--- /dev/null
@@ -0,0 +1,59 @@
+/*gst_peer.h - Common utility functions for the native peer.
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library.  Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module.  An independent module is a module which is not derived from
+or based on this library.  If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so.  If you do not wish to do so, delete this
+exception statement from your version. */
+
+#include <jni.h>
+#include "jcl.h"
+
+#ifdef MAXPATHLEN
+# define _GST_MALLOC_SIZE_ MAXPATHLEN
+#else
+# define _GST_MALLOC_SIZE_ 1024
+#endif
+
+#define _GST_PIPELINE_PREFIX_ "cp-"
+#define _GST_PIPELINE_SUFFIX_ "-classpath-gst-audio"
+
+/**
+ * Return a reference to the object stored in this Pointer.
+ */
+void *
+get_object_from_pointer (JNIEnv *env, jobject pointer, jfieldID pointerDataFID);
+
+/**
+ * Return the JNIEnv valid under the current thread context.
+ */
+JNIEnv *gst_get_jenv (JavaVM *vm);
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.c b/libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.c
deleted file mode 100644 (file)
index afce1f1..0000000
+++ /dev/null
@@ -1,332 +0,0 @@
-/*gstclasspathsrc.c - Class file for the GstClasspathPlugin
- Copyright (C) 2007 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-#ifdef HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
-/*
- * We don't really use version numbering here, we give it the same version
- * number of classpath, so that gstreamer is happy.
- * TODO: Maybe this should be moved in config.h instead?
- */
-#define CLASSPATH_GST_PLUGIN_VERSION PACKAGE_VERSION
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include <gst/gst.h>
-#include <gst/base/gstbasesrc.h>
-#include <gst/base/gstpushsrc.h>
-
-#include <glib.h>
-#include <glib/gprintf.h>
-
-#include <gdk/gdk.h>
-
-#include "gstclasspathsrc.h"
-#include "gstinputstream.h"
-
-GST_DEBUG_CATEGORY_STATIC (gst_classpath_src_debug);
-#define GST_CAT_DEFAULT gst_classpath_src_debug
-
-enum
-{
-  ARG_0,
-  ARG_INPUTSTREAM
-};
-
-static const GstElementDetails gst_classpath_src_details =
-GST_ELEMENT_DETAILS ("ClasspathSrc",
-  "Source/Network",
-  "Read from a java input stream",
-  "Mario Torre <neugens@limasoftware.net>");
-
-static GstStaticPadTemplate _template =
-GST_STATIC_PAD_TEMPLATE ("src",
-  GST_PAD_SRC,
-  GST_PAD_ALWAYS,
-  GST_STATIC_CAPS_ANY);
-
-/* ***** plugin init ***** */
-
-static void
-_do_init (GType filesrc_type __attribute__ ((unused)))
-{
-  GST_DEBUG_CATEGORY_INIT (gst_classpath_src_debug, "classpathsrc",
-         0, "classpathsrc");
-}
-
-GST_BOILERPLATE_FULL (GstClasspathSrc, gst_classpath_src, GstPushSrc,
-                  GST_TYPE_PUSH_SRC, _do_init);
-
-static gboolean
-plugin_init (GstPlugin *plugin)
-{
-  return gst_element_register (plugin, "classpathsrc",
-                               GST_RANK_NONE, GST_TYPE_CLASSPATH_SRC);
-}
-
-GST_PLUGIN_DEFINE_STATIC (GST_VERSION_MAJOR,
-  GST_VERSION_MINOR,
-  "classpathsrc",
-  "Java InputStream Reader",
-  plugin_init, CLASSPATH_GST_PLUGIN_VERSION,
-  GST_LICENSE_UNKNOWN,
-  "Classpath", "http://www.classpath.org/")
-        
-/* ***** public class methods ***** */
-
-static void gst_classpath_src_set_property (GObject *object,
-                                            guint prop_id,
-                                            const GValue *value,
-                                            GParamSpec *pspec);
-
-static void gst_classpath_src_get_property (GObject *object,
-                                            guint prop_id,
-                                            GValue *value,
-                                            GParamSpec *pspec);
-
-static void gst_classpath_src_finalize (GObject *object);
-
-static gboolean gst_classpath_src_start (GstBaseSrc *basesrc);
-
-static gboolean gst_classpath_src_stop (GstBaseSrc *basesrc);
-
-static GstFlowReturn gst_classpath_src_create (GstPushSrc *src,
-                                               GstBuffer **buffer);
-
-/* ***** public class methods: end ***** */
-
-static void
-gst_classpath_src_base_init (gpointer gclass)
-{
-  GstElementClass *gstelement_class = GST_ELEMENT_CLASS (gclass);
-
-  gst_element_class_add_pad_template (gstelement_class,
-                                      gst_static_pad_template_get (&_template));
-
-  gst_element_class_set_details (gstelement_class, &gst_classpath_src_details);
-}
-
-static void
-gst_classpath_src_class_init (GstClasspathSrcClass *klass)
-{
-  GObjectClass *gobject_class;
-  GstElementClass *gstelement_class;
-  GstBaseSrcClass *gstbasesrc_class;
-  GstPushSrcClass *gstpushsrc_class;
-  
-  GParamSpec *pspec;
-
-  gobject_class = G_OBJECT_CLASS (klass);
-  gstelement_class = GST_ELEMENT_CLASS (klass);
-  gstbasesrc_class = GST_BASE_SRC_CLASS (klass);
-  gstpushsrc_class = GST_PUSH_SRC_CLASS (klass);
-  
-  /* getter and setters */
-
-  gobject_class->set_property = gst_classpath_src_set_property;
-  gobject_class->get_property = gst_classpath_src_get_property;
-
-  /* register properties */    
-  pspec = g_param_spec_pointer (GST_CLASSPATH_SRC_ISTREAM,
-                                "GstInputStream instance",
-                                "GstInputStream instance",
-                                G_PARAM_READWRITE);
-  g_object_class_install_property (gobject_class, ARG_INPUTSTREAM, pspec);
-
-  /* register callbacks */
-  gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_classpath_src_finalize);
-
-  gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_classpath_src_start);
-  gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_classpath_src_stop);
-
-  gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_classpath_src_create);
-}
-
-/* ***** */
-
-static void
-gst_classpath_src_init (GstClasspathSrc *src,
-                        GstClasspathSrcClass * g_class __attribute__ ((unused)))
-{
-  src->istream = NULL;
-  src->read_position = 0;
-}
-
-static void
-gst_classpath_src_finalize (GObject *object)
-{
-  G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-/* ************************************************************************** */
-
-static void
-gst_classpath_src_set_property (GObject *object,
-                                guint prop_id,
-                                const GValue *value,
-                                GParamSpec *pspec)
-{
-  GstClasspathSrc *src;
-  
-  g_return_if_fail (GST_IS_CLASSPATH_SRC (object));
-  
-  src = GST_CLASSPATH_SRC (object);
-  
-  GST_OBJECT_LOCK (src);
-  switch (prop_id)
-    {
-      case ARG_INPUTSTREAM:
-        {
-          GST_STATE_LOCK (src);
-            {
-              GstState state;
-              state = GST_STATE (src);
-              
-              if (state != GST_STATE_READY && state != GST_STATE_NULL)
-                {
-                  GST_DEBUG_OBJECT (src, "setting location in wrong state");
-                  GST_STATE_UNLOCK (src);
-                  break;
-                }
-            }
-          GST_STATE_UNLOCK (src);
-          
-          if (GST_IS_INPUT_STREAM (g_value_get_pointer (value)))
-            {
-              src->istream = g_value_get_pointer (value);
-            }
-          else
-            {
-              GST_INFO_OBJECT (src, "invalid instance of GstInputStream"); 
-            }
-        }
-        break;
-        
-      default:
-        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);   
-        break;
-    }
-  GST_OBJECT_UNLOCK (src);
-}
-
-static void
-gst_classpath_src_get_property (GObject *object,
-                                guint prop_id __attribute__ ((unused)),
-                                GValue *value __attribute__ ((unused)),
-                                GParamSpec *pspec __attribute__ ((unused)))
-{
-  /* TODO */
-  G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-/* ************************************************************************** */
-
-static GstFlowReturn
-gst_classpath_src_create (GstPushSrc *basesrc,
-                          GstBuffer **buffer)
-{
-  GstClasspathSrc *src;
-  int read = -1;
-  
-  src = GST_CLASSPATH_SRC (basesrc);
-  
-  /* create the buffer */
-  *buffer = gst_buffer_new_and_alloc (2048);
-  if (*buffer == NULL)
-    {
-      return GST_FLOW_ERROR;
-    }
-  
-  GST_BUFFER_SIZE (*buffer) = 0;
-  
-  GST_OBJECT_LOCK (src);
-  read = gst_input_stream_read (src->istream, (int *) GST_BUFFER_DATA (*buffer), 0,
-                                2048);
-  GST_OBJECT_UNLOCK (src);
-  
-  if (G_UNLIKELY (read < 0))
-    {
-      gst_buffer_unref (*buffer);
-      return GST_FLOW_UNEXPECTED;
-    }
-    
-  GST_OBJECT_LOCK (src);
-  
-  GST_BUFFER_SIZE (*buffer) = read;
-  GST_BUFFER_OFFSET (*buffer) = src->read_position;
-  GST_BUFFER_OFFSET_END (*buffer) = src->read_position + read;
-  
-  src->read_position += read;
-  
-  GST_OBJECT_UNLOCK (src);
-  
-  gst_buffer_set_caps (*buffer, GST_PAD_CAPS (GST_BASE_SRC_PAD (src)));
-  
-  return GST_FLOW_OK;
-}
-
-static gboolean
-gst_classpath_src_start (GstBaseSrc *basesrc)
-{
-  GstClasspathSrc *src;
-
-  src = GST_CLASSPATH_SRC (basesrc);
-   
-  if (src->istream == NULL)
-    {
-      GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, (NULL),
-        ("GstInputStream is still null. you need to pass a valid InputStream"));
-      
-      return FALSE;
-    }
-  GST_OBJECT_LOCK (src);
-  src->read_position = 0;
-  GST_OBJECT_UNLOCK (src);
-  
-  return TRUE;
-}
-
-static gboolean
-gst_classpath_src_stop (GstBaseSrc *basesrc __attribute__ ((unused)))
-{
-  /* nothing to do */
-  return TRUE;
-}
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.h b/libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.h
deleted file mode 100644 (file)
index f5fa6c8..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*gstclasspathsrc.h - Header file for the GstClasspathPlugin
- Copyright (C) 2007 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-#ifndef __GST_CLASSPATH_SRC_H__
-#define __GST_CLASSPATH_SRC_H__
-
-#include <gst/gst.h>
-#include <gst/base/gstpushsrc.h>
-
-#include "gstinputstream.h"
-
-G_BEGIN_DECLS
-
-/* #defines don't like whitespacey bits */
-#define GST_TYPE_CLASSPATH_SRC (gst_classpath_src_get_type())
-
-#define GST_CLASSPATH_SRC(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_CLASSPATH_SRC,GstClasspathSrc))
-  
-#define GST_CLASSPATH_SRC_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_CLASSPATH_SRC,GstClasspathSrcClass))
-  
-#define GST_IS_CLASSPATH_SRC(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_CLASSPATH_SRC))
-  
-#define GST_IS_CLASSPATH_SRC_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CLASSPATH_SRC))
-  
-typedef struct _GstClasspathSrc GstClasspathSrc;
-typedef struct _GstClasspathSrcClass GstClasspathSrcClass;
-
-struct _GstClasspathSrc
-{
-  GstPushSrc element;
-  
-  /* TODO: move in a private structure */
-  GstInputStream *istream;
-  int read_position;
-};
-
-struct _GstClasspathSrcClass
-{
-  GstPushSrcClass parent_class;
-};
-
-GType gst_classpath_src_get_type (void);
-
-/* exported properties */
-
-#define GST_CLASSPATH_SRC_ISTREAM "input-stream"
-
-G_END_DECLS
-
-#endif /* __GST_CLASSPATH_SRC_H__ */
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gstinputstream.c b/libjava/classpath/native/jni/gstreamer-peer/gstinputstream.c
deleted file mode 100644 (file)
index eb49696..0000000
+++ /dev/null
@@ -1,494 +0,0 @@
-/*gstinputstream.c - Header file for the GstClasspathPlugin
- Copyright (C) 2007 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-#include <jni.h>
-#include <jcl.h>
-
-#include <string.h>
-#include <stdlib.h>
-
-#include <gdk/gdk.h>
-
-#include <glib.h>
-#include <glib/gprintf.h>
-
-#include "gstinputstream.h"
-
-struct _GstInputStreamPrivate
-{
-  JavaVM *vm;
-  jobject *reader;
-  
-  gboolean eof;
-  guint8 *buffer;
-  long size;
-  long length;
-  
-  gboolean disposed;
-};
-
-#define INPUT_STREAM_GET_PRIVATE(o)  \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((o), GST_TYPE_INPUT_STREAM, GstInputStreamPrivate))
-
-/* properties */
-
-enum
-{
-  ARG_0,
-  ARG_JVM,
-  ARG_READER
-};
-
-/* ***** */
-
-static JNIEnv *gst_input_stream_get_jenv(GstInputStream *self);
-
-static void gst_input_stream_set_property (GObject *object,
-                                           guint property_id,
-                                           const GValue *value,
-                                           GParamSpec *pspec);
-
-static void gst_input_stream_get_property (GObject  *object,
-                                           guint property_id,
-                                           GValue *value,
-                                           GParamSpec *pspec);
-                               
-static void gst_input_stream_instance_init (GTypeInstance *instance,
-                                            gpointer g_class);
-
-static void gst_input_stream_class_init (gpointer g_class,
-                                         gpointer g_class_data);
-
-static GObject *
-gst_input_stream_constructor (GType type, guint n_construct_properties,
-                              GObjectConstructParam *construct_properties);
-
-static void
-gst_input_stream_dispose (GObject *obj);
-
-static void
-gst_input_stream_finalize (GObject *obj);
-
-/* ************************************************************************** */
-
-/* class methods */
-
-int
-gst_input_stream_read (GstInputStream *self, int *data, int offset,
-                       int length)
-{
-  /* TODO: cache */
-  jmethodID _readID = NULL;
-  jclass InputStream = NULL;
-  
-  JNIEnv *env = NULL;
-  
-  int ret = -1;
-  jbyteArray buffer;
-  jbyte *bytes = NULL;
-  
-  if (self->priv->disposed || self->priv->vm == NULL ||
-      self->priv->reader == NULL)
-    {
-      return -1;
-    }
-
-  env = gst_input_stream_get_jenv (self);
-  if (env == NULL)
-    {
-      g_warning("GstInputStream::gst_input_stream_read failed to get java env");
-      return -1;
-    }
-  
-  buffer = (*env)->NewByteArray (env, length);   
-  if (buffer == NULL)
-    {
-      g_warning ("GstInputStream::gst_input_stream_read called, failed");
-      return -1;
-    }
-  
-  InputStream = (*env)->GetObjectClass(env, self->priv->reader);
-  _readID = (*env)->GetMethodID(env, InputStream, "read", "([BII)I");
-  if (_readID == NULL)
-    {
-      (*env)->DeleteLocalRef(env, buffer);
-      return -1;
-    }
-  ret = (*env)->CallIntMethod (env, self->priv->reader, _readID, buffer, 0,
-                               length);
-  if (ret == -1)
-    {
-      (*env)->DeleteLocalRef(env, buffer);
-      return ret;
-    }
-  
-  bytes = (*env)->GetByteArrayElements (env, buffer, NULL);
-  
-  /* copy bytes and release */
-  memcpy (data + offset, bytes, ret);
-  
-  (*env)->ReleaseByteArrayElements (env, buffer, bytes, 0);
-  (*env)->DeleteLocalRef (env, buffer);
-
-  return ret;
-}
-
-gboolean
-gst_input_stream_available (GstInputStream *self, guint64 *size)
-{
-  /* TODO: caching */
-
-  jmethodID _availableID = NULL;
-  jclass InputStream = NULL;
-  JNIEnv *env = NULL;
-
-  if (self->priv->disposed || self->priv->vm == NULL ||
-      self->priv->reader == NULL)
-    {
-      return FALSE;
-    }
-  env = gst_input_stream_get_jenv(self);
-  if (env == NULL)
-    {
-      g_warning("GstInputStream::gst_input_stream_available failed to get java env");
-      return FALSE;
-    }
-  
-  InputStream = (*env)->GetObjectClass(env, self->priv->reader);
-  _availableID = (*env)->GetMethodID(env, InputStream, "available", "()I");
-  if (_availableID == NULL)
-    {
-      return FALSE;
-    }
-  
-  *size = (*env)->CallIntMethod (env, self->priv->reader, _availableID); 
-  
-  return TRUE;
-}
-
-void gst_input_stream_reset (GstInputStream *self)
-{
-  jmethodID _resetID = NULL;
-  jclass InputStream = NULL;
-  JNIEnv *env = NULL;
-
-  if (self->priv->disposed || self->priv->vm == NULL ||
-      self->priv->reader == NULL)
-    {
-      return;
-    }
-  env = gst_input_stream_get_jenv(self);
-  if (env == NULL)
-    {
-      g_warning("GstInputStream::gst_input_stream_reset failed to get java env");
-      return;
-    }
-  
-  InputStream = (*env)->GetObjectClass(env, self->priv->reader);
-  _resetID = (*env)->GetMethodID(env, InputStream, "reset", "()V");
-  if (_resetID == NULL)
-    {
-      return;
-    }
-  
-  (*env)->CallVoidMethod (env, self->priv->reader, _resetID);
-}
-
-long gst_input_stream_skip (GstInputStream *self, long size)
-{
-  jmethodID _seekID = NULL;
-  jclass InputStream = NULL;
-  JNIEnv *env = NULL;
-
-  long skipped = -1;
-
-  if (self->priv->disposed || self->priv->vm == NULL ||
-      self->priv->reader == NULL)
-    {
-      return skipped;
-    }
-  env = gst_input_stream_get_jenv(self);
-  if (env == NULL)
-    {
-      g_warning("GstInputStream::gst_input_stream_skip failed to get java env");
-      return size;
-    }
-  
-  InputStream = (*env)->GetObjectClass(env, self->priv->reader);
-  _seekID = (*env)->GetMethodID(env, InputStream, "skip", "(J)J");
-  if (_seekID == NULL)
-    {
-      return skipped;
-    }
-  
-  size = (*env)->CallIntMethod (env, self->priv->reader, _seekID, size); 
-  if (size != 0)
-    {
-      return skipped;
-    }
-    
-  return skipped;
-}
-
-gboolean gst_input_stream_can_seek (GstInputStream *self)
-{
-  if (gst_input_stream_skip(self, 0) != 0)
-    {
-      g_warning ("GstInputStream::gst_input_stream_can_seek CANNOT seek");
-      return FALSE;
-    }
-  
-  return TRUE;
-}
-
-/* ************************************************************************** */
-
-/* getter and setter */
-
-static void
-gst_input_stream_set_property (GObject *object,
-                               guint property_id,
-                               const GValue *value,
-                               GParamSpec *pspec)
-{
-  GstInputStream *self = GST_INPUT_STREAM (object);
-
-  switch (property_id)
-    {
-      case ARG_JVM:
-        {
-          self->priv->vm = g_value_get_pointer(value);
-        }
-        break;
-
-      case ARG_READER:
-        {
-          self->priv->reader = g_value_get_pointer(value);
-        }
-        break;
-      
-      default:
-        /* We don't have any other property... */
-        G_OBJECT_WARN_INVALID_PROPERTY_ID(object,property_id,pspec);
-        break;
-    } /* switch */
-}
-
-static void
-gst_input_stream_get_property (GObject  *object,
-                               guint property_id,
-                               GValue *value,
-                               GParamSpec *pspec)
-{
-  GstInputStream *self = GST_INPUT_STREAM (object);
-
-  switch (property_id)
-    {
-      case ARG_JVM:
-        {
-          g_value_set_pointer (value, self->priv->vm);
-        }
-        break;
-
-      case ARG_READER:
-        {
-          g_value_set_pointer (value, self->priv->reader);
-        }
-        break;
-      
-      default:
-        /* We don't have any other property... */
-        G_OBJECT_WARN_INVALID_PROPERTY_ID(object,property_id,pspec);
-        break;
-    } /* switch */
-}
-
-/* ************************************************************************** */
-
-static void
-gst_input_stream_instance_init (GTypeInstance *instance,
-                                gpointer g_class __attribute__ ((unused)))
-{
-  GstInputStream *self = GST_INPUT_STREAM (instance);
-  
-  self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GST_TYPE_INPUT_STREAM,
-                                            GstInputStreamPrivate);
-
-  self->priv->vm = NULL;
-  self->priv->reader = NULL;
-  self->priv->disposed = FALSE;
-  self->priv->eof = FALSE;
-  self->priv->buffer = NULL;
-  self->priv->size = 0;
-  self->priv->length = 0;
-}
-
-static void
-gst_input_stream_class_init (gpointer g_class,
-                             gpointer g_class_data __attribute__ ((unused)))
-{
-  GObjectClass *gobject_class;
-  GstInputStreamClass *klass;
-  GObjectClass *parent_class;
-  
-  GParamSpec *pspec;
-  
-  gobject_class = G_OBJECT_CLASS (g_class);
-  klass = GST_INPUT_STREAM_CLASS (g_class);
-  gobject_class = G_OBJECT_CLASS (g_class);
-  
-  g_type_class_add_private (klass, sizeof (GstInputStreamPrivate));
-  
-  gobject_class->set_property = gst_input_stream_set_property;
-  gobject_class->get_property = gst_input_stream_get_property;
-  gobject_class->dispose = gst_input_stream_dispose;
-  gobject_class->finalize = gst_input_stream_finalize;
-  gobject_class->constructor = gst_input_stream_constructor;
-
-  parent_class = g_type_class_peek_parent (klass);
-
-  /* register properties */
-  pspec = g_param_spec_pointer (GST_ISTREAM_JVM,
-                                "Set the java environment property",
-                                "Set the java environment property",
-                                G_PARAM_READWRITE);
-  g_object_class_install_property (gobject_class, ARG_JVM, pspec);
-  
-  pspec = g_param_spec_pointer (GST_ISTREAM_READER,
-                                "Set the java reader property",
-                                "Set the java reader property",
-                                G_PARAM_READWRITE);
-  g_object_class_install_property (gobject_class, ARG_READER, pspec);
-
-}
-
-/* class constructors */
-
-static GObject *
-gst_input_stream_constructor (GType type, guint n_construct_properties,
-                              GObjectConstructParam *construct_properties)
-{
-  GObject *obj;
-  GObjectClass *parent_class;
-  
-  /* parent */
-  GstInputStreamClass *klass;
-  klass = GST_INPUT_STREAM_CLASS (g_type_class_peek (GST_TYPE_INPUT_STREAM));
-  parent_class = g_type_class_peek_parent (klass);
-  obj = parent_class->constructor (type, n_construct_properties,
-                                   construct_properties);               
-  return obj;
-}
-
-static void
-gst_input_stream_dispose (GObject *obj)
-{
-  GObjectClass *parent_class;
-  GstInputStream *self = GST_INPUT_STREAM (obj);
-  if (self->priv->disposed)
-    {
-      /* If dispose did already run, return. */
-      return;
-    }
-
-  /* Make sure dispose does not run twice. */
-  self->priv->disposed = TRUE;
-
-  if (self->priv->buffer != NULL)
-    g_free(self->priv->buffer); 
-
-  /* Chain up to the parent class */
-  parent_class = g_type_class_peek_parent (GST_INPUT_STREAM_CLASS (obj));
-  G_OBJECT_CLASS (parent_class)->dispose (obj);
-}
-
-static void
-gst_input_stream_finalize (GObject *obj)
-{
-  /* nothing else to do */
-  GObjectClass *parent_class =
-    g_type_class_peek_parent (GST_INPUT_STREAM_CLASS (obj));
-  G_OBJECT_CLASS (parent_class)->finalize (obj);
-}
-
-static JNIEnv *
-gst_input_stream_get_jenv(GstInputStream *self)
-{
-    void *env = NULL;
-    
-    if ((*self->priv->vm)->GetEnv(self->priv->vm, &env, JNI_VERSION_1_2) != JNI_OK)
-      {
-        if ((*self->priv->vm)->AttachCurrentThreadAsDaemon(self->priv->vm,
-                                                           &env, NULL) < 0)
-          {
-            g_warning ("GstInputStream:- env not attached");     
-            return NULL;
-          }
-      }
-       
-    return (JNIEnv *) env;
-}
-
-GType gst_input_stream_get_type (void)
-{
-  static GType type = 0;
-  
-  if (type == 0)
-    {
-      static const GTypeInfo info = {
-        sizeof (GstInputStreamClass),
-        NULL,   /* base_init */
-        NULL,   /* base_finalize */
-        gst_input_stream_class_init,   /* class_init */
-        NULL,   /* class_finalize */
-        NULL,   /* class_data */
-        sizeof (GstInputStream),
-        0,      /* n_preallocs */
-        gst_input_stream_instance_init    /* instance_init */
-      };
-      
-      type = g_type_register_static (G_TYPE_OBJECT,
-                                     "GstInputStreamType",
-                                     &info, 0);
-    }
-    
-    return type;
-}
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gstinputstream.h b/libjava/classpath/native/jni/gstreamer-peer/gstinputstream.h
deleted file mode 100644 (file)
index 1930412..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*gstinputstream.h - Header file for the GstClasspathPlugin
- Copyright (C) 2007 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-02110-1301 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-#ifndef __GST_INPUT_STREAM_H__
-#define __GST_INPUT_STREAM_H__
-
-#include <glib-object.h>
-
-/* TODO: is a gobject overkill for that? */
-
-G_BEGIN_DECLS
-
-/* #defines don't like whitespacey bits */
-#define GST_TYPE_INPUT_STREAM (gst_input_stream_get_type())
-
-#define GST_INPUT_STREAM(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_INPUT_STREAM,GstInputStream))
-  
-#define GST_INPUT_STREAM_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_INPUT_STREAM,GstInputStreamClass))
-  
-#define GST_IS_INPUT_STREAM(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_INPUT_STREAM))
-  
-#define GST_IS_INPUT_STREAM_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_INPUT_STREAM))
-  
-typedef struct _GstInputStream GstInputStream;
-typedef struct _GstInputStreamClass GstInputStreamClass;
-typedef struct _GstInputStreamPrivate GstInputStreamPrivate;
-
-struct _GstInputStream
-{
-  GObject parent;
-  
-  /* instance members */
-  GstInputStreamPrivate *priv;
-};
-
-struct _GstInputStreamClass
-{
-  GObjectClass parent_class;
-};
-
-GType gst_input_stream_get_type (void);
-
-int gst_input_stream_read (GstInputStream *self, int *data, int offset,
-                           int length);
-                           
-gboolean gst_input_stream_available (GstInputStream *self, guint64 *size);
-
-gboolean gst_input_stream_can_seek (GstInputStream *self);
-
-long gst_input_stream_skip (GstInputStream *self, long size);
-
-void gst_input_stream_reset (GstInputStream *self);
-
-/* exported properties */
-
-#define GST_ISTREAM_JVM "vm"
-#define GST_ISTREAM_READER "reader"
-
-G_END_DECLS
-
-#endif /* __GST_INPUT_STREAM_H__ */
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gstreamer_io_peer.c b/libjava/classpath/native/jni/gstreamer-peer/gstreamer_io_peer.c
new file mode 100644 (file)
index 0000000..7e38b91
--- /dev/null
@@ -0,0 +1,739 @@
+/* gstreamer_io_peer.c -- Implements native methods for class
+   GStreamerNativePeer
+   Copyright (C) 2007 Free Software Foundation, Inc.
+   
+   This file is part of GNU Classpath.
+   
+   GNU Classpath is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+   
+   GNU Classpath is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with GNU Classpath; see the file COPYING.  If not, write to the
+   Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+   02110-1301 USA.
+   
+   Linking this library statically or dynamically with other modules is
+   making a combined work based on this library.  Thus, the terms and
+   conditions of the GNU General Public License cover the whole
+   combination.
+   
+   As a special exception, the copyright holders of this library give you
+   permission to link this library with independent modules to produce an
+   executable, regardless of the license terms of these independent
+   modules, and to copy and distribute the resulting executable under
+   terms of your choice, provided that you also meet, for each linked
+   independent module, the terms and conditions of the license of that
+   module.  An independent module is a module which is not derived from
+   or based on this library.  If you modify this library, you may extend
+   this exception to your version of the library, but you are not
+   obligated to do so.  If you do not wish to do so, delete this
+   exception statement from your version. */
+
+#include <stdio.h>
+#include <string.h>
+
+#include <jni.h>
+
+#include <glib.h>
+#include <glib/gprintf.h>
+
+#include <gdk/gdk.h>
+
+#include <gst/gst.h>
+
+#include "jcl.h"
+
+#include "gst_peer.h"
+
+#include "gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h"
+
+#include "gst_classpath_src.h"
+#include "gst_input_stream.h"
+
+/* for caching */
+static jfieldID fileFID = NULL;
+static jfieldID pointerDataID = NULL;
+
+static jfieldID mimetypeFID = NULL;
+static jfieldID endiannessFID = NULL;
+static jfieldID channelsFID = NULL;
+static jfieldID rateFID = NULL;
+static jfieldID widthFID = NULL;
+static jfieldID depthFID = NULL;
+static jfieldID isSignedFID = NULL;
+static jfieldID nameFID = NULL;
+static jfieldID layerFID = NULL;
+static jfieldID bitrateFID = NULL;
+static jfieldID framedFID = NULL;
+static jfieldID typeFID = NULL;
+
+typedef struct _AudioProperties AudioProperties;
+struct _AudioProperties
+{
+  /*
+   * NOTE: descriptions of the properties are taken from:
+   * http://gstreamer.freedesktop.org/data/doc/gstreamer/head/pwg/html/section-types-definitions.html#table-audio-types
+   */
+  
+  /* decoder name */
+  const char *name;
+  
+  /* audio endiannes */
+  const char *endianness;
+  
+  /* header size */
+  const char *header_size;
+  
+  /* mime */  
+  const char *mimetype;
+
+  /* The sample rate of the data, in samples (per channel) per second */
+  const char *samplerate;
+  
+  /* The number of channels of audio data */
+  const char *channels;
+
+  const char *layer;
+  
+  const char *bitrate;
+  
+  const char *framed;
+  
+  /*
+   *  Defines if the values of the integer samples are signed or not.
+   * Signed samples use one bit to indicate sign (negative or positive)
+   * of the value. Unsigned samples are always positive.
+   */
+  const char *signess;
+  
+  /* */
+  const char *rate;
+  
+  /* Number of bits allocated per sample. */
+  const char *width;
+
+  /*
+   * The number of bits used per sample.
+   * If the depth is less than the width, the low bits are assumed to be the
+   * ones used. For example, a width of 32 and a depth of 24 means that
+   * each sample is stored in a 32 bit word, but only the low
+   * 24 bits are actually used.
+   */
+  const char *depth;
+  
+  /*
+   * This is set in the case of the mpeg files.
+   */
+  const char *type;
+  
+  gboolean done;
+};
+
+/* ***** PRIVATE FUNCTIONS DECLARATION ***** */
+
+static gboolean
+set_strings (JNIEnv *env, const AudioProperties *properties, jobject header);
+
+static gboolean
+typefind_callback(GstElement *typefind, guint probability, const GstCaps *caps,
+                  gpointer data);
+
+static void
+element_added (GstBin *bin, GstElement *element, gpointer data);
+
+static void
+new_decoded_pad (GstElement *decoder, GstPad *pad,
+                 gboolean last, gpointer data);
+                 
+static gboolean
+fill_info (GstElement *decoder, AudioProperties *properties);
+
+static gchar *
+get_string_property (const GstStructure *structure, const gchar *property);
+
+static gchar *
+get_boolean_property (const GstStructure *structure, const gchar *property);
+                                         
+static gboolean
+set_string (JNIEnv *env, jobject header, jfieldID fieldID,
+            const gchar *property);
+
+static void
+free_properties (AudioProperties *properties);
+
+static void
+reset_properties (AudioProperties *properties);
+
+static jboolean process_audio (GstElement *source, JNIEnv *env, jobject header);
+
+/* ***** END: PRIVATE FUNCTIONS DECLARATION ***** */
+
+/* ***** NATIVE FUNCTIONS ***** */
+
+JNIEXPORT void JNICALL
+Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_init_1id_1cache
+  (JNIEnv *env, jclass clazz  __attribute__ ((unused)))
+{
+  jclass pointerClass = NULL;
+  jclass GstHeader = NULL;
+  
+  GstHeader = JCL_FindClass(env, "gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer$GstHeader");
+  fileFID = (*env)->GetFieldID(env, GstHeader, "file", "Ljava/lang/String;");
+
+  mimetypeFID = (*env)->GetFieldID(env, GstHeader, "mimetype",
+                                   "Ljava/lang/String;");
+  endiannessFID = (*env)->GetFieldID(env, GstHeader, "endianness",
+                                     "Ljava/lang/String;");
+  channelsFID = (*env)->GetFieldID(env, GstHeader, "channels",
+                                   "Ljava/lang/String;");
+  rateFID = (*env)->GetFieldID(env, GstHeader, "rate", "Ljava/lang/String;");
+  widthFID = (*env)->GetFieldID(env, GstHeader, "width", "Ljava/lang/String;");
+  depthFID = (*env)->GetFieldID(env, GstHeader, "depth", "Ljava/lang/String;");
+  isSignedFID = (*env)->GetFieldID(env, GstHeader, "isSigned",
+                                   "Ljava/lang/String;");
+  nameFID = (*env)->GetFieldID(env, GstHeader, "name", "Ljava/lang/String;");
+  layerFID = (*env)->GetFieldID(env, GstHeader, "layer", "Ljava/lang/String;");
+  bitrateFID = (*env)->GetFieldID(env, GstHeader, "bitrate",
+                                  "Ljava/lang/String;");
+  framedFID = (*env)->GetFieldID(env, GstHeader, "framed",
+                                 "Ljava/lang/String;");
+  typeFID = (*env)->GetFieldID(env, GstHeader, "type", "Ljava/lang/String;");
+
+#if SIZEOF_VOID_P == 8
+  pointerClass = JCL_FindClass (env, "gnu/classpath/Pointer64");
+  if (pointerClass != NULL)
+    {
+      pointerDataID = (*env)->GetFieldID (env, pointerClass, "data", "J");
+    }
+#else
+# if SIZEOF_VOID_P == 4
+  pointerClass = JCL_FindClass (env, "gnu/classpath/Pointer32"); 
+  if (pointerClass != NULL)
+    { 
+      pointerDataID = (*env)->GetFieldID(env, pointerClass, "data", "I");
+    }
+# else
+#   error "Pointer size is not supported."
+# endif /* SIZEOF_VOID_P == 4 */
+#endif /* SIZEOF_VOID_P == 8 */
+
+}
+
+JNIEXPORT jboolean JNICALL
+Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_gstreamer_1get_1audio_1format_1stream
+  (JNIEnv *env, jclass clazz __attribute__ ((unused)), jobject header,
+                                                       jobject pointer)
+{
+  GstInputStream *istream = NULL;
+  GstElement *source = NULL;
+  gboolean result = JNI_FALSE;
+  if (header == NULL)
+    return JNI_FALSE;
+  if (pointer == NULL)
+    return JNI_FALSE;
+  gst_init (NULL, NULL);  
+   
+  istream = (GstInputStream *) get_object_from_pointer (env, pointer,
+                                                        pointerDataID);
+  if (istream == NULL)
+    return JNI_FALSE;
+    
+  /* init gstreamer */
+  gst_init (NULL, NULL);
+
+  /* SOURCE */
+  source = gst_element_factory_make ("classpathsrc", "source");
+  if (source == NULL)
+    {
+      g_warning ("unable to create a source");
+      return JNI_FALSE;
+    }
+  g_object_set (G_OBJECT (source), GST_CLASSPATH_SRC_ISTREAM, istream, NULL);
+
+  result = process_audio (source, env, header);
+    
+  return result;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer_gstreamer_1get_1audio_1format_1file
+       (JNIEnv *env, jclass clazz __attribute__ ((unused)), jobject header)
+{
+  /* source file */
+  const char *file = NULL;
+    
+  /* GStreamer elements */
+  GstElement *source = NULL;
+
+  jboolean result = JNI_FALSE;
+  
+  /* java fields */
+  jstring _file = NULL;
+
+  _file = (*env)->GetObjectField(env, header, fileFID);
+  file = JCL_jstring_to_cstring (env, _file);
+  if (file == NULL)
+    {
+      return JNI_FALSE;
+    }
+
+  gst_init (NULL, NULL);
+  /* create the source element, will be used to read the file */
+  source = gst_element_factory_make ("filesrc", "source");
+  if (source == NULL)
+    {
+      JCL_free_cstring (env, _file, file);
+      return JNI_FALSE;
+    }
+  
+  /* set the file name */
+  g_object_set (G_OBJECT (source), "location", file, NULL);
+
+  result = process_audio (source, env, header);
+
+  /* free stuff */
+  JCL_free_cstring (env, _file, file);
+  
+  return result;
+}
+
+/* ***** END: NATIVE FUNCTIONS ***** */
+
+/* ***** PRIVATE FUNCTIONS IMPLEMENTATION ***** */
+
+static jboolean process_audio (GstElement *source, JNIEnv *env, jobject header)
+{
+  /* will contain the properties we need to put into the given GstHeader */
+  AudioProperties *properties = NULL;
+  
+  /* GStreamer elements */
+  GstElement *pipeline = NULL;
+  GstElement *decoder = NULL;
+  
+  GstElement *typefind = NULL;
+  
+  GstStateChangeReturn res;
+
+  jboolean result = JNI_FALSE;
+  
+  properties = (AudioProperties *) g_malloc0 (sizeof (AudioProperties));
+  if (properties == NULL)
+    {
+      return result;
+    }
+  reset_properties(properties);
+
+  /* 
+   * create the decoder element, this will decode the stream and retrieve
+   * its properties.
+   * We connect a signal to this element, to be informed when it is done
+   * in decoding the stream and to get the needed informations about the
+   * audio file.
+   */
+  decoder = gst_element_factory_make ("decodebin", "decoder");
+  if (decoder == NULL)
+    {
+      free_properties(properties);
+      return result;
+    }
+  
+  /* now, we create a pipeline and fill it with the other elements */
+  pipeline = gst_pipeline_new ("pipeline");
+  if (pipeline == NULL)
+    {
+      gst_object_unref (GST_OBJECT (decoder));
+      free_properties(properties);   
+      return result;
+    }
+  g_signal_connect (decoder, "new-decoded-pad", G_CALLBACK (new_decoded_pad),
+                    pipeline);
+  g_signal_connect (G_OBJECT (decoder), "element-added",
+                    G_CALLBACK (element_added), properties);
+  
+  /*
+   * we get the typefind from the decodebin to catch the additional properties
+   * that the decodebin does not expose to us
+   */
+  typefind = gst_bin_get_by_name (GST_BIN (decoder), "typefind");
+  if (typefind != NULL)
+    {
+      /* 
+       * NOTE: the above is not a typo, we can live without the typefind,
+       * just, our stream detection will not be as accurate as we would.
+       * Anyway, if this fails, there is some problem, probabily a memory
+       * error.
+       */
+       g_signal_connect (G_OBJECT (typefind), "have-type",
+                         G_CALLBACK (typefind_callback), properties);
+    }
+  
+  gst_bin_add_many (GST_BIN (pipeline), source, decoder, NULL);
+  gst_element_link (source, decoder);
+  
+  /* 
+   * now, we set the pipeline playing state to pause and traverse it
+   * to get the info we need.
+   */
+   
+  res = gst_element_set_state (pipeline, GST_STATE_PAUSED);
+  if (res == GST_STATE_CHANGE_FAILURE)
+    {
+      gst_element_set_state (pipeline, GST_STATE_NULL);
+      gst_object_unref (GST_OBJECT (pipeline));
+      
+      free_properties(properties);
+      
+      return result;
+    }
+  
+  res = gst_element_get_state (pipeline, NULL, NULL, GST_CLOCK_TIME_NONE);
+  if (res != GST_STATE_CHANGE_SUCCESS)
+    {
+      gst_element_set_state (pipeline, GST_STATE_NULL);
+      gst_object_unref (GST_OBJECT (pipeline));
+      
+      free_properties(properties);
+      
+      return result;
+    }
+  
+  if (fill_info (decoder, properties))
+    {
+      result = set_strings (env, properties, header);
+    }
+  /* free stuff */
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+   
+  free_properties (properties);
+  
+  gst_object_unref (GST_OBJECT (pipeline));
+  return result;
+}
+
+
+static gboolean typefind_callback(GstElement *typefind __attribute__ ((unused)),
+                                  guint probability __attribute__ ((unused)),
+                                  const GstCaps *caps,
+                                  gpointer data)
+{
+  GstStructure *structure = NULL;
+  AudioProperties *properties = NULL;
+  
+  const char *mpeg = NULL;
+  
+  properties = (AudioProperties *) data;
+  
+  structure = gst_caps_get_structure (caps, 0);
+  
+  /* MIMETYPE */
+  properties->mimetype = gst_structure_get_name (structure); 
+  mpeg = get_string_property(structure, "mpegversion");
+  
+  if (mpeg != NULL)
+    {
+      properties->layer = get_string_property(structure, "layer");
+      properties->type = (gchar *) g_malloc0 (_GST_MALLOC_SIZE_);
+      g_snprintf ((gpointer) properties->type, _GST_MALLOC_SIZE_,
+                  "MPEG%sV%s", mpeg,
+                  properties->layer);
+              
+      g_free ((gpointer) mpeg);
+    }
+    
+  return TRUE;
+}
+
+static void
+new_decoded_pad (GstElement *decoder  __attribute__ ((unused)),
+                 GstPad *pad,
+                 gboolean last        __attribute__ ((unused)),
+                 gpointer data)
+{
+  GstElement *pipeline = NULL;
+  GstElement *fakesink = NULL;
+  GstPad *sinkpad = NULL;
+  
+  pipeline = (GstElement *) data;
+  if (pipeline == NULL)
+    return;
+  
+  fakesink = gst_element_factory_make ("fakesink", NULL);
+  if (fakesink == NULL)
+    return;
+    
+  gst_bin_add (GST_BIN (pipeline), fakesink);
+  sinkpad = gst_element_get_pad (fakesink, "sink");
+  if (GST_PAD_LINK_FAILED (gst_pad_link (pad, sinkpad)))
+    {
+      gst_bin_remove (GST_BIN (pipeline), fakesink);
+    }
+  else
+    {
+      gst_element_set_state (fakesink, GST_STATE_PAUSED);
+    }
+}
+
+static gboolean
+set_strings (JNIEnv *env, const AudioProperties *properties, jobject header)
+{
+  gboolean result = FALSE;
+  
+  /* 
+   * we only need at least one of them to be sure we can handle this
+   * kind of audio data.
+   */
+      
+  /* now, map our properties to the java class */
+  set_string (env, header, mimetypeFID, properties->mimetype);
+                      
+  if (set_string (env, header, endiannessFID, properties->endianness))
+    result = JNI_TRUE;
+                      
+  if (set_string (env, header, channelsFID, properties->channels))
+    result = JNI_TRUE;
+      
+  if (set_string (env, header, rateFID, properties->rate))
+    result = JNI_TRUE;
+      
+  if (set_string (env, header, widthFID, properties->width))
+    result = JNI_TRUE;
+      
+  if (set_string (env, header, depthFID, properties->depth))
+    result = JNI_TRUE;
+      
+  if (set_string (env, header, isSignedFID, properties->signess))
+    result = JNI_TRUE;
+     
+  if (set_string (env, header, nameFID, properties->name))
+    result = JNI_TRUE;
+     
+  /* non primary properties */
+  set_string (env, header, layerFID, properties->layer);
+  set_string (env, header, bitrateFID, properties->bitrate);
+  set_string (env, header, framedFID, properties->framed);
+  set_string (env, header, typeFID, properties->type);
+  return result;    
+}
+
+static gboolean fill_info (GstElement *decoder, AudioProperties *properties)
+{
+  GstIterator *it = NULL;
+  gpointer data = NULL;
+  gboolean result = FALSE;
+  
+  it = gst_element_iterate_src_pads (decoder);
+  while (gst_iterator_next (it, &data) == GST_ITERATOR_OK)
+    {
+      GstPad *pad = GST_PAD (data);
+      GstCaps *caps;
+      
+      GstStructure *structure;
+      
+      const gchar *caps_string = NULL;
+     
+      caps = gst_pad_get_caps (pad);
+      caps_string = gst_caps_to_string (caps);
+      
+      if (g_str_has_prefix (caps_string, "video"))
+        {
+          /* no video support, this is an audio library */
+          
+          g_free ((gpointer) caps_string);
+          gst_caps_unref (caps);
+          gst_object_unref (pad);
+          
+          continue; 
+        }
+      
+      g_free ((gpointer) caps_string);
+      
+      structure = gst_caps_get_structure (GST_CAPS (caps), 0);
+      
+      /* fill the properties we need */
+       
+      /* SIGNESS */
+      properties->signess = get_boolean_property(structure, "signed");
+      if (properties->signess != NULL)
+        {
+          result = TRUE;
+        }
+      
+      /* ENDIANNESS */
+      properties->endianness = get_string_property(structure, "endianness");
+      if (properties->endianness != NULL)
+        {
+          result = TRUE;
+        }
+      
+      /* CHANNELS */
+      properties->channels = get_string_property(structure, "channels");
+      if (properties->channels != NULL)
+        {
+          result = TRUE;
+        }
+      
+      /* RATE */
+      properties->rate = get_string_property(structure, "rate");
+      if (properties->rate != NULL)
+        {
+          result = TRUE;
+        }
+      
+      /* WIDTH */
+      properties->width = get_string_property(structure, "width");
+      if (properties->width != NULL)
+        {
+          result = TRUE;
+        }
+      
+      /* DEPTH */
+      properties->depth = get_string_property(structure, "depth");
+      if (properties->depth != NULL)
+        {
+          result = TRUE;
+        }
+      
+      gst_caps_unref (caps);
+      gst_object_unref (pad);
+    }
+     
+    return result;
+}
+
+static void
+free_properties (AudioProperties *properties __attribute__ ((unused)))
+{
+  /* FIXME this causes a segfault, a string not allocated by us? double free? */
+  /*
+  if (properties->name != NULL) g_free((gpointer) properties->name);
+  if (properties->endianness != NULL) g_free((gpointer) properties->endianness);
+  if (properties->channels != NULL) g_free((gpointer) properties->channels);
+  if (properties->rate != NULL) g_free((gpointer) properties->rate);
+  if (properties->width != NULL) g_free((gpointer) properties->width);
+  if (properties->depth != NULL) g_free((gpointer) properties->depth);
+  if (properties->layer != NULL) g_free((gpointer) properties->layer);
+  if (properties->bitrate != NULL) g_free((gpointer) properties->bitrate);
+  if (properties->framed != NULL) g_free((gpointer) properties->framed);
+  
+  if (properties != NULL) g_free ((gpointer) properties);
+  */
+}
+
+static void reset_properties (AudioProperties *properties)
+{
+  properties->done = FALSE;
+  properties->signess = FALSE;
+  properties->name = NULL;
+  properties->endianness = NULL;
+  properties->channels = NULL;
+  properties->rate = NULL;
+  properties->width  = NULL;
+  properties->depth = NULL;
+  properties->layer = NULL;
+  properties->bitrate = NULL;
+  properties->framed = NULL;
+}
+
+static gchar *get_string_property (const GstStructure *structure,
+                                   const gchar *property)
+{
+  int props = 0;
+  gchar *result = NULL;
+  
+  if (property == NULL)
+    {
+      return NULL;
+    }
+  
+  /* we don't need more */
+  result = (gchar *) g_malloc0 (_GST_MALLOC_SIZE_);
+  if (result == NULL)
+    {
+      /* huston, we have a problem here... */
+      return NULL;
+    }
+  
+  if (gst_structure_get_int (structure, property, &props))
+    {
+      g_snprintf (result, _GST_MALLOC_SIZE_, "%d", props);
+    }
+  else
+    {
+      g_free ((gpointer) result);
+      return NULL;
+    }
+    
+  return result;
+}
+
+static gchar *get_boolean_property (const GstStructure *structure,
+                                    const gchar *property)
+{
+  gchar *result = NULL;
+  gboolean props = FALSE;
+  
+  result = (gchar *) g_malloc0 (_GST_MALLOC_SIZE_);
+  if (result == NULL)
+    {
+      /* huston, we have a problem here... */
+      return NULL;
+    }
+  
+  if (gst_structure_get_boolean (structure, property, &props))
+    {
+      g_snprintf (result, _GST_MALLOC_SIZE_, "%s", (props ? "true" : "false" ));
+    }
+  else
+    {
+      g_free ((gpointer) result);
+      return NULL;
+    }
+  
+  return result;
+}
+
+static gboolean set_string (JNIEnv *env, jobject header, jfieldID fieldID,
+                            const gchar *property)
+{ 
+  jstring property_string_field = NULL; 
+  
+  if (property == NULL || header == NULL)
+    {
+      return JNI_FALSE;
+    }
+  
+  property_string_field = (*env)->NewStringUTF(env, property);
+  if (property_string_field == NULL)
+    {
+      return JNI_FALSE;
+    }
+    
+  (*env)->SetObjectField(env, header, fieldID, property_string_field);
+
+  return JNI_TRUE;
+}
+
+static void element_added (GstBin *bin, GstElement *element, gpointer data)
+{
+  GstElementFactory *factory;
+  
+  factory = gst_element_get_factory (element);
+  ((AudioProperties *) data)->name = gst_element_factory_get_longname (factory);
+}
+
+/* ***** END: PRIVATE FUNCTIONS IMPLEMENTATION ***** */
index 337b67617577e812fe3ffbb8f18eae158abec995..29c57adeea287f5604e3e879069a903fe0429660 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -194,7 +196,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -206,19 +207,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -250,15 +240,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -306,10 +293,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 141e83792d2cc99ebffee6dae8cb9a6070ce8655..2689e37c21fffe7fe4bf7e4aaf47fd877d9915a5 100644 (file)
@@ -41,10 +41,8 @@ exception statement from your version. */
 #include "gnu_java_awt_peer_gtk_CairoGraphics2D.h"
 #include <gdk/gdktypes.h>
 #include <gdk/gdkprivate.h>
-#include <gdk/gdkx.h>
 
 #include <cairo-ft.h>
-#include <cairo-xlib.h>
 
 #include <stdio.h>
 #include <stdlib.h>
index 839153a151360914bffa042d61c19ca8ee7a92d5..23340fb5b95e579cdaac6bb01c6576f77fa60af7 100644 (file)
@@ -37,8 +37,6 @@ exception statement from your version. */
 
 #include "jcl.h"
 #include "gtkpeer.h"
-#include <cairo-xlib.h>
-#include <gdk/gdkx.h>
 
 #include "gnu_java_awt_peer_gtk_CairoSurface.h"
 #include "cairographics2d.h"
index 9de0d7b95f12361e35befbc3d3f3f4aceb517cf5..3364640a00c2bc4bd4f512ccbeea07a407a5b4b9 100644 (file)
@@ -37,21 +37,22 @@ exception statement from your version. */
 
 #include "jcl.h"
 #include "gtkpeer.h"
-#include <cairo-xlib.h>
 #include <gdk/gdktypes.h>
 #include <gdk/gdkprivate.h>
-#include <gdk/gdkx.h>
-#include <X11/extensions/Xrender.h>
 
 #include <gdk-pixbuf/gdk-pixbuf.h>
 #include <gdk-pixbuf/gdk-pixdata.h>
 
 #include <cairo-ft.h>
-#include <cairo-xlib.h>
 
 #include <stdio.h>
 #include <stdlib.h>
 
+#if HAVE_XRENDER
+#include <gdk/gdkx.h>
+#include <X11/extensions/Xrender.h>
+#endif
+
 #include "gnu_java_awt_peer_gtk_ComponentGraphics.h"
 
 #include "cairographics2d.h"
@@ -62,7 +63,7 @@ static gboolean flush (gpointer data __attribute__((unused)))
 {
   gdk_threads_enter ();
 
-  XFlush (GDK_DISPLAY ());
+  gdk_display_flush (gdk_display_get_default ());
   flush_scheduled = 0;
 
   gdk_threads_leave ();
@@ -107,7 +108,7 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_hasXRender
 {
 #if HAVE_XRENDER
   int ev = 0, err = 0; 
-  if( XRenderQueryExtension (GDK_DISPLAY (), &ev, &err) )
+  if( XRenderQueryExtension (GDK_DISPLAY(), &ev, &err) )
     return JNI_TRUE;
 #endif
   return JNI_FALSE;
@@ -118,13 +119,8 @@ JNIEXPORT jlong JNICALL
 Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState
   (JNIEnv *env, jobject obj __attribute__ ((unused)), jobject peer)
 {
-  Drawable draw;
-  Display * dpy;
-  Visual * vis;
   GdkDrawable *drawable;
-  cairo_surface_t *surface;
-  GdkWindow *win;
-  GtkWidget *widget = NULL;
+  GtkWidget *widget;
   int width, height;
   cairo_t *cr;
   void *ptr;
@@ -137,29 +133,15 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState
   widget = GTK_WIDGET (ptr);
   g_assert (widget != NULL);
 
-  cp_gtk_grab_current_drawable (widget, &drawable, &win);
+  drawable = widget->window;
   g_assert (drawable != NULL);
 
   width = widget->allocation.width;
   height = widget->allocation.height;
 
-  g_assert (drawable != NULL);
+  cr = gdk_cairo_create(drawable);
 
-  draw = gdk_x11_drawable_get_xid(drawable);
-  g_assert (draw != (XID) 0);
-  
-  dpy = gdk_x11_drawable_get_xdisplay(drawable);
-  g_assert (dpy != NULL);
-  
-  vis = gdk_x11_visual_get_xvisual(gdk_drawable_get_visual(drawable));
-  g_assert (vis != NULL);
-  
-  surface = cairo_xlib_surface_create (dpy, draw, vis, width, height);
-  g_assert (surface != NULL);
-
-  cr = cairo_create (surface);
   g_assert(cr != NULL);
-  cairo_surface_destroy(surface);
 
   gdk_threads_leave();
 
@@ -169,13 +151,9 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState
 JNIEXPORT jlong JNICALL 
 Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile
   (JNIEnv *env  __attribute__ ((unused)), jobject obj __attribute__ ((unused)),
-   jlong ptr, jint width, jint height)
+   jlong ptr)
 {
-  Drawable draw;
-  Display * dpy;
-  Visual * vis;
   GdkDrawable *drawable;
-  cairo_surface_t *surface;
   cairo_t *cr;
 
   gdk_threads_enter();
@@ -183,21 +161,8 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile
   drawable = JLONG_TO_PTR(GdkDrawable, ptr);
   g_assert (drawable != NULL);
 
-  draw = gdk_x11_drawable_get_xid(drawable);
-  g_assert (draw != (XID) 0);
-  
-  dpy = gdk_x11_drawable_get_xdisplay(drawable);
-  g_assert (dpy != NULL);
-  
-  vis = gdk_x11_visual_get_xvisual(gdk_drawable_get_visual(drawable));
-  g_assert (vis != NULL);
-  
-  surface = cairo_xlib_surface_create (dpy, draw, vis, width, height);
-  g_assert (surface != NULL);
-
-  cr = cairo_create (surface);
+  cr = gdk_cairo_create (drawable);
   g_assert(cr != NULL);
-  cairo_surface_destroy(surface);
 
   gdk_threads_leave();
 
index 7ce93b0a7a502eb69b2b586e10b6bd277394c5ef..df700f55952b8f98aa46b3c32eb63a9344dbb435 100644 (file)
@@ -37,16 +37,13 @@ exception statement from your version. */
 
 #include "jcl.h"
 #include "gtkpeer.h"
-#include <cairo-xlib.h>
 #include <gdk/gdktypes.h>
 #include <gdk/gdkprivate.h>
-#include <gdk/gdkx.h>
 
 #include <gdk-pixbuf/gdk-pixbuf.h>
 #include <gdk-pixbuf/gdk-pixdata.h>
 
 #include <cairo-ft.h>
-#include <cairo-xlib.h>
 
 #include <stdio.h>
 #include <stdlib.h>
index 7389fa3a460ba4634bcfe5d11efc6b7038460ede..4240f112e30561446c1e19735448c7723bf93ef3 100644 (file)
@@ -37,8 +37,13 @@ exception statement from your version. */
 
 #include "gtkpeer.h"
 #include "gnu_java_awt_peer_gtk_GdkRobotPeer.h"
+
+#ifdef HAVE_XTEST
 #include <gdk/gdkx.h>
 #include <X11/extensions/XTest.h>
+#endif
+
+#ifdef HAVE_XTEST
 
 static int
 awt_button_mask_to_num (int buttons)
@@ -56,10 +61,15 @@ awt_button_mask_to_num (int buttons)
   return 0;
 }
 
+#endif
+
 JNIEXPORT jboolean JNICALL
 Java_gnu_java_awt_peer_gtk_GdkRobotPeer_initXTest
   (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)))
 {
+
+#ifdef HAVE_XTEST
+
   GdkDisplay *display;
   Display *xdisplay;
   int event_basep;
@@ -82,12 +92,22 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_initXTest
   gdk_threads_leave ();
 
   return result;
+
+#else
+
+  return JNI_FALSE;
+
+#endif
+
 }
 
 JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseMove
   (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint x, jint y)
 {
+
+#ifdef HAVE_XTEST
+
   GdkDisplay *display;
   Display *xdisplay;
   int result;
@@ -104,12 +124,23 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseMove
   XFlush (xdisplay);
 
   gdk_threads_leave ();
+
+#else
+
+  (void) x; // Unused.
+  (void) y; // Unused.
+
+#endif
+
 }
 
 JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mousePress
   (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint buttons)
 {
+
+#ifdef HAVE_XTEST
+
   GdkDisplay *display;
   Display *xdisplay;
   int result;
@@ -126,12 +157,22 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mousePress
   XFlush (xdisplay);
 
   gdk_threads_leave ();
+
+#else
+
+  (void) buttons; // Unused.
+
+#endif
+
 }
 
 JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseRelease
   (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint buttons)
 {
+
+#ifdef HAVE_XTEST
+
   GdkDisplay *display;
   Display *xdisplay;
   int result;
@@ -148,12 +189,22 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseRelease
   XFlush (xdisplay);
 
   gdk_threads_leave ();
+
+#else
+
+  (void) buttons; // Unused.
+
+#endif
+
 }
 
 JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseWheel
   (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint wheelAmt)
 {
+
+#ifdef HAVE_XTEST
+
   GdkDisplay *display;
   Display *xdisplay;
   int i = 0;
@@ -187,12 +238,22 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseWheel
   XFlush (xdisplay);
 
   gdk_threads_leave ();
+
+#else
+
+  (void) wheelAmt; // Unused.
+
+#endif
+
 }
 
 JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyPress
   (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint keycode)
 {
+
+#ifdef HAVE_XTEST
+
   GdkDisplay *display;
   Display *xdisplay;
   GdkKeymapKey *keymap_keys = NULL;
@@ -232,12 +293,22 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyPress
   XFlush (xdisplay);
 
   gdk_threads_leave ();
+
+#else
+
+  (void) keycode; // Unused.
+
+#endif
+
 }
 
 JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyRelease
   (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint keycode)
 {
+
+#ifdef HAVE_XTEST
+
   GdkDisplay *display;
   Display *xdisplay;
   GdkKeymapKey *keymap_keys = NULL;
@@ -277,6 +348,13 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyRelease
   XFlush (xdisplay);
 
   gdk_threads_leave ();
+
+#else
+
+  (void) keycode; // Unused.
+
+#endif
+
 }
 
 JNIEXPORT jintArray JNICALL
@@ -284,6 +362,9 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_nativeGetRGBPixels
   (JNIEnv *env, jobject obj __attribute__((unused)), jint x, jint y,
    jint width, jint height)
 {
+
+#ifdef HAVE_XTEST
+
   jint stride_bytes, stride_pixels, n_channels, n_pixels;
   jintArray jpixels;  
   jint *java_pixels;
@@ -334,4 +415,16 @@ Java_gnu_java_awt_peer_gtk_GdkRobotPeer_nativeGetRGBPixels
   gdk_threads_leave ();
 
   return jpixels;
+
+#else
+
+  (void) env;
+  (void) x;
+  (void) y;
+  (void) width;
+  (void) height;
+  return NULL;
+
+#endif
+
 }
index 8dbf25a5ae7791627e502fbec93bcbbdac3a9e7f..5de5d82a6c1594942d65aa0425c2644c89e5df22 100644 (file)
@@ -516,20 +516,28 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetDispatchKeyEvent
 JNIEXPORT void JNICALL 
 Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreen
   (JNIEnv * env, jobject obj, jintArray jpoint)
+{
+  gdk_threads_enter();
+  
+  Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreenUnlocked
+    (env, obj, jpoint);
+    
+  gdk_threads_leave();
+       
+}
+JNIEXPORT void JNICALL 
+Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreenUnlocked
+  (JNIEnv * env, jobject obj, jintArray jpoint)
 {
   void *ptr;
   jint *point;
 
-  gdk_threads_enter ();
-
   ptr = gtkpeer_get_widget (env, obj);
   point = (*env)->GetIntArrayElements (env, jpoint, 0);
 
   gdk_window_get_root_origin (get_widget(GTK_WIDGET (ptr))->window, point, point+1);
 
   (*env)->ReleaseIntArrayElements(env, jpoint, point, 0);
-
-  gdk_threads_leave ();
 }
 
 /*
@@ -538,13 +546,23 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreen
 JNIEXPORT void JNICALL 
 Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen
   (JNIEnv * env, jobject obj, jintArray jpoint)
+{
+  gdk_threads_enter();
+  
+  Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreenUnlocked
+    (env, obj, jpoint);
+  
+  gdk_threads_leave();
+}
+
+JNIEXPORT void JNICALL 
+Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreenUnlocked
+  (JNIEnv * env, jobject obj, jintArray jpoint)
 {
   void *ptr;
   jint *point;
   GtkWidget *widget;
 
-  gdk_threads_enter ();
-
   ptr = gtkpeer_get_widget (env, obj);
   point = (*env)->GetIntArrayElements (env, jpoint, 0);
 
@@ -557,8 +575,6 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen
   *(point+1) += GTK_WIDGET(ptr)->allocation.y;
 
   (*env)->ReleaseIntArrayElements(env, jpoint, point, 0);
-
-  gdk_threads_leave ();
 }
 
 /*
index ae7027e76fb269cfbd2506907555456e65c0f77a..c2fbba21283c0c4076d7c336305640d425d3e28a 100644 (file)
@@ -37,8 +37,6 @@ exception statement from your version. */
 
 #include "jcl.h"
 #include "gtkpeer.h"
-#include <cairo-xlib.h>
-#include <gdk/gdkx.h>
 
 #include "gnu_java_awt_peer_gtk_GtkImage.h"
 
index 1186f659c1567e78340b4c254247258249118f6c..b2097970cb6b8ab7519ba336565a4fe1defcf51f 100644 (file)
@@ -40,7 +40,6 @@ exception statement from your version. */
 #include "gtkpeer.h"
 #include "gnu_java_awt_peer_gtk_GtkToolkit.h"
 #include "jcl.h"
-#include <gdk/gdkx.h>
 
 #define RC_FILE ".classpath-gtkrc"
 
@@ -184,10 +183,6 @@ Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit (JNIEnv *env,
 
   gtk_widget_set_default_colormap (gdk_rgb_get_colormap ());
 
-  /* Make sure queued calls don't get sent to GTK/GDK while 
-     we're shutting down. */
-  atexit (gdk_threads_enter);
-
   if ((homedir = getenv ("HOME")))
     {
       rcpath = (char *) g_malloc (strlen (homedir) + strlen (RC_FILE) + 2);
index e3edf1fb542849efa87213c1adb72e6219ff40a6..50197cab07ea6a1965f9d56353fe14f8a303eadc 100644 (file)
@@ -37,10 +37,8 @@ exception statement from your version. */
 
 #include "jcl.h"
 #include "gtkpeer.h"
-#include <gdk/gdkx.h>
 #include <gdk/gdktypes.h>
 #include <gdk/gdkprivate.h>
-#include <gdk/gdkx.h>
 #include <gdk-pixbuf/gdk-pixbuf.h>
 #include <gdk-pixbuf/gdk-pixdata.h>
 
index c99fc48f90fcee7a805e3fcb80f0ed0491fcfe99..b57626e94e57efa184d32d6b3970dae32c9803c1 100644 (file)
@@ -102,11 +102,13 @@ void gtkpeer_init_pointer_IDs(JNIEnv* env)
 #else
 #if SIZEOF_VOID_P == 4
   pointerClass = (*env)->FindClass(env, "gnu/classpath/Pointer32");
-  pointerDataFID = (*env)->GetFieldID(env, pointerClass, "data", "I");
-
-  /* Find the Pointer32 constructor. */
-  pointerConstructorMID = (*env)->GetMethodID(env, pointerClass, "<init>",
-                                              "(I)V");
+  if (pointerClass != NULL)
+    {
+      pointerClass = (*env)->NewGlobalRef (env, pointerClass);
+      pointerDataFID = (*env)->GetFieldID (env, pointerClass, "data", "I");
+      pointerConstructorMID = (*env)->GetMethodID (env, pointerClass, "<init>",
+                                                   "(I)V");
+    }
 #else
 #error "Pointer size is not supported."
 #endif /* SIZEOF_VOID_P == 4 */
index 04bf44dab0cf68dd1a40cc4b33f1b718a00adb34..89708d922ff181e9af613c0e2fbfefc4630f8cdf 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -158,7 +160,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -170,19 +171,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -214,15 +204,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -270,10 +257,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 2882075bb0920aaccc4efe215c5ca4e8e3bdf605..e79704fa6729c212c2313d4724ff0e7ae2312e79 100644 (file)
@@ -334,6 +334,94 @@ Java_java_io_VMFile_setExecutable (JNIEnv *env,
   return set_file_permissions (env, name, executable, ownerOnly,
                                CPFILE_FLAG_EXEC);
 }
+
+/*************************************************************************/
+
+JNIEXPORT jlong JNICALL
+Java_java_io_VMFile_getTotalSpace (JNIEnv *env,
+                                   jclass clazz __attribute__ ((__unused__)),
+                                   jstring path)
+{
+#ifndef WITHOUT_FILESYSTEM
+  
+  jlong result;
+  const char *_path = NULL;
+  
+  _path = (*env)->GetStringUTFChars (env, path, 0);
+  if (_path == NULL)
+    {
+      return 0L;
+    }
+
+  result = cpio_df (_path, TOTAL);
+
+  (*env)->ReleaseStringUTFChars (env, path, _path);
+
+  return result;
+
+#else /* not WITHOUT_FILESYSTEM */
+  return 0L;
+#endif /* not WITHOUT_FILESYSTEM */  
+}
+
+/*************************************************************************/
+
+JNIEXPORT jlong JNICALL
+Java_java_io_VMFile_getFreeSpace (JNIEnv *env,
+                                  jclass clazz __attribute__ ((__unused__)),
+                                  jstring path)
+{
+#ifndef WITHOUT_FILESYSTEM
+  
+  jlong result;
+  const char *_path = NULL;
+  
+  _path = (*env)->GetStringUTFChars (env, path, 0);
+  if (_path == NULL)
+    {
+      return 0L;
+    }
+
+  result = cpio_df (_path, FREE);
+
+  (*env)->ReleaseStringUTFChars (env, path, _path);
+
+  return result;
+
+#else /* not WITHOUT_FILESYSTEM */
+  return 0L;
+#endif /* not WITHOUT_FILESYSTEM */  
+}
+
+/*************************************************************************/
+
+JNIEXPORT jlong JNICALL
+Java_java_io_VMFile_getUsableSpace (JNIEnv *env,
+                                    jclass clazz __attribute__ ((__unused__)),
+                                    jstring path)
+{
+#ifndef WITHOUT_FILESYSTEM
+  
+  jlong result;
+  const char *_path = NULL;
+  
+  _path = (*env)->GetStringUTFChars (env, path, 0);
+  if (_path == NULL)
+    {
+      return 0L;
+    }
+
+  result = cpio_df (_path, USABLE);
+
+  (*env)->ReleaseStringUTFChars (env, path, _path);
+
+  return result;
+
+#else /* not WITHOUT_FILESYSTEM */
+  return 0L;
+#endif /* not WITHOUT_FILESYSTEM */  
+}
+
 /*************************************************************************/
 
 /*
index 8c2556bcf3018f19ec1b2115e081de2663d24433..f5d785ecdbce7e5cda8c2ee94f71002a63300171 100644 (file)
@@ -175,7 +175,7 @@ getFieldReference (JNIEnv * env, jobject field, const char *type)
        * If it isn't an array class then the actual field type descriptor
        * starts with 'L', ends with ';' and has '/' instead of '.'.
        */
-      type_len = strlen ((char *) type_name);
+      type_len = strlen (type_name);
       if (type_name[0] != '[')
        {
          /* XXX - FIXME - should not use dynamic allocation in core lib. */
index daaf9d00abfb2799a45bdff9b8096a59d7ba5a94..aa3196a8aa4b69ed6b756fb58a77075142d36e06 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -172,7 +174,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -184,19 +185,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -228,15 +218,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -284,10 +271,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 68e89b36abbed2cac38cba8f8c0a73ded3a8e0c5..d6f99ae9f82e7fe109d1a8c135bf2928787a248b 100644 (file)
@@ -37,7 +37,12 @@ obligated to do so.  If you do not wish to do so, delete this
 exception statement from your version. */
 
 #include <config.h>
+
+#if defined HAVE_SYS_LOADAVG_H /* Get getloadavg() on Solaris 9 */
+#include <sys/loadavg.h>
+#else
 #include <stdlib.h>
+#endif
 
 #include "gnu_java_lang_management_VMOperatingSystemMXBeanImpl.h"
 
index 723f0903221f16cd30de7bfc47b181639d0b415d..e915a3089a07ab9e85ef9a8903b931708109c4e9 100644 (file)
@@ -112,16 +112,15 @@ Java_java_lang_VMDouble_initIDs (JNIEnv * env, jclass cls __attribute__ ((__unus
 
 /*
  * Class:     java_lang_VMDouble
- * Method:    doubleToLongBits
+ * Method:    doubleToRawLongBits
  * Signature: (D)J
  */
 JNIEXPORT jlong JNICALL
-Java_java_lang_VMDouble_doubleToLongBits
+Java_java_lang_VMDouble_doubleToRawLongBits
   (JNIEnv * env __attribute__ ((__unused__)),
    jclass cls __attribute__ ((__unused__)), jdouble doubleValue)
 {
   jvalue val;
-  jlong e, f;
 
   val.d = doubleValue;
 
@@ -135,33 +134,6 @@ Java_java_lang_VMDouble_doubleToLongBits
   val.j = SWAP_DOUBLE(val.j);
 #endif
 
-  e = val.j & 0x7ff0000000000000LL;
-  f = val.j & 0x000fffffffffffffLL;
-
-  if (e == 0x7ff0000000000000LL && f != 0L)
-    val.j = 0x7ff8000000000000LL;
-
-  return val.j;
-}
-
-/*
- * Class:     java_lang_VMDouble
- * Method:    doubleToRawLongBits
- * Signature: (D)J
- */
-JNIEXPORT jlong JNICALL
-Java_java_lang_VMDouble_doubleToRawLongBits
-  (JNIEnv * env __attribute__ ((__unused__)),
-   jclass cls __attribute__ ((__unused__)), jdouble doubleValue)
-{
-  jvalue val;
-
-  val.d = doubleValue;
-
-#if defined(__IEEE_BYTES_LITTLE_ENDIAN)
-  val.j = SWAP_DOUBLE(val.j);
-#endif
-
   return val.j;
 }
 
@@ -468,7 +440,7 @@ Java_java_lang_VMDouble_parseDouble
       return val;
     }
 
-  buf = (char *) (*env)->GetStringUTFChars (env, str, &isCopy);
+  buf = (*env)->GetStringUTFChars (env, str, &isCopy);
   if (buf == NULL)
     {
       /* OutOfMemoryError already thrown */
index 7bff629fc891279936d3802cf76d27795cdd6f77..acd07ffa534c059161405dc1cc895f3f3d8ee827 100644 (file)
@@ -40,28 +40,6 @@ exception statement from your version. */
 
 #include "java_lang_VMFloat.h"
 
-/*
- * Class:     java_lang_VMFloat
- * Method:    floatToIntBits
- * Signature: (F)I
- */
-JNIEXPORT jint JNICALL
-Java_java_lang_VMFloat_floatToIntBits
-  (JNIEnv * env __attribute__ ((__unused__)),
-   jclass cls __attribute__ ((__unused__)), jfloat value)
-{
-  jvalue u;
-  jint e, f;
-  u.f = value;
-  e = u.i & 0x7f800000;
-  f = u.i & 0x007fffff;
-
-  if (e == 0x7f800000 && f != 0)
-    u.i = 0x7fc00000;
-
-  return u.i;
-}
-
 /*
  * Class:     java_lang_VMFloat
  * Method:    floatToRawIntBits
index 16c386ee24159ca07bc7cdd37813c50113f9d1cf..a4f09e9981b0c42f77138b96f33c7ff642166f1c 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -168,7 +170,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -180,19 +181,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -224,15 +214,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -280,10 +267,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index a59604c04af3f0e4cf11febcd52a9c2979f80938..c9620a4e766e829fae52921e11102f35edba9f3b 100644 (file)
@@ -51,7 +51,9 @@ exception statement from your version. */
 #endif
 #include <netinet/in.h>
 #include <netinet/tcp.h>
+#ifdef HAVE_NET_IF_H
 #include <net/if.h>
+#endif
 #include <errno.h>
 #include <stdlib.h>
 #include <stdio.h>
@@ -416,7 +418,7 @@ Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface6 (JNIEnv *env,
 #ifdef HAVE_INET6      
   int result;
   const char *str_ifname = JCL_jstring_to_cstring (env, ifname);
-  u_int if_index;
+  unsigned int if_index;
 
   if ((*env)->ExceptionOccurred (env))
     {
@@ -433,7 +435,7 @@ Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface6 (JNIEnv *env,
     }
 
   result = setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_IF,
-                      (u_int *) &if_index, sizeof(if_index));
+                      (unsigned int *) &if_index, sizeof(if_index));
 
   JCL_free_cstring(env, ifname, str_ifname);
   
index f2b2f8e63b8260bc9b2660546851ab5dd2b60d6e..288653d51f05eb0dbfaa267ef0326f4b43379d25 100644 (file)
@@ -35,8 +35,9 @@ this exception to your version of the library, but you are not
 obligated to do so.  If you do not wish to do so, delete this
 exception statement from your version.  */
 
-
+#ifndef _GNU_SOURCE
 #define _GNU_SOURCE
+#endif
 
 #include "config.h"
 
index 43f2d9146dd4f454e11219f11b9429649318986e..6ee7773b839e8f689fb74405a7615219f78a3b98 100644 (file)
@@ -225,7 +225,7 @@ Java_java_net_VMInetAddress_getHostByName (JNIEnv * env,
   result = cpnet_getHostByName (env, hostname, &addresses, &addresses_count);
   if (result != CPNATIVE_OK || addresses_count == 0)
     {
-      JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, (char *) hostname);
+      JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, hostname);
       return (jobjectArray) NULL;
     }
   (*env)->ReleaseStringUTFChars (env, host, hostname);
index 561c04b0aecd6ca2a1f551fb6e7a5d1e9ae31cd9..14bee4f12010b64af0783895cc7cf3dbbfeb6c3d 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -166,7 +168,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -178,19 +179,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -222,15 +212,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -278,10 +265,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index d794e6d9feae90c1fe2c3a1dca946435ac0a8809..39161d68e3c2194b7509d8fa0af7d595f1ca1751 100644 (file)
@@ -44,6 +44,8 @@ exception statement from your version.  */
 #include <sys/epoll.h>
 #endif /* HAVE_SYS_EPOLL_H */
 
+#include <config-int.h>
+
 #include <gnu_java_nio_EpollSelectorImpl.h>
 #include <jcl.h>
 #include <errno.h>
index a5bbd71262c5b95f427d016a65dc1481ed20c8cb..7899f0b9407a8ba5060df27f0ff05c38efdecf28 100644 (file)
@@ -43,7 +43,9 @@ exception statement from your version. */
 #include <config-int.h>
 
 #include <sys/types.h>
+#ifdef HAVE_SYS_MMAN_H
 #include <sys/mman.h>
+#endif
 #include <sys/socket.h>
 #include <sys/stat.h>
 #include <sys/uio.h>
index 74a408c75721724fa3920d06894bb756d9ffdeaf..19a6f244de08fad15618aa6733d742b4648aa9f6 100644 (file)
@@ -41,8 +41,9 @@ exception statement from your version. */
 #if defined(HAVE_SYS_TYPES_H)
 #include <sys/types.h>
 #endif
-
+#if defined(HAVE_SYS_SELECT_H)
 #include <sys/select.h>
+#endif
 #include <sys/time.h>
 
 #include <string.h>
index 09806f8bad46228db70bbcc4ff2c2957fc6d3795..a7018b347e18087893b816426eedad8eedd710b3 100644 (file)
@@ -45,7 +45,9 @@ exception statement from your version.  */
 #include <unistd.h>
 #include <sys/types.h>
 #include <sys/socket.h>
+#ifdef HAVE_SYS_SELECT_H
 #include <sys/select.h>
+#endif
 #include <sys/uio.h>
 
 CPNIO_EXPORT ssize_t
index bdd11055ea8c8954db2da82550c2657ee8777b03..cc31cf3c1e37fa44041a869666e66a6946cbecb5 100644 (file)
@@ -39,6 +39,8 @@ exception statement from your version.  */
 #ifndef __JAVANIO_H__
 #define __JAVANIO_H__
 
+#include <sys/time.h>
+
 /**
  * This header defines functions that are called by our JNI reference
  * implementation of java.nio.*. In our reference implementation, these
index 3d52893c4ccd9e8bbec7753f95c4b7c3bfa53942..c71dc8ba004fcfa172c9c5b4bf0b581aacf0826a 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -155,7 +157,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -167,19 +168,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -211,15 +201,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -267,10 +254,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 3b5f5092f5df41b3dfc3b40a3f43a77de06bf8e0..0c3af6668633f0a01a75fd8bbcbce14052b0e61a 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -158,7 +160,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -170,19 +171,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -214,15 +204,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -270,10 +257,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 6412ac7e855a5569d97203de209b0d261ac2ecbd..160d769df885b6a4fbec125383a9ce887b73798a 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -158,7 +160,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -170,19 +171,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -214,15 +204,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -270,10 +257,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 59be5ce74753a46945f050bdf887674e3c70e102..0de723eb1f5a5372f302dbd434955b0cfc039c37 100644 (file)
@@ -7,7 +7,7 @@ libclasspathnative_la_SOURCES = cpnet.c \
                                cpproc.h \
                                cpproc.c
 
-AM_LDFLAGS = @CLASSPATH_MODULE@
+AM_LDFLAGS = @CLASSPATH_CONVENIENCE@
 AM_CPPFLAGS = @CLASSPATH_INCLUDES@
 AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ \
             @EXTRA_CFLAGS@
index d356d69a834619315f7db66919022eadbf0d91dc..54b5bf045b4ead9347e6a377e86b002a6f7ef122 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -147,7 +149,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -159,19 +160,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -203,15 +193,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -259,10 +246,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -343,7 +328,7 @@ libclasspathnative_la_SOURCES = cpnet.c \
                                cpproc.h \
                                cpproc.c
 
-AM_LDFLAGS = @CLASSPATH_MODULE@
+AM_LDFLAGS = @CLASSPATH_CONVENIENCE@
 AM_CPPFLAGS = @CLASSPATH_INCLUDES@
 AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ \
             @EXTRA_CFLAGS@
index 743968bd36cc88262b184e4d8c67ce3ca8a21f65..d8523680af304cb0d3b6960f41313d2b196fc00f 100644 (file)
@@ -71,6 +71,10 @@ exception statement from your version. */
 #include <sys/select.h>
 #endif
 
+#if defined(HAVE_STATVFS)
+#include <sys/statvfs.h>
+#endif
+
 #include <utime.h>
 
 #include "cpnative.h"
@@ -345,9 +349,11 @@ int cpio_setFileReadonly (const char *filename)
 
   if (stat(filename, &statbuf) < 0)
     return errno;
+
+#ifdef S_IWRITE 
   if (chmod(filename, statbuf.st_mode & ~(S_IWRITE | S_IWGRP | S_IWOTH)) < 0)
     return errno;
+#endif
 
   return 0;
 }
@@ -395,6 +401,44 @@ int cpio_chmod (const char *filename, int permissions)
   return 0;
 }
 
+JNIEXPORT long long
+cpio_df (__attribute__((unused)) const char *path,
+         __attribute__((unused)) CPFILE_DF_TYPE type)
+{
+  long long result = 0L;
+  
+#if defined(HAVE_STATVFS)
+
+  long long scale_factor = 0L;
+  struct statvfs buf;
+  
+  if (statvfs (path, &buf) < 0)
+    return 0L;
+  
+  /* f_blocks, f_bfree and f_bavail are defined in terms of f_frsize */
+  scale_factor = (long long) (buf.f_frsize);
+
+  switch (type)
+    {
+      case TOTAL:
+        result = (long long) (buf.f_blocks * scale_factor);
+        break;
+      case FREE:
+        result = (long long) (buf.f_bfree * scale_factor);
+        break;
+      case USABLE:
+        result = (long long) (buf.f_bavail * scale_factor);
+        break;
+      default:
+        result = 0L;
+        break;  
+    }
+    
+#endif
+
+  return result;
+}
+
 int cpio_checkAccess (const char *filename, unsigned int flag)
 {
   struct stat statbuf;
@@ -520,16 +564,10 @@ int cpio_closeDir (void *handle)
 
 int cpio_readDir (void *handle, char *filename)
 {
-#ifdef HAVE_READDIR_R
-  struct dirent dent;
-#endif /* HAVE_READDIR_R */
   struct dirent *dBuf;
 
-#ifdef HAVE_READDIR_R
-  readdir_r ((DIR *) handle, &dent, &dBuf);
-#else
+  errno = 0;
   dBuf = readdir((DIR *)handle);
-#endif /* HAVE_READDIR_R */
 
   if (dBuf == NULL)
     {
@@ -540,11 +578,10 @@ int cpio_readDir (void *handle, char *filename)
       return errno;
     }
 
-  strncpy (filename, dBuf->d_name, FILENAME_MAX);
+  strncpy (filename, dBuf->d_name, FILENAME_MAX - 1);
   return 0;
 }
 
-
 int
 cpio_closeOnExec(int fd)
 {
index 259fc62cf790827b2704a5eda3c8df7457600b07..a42fe62dbb686e61d259b02ef27deb7422b4f6d3 100644 (file)
@@ -83,6 +83,15 @@ JNIEXPORT int cpio_removeFile (const char *filename);
 JNIEXPORT int cpio_mkdir (const char *filename);
 JNIEXPORT int cpio_rename (const char *old_name, const char *new_name);
 
+/* to be used with cpio_df */
+typedef enum {
+  TOTAL = 0,
+  FREE,
+  USABLE
+} CPFILE_DF_TYPE;
+
+JNIEXPORT long long cpio_df (const char *path, CPFILE_DF_TYPE type);
+
 JNIEXPORT int cpio_openDir (const char *dirname, void **handle);
 JNIEXPORT int cpio_closeDir (void *handle);
 JNIEXPORT int cpio_readDir (void *handle, char *filename);
index 72850b4c8c6fdc6ac3c57da44e2b9d54f7a63d45..979c363c23dc5e726173cef8a497bfe3dc209b6d 100644 (file)
@@ -44,9 +44,13 @@ exception statement from your version. */
 
 #include <sys/types.h>
 #include <sys/socket.h>
+#ifdef HAVE_NETINET_IN_SYSTM_H
 #include <netinet/in_systm.h>
+#endif /* HAVE_NETINET_IN_SYSTM_H */
 #include <netinet/in.h>
+#ifdef HAVE_NETINET_IP_H
 #include <netinet/ip.h>
+#endif /* HAVE_NETINET_IP_H */
 
 typedef struct {
   jint len;
index 0cce3b9b4ac09d1623176ba4041c2077647a562d..b64b1f56caac724e1a0c739a8c24d1c2a463275f 100644 (file)
@@ -53,6 +53,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -173,7 +175,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -185,19 +186,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -229,15 +219,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -285,10 +272,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index d4e491f8965d14664181d29d4926f5593a02be9f..d7c3447c1f6c08fa0b9af7294fa809c5e4bd0465 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -157,7 +159,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -169,19 +170,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -213,15 +203,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -269,10 +256,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index a5aa360bc6bfec770e8e4bf7a51189707a495e73..8669bf16f98794e6e0a9eae547f064c853e607b5 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -155,7 +157,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -167,19 +168,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -211,15 +201,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -267,10 +254,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 6f469e235a340f6ea68692418e95eeac883e1480..c396221451921aa29c6a90a4a43dff1377b9e998 100644 (file)
@@ -562,7 +562,7 @@ public interface GSSContext
    * @param inStream  Input stream containing the message to generate
    *                  the MIC over.
    * @param outStream Output stream to write the GSS-API output token to.
-   * @param msgProp   Instance of MessageProp that is used by the
+   * @param mgProp    Instance of MessageProp that is used by the
    *                  application to set the desired QOP.  Set the desired
    *                  QOP to 0 in msgProp to request the default QOP.
    *                  Alternatively pass in <code>null</code> for msgProp
index 213acafc7e5bc00f92b1310e5539842a11fbf7a5..e665197b1075bd06969db9e61273d320055b8288 100644 (file)
@@ -128,7 +128,7 @@ public abstract class PolicyErrorHelper
   public static PolicyError read(InputStream input)
   {
     // Read the exception repository id.
-    String id = input.read_string();
+    input.read_string();
     PolicyError value = new PolicyError();
 
     value.reason = input.read_short();
@@ -147,4 +147,4 @@ public abstract class PolicyErrorHelper
     output.write_string(id());
     output.write_short(value.reason);
   }
-}
\ No newline at end of file
+}
index 0ca50cb88c23e129c7af04f87a6c47d52ef4b329..086641e5c82b82dad06b3c4216849ecb357ede29 100644 (file)
@@ -127,7 +127,7 @@ public abstract class UnknownUserExceptionHelper
   public static UnknownUserException read(InputStream input)
   {
     // Read the exception repository id.
-    String id = input.read_string();
+    input.read_string();
     UnknownUserException value = new UnknownUserException();
 
     value.except = input.read_any();
@@ -146,4 +146,4 @@ public abstract class UnknownUserExceptionHelper
     output.write_string(id());
     output.write_any(value.except);
   }
-}
\ No newline at end of file
+}
index cf5d7b3d80806af1b5ebd44a276f3d1e9d8a6b15..f3c93aab344dd9f26e2c2f02e5f06c04a3f5f35a 100644 (file)
@@ -84,7 +84,7 @@ public abstract class NamingContextExtPOA
   /** @inheritDoc */
   public OutputStream _invoke(String method, InputStream in, ResponseHandler rh)
   {
-    Integer call_method = (Integer) _NamingContextExtImplBase._methods.get(method);
+    Integer call_method = _NamingContextExtImplBase._methods.get(method);
 
     if (call_method == null)
       // The older methods are handled separately.
@@ -189,7 +189,7 @@ public abstract class NamingContextExtPOA
   OutputStream super_invoke(String method, InputStream in, ResponseHandler rh)
   {
     OutputStream out = null;
-    Integer call_method = (Integer) _NamingContextImplBase.methods.get(method);
+    Integer call_method = _NamingContextImplBase.methods.get(method);
     if (call_method == null)
       throw new BAD_OPERATION(Minor.Method, CompletionStatus.COMPLETED_MAYBE);
 
index a97888276422534fbcc077c63f7a26e3ab79af46..a4f8b1cb6d90c8e4340a809b3f3832549c349642 100644 (file)
@@ -92,7 +92,7 @@ public abstract class NamingContextPOA
   public OutputStream _invoke(String method, InputStream in, ResponseHandler rh)
   {
     OutputStream out = null;
-    Integer call_method = (Integer) _NamingContextImplBase.methods.get(method);
+    Integer call_method = _NamingContextImplBase.methods.get(method);
     if (call_method == null)
       throw new BAD_OPERATION(Minor.Method, CompletionStatus.COMPLETED_MAYBE);
 
index 617f7aec4abfc22980affe5db9abc6cee35f4dba..387e27e68947667c9e0ee804f0cdffcd6b509ceb 100644 (file)
@@ -96,7 +96,7 @@ public abstract class _NamingContextExtImplBase
 
   public OutputStream _invoke(String method, InputStream in, ResponseHandler rh)
   {
-    Integer call_method = (Integer) _methods.get(method);
+    Integer call_method = _methods.get(method);
 
     if (call_method == null)
 
@@ -206,7 +206,7 @@ public abstract class _NamingContextExtImplBase
   {
     Streamable result = null;
 
-    Integer call_method = (Integer) _methods.get(request.operation());
+    Integer call_method = _methods.get(request.operation());
 
     if (call_method == null)
       {
index 1c2a56be60a9e63e05b2fbdd9faf2fecb72c4034..115ef74c361947114eabbe07ad843fba6b236ceb 100644 (file)
@@ -123,7 +123,7 @@ public abstract class _NamingContextImplBase
   public OutputStream _invoke(String method, InputStream in, ResponseHandler rh)
   {
     OutputStream out = null;
-    Integer call_method = (Integer) methods.get(method);
+    Integer call_method = methods.get(method);
     if (call_method == null)
       throw new BAD_OPERATION(Minor.Method, CompletionStatus.COMPLETED_MAYBE);
 
@@ -389,7 +389,7 @@ public abstract class _NamingContextImplBase
     Streamable result = null;
 
     // The server request contains no required result type.
-    Integer call_method = (Integer) methods.get(request.operation());
+    Integer call_method = methods.get(request.operation());
     if (call_method == null)
       throw new BAD_OPERATION(Minor.Method, CompletionStatus.COMPLETED_MAYBE);
 
index 55090c74673c43ff54496fd700ca9b7c62294993..bc4445fcd57bf5c79a794d56d86e282f18394828 100644 (file)
@@ -43,7 +43,6 @@ import gnu.CORBA.OrbRestricted;
 
 import org.omg.CORBA.Any;
 import org.omg.CORBA.BAD_OPERATION;
-import org.omg.CORBA.MARSHAL;
 import org.omg.CORBA.ORB;
 import org.omg.CORBA.StructMember;
 import org.omg.CORBA.TCKind;
@@ -51,8 +50,6 @@ import org.omg.CORBA.TypeCode;
 import org.omg.CORBA.portable.InputStream;
 import org.omg.CORBA.portable.OutputStream;
 
-import java.io.IOException;
-
 /**
  * A helper operations for the {@link TaggedComponent}.
  *
index 2d9740a855e4286139563e152782a659e16a07fa..37d66a6d75f071c3d2b1f68f01386b1fb273f742 100644 (file)
@@ -123,7 +123,7 @@ public abstract class DuplicateNameHelper
   public static DuplicateName read(InputStream input)
   {
     // Read the exception repository id.
-    String id = input.read_string();
+    input.read_string();
     DuplicateName value = new DuplicateName();
 
     value.name = input.read_string();
@@ -142,4 +142,4 @@ public abstract class DuplicateNameHelper
     output.write_string(id());
     output.write_string(value.name);
   }
-}
\ No newline at end of file
+}
index d5d5751b9e7d5811fded42978b191d26e81abc6b..0ebbc7e41b1b74c0bb16f77db9c1aa91bedfdd1f 100644 (file)
@@ -114,7 +114,7 @@ public abstract class ForwardRequestHelper
   public static ForwardRequest read(InputStream input)
   {
     // Read the exception repository id.
-    String id = input.read_string();
+    input.read_string();
     ForwardRequest value = new ForwardRequest();
 
     value.forward_reference = input.read_Object();
@@ -151,4 +151,4 @@ public abstract class ForwardRequestHelper
     output.write_string(id());
     output.write_Object(value.forward_reference);
   }
-}
\ No newline at end of file
+}
index 32ddae8586f4de369db42719d5c808683e7a9501..cb3c6702442c78577aaff22714bdae9ad641fad6 100644 (file)
@@ -136,7 +136,7 @@ public abstract class InvalidPolicyHelper
   public static InvalidPolicy read(InputStream input)
   {
     // Read the exception repository id.
-    String id = input.read_string();
+    input.read_string();
     InvalidPolicy value = new InvalidPolicy();
 
     value.index = input.read_short();
@@ -155,4 +155,4 @@ public abstract class InvalidPolicyHelper
     output.write_string(id());
     output.write_short(value.index);
   }
-}
\ No newline at end of file
+}
index 5f531e8777f271a8b0add446d8d2ac1971360ab6..af0439856adf5f23d743d7358cd60740ae98013a 100644 (file)
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -140,7 +142,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -152,19 +153,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -196,15 +186,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -252,10 +239,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
diff --git a/libjava/classpath/resource/com/sun/tools/javac/messages.properties b/libjava/classpath/resource/com/sun/tools/javac/messages.properties
deleted file mode 100644 (file)
index 995e871..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-# messages.properties -- English language messages
-# Copyright (C) 2007 Free Software Foundation, Inc.
-#
-# This file is part of GNU Classpath.
-#
-# GNU Classpath is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# GNU Classpath is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Classpath; see the file COPYING.  If not, write to the
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA.
-#
-# Linking this library statically or dynamically with other modules is
-# making a combined work based on this library.  Thus, the terms and
-# conditions of the GNU General Public License cover the whole
-# combination.
-#
-# As a special exception, the copyright holders of this library give you
-# permission to link this library with independent modules to produce an
-# executable, regardless of the license terms of these independent
-# modules, and to copy and distribute the resulting executable under
-# terms of your choice, provided that you also meet, for each linked
-# independent module, the terms and conditions of the license of that
-# module.  An independent module is a module which is not derived from
-# or based on this library.  If you modify this library, you may extend
-# this exception to your version of the library, but you are not
-# obligated to do so.  If you do not wish to do so, delete this
-# exception statement from your version.
-
-Main.FailedToRead:failed to read ecj.jar (reconfigure with --with-ecj-jar): {0}
-Main.MalformedURL:malformed URL for ecj.jar: {0}
-Main.FailedToLoad:failed to load {0} from ecj.jar: {1}
-Main.FailedConstructor:failed to find ecj constructor
-Main.FailedCompile:failed to find ecj compile method
diff --git a/libjava/classpath/resource/gnu/classpath/tools/appletviewer/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/appletviewer/messages.properties
deleted file mode 100644 (file)
index c826afa..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-# messages.properties -- English language messages
-# Copyright (C) 2004, 2006  Free Software Foundation, Inc.
-#
-# This file is part of GNU Classpath.
-#
-# GNU Classpath is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# GNU Classpath is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Classpath; see the file COPYING.  If not, write to the
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA.
-#
-# Linking this library statically or dynamically with other modules is
-# making a combined work based on this library.  Thus, the terms and
-# conditions of the GNU General Public License cover the whole
-# combination.
-#
-# As a special exception, the copyright holders of this library give you
-# permission to link this library with independent modules to produce an
-# executable, regardless of the license terms of these independent
-# modules, and to copy and distribute the resulting executable under
-# terms of your choice, provided that you also meet, for each linked
-# independent module, the terms and conditions of the license of that
-# module.  An independent module is a module which is not derived from
-# or based on this library.  If you modify this library, you may extend
-# this exception to your version of the library, but you are not
-# obligated to do so.  If you do not wish to do so, delete this
-# exception statement from your version.
-
-Main.ErrorApplet=An error occurred while loading this applet.
-Main.Usage=Usage: appletviewer [OPTION] -code CODE | URL...
-Main.AppletTagOptions=Applet tag options
-Main.CodeDescription=specify the code attribute
-Main.CodeArgument=CODE
-Main.CodebaseDescription=specify the codebase attribute
-Main.CodebaseArgument=CODEBASE
-Main.ArchiveDescription=specify the archive attribute
-Main.ArchiveArgument=ARCHIVE
-Main.WidthDescription=specify the width attribute
-Main.WidthArgument=WIDTH
-Main.HeightDescription=specify the height attribute
-Main.HeightArgument=HEIGHT
-Main.ParamDescription=specify the parameter arguments
-Main.ParamArgument=NAME,VALUE
-Main.PluginOption=Plugin option
-Main.PluginDescription=enable plugin mode
-Main.PluginArgument=INPUT,OUTPUT
-Main.DebuggingOption=Debugging option
-Main.VerboseDescription=enable verbose mode
-Main.CompatibilityOptions=Compatibility options
-Main.DebugDescription=enable debugging mode (not implemented)
-Main.EncodingDescription=specify the HTML character encoding
-Main.EncodingArgument=CHARSET
-Main.SecurityWarning=WARNING: CURRENTLY GAPPLETVIEWER RUNS WITH NO\
- SECURITY MANAGER.\n\
-THIS MEANS THAT APPLETS YOU LOAD CAN DO ANYTHING A JAVA APPLICATION\n\
-THAT YOU DOWNLOAD AND RUN CAN DO.  BE *VERY* CAREFUL WHICH APPLETS YOU RUN.\n\
-DO NOT USE GAPPLETVIEWER ON YOUR SYSTEM IF YOUR SYSTEM STORES IMPORTANT\
- DATA.\n\
-THIS DATA CAN BE DESTROYED OR STOLEN IF YOU LOAD A MALICIOUS APPLET.
-Main.ContinuationPrompt=[press 'c' or 'C' to continue or anything else to quit]
-Main.NoInputFiles=appletviewer: no input files
-Main.RawArguments=Raw arguments:
-
-PluginAppletViewer.AppletViewerWrote=PIPE: applet viewer wrote:
-PluginAppletViewer.AppletViewerRead=PIPE: applet viewer read:
-PluginAppletViewer.AppletViewerExiting=appletviewer: exiting plugin applet\
- viewer
-
-StandaloneAppletContext.ShowDocumentError=showDocument is not implemented in\
- standalone mode
-
-StandaloneAppletViewer.ParsedAppletTags=Parsed applet tags:
-StandaloneAppletViewer.Tag=tag
-StandaloneAppletViewer.CodeOptionError=appletviewer: option '--code' requires\
- a class filename
-
-StandaloneAppletWindow.MenuTitle=Applet
-StandaloneAppletWindow.MenuReload=Reload
-StandaloneAppletWindow.MenuRestart=Restart
-StandaloneAppletWindow.MenuStart=Start
-StandaloneAppletWindow.MenuStop=Stop
-StandaloneAppletWindow.MenuClone=Clone ...
-StandaloneAppletWindow.MenuQuit=Quit
-StandaloneAppletWindow.MenuClose=Close
-StandaloneAppletWindow.MenuTag=Tag ...
-StandaloneAppletWindow.MenuInfo=Info ...
-StandaloneAppletWindow.MenuEdit=Edit
-StandaloneAppletWindow.MenuEncoding=Character Encoding
-StandaloneAppletWindow.MenuPrint=Print ...
-StandaloneAppletWindow.MenuProperties=Properties ...
-StandaloneAppletWindow.MenuCancel=Cancel
-StandaloneAppletWindow.MenuSave=Save ...
-StandaloneAppletWindow.WindowTitle=GNU Classpath Applet Viewer:
diff --git a/libjava/classpath/resource/gnu/classpath/tools/common/Messages.properties b/libjava/classpath/resource/gnu/classpath/tools/common/Messages.properties
deleted file mode 100644 (file)
index 989fde7..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-# MessagesBundle.properties -- English language messages
-# Copyright (C) 2006  Free Software Foundation, Inc.
-#
-# This file is part of GNU Classpath.
-#
-# GNU Classpath is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# GNU Classpath is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Classpath; see the file COPYING.  If not, write to the
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA.
-#
-# Linking this library statically or dynamically with other modules is
-# making a combined work based on this library.  Thus, the terms and
-# conditions of the GNU General Public License cover the whole
-# combination.
-#
-# As a special exception, the copyright holders of this library give you
-# permission to link this library with independent modules to produce an
-# executable, regardless of the license terms of these independent
-# modules, and to copy and distribute the resulting executable under
-# terms of your choice, provided that you also meet, for each linked
-# independent module, the terms and conditions of the license of that
-# module.  An independent module is a module which is not derived from
-# or based on this library.  If you modify this library, you may extend
-# this exception to your version of the library, but you are not
-# obligated to do so.  If you do not wish to do so, delete this
-# exception statement from your version.
-
-ClasspathToolParser.JArgument=pass argument to the Java runtime
-ClasspathToolParser.JName=OPTION
-ClasspathToolParser.VersionFormat={0} (GNU Classpath) {1}\n\nCopyright 2006 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
diff --git a/libjava/classpath/resource/gnu/classpath/tools/getopt/Messages.properties b/libjava/classpath/resource/gnu/classpath/tools/getopt/Messages.properties
deleted file mode 100644 (file)
index a747ab4..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-# MessagesBundle.properties -- English language messages
-# Copyright (C) 2006  Free Software Foundation, Inc.
-#
-# This file is part of GNU Classpath.
-#
-# GNU Classpath is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# GNU Classpath is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Classpath; see the file COPYING.  If not, write to the
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA.
-#
-# Linking this library statically or dynamically with other modules is
-# making a combined work based on this library.  Thus, the terms and
-# conditions of the GNU General Public License cover the whole
-# combination.
-#
-# As a special exception, the copyright holders of this library give you
-# permission to link this library with independent modules to produce an
-# executable, regardless of the license terms of these independent
-# modules, and to copy and distribute the resulting executable under
-# terms of your choice, provided that you also meet, for each linked
-# independent module, the terms and conditions of the license of that
-# module.  An independent module is a module which is not derived from
-# or based on this library.  If you modify this library, you may extend
-# this exception to your version of the library, but you are not
-# obligated to do so.  If you do not wish to do so, delete this
-# exception statement from your version.
-
-Parser.StdOptions=Standard options
-Parser.PrintHelp=print this help, then exit
-Parser.PrintVersion=print version number, then exit
-Parser.ArgReqd=option ''{0}'' requires an argument
-Parser.Unrecognized=unrecognized option ''{0}''
-Parser.NoArg=option ''{0}'' doesn''t allow an argument
-Parser.UnrecDash=unrecognized option ''-{0}''
-Parser.TryHelpShort=Try ''{0} -help'' for more information
-Parser.TryHelpLong=Try ''{0} --help'' for more information
diff --git a/libjava/classpath/resource/gnu/classpath/tools/jar/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/jar/messages.properties
deleted file mode 100644 (file)
index a456fe2..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-# messages.properties -- English language messages
-# Copyright (C) 2006  Free Software Foundation, Inc.
-#
-# This file is part of GNU Classpath.
-#
-# GNU Classpath is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# GNU Classpath is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Classpath; see the file COPYING.  If not, write to the
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA.
-#
-# Linking this library statically or dynamically with other modules is
-# making a combined work based on this library.  Thus, the terms and
-# conditions of the GNU General Public License cover the whole
-# combination.
-#
-# As a special exception, the copyright holders of this library give you
-# permission to link this library with independent modules to produce an
-# executable, regardless of the license terms of these independent
-# modules, and to copy and distribute the resulting executable under
-# terms of your choice, provided that you also meet, for each linked
-# independent module, the terms and conditions of the license of that
-# module.  An independent module is a module which is not derived from
-# or based on this library.  If you modify this library, you may extend
-# this exception to your version of the library, but you are not
-# obligated to do so.  If you do not wish to do so, delete this
-# exception statement from your version.
-
-Creator.Ignoring=ignoring entry {0}
-Creator.Adding=adding: {0} (in={1,number,integer}) (out={2,number,integer}) (stored {3,number,integer}%)
-Extractor.Created=\ \ created: {0}
-Extractor.Extracted=\ extracted: {0}
-Extractor.Inflated=\ \ inflated: {0}
-Indexer.Indexing=indexing: {0}
-Main.ArchiveAlreadySet=archive file name already set to {0}
-Main.ModeAlreaySet=operation mode already specified
-Main.MustSpecify=must specify one of -t, -c, -u, -x, or -i
-Main.TwoArgsReqd=-C argument requires both directory and filename
-Main.CantHaveBoth=can't specify both -m and -M
-Main.NoFilesWithi=can't specify file arguments when using -i
-Main.NoMAndi=can't specify -M with -i
-Main.AnotherNomAndi=can't specify -m with -i
-Main.Usage=Usage: jar -ctxui [OPTIONS] jar-file [-C DIR FILE] FILE...
-Main.OpMode=Operation mode
-Main.Create=create a new archive
-Main.Extract=extract from archive
-Main.List=list archive contents
-Main.Update=update archive
-Main.Index=compute archive index
-Main.FileArg=FILE
-Main.OpMods=Operation modifiers
-Main.ArchiveName=specify archive file name
-Main.FileArg2=FILE
-Main.NoZip=store only; no ZIP compression
-Main.Verbose=verbose operation
-Main.NoManifest=do not create a manifest file
-Main.ManifestName=specify manifest file
-Main.ManifestArgName=FILE
-Main.FileNameGroup=File name selection
-Main.ChangeDir=change to directory before the next file
-Main.ChangeDirArg=DIR FILE
-Main.InternalError=jar: internal error:
-Main.Stdin=Read file names from stdin
diff --git a/libjava/classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties b/libjava/classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties
deleted file mode 100644 (file)
index 902166d..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-# default locale messages for gnu.classpath.tools.jarsigner package
-
-Main.7=jarsigner: 
-Main.9=jarsigner error: 
-Main.70=JAR file [{0}] is NOT a file object
-Main.72=JAR file [{0}] is NOT readable
-#Main.85=Option '-keystore' is not defined or is an empty string, and 'user.home' is unknown
-Main.85=Unable to locate a valid key store
-Main.92=Enter key store password: 
-Main.6=Designated alias [{0}] MUST be known to the key store in use
-Main.95=Designated alias [{0}] MUST be an Alias of a Key Entry
-Main.97=Enter key password for <{0}>: 
-Main.99=Key associated with [{0}] MUST be a private key
-
-JarSigner.1=\ \ signing: 
-JarSigner.2=\ updating: 
-JarSigner.8=\ \ \ adding: 
-JarSigner.11=\ \ \ adding: 
-JarSigner.14=jar signed.
-
-JarVerifier.2=jar is not signed.--no signature files found.
-JarVerifier.3=jar verification failed.
-JarVerifier.4=jar partially verified --{0,numer} of {1,number} signers.
-JarVerifier.7=jar verified --{0,number} signer(s).
-JarVerifier.13=Signature Block missing for {0}
-JarVerifier.14=At least one SignerInfo element MUST be present in a Signature Block (.DSA file)
-JarVerifier.16=Missing EncryptedDigest in Signature Block (.DSA file) first SignerInfo element
-
-SFHelper.1=Helper is NOT finished
-SFHelper.4=.SF file has NOT been generated
-SFHelper.6=Unknown or unsupported private key algorithm
-SFHelper.9=Helper is NOT ready
-SFHelper.10=Helper is NOT started
diff --git a/libjava/classpath/resource/gnu/classpath/tools/jarsigner/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/jarsigner/messages.properties
deleted file mode 100644 (file)
index d408817..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-# messages.properties -- English language messages and message formats
-# Copyright (C) 2006  Free Software Foundation, Inc.
-#
-# This file is part of GNU Classpath.
-#
-# GNU Classpath is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# GNU Classpath is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Classpath; see the file COPYING.  If not, write to the
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA.
-#
-# Linking this library statically or dynamically with other modules is
-# making a combined work based on this library.  Thus, the terms and
-# conditions of the GNU General Public License cover the whole
-# combination.
-#
-# As a special exception, the copyright holders of this library give you
-# permission to link this library with independent modules to produce an
-# executable, regardless of the license terms of these independent
-# modules, and to copy and distribute the resulting executable under
-# terms of your choice, provided that you also meet, for each linked
-# independent module, the terms and conditions of the license of that
-# module.  An independent module is a module which is not derived from
-# or based on this library.  If you modify this library, you may extend
-# this exception to your version of the library, but you are not
-# obligated to do so.  If you do not wish to do so, delete this
-# exception statement from your version.
-#
-# for gnu.classpath.tools.jarsigner package
-#
-
-Main.7=jarsigner: 
-Main.9=jarsigner error: 
-Main.70=JAR file [{0}] is NOT a file object
-Main.72=JAR file [{0}] is NOT readable
-#Main.85=Option '-keystore' is not defined or is an empty string, and 'user.home' is unknown
-Main.85=Unable to locate a valid key store
-Main.92=Enter key store password: 
-Main.6=Designated alias [{0}] MUST be known to the key store in use
-Main.2=\
-Usage:  jarsigner [OPTION]... FILE ALIAS\n\
-\ \ \ \ \ \ \ \ jarsigner -verify [OPTION]... FILE\n\
-Java ARchive (JAR) file signing and verification tool.\n\
-\n\
-FILE is the .JAR file to sign or to verify.\n\
-\n\
-ALIAS must be a known Alias of a Key Entry in the designated key store.  The \
-private key material associated with this Alias is used for signing FILE.  if \
-ALIAS is required, but was omitted, "mykey" will be used instead.
-Main.1=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
-Main.0=Signing options
-Main.95=Designated alias [{0}] MUST be an Alias of a Key Entry
-Main.97=Enter key password for <{0}>: 
-Main.99=Key associated with [{0}] MUST be a private key
-Main.101=Location of the key store to use.  The default value is a file-based \
-scheme whose path is the file named ".keystore" in your home directory.\n\
-If URL is malformed, the tool will use URL as a file-name of a key store; \
-i.e. as if the protocol was "file:".
-Main.102=URL
-Main.104=Type of the key store to use.  If omitted, the default value is that \
-of the property "keystore.type" in the security properties file.
-Main.105=STORE_TYPE
-Main.107=Password to unlock the key store.  If omitted, you will be prompted \
-to provide a password.
-Main.108=PASSWORD
-Main.110=Password to unlock the Key Entry associated with ALIAS.  If omitted, \
-the tool will use the same password protecting the key store.  If this fails, \
-you will be prompted to provide a password.
-Main.111=PASSWORD
-Main.113=A literal to construct file names for both the .SF and .DSA signature \
-files --which will be placed in the META-INF directory of the signed JAR.  \
-Permissible characters are in the range [a-zA-Z0-9_-].\n\
-If omitted, the first 8 characters of ALIAS will be used.  Characters outside \
-that range will be replaced by underscores.
-Main.114=NAME
-Main.116=Name of the signed JAR file.  If omitted, the signed JAR will be \
-named the same as FILE; i.e. the input file will be replaced with its signed \
-copy.
-Main.117=FILE
-Main.118=Verification options
-Main.120=Verify an already signed FILE.
-Main.122=Use with -verbose to see more detailed information about the \
-certificates of ALIAS.
-Main.123=Common options
-Main.125=Output more verbose messages during processing.
-Main.127=Include --otherwise do not-- the .SF file in the .DSA generated file.
-Main.129=Include in the .SF generated file --otherwise do not-- a header \
-containing a hash of the whole manifest file.
-Main.131=Fully qualified class name of a Security Provider to add to the JVM \
-in-use.
-Main.132=PROVIDER_CLASS_NAME
-Main.133=Missing FILE argument.
-
-JarSigner.1=\ \ signing: 
-JarSigner.2=\ updating: 
-JarSigner.8=\ \ \ adding: 
-JarSigner.14=Jar signed.
-
-JarVerifier.2=Jar is not signed --no signature files found.
-JarVerifier.3=Jar verification failed.
-JarVerifier.4=Jar partially verified --{0,numer} of {1,number} signers.
-JarVerifier.7=Jar verified --{0,number} signer(s).
-JarVerifier.13=Signature Block missing for {0}
-JarVerifier.14=At least one SignerInfo element MUST be present in a Signature \
-Block (.DSA file)
-JarVerifier.16=Missing EncryptedDigest in Signature Block (.DSA file) first \
-SignerInfo element
-
-SFHelper.1=Helper is NOT finished
-SFHelper.4=.SF file has NOT been generated
-SFHelper.6=Unknown or unsupported private key algorithm
-SFHelper.9=Helper is NOT ready
-SFHelper.0=Warning: The certificate issued by {0}, for {1}, has expired as of {3,date,full} - {3,time,full}.
-SFHelper.10=Helper is NOT started
-SFHelper.11=Warning: The certificate issued by {0}, for {1}, is only valid after {3,date,full} - {3,time,full}.
-SFHelper.14=[unknown]
-SFHelper.17=[unnamed]
diff --git a/libjava/classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties b/libjava/classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties
deleted file mode 100644 (file)
index 2dd3ce2..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-# default locale messages for gnu.classpath.tools.keytool package
-
-Main.6=keytool: 
-Main.8=keytool error: 
-
-Command.19=Failed creating new file at {0}
-Command.20=Unable to find a suitable signature algorithm named {0}, although we found a key-pair generation algorithm named {1}
-Command.21=Enter key password for <{0}>: 
-Command.23=A correct key password MUST be provided
-Command.24=Enter key store password: 
-#Command.36=Option '-keystore' is undefined, or is an empty string, and 'user.home' is unknown
-Command.36=Unable to locate a valid key store
-Command.40=Provider fully qualified class name: 
-Command.42=File object [{0}] exists but is NOT a file
-Command.44=File [{0}] exists but is NOT writable
-Command.46=File object [{0}] MUST be an existing readable file
-Command.48=Signature algorithm is missing and private key is of unknown or unsupported type
-Command.51=Validity period MUST be greater than zero
-Command.52=Unable to get signature algorithm name
-Command.60=Unknown or unsupported signature algorithm: {0}
-Command.63=Saving key store at {0}
-Command.66=Owner: {0}
-Command.67=Issuer: {0}
-Command.68=Serial number: {0,number}
-Command.69=Valid from: {0,date,full} - {0,time,full}
-Command.70=\ \ \ \ \ until: {0,date,full} - {0,time,full}
-Command.71=Certificate fingerprints
-Command.72=\ \ \ \ \ \ MD5: {0}
-Command.73=\ \ SHA-160: {0}
-Command.75=Alias [{0}] MUST be knwon to the key store
-Command.77=Alias [{0}] MUST be associated with a Key Entry
-
-CertReqCmd.27=Certification request stored in {0}
-CertReqCmd.28=Submit this to your CA
-
-DeleteCmd.19=Enter the Alias to delete:
-DeleteCmd.20=Alias MUST NOT be null or an empty string
-
-GenKeyCmd.0=\nYou are about to enter information that will be incorporated into\n\
-your certificate request.  This information is what is called a\n\
-Distinguished Name or DN.  There are quite a few fields but you\n\
-can use supplied default values, displayed between brackets, by just\n\
-hitting <Enter>, or blank the field by entering the <.> character\n\
-before hitting <Enter>.\n\n
-GenKeyCmd.6=The Sample Company
-GenKeyCmd.7=Sydney
-GenKeyCmd.8=NSW
-GenKeyCmd.9=AU
-GenKeyCmd.10=Common Name (hostname, IP, or your name): 
-GenKeyCmd.11=Organization Name (company) [{0}]: 
-GenKeyCmd.13=Organizational Unit Name (department, division): 
-GenKeyCmd.14=Locality Name (city, district) [{0}]: 
-GenKeyCmd.16=State or Province Name (full name) [{0}]: 
-GenKeyCmd.18=Country Name (2 letter code) [{0}]: 
-GenKeyCmd.54=Key size MUST be greater than zero
-
-StorePasswdCmd.19=Too many failed attempts
-StorePasswdCmd.20=Enter new key store password: 
-StorePasswdCmd.21=Password MUST be at least 6 characters.
-StorePasswdCmd.22=New password MUST be different than the old one.
-StorePasswdCmd.23=Re-enter new key store password: 
-StorePasswdCmd.24=Passwords MUST be the same in both attempts.
-
-KeyPasswdCmd.24=Enter new key password for <{0}>: 
-KeyPasswdCmd.28=Re-enter new key password for <{0}>: 
-
-KeyCloneCmd.23=Destination Alias MUST NOT exist in key store
-KeyCloneCmd.26=Enter destination alias: 
-KeyCloneCmd.27=Destination alias MUST NOT be null nor empty
-KeyCloneCmd.28=Enter new key password for <{0}> [{1}]: 
-
-ListCmd.21=Key store type: {0}
-ListCmd.22=Key store provider: {0}
-ListCmd.24=Key store contains {0,number} entry(ies)
-ListCmd.30=Alias name: {0}
-ListCmd.31=Creation timestamp: {0,date,full} - {0,time,full}
-ListCmd.32=Entry type: trusted-certificate
-ListCmd.33=Entry type: key-entry
-ListCmd.34=Alias [{0}] is unknown to the key store
-ListCmd.38=Certificate chain length: {0,number}
-ListCmd.39=Certificate[1]:
-ListCmd.40=Certificate[{0,number}]:
-ListCmd.42=*******************************************
-ListCmd.43=-----BEGIN CERTIFICATE-----
-ListCmd.44=-----END CERTIFICATE-----
-ListCmd.45=Certificate fingerprint (MD5): {0}
-
-ImportCmd.34=Failed to establish chain-of-trust from reply
-ImportCmd.37=Unable to find anchor certificate for {0}
-ImportCmd.38=Public keys, in key store and certificate, MUST be of the same type
-ImportCmd.32=Can this certificate be trusted? 
-ImportCmd.40=Key entry associated with {0} has an unknown or unsupported public key type {1}
-ImportCmd.41=Public keys, in key store and certificate, MUST be the same
-ImportCmd.29=Certificate was added to the key store
-ImportCmd.28=Certificate was not added to the key store
diff --git a/libjava/classpath/resource/gnu/classpath/tools/keytool/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/keytool/messages.properties
deleted file mode 100644 (file)
index 98f4e68..0000000
+++ /dev/null
@@ -1,570 +0,0 @@
-# messages.properties -- English language messages and message formats
-# Copyright (C) 2006  Free Software Foundation, Inc.
-#
-# This file is part of GNU Classpath.
-#
-# GNU Classpath is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# GNU Classpath is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Classpath; see the file COPYING.  If not, write to the
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA.
-#
-# Linking this library statically or dynamically with other modules is
-# making a combined work based on this library.  Thus, the terms and
-# conditions of the GNU General Public License cover the whole
-# combination.
-#
-# As a special exception, the copyright holders of this library give you
-# permission to link this library with independent modules to produce an
-# executable, regardless of the license terms of these independent
-# modules, and to copy and distribute the resulting executable under
-# terms of your choice, provided that you also meet, for each linked
-# independent module, the terms and conditions of the license of that
-# module.  An independent module is a module which is not derived from
-# or based on this library.  If you modify this library, you may extend
-# this exception to your version of the library, but you are not
-# obligated to do so.  If you do not wish to do so, delete this
-# exception statement from your version.
-#
-# for gnu.classpath.tools.keytool package
-#
-
-Main.6=keytool: {0}
-Main.8=keytool error: {0}
-Main.5=Import a CA's Trusted Certificate.\n\
-[-file FILE] [-storetype STORE_TYPE] [-keystore URL]\n\
-[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
-Main.18=Unrecognized command: {0}
-Main.19=Usage:  keytool [COMMAND] [-- COMMAND]...\n\
-Manage private keys and public certificates.
-Main.20=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
-Main.21=Available commands
-Main.22=Generate a Key Entry, eventually creating a key store.\n\
-[-alias ALIAS] [-keyalg ALGORITHM] [-keysize KEY_SIZE]\n\
-[-sigalg ALGORITHM] [-dname NAME] [-keypass PASSWORD]\n\
-[-validity DAY_COUNT] [-storetype STORE_TYPE]\n\
-[-keystore URL] [-storepass PASSWORD]\n\
-[-provider PROVIDER_CLASS_NAME] [-v].
-Main.23=Add Key Entries and Trusted Certificates.\n\
-[-alias ALIAS] [-file FILE] [-keypass PASSWORD]\n\
-[-noprompt] [-trustcacerts] [-storetype STORE_TYPE]\n\
-[-keystore URL] [-storepass PASSWORD]\n\
-[-provider PROVIDER_CLASS_NAME] [-v].
-Main.24=Generate a self-signed Trusted Certificate.\n\
-[-alias ALIAS] [-sigalg ALGORITHM] [-dname NAME]\n\
-[-validity DAY_COUNT] [-keypass PASSWORD]\n\
-[-storetype STORE_TYPE] [-keystore URL]\n\
-[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
-Main.25=NOT IMPLEMENTED YET.  Import JDK1.1 Identity Database.\n\
-[-file FILE] [-storetype STORE_TYPE] [-keystore URL]\n\
-[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
-Main.26=Issue a Certificate Signing Request (CSR).\n\
-[-alias ALIAS] [-sigalg ALGORITHM] [-file FILE]\n\
-[-keypass PASSWORD] [-storetype STORE_TYPE] [-keystore URL]\n\
-[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v]\n\
-[-attributes].
-Main.27=Export a Certificate from a key store.\n\
-[-alias ALIAS] [-file FILE] [-storetype STORE_TYPE]\n\
-[-keystore URL] [-storepass PASSWORD]\n\
-[-provider PROVIDER_CLASS_NAME] [-rfc] [-v].
-Main.28=Print one or all Certificates in a key store to STDOUT.\n\
-[-alias ALIAS] [-storetype STORE_TYPE] [-keystore URL]\n\
-[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-rfc] [-v].
-Main.29=Print a human-readable form of a Certificate in a FILE.\n\
-[-file FILE] [-v].
-Main.30=Clone a Key Entry in a key store.\n\
-[-alias ALIAS] [-dest ALIAS] [-keypass PASSWORD]\n\
-[-new PASSWORD] [-storetype STORE_TYPE] [-keystore URL]\n\
-[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
-Main.31=Change the password protecting a key store.\n\
-[-new PASSWORD] [-storetype STORE_TYPE] [-keystore URL]\n\
-[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
-Main.32=Change the password protecting a Key Entry in a key store.\n\
-[-alias ALIAS] [-keypass PASSWORD] [-new PASSWORD]\n\
-[-storetype STORE_TYPE] [-keystore URL]\n\
-[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
-Main.33=Delete a Key Entry or a Trusted Certificate from a key store.\n\
-[-alias ALIAS] [-storetype STORE_TYPE] [-keystore URL]\n\
-[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
-
-Command.19=Failed creating new file at {0}
-Command.20=Unable to find a suitable signature algorithm named {0}, although we found a key-pair generation algorithm named {1}
-Command.21=Enter key password for <{0}>: 
-Command.23=A correct key password MUST be provided
-Command.24=Enter key store password: 
-#Command.36=Option '-keystore' is undefined, or is an empty string, and 'user.home' is unknown
-Command.36=Unable to locate a valid key store
-Command.40=Provider fully qualified class name: 
-Command.42=File object [{0}] exists but is NOT a file
-Command.44=File [{0}] exists but is NOT writable
-Command.46=File object [{0}] MUST be an existing readable file
-Command.48=Signature algorithm is missing and private key is of unknown or unsupported type
-Command.51=Validity period MUST be greater than zero
-Command.52=Unable to get signature algorithm name
-Command.60=Unknown or unsupported signature algorithm: {0}
-Command.63=Saving key store at {0}
-Command.66=Owner: {0}
-Command.67=Issuer: {0}
-Command.68=Serial number: {0,number}
-Command.69=Valid from: {0,date,full} - {0,time,full}
-Command.70=\ \ \ \ \ until: {0,date,full} - {0,time,full}
-Command.71=Certificate fingerprints
-Command.72=\ \ \ \ \ \ MD5: {0}
-Command.73=\ \ SHA-160: {0}
-Command.75=Alias [{0}] MUST be knwon to the key store
-Command.77=Alias [{0}] MUST be associated with a Key Entry
-
-CertReqCmd.27=Certification request stored in {0}
-CertReqCmd.28=Submit this to your CA
-CertReqCmd.25=Usage:  keytool -certreq [OPTION]...\n\
-Generate a PKCS#10 Certificate Signing Request (CSR) and write it to a \
-designated output destination.\n\n\
-IMPORTANT: Some documentation claims that the Attributes field, in the CSR is \
-OPTIONAL while RFC-2986 implies the opposite.  This implementation considers \
-this field, by default, as OPTIONAL, unless option -attributes is specified.
-CertReqCmd.24=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
-CertReqCmd.23=Command options
-CertReqCmd.22=Alias of an entry in the key store on whose behalf the CSR is \
-generated.  The value "mykey" (all lower case, without the enclosing quotes) \
-is used when this option is omitted.
-CertReqCmd.21=ALIAS
-CertReqCmd.20=Name of the digital signature algorithm to use for signing the \
-certificate.  If omitted, a default value is chosen based on the type of the \
-private key associated with ALIAS.  If the key is a "DSA" one, the value for \
-signature algorithm will be "SHA1withDSA".  If on the other hand the key is \
-an "RSA" one, then "MD5withRSA" will be the signature algorithm.
-CertReqCmd.19=ALGORITHM
-CertReqCmd.18=Destination of the generated CSR.  STDOUT is used if this \
-option is omitted.
-CertReqCmd.17=FILE
-CertReqCmd.16=Password to unlock the Key Entry associated with ALIAS.  If \
-omitted, the tool will attempt to unlock the Key Entry using the same password \
-protecting the key store.  If this fails, you will be prompted for a password.
-CertReqCmd.14=Type of the key store to use.  If omitted, the default value is \
-that of the property "keystore.type" in the security properties file.
-CertReqCmd.13=STORE_TYPE
-CertReqCmd.12=Location of the key store to use.  The default value is a \
-file-based scheme whose path is the file named ".keystore" in your home \
-directory.\n\
-If URL is malformed, the tool will use URL as a file-name of a key store; \
-i.e. as if the protocol was "file:".
-CertReqCmd.11=URL
-CertReqCmd.10=Password to unlock the key store.  If omitted, you will be \
-prompted for one.
-CertReqCmd.9=PASSWORD
-CertReqCmd.8=Fully qualified class name of a Security Provider to add to the \
-JVM in-use.
-CertReqCmd.7=PROVIDER_CLASS_NAME
-CertReqCmd.6=Emit more verbose messages.
-CertReqCmd.5=Force the tool to encode a NULL DER value in the CSR as the value \
-of the Attributes field.
-
-DeleteCmd.19=Enter the Alias to delete:
-DeleteCmd.18=Usage:  keytool -delete [OPTION]...\n\
-Delete a designated key store entry.
-DeleteCmd.17=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
-DeleteCmd.16=Command options
-DeleteCmd.15=Alias of an entry to delete.  The value "mykey" (all lower case, \
-without the enclosing quotes) is used when this option is omitted.
-DeleteCmd.14=ALIAS
-DeleteCmd.13=Type of the key store to use.  If omitted, the default value is \
-that of the property "keystore.type" in the security properties file.
-DeleteCmd.12=STORE_TYPE
-DeleteCmd.11=Location of the key store to use.  The default value is a \
-file-based scheme whose path is the file named ".keystore" in your home \
-directory.\n\
-If URL is malformed, the tool will use URL as a file-name of a key store; \
-i.e. as if the protocol was "file:".
-DeleteCmd.10=URL
-DeleteCmd.20=Alias MUST NOT be null or an empty string
-DeleteCmd.9=Password to unlock the key store.  If omitted, you will be \
-prompted for one.
-DeleteCmd.8=PASSWORD
-DeleteCmd.7=Fully qualified class name of a Security Provider to add to the \
-JVM in-use.
-DeleteCmd.6=PROVIDER_CLASS_NAME
-DeleteCmd.5=Emit more verbose messages.
-
-GenKeyCmd.0=\nYou are about to enter information that will be incorporated into\n\
-your certificate request.  This information is what is called a\n\
-Distinguished Name or DN.  There are quite a few fields but you\n\
-can use supplied default values, displayed between brackets, by just\n\
-hitting <Enter>, or blank the field by entering the <.> character\n\
-before hitting <Enter>.\n\n
-GenKeyCmd.6=The Sample Company
-GenKeyCmd.7=Sydney
-GenKeyCmd.8=NSW
-GenKeyCmd.9=AU
-GenKeyCmd.10=Common Name (hostname, IP, or your name): 
-GenKeyCmd.11=Organization Name (company) [{0}]: 
-GenKeyCmd.13=Organizational Unit Name (department, division): 
-GenKeyCmd.14=Locality Name (city, district) [{0}]: 
-GenKeyCmd.16=State or Province Name (full name) [{0}]: 
-GenKeyCmd.18=Country Name (2 letter code) [{0}]: 
-GenKeyCmd.54=Key size MUST be greater than zero
-GenKeyCmd.57=Usage:  keytool -genkey [OPTION]...\n\
-Generate a new key-pair and save these credentials in the key store as a Key \
-Entry, associated with a designated Alias.
-GenKeyCmd.58=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
-GenKeyCmd.59=Command options
-GenKeyCmd.60=Alias of the Key Entry to generate.  The value "mykey" (all lower \
-case, without the enclosing quotes) is used when this option is omitted.
-GenKeyCmd.61=ALIAS
-GenKeyCmd.62=Name of the key-pair generation algorithm.  The default value is \
-"DSS" (a synonym for the Digital Signature Algorithm also known as DSA).
-GenKeyCmd.63=ALGORITHM
-GenKeyCmd.64=Number of bits of the shared modulus, for both the public and \
-private keys, to use for the new keys.  If omitted, 1024 is used.
-GenKeyCmd.65=SIZE
-GenKeyCmd.66=Name of the digital signature algorithm to use for signing the \
-certificate.  If omitted, a default value is chosen based on the type of the \
-private key associated with ALIAS.  If the key is a "DSA" one, the value for \
-signature algorithm will be "SHA1withDSA".  If on the other hand the key is \
-an "RSA" one, then "MD5withRSA" will be the signature algorithm.
-GenKeyCmd.68=The X.500 Distinguished Name of the Subject of the generated \
-certificate.  If omitted you will be prompted for one.
-GenKeyCmd.69=NAME
-GenKeyCmd.70=Password to protect the newly created Key Entry.  If omitted, \
-you will be prompted to provide a password.
-GenKeyCmd.71=PASSWORD
-GenKeyCmd.72=Number of days the generated certificate is valid for.  If \
-omitted, 90 is used.
-GenKeyCmd.73=DAY_COUNT
-GenKeyCmd.74=Type of the key store to use.  If omitted, the default value is \
-that of the property "keystore.type" in the security properties file.
-GenKeyCmd.75=STORE_TYPE
-GenKeyCmd.76=Location of the key store to use.  The default value is a \
-file-based scheme whose path is the file named ".keystore" in your home \
-directory.\n\
-If URL is malformed, the tool will use URL as a file-name of a key store; \
-i.e. as if the protocol was "file:".
-GenKeyCmd.77=URL
-GenKeyCmd.78=Password to unlock the key store.  If omitted, you will be \
-prompted for one.
-GenKeyCmd.80=Fully qualified class name of a Security Provider to add to the \
-JVM in-use.
-GenKeyCmd.81=PROVIDER_CLASS_NAME
-GenKeyCmd.82=Emit more verbose messages.
-
-StorePasswdCmd.19=Too many failed attempts
-StorePasswdCmd.18=Usage:  keytool -storepasswd [OPTION]...\n\
-Change the password protecting a key store.
-StorePasswdCmd.17=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
-StorePasswdCmd.16=Command options
-StorePasswdCmd.15=The new, and different, password to protect the key store.  \
-If omitted, you will be prompted for one.
-StorePasswdCmd.13=Type of the key store to use.  If omitted, the default value is \
-that of the property "keystore.type" in the security properties file.
-StorePasswdCmd.12=STORE_TYPE
-StorePasswdCmd.11=Location of the key store to use.  The default value is a \
-file-based scheme whose path is the file named ".keystore" in your home \
-directory.\n\
-If URL is malformed, the tool will use URL as a file-name of a key store; \
-i.e. as if the protocol was "file:".
-StorePasswdCmd.10=URL
-StorePasswdCmd.20=Enter new key store password: 
-StorePasswdCmd.21=Password MUST be at least 6 characters.
-StorePasswdCmd.22=New password MUST be different than the old one.
-StorePasswdCmd.23=Re-enter new key store password: 
-StorePasswdCmd.24=Passwords MUST be the same in both attempts.
-StorePasswdCmd.9=Password to unlock the key store.  If omitted, you will be \
-prompted for one.
-StorePasswdCmd.8=PASSWORD
-StorePasswdCmd.7=Fully qualified class name of a Security Provider to add to the \
-JVM in-use.
-StorePasswdCmd.6=PROVIDER_CLASS_NAME
-StorePasswdCmd.5=Emit more verbose messages.
-
-KeyPasswdCmd.24=Enter new key password for <{0}>: 
-KeyPasswdCmd.28=Re-enter new key password for <{0}>: 
-KeyPasswdCmd.23=Usage:  keytool -keypasswd [OPTION]...\n\
-Change the password protecting a Key Entry.
-KeyPasswdCmd.22=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
-KeyPasswdCmd.21=Command options
-KeyPasswdCmd.20=The Alias which password is to be changed.
-KeyPasswdCmd.19=ALIAS
-KeyPasswdCmd.18=Password to unlock ALIAS.  If omitted, the tool will attempt \
-to unlock the Key Entry using the same password protecting the key store.  If \
-this fails, you will be prompted for a password.
-KeyPasswdCmd.16=The new, and different, password to protect ALIAS.
-KeyPasswdCmd.14=Type of the key store to use.  If omitted, the default value is \
-that of the property "keystore.type" in the security properties file.
-KeyPasswdCmd.13=STORE_TYPE
-KeyPasswdCmd.12=Location of the key store to use.  The default value is a \
-file-based scheme whose path is the file named ".keystore" in your home \
-directory.\n\
-If URL is malformed, the tool will use URL as a file-name of a key store; \
-i.e. as if the protocol was "file:".
-KeyPasswdCmd.11=URL
-KeyPasswdCmd.10=Password to unlock the key store.  If omitted, you will be \
-prompted for one.
-KeyPasswdCmd.9=PASSWORD
-KeyPasswdCmd.8=Fully qualified class name of a Security Provider to add to the \
-JVM in-use.
-KeyPasswdCmd.7=PROVIDER_CLASS_NAME
-KeyPasswdCmd.6=Emit more verbose messages.
-
-KeyCloneCmd.23=Destination Alias MUST NOT exist in key store
-KeyCloneCmd.26=Enter destination alias: 
-KeyCloneCmd.27=Destination alias MUST NOT be null nor empty
-KeyCloneCmd.28=Enter new key password for <{0}> [{1}]: 
-KeyCloneCmd.22=Usage:  keytool -keyclone [OPTION]...\n\
-Clone an existing Key Entry and store it under a new (different) Alias \
-protecting its private key material with possibly a new password.
-KeyCloneCmd.21=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
-KeyCloneCmd.20=Command options
-KeyCloneCmd.19=Alias of an entry to clone.  The value "mykey" (all lower case, \
-without the enclosing quotes) is used when this option is omitted.
-KeyCloneCmd.17=Alias to identify the cloned copy of the Key Entry.
-KeyCloneCmd.16=ALIAS
-KeyCloneCmd.15=Password to unlock the Key Entry associated with the Alias to \
-clone.  If omitted, the tool will attempt to unlock the Key Entry using the \
-same password protecting the key store.  If this fails, you will be prompted \
-for a password.
-KeyCloneCmd.13=Password to protect the cloned copy of the Key Entry.  If \
-omitted, you will be prompted to provide one.
-KeyCloneCmd.11=Type of the key store to use.  If omitted, the default value is \
-that of the property "keystore.type" in the security properties file.
-KeyCloneCmd.10=STORE_TYPE
-KeyCloneCmd.9=Location of the key store to use.  The default value is a \
-file-based scheme whose path is the file named ".keystore" in your home \
-directory.\n\
-If URL is malformed, the tool will use URL as a file-name of a key store; \
-i.e. as if the protocol was "file:".
-KeyCloneCmd.8=URL
-KeyCloneCmd.7=Password to unlock the key store.  If omitted, you will be \
-prompted for one.
-KeyCloneCmd.6=PASSWORD
-KeyCloneCmd.5=Fully qualified class name of a Security Provider to add to the \
-JVM in-use.
-KeyCloneCmd.4=PROVIDER_CLASS_NAME
-KeyCloneCmd.3=Emit more verbose messages.
-
-ListCmd.21=Key store type: {0}
-ListCmd.22=Key store provider: {0}
-ListCmd.24=Key store contains {0,number} entry(ies)
-ListCmd.20=Usage:  keytool -list [OPTION]...\n\
-Print one or all of the key store entries to STDOUT.  Usually this command \
-will only print a fingerprint of the certificate, unless either -rfc or -v \
-is specified.
-ListCmd.30=Alias name: {0}
-ListCmd.31=Creation timestamp: {0,date,full} - {0,time,full}
-ListCmd.32=Entry type: trusted-certificate
-ListCmd.33=Entry type: key-entry
-ListCmd.34=Alias [{0}] is unknown to the key store
-ListCmd.38=Certificate chain length: {0,number}
-ListCmd.39=Certificate[1]:
-ListCmd.40=Certificate[{0,number}]:
-ListCmd.42=*******************************************
-ListCmd.43=-----BEGIN CERTIFICATE-----
-ListCmd.44=-----END CERTIFICATE-----
-ListCmd.45=Certificate fingerprint (MD5): {0}
-ListCmd.19=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
-ListCmd.18=Command options
-ListCmd.17=Alias of an entry to list.  If omitted, all entries are listed.
-ListCmd.16=ALIAS
-ListCmd.15=Type of the key store to use.  If omitted, the default value is \
-that of the property "keystore.type" in the security properties file.
-ListCmd.14=STORE_TYPE
-ListCmd.13=Location of the key store to use.  The default value is a \
-file-based scheme whose path is the file named ".keystore" in your home \
-directory.\n\
-If URL is malformed, the tool will use URL as a file-name of a key store; \
-i.e. as if the protocol was "file:".
-ListCmd.12=URL
-ListCmd.11=Password to unlock the key store.  If omitted, you will be \
-prompted for one.
-ListCmd.10=PASSWORD
-ListCmd.9=Fully qualified class name of a Security Provider to add to the \
-JVM in-use.
-ListCmd.8=PROVIDER_CLASS_NAME
-ListCmd.7=Output the certificate in human-readable format, even if -rfc is \
-also specified.
-ListCmd.6=Use RFC-1421 specifications when encoding the output.
-
-ImportCmd.34=Failed to establish chain-of-trust from reply
-ImportCmd.37=Unable to find anchor certificate for {0}
-ImportCmd.38=Public keys, in key store and certificate, MUST be of the same type
-ImportCmd.32=Can this certificate be trusted? 
-ImportCmd.40=Key entry associated with {0} has an unknown or unsupported public key type {1}
-ImportCmd.41=Public keys, in key store and certificate, MUST be the same
-ImportCmd.29=Certificate was added to the key store
-ImportCmd.28=Certificate was not added to the key store
-ImportCmd.27=Usage:  keytool -import [OPTION]...\n\
-Read an X.509 certificate, or a PKCS#7 Certificate Reply from a designated \
-input source and incorporate the certificates into the key store.
-ImportCmd.26=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
-ImportCmd.25=Command options
-ImportCmd.24=If ALIAS does not already exist in the key store, the tool treats \
-the certificate in FILE as a new Trusted Certificate.\n\
-If ALIAS exists in the key store, the tool will treat the certificate(s) in \
-FILE as a Certificate Reply (which can be a chain of certificates).
-ImportCmd.23=ALIAS
-ImportCmd.22=Location of the Certificate or Certificate Reply to import.
-ImportCmd.21=FILE
-ImportCmd.20=Password to protect the Key Entry associated with ALIAS.  If \
-this option is omitted, and the chain-of-trust for the Certificate Reply has \
-been established, the tool will first attempt to unlock the Key Entry using \
-the same password protecting the key store.  If this fails, you will be \
-prompted to provide a password.
-ImportCmd.19=PASSWORD
-ImportCmd.18=Prevent the tool from prompting the user.
-ImportCmd.17=Additionally use a key store, of type "JKS", named "cacerts", \
-and located in lib/security in an installed Java Runtime Environment, when \
-trying to establish chains-of-trust.
-ImportCmd.16=Type of the key store to use.  If omitted, the default value is \
-that of the property "keystore.type" in the security properties file.
-ImportCmd.15=STORE_TYPE
-ImportCmd.14=Location of the key store to use.  The default value is a \
-file-based scheme whose path is the file named ".keystore" in your home \
-directory.\n\
-If URL is malformed, the tool will use URL as a file-name of a key store; \
-i.e. as if the protocol was "file:".
-ImportCmd.13=URL
-ImportCmd.12=Password to unlock the key store.  If omitted, you will be \
-prompted for one.
-ImportCmd.11=PASSWORD
-ImportCmd.10=Fully qualified class name of a Security Provider to add to the \
-JVM in-use.
-ImportCmd.9=PROVIDER_CLASS_NAME
-ImportCmd.8=Emit more verbose messages.
-ImportCmd.7=Was unable to build a certificate-chain. Only {0,number} out of {1,number} certificates were processed
-
-ExportCmd.17=Usage:  keytool -export [OPTION]...\n\
-Export a certificate stored in the key store to a designated output \
-destination, either in binary format or in RFC-1421 compliant encoding.
-ExportCmd.18=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
-ExportCmd.19=Command options
-ExportCmd.20=Alias of an entry to export.  The value "mykey" (all lower case, \
-without the enclosing quotes) is used when this option is omitted.
-ExportCmd.21=ALIAS
-ExportCmd.22=Destination of the exported certificate.  STDOUT is used if this \
-option is omitted.
-ExportCmd.23=FILE
-ExportCmd.24=Type of the key store to use.  If omitted, the default value is \
-that of the property "keystore.type" in the security properties file.
-ExportCmd.25=STORE_TYPE
-ExportCmd.26=Location of the key store to use.  The default value is a \
-file-based scheme whose path is the file named ".keystore" in your home \
-directory.\n\
-If URL is malformed, the tool will use URL as a file-name of a key store; \
-i.e. as if the protocol was "file:".
-ExportCmd.27=URL
-ExportCmd.28=Password to unlock the key store.  If omitted, you will be \
-prompted for one.
-ExportCmd.29=PASSWORD
-ExportCmd.30=Fully qualified class name of a Security Provider to add to the \
-JVM in-use.
-ExportCmd.31=PROVIDER_CLASS_NAME
-ExportCmd.32=Use RFC-1421 specifications when encoding the output.
-ExportCmd.33=Output the certificate in binary DER encoding, which is the \
-default format.  If -rfc is also present, this option is ignored.
-
-IdentityDBCmd.7=Usage:  keytool -identitydb [OPTION]...\n\
-NOT IMPLEMENTED YET.  Import a JDK 1.1 style Identity Database.
-IdentityDBCmd.8=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
-IdentityDBCmd.9=Command options
-IdentityDBCmd.10=Location of the Identity Database to import.  If omitted, \
-STDIN is used.
-IdentityDBCmd.11=FILE
-IdentityDBCmd.12=Type of the key store to use.  If omitted, the default value is \
-that of the property "keystore.type" in the security properties file.
-IdentityDBCmd.13=STORE_TYPE
-IdentityDBCmd.14=Location of the key store to use.  The default value is a \
-file-based scheme whose path is the file named ".keystore" in your home \
-directory.\n\
-If URL is malformed, the tool will use URL as a file-name of a key store; \
-i.e. as if the protocol was "file:".
-IdentityDBCmd.15=URL
-IdentityDBCmd.16=Password to unlock the key store.  If omitted, you will be \
-prompted for one.
-IdentityDBCmd.17=PASSWORD
-IdentityDBCmd.18=Fully qualified class name of a Security Provider to add to the \
-JVM in-use.
-IdentityDBCmd.19=PROVIDER_CLASS_NAME
-IdentityDBCmd.20=Emit more verbose messages.
-
-PrintCertCmd.5=Usage:  keytool -printcert [OPTION]...\n\
-Read a certificate from FILE and print it to STDOUT in a human-readable form.
-PrintCertCmd.6=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
-PrintCertCmd.7=Command options
-PrintCertCmd.8=Location of the certificate to print.  If omitted, STDIN is used.
-PrintCertCmd.9=FILE
-PrintCertCmd.10=Emit more verbose messages.
-
-SelfCertCmd.14=Usage:  keytool -selfcert [OPTION]...\n\
-Generate a self-signed X.509 version 1 certificate.\n\n\
-The newly generated certificate will form a chain of one element which will \
-replace the previous chain associated with ALIAS.
-SelfCertCmd.15=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
-SelfCertCmd.16=Command options
-SelfCertCmd.17=Alias of the Key Entry to select.  The value "mykey" (all lower \
-case, without the enclosing quotes) is used when this option is omitted.
-SelfCertCmd.18=ALIAS
-SelfCertCmd.19=Name of the digital signature algorithm to use for signing the \
-certificate.  If omitted, a default value is chosen based on the type of the \
-private key associated with ALIAS.  If the key is a "DSA" one, the value for \
-signature algorithm will be "SHA1withDSA".  If on the other hand the key is \
-an "RSA" one, then "MD5withRSA" will be the signature algorithm.
-SelfCertCmd.20=ALGORITHM
-SelfCertCmd.21=The X.500 Distinguished Name of the Subject of the generated \
-certificate.  If omitted the Distinguished Name of the base certificate in \
-the chain associated with ALIAS is used instead.
-SelfCertCmd.22=NAME
-SelfCertCmd.23=Password to unlock the Key Entry associated with ALIAS.  If \
-omitted, the tool will attempt to unlock the Key Entry using the same password \
-protecting the key store.  If this fails, you will be prompted for a password.
-SelfCertCmd.24=PASSWORD
-SelfCertCmd.25=Number of days the generated certificate is valid for.  If \
-omitted, 90 is used.
-SelfCertCmd.26=DAY_COUNT
-SelfCertCmd.27=Type of the key store to use.  If omitted, the default value is \
-that of the property "keystore.type" in the security properties file.
-SelfCertCmd.28=STORE_TYPE
-SelfCertCmd.29=Location of the key store to use.  The default value is a \
-file-based scheme whose path is the file named ".keystore" in your home \
-directory.\n\
-If URL is malformed, the tool will use URL as a file-name of a key store; \
-i.e. as if the protocol was "file:".
-SelfCertCmd.30=URL
-SelfCertCmd.31=Password to unlock the key store.  If omitted, you will be \
-prompted for one.
-SelfCertCmd.32=PASSWORD
-SelfCertCmd.33=Fully qualified class name of a Security Provider to add to the \
-JVM in-use.
-SelfCertCmd.34=PROVIDER_CLASS_NAME
-SelfCertCmd.35=Emit more verbose messages.
-
-CACertCmd.0=Alias [{0}] is already present in key store
-CACertCmd.1=Certificate in file "{0}" was added to the key store under the alias "{1}"
-CACertCmd.2=Usage:  keytool -cacert [OPTION]...\n\
-Import a trusted CA certificate.
-CACertCmd.3=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
-CACertCmd.4=Command options
-CACertCmd.5=Location of the trusted CA certificate to import.
-CACertCmd.6=FILE
-CACertCmd.7=Type of the key store to use.  If omitted, the default value is \
-that of the property "keystore.type" in the security properties file.
-CACertCmd.8=STORE_TYPE
-CACertCmd.9=Location of the key store to use.  The default value is a \
-file-based scheme whose path is the file named ".keystore" in your home \
-directory.\n\
-If URL is malformed, the tool will use URL as a file-name of a key store; \
-i.e. as if the protocol was "file:".
-CACertCmd.10=URL
-CACertCmd.11=Password to unlock the key store.  If omitted, you will be \
-prompted for one.
-CACertCmd.12=PASSWORD
-CACertCmd.13=Fully qualified class name of a Security Provider to add to the \
-JVM in-use.
-CACertCmd.14=PROVIDER_CLASS_NAME
-CACertCmd.15=Emit more verbose messages.
diff --git a/libjava/classpath/resource/gnu/classpath/tools/native2ascii/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/native2ascii/messages.properties
deleted file mode 100644 (file)
index fe2d10a..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-# messages.properties -- English language messages
-# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
-#
-# This file is part of GNU Classpath.
-#
-# GNU Classpath is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# GNU Classpath is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Classpath; see the file COPYING.  If not, write to the
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA.
-#
-# Linking this library statically or dynamically with other modules is
-# making a combined work based on this library.  Thus, the terms and
-# conditions of the GNU General Public License cover the whole
-# combination.
-#
-# As a special exception, the copyright holders of this library give you
-# permission to link this library with independent modules to produce an
-# executable, regardless of the license terms of these independent
-# modules, and to copy and distribute the resulting executable under
-# terms of your choice, provided that you also meet, for each linked
-# independent module, the terms and conditions of the license of that
-# module.  An independent module is a module which is not derived from
-# or based on this library.  If you modify this library, you may extend
-# this exception to your version of the library, but you are not
-# obligated to do so.  If you do not wish to do so, delete this
-# exception statement from your version.
-
-Native2ASCII.TooManyFiles=too many files specified
-Native2ASCII.Usage=Usage: native2ascii [OPTIONS]... [INPUTFILE [OUTPUTFILE]]
-Native2ASCII.EncodingHelp=encoding to use
-Native2ASCII.EncodingArgName=NAME
-Native2ASCII.EncodingSpecified=encoding already specified
-Native2ASCII.ReversedHelp=convert from encoding to native
-Native2ASCII.ReversedHelpCompat=alias for -reverse (deprecated)
diff --git a/libjava/classpath/resource/gnu/classpath/tools/orbd/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/orbd/messages.properties
deleted file mode 100644 (file)
index b427d10..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-# messages.properties -- English language messages
-# Copyright (C) 2006  Free Software Foundation, Inc.
-#
-# This file is part of GNU Classpath.
-#
-# GNU Classpath is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# GNU Classpath is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Classpath; see the file COPYING.  If not, write to the
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA.
-#
-# Linking this library statically or dynamically with other modules is
-# making a combined work based on this library.  Thus, the terms and
-# conditions of the GNU General Public License cover the whole
-# combination.
-#
-# As a special exception, the copyright holders of this library give you
-# permission to link this library with independent modules to produce an
-# executable, regardless of the license terms of these independent
-# modules, and to copy and distribute the resulting executable under
-# terms of your choice, provided that you also meet, for each linked
-# independent module, the terms and conditions of the license of that
-# module.  An independent module is a module which is not derived from
-# or based on this library.  If you modify this library, you may extend
-# this exception to your version of the library, but you are not
-# obligated to do so.  If you do not wish to do so, delete this
-# exception statement from your version.
-
-Main.Usage=Usage: orbd [OPTIONS]
-Main.ORBInitialPort=port on which persistent naming service is to be started
-Main.Port=PORT
-Main.IOR=file in which to store persistent naming service's IOR reference
-Main.IORFile=FILE
-Main.Restart=restart persistent naming service, clearing persistent naming database
-Main.Directory=directory in which to store persistent data
-Main.DirectoryArgument=DIRECTORY
-Main.InternalError=orbd: internal error:
diff --git a/libjava/classpath/resource/gnu/classpath/tools/rmic/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/rmic/messages.properties
deleted file mode 100644 (file)
index 7be7cb0..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-# messages.properties -- English language messages
-# Copyright (C) 2006  Free Software Foundation, Inc.
-#
-# This file is part of GNU Classpath.
-#
-# GNU Classpath is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# GNU Classpath is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Classpath; see the file COPYING.  If not, write to the
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA.
-#
-# Linking this library statically or dynamically with other modules is
-# making a combined work based on this library.  Thus, the terms and
-# conditions of the GNU General Public License cover the whole
-# combination.
-#
-# As a special exception, the copyright holders of this library give you
-# permission to link this library with independent modules to produce an
-# executable, regardless of the license terms of these independent
-# modules, and to copy and distribute the resulting executable under
-# terms of your choice, provided that you also meet, for each linked
-# independent module, the terms and conditions of the license of that
-# module.  An independent module is a module which is not derived from
-# or based on this library.  If you modify this library, you may extend
-# this exception to your version of the library, but you are not
-# obligated to do so.  If you do not wish to do so, delete this
-# exception statement from your version.
-
-Main.Usage:rmic [OPTIONS] CLASSNAME...
-Main.NoWarn:show no warnings
-Main.NoWrite:check for errors and do not write any files
-Main.Verbose:show verbose output
-Main.DirOpt:write generated files to given directory
-Main.DirArg:DIRECTORY
-Main.ClasspathOpt:where to find input classes
-Main.ClasspathArg:PATH
-Main.BootclasspathOpt:where to find classes used to run rmic (ignored)
-Main.BootclasspathArg:PATH
-Main.ExtdirsOpt:where to find extension classes used to run rmic (ignored)
-Main.ExtdirsArg:PATH
-Main.IIOP:generate stubs and ties for IIOP
-Main.Always:always overwrite generated files (ignored)
-Main.AlwaysGenerate:same as -always
-Main.NoLocalStubs:do not create same-process stubs (ignored)
-Main.POA:generate servant-based ties
-Main.Keep:keep generated stub, skeleton and tie sources
-Main.KeepGenerated:same as -keep
-Main.v11:generate JDK 1.1 protocol stubs and skeletons
-Main.v12:generate JDK 1.2 JRMP stubs (default)
-Main.vcompat:generate JDK 1.1 protocol and JDK 1.2 JRMP stubs
-Main.DebugInfo:include debugging information in generated classes
-Main.InternalError:rmic: internal error:
diff --git a/libjava/classpath/resource/gnu/classpath/tools/rmid/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/rmid/messages.properties
deleted file mode 100644 (file)
index 234cea1..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-# messages.properties -- English language messages
-# Copyright (C) 2006  Free Software Foundation, Inc.
-#
-# This file is part of GNU Classpath.
-#
-# GNU Classpath is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# GNU Classpath is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Classpath; see the file COPYING.  If not, write to the
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA.
-#
-# Linking this library statically or dynamically with other modules is
-# making a combined work based on this library.  Thus, the terms and
-# conditions of the GNU General Public License cover the whole
-# combination.
-#
-# As a special exception, the copyright holders of this library give you
-# permission to link this library with independent modules to produce an
-# executable, regardless of the license terms of these independent
-# modules, and to copy and distribute the resulting executable under
-# terms of your choice, provided that you also meet, for each linked
-# independent module, the terms and conditions of the license of that
-# module.  An independent module is a module which is not derived from
-# or based on this library.  If you modify this library, you may extend
-# this exception to your version of the library, but you are not
-# obligated to do so.  If you do not wish to do so, delete this
-# exception statement from your version.
-
-Main.Usage=Usage: rmid [OPTIONS]
-Main.ControlGroup=Activation process control
-Main.PortOption=port on which activation system is to be started
-Main.Port=PORT
-Main.Restart=restart activation system, clearing persistent naming database, if any
-Main.Stop=stop activation system
-Main.PersistenceGroup=Persistence
-Main.Persistent=make activation system persistent
-Main.Directory=directory in which to store persistent data
-Main.DirectoryArgument=DIRECTORY
-Main.DebugGroup=Debugging
-Main.Verbose=log binding events to standard out
-Main.InternalError=rmid: internal error:
diff --git a/libjava/classpath/resource/gnu/classpath/tools/rmiregistry/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/rmiregistry/messages.properties
deleted file mode 100644 (file)
index 46f7cfd..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-# messages.properties -- English language messages
-# Copyright (C) 2006  Free Software Foundation, Inc.
-#
-# This file is part of GNU Classpath.
-#
-# GNU Classpath is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# GNU Classpath is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Classpath; see the file COPYING.  If not, write to the
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA.
-#
-# Linking this library statically or dynamically with other modules is
-# making a combined work based on this library.  Thus, the terms and
-# conditions of the GNU General Public License cover the whole
-# combination.
-#
-# As a special exception, the copyright holders of this library give you
-# permission to link this library with independent modules to produce an
-# executable, regardless of the license terms of these independent
-# modules, and to copy and distribute the resulting executable under
-# terms of your choice, provided that you also meet, for each linked
-# independent module, the terms and conditions of the license of that
-# module.  An independent module is a module which is not derived from
-# or based on this library.  If you modify this library, you may extend
-# this exception to your version of the library, but you are not
-# obligated to do so.  If you do not wish to do so, delete this
-# exception statement from your version.
-
-Main.Usage=Usage: rmiregistry [OPTIONS] [PORT]
-Main.ControlGroup=Registry process control
-Main.Restart=restart RMI naming service, clearing persistent naming database, if any
-Main.Stop=stop RMI naming service
-Main.PersistenceGroup=Persistence
-Main.Persistent=make RMI naming service persistent
-Main.Directory=directory in which to store persistent data
-Main.DirectoryArgument=DIRECTORY
-Main.DebugGroup=Debugging
-Main.Verbose=log binding events to standard out
-Main.InternalError=rmiregistry: internal error:
diff --git a/libjava/classpath/resource/gnu/classpath/tools/serialver/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/serialver/messages.properties
deleted file mode 100644 (file)
index 8900795..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-# messages.properties -- English language messages
-# Copyright (C) 2006  Free Software Foundation, Inc.
-#
-# This file is part of GNU Classpath.
-#
-# GNU Classpath is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# GNU Classpath is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Classpath; see the file COPYING.  If not, write to the
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA.
-#
-# Linking this library statically or dynamically with other modules is
-# making a combined work based on this library.  Thus, the terms and
-# conditions of the GNU General Public License cover the whole
-# combination.
-#
-# As a special exception, the copyright holders of this library give you
-# permission to link this library with independent modules to produce an
-# executable, regardless of the license terms of these independent
-# modules, and to copy and distribute the resulting executable under
-# terms of your choice, provided that you also meet, for each linked
-# independent module, the terms and conditions of the license of that
-# module.  An independent module is a module which is not derived from
-# or based on this library.  If you modify this library, you may extend
-# this exception to your version of the library, but you are not
-# obligated to do so.  If you do not wish to do so, delete this
-# exception statement from your version.
-
-SerialVer.NoClassesSpecd=no classes specified
-SerialVer.HelpHeader=serialver [OPTIONS]... CLASS...\n\nPrint the serialVersionUID of the specified classes
-SerialVer.5=classpath
-SerialVer.ClasspathHelp=class path to use to find classes
-SerialVer.ClassNotSerial=serialver: class {0} is not serializable
-SerialVer.ClassNotFound=serialver: class {0} not found
-SerialVer.DupClasspath=classpath already specified
diff --git a/libjava/classpath/resource/gnu/classpath/tools/tnameserv/messages.properties b/libjava/classpath/resource/gnu/classpath/tools/tnameserv/messages.properties
deleted file mode 100644 (file)
index 3861e24..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-# messages.properties -- English language messages
-# Copyright (C) 2006  Free Software Foundation, Inc.
-#
-# This file is part of GNU Classpath.
-#
-# GNU Classpath is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# GNU Classpath is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Classpath; see the file COPYING.  If not, write to the
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA.
-#
-# Linking this library statically or dynamically with other modules is
-# making a combined work based on this library.  Thus, the terms and
-# conditions of the GNU General Public License cover the whole
-# combination.
-#
-# As a special exception, the copyright holders of this library give you
-# permission to link this library with independent modules to produce an
-# executable, regardless of the license terms of these independent
-# modules, and to copy and distribute the resulting executable under
-# terms of your choice, provided that you also meet, for each linked
-# independent module, the terms and conditions of the license of that
-# module.  An independent module is a module which is not derived from
-# or based on this library.  If you modify this library, you may extend
-# this exception to your version of the library, but you are not
-# obligated to do so.  If you do not wish to do so, delete this
-# exception statement from your version.
-
-Main.Usage=Usage: tnameserv [OPTIONS]
-Main.ORBInitialPort=port on which naming service is to be started
-Main.Port=PORT
-Main.IOR=file in which to store naming service's IOR reference
-Main.IORFile=FILE
-Main.InternalError=tnameserv: internal error:
diff --git a/libjava/classpath/resource/gnu/java/awt/font/fonts.properties b/libjava/classpath/resource/gnu/java/awt/font/fonts.properties
new file mode 100644 (file)
index 0000000..4fc0b10
--- /dev/null
@@ -0,0 +1,59 @@
+# fonts.properties
+#    Copyright (C) 2007 Free Software Foundation, Inc.
+# 
+# This file is part of GNU Classpath.
+# 
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+# 
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA.
+# 
+# Linking this library statically or dynamically with other modules is
+# making a combined work based on this library.  Thus, the terms and
+# conditions of the GNU General Public License cover the whole
+# combination.
+# 
+# As a special exception, the copyright holders of this library give you
+# permission to link this library with independent modules to produce an
+# executable, regardless of the license terms of these independent
+# modules, and to copy and distribute the resulting executable under
+# terms of your choice, provided that you also meet, for each linked
+# independent module, the terms and conditions of the license of that
+# module.  An independent module is a module which is not derived from
+# or based on this library.  If you modify this library, you may extend
+# this exception to your version of the library, but you are not
+# obligated to do so.  If you do not wish to do so, delete this
+# exception statement from your version.
+
+# List of available fonts.
+FreeMono/p=/usr/share/fonts/truetype/freefont/FreeMono.ttf
+FreeMono/b=/usr/share/fonts/truetype/freefont/FreeMonoBold.ttf
+FreeMono/bi=/usr/share/fonts/truetype/freefont/FreeMonoBoldOblique.ttf
+FreeMono/i=/usr/share/fonts/truetype/freefont/FreeMonoOblique.ttf
+
+FreeSans/p=/usr/share/fonts/truetype/freefont/FreeSans.ttf
+FreeSans/b=/usr/share/fonts/truetype/freefont/FreeSansBold.ttf
+FreeSans/bi=/usr/share/fonts/truetype/freefont/FreeSansBoldOblique.ttf
+FreeSans/i=/usr/share/fonts/truetype/freefont/FreeSansOblique.ttf
+
+FreeSerif/p=/usr/share/fonts/truetype/freefont/FreeSerif.ttf
+FreeSerif/b=/usr/share/fonts/truetype/freefont/FreeSerifBold.ttf
+FreeSerif/bi=/usr/share/fonts/truetype/freefont/FreeSerifBoldOblique.ttf
+FreeSerif/i=/usr/share/fonts/truetype/freefont/FreeSerifOblique.ttf
+
+# List of aliases.
+Dialog/a=FreeSans
+DialogInput/a=FreeSans
+Serif/a=FreeSerif
+SansSerif/a=FreeSans
+Monospaced/a=FreeMono
diff --git a/libjava/classpath/resource/gnu/java/awt/peer/x/xfonts.properties b/libjava/classpath/resource/gnu/java/awt/peer/x/xfonts.properties
new file mode 100644 (file)
index 0000000..2c8755c
--- /dev/null
@@ -0,0 +1,25 @@
+
+serif.plain=-adobe-times-medium-r-normal--%d-*-*-*-p-*-iso8859-1
+serif.bold=-adobe-times-bold-r-normal--%d-*-*-*-p-*-iso8859-1
+serif.italic=-adobe-times-medium-o-normal--%d-*-*-*-p-*-iso8859-1
+serif.bolditalic=-adobe-times-bold-o-normal--%d-*-*-*-p-*-iso8859-1
+
+sansserif.plain=-adobe-helvetica-medium-r-normal--%d-*-*-*-p-*-iso8859-1
+sansserif.bold=-adobe-helvetica-bold-r-normal--%d-*-*-*-p-*-iso8859-1
+sansserif.italic=-adobe-helvetica-medium-o-normal--%d-*-*-*-p-*-iso8859-1
+sansserif.bolditalic=-adobe-helvetica-bold-o-normal--%d-*-*-*-p-*-iso8859-1
+
+monospaced.plain=-adobe-courier-medium-r-normal--%d-*-*-*-p-*-iso8859-1
+monospaced.bold=-adobe-courier-bold-r-normal--%d-*-*-*-p-*-iso8859-1
+monospaced.italic=-adobe-courier-medium-o-normal--%d-*-*-*-p-*-iso8859-1
+monospaced.bolditalic=-adobe-courier-bold-o-normal--%d-*-*-*-p-*-iso8859-1
+
+dialog.plain=-adobe-helvetica-medium-r-normal--%d-*-*-*-p-*-iso8859-1
+dialog.bold=-adobe-helvetica-bold-r-normal--%d-*-*-*-p-*-iso8859-1
+dialog.italic=-adobe-helvetica-medium-o-normal--%d-*-*-*-p-*-iso8859-1
+dialog.bolditalic=-adobe-helvetica-bold-o-normal--%d-*-*-*-p-*-iso8859-1
+
+dialoginput.plain=-adobe-helvetica-medium-r-normal--%d-*-*-*-p-*-iso8859-1
+dialoginput.bold=-adobe-helvetica-bold-r-normal--%d-*-*-*-p-*-iso8859-1
+dialoginput.italic=-adobe-helvetica-medium-o-normal--%d-*-*-*-p-*-iso8859-1
+dialoginput.bolditalic=-adobe-helvetica-bold-o-normal--%d-*-*-*-p-*-iso8859-1
diff --git a/libjava/classpath/resource/sun/rmi/rmic/messages.properties b/libjava/classpath/resource/sun/rmi/rmic/messages.properties
deleted file mode 100644 (file)
index 4c897fd..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-# messages.properties -- English language messages
-# Copyright (C) 2007 Free Software Foundation, Inc.
-#
-# This file is part of GNU Classpath.
-#
-# GNU Classpath is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# GNU Classpath is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Classpath; see the file COPYING.  If not, write to the
-# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301 USA.
-#
-# Linking this library statically or dynamically with other modules is
-# making a combined work based on this library.  Thus, the terms and
-# conditions of the GNU General Public License cover the whole
-# combination.
-#
-# As a special exception, the copyright holders of this library give you
-# permission to link this library with independent modules to produce an
-# executable, regardless of the license terms of these independent
-# modules, and to copy and distribute the resulting executable under
-# terms of your choice, provided that you also meet, for each linked
-# independent module, the terms and conditions of the license of that
-# module.  An independent module is a module which is not derived from
-# or based on this library.  If you modify this library, you may extend
-# this exception to your version of the library, but you are not
-# obligated to do so.  If you do not wish to do so, delete this
-# exception statement from your version.
-
-Main.InternalError:sun.rmi.rmic: failed to run rmic main method
index 43378401812baf7b44c9f37ec0e3ec32fd61b2e4..9d80ba067d1b24954fe4f4ac6b1e62b4ebbcb865 100644 (file)
@@ -1,2 +1,2 @@
 
-EXTRA_DIST = check_jni_methods.sh generate-locale-list.sh import-cacerts.sh
+EXTRA_DIST = generate-locale-list.sh import-cacerts.sh
index 1a38b53c46957e4e1d6104b7f3df3add3d4b5b1a..c283514357574939c1b1bae1e2b8e97473c8c907 100644 (file)
@@ -38,7 +38,7 @@ host_triplet = @host@
 target_triplet = @target@
 subdir = scripts
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-       $(srcdir)/classpath.spec.in
+       $(srcdir)/check_jni_methods.sh.in $(srcdir)/classpath.spec.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../config/lead-dot.m4 \
@@ -50,6 +50,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -62,7 +64,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/include/config.h
-CONFIG_CLEAN_FILES = classpath.spec
+CONFIG_CLEAN_FILES = classpath.spec check_jni_methods.sh
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -130,7 +132,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -142,19 +143,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -186,15 +176,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -242,10 +229,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -317,7 +302,7 @@ target_os = @target_os@
 target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
 vm_classes = @vm_classes@
-EXTRA_DIST = check_jni_methods.sh generate-locale-list.sh import-cacerts.sh
+EXTRA_DIST = generate-locale-list.sh import-cacerts.sh
 all: all-am
 
 .SUFFIXES:
@@ -352,6 +337,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
        cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 classpath.spec: $(top_builddir)/config.status $(srcdir)/classpath.spec.in
        cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+check_jni_methods.sh: $(top_builddir)/config.status $(srcdir)/check_jni_methods.sh.in
+       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 
 mostlyclean-libtool:
        -rm -f *.lo
diff --git a/libjava/classpath/scripts/check_jni_methods.sh b/libjava/classpath/scripts/check_jni_methods.sh
deleted file mode 100755 (executable)
index 90a7735..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/bin/sh
-
-# Fail if any command fails
-set -e
-
-TMPFILE=/tmp/check-jni-methods.$$.1
-TMPFILE2=/tmp/check-jni-methods.$$.2
-TMPFILE3=/tmp/check-jni-methods.$$.3
-
-# Find all methods defined in the header files generated
-# from the java source files.
-grep -h '^JNIEXPORT .* Java_' include/*.h | \
-        LC_ALL=C sed -e 's,.*JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' | \
-       sort > $TMPFILE
-
-# Find all methods in the JNI C source files.
-find native/jni -name \*.c | \
-       xargs grep -h '^Java_' | \
-        LC_ALL=C sed -e 's,^\(Java_[a-z_A-Z0-9]*\).*$,\1,' > $TMPFILE2
-# Or in the the C++ files. (Note that cpp doesn't follow gnu conventions atm)
-# So we try to match both GNU style and some other style.
-find native/jni -name \*.cpp | \
-       xargs grep -h '^Java_' | \
-        LC_ALL=C sed -e 's,^\(Java_[a-z_A-Z0-9]*\).*$,\1,' >> $TMPFILE2
-find native/jni -name \*.cpp | \
-       xargs egrep -h '^(JNIEXPORT .* JNICALL )?Java_' | \
-       cut -f4 -d\  | \
-        LC_ALL=C sed -e 's,^\JNIEXPORT .* JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' >> $TMPFILE2
-mv $TMPFILE2 $TMPFILE3
-sort $TMPFILE3 | uniq > $TMPFILE2
-rm $TMPFILE3
-
-# Write temporary ignore file.
-cat > $TMPFILE3 << EOF
--Java_gnu_java_awt_peer_gtk_GtkMenuComponentPeer_dispose
--Java_java_lang_VMSystem_arraycopy
--Java_java_lang_VMSystem_identityHashCode
-EOF
-
-# Compare again silently.
-# Use fgrep and direct the output to /dev/null for compatibility with older
-# grep instead of using the non portable -q.
-if diff -U 0 $TMPFILE $TMPFILE2 | grep '^[+-]Java' | \
-    fgrep -v -f $TMPFILE3 > /dev/null;
-then
-  PROBLEM=1
-  echo "Found a problem with the JNI methods declared and implemented."
-  echo "(-) missing in implementation, (+) missing in header files"
-
-  # Compare the found method lists.
-  diff -U 0 $TMPFILE $TMPFILE2  | grep '^[+-]Java' | fgrep -v -f $TMPFILE3
-fi
-
-# Cleanup.
-rm -f $TMPFILE $TMPFILE2 $TMPFILE3
-
-if test "$PROBLEM" = "1" ; then
-  exit 1
-fi
-
-exit 0
diff --git a/libjava/classpath/scripts/check_jni_methods.sh.in b/libjava/classpath/scripts/check_jni_methods.sh.in
new file mode 100644 (file)
index 0000000..2a114d3
--- /dev/null
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+# Fail if any command fails
+set -e
+
+TMPFILE=/tmp/check-jni-methods.$$.1
+TMPFILE2=/tmp/check-jni-methods.$$.2
+TMPFILE3=/tmp/check-jni-methods.$$.3
+
+# Find all methods defined in the header files generated
+# from the java source files.
+grep -h '^JNIEXPORT .* Java_' @abs_top_builddir@/include/*.h @abs_top_srcdir@/include/*.h | \
+        LC_ALL=C sed -e 's,.*JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' | \
+       sort -u > $TMPFILE
+
+# Find all methods in the JNI C source files.
+find @abs_top_srcdir@/native/jni -name \*.c | \
+       xargs grep -h '^Java_' | \
+        LC_ALL=C sed -e 's,^\(Java_[a-z_A-Z0-9]*\).*$,\1,' > $TMPFILE2
+# Or in the the C++ files. (Note that cpp doesn't follow gnu conventions atm)
+# So we try to match both GNU style and some other style.
+find @abs_top_srcdir@/native/jni -name \*.cpp | \
+       xargs grep -h '^Java_' | \
+        LC_ALL=C sed -e 's,^\(Java_[a-z_A-Z0-9]*\).*$,\1,' >> $TMPFILE2
+find @abs_top_srcdir@/native/jni -name \*.cpp | \
+       xargs egrep -h '^(JNIEXPORT .* JNICALL )?Java_' | \
+       cut -f4 -d\  | \
+        LC_ALL=C sed -e 's,^\JNIEXPORT .* JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' >> $TMPFILE2
+mv $TMPFILE2 $TMPFILE3
+sort $TMPFILE3 | uniq > $TMPFILE2
+rm $TMPFILE3
+
+# Write temporary ignore file.
+cat > $TMPFILE3 << EOF
+-Java_gnu_java_awt_peer_gtk_GtkMenuComponentPeer_dispose
+-Java_java_lang_VMSystem_arraycopy
+-Java_java_lang_VMSystem_identityHashCode
+EOF
+
+# Compare again silently.
+# Use fgrep and direct the output to /dev/null for compatibility with older
+# grep instead of using the non portable -q.
+if diff -U 0 $TMPFILE $TMPFILE2 | grep '^[+-]Java' | \
+    fgrep -v -f $TMPFILE3 > /dev/null;
+then
+  PROBLEM=1
+  echo "Found a problem with the JNI methods declared and implemented."
+  echo "(-) missing in implementation, (+) missing in header files"
+
+  # Compare the found method lists.
+  diff -U 0 $TMPFILE $TMPFILE2  | grep '^[+-]Java' | fgrep -v -f $TMPFILE3
+fi
+
+# Cleanup.
+rm -f $TMPFILE $TMPFILE2 $TMPFILE3
+
+if test "$PROBLEM" = "1" ; then
+  exit 1
+fi
+
+exit 0
index 8edb361533c5251c36208cb78eed70d8dac562e5..97556c7105157b74c51e3c5bce51701e9dbca3be 100644 (file)
@@ -38,8 +38,6 @@ exception statement from your version. */
 
 package sun.reflect.annotation;
 
-import gnu.classpath.NotImplementedException;
-
 public class ExceptionProxy
 {
 
index 773157d91ebad0527df8b840a6df5814b46eb897..94228271e93fa6b14ce5cacfd37cbe56c89350da 100755 (executable)
@@ -2,23 +2,12 @@
 
 ## GCJ LOCAL: use srcdir to find core classes.
 GLIBJ_BOOTCLASSPATH='$(top_srcdir)/lib'
-GLIBJ_CLASSPATH=$(srcdir)/asm
+GLIBJ_CLASSPATH=.:$(srcdir)/asm
 ## END GCJ LOCAL
 
 # Setup the compiler to use the GNU Classpath library we just build
-if FOUND_GCJ
-JCOMPILER = $(GCJ) -C -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH):.
-else
-if FOUND_ECJ
-JCOMPILER = $(ECJ) -1.5 -encoding UTF-8 -warn:-deprecation,serial,typeHiding,unchecked,unused,varargsCast -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath .:$(GLIBJ_CLASSPATH)
-else
-if FOUND_JAVAC
-JCOMPILER = $(JAVAC) -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath .:$(GLIBJ_CLASSPATH)
-else
-error dunno how to setup the JCOMPILER and compile
-endif # FOUND_JAVAC
-endif # FOUND_ECJ
-endif # FOUND_GCJ
+## GCJ LOCAL: don't pass $(JAVACFLAGS) -source 1.5 -target 1.5
+JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH)
 
 if CREATE_WRAPPERS
 bin_SCRIPTS =
@@ -136,17 +125,35 @@ TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*/*.java \
        $(srcdir)/external/asm/org/objectweb/asm/util/attrs/*.java \
        $(srcdir)/external/asm/org/objectweb/asm/xml/*.java
 
+# Properties files that must be included in the generated zip file.
+PROPERTY_FILES = $(srcdir)/external/asm/org/objectweb/asm/optimizer/shrink.properties \
+       $(srcdir)/resource/com/sun/tools/javac/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/jar/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/orbd/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/rmic/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/rmid/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/serialver/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/keytool/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/native2ascii/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/appletviewer/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/common/Messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/getopt/Messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/tnameserv/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/jarsigner/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/rmiregistry/messages.properties \
+       $(srcdir)/resource/sun/rmi/rmic/messages.properties
+
+# RMIC templates that must be included in the generated zip file.
+RMIC_TEMPLATES = $(srcdir)/resource/gnu/classpath/tools/rmic/templates/*.jav
+
 # The zip files with classes we want to produce.
 TOOLS_ZIP = tools.zip
 
 # Extra objects that will not exist until configure-time
 BUILT_SOURCES = $(TOOLS_ZIP)
 
-# RMIC templates that must be included in the generated zip file.
-RMIC_TEMPLATES = $(srcdir)/gnu/classpath/tools/rmic/templates/*.jav
-
 # All the files we find "interesting"
-ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES)
+ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) $(PROPERTY_FILES)
 
 # Some architecture independent data to be installed.
 # GCJ LOCAL: do not install this.
@@ -173,7 +180,7 @@ dist-hook:
 # the class files. Always regenerate all .class files and remove them
 # immediately.  And copy the template files we use to the classes dir
 # so they get also included.
-$(TOOLS_ZIP): $(TOOLS_JAVA_FILES)
+$(TOOLS_ZIP): $(ALL_TOOLS_FILES)
 ## GCJ LOCAL: put classes in srcdir
 ##     @rm -rf classes asm
 ##     mkdir classes asm
@@ -200,14 +207,13 @@ if JAVA_MAINTAINER_MODE
          $$AC -g -w -d $(srcdir)/asm @asm.lst
        $(JCOMPILER) -g -w -d $(srcdir)/classes @classes.lst @vm-tools.lst
 ## Copy over tools resource files.
-       @list=`cd $(top_srcdir)/resource && find gnu/classpath/tools \
-              com/sun/javadoc com/sun/tools/doclets com/sun/tools/javac \
-              sun/rmi/rmic -name \*.properties -print`; \
+       @list=`cd $(srcdir)/resource && find gnu/classpath/tools com/sun/tools/javac \
+              sun/rmi/rmic -name \*.properties -print -o -name \*.jav -print`; \
        for p in $$list; do \
          dirname=classes/`dirname $$p`; \
          if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
-         echo "  cp $(top_srcdir)/resource/$$p classes/$$p"; \
-         cp $(top_srcdir)/resource/$$p classes/$$p; \
+         echo "  cp $(srcdir)resource/$$p classes/$$p"; \
+         cp $(srcdir)/resource/$$p classes/$$p; \
        done
 endif
 ## Copy over rmic template files.
@@ -224,12 +230,12 @@ endif
 ## First add classpath tools stuff.
        (cd classes; \
        if test "$(ZIP)" != ""; then $(ZIP) -r ../$(TOOLS_ZIP) .; fi; \
-       if test "$(FASTJAR)" != ""; then $(FASTJAR) cf ../$(TOOLS_ZIP) .; fi; \
+       if test "$(FASTJAR)" != ""; then "$(FASTJAR)" cf ../$(TOOLS_ZIP) .; fi; \
        cd ..)
 ## Now add ASM classes.
        (cd asm; \
        if test "$(ZIP)" != ""; then $(ZIP) -u -r ../$(TOOLS_ZIP) .; fi; \
-       if test "$(FASTJAR)" != ""; then $(FASTJAR) uf ../$(TOOLS_ZIP) .; fi; \
+       if test "$(FASTJAR)" != ""; then "$(FASTJAR)" uf ../$(TOOLS_ZIP) .; fi; \
        cd ..)
        rm -rf asm classes classes.lst asm.lst
 
index 25c56e94c5e24a9c17dc65e1d88474328cd48945..d853d7e8d54433525ed3f68a6199e1e80055d822 100644 (file)
@@ -65,6 +65,8 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
        $(top_srcdir)/../../ltoptions.m4 \
        $(top_srcdir)/../../ltsugar.m4 \
        $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/ac_prog_javac.m4 \
+       $(top_srcdir)/m4/ac_prog_javac_works.m4 \
        $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
        $(top_srcdir)/m4/acinclude.m4 \
        $(top_srcdir)/m4/ax_create_stdint_h.m4 \
@@ -232,7 +234,6 @@ DUMPBIN = @DUMPBIN@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
 ECHO_T = @ECHO_T@
-ECJ = @ECJ@
 ECJ_JAR = @ECJ_JAR@
 EGREP = @EGREP@
 ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
@@ -244,19 +245,8 @@ EXTRA_CFLAGS = @EXTRA_CFLAGS@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
-FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
-FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
-FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
-FOUND_JAVAC_FALSE = @FOUND_JAVAC_FALSE@
-FOUND_JAVAC_TRUE = @FOUND_JAVAC_TRUE@
-FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
-FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
-FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
-FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
 FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
 FREETYPE2_LIBS = @FREETYPE2_LIBS@
-GCJ = @GCJ@
 GCONF_CFLAGS = @GCONF_CFLAGS@
 GCONF_LIBS = @GCONF_LIBS@
 GDK_CFLAGS = @GDK_CFLAGS@
@@ -288,15 +278,12 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 JAVAC = @JAVAC@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
 JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
 JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
 JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
 JAY = @JAY@
 JAY_SKELETON = @JAY_SKELETON@
-JIKES = @JIKES@
-JIKESENCODING = @JIKESENCODING@
-JIKESWARNINGS = @JIKESWARNINGS@
-KJC = @KJC@
 LD = @LD@
 LDFLAGS = @LDFLAGS@
 LIBDEBUG = @LIBDEBUG@
@@ -344,10 +331,8 @@ SET_MAKE = @SET_MAKE@
 SHELL = @SHELL@
 STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
 STRIP = @STRIP@
-USER_CLASSLIB = @USER_CLASSLIB@
+TOOLSDIR = @TOOLSDIR@
 USER_JAVAH = @USER_JAVAH@
-USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
-USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -420,12 +405,10 @@ target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
 vm_classes = @vm_classes@
 GLIBJ_BOOTCLASSPATH = '$(top_srcdir)/lib'
-GLIBJ_CLASSPATH = $(srcdir)/asm
-@FOUND_ECJ_FALSE@@FOUND_GCJ_FALSE@@FOUND_JAVAC_TRUE@JCOMPILER = $(JAVAC) -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath .:$(GLIBJ_CLASSPATH)
-@FOUND_ECJ_TRUE@@FOUND_GCJ_FALSE@JCOMPILER = $(ECJ) -1.5 -encoding UTF-8 -warn:-deprecation,serial,typeHiding,unchecked,unused,varargsCast -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath .:$(GLIBJ_CLASSPATH)
+GLIBJ_CLASSPATH = .:$(srcdir)/asm
 
 # Setup the compiler to use the GNU Classpath library we just build
-@FOUND_GCJ_TRUE@JCOMPILER = $(GCJ) -C -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH):.
+JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH)
 @CREATE_WRAPPERS_TRUE@bin_SCRIPTS = 
 @CREATE_WRAPPERS_TRUE@AM_CPPFLAGS = -Wall \
 @CREATE_WRAPPERS_TRUE@ -I$(top_srcdir)/include \
@@ -522,17 +505,36 @@ TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*/*.java \
        $(srcdir)/external/asm/org/objectweb/asm/xml/*.java
 
 
+# Properties files that must be included in the generated zip file.
+PROPERTY_FILES = $(srcdir)/external/asm/org/objectweb/asm/optimizer/shrink.properties \
+       $(srcdir)/resource/com/sun/tools/javac/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/jar/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/orbd/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/rmic/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/rmid/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/serialver/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/keytool/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/native2ascii/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/appletviewer/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/common/Messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/getopt/Messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/tnameserv/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/jarsigner/messages.properties \
+       $(srcdir)/resource/gnu/classpath/tools/rmiregistry/messages.properties \
+       $(srcdir)/resource/sun/rmi/rmic/messages.properties
+
+
+# RMIC templates that must be included in the generated zip file.
+RMIC_TEMPLATES = $(srcdir)/resource/gnu/classpath/tools/rmic/templates/*.jav
+
 # The zip files with classes we want to produce.
 TOOLS_ZIP = tools.zip
 
 # Extra objects that will not exist until configure-time
 BUILT_SOURCES = $(TOOLS_ZIP)
 
-# RMIC templates that must be included in the generated zip file.
-RMIC_TEMPLATES = $(srcdir)/gnu/classpath/tools/rmic/templates/*.jav
-
 # All the files we find "interesting"
-ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES)
+ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) $(PROPERTY_FILES)
 
 # Some architecture independent data to be installed.
 # GCJ LOCAL: do not install this.
@@ -1094,7 +1096,6 @@ uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
        pdf pdf-am ps ps-am tags uninstall uninstall-am \
        uninstall-binPROGRAMS uninstall-binSCRIPTS uninstall-info-am
 
-@FOUND_ECJ_FALSE@@FOUND_GCJ_FALSE@@FOUND_JAVAC_FALSE@error dunno how to setup the JCOMPILER and compile
 @CREATE_WRAPPERS_FALSE@gappletviewer: gappletviewer.in
 @CREATE_WRAPPERS_FALSE@gjarsigner: gjarsigner.in
 @CREATE_WRAPPERS_FALSE@gkeytool: gkeytool.in
@@ -1126,7 +1127,7 @@ dist-hook:
 # the class files. Always regenerate all .class files and remove them
 # immediately.  And copy the template files we use to the classes dir
 # so they get also included.
-$(TOOLS_ZIP): $(TOOLS_JAVA_FILES)
+$(TOOLS_ZIP): $(ALL_TOOLS_FILES)
        find $(srcdir)/external/asm -name '*.java' -print > asm.lst
        find $(srcdir)/gnu/classpath/tools \
             $(srcdir)/com/sun/javadoc \
@@ -1147,14 +1148,13 @@ $(TOOLS_ZIP): $(TOOLS_JAVA_FILES)
 @JAVA_MAINTAINER_MODE_TRUE@    AC=`echo $(JCOMPILER) | sed -e 's/UTF-8/ISO-8859-1/g'`; \
 @JAVA_MAINTAINER_MODE_TRUE@      $$AC -g -w -d $(srcdir)/asm @asm.lst
 @JAVA_MAINTAINER_MODE_TRUE@    $(JCOMPILER) -g -w -d $(srcdir)/classes @classes.lst @vm-tools.lst
-@JAVA_MAINTAINER_MODE_TRUE@    @list=`cd $(top_srcdir)/resource && find gnu/classpath/tools \
-@JAVA_MAINTAINER_MODE_TRUE@           com/sun/javadoc com/sun/tools/doclets com/sun/tools/javac \
-@JAVA_MAINTAINER_MODE_TRUE@           sun/rmi/rmic -name \*.properties -print`; \
+@JAVA_MAINTAINER_MODE_TRUE@    @list=`cd $(srcdir)/resource && find gnu/classpath/tools com/sun/tools/javac \
+@JAVA_MAINTAINER_MODE_TRUE@           sun/rmi/rmic -name \*.properties -print -o -name \*.jav -print`; \
 @JAVA_MAINTAINER_MODE_TRUE@    for p in $$list; do \
 @JAVA_MAINTAINER_MODE_TRUE@      dirname=classes/`dirname $$p`; \
 @JAVA_MAINTAINER_MODE_TRUE@      if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
-@JAVA_MAINTAINER_MODE_TRUE@      echo "  cp $(top_srcdir)/resource/$$p classes/$$p"; \
-@JAVA_MAINTAINER_MODE_TRUE@      cp $(top_srcdir)/resource/$$p classes/$$p; \
+@JAVA_MAINTAINER_MODE_TRUE@      echo "  cp $(srcdir)resource/$$p classes/$$p"; \
+@JAVA_MAINTAINER_MODE_TRUE@      cp $(srcdir)/resource/$$p classes/$$p; \
 @JAVA_MAINTAINER_MODE_TRUE@    done
        @list=`cd $(srcdir) && find gnu/classpath/tools -name \*.jav -print`; \
        for p in $$list; do \
@@ -1167,11 +1167,11 @@ $(TOOLS_ZIP): $(TOOLS_JAVA_FILES)
        cp -pR $(srcdir)/classes .
        (cd classes; \
        if test "$(ZIP)" != ""; then $(ZIP) -r ../$(TOOLS_ZIP) .; fi; \
-       if test "$(FASTJAR)" != ""; then $(FASTJAR) cf ../$(TOOLS_ZIP) .; fi; \
+       if test "$(FASTJAR)" != ""; then "$(FASTJAR)" cf ../$(TOOLS_ZIP) .; fi; \
        cd ..)
        (cd asm; \
        if test "$(ZIP)" != ""; then $(ZIP) -u -r ../$(TOOLS_ZIP) .; fi; \
-       if test "$(FASTJAR)" != ""; then $(FASTJAR) uf ../$(TOOLS_ZIP) .; fi; \
+       if test "$(FASTJAR)" != ""; then "$(FASTJAR)" uf ../$(TOOLS_ZIP) .; fi; \
        cd ..)
        rm -rf asm classes classes.lst asm.lst
 
index ac08078c38eb8e0056f6070599faf7b3124e7f6c..c3b8636aad791ee2ddb2b9c20fb66d2e8b4958cb 100644 (file)
Binary files a/libjava/classpath/tools/classes/com/sun/tools/javac/Main.class and b/libjava/classpath/tools/classes/com/sun/tools/javac/Main.class differ
index 5b11bc7b56453fcd2b010de2bd1adb378552fd77..be365d4064c685d7082ee4feb686c494d3d520c4 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$1.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$1.class differ
index 9f7dbedc538b0db923ec2e94981544d9be479594..f57650d487ab48ca76cfe26bb711ff3a1b363ae3 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$10.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$10.class differ
index 4fa23ee85709ec4f0a3c7c606a404ac624968c96..ad05cfd5eb4f42f2098783ddc32f09a3084bb177 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$2.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$2.class differ
index ca776ddc5f5a5031f02332e8352c945d18cfa684..d1d8c3ca41c713f94c5c9261db71275949d13aea 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$3.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$3.class differ
index 6ac29ced2ba84300f3e8b33501003c545efb5afd..68b0a10085bc340734b676a6ce12077d824ab3e5 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$4.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$4.class differ
index 6883585acc7ff5f4ad8b864af9a34e91df85b786..b49c112dcd9a7b037fdc16b6d35c96e5e7c3e365 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$5.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$5.class differ
index d45c2e8540834593c406506f39f5af55bc27f326..f2b1412d157f2420c9c67178f9f27a1d09acfadd 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$6.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$6.class differ
index e8e6794a99d2f72245dfe7120a4d28454846c332..ba6c44cc999930c7d679f1d48329eee49f5e388d 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$7.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$7.class differ
index 801b866c643509b4c1e9db7ab791b617e5063ac1..e06bc000c80b37b410abb073846718226a0d5787 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$8.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$8.class differ
index 1dcc16eb254eee6ab91d6a83fee20a27b33a9472..0edf26bff0f344f5c5f5dcd6eb23ed1ddd29481c 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$9.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$9.class differ
index 86e363a136b8bf6f4e8a70e5cae5eb44de209a73..b357b78514eaa96cdcf4f9b6a6eacb91778deba8 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main.class differ
index 3bf54aa891b55600c89ca0a5afd1102d1fae7fe6..7e71885c8d77458d0dad06ad31ee3e3df15a63a6 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletWindow.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/PluginAppletWindow.class differ
index cbf44dda47d36d4252f4e775037999f9e3907d08..de7dd49e1f9bbd4b3fc28df9fd3af27b3e84e7db 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$1.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$1.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$2.class
new file mode 100644 (file)
index 0000000..edb80fb
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$2.class differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$AtFileArgumentCallback.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$AtFileArgumentCallback.class
new file mode 100644 (file)
index 0000000..96677cc
Binary files /dev/null and b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser$AtFileArgumentCallback.class differ
index 59bbacaa97928c335bcf8eb1808af06db33d86fe..36bc25fb198cd352379c6e4d758c89e89cc5cf23 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class differ
index 9cc6b62186ecd298f14e24947ac89055f63a4506..1f06b6f12c29174ba9221ef8628994babee473af 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/OptionException.class differ
index 8a03266f885a9d052667061a462bd93205955e9d..eed126309678db31babdfe8add4cc45abede4915 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$1.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$1.class differ
index 8ed8f9884c93d63746ce0e1049a19497fcd2f552..932b5301f22da986bbdb319acc0085967baf66d4 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$2.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$2.class differ
index 07e4ee7209be4183c6f12f064783539826896313..0d27a4fabf2ba86bd4e3c36dbfdad51ceed316a5 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$3.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$3.class differ
index e131d685b1d122f1b7f12464ca9420152f3db2a9..5f86431c3890788627e458b47ed083b247320426 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$4.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$4.class differ
index dff8052dd563cda064b57aad23cde4ffc1c6c894..6d4aa7619ac026401702b63b506beef33bf55d18 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$5.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$5.class differ
index 5e1c36ef2e1057f6e8f8fb8d299b8f768baab99e..b05c00bd16c67e166b44d24c967e54e6cdd2cba8 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$6.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$6.class differ
index 7dff19b788ea1db9546b78a20aeb9a13ae58eb19..e50787652f45c5ed8c40b41fcf7650ff5678e340 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$7.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$7.class differ
index 10524df4e8105a71800c9868f476668db0dcdb50..c8eb12d073f598069a3c78f5bb19fbfc05c2395d 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main.class differ
index 08bcc36cc044aa003ae3ca8d62c1e264a69cad00..6cbf96959f52e6b7808d3f4d6cbd0ffe1a88d498 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniIncludePrinter.class differ
index b6cf38c9660d5e971f08f931c530419f5f7f14f0..88522107388e0dc1344891498f89f3ccf33898f0 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$1.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$1.class differ
index 1733e76eee3e7f85ec6281a5ae518e85ba56de83..901cc7b173ea113d18ad91f22e845232ef01aff4 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$2.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$2.class differ
index cba7266dd9fb581c3e65565c11214e3f4b64a239..1b602fae91f582b004bc8e595f91fe9622f67d13 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$3.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$3.class differ
index d1cdece3a84a09e5bfd4f68bacb1ee606634b896..8edc8b425e56d061d62294b7674cd861cd26c1bf 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$4.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$4.class differ
index 59015b15bdb8839e0a09b85c0f452692e34aa3a5..5450d28f6cdb5e2936e40d0060953dc87c0c0676 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$5.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$5.class differ
index 589e70c174878df3de696a5ad59c41d6054328c5..d56362361eb7bdccd6aa97db70cf284eb074647e 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$6.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$6.class differ
index 8a94096ddc1cda3b6c84d8c7ffd89f89acd94e60..2359cc86a99263934f4875b850d06746425b3538 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$7.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$7.class differ
index 082d58fccaf90d9690baa5027629210d5d2105dd..2309169eb19f8174bbb447eb4079a93bfb0783ff 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$8.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$8.class differ
index d64dbd116e6f1ce916391c63ce7ac4b86fc87d0c..b66360628193f4430e3b646aeb23b8fa31bd83e6 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$9.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain$9.class differ
index ded3b3accf45e2a20476ac85d0cef532b07e6924..edd30ed0c18baace217f61ce75cd5c19613b0547 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/GcjhMain.class differ
index 690b2b932dc38d9f586db6cef8acc036abd7fc79..ad9a2877f9d198d717b2dc9af5b9b63deb3803df 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniIncludePrinter.class differ
index 19631e5bdb244fdbc7e1b7110413b43c5f8d38da..0795aca8736fe9a7de2200b4fe69df48fe7e4bb9 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class differ
index 9a4ad43f8f8477f34ffe54f8c586465573c65581..40c1ad48304efd2d417c70e67e40709fb9d95596 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$2.class differ
index a26f5f5aa60293b6068c27f1656315d3bf54a1b7..fd5942fbf988c85c61e3268815e0103ecd75800c 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$3.class differ
index 5d130e31467b62f773b91bb2a00bf46f3a500647..327ac9d481cc1851e1ecd7ca978d7fc87e4ed514 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$4.class differ
index 039f675ba564b68043ef167f7233f7077890a4dc..cfdb3b5610fb370eee21e446af6ddd5e431ab12d 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$5.class differ
index 199aea14fcedafc9d801005ba6693b48467bb217..8408ea56735193520c81b5f4e486de6fd84dc681 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$6.class differ
index b0314c189d54fe23d5d9feed816f73d4e3a22869..c1342179835268016a1610085c95227dbd0b246b 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$7.class differ
index 38f142595ba96ad7aada3eac116541f643475c38..19f5673882ea8335092bcb7c6f9df44b54cafba0 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$8.class differ
index 9bff18b47684c360c7baf41c1dd16836ed74c266..57cff5dc2e571540f88cd0850e30dada926710db 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class differ
index 655ed007654ffa6ce926f4e8bebf59f2912b9f29..f6e8bd16f180aebf303a18af0debc244a17253f3 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main.class differ
index f85d91fb7cf9818e8d2997c3ffbc04314bf780dc..fdfa2fb5f17b5dcf6c07ff273dfba09282809444 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class differ
index 5a9ea71e1fde581f13668dabac86b53a64318ee2..1f0d64330d29d584025eef8d35e549d20b910f48 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$1.class differ
index 05c3c2f622f38015d86ce2fe5b3491bd2ea73ba0..1dfc79e6f18eb923a54a5675890fbb054749e939 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$2.class differ
index f3b55226a10552b9691e53db9dc5755c8207b4d8..89d3cb2f0780fdfce96bb13c642e647aacaa2b94 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$3.class differ
index 33d52480fde8679cdb8afa559d2ba52870bbd8c3..546555baa1a9b086917cfe6c1abf4194b77d7acf 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$4.class differ
index 0c0215310d5039869580437fb6c7b66c0d2cf9e4..a2e7eeeb39ab14b5a0aaecc5f7c7d887b836fbfe 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class differ
index 4fa26d976ee6b1387b4fac5c843a29a7706ba7ee..f7c264b2d8619f013c08b923a674c6fd45b07c00 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main.class differ
index f79e88cf04913f77fb8ec550e78fe6296f679fcf..8877bc5af20a449828a416ac8f4717af7da8af99 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class differ
index 61588f51a1c586152abd73db7fc709ce1c89817d..8d1e58f5acc2f8036ca0992bfc74622a22225e6a 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class differ
index 038ec53d87ac88cc9ebca8035e21a3a9cfc2122a..6212b2957079f3bc45d5384c69a5c9ac45719918 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.class differ
index 21be0abf04ffc56c519c71c8a69d1342801837d4..6f39b37fce004cd1eb064637a929c8584ba0a858 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$10.class differ
index 40071d8966bff16bdf1d02a84760dc05364e8703..f542246f024aa1c9b4a892ac7fccf57095d1e942 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$11.class differ
index b00042c688a4e7d481e16d384bbac932c3aa928e..a558b70a9ec8728b128f7eb0843e75cffb279714 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$12.class differ
index db0a068cae0768895442a206617e136360407a62..6f5febd0be827f035d7b5fbc7c05f940739ac205 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$13.class differ
index 58c55b926a26a2ee96b15e2a373dea255c6e20ad..5406d014b5c5c1e526ae0b19f795ac0eecaee306 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$14.class differ
index 186a954479b6d37bb845248ddf46340ba491c64b..77d54397c5a35b55ed62f55a1b1232241d7354b3 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$15.class differ
index 43a8000db802cb95364cf2babbffe6bbf33cb816..9dd21c218de7a03eb6d0b7b8160f8725abbf6fda 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$16.class differ
index 1f13243b64ae6716d153c35474996c2ba36ee518..20029a8ced5df462b1cb8bfeb93c8d913bca2a42 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$17.class differ
index 297717bdbf021f88325b5548a501ae816dbd74f6..73ab89a6d765c327dc40e1a35fc91751e777a786 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$18.class differ
index 84e2e4a6f2d338e457c7ff57a8f4a00c7f0d6973..879fb4cafed7585e7951934ff83f8dff8d0333de 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$2.class differ
index 7ddc8df178165614a30ea77a027fca9a29dda43d..709014cb4074691d870e77716a865619b21fc921 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$3.class differ
index dfa67eb9e31e537371fc8edc0f29c42431254ad1..75f47e8315c20a0715e9e268212197e24ab76902 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$4.class differ
index b4837a430f49d178cd3f48b1ed7e1d85624926be..643588f1580987dbc433f240590f380e55b19c06 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$5.class differ
index 82258e7c3002842f304d0ed573e2eeb38dbdcc21..71ec94148a24a84c909c72014f932f3de52cf4ee 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$6.class differ
index 9c116ee86659cea1a747ba87359e24b761d26287..04de1d5cf5eca7c0d7b61cd2a276937dcdb70a51 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.class differ
index 0c89c4a1c1cd72aeeea39c580b181006ded6533e..9650d16eee6c73bc290ba45dad63210d99e28aa1 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.class differ
index b962cb2667fb988858f308ae9069494bdbebc7ae..2aa7d318e7be4655ae672fe7345f7abad4c724d2 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$9.class differ
index 6185bdd85aa3004aacb10bb22d26153b7271bba0..f715c1786d930ff525ca894cbb57f680030acb64 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class differ
index 90aa0ddea41677f5705d339c65b3b53bd5e82243..6f55542506fcb5a749383e67ce5b7ca13ecbc2a2 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$1.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$1.class differ
index 6b2b3c9e5a8327ed1d85a82ee5436c59f8c6e05c..dcbfbf3085266a7162a815dfd022c181fccdbcb8 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$2.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$2.class differ
index 8344aebd00b7d54a8604a2a7bf4ecb92a6e8e0c9..5e4d6717f05fd41182bfb9d8b830124d8865905d 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$3.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$3.class differ
index 9567ff25128b4b11cf2991a7f8a9f507b6169251..67898ec4cabf5d81b73d797c7d6c6202c2faade3 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$4.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$4.class differ
index 1197723e1b56102262663484db6a9e28700e614d..87fa82b78847e146645f49acf1802c3828fe5926 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$5.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$5.class differ
index 8be88b04747796be5fb85dbe4f5a42a200adaf3f..24cefbce14de8ef0c82b57cd32f4c6bae5e64bb2 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$6.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$6.class differ
index a828ac70881fbb5d879ec997287260c52b95cf57..5e51a69f054c378ed038c3441fd6409b53c45d47 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class differ
index 761b86d1885b972c15c0dec4e53b70fb4fc78bea..269602e54b6fb1bfeef1effe1b1b5de3d191e5a0 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$1.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$1.class differ
index baaa3f54e66ad85006ac3000b539b0e0b7f8b15e..11e61e6b036110e769b5c5ce165eb8d027b7c94a 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$2.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main$2.class differ
index 88c563252605fc84fe6396bc83e3def4041c5326..f09eb77db6666ee6bcb539b3302079df16e348a3 100644 (file)
Binary files a/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class and b/libjava/classpath/tools/classes/gnu/classpath/tools/tnameserv/Main.class differ
index f67a2d7286f8e557889d42e965f9d1a04c47fef3..5c5bc2f25ee075dd88600314125f9d0798aec023 100644 (file)
@@ -139,8 +139,11 @@ public class Main
           new PrintWriter(System.err),
           Boolean.FALSE
         });
+    String[] runArgs = new String[args.length + 1];
+    runArgs[0] = "-1.5";
+    System.arraycopy(args, 0, runArgs, 1, args.length);
     return ((Boolean) ecjMethod.invoke(ecjInstance, new Object[]
-        { args })).booleanValue() ? 0 : -1;
+        { runArgs })).booleanValue() ? 0 : -1;
   }
 
   public static int compile(String[] args) throws Exception
diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/shrink.properties b/libjava/classpath/tools/external/asm/org/objectweb/asm/optimizer/shrink.properties
new file mode 100644 (file)
index 0000000..868780b
--- /dev/null
@@ -0,0 +1,225 @@
+# class mappings
+
+#org/objectweb/asm/Edge=org/objectweb/asm/a
+#org/objectweb/asm/Item=org/objectweb/asm/b
+#org/objectweb/asm/FieldWriter=org/objectweb/asm/c
+#org/objectweb/asm/MethodWriter=org/objectweb/asm/d
+#org/objectweb/asm/AnnotationWriter=org/objectweb/asm/e
+
+# field mappings
+
+org/objectweb/asm/AnnotationWriter.cw=a
+org/objectweb/asm/AnnotationWriter.size=b
+org/objectweb/asm/AnnotationWriter.named=c
+org/objectweb/asm/AnnotationWriter.bv=d
+org/objectweb/asm/AnnotationWriter.parent=e
+org/objectweb/asm/AnnotationWriter.offset=f
+org/objectweb/asm/AnnotationWriter.next=g
+org/objectweb/asm/AnnotationWriter.prev=h
+
+org/objectweb/asm/Attribute.next=a
+org/objectweb/asm/Attribute.value=b
+
+org/objectweb/asm/ByteVector.data=a
+org/objectweb/asm/ByteVector.length=b
+
+org/objectweb/asm/ClassReader.items=a
+org/objectweb/asm/ClassReader.strings=c
+org/objectweb/asm/ClassReader.maxStringLength=d
+#org/objectweb/asm/ClassReader.header=e
+
+org/objectweb/asm/ClassWriter.TYPE=a
+org/objectweb/asm/ClassWriter.version=b
+org/objectweb/asm/ClassWriter.index=c
+org/objectweb/asm/ClassWriter.pool=d
+org/objectweb/asm/ClassWriter.items=e
+org/objectweb/asm/ClassWriter.threshold=f
+org/objectweb/asm/ClassWriter.key=g
+org/objectweb/asm/ClassWriter.key2=h
+org/objectweb/asm/ClassWriter.key3=i
+org/objectweb/asm/ClassWriter.access=j
+org/objectweb/asm/ClassWriter.name=k
+org/objectweb/asm/ClassWriter.signature=l
+org/objectweb/asm/ClassWriter.superName=m
+org/objectweb/asm/ClassWriter.interfaceCount=n
+org/objectweb/asm/ClassWriter.interfaces=o
+org/objectweb/asm/ClassWriter.sourceFile=p
+org/objectweb/asm/ClassWriter.sourceDebug=q
+org/objectweb/asm/ClassWriter.enclosingMethodOwner=r
+org/objectweb/asm/ClassWriter.enclosingMethod=s
+org/objectweb/asm/ClassWriter.anns=t
+org/objectweb/asm/ClassWriter.ianns=u
+org/objectweb/asm/ClassWriter.attrs=v
+org/objectweb/asm/ClassWriter.innerClassesCount=w
+org/objectweb/asm/ClassWriter.innerClasses=x
+org/objectweb/asm/ClassWriter.firstField=y
+org/objectweb/asm/ClassWriter.lastField=z
+org/objectweb/asm/ClassWriter.firstMethod=A
+org/objectweb/asm/ClassWriter.lastMethod=B
+org/objectweb/asm/ClassWriter.computeMaxs=C
+org/objectweb/asm/ClassWriter.cr=D
+
+org/objectweb/asm/Edge.stackSize=a
+org/objectweb/asm/Edge.successor=b
+org/objectweb/asm/Edge.next=c
+
+org/objectweb/asm/Handler.start=a
+org/objectweb/asm/Handler.end=b
+org/objectweb/asm/Handler.handler=c
+org/objectweb/asm/Handler.desc=d
+org/objectweb/asm/Handler.type=e
+org/objectweb/asm/Handler.next=f
+
+org/objectweb/asm/FieldWriter.next=a
+org/objectweb/asm/FieldWriter.cw=b
+org/objectweb/asm/FieldWriter.access=c
+org/objectweb/asm/FieldWriter.name=d
+org/objectweb/asm/FieldWriter.desc=e
+org/objectweb/asm/FieldWriter.signature=f
+org/objectweb/asm/FieldWriter.value=g
+org/objectweb/asm/FieldWriter.anns=h
+org/objectweb/asm/FieldWriter.ianns=i
+org/objectweb/asm/FieldWriter.attrs=j
+
+org/objectweb/asm/Item.index=a
+org/objectweb/asm/Item.type=b
+org/objectweb/asm/Item.intVal=c
+org/objectweb/asm/Item.longVal=d
+org/objectweb/asm/Item.floatVal=e
+org/objectweb/asm/Item.doubleVal=f
+org/objectweb/asm/Item.strVal1=g
+org/objectweb/asm/Item.strVal2=h
+org/objectweb/asm/Item.strVal3=i
+org/objectweb/asm/Item.hashCode=j
+org/objectweb/asm/Item.next=k
+
+org/objectweb/asm/Label.resolved=a
+org/objectweb/asm/Label.position=b
+org/objectweb/asm/Label.resized=c
+org/objectweb/asm/Label.referenceCount=d
+org/objectweb/asm/Label.srcAndRefPositions=e
+org/objectweb/asm/Label.beginStackSize=f
+org/objectweb/asm/Label.maxStackSize=g
+org/objectweb/asm/Label.successors=h
+org/objectweb/asm/Label.next=i
+org/objectweb/asm/Label.pushed=j
+org/objectweb/asm/Label.line=k
+
+org/objectweb/asm/MethodWriter.next=a
+org/objectweb/asm/MethodWriter.cw=b
+org/objectweb/asm/MethodWriter.access=c
+org/objectweb/asm/MethodWriter.name=d
+org/objectweb/asm/MethodWriter.desc=e
+org/objectweb/asm/MethodWriter.descriptor=f
+org/objectweb/asm/MethodWriter.signature=g
+org/objectweb/asm/MethodWriter.exceptionCount=h
+org/objectweb/asm/MethodWriter.exceptions=i
+org/objectweb/asm/MethodWriter.annd=j
+org/objectweb/asm/MethodWriter.anns=k
+org/objectweb/asm/MethodWriter.ianns=l
+org/objectweb/asm/MethodWriter.panns=m
+org/objectweb/asm/MethodWriter.ipanns=n
+org/objectweb/asm/MethodWriter.attrs=o
+org/objectweb/asm/MethodWriter.code=p
+org/objectweb/asm/MethodWriter.maxStack=q
+org/objectweb/asm/MethodWriter.maxLocals=r
+org/objectweb/asm/MethodWriter.catchCount=s
+org/objectweb/asm/MethodWriter.catchTable=t
+org/objectweb/asm/MethodWriter.localVarCount=u
+org/objectweb/asm/MethodWriter.localVar=v
+org/objectweb/asm/MethodWriter.localVarTypeCount=w
+org/objectweb/asm/MethodWriter.localVarType=x
+org/objectweb/asm/MethodWriter.lineNumberCount=y
+org/objectweb/asm/MethodWriter.lineNumber=z
+org/objectweb/asm/MethodWriter.cattrs=A
+org/objectweb/asm/MethodWriter.resize=B
+org/objectweb/asm/MethodWriter.computeMaxs=C
+org/objectweb/asm/MethodWriter.stackSize=D
+org/objectweb/asm/MethodWriter.maxStackSize=E
+org/objectweb/asm/MethodWriter.currentBlock=F
+org/objectweb/asm/MethodWriter.blockStack=G
+org/objectweb/asm/MethodWriter.SIZE=H
+org/objectweb/asm/MethodWriter.classReaderOffset=I
+org/objectweb/asm/MethodWriter.classReaderLength=J
+org/objectweb/asm/MethodWriter.lastHandler=K
+
+org/objectweb/asm/Type.sort=a
+org/objectweb/asm/Type.buf=b
+org/objectweb/asm/Type.off=c
+org/objectweb/asm/Type.len=d
+
+org/objectweb/asm/signature/SignatureReader.signature=a
+
+org/objectweb/asm/signature/SignatureWriter.buf=a
+org/objectweb/asm/signature/SignatureWriter.hasFormals=b
+org/objectweb/asm/signature/SignatureWriter.hasParameters=c
+org/objectweb/asm/signature/SignatureWriter.argumentStack=d
+
+# method mappings
+
+org/objectweb/asm/AnnotationWriter.getSize()I=a
+org/objectweb/asm/AnnotationWriter.put([Lorg/objectweb/asm/AnnotationWriter;Lorg/objectweb/asm/ByteVector;)V=a
+org/objectweb/asm/AnnotationWriter.put(Lorg/objectweb/asm/ByteVector;)V=a
+
+org/objectweb/asm/Attribute.getCount()I=a
+org/objectweb/asm/Attribute.getSize(Lorg/objectweb/asm/ClassWriter;[BIII)I=a
+org/objectweb/asm/Attribute.put(Lorg/objectweb/asm/ClassWriter;[BIIILorg/objectweb/asm/ByteVector;)V=a
+
+org/objectweb/asm/ByteVector.enlarge(I)V=a
+org/objectweb/asm/ByteVector.put11(II)Lorg/objectweb/asm/ByteVector;=a
+org/objectweb/asm/ByteVector.put12(II)Lorg/objectweb/asm/ByteVector;=b
+
+org/objectweb/asm/ClassReader.copyPool(Lorg/objectweb/asm/ClassWriter;)V=a
+org/objectweb/asm/ClassReader.readAnnotationValue(I[CLjava/lang/String;Lorg/objectweb/asm/AnnotationVisitor;)I=a
+org/objectweb/asm/ClassReader.readAnnotationValues(I[CLorg/objectweb/asm/AnnotationVisitor;)I=a
+org/objectweb/asm/ClassReader.readAttribute([Lorg/objectweb/asm/Attribute;Ljava/lang/String;II[CI[Lorg/objectweb/asm/Label;)Lorg/objectweb/asm/Attribute;=a
+org/objectweb/asm/ClassReader.readClass(Ljava/io/InputStream;)[B=a
+org/objectweb/asm/ClassReader.readParameterAnnotations(I[CZLorg/objectweb/asm/MethodVisitor;)V=a
+org/objectweb/asm/ClassReader.readUTF(II[C)Ljava/lang/String;=a
+
+org/objectweb/asm/ClassWriter.get(Lorg/objectweb/asm/Item;)Lorg/objectweb/asm/Item;=a
+org/objectweb/asm/ClassWriter.newClassItem(Ljava/lang/String;)Lorg/objectweb/asm/Item;=a
+org/objectweb/asm/ClassWriter.newConstItem(Ljava/lang/Object;)Lorg/objectweb/asm/Item;=a
+org/objectweb/asm/ClassWriter.newDouble(D)Lorg/objectweb/asm/Item;=a
+org/objectweb/asm/ClassWriter.newFloat(F)Lorg/objectweb/asm/Item;=a
+org/objectweb/asm/ClassWriter.newInteger(I)Lorg/objectweb/asm/Item;=a
+org/objectweb/asm/ClassWriter.newLong(J)Lorg/objectweb/asm/Item;=a
+org/objectweb/asm/ClassWriter.newMethodItem(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Lorg/objectweb/asm/Item;=a
+org/objectweb/asm/ClassWriter.newString(Ljava/lang/String;)Lorg/objectweb/asm/Item;=b
+org/objectweb/asm/ClassWriter.put122(III)V=a
+org/objectweb/asm/ClassWriter.put(Lorg/objectweb/asm/Item;)V=b
+
+org/objectweb/asm/FieldWriter.getSize()I=a
+org/objectweb/asm/FieldWriter.put(Lorg/objectweb/asm/ByteVector;)V=a
+
+org/objectweb/asm/Item.isEqualTo(Lorg/objectweb/asm/Item;)Z=a
+org/objectweb/asm/Item.set(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V=a
+org/objectweb/asm/Item.set(D)V=a
+org/objectweb/asm/Item.set(F)V=a
+org/objectweb/asm/Item.set(I)V=a
+org/objectweb/asm/Item.set(J)V=a
+
+org/objectweb/asm/Label.addReference(II)V=a
+org/objectweb/asm/Label.put(Lorg/objectweb/asm/MethodWriter;Lorg/objectweb/asm/ByteVector;IZ)V=a
+org/objectweb/asm/Label.resolve(Lorg/objectweb/asm/MethodWriter;I[B)Z=a
+
+org/objectweb/asm/MethodWriter.addSuccessor(ILorg/objectweb/asm/Label;)V=a
+org/objectweb/asm/MethodWriter.getArgumentsAndReturnSizes(Ljava/lang/String;)I=a
+org/objectweb/asm/MethodWriter.getNewOffset([I[III)I=a
+org/objectweb/asm/MethodWriter.getSize()I=a
+org/objectweb/asm/MethodWriter.put(Lorg/objectweb/asm/ByteVector;)V=a
+org/objectweb/asm/MethodWriter.readInt([BI)I=a
+org/objectweb/asm/MethodWriter.readShort([BI)S=b
+org/objectweb/asm/MethodWriter.readUnsignedShort([BI)I=c
+org/objectweb/asm/MethodWriter.resizeInstructions([I[II)[I=a
+org/objectweb/asm/MethodWriter.writeShort([BII)V=a
+org/objectweb/asm/MethodWriter.getNewOffset([I[ILorg/objectweb/asm/Label;)V=a
+
+org/objectweb/asm/Type.getType([CI)Lorg/objectweb/asm/Type;=a
+org/objectweb/asm/Type.getDescriptor(Ljava/lang/StringBuffer;)V=a
+org/objectweb/asm/Type.getDescriptor(Ljava/lang/StringBuffer;Ljava/lang/Class;)V=a
+
+org/objectweb/asm/signature/SignatureReader.parseType(Ljava/lang/String;ILorg/objectweb/asm/signature/SignatureVisitor;)I=a
+
+org/objectweb/asm/signature/SignatureWriter.endFormals()V=a
+org/objectweb/asm/signature/SignatureWriter.endArguments()V=b
index c41ac1d7c86fb54d1cfeb939957fc8c78c446232..24b305a224fa51af2327d8cd52af4ad7221e592f 100644 (file)
@@ -113,7 +113,7 @@ class CommonAppletStub
    */
   public String getParameter(String name)
   {
-    return (String) tag.getParameter(name.toLowerCase());
+    return tag.getParameter(name.toLowerCase());
   }
 
   /**
index a10b889bc97755c5bcef3e7344e3adc4694561fd..4eff8f53ebbfbee22a60a00fd422b73d6dc54209 100644 (file)
@@ -55,7 +55,6 @@ import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
-import java.util.ResourceBundle;
 
 
 class Main
index 283d547b80127d2168adb756dfc324b654d22824..bcf57808c01fb5392780e4c1eed231d8ffc07a52 100644 (file)
@@ -61,8 +61,6 @@ import java.net.URL;
 import java.util.ArrayList;
 import java.util.HashMap;
 
-import javax.swing.JOptionPane;
-
 
 class PluginAppletWindow
     extends EmbeddedWindow
@@ -350,7 +348,7 @@ class PluginAppletWindow
    * Called when the hierarchy of this component changes. Use
    * <code>getChangeFlags()</code> on the event to see what exactly changed.
    *
-   * @param e the event describing the change
+   * @param event the event describing the change
    */
   public void hierarchyChanged(HierarchyEvent event)
   {
index 3a0a442825d072c12e9f700a1fe2888541dcaf38..b92dc50f5eb13cbc7f2e713390dec2d70f910dc6 100644 (file)
@@ -512,7 +512,7 @@ class StandaloneAppletWindow
    * Called when the hierarchy of this component changes. Use
    * <code>getChangeFlags()</code> on the event to see what exactly changed.
    *
-   * @param e the event describing the change
+   * @param event the event describing the change
    */
   public void hierarchyChanged(HierarchyEvent event)
   {
index 56bb1bb87c541064cc77f13057874b3f31c1b573..c1e5cac524bd5098241de1cba74430204fb30750 100644 (file)
@@ -292,7 +292,7 @@ public class TagParser
   /**
    * Parses the archive string and returns a list.
    * 
-   * @param the list of archives (comma-separated) in a String.
+   * @param arcs the list of archives (comma-separated) in a String.
    */
   static ArrayList parseArchives(String arcs, AppletTag t)
   {
index e44b9011cfdb2dd76ad1aec9bbc45e090353478b..b2e508729209706a43be1ca916c5931971b7ee1b 100644 (file)
@@ -38,9 +38,16 @@ exception statement from your version. */
 
 package gnu.classpath.tools.common;
 
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.Reader;
 import java.text.MessageFormat;
+import java.util.ArrayList;
 
 import gnu.classpath.Configuration;
+import gnu.classpath.tools.getopt.FileArgumentCallback;
 import gnu.classpath.tools.getopt.Option;
 import gnu.classpath.tools.getopt.OptionException;
 import gnu.classpath.tools.getopt.Parser;
@@ -84,4 +91,149 @@ public class ClasspathToolParser
                }
              });
   }
+
+  public void parse(String[] inArgs, FileArgumentCallback files,
+                   boolean handleFileLists)
+  {
+    FileArgumentCallback cb;
+    
+    if (handleFileLists)
+      cb = new AtFileArgumentCallback(files);
+    else
+      cb = files;
+    
+    parse(inArgs, cb);
+  }
+
+  public String[] parse(String[] inArgs, boolean handleFileLists)
+  {
+    final ArrayList<String> fileResult = new ArrayList<String>();
+
+    final FileArgumentCallback cb = new FileArgumentCallback()
+      {
+       public void notifyFile(String fileArgument)
+       {
+         fileResult.add(fileArgument);
+       }
+      };
+    
+    if (handleFileLists)
+      parse(inArgs, new AtFileArgumentCallback(cb));
+    else
+      parse(inArgs, cb);
+    
+    return fileResult.toArray(new String[fileResult.size()]);
+  }
+
+
+  /** 
+   * Simple function that takes the given {@link Reader}, treats it like
+   * a textfile and reads all the whitespace separated entries from it
+   * and adds them to the @{link FileArgumentCallback} instance.
+   *
+   * @param reader the reader to read from.
+   * @param cb the callback to post the filenames to.
+   * @throws OptionException if an error occurs reading the list.
+   */
+  public void parseFileList(Reader reader, FileArgumentCallback cb)
+       throws OptionException
+  {
+    BufferedReader breader = new BufferedReader(reader);
+    String line = null;
+
+    try
+      {
+        while ((line = breader.readLine()) != null)
+          parseLine(line, cb);
+          
+        reader.close();
+      }
+    catch (IOException ioe)
+      {
+        throw new OptionException("I/O error while reading a file list", ioe);
+      }
+      
+  }
+  
+  /** 
+   * Parses whitespace separated file entries.
+   *
+   * Note: This is not coping with whitespace in files or quoting.
+   *
+   * @param line the line of the file to parse.
+   * @param cb the callback to pass the parsed file to.
+   * @throws IOException if an I/O error occurs.
+   * @throws OptionException if an error occurs in the callback.
+   */
+  private void parseLine(String line, FileArgumentCallback cb)
+    throws IOException, OptionException
+  {
+    final int length = line.length();
+    int start = 0;
+    int end = 0;
+
+               // While not reached end of line ...
+    while (start < length)
+      {
+       // Search for first non-whitespace character for the start of a word.
+        while (Character.isWhitespace(line.codePointAt(start)))
+          {
+            start++;
+           
+            if (start == length)
+              return;
+          }
+       
+        end = start + 1;
+       
+       // Search for first whitespace character for the end of a word.
+        while (end < length && !Character.isWhitespace(line.codePointAt(end)))
+          end++;
+       
+        cb.notifyFile(line.substring(start, end));
+       
+        start = end + 1;
+      }
+  }
+
+  /** 
+   * Implementation of {@link FileArgumentCallback} that handles
+   * file arguments in {@link #notifyFile} starting with a <code>@</code>
+   * through {@link ClasspathToolParser#parseFileList}.
+   */
+  class AtFileArgumentCallback extends FileArgumentCallback
+  {
+    FileArgumentCallback cb;
+    
+    AtFileArgumentCallback(FileArgumentCallback cb)
+    {
+      this.cb = cb;
+    }
+
+    @Override
+    public void notifyFile(String fileArgument)
+      throws OptionException
+    {
+      if (fileArgument.codePointAt(0) == '@')
+       {
+         FileReader fr = null;
+         
+         try
+           {
+             fr = new FileReader(fileArgument.substring(1));
+           }
+         catch (FileNotFoundException fnfe)
+           {
+             throw new OptionException("File not found: " + fileArgument.substring(1),
+                                       fnfe);
+           }
+         
+         ClasspathToolParser.this.parseFileList(fr, cb);
+       }
+      else
+       cb.notifyFile(fileArgument);
+    }
+    
+  }
+
 }
index a09d716f4246cee6d3d9a35bebd56b447d6af4dc..2d7f77a55011950d229c78836275b77ac05430d7 100644 (file)
@@ -49,4 +49,10 @@ public class OptionException
   {
     super(message);
   }
+
+  public OptionException(String message, Throwable cause)
+  {
+    super(message, cause);
+  }
+
 }
index d52028fefce59c0c93ebdae5a773bcb027a68950..e5f1a3fb1e9369924501de03c37134572e1b2b3d 100644 (file)
@@ -172,9 +172,9 @@ public class Main
     }
   }
 
-  private Parser initializeParser()
+  private ClasspathToolParser initializeParser()
   {
-    Parser p = new JarParser("jar"); //$NON-NLS-1$
+    ClasspathToolParser p = new JarParser("jar"); //$NON-NLS-1$
     p.setHeader(Messages.getString("Main.Usage")); //$NON-NLS-1$
 
     OptionGroup grp = new OptionGroup(Messages.getString("Main.OpMode")); //$NON-NLS-1$
@@ -265,11 +265,11 @@ public class Main
   private void run(String[] args)
       throws InstantiationException, IllegalAccessException, IOException
   {
-    Parser p = initializeParser();
+    ClasspathToolParser p = initializeParser();
     // Special hack to emulate old tar-style commands.
     if (args.length > 0 && args[0].charAt(0) != '-')
       args[0] = '-' + args[0];
-    p.parse(args, new HandleFile());
+    p.parse(args, new HandleFile(), true);
     if (readNamesFromStdin)
       readNames();
     Action t = (Action) operationMode.newInstance();
index 445f902da48aba632dd88264a4c8f5bfe97550b4..8861541a58ec08746f6e8dcf49ae82cbe9ee3253 100644 (file)
@@ -63,14 +63,14 @@ public class CniIncludePrinter
     return new PrintStream(fos);
   }
 
-  public void printClass(File filename, ClassWrapper klass) throws IOException
+  public void printClass(File file, ClassWrapper klass) throws IOException
   {
     // Never write Object or Class. This is a hack, maybe
     // the user would like to see what they look like...
     if (klass.name.equals("java/lang/Object")
         || klass.name.equals("java/lang/Class"))
       return;
-    PrintStream ps = getPrintStream(filename + ".h", klass);
+    PrintStream ps = getPrintStream(file + ".h", klass);
     if (ps == null)
       return;
     ps.println();
index 7faed1691d2ea049a7ffd599629eda4adb8b21c8..15bcec2630bfd39bda2a3c4a8a0f2eda6b90cee8 100644 (file)
 
 package gnu.classpath.tools.javah;
 
+import gnu.classpath.tools.common.ClasspathToolParser;
+
 import gnu.classpath.tools.getopt.Option;
 import gnu.classpath.tools.getopt.OptionException;
 import gnu.classpath.tools.getopt.OptionGroup;
-import gnu.classpath.tools.getopt.Parser;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -60,9 +61,9 @@ public class GcjhMain extends Main
     return "gcjh";
   }
 
-  protected Parser getParser()
+  protected ClasspathToolParser getParser()
   {
-    Parser result = super.getParser();
+    ClasspathToolParser result = super.getParser();
 
     result.setHeader("usage: gcjh [OPTION]... CLASS...");
 
index 6c1a8e166fb2bffe3600dc533e7a7ee50cf592c2..ba44a571133aa7925431f4bbefa51b0daa384c6c 100644 (file)
@@ -107,15 +107,23 @@ public class JniIncludePrinter
     return new JniPrintStream(classpath, fos, klass);
   }
 
-  public void printClass(File filename, ClassWrapper klass) throws IOException
+  public void printClass(File file, ClassWrapper klass) throws IOException
   {
     // Note that we ignore the filename here.
     String xname = JniHelper.mangle(klass.name);
-    JniPrintStream out 
-      = (JniPrintStream) getPrintStream(klass.name.replace('/', '_') + ".h", 
-                                       klass);
+
+    // mangle the filename a bit
+    String filename = klass.name;
+
+    filename = filename.replace('/', '_');
+    filename = filename.replace('$', '_');
+    filename = filename + ".h";
+
+    JniPrintStream out = (JniPrintStream) getPrintStream(filename, klass);
+
     if (out == null)
       return;
+
     out.println();
     out.print("#ifndef __");
     out.print(xname);
index 29c96cf5bba60b4cc46742c8cccbbc1da7711086..bfca4444645c850a7c33d255ecfb9bd6148b496a 100644 (file)
@@ -188,7 +188,7 @@ public class Main
     return "javah";
   }
 
-  protected Parser getParser()
+  protected ClasspathToolParser getParser()
   {
     ClasspathToolParser result = new ClasspathToolParser(getName(), true);
     result.setHeader("usage: javah [OPTIONS] CLASS...");
@@ -324,11 +324,11 @@ public class Main
     while (i.hasNext())
       {
        Map.Entry e = (Map.Entry) i.next();
-       File filename = (File) e.getKey();
+       File file = (File) e.getKey();
         ClassWrapper klass = (ClassWrapper) e.getValue();
         if (verbose)
-          System.err.println("[writing " + klass + " as " + filename + "]");
-        printer.printClass(filename, klass);
+          System.err.println("[writing " + klass + " as " + file + "]");
+        printer.printClass(file, klass);
       }
   }
 
@@ -339,8 +339,8 @@ public class Main
 
   protected void run(String[] args) throws IOException
   {
-    Parser p = getParser();
-    String[] classNames = p.parse(args);
+    ClasspathToolParser p = getParser();
+    String[] classNames = p.parse(args, true);
     postParse(classNames);
     loader = classpath.getLoader();
 
index 0667befc6c5e3b074a7ed5a9cbc165d1afb884e9..6bf3193fc3177ff1f53348a54c1ac0cd0df69fd1 100644 (file)
@@ -101,7 +101,7 @@ public class Native2ASCII
         encoding = argument;
       }
     });
-    result.add(new Option("reverse", Messages.getString("Native2ASCII.ReversedHelp")) //$NON-NLS-1$ //$NON-NLS-2$
+    result.add(new Option("reverse", Messages.getString("Native2ASCII.ReverseHelp")) //$NON-NLS-1$ //$NON-NLS-2$
     {
       public void parsed(String argument) throws OptionException
       {
index afb30ad7224b4d3c430d37e23517bd2ff549b53e..15f3612cc9a6ab1ecbeb7aedaba64a92b059bc6e 100644 (file)
@@ -41,10 +41,8 @@ import gnu.CORBA.OrbFunctional;
 import gnu.CORBA.IOR;
 import gnu.CORBA.NamingService.Ext;
 import gnu.classpath.tools.common.ClasspathToolParser;
-import gnu.classpath.tools.getopt.FileArgumentCallback;
 import gnu.classpath.tools.getopt.Option;
 import gnu.classpath.tools.getopt.OptionException;
-import gnu.classpath.tools.getopt.OptionGroup;
 import gnu.classpath.tools.getopt.Parser;
 
 import org.omg.CosNaming.NamingContextExt;
index 9c50efa8ff9b32b86db475572912dc42c15bf070..e853a5a1b5605d46b4b89521325da9d27833ce1a 100644 (file)
@@ -22,15 +22,11 @@ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 package gnu.classpath.tools.rmic;
 
 import gnu.java.rmi.server.RMIHashes;
-import java.io.ByteArrayOutputStream;
-import java.io.DataOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
-import java.io.FileWriter;
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
-import java.io.PrintWriter;
 import java.lang.reflect.Method;
 import java.net.URL;
 import java.net.URLClassLoader;
@@ -46,13 +42,10 @@ import java.rmi.server.RemoteRef;
 import java.rmi.server.RemoteStub;
 import java.rmi.server.Skeleton;
 import java.rmi.server.SkeletonMismatchException;
-import java.security.MessageDigest;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Set;
 import java.util.StringTokenizer;
 import org.objectweb.asm.ClassVisitor;
 import org.objectweb.asm.ClassWriter;
index 12d1fa20edadd93d48349770e294068ac5e68263..28f4d1931449a0197a8ffc7c78a1d15b2b325663 100644 (file)
@@ -22,16 +22,10 @@ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 package gnu.classpath.tools.rmic;
 
 import gnu.classpath.tools.common.ClasspathToolParser;
-import gnu.classpath.tools.getopt.FileArgumentCallback;
 import gnu.classpath.tools.getopt.Option;
 import gnu.classpath.tools.getopt.OptionException;
-import gnu.classpath.tools.getopt.OptionGroup;
 import gnu.classpath.tools.getopt.Parser;
 
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
 import java.util.ArrayList;
 
 /**
diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/ImplTie.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/ImplTie.jav
deleted file mode 100644 (file)
index aff606b..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-package #package;
-
-#imports
-import java.rmi.Remote;
-import javax.rmi.PortableRemoteObject;
-import javax.rmi.CORBA.Tie;
-
-import org.omg.CORBA.BAD_OPERATION;
-import org.omg.CORBA.ORB;
-import org.omg.CORBA.SystemException;
-import org.omg.CORBA.portable.OutputStream;
-import org.omg.CORBA.portable.ResponseHandler;
-import org.omg.CORBA.portable.UnknownException;
-import org.omg.PortableServer.Servant;
-
-import org.omg.CORBA_2_3.portable.ObjectImpl;
-import org.omg.CORBA_2_3.portable.InputStream;
-
-// This Tie type is obsolete. Use the POA - based tie (key -poa).
-
-/**
- * This class accepts remote calls to the served GIOP object and delegates them
- * to the enclosed implementing class. Being derived from the ObjectImpl,
- * it directly implements the GIOP Object.
- *
- * It is normally generated with grmic -impl
- */
-public class _#nameImpl_Tie extends ObjectImpl implements Tie
-{
-  /**
-   * All decoded remote calls are forwarded to this target.
-   */
-  #implName target;
-  
-  /**
-   * The array of repository ids, supported by this GIOP Object
-   */ 
-  private static final String[] type_ids =
-    { 
-#idList
-    };
-      
-  /**
-   * Get an array of all interfaces (repository ids),
-   * supported by this Object.
-   *
-   * @return the array of Ids.
-   */
-  public String[] _ids() 
-  { 
-    return type_ids;
-  }  
-
-  /**
-   * Set the invocation target, where all received calls are finally
-   * forwarded.
-   *
-   * @param a_target the forwarding target
-   *
-   * @throws ClassCastException if the target is not an instance of
-   * #implName
-   */ 
-  public void setTarget(Remote a_target)
-  {
-    this.target = (#implName) a_target;
-  }
-
-  /**
-   * Get the invocation target, where all received calls are finally
-   * forwarded.
-   *
-   * @return the target, an instance of
-   * #implName
-   */ 
-  public Remote getTarget()
-  {
-    return target;
-  }
-  
-  /**
-   * Return the actual GIOP object that would handle this request.
-   * 
-   * @return <code>this</code>, always.
-   */
-  public org.omg.CORBA.Object thisObject()
-  {
-    return this;
-  }
-  
-  /**
-   * Deactivates this object, disconnecting it from the orb.
-   */
-  public void deactivate()
-  {
-     _orb().disconnect(this);
-     _set_delegate(null);
-     target = null;
-  }
-
-  /**
-   * Get the {@link ORB} where this {@link Servant} is connected.
-   * 
-   * @return the ORB
-   */
-  public ORB orb()
-  {
-    return _orb();
-  }
-
-  /**
-   * Connect this servant to the given ORB. 
-   */
-  public void orb(ORB orb)
-  {
-    orb.connect(this);
-  }
-
-/**
- * This method is invoked by ORB in response to the remote call. It redirects
- * the call to one of the methods in the target.
- * 
- * @param method the name of the method to call.
- * @param parameter_stream the input stream, from where the parameters must be
- * read. 
- * @param reply the response hander, providing methods to return the result.
- * 
- * @return the output stream, created by the response handler
- * 
- * @throws SystemException if one occurs during method invocation.
- */  
-  public OutputStream _invoke(String method, 
-    org.omg.CORBA.portable.InputStream parameter_stream,
-    ResponseHandler reply)
-  {
-    try
-      {
-        InputStream in =(InputStream) parameter_stream;
-          
-#tie_methods          
-          
-       throw new BAD_OPERATION("No such method: '"+method+"'");
-      }
-    catch (SystemException ex)
-      {
-        throw ex;
-      }
-    catch (Throwable ex)
-      {
-        throw new UnknownException(ex);
-      }
-  }
-}
\ No newline at end of file
diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub.jav
deleted file mode 100644 (file)
index 371e12d..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-package #package;
-
-#imports
-import java.rmi.UnexpectedException;
-
-import javax.rmi.CORBA.Stub;
-import javax.rmi.CORBA.Util;
-
-import org.omg.CORBA.SystemException;
-import org.omg.CORBA.portable.ApplicationException;
-import org.omg.CORBA.portable.InputStream;
-import org.omg.CORBA.portable.RemarshalException;
-
-import org.omg.CORBA_2_3.portable.OutputStream;
-
-/**
- * This class delegates its method calls to the remote GIOP object.
- * It is normally generated with grmic.
- */
-public class _#name_Stub extends Stub 
-  implements #interfaces
-{
-  /** 
-   * Use serialVersionUID for interoperability. 
-   */
-  private static final long serialVersionUID = 1;
-  
-  /**
-   * The array of repository ids, supported by this GIOP Object
-   */ 
-  private static final String[] type_ids =
-    { 
-#idList
-    };
-
-  /**
-   * Return the array of repository ids, supported by this GIOP Object.   
-   *
-   * @return the array of Ids.
-   */ 
-  public String[] _ids()
-  {
-    return type_ids;
-  }
-  
-#stub_methods    
-}
\ No newline at end of file
diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/StubMethod.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/StubMethod.jav
deleted file mode 100644 (file)
index 17636de..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-  /** @inheritDoc */
-  public #return_type #method_name(#argument_list) #throws
-  {
-    try
-      {
-        InputStream in = null;
-        try
-          {
-             OutputStream out = 
-               (OutputStream) _request("#giop_method_name", true);
-#argument_write                
-             in = _invoke(out);
-             #read_return
-          }
-        catch (ApplicationException ex)
-          {
-             in = ex.getInputStream();
-             throw new UnexpectedException(in.read_string());
-          }
-        catch (RemarshalException ex)
-          {
-             return #method_name(#argument_names);
-          }
-        finally
-          {
-             _releaseReply(in);
-          }
-        }
-    catch (SystemException ex)
-      {
-        throw Util.mapSystemException(ex);
-      }
-   }
diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav
deleted file mode 100644 (file)
index 0125a02..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-  /** @inheritDoc */
-  public #return_type #method_name(#argument_list) #throws
-  {
-    try
-      {
-        InputStream in = null;
-        try
-          {
-             OutputStream out = 
-               (OutputStream) _request("#giop_method_name", true);
-#argument_write                
-             in = _invoke(out);
-          }
-        catch (ApplicationException ex)
-          {
-             in = ex.getInputStream();
-             throw new UnexpectedException(in.read_string());
-          }
-        catch (RemarshalException ex)
-          {
-             #method_name(#argument_names);
-          }
-        finally
-          {
-             _releaseReply(in);
-          }
-        }
-    catch (SystemException ex)
-      {
-        throw Util.mapSystemException(ex);
-      }
-   }
diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12.jav
deleted file mode 100644 (file)
index 1c55a05..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-package #package;
-
-#imports
-import java.lang.reflect.Method;
-import java.rmi.server.RemoteRef;
-import java.rmi.server.RemoteStub;
-import java.rmi.UnexpectedException;
-
-/**
- * This class delegates its method calls to the remote RMI object, referenced
- * by {@link RemoteRef}. 
- *
- * It is normally generated with rmic.
- */
-public final class #name_Stub 
-    extends RemoteStub
-    implements #interfaces
-{
-    /**
-     * Use serialVersionUID for interoperability 
-     */
-    private static final long serialVersionUID = 2;
-    
-    /**
-     * The explaining message for {@ling UnexpectedException}.
-     */
-    private static final String exception_message = 
-      "undeclared checked exception";
-
-     /* All remote methods, invoked by this stub: */
-#stub_method_declarations
-    #zeroSizeObjecArray
-    static
-      {
-        #zeroSizeClassArray      
-        try 
-          {
-#stub_method_initializations
-          }
-        catch (NoSuchMethodException nex)
-          {
-             NoSuchMethodError err = new NoSuchMethodError(
-               "#name_Stub class initialization failed");
-             err.initCause(nex);
-             throw err;
-          }  
-      }
-    
-    /**
-     * Create the instance for _#name_Stub that forwards method calls to the
-     * remote object.
-     *
-     * @para the reference to the remote object.
-     */
-    public #name_Stub(RemoteRef reference) 
-    {
-       super(reference);
-    }    
-    
-    /* Methods */    
-#stub_methods    
-}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12Method.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12Method.jav
deleted file mode 100644 (file)
index 9aaf8f5..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-  /** @inheritDoc */
-  public #return_type #method_name(#argument_list) #throws
-  {
-    try
-      {
-        Object result =  ref.invoke(this, met_#method_name,
-                   #object_arg_list,
-                   #method_hash);
-        #return_statement           
-      }
-    catch (RuntimeException e)
-      {
-        throw e;
-      }
-    catch (RemoteException e)
-      {
-        throw e;
-      }
-    catch (Exception e)
-      {
-        UnexpectedException uex = new UnexpectedException(exception_message);
-        uex.detail = e;
-        throw uex;
-      }
-  }
-   
\ No newline at end of file
diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav
deleted file mode 100644 (file)
index 860a93c..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-  /** @inheritDoc */
-  public void #method_name(#argument_list) #throws
-  {
-    try
-      {
-        ref.invoke(this, met_#method_name,
-          #object_arg_list,
-          #method_hash);
-      }
-    catch (RuntimeException e)
-      {
-        throw e;
-      }
-    catch (RemoteException e)
-      {
-        throw e;
-      }
-    catch (Exception e)
-      {
-        UnexpectedException uex = new UnexpectedException(exception_message);
-        uex.detail = e;
-        throw uex;
-      }
-  }
-   
\ No newline at end of file
diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Tie.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/Tie.jav
deleted file mode 100644 (file)
index 797ae14..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-package #package;
-
-#imports
-import java.rmi.Remote;
-import javax.rmi.PortableRemoteObject;
-import javax.rmi.CORBA.Tie;
-
-import org.omg.CORBA.BAD_OPERATION;
-import org.omg.CORBA.ORB;
-import org.omg.CORBA.SystemException;
-import org.omg.CORBA.portable.OutputStream;
-import org.omg.CORBA.portable.ResponseHandler;
-import org.omg.CORBA.portable.UnknownException;
-import org.omg.PortableServer.Servant;
-import org.omg.PortableServer.POA;
-import org.omg.PortableServer.POAPackage.WrongPolicy;
-import org.omg.PortableServer.POAPackage.ObjectNotActive;
-import org.omg.PortableServer.POAPackage.ServantNotActive;
-
-import org.omg.CORBA_2_3.portable.InputStream;
-
-/**
- * This class accepts remote calls to the served GIOP object and delegates them
- * to the enclosed implementing class. Being servant, it must be connected to
- * the ORB Poa. 
- * It is normally generated with grmic -poa
- */
-public class _#nameImpl_Tie extends Servant implements Tie
-{
-  /**
-   * All decoded remote calls are forwarded to this target.
-   */
-  #implName target;
-  
-  /**
-   * The array of repository ids, supported by this GIOP Object
-   */ 
-  private static final String[] type_ids =
-    { 
-#idList
-    };
-      
-  /**
-   * Get an array of all interfaces, supported by this 
-   * {@link Servant}.
-   * 
-   * @param poa unused
-   * @param objectId unused
-   * 
-   * @return the array of Ids.
-   */
-  public String[] _all_interfaces(POA poa,
-    byte[] objectId
-  )
-  {
-    return type_ids;
-  }
-  
-  
-  /**
-   * Set the invocation target, where all received calls are finally
-   * forwarded.
-   *
-   * @param a_target the forwarding target
-   *
-   * @throws ClassCastException if the target is not an instance of
-   * #implName
-   */ 
-  public void setTarget(Remote a_target)
-  {
-    this.target = (#implName) a_target;
-  }
-
-  /**
-   * Get the invocation target, where all received calls are finally
-   * forwarded.
-   *
-   * @return the target, an instance of
-   * #implName
-   */ 
-  public Remote getTarget()
-  {
-    return target;
-  }
-  
-  /**
-   * Return the actual GIOP object that would handle this request.
-   * 
-   * @return the GIOP object.
-   */
-  public org.omg.CORBA.Object thisObject()
-  {
-    return _this_object();
-  }
-  
-  /**
-   * Deactivate this {@link Servant}. The WrongPolicy, ObjectNotActive
-   * and ServantNotActive exceptions, if thrown during deactivation, are
-   * catched and silently ignored.
-   */
-  public void deactivate()
-  {
-    try
-      {
-        _poa().deactivate_object(_poa().servant_to_id(this));
-      }
-    catch (WrongPolicy exception)
-      {
-      }
-    catch (ObjectNotActive exception)
-      {
-      }
-    catch (ServantNotActive exception)
-      {
-      }
-  }
-
-  /**
-   * Get the {@link ORB} where this {@link Servant} is connected.
-   * 
-   * @return the ORB
-   */
-  public ORB orb()
-  {
-    return _orb();
-  }
-
-  /**
-   * Connect this servant to the given ORB. It is recommended to connect
-   * servant to the ORBs root or other POA rather than using this method.
-   */
-  public void orb(ORB orb)
-  {
-    try
-      {
-        ((org.omg.CORBA_2_3.ORB) orb).set_delegate(this);
-      }
-    catch (ClassCastException e)
-      {
-        throw new org.omg.CORBA.BAD_PARAM(
-          "POA Servant requires an instance of org.omg.CORBA_2_3.ORB"
-        );
-      }
-  }
-
-/**
- * This method is invoked by ORB in response to the remote call. It redirects
- * the call to one of the methods in the target.
- * 
- * @param method the name of the method to call.
- * @param parameter_stream the input stream, from where the parameters must be
- * read. 
- * @param reply the response hander, providing methods to return the result.
- * 
- * @return the output stream, created by the response handler
- * 
- * @throws SystemException if one occurs during method invocation.
- */  
-  public OutputStream _invoke(String method, 
-    org.omg.CORBA.portable.InputStream parameter_stream,
-    ResponseHandler reply
-  ) throws SystemException
-  {
-    try
-      {
-        InputStream in =(InputStream) parameter_stream;
-        switch (method.charAt(#hashCharPos))
-          {
-#tie_methods
-            default: break;
-          }
-          
-       throw new BAD_OPERATION("No such method: '"+method+"'");
-      }
-    catch (SystemException ex)
-      {
-        throw ex;
-      }
-    catch (Throwable ex)
-      {
-        throw new UnknownException(ex);
-      }
-  }
-}
\ No newline at end of file
diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/TieMethod.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/TieMethod.jav
deleted file mode 100644 (file)
index 493f000..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-          #hashCodeLabel
-            // #method_name
-            if (method.equals("#giop_method_name"))
-              {
-#read_and_define_args
-                OutputStream out = reply.createReply();
-                #return_type result = 
-                  target.#method_name(#argument_names);
-                #write_result                  
-                return out;
-              }
diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav b/libjava/classpath/tools/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav
deleted file mode 100644 (file)
index 3db17da..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-          #hashCodeLabel
-            // #method_name
-            if (method.equals("#giop_method_name"))
-              {
-#read_and_define_args
-                OutputStream out = reply.createReply();
-                target.#method_name(#argument_names);
-                return out;
-              }
index d601b13f178df2fc48715c0aaacf87aa91fa75e9..4ee079c1e5c12ebb073f313a68d08cc458b823f8 100644 (file)
@@ -39,7 +39,6 @@ package gnu.classpath.tools.rmid;
 
 import gnu.classpath.tools.rmid.ActivationSystemImpl;
 import gnu.classpath.tools.common.ClasspathToolParser;
-import gnu.classpath.tools.getopt.FileArgumentCallback;
 import gnu.classpath.tools.getopt.Option;
 import gnu.classpath.tools.getopt.OptionException;
 import gnu.classpath.tools.getopt.OptionGroup;
index 460b781853211cf19f561c5dccbea1688de74a78..78a8f98c4f0c934ce6df397d68ea68b84841072b 100644 (file)
@@ -39,10 +39,8 @@ package gnu.classpath.tools.tnameserv;
 
 import gnu.CORBA.NamingService.NamingServiceTransient;
 import gnu.classpath.tools.common.ClasspathToolParser;
-import gnu.classpath.tools.getopt.FileArgumentCallback;
 import gnu.classpath.tools.getopt.Option;
 import gnu.classpath.tools.getopt.OptionException;
-import gnu.classpath.tools.getopt.OptionGroup;
 import gnu.classpath.tools.getopt.Parser;
 
 /**
diff --git a/libjava/classpath/tools/resource/com/sun/tools/javac/messages.properties b/libjava/classpath/tools/resource/com/sun/tools/javac/messages.properties
new file mode 100644 (file)
index 0000000..995e871
--- /dev/null
@@ -0,0 +1,42 @@
+# messages.properties -- English language messages
+# Copyright (C) 2007 Free Software Foundation, Inc.
+#
+# This file is part of GNU Classpath.
+#
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA.
+#
+# Linking this library statically or dynamically with other modules is
+# making a combined work based on this library.  Thus, the terms and
+# conditions of the GNU General Public License cover the whole
+# combination.
+#
+# As a special exception, the copyright holders of this library give you
+# permission to link this library with independent modules to produce an
+# executable, regardless of the license terms of these independent
+# modules, and to copy and distribute the resulting executable under
+# terms of your choice, provided that you also meet, for each linked
+# independent module, the terms and conditions of the license of that
+# module.  An independent module is a module which is not derived from
+# or based on this library.  If you modify this library, you may extend
+# this exception to your version of the library, but you are not
+# obligated to do so.  If you do not wish to do so, delete this
+# exception statement from your version.
+
+Main.FailedToRead:failed to read ecj.jar (reconfigure with --with-ecj-jar): {0}
+Main.MalformedURL:malformed URL for ecj.jar: {0}
+Main.FailedToLoad:failed to load {0} from ecj.jar: {1}
+Main.FailedConstructor:failed to find ecj constructor
+Main.FailedCompile:failed to find ecj compile method
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/appletviewer/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/appletviewer/messages.properties
new file mode 100644 (file)
index 0000000..c826afa
--- /dev/null
@@ -0,0 +1,102 @@
+# messages.properties -- English language messages
+# Copyright (C) 2004, 2006  Free Software Foundation, Inc.
+#
+# This file is part of GNU Classpath.
+#
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA.
+#
+# Linking this library statically or dynamically with other modules is
+# making a combined work based on this library.  Thus, the terms and
+# conditions of the GNU General Public License cover the whole
+# combination.
+#
+# As a special exception, the copyright holders of this library give you
+# permission to link this library with independent modules to produce an
+# executable, regardless of the license terms of these independent
+# modules, and to copy and distribute the resulting executable under
+# terms of your choice, provided that you also meet, for each linked
+# independent module, the terms and conditions of the license of that
+# module.  An independent module is a module which is not derived from
+# or based on this library.  If you modify this library, you may extend
+# this exception to your version of the library, but you are not
+# obligated to do so.  If you do not wish to do so, delete this
+# exception statement from your version.
+
+Main.ErrorApplet=An error occurred while loading this applet.
+Main.Usage=Usage: appletviewer [OPTION] -code CODE | URL...
+Main.AppletTagOptions=Applet tag options
+Main.CodeDescription=specify the code attribute
+Main.CodeArgument=CODE
+Main.CodebaseDescription=specify the codebase attribute
+Main.CodebaseArgument=CODEBASE
+Main.ArchiveDescription=specify the archive attribute
+Main.ArchiveArgument=ARCHIVE
+Main.WidthDescription=specify the width attribute
+Main.WidthArgument=WIDTH
+Main.HeightDescription=specify the height attribute
+Main.HeightArgument=HEIGHT
+Main.ParamDescription=specify the parameter arguments
+Main.ParamArgument=NAME,VALUE
+Main.PluginOption=Plugin option
+Main.PluginDescription=enable plugin mode
+Main.PluginArgument=INPUT,OUTPUT
+Main.DebuggingOption=Debugging option
+Main.VerboseDescription=enable verbose mode
+Main.CompatibilityOptions=Compatibility options
+Main.DebugDescription=enable debugging mode (not implemented)
+Main.EncodingDescription=specify the HTML character encoding
+Main.EncodingArgument=CHARSET
+Main.SecurityWarning=WARNING: CURRENTLY GAPPLETVIEWER RUNS WITH NO\
+ SECURITY MANAGER.\n\
+THIS MEANS THAT APPLETS YOU LOAD CAN DO ANYTHING A JAVA APPLICATION\n\
+THAT YOU DOWNLOAD AND RUN CAN DO.  BE *VERY* CAREFUL WHICH APPLETS YOU RUN.\n\
+DO NOT USE GAPPLETVIEWER ON YOUR SYSTEM IF YOUR SYSTEM STORES IMPORTANT\
+ DATA.\n\
+THIS DATA CAN BE DESTROYED OR STOLEN IF YOU LOAD A MALICIOUS APPLET.
+Main.ContinuationPrompt=[press 'c' or 'C' to continue or anything else to quit]
+Main.NoInputFiles=appletviewer: no input files
+Main.RawArguments=Raw arguments:
+
+PluginAppletViewer.AppletViewerWrote=PIPE: applet viewer wrote:
+PluginAppletViewer.AppletViewerRead=PIPE: applet viewer read:
+PluginAppletViewer.AppletViewerExiting=appletviewer: exiting plugin applet\
+ viewer
+
+StandaloneAppletContext.ShowDocumentError=showDocument is not implemented in\
+ standalone mode
+
+StandaloneAppletViewer.ParsedAppletTags=Parsed applet tags:
+StandaloneAppletViewer.Tag=tag
+StandaloneAppletViewer.CodeOptionError=appletviewer: option '--code' requires\
+ a class filename
+
+StandaloneAppletWindow.MenuTitle=Applet
+StandaloneAppletWindow.MenuReload=Reload
+StandaloneAppletWindow.MenuRestart=Restart
+StandaloneAppletWindow.MenuStart=Start
+StandaloneAppletWindow.MenuStop=Stop
+StandaloneAppletWindow.MenuClone=Clone ...
+StandaloneAppletWindow.MenuQuit=Quit
+StandaloneAppletWindow.MenuClose=Close
+StandaloneAppletWindow.MenuTag=Tag ...
+StandaloneAppletWindow.MenuInfo=Info ...
+StandaloneAppletWindow.MenuEdit=Edit
+StandaloneAppletWindow.MenuEncoding=Character Encoding
+StandaloneAppletWindow.MenuPrint=Print ...
+StandaloneAppletWindow.MenuProperties=Properties ...
+StandaloneAppletWindow.MenuCancel=Cancel
+StandaloneAppletWindow.MenuSave=Save ...
+StandaloneAppletWindow.WindowTitle=GNU Classpath Applet Viewer:
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties
new file mode 100644 (file)
index 0000000..989fde7
--- /dev/null
@@ -0,0 +1,40 @@
+# MessagesBundle.properties -- English language messages
+# Copyright (C) 2006  Free Software Foundation, Inc.
+#
+# This file is part of GNU Classpath.
+#
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA.
+#
+# Linking this library statically or dynamically with other modules is
+# making a combined work based on this library.  Thus, the terms and
+# conditions of the GNU General Public License cover the whole
+# combination.
+#
+# As a special exception, the copyright holders of this library give you
+# permission to link this library with independent modules to produce an
+# executable, regardless of the license terms of these independent
+# modules, and to copy and distribute the resulting executable under
+# terms of your choice, provided that you also meet, for each linked
+# independent module, the terms and conditions of the license of that
+# module.  An independent module is a module which is not derived from
+# or based on this library.  If you modify this library, you may extend
+# this exception to your version of the library, but you are not
+# obligated to do so.  If you do not wish to do so, delete this
+# exception statement from your version.
+
+ClasspathToolParser.JArgument=pass argument to the Java runtime
+ClasspathToolParser.JName=OPTION
+ClasspathToolParser.VersionFormat={0} (GNU Classpath) {1}\n\nCopyright 2006 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/getopt/Messages.properties
new file mode 100644 (file)
index 0000000..a747ab4
--- /dev/null
@@ -0,0 +1,46 @@
+# MessagesBundle.properties -- English language messages
+# Copyright (C) 2006  Free Software Foundation, Inc.
+#
+# This file is part of GNU Classpath.
+#
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA.
+#
+# Linking this library statically or dynamically with other modules is
+# making a combined work based on this library.  Thus, the terms and
+# conditions of the GNU General Public License cover the whole
+# combination.
+#
+# As a special exception, the copyright holders of this library give you
+# permission to link this library with independent modules to produce an
+# executable, regardless of the license terms of these independent
+# modules, and to copy and distribute the resulting executable under
+# terms of your choice, provided that you also meet, for each linked
+# independent module, the terms and conditions of the license of that
+# module.  An independent module is a module which is not derived from
+# or based on this library.  If you modify this library, you may extend
+# this exception to your version of the library, but you are not
+# obligated to do so.  If you do not wish to do so, delete this
+# exception statement from your version.
+
+Parser.StdOptions=Standard options
+Parser.PrintHelp=print this help, then exit
+Parser.PrintVersion=print version number, then exit
+Parser.ArgReqd=option ''{0}'' requires an argument
+Parser.Unrecognized=unrecognized option ''{0}''
+Parser.NoArg=option ''{0}'' doesn''t allow an argument
+Parser.UnrecDash=unrecognized option ''-{0}''
+Parser.TryHelpShort=Try ''{0} -help'' for more information
+Parser.TryHelpLong=Try ''{0} --help'' for more information
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/jar/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/jar/messages.properties
new file mode 100644 (file)
index 0000000..a456fe2
--- /dev/null
@@ -0,0 +1,72 @@
+# messages.properties -- English language messages
+# Copyright (C) 2006  Free Software Foundation, Inc.
+#
+# This file is part of GNU Classpath.
+#
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA.
+#
+# Linking this library statically or dynamically with other modules is
+# making a combined work based on this library.  Thus, the terms and
+# conditions of the GNU General Public License cover the whole
+# combination.
+#
+# As a special exception, the copyright holders of this library give you
+# permission to link this library with independent modules to produce an
+# executable, regardless of the license terms of these independent
+# modules, and to copy and distribute the resulting executable under
+# terms of your choice, provided that you also meet, for each linked
+# independent module, the terms and conditions of the license of that
+# module.  An independent module is a module which is not derived from
+# or based on this library.  If you modify this library, you may extend
+# this exception to your version of the library, but you are not
+# obligated to do so.  If you do not wish to do so, delete this
+# exception statement from your version.
+
+Creator.Ignoring=ignoring entry {0}
+Creator.Adding=adding: {0} (in={1,number,integer}) (out={2,number,integer}) (stored {3,number,integer}%)
+Extractor.Created=\ \ created: {0}
+Extractor.Extracted=\ extracted: {0}
+Extractor.Inflated=\ \ inflated: {0}
+Indexer.Indexing=indexing: {0}
+Main.ArchiveAlreadySet=archive file name already set to {0}
+Main.ModeAlreaySet=operation mode already specified
+Main.MustSpecify=must specify one of -t, -c, -u, -x, or -i
+Main.TwoArgsReqd=-C argument requires both directory and filename
+Main.CantHaveBoth=can't specify both -m and -M
+Main.NoFilesWithi=can't specify file arguments when using -i
+Main.NoMAndi=can't specify -M with -i
+Main.AnotherNomAndi=can't specify -m with -i
+Main.Usage=Usage: jar -ctxui [OPTIONS] jar-file [-C DIR FILE] FILE...
+Main.OpMode=Operation mode
+Main.Create=create a new archive
+Main.Extract=extract from archive
+Main.List=list archive contents
+Main.Update=update archive
+Main.Index=compute archive index
+Main.FileArg=FILE
+Main.OpMods=Operation modifiers
+Main.ArchiveName=specify archive file name
+Main.FileArg2=FILE
+Main.NoZip=store only; no ZIP compression
+Main.Verbose=verbose operation
+Main.NoManifest=do not create a manifest file
+Main.ManifestName=specify manifest file
+Main.ManifestArgName=FILE
+Main.FileNameGroup=File name selection
+Main.ChangeDir=change to directory before the next file
+Main.ChangeDirArg=DIR FILE
+Main.InternalError=jar: internal error:
+Main.Stdin=Read file names from stdin
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/jarsigner/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/jarsigner/messages.properties
new file mode 100644 (file)
index 0000000..d408817
--- /dev/null
@@ -0,0 +1,126 @@
+# messages.properties -- English language messages and message formats
+# Copyright (C) 2006  Free Software Foundation, Inc.
+#
+# This file is part of GNU Classpath.
+#
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA.
+#
+# Linking this library statically or dynamically with other modules is
+# making a combined work based on this library.  Thus, the terms and
+# conditions of the GNU General Public License cover the whole
+# combination.
+#
+# As a special exception, the copyright holders of this library give you
+# permission to link this library with independent modules to produce an
+# executable, regardless of the license terms of these independent
+# modules, and to copy and distribute the resulting executable under
+# terms of your choice, provided that you also meet, for each linked
+# independent module, the terms and conditions of the license of that
+# module.  An independent module is a module which is not derived from
+# or based on this library.  If you modify this library, you may extend
+# this exception to your version of the library, but you are not
+# obligated to do so.  If you do not wish to do so, delete this
+# exception statement from your version.
+#
+# for gnu.classpath.tools.jarsigner package
+#
+
+Main.7=jarsigner: 
+Main.9=jarsigner error: 
+Main.70=JAR file [{0}] is NOT a file object
+Main.72=JAR file [{0}] is NOT readable
+#Main.85=Option '-keystore' is not defined or is an empty string, and 'user.home' is unknown
+Main.85=Unable to locate a valid key store
+Main.92=Enter key store password: 
+Main.6=Designated alias [{0}] MUST be known to the key store in use
+Main.2=\
+Usage:  jarsigner [OPTION]... FILE ALIAS\n\
+\ \ \ \ \ \ \ \ jarsigner -verify [OPTION]... FILE\n\
+Java ARchive (JAR) file signing and verification tool.\n\
+\n\
+FILE is the .JAR file to sign or to verify.\n\
+\n\
+ALIAS must be a known Alias of a Key Entry in the designated key store.  The \
+private key material associated with this Alias is used for signing FILE.  if \
+ALIAS is required, but was omitted, "mykey" will be used instead.
+Main.1=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
+Main.0=Signing options
+Main.95=Designated alias [{0}] MUST be an Alias of a Key Entry
+Main.97=Enter key password for <{0}>: 
+Main.99=Key associated with [{0}] MUST be a private key
+Main.101=Location of the key store to use.  The default value is a file-based \
+scheme whose path is the file named ".keystore" in your home directory.\n\
+If URL is malformed, the tool will use URL as a file-name of a key store; \
+i.e. as if the protocol was "file:".
+Main.102=URL
+Main.104=Type of the key store to use.  If omitted, the default value is that \
+of the property "keystore.type" in the security properties file.
+Main.105=STORE_TYPE
+Main.107=Password to unlock the key store.  If omitted, you will be prompted \
+to provide a password.
+Main.108=PASSWORD
+Main.110=Password to unlock the Key Entry associated with ALIAS.  If omitted, \
+the tool will use the same password protecting the key store.  If this fails, \
+you will be prompted to provide a password.
+Main.111=PASSWORD
+Main.113=A literal to construct file names for both the .SF and .DSA signature \
+files --which will be placed in the META-INF directory of the signed JAR.  \
+Permissible characters are in the range [a-zA-Z0-9_-].\n\
+If omitted, the first 8 characters of ALIAS will be used.  Characters outside \
+that range will be replaced by underscores.
+Main.114=NAME
+Main.116=Name of the signed JAR file.  If omitted, the signed JAR will be \
+named the same as FILE; i.e. the input file will be replaced with its signed \
+copy.
+Main.117=FILE
+Main.118=Verification options
+Main.120=Verify an already signed FILE.
+Main.122=Use with -verbose to see more detailed information about the \
+certificates of ALIAS.
+Main.123=Common options
+Main.125=Output more verbose messages during processing.
+Main.127=Include --otherwise do not-- the .SF file in the .DSA generated file.
+Main.129=Include in the .SF generated file --otherwise do not-- a header \
+containing a hash of the whole manifest file.
+Main.131=Fully qualified class name of a Security Provider to add to the JVM \
+in-use.
+Main.132=PROVIDER_CLASS_NAME
+Main.133=Missing FILE argument.
+
+JarSigner.1=\ \ signing: 
+JarSigner.2=\ updating: 
+JarSigner.8=\ \ \ adding: 
+JarSigner.14=Jar signed.
+
+JarVerifier.2=Jar is not signed --no signature files found.
+JarVerifier.3=Jar verification failed.
+JarVerifier.4=Jar partially verified --{0,numer} of {1,number} signers.
+JarVerifier.7=Jar verified --{0,number} signer(s).
+JarVerifier.13=Signature Block missing for {0}
+JarVerifier.14=At least one SignerInfo element MUST be present in a Signature \
+Block (.DSA file)
+JarVerifier.16=Missing EncryptedDigest in Signature Block (.DSA file) first \
+SignerInfo element
+
+SFHelper.1=Helper is NOT finished
+SFHelper.4=.SF file has NOT been generated
+SFHelper.6=Unknown or unsupported private key algorithm
+SFHelper.9=Helper is NOT ready
+SFHelper.0=Warning: The certificate issued by {0}, for {1}, has expired as of {3,date,full} - {3,time,full}.
+SFHelper.10=Helper is NOT started
+SFHelper.11=Warning: The certificate issued by {0}, for {1}, is only valid after {3,date,full} - {3,time,full}.
+SFHelper.14=[unknown]
+SFHelper.17=[unnamed]
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/keytool/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/keytool/messages.properties
new file mode 100644 (file)
index 0000000..98f4e68
--- /dev/null
@@ -0,0 +1,570 @@
+# messages.properties -- English language messages and message formats
+# Copyright (C) 2006  Free Software Foundation, Inc.
+#
+# This file is part of GNU Classpath.
+#
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA.
+#
+# Linking this library statically or dynamically with other modules is
+# making a combined work based on this library.  Thus, the terms and
+# conditions of the GNU General Public License cover the whole
+# combination.
+#
+# As a special exception, the copyright holders of this library give you
+# permission to link this library with independent modules to produce an
+# executable, regardless of the license terms of these independent
+# modules, and to copy and distribute the resulting executable under
+# terms of your choice, provided that you also meet, for each linked
+# independent module, the terms and conditions of the license of that
+# module.  An independent module is a module which is not derived from
+# or based on this library.  If you modify this library, you may extend
+# this exception to your version of the library, but you are not
+# obligated to do so.  If you do not wish to do so, delete this
+# exception statement from your version.
+#
+# for gnu.classpath.tools.keytool package
+#
+
+Main.6=keytool: {0}
+Main.8=keytool error: {0}
+Main.5=Import a CA's Trusted Certificate.\n\
+[-file FILE] [-storetype STORE_TYPE] [-keystore URL]\n\
+[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
+Main.18=Unrecognized command: {0}
+Main.19=Usage:  keytool [COMMAND] [-- COMMAND]...\n\
+Manage private keys and public certificates.
+Main.20=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
+Main.21=Available commands
+Main.22=Generate a Key Entry, eventually creating a key store.\n\
+[-alias ALIAS] [-keyalg ALGORITHM] [-keysize KEY_SIZE]\n\
+[-sigalg ALGORITHM] [-dname NAME] [-keypass PASSWORD]\n\
+[-validity DAY_COUNT] [-storetype STORE_TYPE]\n\
+[-keystore URL] [-storepass PASSWORD]\n\
+[-provider PROVIDER_CLASS_NAME] [-v].
+Main.23=Add Key Entries and Trusted Certificates.\n\
+[-alias ALIAS] [-file FILE] [-keypass PASSWORD]\n\
+[-noprompt] [-trustcacerts] [-storetype STORE_TYPE]\n\
+[-keystore URL] [-storepass PASSWORD]\n\
+[-provider PROVIDER_CLASS_NAME] [-v].
+Main.24=Generate a self-signed Trusted Certificate.\n\
+[-alias ALIAS] [-sigalg ALGORITHM] [-dname NAME]\n\
+[-validity DAY_COUNT] [-keypass PASSWORD]\n\
+[-storetype STORE_TYPE] [-keystore URL]\n\
+[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
+Main.25=NOT IMPLEMENTED YET.  Import JDK1.1 Identity Database.\n\
+[-file FILE] [-storetype STORE_TYPE] [-keystore URL]\n\
+[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
+Main.26=Issue a Certificate Signing Request (CSR).\n\
+[-alias ALIAS] [-sigalg ALGORITHM] [-file FILE]\n\
+[-keypass PASSWORD] [-storetype STORE_TYPE] [-keystore URL]\n\
+[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v]\n\
+[-attributes].
+Main.27=Export a Certificate from a key store.\n\
+[-alias ALIAS] [-file FILE] [-storetype STORE_TYPE]\n\
+[-keystore URL] [-storepass PASSWORD]\n\
+[-provider PROVIDER_CLASS_NAME] [-rfc] [-v].
+Main.28=Print one or all Certificates in a key store to STDOUT.\n\
+[-alias ALIAS] [-storetype STORE_TYPE] [-keystore URL]\n\
+[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-rfc] [-v].
+Main.29=Print a human-readable form of a Certificate in a FILE.\n\
+[-file FILE] [-v].
+Main.30=Clone a Key Entry in a key store.\n\
+[-alias ALIAS] [-dest ALIAS] [-keypass PASSWORD]\n\
+[-new PASSWORD] [-storetype STORE_TYPE] [-keystore URL]\n\
+[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
+Main.31=Change the password protecting a key store.\n\
+[-new PASSWORD] [-storetype STORE_TYPE] [-keystore URL]\n\
+[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
+Main.32=Change the password protecting a Key Entry in a key store.\n\
+[-alias ALIAS] [-keypass PASSWORD] [-new PASSWORD]\n\
+[-storetype STORE_TYPE] [-keystore URL]\n\
+[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
+Main.33=Delete a Key Entry or a Trusted Certificate from a key store.\n\
+[-alias ALIAS] [-storetype STORE_TYPE] [-keystore URL]\n\
+[-storepass PASSWORD] [-provider PROVIDER_CLASS_NAME] [-v].
+
+Command.19=Failed creating new file at {0}
+Command.20=Unable to find a suitable signature algorithm named {0}, although we found a key-pair generation algorithm named {1}
+Command.21=Enter key password for <{0}>: 
+Command.23=A correct key password MUST be provided
+Command.24=Enter key store password: 
+#Command.36=Option '-keystore' is undefined, or is an empty string, and 'user.home' is unknown
+Command.36=Unable to locate a valid key store
+Command.40=Provider fully qualified class name: 
+Command.42=File object [{0}] exists but is NOT a file
+Command.44=File [{0}] exists but is NOT writable
+Command.46=File object [{0}] MUST be an existing readable file
+Command.48=Signature algorithm is missing and private key is of unknown or unsupported type
+Command.51=Validity period MUST be greater than zero
+Command.52=Unable to get signature algorithm name
+Command.60=Unknown or unsupported signature algorithm: {0}
+Command.63=Saving key store at {0}
+Command.66=Owner: {0}
+Command.67=Issuer: {0}
+Command.68=Serial number: {0,number}
+Command.69=Valid from: {0,date,full} - {0,time,full}
+Command.70=\ \ \ \ \ until: {0,date,full} - {0,time,full}
+Command.71=Certificate fingerprints
+Command.72=\ \ \ \ \ \ MD5: {0}
+Command.73=\ \ SHA-160: {0}
+Command.75=Alias [{0}] MUST be knwon to the key store
+Command.77=Alias [{0}] MUST be associated with a Key Entry
+
+CertReqCmd.27=Certification request stored in {0}
+CertReqCmd.28=Submit this to your CA
+CertReqCmd.25=Usage:  keytool -certreq [OPTION]...\n\
+Generate a PKCS#10 Certificate Signing Request (CSR) and write it to a \
+designated output destination.\n\n\
+IMPORTANT: Some documentation claims that the Attributes field, in the CSR is \
+OPTIONAL while RFC-2986 implies the opposite.  This implementation considers \
+this field, by default, as OPTIONAL, unless option -attributes is specified.
+CertReqCmd.24=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
+CertReqCmd.23=Command options
+CertReqCmd.22=Alias of an entry in the key store on whose behalf the CSR is \
+generated.  The value "mykey" (all lower case, without the enclosing quotes) \
+is used when this option is omitted.
+CertReqCmd.21=ALIAS
+CertReqCmd.20=Name of the digital signature algorithm to use for signing the \
+certificate.  If omitted, a default value is chosen based on the type of the \
+private key associated with ALIAS.  If the key is a "DSA" one, the value for \
+signature algorithm will be "SHA1withDSA".  If on the other hand the key is \
+an "RSA" one, then "MD5withRSA" will be the signature algorithm.
+CertReqCmd.19=ALGORITHM
+CertReqCmd.18=Destination of the generated CSR.  STDOUT is used if this \
+option is omitted.
+CertReqCmd.17=FILE
+CertReqCmd.16=Password to unlock the Key Entry associated with ALIAS.  If \
+omitted, the tool will attempt to unlock the Key Entry using the same password \
+protecting the key store.  If this fails, you will be prompted for a password.
+CertReqCmd.14=Type of the key store to use.  If omitted, the default value is \
+that of the property "keystore.type" in the security properties file.
+CertReqCmd.13=STORE_TYPE
+CertReqCmd.12=Location of the key store to use.  The default value is a \
+file-based scheme whose path is the file named ".keystore" in your home \
+directory.\n\
+If URL is malformed, the tool will use URL as a file-name of a key store; \
+i.e. as if the protocol was "file:".
+CertReqCmd.11=URL
+CertReqCmd.10=Password to unlock the key store.  If omitted, you will be \
+prompted for one.
+CertReqCmd.9=PASSWORD
+CertReqCmd.8=Fully qualified class name of a Security Provider to add to the \
+JVM in-use.
+CertReqCmd.7=PROVIDER_CLASS_NAME
+CertReqCmd.6=Emit more verbose messages.
+CertReqCmd.5=Force the tool to encode a NULL DER value in the CSR as the value \
+of the Attributes field.
+
+DeleteCmd.19=Enter the Alias to delete:
+DeleteCmd.18=Usage:  keytool -delete [OPTION]...\n\
+Delete a designated key store entry.
+DeleteCmd.17=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
+DeleteCmd.16=Command options
+DeleteCmd.15=Alias of an entry to delete.  The value "mykey" (all lower case, \
+without the enclosing quotes) is used when this option is omitted.
+DeleteCmd.14=ALIAS
+DeleteCmd.13=Type of the key store to use.  If omitted, the default value is \
+that of the property "keystore.type" in the security properties file.
+DeleteCmd.12=STORE_TYPE
+DeleteCmd.11=Location of the key store to use.  The default value is a \
+file-based scheme whose path is the file named ".keystore" in your home \
+directory.\n\
+If URL is malformed, the tool will use URL as a file-name of a key store; \
+i.e. as if the protocol was "file:".
+DeleteCmd.10=URL
+DeleteCmd.20=Alias MUST NOT be null or an empty string
+DeleteCmd.9=Password to unlock the key store.  If omitted, you will be \
+prompted for one.
+DeleteCmd.8=PASSWORD
+DeleteCmd.7=Fully qualified class name of a Security Provider to add to the \
+JVM in-use.
+DeleteCmd.6=PROVIDER_CLASS_NAME
+DeleteCmd.5=Emit more verbose messages.
+
+GenKeyCmd.0=\nYou are about to enter information that will be incorporated into\n\
+your certificate request.  This information is what is called a\n\
+Distinguished Name or DN.  There are quite a few fields but you\n\
+can use supplied default values, displayed between brackets, by just\n\
+hitting <Enter>, or blank the field by entering the <.> character\n\
+before hitting <Enter>.\n\n
+GenKeyCmd.6=The Sample Company
+GenKeyCmd.7=Sydney
+GenKeyCmd.8=NSW
+GenKeyCmd.9=AU
+GenKeyCmd.10=Common Name (hostname, IP, or your name): 
+GenKeyCmd.11=Organization Name (company) [{0}]: 
+GenKeyCmd.13=Organizational Unit Name (department, division): 
+GenKeyCmd.14=Locality Name (city, district) [{0}]: 
+GenKeyCmd.16=State or Province Name (full name) [{0}]: 
+GenKeyCmd.18=Country Name (2 letter code) [{0}]: 
+GenKeyCmd.54=Key size MUST be greater than zero
+GenKeyCmd.57=Usage:  keytool -genkey [OPTION]...\n\
+Generate a new key-pair and save these credentials in the key store as a Key \
+Entry, associated with a designated Alias.
+GenKeyCmd.58=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
+GenKeyCmd.59=Command options
+GenKeyCmd.60=Alias of the Key Entry to generate.  The value "mykey" (all lower \
+case, without the enclosing quotes) is used when this option is omitted.
+GenKeyCmd.61=ALIAS
+GenKeyCmd.62=Name of the key-pair generation algorithm.  The default value is \
+"DSS" (a synonym for the Digital Signature Algorithm also known as DSA).
+GenKeyCmd.63=ALGORITHM
+GenKeyCmd.64=Number of bits of the shared modulus, for both the public and \
+private keys, to use for the new keys.  If omitted, 1024 is used.
+GenKeyCmd.65=SIZE
+GenKeyCmd.66=Name of the digital signature algorithm to use for signing the \
+certificate.  If omitted, a default value is chosen based on the type of the \
+private key associated with ALIAS.  If the key is a "DSA" one, the value for \
+signature algorithm will be "SHA1withDSA".  If on the other hand the key is \
+an "RSA" one, then "MD5withRSA" will be the signature algorithm.
+GenKeyCmd.68=The X.500 Distinguished Name of the Subject of the generated \
+certificate.  If omitted you will be prompted for one.
+GenKeyCmd.69=NAME
+GenKeyCmd.70=Password to protect the newly created Key Entry.  If omitted, \
+you will be prompted to provide a password.
+GenKeyCmd.71=PASSWORD
+GenKeyCmd.72=Number of days the generated certificate is valid for.  If \
+omitted, 90 is used.
+GenKeyCmd.73=DAY_COUNT
+GenKeyCmd.74=Type of the key store to use.  If omitted, the default value is \
+that of the property "keystore.type" in the security properties file.
+GenKeyCmd.75=STORE_TYPE
+GenKeyCmd.76=Location of the key store to use.  The default value is a \
+file-based scheme whose path is the file named ".keystore" in your home \
+directory.\n\
+If URL is malformed, the tool will use URL as a file-name of a key store; \
+i.e. as if the protocol was "file:".
+GenKeyCmd.77=URL
+GenKeyCmd.78=Password to unlock the key store.  If omitted, you will be \
+prompted for one.
+GenKeyCmd.80=Fully qualified class name of a Security Provider to add to the \
+JVM in-use.
+GenKeyCmd.81=PROVIDER_CLASS_NAME
+GenKeyCmd.82=Emit more verbose messages.
+
+StorePasswdCmd.19=Too many failed attempts
+StorePasswdCmd.18=Usage:  keytool -storepasswd [OPTION]...\n\
+Change the password protecting a key store.
+StorePasswdCmd.17=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
+StorePasswdCmd.16=Command options
+StorePasswdCmd.15=The new, and different, password to protect the key store.  \
+If omitted, you will be prompted for one.
+StorePasswdCmd.13=Type of the key store to use.  If omitted, the default value is \
+that of the property "keystore.type" in the security properties file.
+StorePasswdCmd.12=STORE_TYPE
+StorePasswdCmd.11=Location of the key store to use.  The default value is a \
+file-based scheme whose path is the file named ".keystore" in your home \
+directory.\n\
+If URL is malformed, the tool will use URL as a file-name of a key store; \
+i.e. as if the protocol was "file:".
+StorePasswdCmd.10=URL
+StorePasswdCmd.20=Enter new key store password: 
+StorePasswdCmd.21=Password MUST be at least 6 characters.
+StorePasswdCmd.22=New password MUST be different than the old one.
+StorePasswdCmd.23=Re-enter new key store password: 
+StorePasswdCmd.24=Passwords MUST be the same in both attempts.
+StorePasswdCmd.9=Password to unlock the key store.  If omitted, you will be \
+prompted for one.
+StorePasswdCmd.8=PASSWORD
+StorePasswdCmd.7=Fully qualified class name of a Security Provider to add to the \
+JVM in-use.
+StorePasswdCmd.6=PROVIDER_CLASS_NAME
+StorePasswdCmd.5=Emit more verbose messages.
+
+KeyPasswdCmd.24=Enter new key password for <{0}>: 
+KeyPasswdCmd.28=Re-enter new key password for <{0}>: 
+KeyPasswdCmd.23=Usage:  keytool -keypasswd [OPTION]...\n\
+Change the password protecting a Key Entry.
+KeyPasswdCmd.22=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
+KeyPasswdCmd.21=Command options
+KeyPasswdCmd.20=The Alias which password is to be changed.
+KeyPasswdCmd.19=ALIAS
+KeyPasswdCmd.18=Password to unlock ALIAS.  If omitted, the tool will attempt \
+to unlock the Key Entry using the same password protecting the key store.  If \
+this fails, you will be prompted for a password.
+KeyPasswdCmd.16=The new, and different, password to protect ALIAS.
+KeyPasswdCmd.14=Type of the key store to use.  If omitted, the default value is \
+that of the property "keystore.type" in the security properties file.
+KeyPasswdCmd.13=STORE_TYPE
+KeyPasswdCmd.12=Location of the key store to use.  The default value is a \
+file-based scheme whose path is the file named ".keystore" in your home \
+directory.\n\
+If URL is malformed, the tool will use URL as a file-name of a key store; \
+i.e. as if the protocol was "file:".
+KeyPasswdCmd.11=URL
+KeyPasswdCmd.10=Password to unlock the key store.  If omitted, you will be \
+prompted for one.
+KeyPasswdCmd.9=PASSWORD
+KeyPasswdCmd.8=Fully qualified class name of a Security Provider to add to the \
+JVM in-use.
+KeyPasswdCmd.7=PROVIDER_CLASS_NAME
+KeyPasswdCmd.6=Emit more verbose messages.
+
+KeyCloneCmd.23=Destination Alias MUST NOT exist in key store
+KeyCloneCmd.26=Enter destination alias: 
+KeyCloneCmd.27=Destination alias MUST NOT be null nor empty
+KeyCloneCmd.28=Enter new key password for <{0}> [{1}]: 
+KeyCloneCmd.22=Usage:  keytool -keyclone [OPTION]...\n\
+Clone an existing Key Entry and store it under a new (different) Alias \
+protecting its private key material with possibly a new password.
+KeyCloneCmd.21=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
+KeyCloneCmd.20=Command options
+KeyCloneCmd.19=Alias of an entry to clone.  The value "mykey" (all lower case, \
+without the enclosing quotes) is used when this option is omitted.
+KeyCloneCmd.17=Alias to identify the cloned copy of the Key Entry.
+KeyCloneCmd.16=ALIAS
+KeyCloneCmd.15=Password to unlock the Key Entry associated with the Alias to \
+clone.  If omitted, the tool will attempt to unlock the Key Entry using the \
+same password protecting the key store.  If this fails, you will be prompted \
+for a password.
+KeyCloneCmd.13=Password to protect the cloned copy of the Key Entry.  If \
+omitted, you will be prompted to provide one.
+KeyCloneCmd.11=Type of the key store to use.  If omitted, the default value is \
+that of the property "keystore.type" in the security properties file.
+KeyCloneCmd.10=STORE_TYPE
+KeyCloneCmd.9=Location of the key store to use.  The default value is a \
+file-based scheme whose path is the file named ".keystore" in your home \
+directory.\n\
+If URL is malformed, the tool will use URL as a file-name of a key store; \
+i.e. as if the protocol was "file:".
+KeyCloneCmd.8=URL
+KeyCloneCmd.7=Password to unlock the key store.  If omitted, you will be \
+prompted for one.
+KeyCloneCmd.6=PASSWORD
+KeyCloneCmd.5=Fully qualified class name of a Security Provider to add to the \
+JVM in-use.
+KeyCloneCmd.4=PROVIDER_CLASS_NAME
+KeyCloneCmd.3=Emit more verbose messages.
+
+ListCmd.21=Key store type: {0}
+ListCmd.22=Key store provider: {0}
+ListCmd.24=Key store contains {0,number} entry(ies)
+ListCmd.20=Usage:  keytool -list [OPTION]...\n\
+Print one or all of the key store entries to STDOUT.  Usually this command \
+will only print a fingerprint of the certificate, unless either -rfc or -v \
+is specified.
+ListCmd.30=Alias name: {0}
+ListCmd.31=Creation timestamp: {0,date,full} - {0,time,full}
+ListCmd.32=Entry type: trusted-certificate
+ListCmd.33=Entry type: key-entry
+ListCmd.34=Alias [{0}] is unknown to the key store
+ListCmd.38=Certificate chain length: {0,number}
+ListCmd.39=Certificate[1]:
+ListCmd.40=Certificate[{0,number}]:
+ListCmd.42=*******************************************
+ListCmd.43=-----BEGIN CERTIFICATE-----
+ListCmd.44=-----END CERTIFICATE-----
+ListCmd.45=Certificate fingerprint (MD5): {0}
+ListCmd.19=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
+ListCmd.18=Command options
+ListCmd.17=Alias of an entry to list.  If omitted, all entries are listed.
+ListCmd.16=ALIAS
+ListCmd.15=Type of the key store to use.  If omitted, the default value is \
+that of the property "keystore.type" in the security properties file.
+ListCmd.14=STORE_TYPE
+ListCmd.13=Location of the key store to use.  The default value is a \
+file-based scheme whose path is the file named ".keystore" in your home \
+directory.\n\
+If URL is malformed, the tool will use URL as a file-name of a key store; \
+i.e. as if the protocol was "file:".
+ListCmd.12=URL
+ListCmd.11=Password to unlock the key store.  If omitted, you will be \
+prompted for one.
+ListCmd.10=PASSWORD
+ListCmd.9=Fully qualified class name of a Security Provider to add to the \
+JVM in-use.
+ListCmd.8=PROVIDER_CLASS_NAME
+ListCmd.7=Output the certificate in human-readable format, even if -rfc is \
+also specified.
+ListCmd.6=Use RFC-1421 specifications when encoding the output.
+
+ImportCmd.34=Failed to establish chain-of-trust from reply
+ImportCmd.37=Unable to find anchor certificate for {0}
+ImportCmd.38=Public keys, in key store and certificate, MUST be of the same type
+ImportCmd.32=Can this certificate be trusted? 
+ImportCmd.40=Key entry associated with {0} has an unknown or unsupported public key type {1}
+ImportCmd.41=Public keys, in key store and certificate, MUST be the same
+ImportCmd.29=Certificate was added to the key store
+ImportCmd.28=Certificate was not added to the key store
+ImportCmd.27=Usage:  keytool -import [OPTION]...\n\
+Read an X.509 certificate, or a PKCS#7 Certificate Reply from a designated \
+input source and incorporate the certificates into the key store.
+ImportCmd.26=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
+ImportCmd.25=Command options
+ImportCmd.24=If ALIAS does not already exist in the key store, the tool treats \
+the certificate in FILE as a new Trusted Certificate.\n\
+If ALIAS exists in the key store, the tool will treat the certificate(s) in \
+FILE as a Certificate Reply (which can be a chain of certificates).
+ImportCmd.23=ALIAS
+ImportCmd.22=Location of the Certificate or Certificate Reply to import.
+ImportCmd.21=FILE
+ImportCmd.20=Password to protect the Key Entry associated with ALIAS.  If \
+this option is omitted, and the chain-of-trust for the Certificate Reply has \
+been established, the tool will first attempt to unlock the Key Entry using \
+the same password protecting the key store.  If this fails, you will be \
+prompted to provide a password.
+ImportCmd.19=PASSWORD
+ImportCmd.18=Prevent the tool from prompting the user.
+ImportCmd.17=Additionally use a key store, of type "JKS", named "cacerts", \
+and located in lib/security in an installed Java Runtime Environment, when \
+trying to establish chains-of-trust.
+ImportCmd.16=Type of the key store to use.  If omitted, the default value is \
+that of the property "keystore.type" in the security properties file.
+ImportCmd.15=STORE_TYPE
+ImportCmd.14=Location of the key store to use.  The default value is a \
+file-based scheme whose path is the file named ".keystore" in your home \
+directory.\n\
+If URL is malformed, the tool will use URL as a file-name of a key store; \
+i.e. as if the protocol was "file:".
+ImportCmd.13=URL
+ImportCmd.12=Password to unlock the key store.  If omitted, you will be \
+prompted for one.
+ImportCmd.11=PASSWORD
+ImportCmd.10=Fully qualified class name of a Security Provider to add to the \
+JVM in-use.
+ImportCmd.9=PROVIDER_CLASS_NAME
+ImportCmd.8=Emit more verbose messages.
+ImportCmd.7=Was unable to build a certificate-chain. Only {0,number} out of {1,number} certificates were processed
+
+ExportCmd.17=Usage:  keytool -export [OPTION]...\n\
+Export a certificate stored in the key store to a designated output \
+destination, either in binary format or in RFC-1421 compliant encoding.
+ExportCmd.18=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
+ExportCmd.19=Command options
+ExportCmd.20=Alias of an entry to export.  The value "mykey" (all lower case, \
+without the enclosing quotes) is used when this option is omitted.
+ExportCmd.21=ALIAS
+ExportCmd.22=Destination of the exported certificate.  STDOUT is used if this \
+option is omitted.
+ExportCmd.23=FILE
+ExportCmd.24=Type of the key store to use.  If omitted, the default value is \
+that of the property "keystore.type" in the security properties file.
+ExportCmd.25=STORE_TYPE
+ExportCmd.26=Location of the key store to use.  The default value is a \
+file-based scheme whose path is the file named ".keystore" in your home \
+directory.\n\
+If URL is malformed, the tool will use URL as a file-name of a key store; \
+i.e. as if the protocol was "file:".
+ExportCmd.27=URL
+ExportCmd.28=Password to unlock the key store.  If omitted, you will be \
+prompted for one.
+ExportCmd.29=PASSWORD
+ExportCmd.30=Fully qualified class name of a Security Provider to add to the \
+JVM in-use.
+ExportCmd.31=PROVIDER_CLASS_NAME
+ExportCmd.32=Use RFC-1421 specifications when encoding the output.
+ExportCmd.33=Output the certificate in binary DER encoding, which is the \
+default format.  If -rfc is also present, this option is ignored.
+
+IdentityDBCmd.7=Usage:  keytool -identitydb [OPTION]...\n\
+NOT IMPLEMENTED YET.  Import a JDK 1.1 style Identity Database.
+IdentityDBCmd.8=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
+IdentityDBCmd.9=Command options
+IdentityDBCmd.10=Location of the Identity Database to import.  If omitted, \
+STDIN is used.
+IdentityDBCmd.11=FILE
+IdentityDBCmd.12=Type of the key store to use.  If omitted, the default value is \
+that of the property "keystore.type" in the security properties file.
+IdentityDBCmd.13=STORE_TYPE
+IdentityDBCmd.14=Location of the key store to use.  The default value is a \
+file-based scheme whose path is the file named ".keystore" in your home \
+directory.\n\
+If URL is malformed, the tool will use URL as a file-name of a key store; \
+i.e. as if the protocol was "file:".
+IdentityDBCmd.15=URL
+IdentityDBCmd.16=Password to unlock the key store.  If omitted, you will be \
+prompted for one.
+IdentityDBCmd.17=PASSWORD
+IdentityDBCmd.18=Fully qualified class name of a Security Provider to add to the \
+JVM in-use.
+IdentityDBCmd.19=PROVIDER_CLASS_NAME
+IdentityDBCmd.20=Emit more verbose messages.
+
+PrintCertCmd.5=Usage:  keytool -printcert [OPTION]...\n\
+Read a certificate from FILE and print it to STDOUT in a human-readable form.
+PrintCertCmd.6=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
+PrintCertCmd.7=Command options
+PrintCertCmd.8=Location of the certificate to print.  If omitted, STDIN is used.
+PrintCertCmd.9=FILE
+PrintCertCmd.10=Emit more verbose messages.
+
+SelfCertCmd.14=Usage:  keytool -selfcert [OPTION]...\n\
+Generate a self-signed X.509 version 1 certificate.\n\n\
+The newly generated certificate will form a chain of one element which will \
+replace the previous chain associated with ALIAS.
+SelfCertCmd.15=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
+SelfCertCmd.16=Command options
+SelfCertCmd.17=Alias of the Key Entry to select.  The value "mykey" (all lower \
+case, without the enclosing quotes) is used when this option is omitted.
+SelfCertCmd.18=ALIAS
+SelfCertCmd.19=Name of the digital signature algorithm to use for signing the \
+certificate.  If omitted, a default value is chosen based on the type of the \
+private key associated with ALIAS.  If the key is a "DSA" one, the value for \
+signature algorithm will be "SHA1withDSA".  If on the other hand the key is \
+an "RSA" one, then "MD5withRSA" will be the signature algorithm.
+SelfCertCmd.20=ALGORITHM
+SelfCertCmd.21=The X.500 Distinguished Name of the Subject of the generated \
+certificate.  If omitted the Distinguished Name of the base certificate in \
+the chain associated with ALIAS is used instead.
+SelfCertCmd.22=NAME
+SelfCertCmd.23=Password to unlock the Key Entry associated with ALIAS.  If \
+omitted, the tool will attempt to unlock the Key Entry using the same password \
+protecting the key store.  If this fails, you will be prompted for a password.
+SelfCertCmd.24=PASSWORD
+SelfCertCmd.25=Number of days the generated certificate is valid for.  If \
+omitted, 90 is used.
+SelfCertCmd.26=DAY_COUNT
+SelfCertCmd.27=Type of the key store to use.  If omitted, the default value is \
+that of the property "keystore.type" in the security properties file.
+SelfCertCmd.28=STORE_TYPE
+SelfCertCmd.29=Location of the key store to use.  The default value is a \
+file-based scheme whose path is the file named ".keystore" in your home \
+directory.\n\
+If URL is malformed, the tool will use URL as a file-name of a key store; \
+i.e. as if the protocol was "file:".
+SelfCertCmd.30=URL
+SelfCertCmd.31=Password to unlock the key store.  If omitted, you will be \
+prompted for one.
+SelfCertCmd.32=PASSWORD
+SelfCertCmd.33=Fully qualified class name of a Security Provider to add to the \
+JVM in-use.
+SelfCertCmd.34=PROVIDER_CLASS_NAME
+SelfCertCmd.35=Emit more verbose messages.
+
+CACertCmd.0=Alias [{0}] is already present in key store
+CACertCmd.1=Certificate in file "{0}" was added to the key store under the alias "{1}"
+CACertCmd.2=Usage:  keytool -cacert [OPTION]...\n\
+Import a trusted CA certificate.
+CACertCmd.3=Please report bugs at http://www.gnu.org/software/classpath/bugs.html
+CACertCmd.4=Command options
+CACertCmd.5=Location of the trusted CA certificate to import.
+CACertCmd.6=FILE
+CACertCmd.7=Type of the key store to use.  If omitted, the default value is \
+that of the property "keystore.type" in the security properties file.
+CACertCmd.8=STORE_TYPE
+CACertCmd.9=Location of the key store to use.  The default value is a \
+file-based scheme whose path is the file named ".keystore" in your home \
+directory.\n\
+If URL is malformed, the tool will use URL as a file-name of a key store; \
+i.e. as if the protocol was "file:".
+CACertCmd.10=URL
+CACertCmd.11=Password to unlock the key store.  If omitted, you will be \
+prompted for one.
+CACertCmd.12=PASSWORD
+CACertCmd.13=Fully qualified class name of a Security Provider to add to the \
+JVM in-use.
+CACertCmd.14=PROVIDER_CLASS_NAME
+CACertCmd.15=Emit more verbose messages.
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/native2ascii/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/native2ascii/messages.properties
new file mode 100644 (file)
index 0000000..f04d184
--- /dev/null
@@ -0,0 +1,44 @@
+# messages.properties -- English language messages
+# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
+#
+# This file is part of GNU Classpath.
+#
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA.
+#
+# Linking this library statically or dynamically with other modules is
+# making a combined work based on this library.  Thus, the terms and
+# conditions of the GNU General Public License cover the whole
+# combination.
+#
+# As a special exception, the copyright holders of this library give you
+# permission to link this library with independent modules to produce an
+# executable, regardless of the license terms of these independent
+# modules, and to copy and distribute the resulting executable under
+# terms of your choice, provided that you also meet, for each linked
+# independent module, the terms and conditions of the license of that
+# module.  An independent module is a module which is not derived from
+# or based on this library.  If you modify this library, you may extend
+# this exception to your version of the library, but you are not
+# obligated to do so.  If you do not wish to do so, delete this
+# exception statement from your version.
+
+Native2ASCII.TooManyFiles=too many files specified
+Native2ASCII.Usage=Usage: native2ascii [OPTIONS]... [INPUTFILE [OUTPUTFILE]]
+Native2ASCII.EncodingHelp=encoding to use
+Native2ASCII.EncodingArgName=NAME
+Native2ASCII.EncodingSpecified=encoding already specified
+Native2ASCII.ReverseHelp=convert from encoding to native
+
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/orbd/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/orbd/messages.properties
new file mode 100644 (file)
index 0000000..b427d10
--- /dev/null
@@ -0,0 +1,46 @@
+# messages.properties -- English language messages
+# Copyright (C) 2006  Free Software Foundation, Inc.
+#
+# This file is part of GNU Classpath.
+#
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA.
+#
+# Linking this library statically or dynamically with other modules is
+# making a combined work based on this library.  Thus, the terms and
+# conditions of the GNU General Public License cover the whole
+# combination.
+#
+# As a special exception, the copyright holders of this library give you
+# permission to link this library with independent modules to produce an
+# executable, regardless of the license terms of these independent
+# modules, and to copy and distribute the resulting executable under
+# terms of your choice, provided that you also meet, for each linked
+# independent module, the terms and conditions of the license of that
+# module.  An independent module is a module which is not derived from
+# or based on this library.  If you modify this library, you may extend
+# this exception to your version of the library, but you are not
+# obligated to do so.  If you do not wish to do so, delete this
+# exception statement from your version.
+
+Main.Usage=Usage: orbd [OPTIONS]
+Main.ORBInitialPort=port on which persistent naming service is to be started
+Main.Port=PORT
+Main.IOR=file in which to store persistent naming service's IOR reference
+Main.IORFile=FILE
+Main.Restart=restart persistent naming service, clearing persistent naming database
+Main.Directory=directory in which to store persistent data
+Main.DirectoryArgument=DIRECTORY
+Main.InternalError=orbd: internal error:
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/messages.properties
new file mode 100644 (file)
index 0000000..7be7cb0
--- /dev/null
@@ -0,0 +1,61 @@
+# messages.properties -- English language messages
+# Copyright (C) 2006  Free Software Foundation, Inc.
+#
+# This file is part of GNU Classpath.
+#
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA.
+#
+# Linking this library statically or dynamically with other modules is
+# making a combined work based on this library.  Thus, the terms and
+# conditions of the GNU General Public License cover the whole
+# combination.
+#
+# As a special exception, the copyright holders of this library give you
+# permission to link this library with independent modules to produce an
+# executable, regardless of the license terms of these independent
+# modules, and to copy and distribute the resulting executable under
+# terms of your choice, provided that you also meet, for each linked
+# independent module, the terms and conditions of the license of that
+# module.  An independent module is a module which is not derived from
+# or based on this library.  If you modify this library, you may extend
+# this exception to your version of the library, but you are not
+# obligated to do so.  If you do not wish to do so, delete this
+# exception statement from your version.
+
+Main.Usage:rmic [OPTIONS] CLASSNAME...
+Main.NoWarn:show no warnings
+Main.NoWrite:check for errors and do not write any files
+Main.Verbose:show verbose output
+Main.DirOpt:write generated files to given directory
+Main.DirArg:DIRECTORY
+Main.ClasspathOpt:where to find input classes
+Main.ClasspathArg:PATH
+Main.BootclasspathOpt:where to find classes used to run rmic (ignored)
+Main.BootclasspathArg:PATH
+Main.ExtdirsOpt:where to find extension classes used to run rmic (ignored)
+Main.ExtdirsArg:PATH
+Main.IIOP:generate stubs and ties for IIOP
+Main.Always:always overwrite generated files (ignored)
+Main.AlwaysGenerate:same as -always
+Main.NoLocalStubs:do not create same-process stubs (ignored)
+Main.POA:generate servant-based ties
+Main.Keep:keep generated stub, skeleton and tie sources
+Main.KeepGenerated:same as -keep
+Main.v11:generate JDK 1.1 protocol stubs and skeletons
+Main.v12:generate JDK 1.2 JRMP stubs (default)
+Main.vcompat:generate JDK 1.1 protocol and JDK 1.2 JRMP stubs
+Main.DebugInfo:include debugging information in generated classes
+Main.InternalError:rmic: internal error:
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/ImplTie.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/ImplTie.jav
new file mode 100644 (file)
index 0000000..aff606b
--- /dev/null
@@ -0,0 +1,152 @@
+package #package;
+
+#imports
+import java.rmi.Remote;
+import javax.rmi.PortableRemoteObject;
+import javax.rmi.CORBA.Tie;
+
+import org.omg.CORBA.BAD_OPERATION;
+import org.omg.CORBA.ORB;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.portable.OutputStream;
+import org.omg.CORBA.portable.ResponseHandler;
+import org.omg.CORBA.portable.UnknownException;
+import org.omg.PortableServer.Servant;
+
+import org.omg.CORBA_2_3.portable.ObjectImpl;
+import org.omg.CORBA_2_3.portable.InputStream;
+
+// This Tie type is obsolete. Use the POA - based tie (key -poa).
+
+/**
+ * This class accepts remote calls to the served GIOP object and delegates them
+ * to the enclosed implementing class. Being derived from the ObjectImpl,
+ * it directly implements the GIOP Object.
+ *
+ * It is normally generated with grmic -impl
+ */
+public class _#nameImpl_Tie extends ObjectImpl implements Tie
+{
+  /**
+   * All decoded remote calls are forwarded to this target.
+   */
+  #implName target;
+  
+  /**
+   * The array of repository ids, supported by this GIOP Object
+   */ 
+  private static final String[] type_ids =
+    { 
+#idList
+    };
+      
+  /**
+   * Get an array of all interfaces (repository ids),
+   * supported by this Object.
+   *
+   * @return the array of Ids.
+   */
+  public String[] _ids() 
+  { 
+    return type_ids;
+  }  
+
+  /**
+   * Set the invocation target, where all received calls are finally
+   * forwarded.
+   *
+   * @param a_target the forwarding target
+   *
+   * @throws ClassCastException if the target is not an instance of
+   * #implName
+   */ 
+  public void setTarget(Remote a_target)
+  {
+    this.target = (#implName) a_target;
+  }
+
+  /**
+   * Get the invocation target, where all received calls are finally
+   * forwarded.
+   *
+   * @return the target, an instance of
+   * #implName
+   */ 
+  public Remote getTarget()
+  {
+    return target;
+  }
+  
+  /**
+   * Return the actual GIOP object that would handle this request.
+   * 
+   * @return <code>this</code>, always.
+   */
+  public org.omg.CORBA.Object thisObject()
+  {
+    return this;
+  }
+  
+  /**
+   * Deactivates this object, disconnecting it from the orb.
+   */
+  public void deactivate()
+  {
+     _orb().disconnect(this);
+     _set_delegate(null);
+     target = null;
+  }
+
+  /**
+   * Get the {@link ORB} where this {@link Servant} is connected.
+   * 
+   * @return the ORB
+   */
+  public ORB orb()
+  {
+    return _orb();
+  }
+
+  /**
+   * Connect this servant to the given ORB. 
+   */
+  public void orb(ORB orb)
+  {
+    orb.connect(this);
+  }
+
+/**
+ * This method is invoked by ORB in response to the remote call. It redirects
+ * the call to one of the methods in the target.
+ * 
+ * @param method the name of the method to call.
+ * @param parameter_stream the input stream, from where the parameters must be
+ * read. 
+ * @param reply the response hander, providing methods to return the result.
+ * 
+ * @return the output stream, created by the response handler
+ * 
+ * @throws SystemException if one occurs during method invocation.
+ */  
+  public OutputStream _invoke(String method, 
+    org.omg.CORBA.portable.InputStream parameter_stream,
+    ResponseHandler reply)
+  {
+    try
+      {
+        InputStream in =(InputStream) parameter_stream;
+          
+#tie_methods          
+          
+       throw new BAD_OPERATION("No such method: '"+method+"'");
+      }
+    catch (SystemException ex)
+      {
+        throw ex;
+      }
+    catch (Throwable ex)
+      {
+        throw new UnknownException(ex);
+      }
+  }
+}
\ No newline at end of file
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub.jav
new file mode 100644 (file)
index 0000000..371e12d
--- /dev/null
@@ -0,0 +1,47 @@
+package #package;
+
+#imports
+import java.rmi.UnexpectedException;
+
+import javax.rmi.CORBA.Stub;
+import javax.rmi.CORBA.Util;
+
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.portable.ApplicationException;
+import org.omg.CORBA.portable.InputStream;
+import org.omg.CORBA.portable.RemarshalException;
+
+import org.omg.CORBA_2_3.portable.OutputStream;
+
+/**
+ * This class delegates its method calls to the remote GIOP object.
+ * It is normally generated with grmic.
+ */
+public class _#name_Stub extends Stub 
+  implements #interfaces
+{
+  /** 
+   * Use serialVersionUID for interoperability. 
+   */
+  private static final long serialVersionUID = 1;
+  
+  /**
+   * The array of repository ids, supported by this GIOP Object
+   */ 
+  private static final String[] type_ids =
+    { 
+#idList
+    };
+
+  /**
+   * Return the array of repository ids, supported by this GIOP Object.   
+   *
+   * @return the array of Ids.
+   */ 
+  public String[] _ids()
+  {
+    return type_ids;
+  }
+  
+#stub_methods    
+}
\ No newline at end of file
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/StubMethod.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/StubMethod.jav
new file mode 100644 (file)
index 0000000..17636de
--- /dev/null
@@ -0,0 +1,33 @@
+  /** @inheritDoc */
+  public #return_type #method_name(#argument_list) #throws
+  {
+    try
+      {
+        InputStream in = null;
+        try
+          {
+             OutputStream out = 
+               (OutputStream) _request("#giop_method_name", true);
+#argument_write                
+             in = _invoke(out);
+             #read_return
+          }
+        catch (ApplicationException ex)
+          {
+             in = ex.getInputStream();
+             throw new UnexpectedException(in.read_string());
+          }
+        catch (RemarshalException ex)
+          {
+             return #method_name(#argument_names);
+          }
+        finally
+          {
+             _releaseReply(in);
+          }
+        }
+    catch (SystemException ex)
+      {
+        throw Util.mapSystemException(ex);
+      }
+   }
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/StubMethodVoid.jav
new file mode 100644 (file)
index 0000000..0125a02
--- /dev/null
@@ -0,0 +1,32 @@
+  /** @inheritDoc */
+  public #return_type #method_name(#argument_list) #throws
+  {
+    try
+      {
+        InputStream in = null;
+        try
+          {
+             OutputStream out = 
+               (OutputStream) _request("#giop_method_name", true);
+#argument_write                
+             in = _invoke(out);
+          }
+        catch (ApplicationException ex)
+          {
+             in = ex.getInputStream();
+             throw new UnexpectedException(in.read_string());
+          }
+        catch (RemarshalException ex)
+          {
+             #method_name(#argument_names);
+          }
+        finally
+          {
+             _releaseReply(in);
+          }
+        }
+    catch (SystemException ex)
+      {
+        throw Util.mapSystemException(ex);
+      }
+   }
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12.jav
new file mode 100644 (file)
index 0000000..1c55a05
--- /dev/null
@@ -0,0 +1,62 @@
+package #package;
+
+#imports
+import java.lang.reflect.Method;
+import java.rmi.server.RemoteRef;
+import java.rmi.server.RemoteStub;
+import java.rmi.UnexpectedException;
+
+/**
+ * This class delegates its method calls to the remote RMI object, referenced
+ * by {@link RemoteRef}. 
+ *
+ * It is normally generated with rmic.
+ */
+public final class #name_Stub 
+    extends RemoteStub
+    implements #interfaces
+{
+    /**
+     * Use serialVersionUID for interoperability 
+     */
+    private static final long serialVersionUID = 2;
+    
+    /**
+     * The explaining message for {@ling UnexpectedException}.
+     */
+    private static final String exception_message = 
+      "undeclared checked exception";
+
+     /* All remote methods, invoked by this stub: */
+#stub_method_declarations
+    #zeroSizeObjecArray
+    static
+      {
+        #zeroSizeClassArray      
+        try 
+          {
+#stub_method_initializations
+          }
+        catch (NoSuchMethodException nex)
+          {
+             NoSuchMethodError err = new NoSuchMethodError(
+               "#name_Stub class initialization failed");
+             err.initCause(nex);
+             throw err;
+          }  
+      }
+    
+    /**
+     * Create the instance for _#name_Stub that forwards method calls to the
+     * remote object.
+     *
+     * @para the reference to the remote object.
+     */
+    public #name_Stub(RemoteRef reference) 
+    {
+       super(reference);
+    }    
+    
+    /* Methods */    
+#stub_methods    
+}
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12Method.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12Method.jav
new file mode 100644 (file)
index 0000000..9aaf8f5
--- /dev/null
@@ -0,0 +1,26 @@
+  /** @inheritDoc */
+  public #return_type #method_name(#argument_list) #throws
+  {
+    try
+      {
+        Object result =  ref.invoke(this, met_#method_name,
+                   #object_arg_list,
+                   #method_hash);
+        #return_statement           
+      }
+    catch (RuntimeException e)
+      {
+        throw e;
+      }
+    catch (RemoteException e)
+      {
+        throw e;
+      }
+    catch (Exception e)
+      {
+        UnexpectedException uex = new UnexpectedException(exception_message);
+        uex.detail = e;
+        throw uex;
+      }
+  }
+   
\ No newline at end of file
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Stub_12MethodVoid.jav
new file mode 100644 (file)
index 0000000..860a93c
--- /dev/null
@@ -0,0 +1,25 @@
+  /** @inheritDoc */
+  public void #method_name(#argument_list) #throws
+  {
+    try
+      {
+        ref.invoke(this, met_#method_name,
+          #object_arg_list,
+          #method_hash);
+      }
+    catch (RuntimeException e)
+      {
+        throw e;
+      }
+    catch (RemoteException e)
+      {
+        throw e;
+      }
+    catch (Exception e)
+      {
+        UnexpectedException uex = new UnexpectedException(exception_message);
+        uex.detail = e;
+        throw uex;
+      }
+  }
+   
\ No newline at end of file
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Tie.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/Tie.jav
new file mode 100644 (file)
index 0000000..797ae14
--- /dev/null
@@ -0,0 +1,184 @@
+package #package;
+
+#imports
+import java.rmi.Remote;
+import javax.rmi.PortableRemoteObject;
+import javax.rmi.CORBA.Tie;
+
+import org.omg.CORBA.BAD_OPERATION;
+import org.omg.CORBA.ORB;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.portable.OutputStream;
+import org.omg.CORBA.portable.ResponseHandler;
+import org.omg.CORBA.portable.UnknownException;
+import org.omg.PortableServer.Servant;
+import org.omg.PortableServer.POA;
+import org.omg.PortableServer.POAPackage.WrongPolicy;
+import org.omg.PortableServer.POAPackage.ObjectNotActive;
+import org.omg.PortableServer.POAPackage.ServantNotActive;
+
+import org.omg.CORBA_2_3.portable.InputStream;
+
+/**
+ * This class accepts remote calls to the served GIOP object and delegates them
+ * to the enclosed implementing class. Being servant, it must be connected to
+ * the ORB Poa. 
+ * It is normally generated with grmic -poa
+ */
+public class _#nameImpl_Tie extends Servant implements Tie
+{
+  /**
+   * All decoded remote calls are forwarded to this target.
+   */
+  #implName target;
+  
+  /**
+   * The array of repository ids, supported by this GIOP Object
+   */ 
+  private static final String[] type_ids =
+    { 
+#idList
+    };
+      
+  /**
+   * Get an array of all interfaces, supported by this 
+   * {@link Servant}.
+   * 
+   * @param poa unused
+   * @param objectId unused
+   * 
+   * @return the array of Ids.
+   */
+  public String[] _all_interfaces(POA poa,
+    byte[] objectId
+  )
+  {
+    return type_ids;
+  }
+  
+  
+  /**
+   * Set the invocation target, where all received calls are finally
+   * forwarded.
+   *
+   * @param a_target the forwarding target
+   *
+   * @throws ClassCastException if the target is not an instance of
+   * #implName
+   */ 
+  public void setTarget(Remote a_target)
+  {
+    this.target = (#implName) a_target;
+  }
+
+  /**
+   * Get the invocation target, where all received calls are finally
+   * forwarded.
+   *
+   * @return the target, an instance of
+   * #implName
+   */ 
+  public Remote getTarget()
+  {
+    return target;
+  }
+  
+  /**
+   * Return the actual GIOP object that would handle this request.
+   * 
+   * @return the GIOP object.
+   */
+  public org.omg.CORBA.Object thisObject()
+  {
+    return _this_object();
+  }
+  
+  /**
+   * Deactivate this {@link Servant}. The WrongPolicy, ObjectNotActive
+   * and ServantNotActive exceptions, if thrown during deactivation, are
+   * catched and silently ignored.
+   */
+  public void deactivate()
+  {
+    try
+      {
+        _poa().deactivate_object(_poa().servant_to_id(this));
+      }
+    catch (WrongPolicy exception)
+      {
+      }
+    catch (ObjectNotActive exception)
+      {
+      }
+    catch (ServantNotActive exception)
+      {
+      }
+  }
+
+  /**
+   * Get the {@link ORB} where this {@link Servant} is connected.
+   * 
+   * @return the ORB
+   */
+  public ORB orb()
+  {
+    return _orb();
+  }
+
+  /**
+   * Connect this servant to the given ORB. It is recommended to connect
+   * servant to the ORBs root or other POA rather than using this method.
+   */
+  public void orb(ORB orb)
+  {
+    try
+      {
+        ((org.omg.CORBA_2_3.ORB) orb).set_delegate(this);
+      }
+    catch (ClassCastException e)
+      {
+        throw new org.omg.CORBA.BAD_PARAM(
+          "POA Servant requires an instance of org.omg.CORBA_2_3.ORB"
+        );
+      }
+  }
+
+/**
+ * This method is invoked by ORB in response to the remote call. It redirects
+ * the call to one of the methods in the target.
+ * 
+ * @param method the name of the method to call.
+ * @param parameter_stream the input stream, from where the parameters must be
+ * read. 
+ * @param reply the response hander, providing methods to return the result.
+ * 
+ * @return the output stream, created by the response handler
+ * 
+ * @throws SystemException if one occurs during method invocation.
+ */  
+  public OutputStream _invoke(String method, 
+    org.omg.CORBA.portable.InputStream parameter_stream,
+    ResponseHandler reply
+  ) throws SystemException
+  {
+    try
+      {
+        InputStream in =(InputStream) parameter_stream;
+        switch (method.charAt(#hashCharPos))
+          {
+#tie_methods
+            default: break;
+          }
+          
+       throw new BAD_OPERATION("No such method: '"+method+"'");
+      }
+    catch (SystemException ex)
+      {
+        throw ex;
+      }
+    catch (Throwable ex)
+      {
+        throw new UnknownException(ex);
+      }
+  }
+}
\ No newline at end of file
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/TieMethod.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/TieMethod.jav
new file mode 100644 (file)
index 0000000..493f000
--- /dev/null
@@ -0,0 +1,11 @@
+          #hashCodeLabel
+            // #method_name
+            if (method.equals("#giop_method_name"))
+              {
+#read_and_define_args
+                OutputStream out = reply.createReply();
+                #return_type result = 
+                  target.#method_name(#argument_names);
+                #write_result                  
+                return out;
+              }
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav b/libjava/classpath/tools/resource/gnu/classpath/tools/rmic/templates/TieMethodVoid.jav
new file mode 100644 (file)
index 0000000..3db17da
--- /dev/null
@@ -0,0 +1,9 @@
+          #hashCodeLabel
+            // #method_name
+            if (method.equals("#giop_method_name"))
+              {
+#read_and_define_args
+                OutputStream out = reply.createReply();
+                target.#method_name(#argument_names);
+                return out;
+              }
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/rmid/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/rmid/messages.properties
new file mode 100644 (file)
index 0000000..234cea1
--- /dev/null
@@ -0,0 +1,50 @@
+# messages.properties -- English language messages
+# Copyright (C) 2006  Free Software Foundation, Inc.
+#
+# This file is part of GNU Classpath.
+#
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA.
+#
+# Linking this library statically or dynamically with other modules is
+# making a combined work based on this library.  Thus, the terms and
+# conditions of the GNU General Public License cover the whole
+# combination.
+#
+# As a special exception, the copyright holders of this library give you
+# permission to link this library with independent modules to produce an
+# executable, regardless of the license terms of these independent
+# modules, and to copy and distribute the resulting executable under
+# terms of your choice, provided that you also meet, for each linked
+# independent module, the terms and conditions of the license of that
+# module.  An independent module is a module which is not derived from
+# or based on this library.  If you modify this library, you may extend
+# this exception to your version of the library, but you are not
+# obligated to do so.  If you do not wish to do so, delete this
+# exception statement from your version.
+
+Main.Usage=Usage: rmid [OPTIONS]
+Main.ControlGroup=Activation process control
+Main.PortOption=port on which activation system is to be started
+Main.Port=PORT
+Main.Restart=restart activation system, clearing persistent naming database, if any
+Main.Stop=stop activation system
+Main.PersistenceGroup=Persistence
+Main.Persistent=make activation system persistent
+Main.Directory=directory in which to store persistent data
+Main.DirectoryArgument=DIRECTORY
+Main.DebugGroup=Debugging
+Main.Verbose=log binding events to standard out
+Main.InternalError=rmid: internal error:
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/rmiregistry/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/rmiregistry/messages.properties
new file mode 100644 (file)
index 0000000..46f7cfd
--- /dev/null
@@ -0,0 +1,48 @@
+# messages.properties -- English language messages
+# Copyright (C) 2006  Free Software Foundation, Inc.
+#
+# This file is part of GNU Classpath.
+#
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA.
+#
+# Linking this library statically or dynamically with other modules is
+# making a combined work based on this library.  Thus, the terms and
+# conditions of the GNU General Public License cover the whole
+# combination.
+#
+# As a special exception, the copyright holders of this library give you
+# permission to link this library with independent modules to produce an
+# executable, regardless of the license terms of these independent
+# modules, and to copy and distribute the resulting executable under
+# terms of your choice, provided that you also meet, for each linked
+# independent module, the terms and conditions of the license of that
+# module.  An independent module is a module which is not derived from
+# or based on this library.  If you modify this library, you may extend
+# this exception to your version of the library, but you are not
+# obligated to do so.  If you do not wish to do so, delete this
+# exception statement from your version.
+
+Main.Usage=Usage: rmiregistry [OPTIONS] [PORT]
+Main.ControlGroup=Registry process control
+Main.Restart=restart RMI naming service, clearing persistent naming database, if any
+Main.Stop=stop RMI naming service
+Main.PersistenceGroup=Persistence
+Main.Persistent=make RMI naming service persistent
+Main.Directory=directory in which to store persistent data
+Main.DirectoryArgument=DIRECTORY
+Main.DebugGroup=Debugging
+Main.Verbose=log binding events to standard out
+Main.InternalError=rmiregistry: internal error:
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/serialver/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/serialver/messages.properties
new file mode 100644 (file)
index 0000000..8900795
--- /dev/null
@@ -0,0 +1,44 @@
+# messages.properties -- English language messages
+# Copyright (C) 2006  Free Software Foundation, Inc.
+#
+# This file is part of GNU Classpath.
+#
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA.
+#
+# Linking this library statically or dynamically with other modules is
+# making a combined work based on this library.  Thus, the terms and
+# conditions of the GNU General Public License cover the whole
+# combination.
+#
+# As a special exception, the copyright holders of this library give you
+# permission to link this library with independent modules to produce an
+# executable, regardless of the license terms of these independent
+# modules, and to copy and distribute the resulting executable under
+# terms of your choice, provided that you also meet, for each linked
+# independent module, the terms and conditions of the license of that
+# module.  An independent module is a module which is not derived from
+# or based on this library.  If you modify this library, you may extend
+# this exception to your version of the library, but you are not
+# obligated to do so.  If you do not wish to do so, delete this
+# exception statement from your version.
+
+SerialVer.NoClassesSpecd=no classes specified
+SerialVer.HelpHeader=serialver [OPTIONS]... CLASS...\n\nPrint the serialVersionUID of the specified classes
+SerialVer.5=classpath
+SerialVer.ClasspathHelp=class path to use to find classes
+SerialVer.ClassNotSerial=serialver: class {0} is not serializable
+SerialVer.ClassNotFound=serialver: class {0} not found
+SerialVer.DupClasspath=classpath already specified
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/tnameserv/messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/tnameserv/messages.properties
new file mode 100644 (file)
index 0000000..3861e24
--- /dev/null
@@ -0,0 +1,43 @@
+# messages.properties -- English language messages
+# Copyright (C) 2006  Free Software Foundation, Inc.
+#
+# This file is part of GNU Classpath.
+#
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA.
+#
+# Linking this library statically or dynamically with other modules is
+# making a combined work based on this library.  Thus, the terms and
+# conditions of the GNU General Public License cover the whole
+# combination.
+#
+# As a special exception, the copyright holders of this library give you
+# permission to link this library with independent modules to produce an
+# executable, regardless of the license terms of these independent
+# modules, and to copy and distribute the resulting executable under
+# terms of your choice, provided that you also meet, for each linked
+# independent module, the terms and conditions of the license of that
+# module.  An independent module is a module which is not derived from
+# or based on this library.  If you modify this library, you may extend
+# this exception to your version of the library, but you are not
+# obligated to do so.  If you do not wish to do so, delete this
+# exception statement from your version.
+
+Main.Usage=Usage: tnameserv [OPTIONS]
+Main.ORBInitialPort=port on which naming service is to be started
+Main.Port=PORT
+Main.IOR=file in which to store naming service's IOR reference
+Main.IORFile=FILE
+Main.InternalError=tnameserv: internal error:
diff --git a/libjava/classpath/tools/resource/sun/rmi/rmic/messages.properties b/libjava/classpath/tools/resource/sun/rmi/rmic/messages.properties
new file mode 100644 (file)
index 0000000..4c897fd
--- /dev/null
@@ -0,0 +1,38 @@
+# messages.properties -- English language messages
+# Copyright (C) 2007 Free Software Foundation, Inc.
+#
+# This file is part of GNU Classpath.
+#
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301 USA.
+#
+# Linking this library statically or dynamically with other modules is
+# making a combined work based on this library.  Thus, the terms and
+# conditions of the GNU General Public License cover the whole
+# combination.
+#
+# As a special exception, the copyright holders of this library give you
+# permission to link this library with independent modules to produce an
+# executable, regardless of the license terms of these independent
+# modules, and to copy and distribute the resulting executable under
+# terms of your choice, provided that you also meet, for each linked
+# independent module, the terms and conditions of the license of that
+# module.  An independent module is a module which is not derived from
+# or based on this library.  If you modify this library, you may extend
+# this exception to your version of the library, but you are not
+# obligated to do so.  If you do not wish to do so, delete this
+# exception statement from your version.
+
+Main.InternalError:sun.rmi.rmic: failed to run rmic main method
index 3556220ae8ac9ee15148a8d1dd849b4a21b711fe..639a957194b435598428ce1c521eaa60b3151016 100644 (file)
@@ -48,7 +48,6 @@ import gnu.classpath.jdwp.util.MethodResult;
 import gnu.classpath.jdwp.util.MonitorInfo;
 import gnu.classpath.jdwp.value.Value;
 
-import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Collection;
 
index 43b9ae1a1001e9610688f3ed2b23b90ae6c1020d..eade26374db67249b94ea83c38144495b62fd682 100644 (file)
@@ -37,8 +37,14 @@ exception statement from your version. */
 
 package gnu.java.lang.management;
 
+import java.lang.management.ManagementFactory;
+import java.lang.management.MemoryPoolMXBean;
+import java.lang.management.MemoryType;
 import java.lang.management.MemoryUsage;
 
+import java.util.Iterator;
+import java.util.List;
+
 /**
  * Provides access to information about the memory
  * management of the current invocation of the virtual
@@ -62,10 +68,7 @@ final class VMMemoryMXBeanImpl
    */
   static MemoryUsage getHeapMemoryUsage()
   {
-    Runtime runtime = Runtime.getRuntime();
-    long totalMem = runtime.totalMemory();
-    return new MemoryUsage(-1, totalMem - runtime.freeMemory(),
-                          totalMem, runtime.maxMemory());
+    return getUsage(MemoryType.HEAP);
   }
 
   /**
@@ -76,7 +79,10 @@ final class VMMemoryMXBeanImpl
    * @return an {@link java.lang.management.MemoryUsage} instance
    *         for non-heap memory.
    */
-  static native MemoryUsage getNonHeapMemoryUsage();
+  static MemoryUsage getNonHeapMemoryUsage()
+  {
+    return getUsage(MemoryType.NON_HEAP);
+  }
 
   /**
    * Returns the number of objects ready to be garbage collected.
@@ -106,4 +112,45 @@ final class VMMemoryMXBeanImpl
    */
   static native void setVerbose(boolean verbose);
 
+  /**
+   * Totals the memory usage from all the pools that match
+   * the given type.
+   *
+   * @param type the type of memory pools to accumulate
+   *             (heap or non-heap).
+   * @return the memory usage overall.
+   */
+  private static MemoryUsage getUsage(MemoryType type) {
+    long init = 0, committed = 0, used = 0, max = 0;
+    Iterator pools =
+      ManagementFactory.getMemoryPoolMXBeans().iterator();
+    while (pools.hasNext())
+      {
+       MemoryPoolMXBean pool = (MemoryPoolMXBean) pools.next();
+       if (pool.getType() == type)
+         {
+           MemoryUsage usage = pool.getUsage();
+           if (init != -1)
+             {
+               long poolInit = usage.getInit();
+               if (poolInit == -1)
+                 init = -1;
+               else
+                 init += poolInit;
+             }
+           committed += usage.getCommitted();
+           used += usage.getUsed();
+           if (max != -1)
+             {
+               long poolMax = usage.getMax();
+               if (poolMax == -1)
+                 max = -1;
+               else
+                 max += poolMax;
+             }
+         }
+      }
+    return new MemoryUsage(init, used, committed, max);
+  }
+
 }
index 1f69877b6ba4922185f6ec4cfd289ad5d4091453..a9d1452b72d7c82dccc5228f9ce83945e37527e5 100644 (file)
@@ -256,7 +256,6 @@ public final class VMChannel
    * Assumes the that buffer list constains DirectBuffers.  Will perform
    * as gathering write.
    * 
-   * @param fd
    * @param srcs
    * @param offset
    * @param length
index 4f708a4a589755dbd1007b9537218bbee8ba7c03..2a2751765ec86490bd0175f5f76c305e9b948393 100644 (file)
@@ -80,10 +80,10 @@ final class VMFile
   static native boolean create(String path) throws IOException;
 
   /*
-   * This native function actually produces the list of file in this
+   * This native function actually produces the list of files in this
    * directory
    */
-  static native String[] list(String dirpath);
+  static native synchronized String[] list(String dirpath);
 
   /*
    * This native method actually performs the rename.
@@ -116,6 +116,21 @@ final class VMFile
    */
   static native boolean mkdir(String dirpath);
 
+  /**
+   * Gets the total bytes of the filesystem named by path.
+   */
+  public static native long getTotalSpace(String path);
+  
+  /**
+   * Gets the total free bytes of the filesystem named by path.
+   */
+  public static native long getFreeSpace(String path);
+  
+  /**
+   * Gets the available bytes of the filesystem named by path.
+   */
+  public static native long getUsableSpace(String path);
+  
   /**
    * Set the read permission of the file.
    */
index 25965068dafc629585f0a6d7d9444d298efd5a01..7e9620b4b59258fdefc728668162a0da3bf2c1e7 100644 (file)
@@ -43,8 +43,6 @@ import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
-import java.lang.reflect.Type;
-import java.lang.reflect.TypeVariable;
 
 /*
  * This class is a reference version, mainly for compiling a class library
@@ -298,12 +296,27 @@ final class VMClass
    */
   static String getSimpleName(Class klass)
   {
+    if (isAnonymousClass(klass))
+      return "";
     if (isArray(klass))
       {
        return getComponentType(klass).getSimpleName() + "[]";
       }
     String fullName = getName(klass);
-    return fullName.substring(fullName.lastIndexOf(".") + 1);
+    int pos = fullName.lastIndexOf("$");
+    if (pos == -1)
+      pos = 0;
+    else
+      {
+       ++pos;
+       while (Character.isDigit(fullName.charAt(pos)))
+         ++pos;
+      }
+    int packagePos = fullName.lastIndexOf(".", pos);
+    if (packagePos == -1)
+      return fullName.substring(pos);
+    else
+      return fullName.substring(packagePos + 1);
   }
 
   /**
@@ -357,6 +370,8 @@ final class VMClass
    */
   static String getCanonicalName(Class klass)
   {
+    if (isLocalClass(klass) || isAnonymousClass(klass))
+      return null;
     if (isArray(klass))
       {
        String componentName = getComponentType(klass).getCanonicalName();
@@ -368,9 +383,9 @@ final class VMClass
        String memberName = getDeclaringClass(klass).getCanonicalName();
        if (memberName != null)
          return memberName + "." + getSimpleName(klass);
+       else
+         return memberName;
       }
-    if (isLocalClass(klass) || isAnonymousClass(klass))
-      return null;
     return getName(klass);
   }
 
index 8a991c9ad787154d1f8bcf5c0a783784967ae385..58b3b45b420ba6d4bfce76f38d433a99cc85674c 100644 (file)
@@ -65,22 +65,6 @@ final class VMDouble
     initIDs();
   }
 
-  /**
-   * Convert the double to the IEEE 754 floating-point "double format" bit
-   * layout. Bit 63 (the most significant) is the sign bit, bits 62-52
-   * (masked by 0x7ff0000000000000L) represent the exponent, and bits 51-0
-   * (masked by 0x000fffffffffffffL) are the mantissa. This function
-   * collapses all versions of NaN to 0x7ff8000000000000L. The result of this
-   * function can be used as the argument to
-   * <code>Double.longBitsToDouble(long)</code> to obtain the original
-   * <code>double</code> value.
-   *
-   * @param value the <code>double</code> to convert
-   * @return the bits of the <code>double</code>
-   * @see #longBitsToDouble(long)
-   */
-  public static native long doubleToLongBits(double value);
-
   /**
    * Convert the double to the IEEE 754 floating-point "double format" bit
    * layout. Bit 63 (the most significant) is the sign bit, bits 62-52
index 15348130f10c4dd9ee7765562b944f60bfc60ee0..26d89dc9d19c962fc567d366298e1f9512cc426b 100644 (file)
@@ -63,21 +63,6 @@ final class VMFloat
       }
   }
 
-  /**
-   * Convert the float to the IEEE 754 floating-point "single format" bit
-   * layout. Bit 31 (the most significant) is the sign bit, bits 30-23
-   * (masked by 0x7f800000) represent the exponent, and bits 22-0
-   * (masked by 0x007fffff) are the mantissa. This function collapses all
-   * versions of NaN to 0x7fc00000. The result of this function can be used
-   * as the argument to <code>Float.intBitsToFloat(int)</code> to obtain the
-   * original <code>float</code> value.
-   *
-   * @param value the <code>float</code> to convert
-   * @return the bits of the <code>float</code>
-   * @see #intBitsToFloat(int)
-   */
-  static native int floatToIntBits(float value);
-
   /**
    * Convert the float to the IEEE 754 floating-point "single format" bit
    * layout. Bit 31 (the most significant) is the sign bit, bits 30-23
index eebee5f5d2a0c0effdc67be37d0b87f4400a2a39..8c604ccc9a6df65bebfc232b467381064de0a110 100644 (file)
@@ -42,6 +42,7 @@ import gnu.java.lang.ClassHelper;
 
 import gnu.java.lang.reflect.MethodSignatureParser;
 
+import java.lang.annotation.Annotation;
 import java.util.Arrays;
 
 /**
@@ -393,4 +394,27 @@ public final class Constructor<T>
     MethodSignatureParser p = new MethodSignatureParser(this, sig);
     return p.getGenericParameterTypes();
   }
+
+  /**
+   * <p>
+   * Return an array of arrays representing the annotations on each
+   * of the constructor's parameters.  The outer array is aligned against
+   * the parameters of the constructors and is thus equal in length to
+   * the number of parameters (thus having a length zero if there are none).
+   * Each array element in the outer array contains an inner array which
+   * holds the annotations.  This array has a length of zero if the parameter
+   * has no annotations.
+   * </p>
+   * <p>
+   * The returned annotations are serialized.  Changing the annotations has
+   * no affect on the return value of future calls to this method.
+   * </p>
+   * 
+   * @return an array of arrays which represents the annotations used on the
+   *         parameters of this constructor.  The order of the array elements
+   *         matches the declaration order of the parameters.
+   * @since 1.5
+   */
+  public native Annotation[][] getParameterAnnotations();
+
 }
index 2db59fee46fd4a44f559e451bc8004f7969589d2..d797d4fda1807183dacd4c88b74090e3512ff910 100644 (file)
@@ -42,6 +42,7 @@ import gnu.java.lang.ClassHelper;
 
 import gnu.java.lang.reflect.MethodSignatureParser;
 
+import java.lang.annotation.Annotation;
 import java.util.Arrays;
 
 /**
@@ -462,4 +463,27 @@ extends AccessibleObject implements Member, GenericDeclaration
    * @since 1.5
    */
   public native Object getDefaultValue();
+
+  /**
+   * <p>
+   * Return an array of arrays representing the annotations on each
+   * of the method's parameters.  The outer array is aligned against
+   * the parameters of the method and is thus equal in length to
+   * the number of parameters (thus having a length zero if there are none).
+   * Each array element in the outer array contains an inner array which
+   * holds the annotations.  This array has a length of zero if the parameter
+   * has no annotations.
+   * </p>
+   * <p>
+   * The returned annotations are serialized.  Changing the annotations has
+   * no affect on the return value of future calls to this method.
+   * </p>
+   * 
+   * @return an array of arrays which represents the annotations used on the
+   *         parameters of this method.  The order of the array elements
+   *         matches the declaration order of the parameters.
+   * @since 1.5
+   */
+  public native Annotation[][] getParameterAnnotations();
+
 }
index dc67d871968017a0b26c32769a64b5f1fead6811..5eeb158bc8159e65346ab44d01d4195be6c2ca46 100644 (file)
@@ -38,11 +38,6 @@ exception statement from your version.  */
 
 package java.security;
 
-import gnu.classpath.SystemProperties;
-import gnu.java.security.action.GetSecurityPropertyAction;
-
-import java.net.URL;
-
 /**
  * VM-specific methods for generating real (or almost real) random
  * seeds. VM implementors should write a version of this class that
index 04cdb53c32874761fb3f9088e36b453433d90086..03a48114eb37f743340b9acd71c7201ec94a8f92 100755 (executable)
@@ -5381,6 +5381,8 @@ case "${which_gcj}" in
       GCJH=gcjh
    ;;
 esac
+JAVAC="$GCJ -C"
+export JAVAC
 
 
 
@@ -5434,6 +5436,7 @@ echo "$as_me: error: Please supply an absolute path to the Escher library" >&2;}
   fi
 fi
 # -Werror causes unavoidable problems in code using alsa.
+ac_configure_args="$ac_configure_args --disable-regen-headers"
 ac_configure_args="$ac_configure_args --disable-Werror"
 
 # Only use libltdl for non-newlib builds.
@@ -6000,13 +6003,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:6003: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:6006: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:6006: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:6009: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:6009: output\"" >&5)
+  (eval echo "\"\$as_me:6012: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -7050,7 +7053,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 7053 "configure"' > conftest.$ac_ext
+  echo '#line 7056 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -8751,11 +8754,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8754: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8757: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8758: \$? = $ac_status" >&5
+   echo "$as_me:8761: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -9073,11 +9076,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9076: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9079: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:9080: \$? = $ac_status" >&5
+   echo "$as_me:9083: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -9178,11 +9181,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9181: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9184: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9185: \$? = $ac_status" >&5
+   echo "$as_me:9188: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -9233,11 +9236,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9236: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9239: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9240: \$? = $ac_status" >&5
+   echo "$as_me:9243: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -12085,7 +12088,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12088 "configure"
+#line 12091 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12185,7 +12188,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12188 "configure"
+#line 12191 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -14223,11 +14226,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14226: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14229: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:14230: \$? = $ac_status" >&5
+   echo "$as_me:14233: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -14322,11 +14325,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14325: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14328: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:14329: \$? = $ac_status" >&5
+   echo "$as_me:14332: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -14374,11 +14377,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:14377: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14380: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:14381: \$? = $ac_status" >&5
+   echo "$as_me:14384: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -15349,7 +15352,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-for ac_prog in gcj gcj-3.2 gcj-3.1 gcj-3.0 gcj-2.95
+for ac_prog in gcj
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -15508,7 +15511,7 @@ fi
 
 
 
-for ac_prog in gcj gcj-3.2 gcj-3.1 gcj-3.0 gcj-2.95
+for ac_prog in gcj
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -15762,11 +15765,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15765: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15768: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:15769: \$? = $ac_status" >&5
+   echo "$as_me:15772: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -16078,11 +16081,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16081: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16084: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:16085: \$? = $ac_status" >&5
+   echo "$as_me:16088: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -16177,11 +16180,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16180: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16183: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:16184: \$? = $ac_status" >&5
+   echo "$as_me:16187: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -16229,11 +16232,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:16232: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16235: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:16236: \$? = $ac_status" >&5
+   echo "$as_me:16239: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -18585,7 +18588,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then
   :
 else
   cat > conftest.$ac_ext << EOF
-#line 18588 "configure"
+#line 18591 "configure"
 struct S { ~S(); };
 void bar();
 void foo()
@@ -25367,7 +25370,7 @@ echo "$as_me: error: configure.ac is missing the substitutions above" >&2;}
 fi
 
 
-for ac_prog in gcj gcj-3.2 gcj-3.1 gcj-3.0 gcj-2.95
+for ac_prog in gcj
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
index 2ef3b7245b0a58d13a1b2ec66c11ec09f0f1959d..9d86cd831fb9eb7f16f9114b458b8b1b1920d066 100644 (file)
@@ -372,6 +372,8 @@ case "${which_gcj}" in
       GCJH=gcjh
    ;;
 esac
+JAVAC="$GCJ -C"
+export JAVAC
 
 AC_SUBST(GCJ_FOR_ECJX)
 AC_SUBST(GCJH)
@@ -424,6 +426,7 @@ else
   fi
 fi
 # -Werror causes unavoidable problems in code using alsa.
+ac_configure_args="$ac_configure_args --disable-regen-headers"
 ac_configure_args="$ac_configure_args --disable-Werror"
 dnl --with-gcj=$GCJ
 dnl --with-javah=$GCJH
index 60c045aa1163a0b0c3f8fc679a23fa73dce3df7b..8d18cdf2da58b463f99d8ed7d14be4d544337fbd 100644 (file)
@@ -855,6 +855,15 @@ struct _Jv_JNIEnv;
 typedef struct _Jv_Field *jfieldID;
 typedef struct _Jv_Method *jmethodID;
 
+enum _Jv_jobjectRefType
+{
+  JNIInvalidRefType    = 0,
+  JNILocalRefType      = 1,
+  JNIGlobalRefType     = 2,
+  JNIWeakGlobalRefType = 3
+};
+typedef enum _Jv_jobjectRefType jobjectRefType;
+
 extern "C" jobject _Jv_AllocObject (jclass) __attribute__((__malloc__));
 extern "C" jobject _Jv_AllocObjectNoFinalizer (jclass) __attribute__((__malloc__));
 extern "C" jobject _Jv_AllocObjectNoInitNoFinalizer (jclass) __attribute__((__malloc__));
index 4431e0f6a4765895efe09edd5eebb172db352172..acd0996ad579e503cbb26257f45acc1cd14a3c0f 100644 (file)
@@ -48,7 +48,6 @@ import gnu.classpath.jdwp.util.MethodResult;
 import gnu.classpath.jdwp.util.MonitorInfo;
 import gnu.classpath.jdwp.value.Value;
 
-import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Hashtable;
diff --git a/libjava/gnu/classpath/toolkit/DefaultDaemonThreadFactory.h b/libjava/gnu/classpath/toolkit/DefaultDaemonThreadFactory.h
new file mode 100644 (file)
index 0000000..ae86fa1
--- /dev/null
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_classpath_toolkit_DefaultDaemonThreadFactory__
+#define __gnu_classpath_toolkit_DefaultDaemonThreadFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace classpath
+    {
+      namespace toolkit
+      {
+          class DefaultDaemonThreadFactory;
+      }
+    }
+  }
+}
+
+class gnu::classpath::toolkit::DefaultDaemonThreadFactory : public ::java::lang::Object
+{
+
+public:
+  DefaultDaemonThreadFactory();
+  virtual ::java::lang::Thread * newThread(::java::lang::Runnable *);
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_classpath_toolkit_DefaultDaemonThreadFactory__
index 99086f13f2aa77ad6c5e96a2b06c432cf1df3859..a3f54bf8eddd9fcee3d68cccbbbae81b552db4a3 100644 (file)
@@ -93,6 +93,7 @@ private:
   JArray< jfloat > * pos;
   JArray< ::java::awt::geom::AffineTransform * > * transforms;
   jint layoutFlags;
+  ::java::awt::Shape * cleanOutline;
 public:
   static ::java::lang::Class class$;
 };
diff --git a/libjava/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.h b/libjava/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.h
new file mode 100644 (file)
index 0000000..3f0b4d2
--- /dev/null
@@ -0,0 +1,61 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_font_OpenTypeFontPeer$XFontMetrics__
+#define __gnu_java_awt_font_OpenTypeFontPeer$XFontMetrics__
+
+#pragma interface
+
+#include <java/awt/FontMetrics.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace font
+        {
+            class OpenTypeFontPeer;
+            class OpenTypeFontPeer$XFontMetrics;
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace awt
+    {
+        class Font;
+      namespace geom
+      {
+          class Point2D;
+      }
+    }
+  }
+}
+
+class gnu::java::awt::font::OpenTypeFontPeer$XFontMetrics : public ::java::awt::FontMetrics
+{
+
+public: // actually package-private
+  OpenTypeFontPeer$XFontMetrics(::gnu::java::awt::font::OpenTypeFontPeer *, ::java::awt::Font *);
+public:
+  virtual jint getAscent();
+  virtual jint getDescent();
+  virtual jint getHeight();
+  virtual jint charWidth(jchar);
+  virtual jint charsWidth(JArray< jchar > *, jint, jint);
+  virtual jint stringWidth(::java::lang::String *);
+private:
+  ::java::awt::geom::Point2D * __attribute__((aligned(__alignof__( ::java::awt::FontMetrics)))) cachedPoint;
+public: // actually package-private
+  ::gnu::java::awt::font::OpenTypeFontPeer * this$0;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_font_OpenTypeFontPeer$XFontMetrics__
diff --git a/libjava/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.h b/libjava/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.h
new file mode 100644 (file)
index 0000000..1fec3c2
--- /dev/null
@@ -0,0 +1,73 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_font_OpenTypeFontPeer$XLineMetrics__
+#define __gnu_java_awt_font_OpenTypeFontPeer$XLineMetrics__
+
+#pragma interface
+
+#include <java/awt/font/LineMetrics.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace font
+        {
+            class OpenTypeFontPeer;
+            class OpenTypeFontPeer$XLineMetrics;
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace awt
+    {
+        class Font;
+      namespace font
+      {
+          class FontRenderContext;
+          class GlyphVector;
+      }
+    }
+    namespace text
+    {
+        class CharacterIterator;
+    }
+  }
+}
+
+class gnu::java::awt::font::OpenTypeFontPeer$XLineMetrics : public ::java::awt::font::LineMetrics
+{
+
+public: // actually package-private
+  OpenTypeFontPeer$XLineMetrics(::gnu::java::awt::font::OpenTypeFontPeer *, ::java::awt::Font *, ::java::text::CharacterIterator *, jint, jint, ::java::awt::font::FontRenderContext *);
+public:
+  virtual jfloat getAscent();
+  virtual jint getBaselineIndex();
+  virtual JArray< jfloat > * getBaselineOffsets();
+  virtual jfloat getDescent();
+  virtual jfloat getHeight();
+  virtual jfloat getLeading();
+  virtual jint getNumChars();
+  virtual jfloat getStrikethroughOffset();
+  virtual jfloat getStrikethroughThickness();
+  virtual jfloat getUnderlineOffset();
+  virtual jfloat getUnderlineThickness();
+private:
+  ::java::awt::Font * __attribute__((aligned(__alignof__( ::java::awt::font::LineMetrics)))) font;
+  ::java::awt::font::GlyphVector * glyphVector;
+  ::java::awt::font::FontRenderContext * fontRenderContext;
+public: // actually package-private
+  ::gnu::java::awt::font::OpenTypeFontPeer * this$0;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_font_OpenTypeFontPeer$XLineMetrics__
diff --git a/libjava/gnu/java/awt/font/OpenTypeFontPeer.h b/libjava/gnu/java/awt/font/OpenTypeFontPeer.h
new file mode 100644 (file)
index 0000000..6129982
--- /dev/null
@@ -0,0 +1,96 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_font_OpenTypeFontPeer__
+#define __gnu_java_awt_font_OpenTypeFontPeer__
+
+#pragma interface
+
+#include <gnu/java/awt/peer/ClasspathFontPeer.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace font
+        {
+            class FontDelegate;
+            class OpenTypeFontPeer;
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace awt
+    {
+        class Font;
+        class FontMetrics;
+      namespace font
+      {
+          class FontRenderContext;
+          class GlyphVector;
+          class LineMetrics;
+      }
+      namespace geom
+      {
+          class AffineTransform;
+          class Rectangle2D;
+      }
+    }
+    namespace text
+    {
+        class CharacterIterator;
+    }
+  }
+}
+
+class gnu::java::awt::font::OpenTypeFontPeer : public ::gnu::java::awt::peer::ClasspathFontPeer
+{
+
+public:
+  OpenTypeFontPeer(::java::lang::String *, jint, jint);
+  OpenTypeFontPeer(::java::lang::String *, ::java::util::Map *);
+  virtual jboolean canDisplay(::java::awt::Font *, jint);
+  virtual jint canDisplayUpTo(::java::awt::Font *, ::java::text::CharacterIterator *, jint, jint);
+  virtual ::java::lang::String * getSubFamilyName(::java::awt::Font *, ::java::util::Locale *);
+  virtual ::java::lang::String * getPostScriptName(::java::awt::Font *);
+  virtual jint getNumGlyphs(::java::awt::Font *);
+  virtual jint getMissingGlyphCode(::java::awt::Font *);
+  virtual jbyte getBaselineFor(::java::awt::Font *, jchar);
+  virtual ::java::lang::String * getGlyphName(::java::awt::Font *, jint);
+  virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, ::java::text::CharacterIterator *);
+  virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, JArray< jint > *);
+  virtual ::java::awt::font::GlyphVector * layoutGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, JArray< jchar > *, jint, jint, jint);
+  virtual ::java::awt::FontMetrics * getFontMetrics(::java::awt::Font *);
+  virtual jboolean hasUniformLineMetrics(::java::awt::Font *);
+  virtual ::java::awt::font::LineMetrics * getLineMetrics(::java::awt::Font *, ::java::text::CharacterIterator *, jint, jint, ::java::awt::font::FontRenderContext *);
+  virtual ::java::awt::geom::Rectangle2D * getMaxCharBounds(::java::awt::Font *, ::java::awt::font::FontRenderContext *);
+  static ::java::lang::String * encodeFont(::java::lang::String *, ::java::util::Map *);
+public: // actually package-private
+  static ::java::lang::String * encodeFont(::java::lang::String *, jint);
+  static ::java::lang::String * validName(::java::lang::String *);
+public:
+  static JArray< ::java::lang::String * > * getAvailableFontFamilyNames(::java::util::Locale *);
+private:
+  static ::java::util::Set * getFontNames();
+  ::java::lang::String * mapFontToFilename(::java::lang::String *);
+public: // actually package-private
+  static ::gnu::java::awt::font::FontDelegate * access$0(::gnu::java::awt::font::OpenTypeFontPeer *);
+  static ::java::awt::geom::AffineTransform * access$1();
+private:
+  static ::java::util::Properties * fontProperties;
+  static ::java::util::Set * availableFontNames;
+  static ::java::util::Map * fontToFileMap;
+  static ::java::awt::geom::AffineTransform * IDENDITY;
+  ::gnu::java::awt::font::FontDelegate * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::ClasspathFontPeer)))) fontDelegate;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_font_OpenTypeFontPeer__
diff --git a/libjava/gnu/java/awt/image/AsyncImage$AsyncImageSource.h b/libjava/gnu/java/awt/image/AsyncImage$AsyncImageSource.h
new file mode 100644 (file)
index 0000000..ecd73a5
--- /dev/null
@@ -0,0 +1,61 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_image_AsyncImage$AsyncImageSource__
+#define __gnu_java_awt_image_AsyncImage$AsyncImageSource__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace image
+        {
+            class AsyncImage;
+            class AsyncImage$AsyncImageSource;
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace awt
+    {
+      namespace image
+      {
+          class ImageConsumer;
+          class ImageProducer;
+      }
+    }
+  }
+}
+
+class gnu::java::awt::image::AsyncImage$AsyncImageSource : public ::java::lang::Object
+{
+
+  AsyncImage$AsyncImageSource(::gnu::java::awt::image::AsyncImage *);
+public:
+  virtual void addConsumer(::java::awt::image::ImageConsumer *);
+  virtual jboolean isConsumer(::java::awt::image::ImageConsumer *);
+  virtual void removeConsumer(::java::awt::image::ImageConsumer *);
+  virtual void requestTopDownLeftRightResend(::java::awt::image::ImageConsumer *);
+  virtual void startProduction(::java::awt::image::ImageConsumer *);
+private:
+  ::java::awt::image::ImageProducer * getRealSource();
+public: // actually package-private
+  AsyncImage$AsyncImageSource(::gnu::java::awt::image::AsyncImage *, ::gnu::java::awt::image::AsyncImage$AsyncImageSource *);
+private:
+  ::java::awt::image::ImageProducer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) realSource;
+public: // actually package-private
+  ::gnu::java::awt::image::AsyncImage * this$0;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_image_AsyncImage$AsyncImageSource__
diff --git a/libjava/gnu/java/awt/image/AsyncImage.h b/libjava/gnu/java/awt/image/AsyncImage.h
new file mode 100644 (file)
index 0000000..7c1a731
--- /dev/null
@@ -0,0 +1,72 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_image_AsyncImage__
+#define __gnu_java_awt_image_AsyncImage__
+
+#pragma interface
+
+#include <java/awt/Image.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace image
+        {
+            class AsyncImage;
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace awt
+    {
+        class Graphics;
+        class Image;
+      namespace image
+      {
+          class ImageObserver;
+          class ImageProducer;
+      }
+    }
+  }
+}
+
+class gnu::java::awt::image::AsyncImage : public ::java::awt::Image
+{
+
+public: // actually package-private
+  AsyncImage();
+public:
+  virtual void flush();
+  virtual ::java::awt::Graphics * getGraphics();
+  virtual jboolean isComplete();
+  virtual jint getHeight(::java::awt::image::ImageObserver *);
+  virtual ::java::lang::Object * getProperty(::java::lang::String *, ::java::awt::image::ImageObserver *);
+  virtual ::java::awt::image::ImageProducer * getSource();
+  virtual jint getWidth(::java::awt::image::ImageObserver *);
+  virtual void addObserver(::java::awt::image::ImageObserver *);
+  virtual jboolean prepareImage(jint, jint, ::java::awt::image::ImageObserver *);
+  virtual jint checkImage(jint, jint, ::java::awt::image::ImageObserver *);
+  virtual ::java::awt::Image * getRealImage();
+  virtual void setRealImage(::java::awt::Image *);
+  virtual void notifyObservers(jint, jint, jint, jint, jint);
+  virtual void waitForImage(::java::awt::image::ImageObserver *);
+public: // actually package-private
+  static ::java::awt::Image * access$0(::gnu::java::awt::image::AsyncImage *);
+private:
+  ::java::awt::Image * volatile __attribute__((aligned(__alignof__( ::java::awt::Image)))) realImage;
+public: // actually package-private
+  ::java::util::HashSet * observers;
+private:
+  jboolean volatile complete;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_image_AsyncImage__
diff --git a/libjava/gnu/java/awt/image/ImageConverter.h b/libjava/gnu/java/awt/image/ImageConverter.h
new file mode 100644 (file)
index 0000000..8df255f
--- /dev/null
@@ -0,0 +1,82 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_image_ImageConverter__
+#define __gnu_java_awt_image_ImageConverter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace image
+        {
+            class AsyncImage;
+            class ImageConverter;
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace awt
+    {
+        class Image;
+      namespace image
+      {
+          class BufferedImage;
+          class ColorModel;
+          class IndexColorModel;
+      }
+    }
+  }
+}
+
+class gnu::java::awt::image::ImageConverter : public ::java::lang::Object
+{
+
+public:
+  ImageConverter();
+  virtual void setDimensions(jint, jint);
+  virtual void setProperties(::java::util::Hashtable *);
+  virtual void setColorModel(::java::awt::image::ColorModel *);
+  virtual void setHints(jint);
+  virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jbyte > *, jint, jint);
+  virtual void setPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jint > *, jint, jint);
+private:
+  ::java::awt::image::ColorModel * setupColorModel(::java::awt::image::ColorModel *);
+  void createImage();
+  jint transferPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jbyte > *, jint, jint, jint);
+  jint transferPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jint > *, jint, jint, jint);
+  jint convertPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jbyte > *, jint, jint, jint);
+  jint convertPixels(jint, jint, jint, jint, ::java::awt::image::ColorModel *, JArray< jint > *, jint, jint, jint);
+  jint convertIndexColorModelToSRGB(jint, jint, jint, jint, ::java::awt::image::IndexColorModel *, JArray< jbyte > *, jint, jint, jint);
+  jint convertIndexColorModelToSRGB(jint, jint, jint, jint, ::java::awt::image::IndexColorModel *, JArray< jint > *, jint, jint, jint);
+  jint updateTransparency(jint, jint);
+public:
+  virtual void imageComplete(jint);
+  virtual void setTargetColorModel(::java::awt::image::ColorModel *);
+  virtual ::java::awt::Image * getImage();
+  static ::java::lang::String * IMAGE_TRANSPARENCY_PROPERTY;
+  static ::java::lang::String * IMAGE_PROPERTIES_PROPERTY;
+private:
+  ::gnu::java::awt::image::AsyncImage * __attribute__((aligned(__alignof__( ::java::lang::Object)))) image;
+  ::java::awt::image::BufferedImage * bImage;
+  ::java::util::Hashtable * imageProperties;
+  jint width;
+  jint height;
+  ::java::awt::image::ColorModel * colorModel;
+  ::java::awt::image::ColorModel * targetColorModel;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_image_ImageConverter__
index 035671677349c65f4ed6758025cb9c33669fd03b..92f78733b29c410d23dbd1b2fe36098be93122de 100644 (file)
@@ -23,6 +23,7 @@ extern "Java"
             class ScanlineConverter;
             class ScanlineCoverage;
             class ShapeCache;
+            class TextCacheKey;
         }
       }
     }
@@ -170,7 +171,6 @@ public: // actually protected
   virtual ::java::awt::Rectangle * getDeviceBounds();
   virtual void rawDrawLine(jint, jint, jint, jint);
   virtual void rawDrawRect(jint, jint, jint, jint);
-  virtual void rawDrawString(::java::lang::String *, jint, jint);
   virtual void rawClearRect(jint, jint, jint, jint);
   virtual void rawFillRect(jint, jint, jint, jint);
   virtual jboolean rawDrawImage(::java::awt::Image *, jint, jint, ::java::awt::image::ImageObserver *);
@@ -187,11 +187,15 @@ private:
   void updateOptimization();
   static ::java::awt::Rectangle * computeIntersection(jint, jint, jint, jint, ::java::awt::Rectangle *);
   void updateClip(::java::awt::geom::AffineTransform *);
-  ::gnu::java::awt::java2d::ShapeCache * getShapeCache();
   ::gnu::java::awt::java2d::ScanlineConverter * getScanlineConverter();
+  void freeScanlineConverter(::gnu::java::awt::java2d::ScanlineConverter *);
+  static jboolean DEFAULT_TEXT_AA;
   static ::java::awt::Font * FONT;
-  static ::java::lang::ThreadLocal * shapeCache;
-  static ::java::lang::ThreadLocal * scanlineConverters;
+  static const jint GV_CACHE_SIZE = 50;
+  static ::gnu::java::awt::java2d::ShapeCache * shapeCache;
+  static ::java::util::LinkedList * scanlineConverters;
+  static ::java::util::Map * gvCache;
+  static ::gnu::java::awt::java2d::TextCacheKey * searchTextKey;
 public: // actually protected
   ::java::awt::geom::AffineTransform * __attribute__((aligned(__alignof__( ::java::awt::Graphics2D)))) transform__;
 private:
diff --git a/libjava/gnu/java/awt/java2d/PixelCoverage$Bucket.h b/libjava/gnu/java/awt/java2d/PixelCoverage$Bucket.h
new file mode 100644 (file)
index 0000000..07b6ac0
--- /dev/null
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_java2d_PixelCoverage$Bucket__
+#define __gnu_java_awt_java2d_PixelCoverage$Bucket__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace java2d
+        {
+            class PixelCoverage$Bucket;
+        }
+      }
+    }
+  }
+}
+
+class gnu::java::awt::java2d::PixelCoverage$Bucket : public ::java::lang::Object
+{
+
+  PixelCoverage$Bucket();
+public: // actually package-private
+  PixelCoverage$Bucket(::gnu::java::awt::java2d::PixelCoverage$Bucket *);
+  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) xPos;
+  jint xCov;
+  jint yCov;
+  ::gnu::java::awt::java2d::PixelCoverage$Bucket * next;
+  ::gnu::java::awt::java2d::PixelCoverage$Bucket * prev;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_java2d_PixelCoverage$Bucket__
diff --git a/libjava/gnu/java/awt/java2d/PixelCoverage.h b/libjava/gnu/java/awt/java2d/PixelCoverage.h
new file mode 100644 (file)
index 0000000..75a5057
--- /dev/null
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_java2d_PixelCoverage__
+#define __gnu_java_awt_java2d_PixelCoverage__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace java2d
+        {
+            class PixelCoverage;
+            class PixelCoverage$Bucket;
+        }
+      }
+    }
+  }
+}
+
+class gnu::java::awt::java2d::PixelCoverage : public ::java::lang::Object
+{
+
+public: // actually package-private
+  PixelCoverage();
+  void rewind();
+  void clear();
+  void add(jint, jint, jint);
+private:
+  ::gnu::java::awt::java2d::PixelCoverage$Bucket * findOrInsert(jint);
+  ::gnu::java::awt::java2d::PixelCoverage$Bucket * __attribute__((aligned(__alignof__( ::java::lang::Object)))) head;
+  ::gnu::java::awt::java2d::PixelCoverage$Bucket * current;
+  ::gnu::java::awt::java2d::PixelCoverage$Bucket * last;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_java2d_PixelCoverage__
index 8ef5369096d91f6c1de1e4cc836bdea36c4c9a87..b2da8ffdcd834b45e006e455cfcadd44ed27af0d 100644 (file)
@@ -50,11 +50,11 @@ class gnu::java::awt::java2d::ScanlineConverter : public ::java::lang::Object
 public: // actually package-private
   ScanlineConverter();
 public:
-  void renderShape(::gnu::java::awt::java2d::Pixelizer *, ::java::awt::Shape *, ::java::awt::Shape *, ::java::awt::geom::AffineTransform *, jint, ::java::awt::RenderingHints *);
+  void renderShape(::gnu::java::awt::java2d::Pixelizer *, ::java::awt::Shape *, ::java::awt::Shape *, ::java::awt::geom::AffineTransform *, jint, jint, ::java::awt::RenderingHints *);
 private:
   void clear();
   void doScanline(::gnu::java::awt::java2d::Pixelizer *, jint, jboolean, jboolean);
-  void setResolution(jint);
+  void setResolution(jint, jint);
   void setUpperBounds(jint);
   void addShape(::java::awt::geom::PathIterator *, jboolean);
   void addEdge(::gnu::java::awt::java2d::PolyEdge *);
@@ -63,11 +63,11 @@ private:
   void edgePoolAdd(jint, jint, jint, jint, jboolean);
   static jint FIXED_DIGITS;
   static jint ONE;
-  static jint Y_RESOLUTION;
   jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) numScanlines;
   JArray< ::gnu::java::awt::java2d::Scanline * > * scanlines;
   jint upperBounds;
   jint resolution;
+  jint yResolution;
   jint halfStep;
   JArray< jfloat > * coords;
   ::gnu::java::awt::java2d::ActiveEdges * activeEdges;
diff --git a/libjava/gnu/java/awt/java2d/ShapeWrapper.h b/libjava/gnu/java/awt/java2d/ShapeWrapper.h
new file mode 100644 (file)
index 0000000..62c9b35
--- /dev/null
@@ -0,0 +1,63 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_java2d_ShapeWrapper__
+#define __gnu_java_awt_java2d_ShapeWrapper__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace java2d
+        {
+            class ShapeWrapper;
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace awt
+    {
+        class Rectangle;
+        class Shape;
+      namespace geom
+      {
+          class AffineTransform;
+          class PathIterator;
+          class Point2D;
+          class Rectangle2D;
+      }
+    }
+  }
+}
+
+class gnu::java::awt::java2d::ShapeWrapper : public ::java::lang::Object
+{
+
+public:
+  ShapeWrapper(::java::awt::Shape *);
+  virtual jboolean contains(jdouble, jdouble);
+  virtual jboolean contains(::java::awt::geom::Point2D *);
+  virtual jboolean contains(jdouble, jdouble, jdouble, jdouble);
+  virtual jboolean contains(::java::awt::geom::Rectangle2D *);
+  virtual ::java::awt::Rectangle * getBounds();
+  virtual ::java::awt::geom::Rectangle2D * getBounds2D();
+  virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *);
+  virtual ::java::awt::geom::PathIterator * getPathIterator(::java::awt::geom::AffineTransform *, jdouble);
+  virtual jboolean intersects(jdouble, jdouble, jdouble, jdouble);
+  virtual jboolean intersects(::java::awt::geom::Rectangle2D *);
+private:
+  ::java::awt::Shape * __attribute__((aligned(__alignof__( ::java::lang::Object)))) shape;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_java2d_ShapeWrapper__
diff --git a/libjava/gnu/java/awt/java2d/TextCacheKey.h b/libjava/gnu/java/awt/java2d/TextCacheKey.h
new file mode 100644 (file)
index 0000000..9904a6a
--- /dev/null
@@ -0,0 +1,57 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_java2d_TextCacheKey__
+#define __gnu_java_awt_java2d_TextCacheKey__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace java2d
+        {
+            class TextCacheKey;
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace awt
+    {
+        class Font;
+      namespace font
+      {
+          class FontRenderContext;
+      }
+    }
+  }
+}
+
+class gnu::java::awt::java2d::TextCacheKey : public ::java::lang::Object
+{
+
+public:
+  TextCacheKey();
+  TextCacheKey(::java::lang::String *, ::java::awt::Font *, ::java::awt::font::FontRenderContext *);
+  virtual void setString(::java::lang::String *);
+  virtual void setFontRenderContext(::java::awt::font::FontRenderContext *);
+  virtual void setFont(::java::awt::Font *);
+  virtual jboolean equals(::java::lang::Object *);
+  virtual jint hashCode();
+private:
+  ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) string;
+  ::java::awt::font::FontRenderContext * fontRenderContext;
+  ::java::awt::Font * font;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_java2d_TextCacheKey__
index 9379c5ea611b0a6876a7f015cd9822e4e7856339..a9b70e73bcb0f34ef7661bf9051d36ae88402453 100644 (file)
@@ -76,7 +76,7 @@ private:
   void lock();
   void unlock();
 public: // actually protected
-  virtual jlong initFromVolatile(jlong, jint, jint);
+  virtual jlong initFromVolatile(jlong);
 private:
   void start_gdk_drawing();
   void end_gdk_drawing();
index fa35e2ad70b64085a0088bb4a698df8b2d2234c3..78c7127c85da5c51f983ff8e8e3825d347adc2f2 100644 (file)
@@ -87,7 +87,9 @@ public: // actually package-private
   virtual void gtkWidgetGetDimensions(JArray< jint > *);
   virtual void gtkWidgetGetPreferredDimensions(JArray< jint > *);
   virtual void gtkWindowGetLocationOnScreen(JArray< jint > *);
+  virtual void gtkWindowGetLocationOnScreenUnlocked(JArray< jint > *);
   virtual void gtkWidgetGetLocationOnScreen(JArray< jint > *);
+  virtual void gtkWidgetGetLocationOnScreenUnlocked(JArray< jint > *);
   virtual void gtkWidgetSetCursor(jint, ::gnu::java::awt::peer::gtk::GtkImage *, jint, jint);
   virtual void gtkWidgetSetCursorUnlocked(jint, ::gnu::java::awt::peer::gtk::GtkImage *, jint, jint);
   virtual void gtkWidgetSetBackground(jint, jint, jint);
index be483954424eeee7439b60b126536ce439957fc5..463d617f34877466ab55cb0a1de4239ab00a9738 100644 (file)
@@ -28,7 +28,9 @@ extern "Java"
   {
     namespace management
     {
+        class MBeanConstructorInfo;
         class MBeanInfo;
+        class MBeanOperationInfo;
         class MBeanParameterInfo;
       namespace openmbean
       {
@@ -51,6 +53,10 @@ public:
   virtual ::java::lang::Object * getAttribute(::java::lang::String *);
 public: // actually protected
   virtual ::javax::management::MBeanInfo * getCachedMBeanInfo();
+  virtual ::java::lang::String * getDescription(::javax::management::MBeanConstructorInfo *, ::javax::management::MBeanParameterInfo *, jint);
+  virtual ::java::lang::String * getDescription(::javax::management::MBeanOperationInfo *, ::javax::management::MBeanParameterInfo *, jint);
+  virtual ::java::lang::String * getParameterName(::javax::management::MBeanConstructorInfo *, ::javax::management::MBeanParameterInfo *, jint);
+  virtual ::java::lang::String * getParameterName(::javax::management::MBeanOperationInfo *, ::javax::management::MBeanParameterInfo *, jint);
 public:
   virtual ::javax::management::MBeanInfo * getMBeanInfo();
 private:
diff --git a/libjava/gnu/java/nio/charset/ByteCharset$1.h b/libjava/gnu/java/nio/charset/ByteCharset$1.h
new file mode 100644 (file)
index 0000000..cc36fe8
--- /dev/null
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_nio_charset_ByteCharset$1__
+#define __gnu_java_nio_charset_ByteCharset$1__
+
+#pragma interface
+
+#include <gnu/java/nio/charset/ByteDecodeLoopHelper.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace nio
+      {
+        namespace charset
+        {
+            class ByteCharset$1;
+            class ByteCharset$Decoder;
+        }
+      }
+    }
+  }
+}
+
+class gnu::java::nio::charset::ByteCharset$1 : public ::gnu::java::nio::charset::ByteDecodeLoopHelper
+{
+
+public: // actually package-private
+  ByteCharset$1(::gnu::java::nio::charset::ByteCharset$Decoder *);
+public: // actually protected
+  jboolean isMappable(jbyte);
+  jchar mapToChar(jbyte);
+public: // actually package-private
+  ::gnu::java::nio::charset::ByteCharset$Decoder * __attribute__((aligned(__alignof__( ::gnu::java::nio::charset::ByteDecodeLoopHelper)))) this$1;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_nio_charset_ByteCharset$1__
diff --git a/libjava/gnu/java/nio/charset/ByteCharset$2.h b/libjava/gnu/java/nio/charset/ByteCharset$2.h
new file mode 100644 (file)
index 0000000..924e44c
--- /dev/null
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_nio_charset_ByteCharset$2__
+#define __gnu_java_nio_charset_ByteCharset$2__
+
+#pragma interface
+
+#include <gnu/java/nio/charset/ByteEncodeLoopHelper.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace nio
+      {
+        namespace charset
+        {
+            class ByteCharset$2;
+            class ByteCharset$Encoder;
+        }
+      }
+    }
+  }
+}
+
+class gnu::java::nio::charset::ByteCharset$2 : public ::gnu::java::nio::charset::ByteEncodeLoopHelper
+{
+
+public: // actually package-private
+  ByteCharset$2(::gnu::java::nio::charset::ByteCharset$Encoder *);
+public: // actually protected
+  jboolean isMappable(jchar);
+  jbyte mapToByte(jchar);
+public: // actually package-private
+  ::gnu::java::nio::charset::ByteCharset$Encoder * __attribute__((aligned(__alignof__( ::gnu::java::nio::charset::ByteEncodeLoopHelper)))) this$1;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_nio_charset_ByteCharset$2__
index 584b15fe5ba4a45d36822cf9e797fa8412006f80..0f5dd6c65a7408d96a273fd1906d79264248c236 100644 (file)
@@ -21,6 +21,7 @@ extern "Java"
         {
             class ByteCharset;
             class ByteCharset$Decoder;
+            class ByteDecodeLoopHelper;
         }
       }
     }
@@ -46,8 +47,11 @@ public: // actually package-private
   ByteCharset$Decoder(::gnu::java::nio::charset::ByteCharset *);
 public: // actually protected
   ::java::nio::charset::CoderResult * decodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *);
+public: // actually package-private
+  static JArray< jchar > * access$0(::gnu::java::nio::charset::ByteCharset$Decoder *);
 private:
   JArray< jchar > * __attribute__((aligned(__alignof__( ::java::nio::charset::CharsetDecoder)))) lookup;
+  ::gnu::java::nio::charset::ByteDecodeLoopHelper * helper;
 public:
   static ::java::lang::Class class$;
 };
index cc31ae43eece747b0799d8223fd1c4e2731dff17..019bb4b5d6e3f4a9ff06a64e5e2280e5eab1c242 100644 (file)
@@ -21,6 +21,7 @@ extern "Java"
         {
             class ByteCharset;
             class ByteCharset$Encoder;
+            class ByteEncodeLoopHelper;
         }
       }
     }
@@ -49,8 +50,11 @@ public:
   jboolean canEncode(::java::lang::CharSequence *);
 public: // actually protected
   ::java::nio::charset::CoderResult * encodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *);
+public: // actually package-private
+  static JArray< jbyte > * access$0(::gnu::java::nio::charset::ByteCharset$Encoder *);
 private:
   JArray< jbyte > * __attribute__((aligned(__alignof__( ::java::nio::charset::CharsetEncoder)))) lookup;
+  ::gnu::java::nio::charset::ByteEncodeLoopHelper * helper;
 public:
   static ::java::lang::Class class$;
 };
index 045e03fde28357e86874489c302efbe17c31b98b..aa0890cb16def41f9368339c04ec43f55b1a2283 100644 (file)
@@ -42,7 +42,7 @@ class gnu::java::nio::charset::ByteCharset : public ::java::nio::charset::Charse
 {
 
 public: // actually package-private
-  ByteCharset(::java::lang::String *, JArray< ::java::lang::String * > *);
+  ByteCharset(::java::lang::String *, JArray< ::java::lang::String * > *, JArray< jchar > *);
 public:
   virtual jboolean contains(::java::nio::charset::Charset *);
 public: // actually package-private
diff --git a/libjava/gnu/java/nio/charset/ByteDecodeLoopHelper.h b/libjava/gnu/java/nio/charset/ByteDecodeLoopHelper.h
new file mode 100644 (file)
index 0000000..1a373a1
--- /dev/null
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_nio_charset_ByteDecodeLoopHelper__
+#define __gnu_java_nio_charset_ByteDecodeLoopHelper__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace nio
+      {
+        namespace charset
+        {
+            class ByteDecodeLoopHelper;
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace nio
+    {
+        class ByteBuffer;
+        class CharBuffer;
+      namespace charset
+      {
+          class CoderResult;
+      }
+    }
+  }
+}
+
+class gnu::java::nio::charset::ByteDecodeLoopHelper : public ::java::lang::Object
+{
+
+public:
+  ByteDecodeLoopHelper();
+public: // actually protected
+  virtual jboolean isMappable(jbyte) = 0;
+  virtual jchar mapToChar(jbyte) = 0;
+public: // actually package-private
+  virtual ::java::nio::charset::CoderResult * decodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *);
+private:
+  ::java::nio::charset::CoderResult * normalDecodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *);
+  ::java::nio::charset::CoderResult * arrayDecodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *);
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_nio_charset_ByteDecodeLoopHelper__
diff --git a/libjava/gnu/java/nio/charset/ByteEncodeLoopHelper.h b/libjava/gnu/java/nio/charset/ByteEncodeLoopHelper.h
new file mode 100644 (file)
index 0000000..0b67645
--- /dev/null
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_nio_charset_ByteEncodeLoopHelper__
+#define __gnu_java_nio_charset_ByteEncodeLoopHelper__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace nio
+      {
+        namespace charset
+        {
+            class ByteEncodeLoopHelper;
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace nio
+    {
+        class ByteBuffer;
+        class CharBuffer;
+      namespace charset
+      {
+          class CoderResult;
+      }
+    }
+  }
+}
+
+class gnu::java::nio::charset::ByteEncodeLoopHelper : public ::java::lang::Object
+{
+
+public:
+  ByteEncodeLoopHelper();
+public: // actually protected
+  virtual jboolean isMappable(jchar) = 0;
+  virtual jbyte mapToByte(jchar) = 0;
+public: // actually package-private
+  virtual ::java::nio::charset::CoderResult * encodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *);
+private:
+  ::java::nio::charset::CoderResult * normalEncodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *);
+  ::java::nio::charset::CoderResult * arrayEncodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *);
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_nio_charset_ByteEncodeLoopHelper__
diff --git a/libjava/gnu/java/nio/charset/ISO_8859_1$1.h b/libjava/gnu/java/nio/charset/ISO_8859_1$1.h
new file mode 100644 (file)
index 0000000..ceaa655
--- /dev/null
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_nio_charset_ISO_8859_1$1__
+#define __gnu_java_nio_charset_ISO_8859_1$1__
+
+#pragma interface
+
+#include <gnu/java/nio/charset/ByteDecodeLoopHelper.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace nio
+      {
+        namespace charset
+        {
+            class ISO_8859_1$1;
+        }
+      }
+    }
+  }
+}
+
+class gnu::java::nio::charset::ISO_8859_1$1 : public ::gnu::java::nio::charset::ByteDecodeLoopHelper
+{
+
+public: // actually package-private
+  ISO_8859_1$1();
+public: // actually protected
+  jboolean isMappable(jbyte);
+  jchar mapToChar(jbyte);
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_nio_charset_ISO_8859_1$1__
diff --git a/libjava/gnu/java/nio/charset/ISO_8859_1$2.h b/libjava/gnu/java/nio/charset/ISO_8859_1$2.h
new file mode 100644 (file)
index 0000000..849ebe6
--- /dev/null
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_nio_charset_ISO_8859_1$2__
+#define __gnu_java_nio_charset_ISO_8859_1$2__
+
+#pragma interface
+
+#include <gnu/java/nio/charset/ByteEncodeLoopHelper.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace nio
+      {
+        namespace charset
+        {
+            class ISO_8859_1$2;
+        }
+      }
+    }
+  }
+}
+
+class gnu::java::nio::charset::ISO_8859_1$2 : public ::gnu::java::nio::charset::ByteEncodeLoopHelper
+{
+
+public: // actually package-private
+  ISO_8859_1$2();
+public: // actually protected
+  jboolean isMappable(jchar);
+  jbyte mapToByte(jchar);
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_nio_charset_ISO_8859_1$2__
index 8adb8b83bcd9649bce50fcb03820947b3a8fb748..25e97ee0d882ca63f8635e35bbc59165d76d97d0 100644 (file)
@@ -17,6 +17,7 @@ extern "Java"
       {
         namespace charset
         {
+            class ByteDecodeLoopHelper;
             class ISO_8859_1$Decoder;
         }
       }
@@ -44,6 +45,8 @@ public: // actually package-private
   ISO_8859_1$Decoder(::java::nio::charset::Charset *);
 public: // actually protected
   ::java::nio::charset::CoderResult * decodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *);
+private:
+  static ::gnu::java::nio::charset::ByteDecodeLoopHelper * helper;
 public:
   static ::java::lang::Class class$;
 };
index 47d2280cbb507cbb7fcc4a9a0a61ba0926fe0de8..e4da289cc1b00c55b9b34edb7de8854ec22be1a3 100644 (file)
@@ -17,6 +17,7 @@ extern "Java"
       {
         namespace charset
         {
+            class ByteEncodeLoopHelper;
             class ISO_8859_1$Encoder;
         }
       }
@@ -47,6 +48,8 @@ public:
   jboolean canEncode(::java::lang::CharSequence *);
 public: // actually protected
   ::java::nio::charset::CoderResult * encodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *);
+private:
+  static ::gnu::java::nio::charset::ByteEncodeLoopHelper * helper;
 public:
   static ::java::lang::Class class$;
 };
index 880faccf5c6812cde72ce9655ec5008afa137a8f..651b6d06ca8080bdbb1446a10ad0bc522652f9ec 100644 (file)
@@ -17,6 +17,7 @@ extern "Java"
       {
         namespace charset
         {
+            class Provider;
             class Provider$1;
         }
       }
@@ -30,6 +31,7 @@ class gnu::java::nio::charset::Provider$1 : public ::java::lang::Object
 public: // actually package-private
   Provider$1();
 public:
+  ::gnu::java::nio::charset::Provider * Provider$1$run();
   ::java::lang::Object * run();
   static ::java::lang::Class class$;
 };
diff --git a/libjava/gnu/java/nio/charset/US_ASCII$1.h b/libjava/gnu/java/nio/charset/US_ASCII$1.h
new file mode 100644 (file)
index 0000000..63d4af1
--- /dev/null
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_nio_charset_US_ASCII$1__
+#define __gnu_java_nio_charset_US_ASCII$1__
+
+#pragma interface
+
+#include <gnu/java/nio/charset/ByteDecodeLoopHelper.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace nio
+      {
+        namespace charset
+        {
+            class US_ASCII$1;
+        }
+      }
+    }
+  }
+}
+
+class gnu::java::nio::charset::US_ASCII$1 : public ::gnu::java::nio::charset::ByteDecodeLoopHelper
+{
+
+public: // actually package-private
+  US_ASCII$1();
+public: // actually protected
+  jboolean isMappable(jbyte);
+  jchar mapToChar(jbyte);
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_nio_charset_US_ASCII$1__
diff --git a/libjava/gnu/java/nio/charset/US_ASCII$2.h b/libjava/gnu/java/nio/charset/US_ASCII$2.h
new file mode 100644 (file)
index 0000000..41c450a
--- /dev/null
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_nio_charset_US_ASCII$2__
+#define __gnu_java_nio_charset_US_ASCII$2__
+
+#pragma interface
+
+#include <gnu/java/nio/charset/ByteEncodeLoopHelper.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace nio
+      {
+        namespace charset
+        {
+            class US_ASCII$2;
+        }
+      }
+    }
+  }
+}
+
+class gnu::java::nio::charset::US_ASCII$2 : public ::gnu::java::nio::charset::ByteEncodeLoopHelper
+{
+
+public: // actually package-private
+  US_ASCII$2();
+public: // actually protected
+  jboolean isMappable(jchar);
+  jbyte mapToByte(jchar);
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_nio_charset_US_ASCII$2__
index c0c09bc32f79fb48260d95cb24c08a06ffc412c4..9659ac2e7ba4dee19fbeed669d4e615cf37a6b87 100644 (file)
@@ -17,6 +17,7 @@ extern "Java"
       {
         namespace charset
         {
+            class ByteDecodeLoopHelper;
             class US_ASCII$Decoder;
         }
       }
@@ -44,6 +45,8 @@ public: // actually package-private
   US_ASCII$Decoder(::java::nio::charset::Charset *);
 public: // actually protected
   ::java::nio::charset::CoderResult * decodeLoop(::java::nio::ByteBuffer *, ::java::nio::CharBuffer *);
+private:
+  static ::gnu::java::nio::charset::ByteDecodeLoopHelper * helper;
 public:
   static ::java::lang::Class class$;
 };
index 7a30c343c6eff77e8b481e25415abcc6da887c1b..467f6b770363c0a53e7eb60c66fd1599dc593e7e 100644 (file)
@@ -17,6 +17,7 @@ extern "Java"
       {
         namespace charset
         {
+            class ByteEncodeLoopHelper;
             class US_ASCII$Encoder;
         }
       }
@@ -47,6 +48,8 @@ public:
   jboolean canEncode(::java::lang::CharSequence *);
 public: // actually protected
   ::java::nio::charset::CoderResult * encodeLoop(::java::nio::CharBuffer *, ::java::nio::ByteBuffer *);
+private:
+  static ::gnu::java::nio::charset::ByteEncodeLoopHelper * helper;
 public:
   static ::java::lang::Class class$;
 };
index b1078ffb464e6c124f689a8e997fda073e1512ed..ed9b9364b44ef8df23e2ef67f25ce92641969d49 100644 (file)
@@ -38,8 +38,6 @@ class gnu::java::rmi::server::RMIClassLoaderImpl$MyClassLoader : public ::java::
 
 public: // actually package-private
   RMIClassLoaderImpl$MyClassLoader(JArray< ::java::net::URL * > *, ::java::lang::ClassLoader *, ::java::lang::String *);
-private:
-  RMIClassLoaderImpl$MyClassLoader(JArray< ::java::net::URL * > *, ::java::lang::ClassLoader *);
 public:
   static ::java::lang::String * urlToAnnotation(JArray< ::java::net::URL * > *);
   virtual ::java::lang::String * getClassAnnotation();
diff --git a/libjava/gnu/java/util/LRUCache.h b/libjava/gnu/java/util/LRUCache.h
new file mode 100644 (file)
index 0000000..fc524d0
--- /dev/null
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_util_LRUCache__
+#define __gnu_java_util_LRUCache__
+
+#pragma interface
+
+#include <java/util/LinkedHashMap.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace util
+      {
+          class LRUCache;
+      }
+    }
+  }
+}
+
+class gnu::java::util::LRUCache : public ::java::util::LinkedHashMap
+{
+
+public:
+  LRUCache(jint);
+public: // actually protected
+  virtual jboolean removeEldestEntry(::java::util::Map$Entry *);
+private:
+  jint __attribute__((aligned(__alignof__( ::java::util::LinkedHashMap)))) capacity;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_util_LRUCache__
index da4560b2fe822763a43f5541ed099f8d65ece55b..dc91d47cd751e4ee4b5eb8889e5c2cb66bcf5af5 100644 (file)
@@ -29,6 +29,7 @@ class gnu::java::util::regex::REException : public ::java::lang::Exception
 
 public: // actually package-private
   REException(::java::lang::String *, jint, jint);
+  REException(::java::lang::String *, ::java::lang::Throwable *, jint, jint);
 public:
   virtual jint getType();
   virtual jint getPosition();
diff --git a/libjava/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.h b/libjava/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.h
new file mode 100644 (file)
index 0000000..8c9e229
--- /dev/null
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_util_regex_RETokenNamedProperty$JavaCategoryHandler__
+#define __gnu_java_util_regex_RETokenNamedProperty$JavaCategoryHandler__
+
+#pragma interface
+
+#include <gnu/java/util/regex/RETokenNamedProperty$Handler.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace util
+      {
+        namespace regex
+        {
+            class RETokenNamedProperty$JavaCategoryHandler;
+        }
+      }
+    }
+  }
+}
+
+class gnu::java::util::regex::RETokenNamedProperty$JavaCategoryHandler : public ::gnu::java::util::regex::RETokenNamedProperty$Handler
+{
+
+public:
+  RETokenNamedProperty$JavaCategoryHandler(::java::lang::reflect::Method *);
+  virtual jboolean includes(jchar);
+private:
+  ::java::lang::reflect::Method * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::RETokenNamedProperty$Handler)))) method;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_util_regex_RETokenNamedProperty$JavaCategoryHandler__
index dccd81e8a587d9eb5ff57651441002efc74d2e01..f716854bcb702647de090a7debb3dfdb340d00e6 100644 (file)
@@ -33,7 +33,6 @@ extern "Java"
     {
       namespace sampled
       {
-          class AudioFormat;
           class Control;
           class Control$Type;
           class Line;
@@ -74,8 +73,9 @@ public:
   virtual void removeLineListener(::javax::sound::sampled::LineListener *);
   static ::java::lang::String * GST_BACKEND;
   static ::java::lang::String * GST_DECODER;
+  static ::java::lang::String * GST_TYPE_NAME;
+  static ::java::lang::String * GST_FILE_EXTENSION;
 private:
-  static JArray< ::javax::sound::sampled::AudioFormat * > * BASIC_FORMATS;
   static ::javax::sound::sampled::Mixer$Info * INFO;
 public:
   static ::java::lang::Class class$;
index dbe3a676622548800d1f580132dc87211ca716d6..a6dc8fa7fae772602a7730159426b6d04b2f24de 100644 (file)
@@ -55,6 +55,9 @@ public:
   GstAudioFileReader();
   virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::io::File *);
   virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::io::InputStream *);
+private:
+  ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::io::InputStream *, ::java::lang::String *);
+public:
   virtual ::javax::sound::sampled::AudioFileFormat * getAudioFileFormat(::java::net::URL *);
   virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::io::File *);
   virtual ::javax::sound::sampled::AudioInputStream * getAudioInputStream(::java::io::InputStream *);
index 0c9253c9d632ee25d8e29565f1be9a20b4d860be..82878f196220d648b25f44adeac8751669abde29 100644 (file)
@@ -11,6 +11,10 @@ extern "Java"
 {
   namespace gnu
   {
+    namespace classpath
+    {
+        class Pointer;
+    }
     namespace javax
     {
       namespace sound
@@ -59,12 +63,14 @@ public:
   static ::javax::sound::sampled::AudioFormat * getAudioFormat(::java::io::InputStream *);
   static ::javax::sound::sampled::AudioFormat * getAudioFormat(::java::net::URL *);
 private:
+  static ::javax::sound::sampled::AudioFormat * getAudioFormat(::java::io::InputStream *, ::gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader *);
   static ::javax::sound::sampled::AudioFormat$Encoding * getEncoding(::gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader *);
   static ::javax::sound::sampled::AudioFormat * getAudioFormat(::gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader *);
 public: // actually protected
-  static jboolean gstreamer_get_audio_format_stream(::gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader *, ::java::io::BufferedInputStream *);
+  static jboolean gstreamer_get_audio_format_stream(::gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader *, ::gnu::classpath::Pointer *);
   static jboolean gstreamer_get_audio_format_file(::gnu::javax::sound::sampled::gstreamer::io::GstAudioFileReaderNativePeer$GstHeader *);
 private:
+  static void init_id_cache();
   static ::java::lang::String * GST_ENCODING;
 public:
   static ::java::lang::Class class$;
diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.h b/libjava/gnu/javax/sound/sampled/gstreamer/io/GstInputStream.h
new file mode 100644 (file)
index 0000000..8ffb113
--- /dev/null
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_io_GstInputStream__
+#define __gnu_javax_sound_sampled_gstreamer_io_GstInputStream__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace classpath
+    {
+        class Pointer;
+    }
+    namespace javax
+    {
+      namespace sound
+      {
+        namespace sampled
+        {
+          namespace gstreamer
+          {
+            namespace io
+            {
+                class GstInputStream;
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+class gnu::javax::sound::sampled::gstreamer::io::GstInputStream : public ::java::lang::Object
+{
+
+public:
+  GstInputStream(::java::io::InputStream *);
+  virtual jint read(JArray< jbyte > *, jint, jint);
+  virtual jint available();
+  virtual ::gnu::classpath::Pointer * getNativeClass();
+private:
+  void init_instance();
+  static void init_id_cache();
+  ::java::io::InputStream * __attribute__((aligned(__alignof__( ::java::lang::Object)))) istream;
+  ::gnu::classpath::Pointer * gstInputStream;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_sampled_gstreamer_io_GstInputStream__
diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.h b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine$State.h
deleted file mode 100644 (file)
index ed6df66..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-
-// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
-
-#ifndef __gnu_javax_sound_sampled_gstreamer_lines_GstDataLine$State__
-#define __gnu_javax_sound_sampled_gstreamer_lines_GstDataLine$State__
-
-#pragma interface
-
-#include <java/lang/Enum.h>
-#include <gcj/array.h>
-
-extern "Java"
-{
-  namespace gnu
-  {
-    namespace javax
-    {
-      namespace sound
-      {
-        namespace sampled
-        {
-          namespace gstreamer
-          {
-            namespace lines
-            {
-                class GstDataLine$State;
-            }
-          }
-        }
-      }
-    }
-  }
-}
-
-class gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State : public ::java::lang::Enum
-{
-
-  GstDataLine$State(::java::lang::String *, jint);
-public:
-  static JArray< ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * > * values();
-  static ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * valueOf(::java::lang::String *);
-  static ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * PLAY;
-  static ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * PAUSE;
-  static ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * STOP;
-private:
-  static JArray< ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * > * ENUM$VALUES;
-public:
-  static ::java::lang::Class class$;
-};
-
-#endif // __gnu_javax_sound_sampled_gstreamer_lines_GstDataLine$State__
index 7939abb34590aa4c988dd15b2bca7cfa32ce625b..20ef7deb826c1840c2e94d0c7cba48fb10ccd48a 100644 (file)
@@ -24,7 +24,6 @@ extern "Java"
             namespace lines
             {
                 class GstDataLine;
-                class GstDataLine$State;
             }
           }
         }
@@ -56,15 +55,18 @@ public:
   virtual jint getBufferSize();
   virtual ::javax::sound::sampled::AudioFormat * getFormat();
   virtual jfloat getLevel();
-  virtual jboolean isRunning();
   virtual void addLineListener(::javax::sound::sampled::LineListener *);
   virtual ::javax::sound::sampled::Control * getControl(::javax::sound::sampled::Control$Type *);
   virtual JArray< ::javax::sound::sampled::Control * > * getControls();
   virtual ::javax::sound::sampled::Line$Info * getLineInfo();
   virtual jboolean isControlSupported(::javax::sound::sampled::Control$Type *);
   virtual jboolean isOpen();
-  virtual void open();
   virtual void removeLineListener(::javax::sound::sampled::LineListener *);
+public: // actually protected
+  virtual void setOpen(::java::lang::Boolean *);
+  virtual void setBufferSize(jint);
+  virtual void setFormat(::javax::sound::sampled::AudioFormat *);
+public:
   virtual jint available() = 0;
   virtual void drain() = 0;
   virtual void flush() = 0;
@@ -72,13 +74,14 @@ public:
   virtual jlong getLongFramePosition() = 0;
   virtual jlong getMicrosecondPosition() = 0;
   virtual jboolean isActive() = 0;
+  virtual jboolean isRunning() = 0;
   virtual void start() = 0;
   virtual void stop() = 0;
   virtual void close() = 0;
+  virtual void open() = 0;
   static const jint DEFAULT_BUFFER_SIZE = 1024;
 public: // actually protected
-  ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine$State * __attribute__((aligned(__alignof__( ::java::lang::Object)))) state;
-  ::java::lang::Boolean * open__;
+  ::java::lang::Boolean * __attribute__((aligned(__alignof__( ::java::lang::Object)))) open;
 private:
   ::javax::sound::sampled::AudioFormat * format;
   jint bufferSize;
index 5452434e1c7b0a51a022541c17c73218b8910ebf..e382f3ea47d7c76aec69952af34bc5d6afbe1c25 100644 (file)
@@ -11,6 +11,10 @@ extern "Java"
 {
   namespace gnu
   {
+    namespace classpath
+    {
+        class Pointer;
+    }
     namespace javax
     {
       namespace sound
@@ -22,6 +26,7 @@ extern "Java"
             namespace lines
             {
                 class GstNativeDataLine;
+                class GstPipeline;
             }
           }
         }
@@ -35,6 +40,11 @@ class gnu::javax::sound::sampled::gstreamer::lines::GstNativeDataLine : public :
 
 public:
   GstNativeDataLine();
+  static ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline * createSourcePipeline(jint);
+private:
+  static void init_id_cache();
+  static jboolean setup_sink_pipeline(::gnu::classpath::Pointer *);
+public:
   static ::java::lang::Class class$;
 };
 
diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$CleanPipeline.h b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$CleanPipeline.h
new file mode 100644 (file)
index 0000000..a0de53f
--- /dev/null
@@ -0,0 +1,47 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline$CleanPipeline__
+#define __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline$CleanPipeline__
+
+#pragma interface
+
+#include <java/lang/Thread.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace javax
+    {
+      namespace sound
+      {
+        namespace sampled
+        {
+          namespace gstreamer
+          {
+            namespace lines
+            {
+                class GstPipeline;
+                class GstPipeline$CleanPipeline;
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+class gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$CleanPipeline : public ::java::lang::Thread
+{
+
+  GstPipeline$CleanPipeline(::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline *);
+public:
+  virtual void run();
+public: // actually package-private
+  GstPipeline$CleanPipeline(::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline *, ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$CleanPipeline *);
+  ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline * __attribute__((aligned(__alignof__( ::java::lang::Thread)))) this$0;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline$CleanPipeline__
diff --git a/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$State.h b/libjava/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline$State.h
new file mode 100644 (file)
index 0000000..5966084
--- /dev/null
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline$State__
+#define __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline$State__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace javax
+    {
+      namespace sound
+      {
+        namespace sampled
+        {
+          namespace gstreamer
+          {
+            namespace lines
+            {
+                class GstPipeline$State;
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+class gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State : public ::java::lang::Enum
+{
+
+  GstPipeline$State(::java::lang::String *, jint);
+public:
+  static JArray< ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * > * values();
+  static ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * valueOf(::java::lang::String *);
+  static ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * PLAY;
+  static ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * PAUSE;
+  static ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * STOP;
+  static ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * CLOSE;
+private:
+  static JArray< ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * > * ENUM$VALUES;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_sampled_gstreamer_lines_GstPipeline$State__
index a32150f9fe78323f5efda25d38cf2cba27415830..56afb46bae3592b5a77362c6ddb8a0725102a0b3 100644 (file)
@@ -7,6 +7,8 @@
 #pragma interface
 
 #include <java/lang/Object.h>
+#include <gcj/array.h>
+
 extern "Java"
 {
   namespace gnu
@@ -26,6 +28,7 @@ extern "Java"
             namespace lines
             {
                 class GstPipeline;
+                class GstPipeline$State;
             }
           }
         }
@@ -39,9 +42,49 @@ class gnu::javax::sound::sampled::gstreamer::lines::GstPipeline : public ::java:
 
 public:
   GstPipeline();
+  GstPipeline(jint);
+  virtual void createForWrite();
+  virtual ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * getState();
+  virtual void close();
+  virtual void setState(::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State *);
+  virtual ::gnu::classpath::Pointer * getNativeClass();
+  virtual jint write(JArray< jbyte > *, jint, jint);
+  virtual jint read(JArray< jbyte > *, jint, jint);
+  virtual jint available();
+  virtual void drain();
+  virtual void flush();
+private:
+  void closePipe();
+  void prepareWrite();
+  static void init_id_cache();
+  static jboolean set_state(::gnu::classpath::Pointer *, jint);
+  static jint available(::gnu::classpath::Pointer *, jint);
+  static void open_native_pipe(::gnu::classpath::Pointer *, jint);
+  static void close_native_pipe(::gnu::classpath::Pointer *);
+  void init_instance();
+  jboolean create_named_pipe(::gnu::classpath::Pointer *);
+  jlong detect_pipe_size();
+public: // actually package-private
+  static ::gnu::classpath::Pointer * access$0(::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline *);
+  static void access$1(::gnu::classpath::Pointer *);
+  static JArray< jint > * $SWITCH_TABLE$gnu$javax$sound$sampled$gstreamer$lines$GstPipeline$State();
+private:
+  static const jint READ = 0;
+  static const jint WRITE = 1;
+  static const jint QUEUED = 1;
+  static ::java::lang::String * CAPACITY_KEY;
+  static JArray< ::java::lang::Object * > * lock;
+public: // actually protected
+  ::java::util::prefs::Preferences * __attribute__((aligned(__alignof__( ::java::lang::Object)))) prefs;
 private:
-  void setState();
-  ::gnu::classpath::Pointer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) pipeline;
+  jlong capacity;
+  ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline$State * state;
+  ::java::lang::String * name;
+  ::java::io::FileOutputStream * output;
+  jboolean source;
+  jboolean ready;
+  ::gnu::classpath::Pointer * pipeline;
+  static JArray< jint > * $SWITCH_TABLE$gnu$javax$sound$sampled$gstreamer$lines$GstPipeline$State__;
 public:
   static ::java::lang::Class class$;
 };
index 02b4b83ec9e37a38b0d86b5482fb43bebdd993bf..4120a2b2d07491f15c5b76abd4b5e3c29174267a 100644 (file)
@@ -23,6 +23,7 @@ extern "Java"
           {
             namespace lines
             {
+                class GstPipeline;
                 class GstSourceDataLine;
             }
           }
@@ -47,6 +48,7 @@ class gnu::javax::sound::sampled::gstreamer::lines::GstSourceDataLine : public :
 
 public:
   GstSourceDataLine(::javax::sound::sampled::AudioFormat *);
+  virtual void open();
   virtual void open(::javax::sound::sampled::AudioFormat *);
   virtual void open(::javax::sound::sampled::AudioFormat *, jint);
   virtual jint write(JArray< jbyte > *, jint, jint);
@@ -60,6 +62,11 @@ public:
   virtual void start();
   virtual void stop();
   virtual void close();
+  virtual jboolean isRunning();
+private:
+  ::gnu::javax::sound::sampled::gstreamer::lines::GstPipeline * __attribute__((aligned(__alignof__( ::gnu::javax::sound::sampled::gstreamer::lines::GstDataLine)))) pipeline;
+  jboolean open__;
+public:
   static ::java::lang::Class class$;
 };
 
index d78c6a53efccff667fa8d3af44c70f5aea14da98..8fc37c01d3b450e3320a029887d2e80a976a0348 100644 (file)
@@ -39,18 +39,18 @@ class gnu::xml::stream::AttributeImpl : public ::gnu::xml::stream::XMLEventImpl
 {
 
 public: // actually protected
-  AttributeImpl(::javax::xml::stream::Location *, ::javax::xml::namespace::QName *, ::java::lang::String *, ::javax::xml::namespace::QName *, jboolean);
+  AttributeImpl(::javax::xml::stream::Location *, ::javax::xml::namespace::QName *, ::java::lang::String *, ::java::lang::String *, jboolean);
 public:
   virtual jint getEventType();
   virtual ::javax::xml::namespace::QName * getName();
   virtual ::java::lang::String * getValue();
-  virtual ::javax::xml::namespace::QName * getDTDType();
+  virtual ::java::lang::String * getDTDType();
   virtual jboolean isSpecified();
   virtual void writeAsEncodedUnicode(::java::io::Writer *);
 public: // actually protected
   ::javax::xml::namespace::QName * __attribute__((aligned(__alignof__( ::gnu::xml::stream::XMLEventImpl)))) name;
   ::java::lang::String * value;
-  ::javax::xml::namespace::QName * type;
+  ::java::lang::String * type;
   jboolean specified;
 public:
   static ::java::lang::Class class$;
index 430aca24a26b1f5bfda3a4492a1477233b1487d6..3136a60e59139e599aef054010a97410799679fe 100644 (file)
@@ -239,7 +239,6 @@ private:
   ::java::util::LinkedList * endEntityStack;
   jint state;
   jint event;
-  jboolean lookahead;
   ::java::util::LinkedList * stack;
   ::java::util::LinkedList * namespaces;
   ::java::util::LinkedList * bases;
index 8b5927d88bc387a78c3d1f15425f23824c114f8c..b50a063ff4ed40ae2d5d96bb753174c24932218a 100644 (file)
@@ -33,9 +33,7 @@ class java::awt::Desktop : public ::java::lang::Object
   Desktop();
 public:
   static ::java::awt::Desktop * getDesktop();
-private:
   static jboolean isDesktopSupported();
-public:
   virtual jboolean isSupported(::java::awt::Desktop$Action *);
   virtual void browse(::java::net::URI *);
   virtual void edit(::java::io::File *);
index c3b46bf7c75d2fe028c9dfc8e1d041fbb7437120..46f81a1b8466b2cdbc69d289aa80ef0995369264 100644 (file)
@@ -156,6 +156,7 @@ public: // actually protected
 private:
   static const jlong serialVersionUID = -4206021311591459213LL;
   ::gnu::java::awt::peer::ClasspathFontPeer * peer;
+  jint hashCode__;
 public:
   static ::java::lang::Class class$;
 };
index 0a0bc5026e43074d9899e2f5ecefd7b1ff25477f..4fee8f8b43fe657a4ca76256f20be62eacc743a3 100644 (file)
@@ -44,6 +44,8 @@ private:
   static ::java::util::WeakHashMap * instances;
   ::java::awt::Component * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lastTarget;
   ::java::awt::Component * mouseEventTarget;
+public: // actually package-private
+  static jboolean $assertionsDisabled;
 public:
   static ::java::lang::Class class$;
 };
index f5b8392f1ba427b5631189f38b1a68130f8627c2..5576f65398b7b5bf5938d21e71bb4f5930ff08b8 100644 (file)
@@ -28,7 +28,8 @@ extern "Java"
 class java::beans::beancontext::BeanContextServicesSupport$BCSSProxyServiceProvider : public ::java::lang::Object
 {
 
-  BeanContextServicesSupport$BCSSProxyServiceProvider(::java::beans::beancontext::BeanContextServicesSupport *, ::java::beans::beancontext::BeanContextServiceProvider *);
+public: // actually protected
+  BeanContextServicesSupport$BCSSProxyServiceProvider(::java::beans::beancontext::BeanContextServicesSupport *);
 public:
   virtual ::java::util::Iterator * getCurrentServiceSelectors(::java::beans::beancontext::BeanContextServices *, ::java::lang::Class *);
   virtual ::java::lang::Object * getService(::java::beans::beancontext::BeanContextServices *, ::java::lang::Object *, ::java::lang::Class *, ::java::lang::Object *);
index 66d77663a7d5583ab6e0f84c60620707844cd37f..110477377115c6086a612ff4d8bbb6c4c24d501e 100644 (file)
@@ -40,8 +40,6 @@ public: // actually package-private
   jint limit;
   jint markPos;
   static const jint DEFAULT_BUFFER_SIZE = 8192;
-private:
-  ::java::lang::StringBuffer * sbuf;
 public:
   static ::java::lang::Class class$;
 };
index a7b84590f0172b31348cde6fc8e908c9b9d3342d..12371ff9557924efc2cc53fa595e0860e1a5502c 100644 (file)
@@ -32,6 +32,11 @@ public:
   virtual jint readUnsignedShort();
   virtual ::java::lang::String * readUTF();
   static ::java::lang::String * readUTF(::java::io::DataInput *);
+public: // actually package-private
+  virtual ::java::lang::String * readUTFLong();
+private:
+  static ::java::lang::String * readUTF(::java::io::DataInput *, jint);
+public:
   virtual jint skipBytes(jint);
 public: // actually package-private
   static jboolean convertToBoolean(jint);
index 0d89dca32bc9485c4985e2eb28067a9723190a83..aebd234dbcc6f16714b85d6b3f482dcc88bf2cb1 100644 (file)
@@ -29,10 +29,15 @@ public:
   virtual void writeDouble(jdouble);
   virtual void writeBytes(::java::lang::String *);
   virtual void writeChars(::java::lang::String *);
-private:
-  jint getUTFlength(::java::lang::String *, jint, jint);
+public: // actually package-private
+  virtual jlong getUTFlength(::java::lang::String *, jint, jlong);
 public:
   virtual void writeUTF(::java::lang::String *);
+public: // actually package-private
+  virtual void writeUTFShort(::java::lang::String *, jint);
+  virtual void writeUTFLong(::java::lang::String *, jlong);
+private:
+  void writeUTFBytes(::java::lang::String *);
 public: // actually protected
   jint __attribute__((aligned(__alignof__( ::java::io::FilterOutputStream)))) written;
 private:
index 9531667af4b060abef3cff53ce8aa265ab81ba1b..4055fa4ca4db4d764b2f959e2f51af95825ba9d0 100644 (file)
@@ -15,7 +15,9 @@ class java::io::PipedInputStream : public ::java::io::InputStream
 
 public:
   PipedInputStream();
+  PipedInputStream(jint);
   PipedInputStream(::java::io::PipedOutputStream *);
+  PipedInputStream(::java::io::PipedOutputStream *, jint);
   virtual void connect(::java::io::PipedOutputStream *);
 public: // actually protected
   virtual void receive(jint);
index 0b8fdca68e7560af9064b6b56f439acf5f40f34d..097f9d2f2e7dcd101547fb232ccc371b4b85214b 100644 (file)
@@ -28,7 +28,7 @@ public:
   virtual void printStackTrace(::java::io::PrintWriter *);
 private:
   ::java::lang::String * stackTraceString();
-  static void stackTraceStringBuffer(::java::lang::StringBuffer *, ::java::lang::String *, JArray< ::java::lang::StackTraceElement * > *, jint);
+  static void stackTraceStringBuffer(::java::lang::StringBuilder *, ::java::lang::String *, JArray< ::java::lang::StackTraceElement * > *, jint);
 public:
   virtual ::java::lang::Throwable * fillInStackTrace();
   virtual JArray< ::java::lang::StackTraceElement * > * getStackTrace();
index c3902b3d61fc49b5ab5a7c5bac5057960b402c86..4d87277be16d9cfbe2c239452f64d0f220186454 100644 (file)
@@ -28,9 +28,6 @@ extern "Java"
 class java::lang::management::ThreadInfo : public ::java::lang::Object
 {
 
-  ThreadInfo(::java::lang::Thread *, jlong, jlong, ::java::lang::Object *, ::java::lang::Thread *, jlong, jlong, jboolean, jboolean, JArray< ::java::lang::StackTraceElement * > *);
-  ThreadInfo(::java::lang::Thread *, jlong, jlong, ::java::lang::Object *, ::java::lang::Thread *, jlong, jlong, jboolean, jboolean, JArray< ::java::lang::StackTraceElement * > *, JArray< ::java::lang::management::MonitorInfo * > *, JArray< ::java::lang::management::LockInfo * > *);
-  ThreadInfo(jlong, ::java::lang::String *, ::java::lang::Thread$State *, jlong, jlong, ::java::lang::String *, jlong, ::java::lang::String *, jlong, jlong, jboolean, jboolean, JArray< ::java::lang::StackTraceElement * > *);
   ThreadInfo(jlong, ::java::lang::String *, ::java::lang::Thread$State *, jlong, jlong, ::java::lang::String *, jlong, ::java::lang::String *, jlong, jlong, jboolean, jboolean, JArray< ::java::lang::StackTraceElement * > *, JArray< ::java::lang::management::MonitorInfo * > *, JArray< ::java::lang::management::LockInfo * > *);
 public: // actually package-private
   static void checkAttribute(::javax::management::openmbean::CompositeType *, ::java::lang::String *, ::javax::management::openmbean::OpenType *);
index d955dce503c6b3002e358e971fa8c9e184a3af62..8417042ed388c611d33251cd3a836bf0d30f1b3f 100644 (file)
@@ -44,7 +44,7 @@ public:
   ::java::net::URI * normalize();
 private:
   ::java::lang::String * normalizePath(::java::lang::String *);
-  void removeLastSegment(::java::lang::StringBuffer *);
+  void removeLastSegment(::java::lang::StringBuilder *);
 public:
   ::java::net::URI * resolve(::java::net::URI *);
   ::java::net::URI * resolve(::java::lang::String *);
index dc67d871968017a0b26c32769a64b5f1fead6811..5eeb158bc8159e65346ab44d01d4195be6c2ca46 100644 (file)
@@ -38,11 +38,6 @@ exception statement from your version.  */
 
 package java.security;
 
-import gnu.classpath.SystemProperties;
-import gnu.java.security.action.GetSecurityPropertyAction;
-
-import java.net.URL;
-
 /**
  * VM-specific methods for generating real (or almost real) random
  * seeds. VM implementors should write a version of this class that
index 19d92b8cab66fd39c17382ba537a8f136b631e57..a3b75de189e24a5e265949fb0d210f61d773e584 100644 (file)
@@ -28,6 +28,7 @@ class java::text::CollationElementIterator : public ::java::lang::Object
 
 public: // actually package-private
   CollationElementIterator(::java::text::RuleBasedCollator *, ::java::lang::String *);
+  CollationElementIterator(::java::text::RuleBasedCollator *, ::java::text::CharacterIterator *);
   ::java::text::RuleBasedCollator$CollationElement * nextBlock();
   ::java::text::RuleBasedCollator$CollationElement * previousBlock();
 public:
@@ -45,7 +46,7 @@ public:
   static const jint NULLORDER = -1;
 public: // actually package-private
   ::java::text::RuleBasedCollator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) collator;
-  ::java::lang::String * text;
+  ::java::text::CharacterIterator * text;
   jint index;
   jint textIndex;
 private:
diff --git a/libjava/java/util/concurrent/CopyOnWriteArrayList$1.h b/libjava/java/util/concurrent/CopyOnWriteArrayList$1.h
new file mode 100644 (file)
index 0000000..4f3d1b6
--- /dev/null
@@ -0,0 +1,35 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CopyOnWriteArrayList$1__
+#define __java_util_concurrent_CopyOnWriteArrayList$1__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+
+class java::util::concurrent::CopyOnWriteArrayList$1 : public ::java::lang::Object
+{
+
+public: // actually package-private
+  CopyOnWriteArrayList$1(::java::util::concurrent::CopyOnWriteArrayList$SubList *, jint);
+public:
+  jboolean hasNext();
+  jboolean hasPrevious();
+  ::java::lang::Object * next();
+  ::java::lang::Object * previous();
+  jint nextIndex();
+  jint previousIndex();
+  void remove();
+  void set(::java::lang::Object *);
+  void add(::java::lang::Object *);
+private:
+  ::java::util::ListIterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) i;
+  jint position;
+public: // actually package-private
+  ::java::util::concurrent::CopyOnWriteArrayList$SubList * this$1;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_CopyOnWriteArrayList$1__
diff --git a/libjava/java/util/concurrent/CopyOnWriteArrayList$2.h b/libjava/java/util/concurrent/CopyOnWriteArrayList$2.h
new file mode 100644 (file)
index 0000000..ecebfbe
--- /dev/null
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CopyOnWriteArrayList$2__
+#define __java_util_concurrent_CopyOnWriteArrayList$2__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::CopyOnWriteArrayList$2 : public ::java::lang::Object
+{
+
+public: // actually package-private
+  CopyOnWriteArrayList$2(::java::util::concurrent::CopyOnWriteArrayList *);
+public:
+  jboolean hasNext();
+  ::java::lang::Object * next();
+  void remove();
+public: // actually package-private
+  JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) iteratorData;
+  jint currentElement;
+  ::java::util::concurrent::CopyOnWriteArrayList * this$0;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_CopyOnWriteArrayList$2__
diff --git a/libjava/java/util/concurrent/CopyOnWriteArrayList$3.h b/libjava/java/util/concurrent/CopyOnWriteArrayList$3.h
new file mode 100644 (file)
index 0000000..c6abfef
--- /dev/null
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CopyOnWriteArrayList$3__
+#define __java_util_concurrent_CopyOnWriteArrayList$3__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::CopyOnWriteArrayList$3 : public ::java::lang::Object
+{
+
+public: // actually package-private
+  CopyOnWriteArrayList$3(::java::util::concurrent::CopyOnWriteArrayList *, jint);
+public:
+  void add(::java::lang::Object *);
+  jboolean hasNext();
+  jboolean hasPrevious();
+  ::java::lang::Object * next();
+  jint nextIndex();
+  ::java::lang::Object * previous();
+  jint previousIndex();
+  void remove();
+  void set(::java::lang::Object *);
+public: // actually package-private
+  JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) iteratorData;
+  jint currentElement;
+  ::java::util::concurrent::CopyOnWriteArrayList * this$0;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_CopyOnWriteArrayList$3__
diff --git a/libjava/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.h b/libjava/java/util/concurrent/CopyOnWriteArrayList$RandomAccessSubList.h
new file mode 100644 (file)
index 0000000..66adf02
--- /dev/null
@@ -0,0 +1,20 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CopyOnWriteArrayList$RandomAccessSubList__
+#define __java_util_concurrent_CopyOnWriteArrayList$RandomAccessSubList__
+
+#pragma interface
+
+#include <java/util/concurrent/CopyOnWriteArrayList$SubList.h>
+
+class java::util::concurrent::CopyOnWriteArrayList$RandomAccessSubList : public ::java::util::concurrent::CopyOnWriteArrayList$SubList
+{
+
+public: // actually package-private
+  CopyOnWriteArrayList$RandomAccessSubList(::java::util::concurrent::CopyOnWriteArrayList *, jint, jint);
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_CopyOnWriteArrayList$RandomAccessSubList__
diff --git a/libjava/java/util/concurrent/CopyOnWriteArrayList$SubList.h b/libjava/java/util/concurrent/CopyOnWriteArrayList$SubList.h
new file mode 100644 (file)
index 0000000..de285a9
--- /dev/null
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_concurrent_CopyOnWriteArrayList$SubList__
+#define __java_util_concurrent_CopyOnWriteArrayList$SubList__
+
+#pragma interface
+
+#include <java/util/AbstractList.h>
+#include <gcj/array.h>
+
+
+class java::util::concurrent::CopyOnWriteArrayList$SubList : public ::java::util::AbstractList
+{
+
+public: // actually package-private
+  CopyOnWriteArrayList$SubList(::java::util::concurrent::CopyOnWriteArrayList *, jint, jint);
+  virtual void checkMod();
+private:
+  void checkBoundsInclusive(jint);
+  void checkBoundsExclusive(jint);
+public:
+  virtual jint size();
+  virtual void clear();
+  virtual ::java::lang::Object * set(jint, ::java::lang::Object *);
+  virtual ::java::lang::Object * get(jint);
+  virtual void add(jint, ::java::lang::Object *);
+  virtual ::java::lang::Object * remove(jint);
+  virtual jboolean addAll(jint, ::java::util::Collection *);
+  virtual jboolean addAll(::java::util::Collection *);
+  virtual ::java::util::Iterator * iterator();
+  virtual ::java::util::ListIterator * listIterator(jint);
+public: // actually package-private
+  ::java::util::concurrent::CopyOnWriteArrayList * __attribute__((aligned(__alignof__( ::java::util::AbstractList)))) backingList;
+  jint offset;
+  jint size__;
+  JArray< ::java::lang::Object * > * data;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __java_util_concurrent_CopyOnWriteArrayList$SubList__
index 924ba480e96cd7fd24c8f0c5f80c5671d651818a..95eec88d98cdede758e58a875c0f37e08d3bb69f 100644 (file)
@@ -6,11 +6,11 @@
 
 #pragma interface
 
-#include <java/util/AbstractList.h>
+#include <java/lang/Object.h>
 #include <gcj/array.h>
 
 
-class java::util::concurrent::CopyOnWriteArrayList : public ::java::util::AbstractList
+class java::util::concurrent::CopyOnWriteArrayList : public ::java::lang::Object
 {
 
 public:
@@ -20,6 +20,7 @@ public:
   virtual jint size();
   virtual jboolean isEmpty();
   virtual jboolean contains(::java::lang::Object *);
+  virtual jboolean containsAll(::java::util::Collection *);
   virtual jint indexOf(::java::lang::Object *);
   virtual jint indexOf(::java::lang::Object *, jint);
   virtual jint lastIndexOf(::java::lang::Object *);
@@ -32,19 +33,32 @@ public:
   virtual jboolean add(::java::lang::Object *);
   virtual void add(jint, ::java::lang::Object *);
   virtual ::java::lang::Object * remove(jint);
+  virtual jboolean remove(::java::lang::Object *);
+  virtual jboolean removeAll(::java::util::Collection *);
+  virtual jboolean retainAll(::java::util::Collection *);
   virtual void clear();
   virtual jboolean addAll(::java::util::Collection *);
   virtual jboolean addAll(jint, ::java::util::Collection *);
   virtual jboolean addIfAbsent(::java::lang::Object *);
   virtual jint addAllAbsent(::java::util::Collection *);
+  virtual ::java::lang::String * toString();
+  virtual jboolean equals(::java::lang::Object *);
+  virtual jint hashCode();
+  virtual ::java::util::Iterator * iterator();
+  virtual ::java::util::ListIterator * listIterator();
+  virtual ::java::util::ListIterator * listIterator(jint);
+  virtual ::java::util::List * subList(jint, jint);
 private:
   void writeObject(::java::io::ObjectOutputStream *);
   void readObject(::java::io::ObjectInputStream *);
 public: // actually package-private
   static jboolean equals(::java::lang::Object *, ::java::lang::Object *);
   virtual JArray< ::java::lang::Object * > * getArray();
+  static JArray< ::java::lang::Object * > * access$0(::java::util::concurrent::CopyOnWriteArrayList *);
+  static void access$1(::java::util::concurrent::CopyOnWriteArrayList *, JArray< ::java::lang::Object * > *);
 private:
-  JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::util::AbstractList)))) data;
+  static const jlong serialVersionUID = 8673264195747942595LL;
+  JArray< ::java::lang::Object * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) data;
 public:
   static ::java::lang::Class class$;
 };
index ede23c9d2c437eae9d2ff4ea4aeebd9d3a4a953e..5a8b4b28a00c9906cfb009684273382c1c17ddc7 100644 (file)
@@ -28,6 +28,8 @@ public:
   static ::java::lang::String * DECREMENT;
   static ::java::lang::String * INCREMENT;
   static ::java::lang::String * TOGGLE_EXPAND;
+  static ::java::lang::String * CLICK;
+  static ::java::lang::String * TOGGLE_POPUP;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index e9d76b02db18fda595ce2a5249c6dd993caaa2a1..10d85711db1f7a7300d8c87f1c41b358218fc11f 100644 (file)
@@ -29,7 +29,7 @@ class javax::accessibility::AccessibleAttributeSequence : public ::java::lang::O
 {
 
 public:
-  AccessibleAttributeSequence();
+  AccessibleAttributeSequence(jint, jint, ::javax::swing::text::AttributeSet *);
   ::javax::swing::text::AttributeSet * __attribute__((aligned(__alignof__( ::java::lang::Object)))) attributes;
   jint startIndex;
   jint endIndex;
index 1fd9e3cf0d4547eb5d6dc38080742950641c2846..271b6ba7b7b88890cabdd069e0ea2366435fe875 100644 (file)
@@ -86,6 +86,7 @@ public:
   static ::javax::accessibility::AccessibleRole * PARAGRAPH;
   static ::javax::accessibility::AccessibleRole * PROGRESS_MONITOR;
   static ::javax::accessibility::AccessibleRole * RULER;
+  static ::javax::accessibility::AccessibleRole * HTML_CONTAINER;
   static ::java::lang::Class class$;
 };
 
index 0c447e0fb21c6a3852e7d7ac94eafaaa847961ed..280ad30886ffec91677b57969ddb9faada508c31 100644 (file)
@@ -22,7 +22,7 @@ class javax::accessibility::AccessibleTextSequence : public ::java::lang::Object
 {
 
 public:
-  AccessibleTextSequence();
+  AccessibleTextSequence(jint, jint, ::java::lang::String *);
   ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) text;
   jint startIndex;
   jint endIndex;
diff --git a/libjava/javax/management/remote/NotificationResult.h b/libjava/javax/management/remote/NotificationResult.h
new file mode 100644 (file)
index 0000000..b5d45f6
--- /dev/null
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_management_remote_NotificationResult__
+#define __javax_management_remote_NotificationResult__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace javax
+  {
+    namespace management
+    {
+      namespace remote
+      {
+          class NotificationResult;
+          class TargetedNotification;
+      }
+    }
+  }
+}
+
+class javax::management::remote::NotificationResult : public ::java::lang::Object
+{
+
+public:
+  NotificationResult(jlong, jlong, JArray< ::javax::management::remote::TargetedNotification * > *);
+  virtual jlong getEarliestSequenceNumber();
+  virtual jlong getNextSequenceNumber();
+  virtual JArray< ::javax::management::remote::TargetedNotification * > * getTargetedNotifications();
+  virtual ::java::lang::String * toString();
+private:
+  static const jlong serialVersionUID = 1191800228721395279LL;
+  jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) earliestSequenceNumber;
+  jlong nextSequenceNumber;
+  JArray< ::javax::management::remote::TargetedNotification * > * targetedNotifications;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_management_remote_NotificationResult__
diff --git a/libjava/javax/management/remote/TargetedNotification.h b/libjava/javax/management/remote/TargetedNotification.h
new file mode 100644 (file)
index 0000000..1021a87
--- /dev/null
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_management_remote_TargetedNotification__
+#define __javax_management_remote_TargetedNotification__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace javax
+  {
+    namespace management
+    {
+        class Notification;
+      namespace remote
+      {
+          class TargetedNotification;
+      }
+    }
+  }
+}
+
+class javax::management::remote::TargetedNotification : public ::java::lang::Object
+{
+
+public:
+  TargetedNotification(::javax::management::Notification *, ::java::lang::Integer *);
+  virtual ::javax::management::Notification * getNotification();
+  virtual ::java::lang::Integer * getListenerID();
+  virtual ::java::lang::String * toString();
+private:
+  static const jlong serialVersionUID = 7676132089779300926LL;
+  ::javax::management::Notification * __attribute__((aligned(__alignof__( ::java::lang::Object)))) notif;
+  ::java::lang::Integer * id;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_management_remote_TargetedNotification__
diff --git a/libjava/javax/management/remote/rmi/RMIConnection.h b/libjava/javax/management/remote/rmi/RMIConnection.h
new file mode 100644 (file)
index 0000000..4fb6eb8
--- /dev/null
@@ -0,0 +1,82 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_management_remote_rmi_RMIConnection__
+#define __javax_management_remote_rmi_RMIConnection__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace java
+  {
+    namespace rmi
+    {
+        class MarshalledObject;
+    }
+  }
+  namespace javax
+  {
+    namespace management
+    {
+        class AttributeList;
+        class MBeanInfo;
+        class ObjectInstance;
+        class ObjectName;
+      namespace remote
+      {
+          class NotificationResult;
+        namespace rmi
+        {
+            class RMIConnection;
+        }
+      }
+    }
+    namespace security
+    {
+      namespace auth
+      {
+          class Subject;
+      }
+    }
+  }
+}
+
+class javax::management::remote::rmi::RMIConnection : public ::java::lang::Object
+{
+
+public:
+  virtual void addNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *, ::java::rmi::MarshalledObject *, ::java::rmi::MarshalledObject *, ::javax::security::auth::Subject *) = 0;
+  virtual JArray< ::java::lang::Integer * > * addNotificationListeners(JArray< ::javax::management::ObjectName * > *, JArray< ::java::rmi::MarshalledObject * > *, JArray< ::javax::security::auth::Subject * > *) = 0;
+  virtual void close() = 0;
+  virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, ::java::rmi::MarshalledObject *, JArray< ::java::lang::String * > *, ::javax::security::auth::Subject *) = 0;
+  virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, ::javax::management::ObjectName *, ::java::rmi::MarshalledObject *, JArray< ::java::lang::String * > *, ::javax::security::auth::Subject *) = 0;
+  virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, ::javax::management::ObjectName *, ::javax::security::auth::Subject *) = 0;
+  virtual ::javax::management::ObjectInstance * createMBean(::java::lang::String *, ::javax::management::ObjectName *, ::javax::security::auth::Subject *) = 0;
+  virtual ::javax::management::remote::NotificationResult * fetchNotifications(jlong, jint, jlong) = 0;
+  virtual ::java::lang::Object * getAttribute(::javax::management::ObjectName *, ::java::lang::String *, ::javax::security::auth::Subject *) = 0;
+  virtual ::javax::management::AttributeList * getAttributes(::javax::management::ObjectName *, JArray< ::java::lang::String * > *, ::javax::security::auth::Subject *) = 0;
+  virtual ::java::lang::String * getConnectionId() = 0;
+  virtual ::java::lang::String * getDefaultDomain(::javax::security::auth::Subject *) = 0;
+  virtual JArray< ::java::lang::String * > * getDomains(::javax::security::auth::Subject *) = 0;
+  virtual ::java::lang::Integer * getMBeanCount(::javax::security::auth::Subject *) = 0;
+  virtual ::javax::management::MBeanInfo * getMBeanInfo(::javax::management::ObjectName *, ::javax::security::auth::Subject *) = 0;
+  virtual ::javax::management::ObjectInstance * getObjectInstance(::javax::management::ObjectName *, ::javax::security::auth::Subject *) = 0;
+  virtual ::java::lang::Object * invoke(::javax::management::ObjectName *, ::java::lang::String *, ::java::rmi::MarshalledObject *, JArray< ::java::lang::String * > *, ::javax::security::auth::Subject *) = 0;
+  virtual jboolean isInstanceOf(::javax::management::ObjectName *, ::java::lang::String *, ::javax::security::auth::Subject *) = 0;
+  virtual jboolean isRegistered(::javax::management::ObjectName *, ::javax::security::auth::Subject *) = 0;
+  virtual ::java::util::Set * queryMBeans(::javax::management::ObjectName *, ::java::rmi::MarshalledObject *, ::javax::security::auth::Subject *) = 0;
+  virtual ::java::util::Set * queryNames(::javax::management::ObjectName *, ::java::rmi::MarshalledObject *, ::javax::security::auth::Subject *) = 0;
+  virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *, ::java::rmi::MarshalledObject *, ::java::rmi::MarshalledObject *, ::javax::security::auth::Subject *) = 0;
+  virtual void removeNotificationListener(::javax::management::ObjectName *, ::javax::management::ObjectName *, ::javax::security::auth::Subject *) = 0;
+  virtual void removeNotificationListeners(::javax::management::ObjectName *, JArray< ::java::lang::Integer * > *, ::javax::security::auth::Subject *) = 0;
+  virtual void setAttribute(::javax::management::ObjectName *, ::java::rmi::MarshalledObject *, ::javax::security::auth::Subject *) = 0;
+  virtual ::javax::management::AttributeList * setAttributes(::javax::management::ObjectName *, ::java::rmi::MarshalledObject *, ::javax::security::auth::Subject *) = 0;
+  virtual void unregisterMBean(::javax::management::ObjectName *, ::javax::security::auth::Subject *) = 0;
+  static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __javax_management_remote_rmi_RMIConnection__
diff --git a/libjava/javax/management/remote/rmi/RMIServer.h b/libjava/javax/management/remote/rmi/RMIServer.h
new file mode 100644 (file)
index 0000000..3c955a5
--- /dev/null
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_management_remote_rmi_RMIServer__
+#define __javax_management_remote_rmi_RMIServer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace javax
+  {
+    namespace management
+    {
+      namespace remote
+      {
+        namespace rmi
+        {
+            class RMIConnection;
+            class RMIServer;
+        }
+      }
+    }
+  }
+}
+
+class javax::management::remote::rmi::RMIServer : public ::java::lang::Object
+{
+
+public:
+  virtual ::java::lang::String * getVersion() = 0;
+  virtual ::javax::management::remote::rmi::RMIConnection * newClient(::java::lang::Object *) = 0;
+  static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __javax_management_remote_rmi_RMIServer__
index 134cb2f3df8accf958b0706d42b4dc7cecdec65c..42159f13bc770530201f7f3e5f23491b7dbdb965 100644 (file)
@@ -272,7 +272,6 @@ public: // actually package-private
   ::javax::swing::event::TreeExpansionListener * treeExpansionListener;
   ::javax::swing::event::TreeModelListener * treeModelListener;
   static ::javax::swing::Icon * nullIcon;
-  static ::java::awt::event::MouseEvent * EDIT;
 public:
   static ::java::lang::Class class$;
 };
index 50c7118f8dda8d5ede0041beec694b60121ba280..9c13e759163e058821d2194d1d5a4aadac356629 100644 (file)
@@ -29,6 +29,7 @@ public: // actually package-private
   DefaultMutableTreeNode$BreadthFirstEnumeration(::javax::swing::tree::TreeNode *);
 public:
   virtual jboolean hasMoreElements();
+  virtual ::javax::swing::tree::TreeNode * DefaultMutableTreeNode$BreadthFirstEnumeration$nextElement();
   virtual ::java::lang::Object * nextElement();
 public: // actually package-private
   ::java::util::LinkedList * __attribute__((aligned(__alignof__( ::java::lang::Object)))) queue;
index 629c2943bbcd3e935a17ac8d70bcb01ce9e19cea..31065d6690d877658408c96c56ac6dd80f726d1c 100644 (file)
@@ -29,9 +29,11 @@ public: // actually package-private
   DefaultMutableTreeNode$PostorderEnumeration(::javax::swing::tree::TreeNode *);
 public:
   virtual jboolean hasMoreElements();
-  virtual ::java::lang::Object * nextElement();
+  virtual ::javax::swing::tree::TreeNode * DefaultMutableTreeNode$PostorderEnumeration$nextElement();
 private:
-  ::java::lang::Object * traverse(::java::util::Enumeration *);
+  ::javax::swing::tree::TreeNode * traverse(::java::util::Enumeration *);
+public:
+  virtual ::java::lang::Object * nextElement();
 public: // actually package-private
   ::java::util::Stack * __attribute__((aligned(__alignof__( ::java::lang::Object)))) nodes;
   ::java::util::Stack * childrenEnums;
index 53e87c3e2956c0e6dd1862c69b2af6a40fd70576..98117b06fecbd1956113dc8df6198d58cffc7e2b 100644 (file)
@@ -29,9 +29,11 @@ public: // actually package-private
   DefaultMutableTreeNode$PreorderEnumeration(::javax::swing::tree::TreeNode *);
 public:
   virtual jboolean hasMoreElements();
-  virtual ::java::lang::Object * nextElement();
+  virtual ::javax::swing::tree::TreeNode * DefaultMutableTreeNode$PreorderEnumeration$nextElement();
 private:
   ::javax::swing::tree::TreeNode * traverse(::java::util::Enumeration *);
+public:
+  virtual ::java::lang::Object * nextElement();
 public: // actually package-private
   ::javax::swing::tree::TreeNode * __attribute__((aligned(__alignof__( ::java::lang::Object)))) next;
   ::java::util::Stack * childrenEnums;
index 759439c189fa133e53956848a26e0cc9e58e5139..bac3f21ad9731e9deadbbd4e6045a6f5f8abdf0c 100644 (file)
@@ -56,7 +56,6 @@ public:
   DefaultTreeCellEditor(::javax::swing::JTree *, ::javax::swing::tree::DefaultTreeCellRenderer *);
   DefaultTreeCellEditor(::javax::swing::JTree *, ::javax::swing::tree::DefaultTreeCellRenderer *, ::javax::swing::tree::TreeCellEditor *);
 private:
-  void configureEditingComponent(::javax::swing::JTree *, ::javax::swing::tree::DefaultTreeCellRenderer *, ::javax::swing::tree::TreeCellEditor *);
   void writeObject(::java::io::ObjectOutputStream *);
   void readObject(::java::io::ObjectInputStream *);
 public:
@@ -104,8 +103,6 @@ public: // actually protected
   ::java::awt::Color * borderSelectionColor;
   ::javax::swing::Icon * editingIcon;
   ::java::awt::Font * font;
-private:
-  ::javax::swing::tree::TreePath * tPath;
 public:
   static ::java::lang::Class class$;
 };
diff --git a/libjava/javax/tools/Diagnostic$Kind.h b/libjava/javax/tools/Diagnostic$Kind.h
new file mode 100644 (file)
index 0000000..006ed7d
--- /dev/null
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_tools_Diagnostic$Kind__
+#define __javax_tools_Diagnostic$Kind__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace javax
+  {
+    namespace tools
+    {
+        class Diagnostic$Kind;
+    }
+  }
+}
+
+class javax::tools::Diagnostic$Kind : public ::java::lang::Enum
+{
+
+  Diagnostic$Kind(::java::lang::String *, jint);
+public:
+  static JArray< ::javax::tools::Diagnostic$Kind * > * values();
+  static ::javax::tools::Diagnostic$Kind * valueOf(::java::lang::String *);
+  static ::javax::tools::Diagnostic$Kind * ERROR;
+  static ::javax::tools::Diagnostic$Kind * WARNING;
+  static ::javax::tools::Diagnostic$Kind * MANDATORY_WARNING;
+  static ::javax::tools::Diagnostic$Kind * NOTE;
+  static ::javax::tools::Diagnostic$Kind * OTHER;
+private:
+  static JArray< ::javax::tools::Diagnostic$Kind * > * ENUM$VALUES;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __javax_tools_Diagnostic$Kind__
diff --git a/libjava/javax/tools/Diagnostic.h b/libjava/javax/tools/Diagnostic.h
new file mode 100644 (file)
index 0000000..540da44
--- /dev/null
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_tools_Diagnostic__
+#define __javax_tools_Diagnostic__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace javax
+  {
+    namespace tools
+    {
+        class Diagnostic;
+        class Diagnostic$Kind;
+    }
+  }
+}
+
+class javax::tools::Diagnostic : public ::java::lang::Object
+{
+
+public:
+  virtual ::javax::tools::Diagnostic$Kind * getKind() = 0;
+  virtual ::java::lang::Object * getSource() = 0;
+  virtual jlong getPosition() = 0;
+  virtual jlong getStartPosition() = 0;
+  virtual jlong getEndPosition() = 0;
+  virtual jlong getLineNumber() = 0;
+  virtual jlong getColumnNumber() = 0;
+  virtual ::java::lang::String * getCode() = 0;
+  virtual ::java::lang::String * getMessage(::java::util::Locale *) = 0;
+  static const jlong NOPOS = -1LL;
+  static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __javax_tools_Diagnostic__
diff --git a/libjava/javax/tools/DiagnosticListener.h b/libjava/javax/tools/DiagnosticListener.h
new file mode 100644 (file)
index 0000000..a0d1a37
--- /dev/null
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_tools_DiagnosticListener__
+#define __javax_tools_DiagnosticListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace javax
+  {
+    namespace tools
+    {
+        class Diagnostic;
+        class DiagnosticListener;
+    }
+  }
+}
+
+class javax::tools::DiagnosticListener : public ::java::lang::Object
+{
+
+public:
+  virtual void report(::javax::tools::Diagnostic *) = 0;
+  static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __javax_tools_DiagnosticListener__
diff --git a/libjava/javax/tools/FileObject.h b/libjava/javax/tools/FileObject.h
new file mode 100644 (file)
index 0000000..87acd83
--- /dev/null
@@ -0,0 +1,44 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_tools_FileObject__
+#define __javax_tools_FileObject__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace java
+  {
+    namespace net
+    {
+        class URI;
+    }
+  }
+  namespace javax
+  {
+    namespace tools
+    {
+        class FileObject;
+    }
+  }
+}
+
+class javax::tools::FileObject : public ::java::lang::Object
+{
+
+public:
+  virtual ::java::net::URI * toURI() = 0;
+  virtual ::java::lang::String * getName() = 0;
+  virtual ::java::io::InputStream * openInputStream() = 0;
+  virtual ::java::io::OutputStream * openOutputStream() = 0;
+  virtual ::java::io::Reader * openReader() = 0;
+  virtual ::java::lang::CharSequence * getCharContent(jboolean) = 0;
+  virtual ::java::io::Writer * openWriter() = 0;
+  virtual jlong getLastModified() = 0;
+  virtual jboolean delete$() = 0;
+  static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __javax_tools_FileObject__
index 7362510c072826d0bb5f4d38e5aff13f6bb4db4d..f0e057063be23fe45454bb8fbb3c54dd0869c34b 100644 (file)
@@ -38,7 +38,7 @@ class javax::xml::stream::events::Attribute : public ::java::lang::Object
 public:
   virtual ::javax::xml::namespace::QName * getName() = 0;
   virtual ::java::lang::String * getValue() = 0;
-  virtual ::javax::xml::namespace::QName * getDTDType() = 0;
+  virtual ::java::lang::String * getDTDType() = 0;
   virtual jboolean isSpecified() = 0;
   virtual jint getEventType() = 0;
   virtual ::javax::xml::stream::Location * getLocation() = 0;
index 220046187b4e170ab9d97bb96f184a4d4e5b43c8..77b019341d74cec16e402a0e3416fb698617d82a 100644 (file)
@@ -1805,6 +1805,13 @@ _Jv_JNI_GetDirectBufferCapacity (JNIEnv *, jobject buffer)
   return tmp->capacity();
 }
 
+static jobjectRefType JNICALL
+_Jv_JNI_GetObjectRefType (JNIEnv *, jobject object)
+{
+  JvFail("GetObjectRefType not implemented");
+  return JNIInvalidRefType;
+}
+
 \f
 
 struct NativeMethodCacheEntry : public JNINativeMethod
@@ -2878,7 +2885,9 @@ struct JNINativeInterface_ _Jv_JNIFunctions =
 
   _Jv_JNI_NewDirectByteBuffer,             // NewDirectByteBuffer
   _Jv_JNI_GetDirectBufferAddress,          // GetDirectBufferAddress
-  _Jv_JNI_GetDirectBufferCapacity          // GetDirectBufferCapacity
+  _Jv_JNI_GetDirectBufferCapacity,         // GetDirectBufferCapacity
+
+  _Jv_JNI_GetObjectRefType                 // GetObjectRefType
 };
 
 struct JNIInvokeInterface_ _Jv_JNI_InvokeFunctions =
index b42ea45d7450680c86d08eebc6fdadcea193658f..aba3c89e1cb22cb5721e52a387861da1d71311ab 100644 (file)
@@ -475,6 +475,18 @@ gnu/classpath/jdwp/value.list: $(gnu_classpath_jdwp_value_source_files)
 -include gnu/classpath/jdwp/value.deps
 
 
+gnu_classpath_toolkit_source_files = \
+classpath/gnu/classpath/toolkit/DefaultDaemonThreadFactory.java
+
+gnu_classpath_toolkit_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_classpath_toolkit_source_files)))
+
+gnu/classpath/toolkit.list: $(gnu_classpath_toolkit_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       echo $(srcdir)/classpath/lib/gnu/classpath/toolkit/*.class > gnu/classpath/toolkit.list
+
+-include gnu/classpath/toolkit.deps
+
+
 gnu_gcj_source_files = \
 gnu/gcj/Core.java \
 gnu/gcj/RawData.java \
@@ -704,7 +716,8 @@ gnu-java-awt-dnd-peer-gtk.lo: $(gnu_java_awt_dnd_peer_gtk_source_files)
 gnu_java_awt_font_source_files = \
 classpath/gnu/java/awt/font/FontDelegate.java \
 classpath/gnu/java/awt/font/FontFactory.java \
-classpath/gnu/java/awt/font/GNUGlyphVector.java
+classpath/gnu/java/awt/font/GNUGlyphVector.java \
+classpath/gnu/java/awt/font/OpenTypeFontPeer.java
 
 gnu_java_awt_font_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_font_source_files)))
 
@@ -781,6 +794,8 @@ gnu/java/awt/font/opentype/truetype.list: $(gnu_java_awt_font_opentype_truetype_
 
 
 gnu_java_awt_image_source_files = \
+classpath/gnu/java/awt/image/AsyncImage.java \
+classpath/gnu/java/awt/image/ImageConverter.java \
 classpath/gnu/java/awt/image/ImageDecoder.java \
 classpath/gnu/java/awt/image/XBMDecoder.java
 
@@ -800,6 +815,7 @@ classpath/gnu/java/awt/java2d/AlphaCompositeContext.java \
 classpath/gnu/java/awt/java2d/CubicSegment.java \
 classpath/gnu/java/awt/java2d/ImagePaint.java \
 classpath/gnu/java/awt/java2d/LineSegment.java \
+classpath/gnu/java/awt/java2d/PixelCoverage.java \
 classpath/gnu/java/awt/java2d/Pixelizer.java \
 classpath/gnu/java/awt/java2d/PolyEdge.java \
 classpath/gnu/java/awt/java2d/PolyEdgeComparator.java \
@@ -810,6 +826,8 @@ classpath/gnu/java/awt/java2d/ScanlineConverter.java \
 classpath/gnu/java/awt/java2d/ScanlineCoverage.java \
 classpath/gnu/java/awt/java2d/Segment.java \
 classpath/gnu/java/awt/java2d/ShapeCache.java \
+classpath/gnu/java/awt/java2d/ShapeWrapper.java \
+classpath/gnu/java/awt/java2d/TextCacheKey.java \
 classpath/gnu/java/awt/java2d/TexturePaintContext.java
 
 gnu_java_awt_java2d_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_awt_java2d_source_files)))
@@ -985,12 +1003,11 @@ gnu-java-awt-peer-swing.lo: $(gnu_java_awt_peer_swing_source_files)
 
 gnu_java_awt_peer_x_source_files = \
 classpath/gnu/java/awt/peer/x/GLGraphics.java \
-classpath/gnu/java/awt/peer/x/ImageConverter.java \
 classpath/gnu/java/awt/peer/x/KeyboardMapping.java \
 classpath/gnu/java/awt/peer/x/PixmapVolatileImage.java \
 classpath/gnu/java/awt/peer/x/XDialogPeer.java \
 classpath/gnu/java/awt/peer/x/XEventPump.java \
-classpath/gnu/java/awt/peer/x/XFontPeer2.java \
+classpath/gnu/java/awt/peer/x/XFontPeer.java \
 classpath/gnu/java/awt/peer/x/XFramePeer.java \
 classpath/gnu/java/awt/peer/x/XGraphics2D.java \
 classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java \
@@ -1446,6 +1463,8 @@ gnu/java/nio/channels.list: $(gnu_java_nio_channels_source_files)
 
 gnu_java_nio_charset_source_files = \
 classpath/gnu/java/nio/charset/ByteCharset.java \
+classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java \
+classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java \
 classpath/gnu/java/nio/charset/Cp424.java \
 classpath/gnu/java/nio/charset/Cp437.java \
 classpath/gnu/java/nio/charset/Cp737.java \
@@ -2018,6 +2037,7 @@ gnu_java_util_source_files = \
 classpath/gnu/java/util/Base64.java \
 classpath/gnu/java/util/DoubleEnumeration.java \
 classpath/gnu/java/util/EmptyEnumeration.java \
+classpath/gnu/java/util/LRUCache.java \
 classpath/gnu/java/util/WeakIdentityHashMap.java \
 classpath/gnu/java/util/ZoneInfo.java
 
@@ -6069,6 +6089,32 @@ javax/management/openmbean.list: $(javax_management_openmbean_source_files)
 -include javax/management/openmbean.deps
 
 
+javax_management_remote_source_files = \
+classpath/javax/management/remote/NotificationResult.java \
+classpath/javax/management/remote/TargetedNotification.java
+
+javax_management_remote_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_remote_source_files)))
+
+javax/management/remote.list: $(javax_management_remote_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       echo $(srcdir)/classpath/lib/javax/management/remote/*.class > javax/management/remote.list
+
+-include javax/management/remote.deps
+
+
+javax_management_remote_rmi_source_files = \
+classpath/javax/management/remote/rmi/RMIConnection.java \
+classpath/javax/management/remote/rmi/RMIServer.java
+
+javax_management_remote_rmi_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_management_remote_rmi_source_files)))
+
+javax/management/remote/rmi.list: $(javax_management_remote_rmi_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       echo $(srcdir)/classpath/lib/javax/management/remote/rmi/*.class > javax/management/remote/rmi.list
+
+-include javax/management/remote/rmi.deps
+
+
 javax_naming_source_files = \
 classpath/javax/naming/AuthenticationException.java \
 classpath/javax/naming/AuthenticationNotSupportedException.java \
@@ -7434,6 +7480,20 @@ javax/swing/undo.list: $(javax_swing_undo_source_files)
 -include javax/swing/undo.deps
 
 
+javax_tools_source_files = \
+classpath/javax/tools/Diagnostic.java \
+classpath/javax/tools/DiagnosticListener.java \
+classpath/javax/tools/FileObject.java
+
+javax_tools_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_tools_source_files)))
+
+javax/tools.list: $(javax_tools_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       echo $(srcdir)/classpath/lib/javax/tools/*.class > javax/tools.list
+
+-include javax/tools.deps
+
+
 javax_transaction_source_files = \
 classpath/javax/transaction/HeuristicCommitException.java \
 classpath/javax/transaction/HeuristicMixedException.java \
@@ -8534,6 +8594,7 @@ all_packages_source_files = \
   gnu/awt/j2d.list \
   gnu/classpath.list \
   gnu/classpath/debug.list \
+  gnu/classpath/toolkit.list \
   gnu/gcj.list \
   gnu/gcj/convert.list \
   gnu/gcj/io.list \
@@ -8724,6 +8785,8 @@ all_packages_source_files = \
   javax/management.list \
   javax/management/loading.list \
   javax/management/openmbean.list \
+  javax/management/remote.list \
+  javax/management/remote/rmi.list \
   javax/naming.list \
   javax/naming/directory.list \
   javax/naming/event.list \
@@ -8765,6 +8828,7 @@ all_packages_source_files = \
   javax/swing/text/rtf.list \
   javax/swing/tree.list \
   javax/swing/undo.list \
+  javax/tools.list \
   javax/transaction.list \
   javax/transaction/xa.list \
   org/ietf/jgss.list \
@@ -8780,6 +8844,7 @@ ordinary_header_files = \
   $(gnu_awt_j2d_header_files) \
   $(gnu_classpath_header_files) \
   $(gnu_classpath_debug_header_files) \
+  $(gnu_classpath_toolkit_header_files) \
   $(gnu_gcj_header_files) \
   $(gnu_gcj_convert_header_files) \
   $(gnu_gcj_io_header_files) \
@@ -8967,6 +9032,8 @@ ordinary_header_files = \
   $(javax_management_header_files) \
   $(javax_management_loading_header_files) \
   $(javax_management_openmbean_header_files) \
+  $(javax_management_remote_header_files) \
+  $(javax_management_remote_rmi_header_files) \
   $(javax_naming_header_files) \
   $(javax_naming_directory_header_files) \
   $(javax_naming_event_header_files) \
@@ -9008,6 +9075,7 @@ ordinary_header_files = \
   $(javax_swing_text_rtf_header_files) \
   $(javax_swing_tree_header_files) \
   $(javax_swing_undo_header_files) \
+  $(javax_tools_header_files) \
   $(javax_transaction_header_files) \
   $(javax_transaction_xa_header_files) \
   $(org_ietf_jgss_header_files) \
@@ -9058,23 +9126,10 @@ bc_objects = \
   org-xml.lo
 
 property_files = \
-  classpath/resource/gnu/classpath/tools/appletviewer/messages.properties \
-  classpath/resource/gnu/classpath/tools/common/Messages.properties \
-  classpath/resource/gnu/classpath/tools/getopt/Messages.properties \
-  classpath/resource/gnu/classpath/tools/jar/messages.properties \
-  classpath/resource/gnu/classpath/tools/jarsigner/MessageBundle.properties \
-  classpath/resource/gnu/classpath/tools/jarsigner/messages.properties \
-  classpath/resource/gnu/classpath/tools/keytool/MessageBundle.properties \
-  classpath/resource/gnu/classpath/tools/keytool/messages.properties \
-  classpath/resource/gnu/classpath/tools/native2ascii/messages.properties \
-  classpath/resource/gnu/classpath/tools/orbd/messages.properties \
-  classpath/resource/gnu/classpath/tools/rmic/messages.properties \
-  classpath/resource/gnu/classpath/tools/rmid/messages.properties \
-  classpath/resource/gnu/classpath/tools/rmiregistry/messages.properties \
-  classpath/resource/gnu/classpath/tools/serialver/messages.properties \
-  classpath/resource/gnu/classpath/tools/tnameserv/messages.properties \
+  classpath/resource/gnu/java/awt/font/fonts.properties \
   classpath/resource/gnu/java/awt/peer/gtk/font.properties \
   classpath/resource/gnu/java/awt/peer/x/fonts.properties \
+  classpath/resource/gnu/java/awt/peer/x/xfonts.properties \
   classpath/resource/gnu/java/locale/LocaleInformation.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_aa.properties \
   classpath/resource/gnu/java/locale/LocaleInformation_aa_DJ.properties \
@@ -9355,8 +9410,6 @@ property_files = \
   classpath/resource/javax/imageio/plugins/jpeg/MessagesBundle.properties \
   classpath/resource/javax/swing/text/html/default.css \
   classpath/resource/org/ietf/jgss/MessagesBundle.properties \
-  classpath/resource/sun/rmi/rmic/messages.properties \
-  classpath/resource/com/sun/tools/javac/messages.properties \
   classpath/resource/META-INF/services/java.util.prefs.PreferencesFactory \
   classpath/resource/META-INF/services/java.util.prefs.PreferencesFactory.in \
   classpath/resource/META-INF/services/javax.sound.midi.spi.MidiDeviceProvider \