Import GNU Classpath (libgcj-import-20070727).
authorMatthias Klose <doko@gcc.gnu.org>
Sat, 4 Aug 2007 10:53:49 +0000 (10:53 +0000)
committerMatthias Klose <doko@gcc.gnu.org>
Sat, 4 Aug 2007 10:53:49 +0000 (10:53 +0000)
libjava/

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.

libjava/classpath/

2007-08-04  Matthias Klose  <doko@ubuntu.com>

* java/util/EnumMap.java (clone): Add cast.

From-SVN: r127204

525 files changed:
libjava/ChangeLog
libjava/HACKING
libjava/Makefile.in
libjava/classpath/ChangeLog
libjava/classpath/ChangeLog.gcj
libjava/classpath/INSTALL
libjava/classpath/Makefile.am
libjava/classpath/Makefile.in
libjava/classpath/NEWS
libjava/classpath/autogen.sh
libjava/classpath/configure
libjava/classpath/configure.ac
libjava/classpath/depcomp
libjava/classpath/doc/Makefile.in
libjava/classpath/doc/api/Makefile.in
libjava/classpath/doc/texinfo.tex
libjava/classpath/examples/Makefile.in
libjava/classpath/examples/gnu/classpath/examples/awt/HintingDemo.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/classpath/jdwp/processor/ArrayReferenceCommandSet.java
libjava/classpath/gnu/java/awt/font/FontDelegate.java
libjava/classpath/gnu/java/awt/font/opentype/OpenTypeFont.java
libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java
libjava/classpath/gnu/java/awt/java2d/Pixelizer.java [new file with mode: 0644]
libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java
libjava/classpath/gnu/java/awt/java2d/ScanlineCoverage.java [new file with mode: 0644]
libjava/classpath/gnu/java/awt/java2d/ShapeCache.java
libjava/classpath/gnu/java/awt/peer/ClasspathFontPeer.java
libjava/classpath/gnu/java/awt/peer/GLightweightPeer.java
libjava/classpath/gnu/java/awt/peer/gtk/CairoGraphics2D.java
libjava/classpath/gnu/java/awt/peer/gtk/ComponentGraphics.java
libjava/classpath/gnu/java/awt/peer/gtk/FreetypeGlyphVector.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/GdkRobotPeer.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/GtkGenericPeer.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/headless/HeadlessToolkit.java
libjava/classpath/gnu/java/awt/peer/qt/QtComponentPeer.java
libjava/classpath/gnu/java/awt/peer/qt/QtFontMetrics.java
libjava/classpath/gnu/java/awt/peer/qt/QtFontPeer.java
libjava/classpath/gnu/java/awt/peer/qt/QtFramePeer.java
libjava/classpath/gnu/java/awt/peer/qt/QtToolkit.java
libjava/classpath/gnu/java/awt/peer/qt/QtWindowPeer.java
libjava/classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java
libjava/classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java [new file with mode: 0755]
libjava/classpath/gnu/java/awt/peer/swing/SwingComponent.java
libjava/classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java
libjava/classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java
libjava/classpath/gnu/java/awt/peer/swing/SwingLabelPeer.java
libjava/classpath/gnu/java/awt/peer/swing/SwingListPeer.java
libjava/classpath/gnu/java/awt/peer/swing/SwingPanelPeer.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/swing/SwingToolkit.java
libjava/classpath/gnu/java/awt/peer/swing/SwingWindowPeer.java
libjava/classpath/gnu/java/awt/peer/x/KeyboardMapping.java
libjava/classpath/gnu/java/awt/peer/x/PixmapVolatileImage.java [new file with mode: 0644]
libjava/classpath/gnu/java/awt/peer/x/XEventPump.java
libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java [deleted file]
libjava/classpath/gnu/java/awt/peer/x/XFontPeer2.java
libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java
libjava/classpath/gnu/java/awt/peer/x/XGraphics.java [deleted file]
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/XGraphicsDevice.java
libjava/classpath/gnu/java/awt/peer/x/XImage.java
libjava/classpath/gnu/java/awt/peer/x/XLightweightPeer.java [deleted file]
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 [new file with mode: 0644]
libjava/classpath/gnu/java/math/Fixed.java
libjava/classpath/gnu/java/net/loader/URLLoader.java
libjava/classpath/gnu/java/nio/charset/ISO_8859_1.java
libjava/classpath/gnu/java/security/Engine.java
libjava/classpath/gnu/javax/sound/AudioSecurityManager.java [new file with mode: 0644]
libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java [new file with mode: 0644]
libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java [new file with mode: 0644]
libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java [new file with mode: 0644]
libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java [new file with mode: 0644]
libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.java [new file with mode: 0644]
libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java [new file with mode: 0644]
libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java [new file with mode: 0644]
libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java [new file with mode: 0644]
libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java [new file with mode: 0644]
libjava/classpath/gnu/xml/dom/DomDocument.java
libjava/classpath/gnu/xml/dom/DomElement.java
libjava/classpath/gnu/xml/dom/DomNamedNodeMap.java
libjava/classpath/gnu/xml/dom/DomNode.java
libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java
libjava/classpath/gnu/xml/stream/XMLParser.java
libjava/classpath/gnu/xml/transform/WithParam.java
libjava/classpath/include/GtkDragSourceContextPeer.h [deleted file]
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 [new file with mode: 0644]
libjava/classpath/include/gnu_java_awt_peer_gtk_CairoGraphics2D.h
libjava/classpath/include/gnu_java_awt_peer_gtk_ComponentGraphics.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkGenericPeer.h
libjava/classpath/include/gnu_java_awt_peer_gtk_GtkToolkit.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtContainerPeer.h [deleted file]
libjava/classpath/include/gnu_java_awt_peer_qt_QtFontMetrics.h
libjava/classpath/include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h [deleted file]
libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h [new file with mode: 0644]
libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h [deleted file]
libjava/classpath/include/jni.h
libjava/classpath/include/jvmti.h
libjava/classpath/install-sh
libjava/classpath/java/awt/AWTKeyStroke.java
libjava/classpath/java/awt/AlphaComposite.java
libjava/classpath/java/awt/Dialog.java
libjava/classpath/java/awt/Font.java
libjava/classpath/java/awt/Toolkit.java
libjava/classpath/java/awt/event/MouseEvent.java
libjava/classpath/java/awt/peer/ComponentPeer.java
libjava/classpath/java/awt/peer/FramePeer.java
libjava/classpath/java/awt/peer/RobotPeer.java
libjava/classpath/java/awt/peer/WindowPeer.java
libjava/classpath/java/io/ObjectStreamClass.java
libjava/classpath/java/lang/Float.java
libjava/classpath/java/lang/Integer.java
libjava/classpath/java/lang/reflect/Array.java
libjava/classpath/java/net/URLClassLoader.java
libjava/classpath/java/nio/Buffer.java
libjava/classpath/java/nio/CharBuffer.java
libjava/classpath/java/nio/CharSequenceBuffer.java [new file with mode: 0644]
libjava/classpath/java/nio/CharViewBufferImpl.java
libjava/classpath/java/nio/DoubleViewBufferImpl.java
libjava/classpath/java/nio/FloatViewBufferImpl.java
libjava/classpath/java/nio/IntViewBufferImpl.java
libjava/classpath/java/nio/LongViewBufferImpl.java
libjava/classpath/java/nio/ShortViewBufferImpl.java
libjava/classpath/java/rmi/MarshalledObject.java
libjava/classpath/java/rmi/activation/Activatable.java
libjava/classpath/java/rmi/activation/ActivationDesc.java
libjava/classpath/java/rmi/activation/ActivationGroup.java
libjava/classpath/java/rmi/activation/ActivationGroupDesc.java
libjava/classpath/java/rmi/activation/ActivationInstantiator.java
libjava/classpath/java/rmi/activation/ActivationMonitor.java
libjava/classpath/java/rmi/activation/Activator.java
libjava/classpath/java/util/Arrays.java
libjava/classpath/java/util/Currency.java
libjava/classpath/java/util/EnumMap.java
libjava/classpath/javax/management/ObjectName.java
libjava/classpath/javax/sound/sampled/AudioFormat.java
libjava/classpath/javax/sound/sampled/DataLine.java
libjava/classpath/javax/sound/sampled/spi/MixerProvider.java
libjava/classpath/javax/swing/plaf/basic/BasicProgressBarUI.java
libjava/classpath/javax/swing/text/html/parser/AttributeList.java
libjava/classpath/lib/Makefile.am
libjava/classpath/lib/Makefile.in
libjava/classpath/lib/gnu/awt/xlib/XCanvasPeer$DoMap.class
libjava/classpath/lib/gnu/awt/xlib/XCanvasPeer.class
libjava/classpath/lib/gnu/awt/xlib/XFontPeer.class
libjava/classpath/lib/gnu/awt/xlib/XFramePeer.class
libjava/classpath/lib/gnu/awt/xlib/XToolkit.class
libjava/classpath/lib/gnu/java/awt/font/FontDelegate.class
libjava/classpath/lib/gnu/java/awt/font/opentype/OpenTypeFont.class
libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class
libjava/classpath/lib/gnu/java/awt/java2d/Pixelizer.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class
libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Coverage.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Iterator.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Range.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/java2d/ShapeCache.class
libjava/classpath/lib/gnu/java/awt/peer/ClasspathFontPeer.class
libjava/classpath/lib/gnu/java/awt/peer/GLightweightPeer.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/CairoGraphics2D.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/FreetypeGlyphVector.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/GdkRobotPeer.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.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkFramePeer.class
libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkGenericPeer.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/headless/HeadlessToolkit.class
libjava/classpath/lib/gnu/java/awt/peer/qt/QtComponentPeer.class
libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontMetrics.class
libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontPeer.class
libjava/classpath/lib/gnu/java/awt/peer/qt/QtFramePeer.class
libjava/classpath/lib/gnu/java/awt/peer/qt/QtToolkit.class
libjava/classpath/lib/gnu/java/awt/peer/qt/QtWindowPeer.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButtonListener.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponent.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponentPeer.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingContainerPeer.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer$SwingList.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.class [new file with mode: 0644]
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.class [new file with mode: 0644]
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/peer/swing/SwingToolkit.class
libjava/classpath/lib/gnu/java/awt/peer/swing/SwingWindowPeer.class
libjava/classpath/lib/gnu/java/locale/LocaleData.class
libjava/classpath/lib/gnu/java/math/Fixed.class
libjava/classpath/lib/gnu/java/net/loader/URLLoader.class
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/security/Engine.class
libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class [new file with mode: 0644]
libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class [new file with mode: 0644]
libjava/classpath/lib/gnu/xml/dom/DomDocument.class
libjava/classpath/lib/gnu/xml/dom/DomElement.class
libjava/classpath/lib/gnu/xml/dom/DomNamedNodeMap.class
libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.class
libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.class
libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.class
libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.class
libjava/classpath/lib/gnu/xml/dom/DomNode.class
libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.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/transform/WithParam.class
libjava/classpath/lib/java/awt/Dialog$AccessibleAWTDialog.class
libjava/classpath/lib/java/awt/Dialog$ModalExclusionType.class [new file with mode: 0644]
libjava/classpath/lib/java/awt/Dialog$ModalityType.class [new file with mode: 0644]
libjava/classpath/lib/java/awt/Dialog.class
libjava/classpath/lib/java/awt/Font.class
libjava/classpath/lib/java/awt/Toolkit$2.class
libjava/classpath/lib/java/awt/Toolkit.class
libjava/classpath/lib/java/awt/event/MouseEvent.class
libjava/classpath/lib/java/awt/peer/ComponentPeer.class
libjava/classpath/lib/java/awt/peer/FramePeer.class
libjava/classpath/lib/java/awt/peer/RobotPeer.class
libjava/classpath/lib/java/awt/peer/WindowPeer.class
libjava/classpath/lib/java/io/ObjectStreamClass$2.class
libjava/classpath/lib/java/io/ObjectStreamClass$InterfaceComparator.class
libjava/classpath/lib/java/io/ObjectStreamClass$MemberComparator.class
libjava/classpath/lib/java/io/ObjectStreamClass.class
libjava/classpath/lib/java/lang/Float.class
libjava/classpath/lib/java/lang/Integer.class
libjava/classpath/lib/java/lang/VMFloat.class
libjava/classpath/lib/java/net/URLClassLoader$1.class
libjava/classpath/lib/java/net/URLClassLoader$2.class
libjava/classpath/lib/java/net/URLClassLoader.class
libjava/classpath/lib/java/nio/CharBuffer.class
libjava/classpath/lib/java/nio/CharSequenceBuffer.class [new file with mode: 0644]
libjava/classpath/lib/java/nio/CharViewBufferImpl.class
libjava/classpath/lib/java/nio/DoubleViewBufferImpl.class
libjava/classpath/lib/java/nio/FloatViewBufferImpl.class
libjava/classpath/lib/java/nio/IntViewBufferImpl.class
libjava/classpath/lib/java/nio/LongViewBufferImpl.class
libjava/classpath/lib/java/nio/ShortViewBufferImpl.class
libjava/classpath/lib/java/rmi/MarshalledObject.class
libjava/classpath/lib/java/rmi/activation/Activatable.class
libjava/classpath/lib/java/rmi/activation/ActivationDesc.class
libjava/classpath/lib/java/rmi/activation/ActivationGroup.class
libjava/classpath/lib/java/rmi/activation/ActivationGroupDesc.class
libjava/classpath/lib/java/rmi/activation/ActivationInstantiator.class
libjava/classpath/lib/java/rmi/activation/ActivationMonitor.class
libjava/classpath/lib/java/rmi/activation/Activator.class
libjava/classpath/lib/java/util/Arrays.class
libjava/classpath/lib/java/util/EnumMap$1.class
libjava/classpath/lib/java/util/EnumMap$2.class
libjava/classpath/lib/java/util/EnumMap$3.class
libjava/classpath/lib/java/util/EnumMap$4.class
libjava/classpath/lib/java/util/EnumMap$5.class
libjava/classpath/lib/java/util/EnumMap$6.class
libjava/classpath/lib/java/util/EnumMap$7.class
libjava/classpath/lib/java/util/EnumMap.class
libjava/classpath/lib/javax/management/ObjectName.class
libjava/classpath/lib/javax/sound/sampled/AudioFormat.class
libjava/classpath/lib/javax/sound/sampled/DataLine$Info.class
libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI.class
libjava/classpath/lib/javax/swing/text/html/parser/AttributeList.class
libjava/classpath/lib/sun/awt/CausedFocusEvent$Cause.class [new file with mode: 0644]
libjava/classpath/lib/sun/awt/CausedFocusEvent.class [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/jawt/Makefile.in
libjava/classpath/native/jni/Makefile.am
libjava/classpath/native/jni/Makefile.in
libjava/classpath/native/jni/classpath/Makefile.am
libjava/classpath/native/jni/classpath/Makefile.in
libjava/classpath/native/jni/classpath/native_state.c [deleted file]
libjava/classpath/native/jni/classpath/native_state.h [deleted file]
libjava/classpath/native/jni/gconf-peer/Makefile.am
libjava/classpath/native/jni/gconf-peer/Makefile.in
libjava/classpath/native/jni/gstreamer-peer/GStreamerIOPeer.c [new file with mode: 0644]
libjava/classpath/native/jni/gstreamer-peer/Makefile.am [new file with mode: 0644]
libjava/classpath/native/jni/gstreamer-peer/Makefile.in [new file with mode: 0644]
libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.c [new file with mode: 0644]
libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.h [new file with mode: 0644]
libjava/classpath/native/jni/gstreamer-peer/gstinputstream.c [new file with mode: 0644]
libjava/classpath/native/jni/gstreamer-peer/gstinputstream.h [new file with mode: 0644]
libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c
libjava/classpath/native/jni/gtk-peer/Makefile.am
libjava/classpath/native/jni/gtk-peer/Makefile.in
libjava/classpath/native/jni/gtk-peer/cairographics2d.h
libjava/classpath/native/jni/gtk-peer/gdkdisplay.h
libjava/classpath/native/jni/gtk-peer/gdkfont.h
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.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_FreetypeGlyphVector.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.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_GtkEmbeddedWindowPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.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/gnu_java_awt_peer_gtk_GtkWindowPeer.c
libjava/classpath/native/jni/gtk-peer/gtk_jawt.c
libjava/classpath/native/jni/gtk-peer/gtkpeer.c [new file with mode: 0644]
libjava/classpath/native/jni/gtk-peer/gtkpeer.h
libjava/classpath/native/jni/java-io/Makefile.in
libjava/classpath/native/jni/java-lang/Makefile.in
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/java_net_VMInetAddress.c
libjava/classpath/native/jni/java-net/javanet.c
libjava/classpath/native/jni/java-nio/Makefile.in
libjava/classpath/native/jni/java-nio/gnu_java_nio_VMChannel.c
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.in
libjava/classpath/native/jni/native-lib/cpio.c
libjava/classpath/native/jni/native-lib/cpnet.c
libjava/classpath/native/jni/native-lib/cpnet.h
libjava/classpath/native/jni/qt-peer/Makefile.in
libjava/classpath/native/jni/qt-peer/qtfontmetrics.cpp
libjava/classpath/native/jni/xmlj/Makefile.in
libjava/classpath/native/jni/xmlj/xmlj_xpath.c
libjava/classpath/native/plugin/Makefile.in
libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader
libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in [new file with mode: 0644]
libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in [new file with mode: 0644]
libjava/classpath/resource/Makefile.in
libjava/classpath/scripts/Makefile.in
libjava/classpath/sun/awt/CausedFocusEvent.java [new file with mode: 0644]
libjava/classpath/tools/Makefile.am
libjava/classpath/tools/Makefile.in
libjava/classpath/tools/classes/com/sun/tools/javah/Main.class [new file with mode: 0644]
libjava/classpath/tools/com/sun/tools/javah/Main.java [new file with mode: 0644]
libjava/classpath/tools/gappletviewer.in
libjava/classpath/tools/gjar.in
libjava/classpath/tools/gjarsigner.in
libjava/classpath/tools/gjavah.in
libjava/classpath/tools/gkeytool.in
libjava/classpath/tools/gnative2ascii.in
libjava/classpath/tools/gorbd.in
libjava/classpath/tools/grmic.in
libjava/classpath/tools/grmid.in
libjava/classpath/tools/grmiregistry.in
libjava/classpath/tools/gserialver.in
libjava/classpath/tools/gtnameserv.in
libjava/classpath/vm/reference/gnu/classpath/jdwp/VMFrame.java
libjava/classpath/vm/reference/gnu/classpath/jdwp/VMMethod.java
libjava/classpath/vm/reference/java/lang/VMFloat.java
libjava/classpath/vm/reference/sun/misc/Unsafe.java
libjava/gnu/awt/xlib/XCanvasPeer.h
libjava/gnu/awt/xlib/XCanvasPeer.java
libjava/gnu/awt/xlib/XFontPeer.h
libjava/gnu/awt/xlib/XFontPeer.java
libjava/gnu/awt/xlib/XFramePeer.h
libjava/gnu/awt/xlib/XFramePeer.java
libjava/gnu/awt/xlib/XToolkit.h
libjava/gnu/awt/xlib/XToolkit.java
libjava/gnu/java/awt/font/FontDelegate.h
libjava/gnu/java/awt/font/opentype/OpenTypeFont.h
libjava/gnu/java/awt/java2d/AbstractGraphics2D.h
libjava/gnu/java/awt/java2d/Pixelizer.h [new file with mode: 0644]
libjava/gnu/java/awt/java2d/ScanlineConverter.h
libjava/gnu/java/awt/java2d/ScanlineCoverage$Coverage.h [new file with mode: 0644]
libjava/gnu/java/awt/java2d/ScanlineCoverage$Iterator.h [new file with mode: 0644]
libjava/gnu/java/awt/java2d/ScanlineCoverage$Range.h [new file with mode: 0644]
libjava/gnu/java/awt/java2d/ScanlineCoverage.h [new file with mode: 0644]
libjava/gnu/java/awt/java2d/ShapeCache.h
libjava/gnu/java/awt/peer/ClasspathFontPeer.h
libjava/gnu/java/awt/peer/EmbeddedWindowPeer.h
libjava/gnu/java/awt/peer/GLightweightPeer.h
libjava/gnu/java/awt/peer/gtk/FreetypeGlyphVector.h
libjava/gnu/java/awt/peer/gtk/GdkFontPeer.h
libjava/gnu/java/awt/peer/gtk/GdkGraphicsEnvironment.h
libjava/gnu/java/awt/peer/gtk/GdkPixbufDecoder.h
libjava/gnu/java/awt/peer/gtk/GdkRobotPeer.h
libjava/gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice.h
libjava/gnu/java/awt/peer/gtk/GtkComponentPeer.h
libjava/gnu/java/awt/peer/gtk/GtkFramePeer.h
libjava/gnu/java/awt/peer/gtk/GtkGenericPeer.h
libjava/gnu/java/awt/peer/gtk/GtkToolkit.h
libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.h
libjava/gnu/java/awt/peer/headless/HeadlessToolkit.h
libjava/gnu/java/awt/peer/qt/QtComponentPeer.h
libjava/gnu/java/awt/peer/qt/QtFontMetrics.h
libjava/gnu/java/awt/peer/qt/QtFontPeer.h
libjava/gnu/java/awt/peer/qt/QtFramePeer.h
libjava/gnu/java/awt/peer/qt/QtToolkit.h
libjava/gnu/java/awt/peer/qt/QtWindowPeer.h
libjava/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.h
libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.h [new file with mode: 0644]
libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.h [new file with mode: 0644]
libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer.h [new file with mode: 0644]
libjava/gnu/java/awt/peer/swing/SwingComponent.h
libjava/gnu/java/awt/peer/swing/SwingComponentPeer.h
libjava/gnu/java/awt/peer/swing/SwingContainerPeer.h
libjava/gnu/java/awt/peer/swing/SwingFramePeer.h
libjava/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.h
libjava/gnu/java/awt/peer/swing/SwingListPeer$SwingList.h
libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.h [new file with mode: 0644]
libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.h [new file with mode: 0644]
libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingTextArea.h
libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer.h
libjava/gnu/java/awt/peer/swing/SwingTextFieldPeer$SwingTextField.h
libjava/gnu/java/awt/peer/swing/SwingToolkit.h
libjava/gnu/java/awt/peer/swing/SwingWindowPeer.h
libjava/gnu/java/math/Fixed.h
libjava/gnu/javax/sound/AudioSecurityManager$Permission.h [new file with mode: 0644]
libjava/gnu/javax/sound/AudioSecurityManager.h [new file with mode: 0644]
libjava/gnu/xml/dom/DomDocument.h
libjava/gnu/xml/dom/DomNamedNodeMap.h
libjava/gnu/xml/dom/DomNode.h
libjava/gnu/xml/stream/XMLParser$Attribute.h
libjava/include/jvm.h
libjava/java/awt/Dialog$ModalExclusionType.h [new file with mode: 0644]
libjava/java/awt/Dialog$ModalityType.h [new file with mode: 0644]
libjava/java/awt/Font.h
libjava/java/awt/Toolkit.h
libjava/java/awt/event/MouseEvent.h
libjava/java/awt/peer/ButtonPeer.h
libjava/java/awt/peer/CanvasPeer.h
libjava/java/awt/peer/CheckboxPeer.h
libjava/java/awt/peer/ChoicePeer.h
libjava/java/awt/peer/ComponentPeer.h
libjava/java/awt/peer/ContainerPeer.h
libjava/java/awt/peer/DialogPeer.h
libjava/java/awt/peer/FileDialogPeer.h
libjava/java/awt/peer/FramePeer.h
libjava/java/awt/peer/LabelPeer.h
libjava/java/awt/peer/LightweightPeer.h
libjava/java/awt/peer/ListPeer.h
libjava/java/awt/peer/PanelPeer.h
libjava/java/awt/peer/RobotPeer.h
libjava/java/awt/peer/ScrollPanePeer.h
libjava/java/awt/peer/ScrollbarPeer.h
libjava/java/awt/peer/TextAreaPeer.h
libjava/java/awt/peer/TextComponentPeer.h
libjava/java/awt/peer/TextFieldPeer.h
libjava/java/awt/peer/WindowPeer.h
libjava/java/lang/VMFloat.h
libjava/java/lang/VMFloat.java
libjava/java/lang/reflect/natMethod.cc
libjava/java/nio/CharSequenceBuffer.h [new file with mode: 0644]
libjava/javax/management/ObjectName.h
libjava/jni-libjvm.cc
libjava/jni.cc
libjava/scripts/makemake.tcl
libjava/sources.am
libjava/sun/awt/CausedFocusEvent$Cause.h [new file with mode: 0644]
libjava/sun/awt/CausedFocusEvent.h [new file with mode: 0644]

index 42a24a159fe2aa7c5d1ea0402e5c1fb209213088..e28062ddb66d6c6d45ee7b13d548c3e6f15dbde2 100644 (file)
@@ -1,3 +1,35 @@
+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.
index a22f135afb05fb8db5100f7650669e3518d47fe5..560b0f7b8eb12555dcfdd81ab76a6ed85da83375 100644 (file)
@@ -104,17 +104,27 @@ To import a new release:
   cd ..
   scripts/makemake.tcl > sources.am
   automake
+- Remove the generated class and header files:
+  find classpath -name '*.class' xargs -r rm -f
+  find gnu java javax org sun -name '*.h' \
+    | xargs -r grep -Fl 'DO NOT EDIT THIS FILE - it is machine generated' \
+    | xargs -r rm -f
 - Build, fix, till everything works.
   Be sure to build all peers (--enable-java-awt=gtk,xlib,qt
-  --enable-gconf-peer)
+  --enable-gconf-peer --enable-gstreamer-peer)
   Be sure to update gnu/classpath/Configuration.java to reflect
     the new version
   Possibly update the gcj/javaprims.h file with scripts/classes.pl
   (See below, it can only be done after the first source->bytecode
    pass has finished.)
-  You will need to configure with --enable-maintainer-mode and you
+  You will need to configure with --enable-java-maintainer-mode and you
   will need to update the .class files and generated CNI header files in
   your working tree
+- Add/Remove newly generated files:
+  - svn status classpath | grep '^\!.*\.class$' | cut -c8- | xargs svn remove
+  - svn status classpath | grep '^\?' | cut -c8- | xargs svn add
+  - svn status gnu java javax org sun | grep '^\!.*\.h$' | cut -c8- | xargs svn remove
+  - svn status gnu java javax org sun | grep '^\?' | cut -c8- | xargs svn add
 
 Over time we plan to remove as many of the remaining divergences as
 possible.
index b9cd3c021445b62a27cfcd75ca673f93ffafbaaa..cb8b02476ea7ce758525125a6726ef7baaeda511 100644 (file)
@@ -223,10 +223,10 @@ am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
        gnu/javax/print/ipp/attribute/printer.lo \
        gnu/javax/print/ipp/attribute/supported.lo \
        gnu/javax/security/auth.lo gnu/javax/security/auth/callback.lo \
-       gnu/javax/security/auth/login.lo gnu/javax/sound/sampled/AU.lo \
-       gnu/javax/sound/sampled/WAV.lo gnu/javax/swing/plaf/gnu.lo \
-       gnu/javax/swing/plaf/metal.lo gnu/javax/swing/text/html.lo \
-       gnu/javax/swing/text/html/css.lo \
+       gnu/javax/security/auth/login.lo gnu/javax/sound.lo \
+       gnu/javax/sound/sampled/AU.lo gnu/javax/sound/sampled/WAV.lo \
+       gnu/javax/swing/plaf/gnu.lo gnu/javax/swing/plaf/metal.lo \
+       gnu/javax/swing/text/html.lo gnu/javax/swing/text/html/css.lo \
        gnu/javax/swing/text/html/parser/GnuParserDelegator.lo \
        gnu/javax/swing/text/html/parser/HTML_401F.lo \
        gnu/javax/swing/text/html/parser/SmallHtmlAttributeSet.lo \
@@ -278,9 +278,9 @@ am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.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/transaction/xa.lo org/ietf/jgss.lo sun/misc.lo \
-       sun/reflect.lo sun/reflect/annotation.lo sun/reflect/misc.lo \
-       $(am__DEPENDENCIES_1)
+       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)
 am__DEPENDENCIES_3 = gnu-CORBA.lo gnu-java-awt-dnd-peer-gtk.lo \
        gnu-java-awt-peer-gtk.lo gnu-java-awt-peer-swing.lo \
        gnu-java-beans.lo gnu-java-lang-management.lo \
@@ -1524,12 +1524,14 @@ 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/Pixelizer.java \
 classpath/gnu/java/awt/java2d/PolyEdge.java \
 classpath/gnu/java/awt/java2d/PolyEdgeComparator.java \
 classpath/gnu/java/awt/java2d/QuadSegment.java \
 classpath/gnu/java/awt/java2d/RasterGraphics.java \
 classpath/gnu/java/awt/java2d/Scanline.java \
 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/TexturePaintContext.java
@@ -1650,6 +1652,7 @@ classpath/gnu/java/awt/peer/qt/QtWindowPeer.java
 gnu_java_awt_peer_swing_source_files = \
 classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java \
 classpath/gnu/java/awt/peer/swing/SwingCanvasPeer.java \
+classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java \
 classpath/gnu/java/awt/peer/swing/SwingComponent.java \
 classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java \
 classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java \
@@ -1669,20 +1672,19 @@ 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/XFontPeer.java \
 classpath/gnu/java/awt/peer/x/XFontPeer2.java \
 classpath/gnu/java/awt/peer/x/XFramePeer.java \
-classpath/gnu/java/awt/peer/x/XGraphics.java \
 classpath/gnu/java/awt/peer/x/XGraphics2D.java \
 classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java \
 classpath/gnu/java/awt/peer/x/XGraphicsDevice.java \
 classpath/gnu/java/awt/peer/x/XGraphicsEnvironment.java \
 classpath/gnu/java/awt/peer/x/XImage.java \
-classpath/gnu/java/awt/peer/x/XLightweightPeer.java \
 classpath/gnu/java/awt/peer/x/XToolkit.java \
-classpath/gnu/java/awt/peer/x/XWindowPeer.java
+classpath/gnu/java/awt/peer/x/XWindowPeer.java \
+classpath/gnu/java/awt/peer/x/ZPixmapDataBuffer.java
 
 gnu_java_awt_print_source_files = \
 classpath/gnu/java/awt/print/JavaPrinterGraphics.java \
@@ -3221,6 +3223,10 @@ classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java \
 classpath/gnu/javax/security/auth/login/GnuConfiguration.java
 
 gnu_javax_security_auth_login_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_security_auth_login_source_files)))
+gnu_javax_sound_source_files = \
+classpath/gnu/javax/sound/AudioSecurityManager.java
+
+gnu_javax_sound_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_sound_source_files)))
 gnu_javax_sound_midi_source_files = \
 classpath/gnu/javax/sound/midi/alsa/AlsaInputPortDevice.java \
 classpath/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java \
@@ -4523,6 +4529,7 @@ classpath/java/nio/ByteBufferImpl.java \
 classpath/java/nio/ByteOrder.java \
 classpath/java/nio/CharBuffer.java \
 classpath/java/nio/CharBufferImpl.java \
+classpath/java/nio/CharSequenceBuffer.java \
 classpath/java/nio/CharViewBufferImpl.java \
 java/nio/DirectByteBufferImpl.java \
 classpath/java/nio/DoubleBuffer.java \
@@ -7295,6 +7302,10 @@ classpath/external/sax/org/xml/sax/helpers/XMLFilterImpl.java \
 classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java \
 classpath/external/sax/org/xml/sax/helpers/XMLReaderFactory.java
 
+sun_awt_source_files = \
+classpath/sun/awt/CausedFocusEvent.java
+
+sun_awt_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(sun_awt_source_files)))
 sun_misc_source_files = \
 classpath/sun/misc/Service.java \
 classpath/sun/misc/ServiceConfigurationError.java \
@@ -7460,6 +7471,7 @@ all_packages_source_files = \
   gnu/javax/security/auth.list \
   gnu/javax/security/auth/callback.list \
   gnu/javax/security/auth/login.list \
+  gnu/javax/sound.list \
   gnu/javax/sound/sampled/AU.list \
   gnu/javax/sound/sampled/WAV.list \
   gnu/javax/swing/plaf/gnu.list \
@@ -7581,6 +7593,7 @@ all_packages_source_files = \
   javax/transaction.list \
   javax/transaction/xa.list \
   org/ietf/jgss.list \
+  sun/awt.list \
   sun/misc.list \
   sun/reflect.list \
   sun/reflect/annotation.list \
@@ -7706,6 +7719,7 @@ ordinary_header_files = \
   $(gnu_javax_security_auth_header_files) \
   $(gnu_javax_security_auth_callback_header_files) \
   $(gnu_javax_security_auth_login_header_files) \
+  $(gnu_javax_sound_header_files) \
   $(gnu_javax_sound_sampled_AU_header_files) \
   $(gnu_javax_sound_sampled_WAV_header_files) \
   $(gnu_javax_swing_plaf_gnu_header_files) \
@@ -7822,6 +7836,7 @@ ordinary_header_files = \
   $(javax_transaction_header_files) \
   $(javax_transaction_xa_header_files) \
   $(org_ietf_jgss_header_files) \
+  $(sun_awt_header_files) \
   $(sun_misc_header_files) \
   $(sun_reflect_header_files) \
   $(sun_reflect_annotation_header_files) \
@@ -10966,6 +10981,12 @@ gnu/javax/security/auth/login.list: $(gnu_javax_security_auth_login_source_files
 
 -include gnu/javax/security/auth/login.deps
 
+gnu/javax/sound.list: $(gnu_javax_sound_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       echo $(srcdir)/classpath/lib/gnu/javax/sound/*.class > gnu/javax/sound.list
+
+-include gnu/javax/sound.deps
+
 gnu-javax-sound-midi.lo: $(gnu_javax_sound_midi_source_files)
        @find $(srcdir)/classpath/lib/gnu/javax/sound/midi -name '*.class' > gnu-javax-sound-midi.list
        $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o gnu-javax-sound-midi.lo @gnu-javax-sound-midi.list
@@ -11782,6 +11803,12 @@ org-xml.lo: $(org_xml_source_files)
        $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o org-xml.lo @org-xml.list
        @rm -f org-xml.list
 
+sun/awt.list: $(sun_awt_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       echo $(srcdir)/classpath/lib/sun/awt/*.class > sun/awt.list
+
+-include sun/awt.deps
+
 sun/misc.list: $(sun_misc_source_files)
        @$(mkinstalldirs) $(dir $@)
        echo $(srcdir)/classpath/lib/sun/misc/*.class > sun/misc.list
index 9f136e094d26d1857fd6724c0e9daf1026197577..33455acf899f36366397512b619910d836cd02e5 100644 (file)
-2007-07-20  Keith Seitz  <keiths@redhat.com>
+2007-07-28  Matthias Klose  <doko@ubuntu.com>
 
-       * gnu/classpath/jdwp/value/StringValue.java
+       * 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>
+
+       * 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-20  Keith Seitz  <keiths@redhat.com>
+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
+       (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.
        (SetThrownException): Remove.
        (getResultType): Remove.
        (setResultType): Remove.
-       * gnu/classpath/jdwp/value/ObjectValue.java (getValue):
+       * 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 Object[] parameter with Value[] parameter.
+       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.
-       * configure: Regenerate.
 
-2007-05-07 Keith Seitz  <keiths@redhat.com>
+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.
        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.
        (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>
 
-       * configure.ac (VERSION): Set to 0.95.
+       * 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>
 
        PR classpath/31646:
        * java/util/Arrays.java (qsort): Corrected initial median calculation.
 
-2007-04-19  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+2007-04-22  Dalibor Topic  <robilad@kaffe.org>
 
-       * m4/acinclude.m4
-       (CLASSPATH_FIND_JAVAC): Allow detected JAVAC.
+       * 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>
 
        * 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:
        * 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>
 
        * native/plugin/Makefile.am (libgcjwebplugin_la_LDFLAGS):
        Added AM_LDFLAGS for automake 1.10.
 
-2007-04-15  Dalibor Topic  <robilad@kaffe.org>
+2007-04-16  Tom Tromey  <tromey@redhat.com>
 
-       * depcomp, install-sh, missing, mkinstalldirs,
-       doc/texinfo.tex: Removed files generated by autogen.sh.
+       https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=236614
+       * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java
+       (createSocket): Change order of delegation.
 
-       * .cvsignore: Ignore generated files depcomp, install-sh,
-       missing, mkinstalldirs.
+2007-04-16  Andrew Haley  <aph@redhat.com>
 
-       * doc/.cvsignore: Ignore generated file doc/texinfo.tex.
+       * 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/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,
 
 2007-04-15  Dalibor Topic  <robilad@kaffe.org>
 
-       * doc/Makefile.am: Fix portability warnings from
-       automake 1.10.
+       * 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>
 
 
 2007-04-15  Dalibor Topic  <robilad@kaffe.org>
 
-       * configure.ac: Added support for Iceape libraries as
+       * configure.ac: Added support for Iceape libraries as 
        a substitute for Mozilla for Debian.
 
-2007-04-17  Tom Tromey  <tromey@redhat.com>
+2007-04-12  Roman Kennke  <roman@kennke.org>
 
-       https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=236614
-       * gnu/javax/net/ssl/provider/SSLSocketFactoryImpl.java
-       (createSocket): Change order of delegation.
+       * java/nio/Buffer.java
+       (array): New abstract method.
+       (hasArray): New abstract method.
+       (arrayOffset): New abstract method.
+       (isDirect): New abstract method.
 
-2007-04-17  Casey Marshall  <csm@gnu.org>
+2007-04-12  Roman Kennke  <roman@kennke.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'.
+       * 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-16  Mark Wielaard  <mark@klomp.org>
+2007-04-12  Francis Kung  <fkung@redhat.com>
 
-       Fixes bug #31590
-       * java/net/URI.java (parseServerAuthority): Allow empty portStr.
+       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-16  Chris Burdess  <dog@gnu.org>
+2007-04-12  Francis Kung  <fkung@redhat.com>
 
-       * gnu/xml/stream/XMLParser.java: Work around a problem with  
-       incorrectly formatted file URLs.
+       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-11  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+2007-04-12  Francis Kung  <fkung@redhat.com>
 
-       * configure.ac: Added AC_C_INLINE.
+       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>
 
        * native/jni/native-lib/cpnet.c (cpnet_getHostByName): Check for
        different number of arguments of gethostbyname_r.
 
-2007-04-11  Francis Kung  <fkung@redhat.com>
+2007-04-12  Mark Wielaard  <mark@klomp.org>
 
-       * 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.
+       * 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-11  Christian Thalinger  <twisti@complang.tuwien.ac.at>
+2007-04-12  Mark Wielaard  <mark@klomp.org>
 
-       * native/jni/native-lib/cpproc.c (cpproc_forkAndExec): Fixed
-       warning on some compilers, e.g. MIPSpro.
+       * 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-12  Mark Wielaard  <mark@klomp.org>
+2007-04-11  Christian Thalinger  <twisti@complang.tuwien.ac.at>
 
-       * 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.
+       * native/jni/native-lib/cpproc.c (cpproc_forkAndExec): Fixed
+       warning on some compilers, e.g. MIPSpro.
 
-2007-04-12  Mark Wielaard  <mark@klomp.org>
+2007-04-11  Francis Kung  <fkung@redhat.com>
 
-       * configure.ac (COMPILE_GTK_PEER): Add check for cairo >= 1.1.8.
+       * 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>
 
        (quote(String)): Handle newlines and quotes
        correctly.
 
-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  Francis Kung  <fkung@redhat.com>
 
        PR 31311
        * 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 surfac
-e
+       (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,
@@ -284,15 +1367,21 @@ e
        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.95-rc.
+       * configure.ac (VERSION): Set to 0.96-pre.
 
 2007-04-06  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
index 8bb18fc8e53bb796432f35743ecef8173fe0d0d2..ff019d023680205b6d92a2fb3e3647781e49e9e2 100644 (file)
@@ -1,3 +1,7 @@
+2007-08-04  Matthias Klose  <doko@ubuntu.com>
+
+       * java/util/EnumMap.java (clone): Add cast.
+
 2007-07-12  Matthias Klose  <doko@ubuntu.com>
 
        * lib/jazzlib, tools/gnu/classpath/tools/rmi: Remove empty directories.
index 86ce66c64e48ff0d43d179610d1734acbfd2ea79..23e5f25d0e5f85798dcfb368ecb2f04f59777f61 100644 (file)
-Installing GNU Classpath - Last updated: June 19, 2006
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
+Software Foundation, Inc.
+
+This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+These are generic installation instructions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+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
+disabled by default to prevent problems with accidental use of stale
+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
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If you are using the cache, and at
+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'.
+
+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.
+
+     Running `configure' takes awhile.  While running, it prints some
+     messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.
+
+  5. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+Compilers and Options
+=====================
+
+Some systems require unusual options for compilation or linking that the
+`configure' script does not know about.  Run `./configure --help' for
+details on some of the pertinent environment variables.
+
+   You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here
+is an example:
+
+     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+
+   *Note Defining Variables::, for more details.
+
+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
+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.
+
+Installation Names
+==================
+
+By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc.  You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
 
-First, this is a development release only! Unless you are interested in
-active development and debugging, or just like running random alpha code,
-this release is probably not for you. Please see the README file for a
-list of VMs that work with GNU Classpath.
+Specifying the System Type
+==========================
 
-Note that if you are building from a non-released (CVS) version of GNU
-classpath, installation instructions are found in the doc/hacking.texi
-file. Or at http://www.gnu.org/software/classpath/docs/hacking.html
+There may be some features `configure' cannot figure out automatically,
+but needs to determine by the type of machine the package will run on.
+Usually, assuming the package is built to be run on the _same_
+architectures, `configure' can figure that out, but if it prints a
+message saying it cannot guess the machine type, give it the
+`--build=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
 
-------------------------------------------------------------------
-Suggested Software
-------------------------------------------------------------------
-       GNU make ("gmake") is required for building Classpath.
+     CPU-COMPANY-SYSTEM
 
-       For any build environment involving native libraries, these 
-       new versions of autoconf, automake, and libtool are required
-        if changes are made that require rebuilding configure, Makefile.in,
-        aclocal.m4, or config.h.in.
+where SYSTEM can have one of these forms:
 
-        - GNU autoconf 2.59+
-        - GNU automake 1.9+
-        - GNU libtool 1.5+
+     OS KERNEL-OS
+
+   See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+   If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+   If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
 
-       When working from CVS you can run the above tools by executing
-       ./autogen.sh in the source directory.
+Sharing Defaults
+================
 
-       For building the Java bytecode (.class files), one of these
-       compilers are required.  You can select which compiler using
-       --with-jikes, --with-gcj, --with-ecj or --with-kjc as argument to
-       configure; the present default is gcj.
+If you want to set default values for `configure' scripts to share, you
+can create a site shell script called `config.site' that gives default
+values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
 
-        - GCJ 4.0+ (part of the GNU GCC package).
-        - IBM jikes 1.19+.  
-        - Eclipse Compiler for Java 3.1+
-        - The kjc compiler is supported with configure but we have
-          been unable to successfully compile with it.
+Defining Variables
+==================
+
+Variables not defined in a site shell script can be set in the
+environment passed to `configure'.  However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost.  In order to avoid this problem, you should set
+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:
+
+     /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
+configuration-related scripts to be executed by `/bin/bash'.
+
+`configure' Invocation
+======================
+
+`configure' recognizes the following options to control how it operates.
+
+`--help'
+`-h'
+     Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`--cache-file=FILE'
+     Enable the cache: use and save the results of the tests in FILE,
+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
+     disable caching.
+
+`--config-cache'
+`-C'
+     Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options.  Run
+`configure --help' for more details.
 
-       IMPORTANT: Versions of GCJ which are earlier than 4.0 contain
-       bugs which make it impossible to compile the class library and
-       are *not* supported any more. If you are stuck on a system where
-       GCC 3.x is the system compiler we recommend using Jikes.
-
-       For building the gtk+ AWT peer JNI native libraries, the following
-       are required unless --disable-gtk-peer is used as an argument to
-       configure.
-
-        - GTK+ 2.8.x (or higher)
-        - gdk-pixbuf
-
-       - XTest Extension (libXtst) for GdkRobot support in java.awt.
-       
-       - There is a bug in earlier versions of at-spi, atk, and gail, which are
-       used for GNOME accessibility.  Prior to version 1.18.0 of these packages,
-       gtk graphical applications should be run without accessibility (clear the
-       GTK_MODULES environment variable).
-
-       For building gcjwebplugin you'll need the Mozilla plugin
-       support headers and libraries.
-
-       The GConf-based backend for java.util.prefs needs the following
-       library headers:
-
-       - gconf 2.11.2 (or higher)
-
-       For building the Qt AWT peer JNI native libraries you have to
-       specify --enable-qt-peer and need the following library:
-
-        - Qt 4.0.1
-
-       For building the X AWT peers see information below
-       (Building and running with the X AWT peers). You will need
-       the Escher 0.2.3 library:
-       http://escher.sourceforge.net
-
-       Please note that at the moment most operating systems do not
-       ship Qt4 by default. We recommend using GNU Classpath' Qt4
-       support only for its developers and bug reporters. See
-       http://developer.classpath.org/mediation/ClasspathShowcase
-       for details on how to get it to work.
-
-       For building the xmlj JAXP implementation (disabled by default, use
-       configure --enable-xmlj) you need the following installed:
-       - The XML C library for Gnome (libxml2)
-         http://www.xmlsoft.org/
-         Minimum version of libxml2 required: 2.6.8
-
-       - The XSLT C library for Gnome (libxslt)
-         http://www.xmlsoft.org/XSLT/
-         Minimum version of libxslt required: 1.1.11
-
-       For building the documentation you will need
-
-       - texinfo 4.2 or higher.
-
-       For building the ALSA midi provider code you will need
-       ALSA.  http://www.alsa-project.org. 
-
-       For building the DSSI midi synthesizer provider code you will
-       need DSSI from http://dssi.sourceforge.net.  This, in turn, 
-       introduces many dependencies, including:
-
-         - liblo: the Lightweight OSC implementation
-           http://plugin.org.uk/liblo/
-
-         - LADSPA: Linux Audio Developer's Simple Plugin API
-           http://www.ladspa.org
-
-         - the JACK Audio Connection Kit: A low latency audio server
-           http://jackit.sourceforge.net
-
-         - libsndfile: an audio file I/O library
-           http://www.mega-nerd.com/libsndfile/
-
-         - fluidsynth: a real-time SoundFont 2 based soft-synth
-           http://www.fluidsynth.org/
-
-       For enabling the com.sun.tools.javac support in tools.zip you
-       will a need jar file containing the Eclipse Java Compiler.
-       Otherwise com.sun.tools.javac will not be included in tools.zip.
-
-This package was designed to use the GNU standard for configuration
-and makefiles.  To build and install do the following:
-
-1).  Run the "configure" script to configure the package.  There are
-various options you might want to pass to configure to control how the
-package is built.  Consider the following options, "configure --help"
-gives a complete list.  
-
-  --enable-java           compile Java source default=yes
-  --enable-jni            compile JNI source default=yes
-  --enable-gtk-peer       compile GTK native peers default=yes
-  --enable-qt-peer        compile Qt4 native peers default=no
-  --enable-default-toolkit
-                          fully qualified class name of default AWT toolkit
-                          default=no
-  --enable-xmlj           compile native libxml/xslt library default=no
-  --enable-load-library   enable to use JNI native methods default=yes
-  --enable-local-sockets  enable build of local Unix sockets
-  --with-jikes            to compile the class library using jikes
-                          the default is to use gcj
-  --with-glibj            define what to install (zip|flat|both|none)
-                          default=zip
-  --with-escher=/path/to/escher
-                          enable build of the X/Escher peers, with
-                          the escher library at /path/to/escher, either
-                          in the form of a JAR file, or a directory
-                          containing the .class files of Escher.
-  --enable-Werror         whether to compile C code with -Werror which turns
-                          any compiler warning into a compilation failure
-                          default=no
-  --with-gjdoc            generate documentation using gjdoc default=no
-  --with-jay              Regenerate the parsers with jay must be given the
-                          path to the jay executable
-  --with-glibj-zip=ABS.PATH
-                          use prebuilt glibj.zip class library
-  --with-ecj-jar=ABS.PATH specify jar file containing the Eclipse Java
-                          Compiler
-
-For more flags run configure --help.
-
-2).  Type "gmake" to build the package.  There is no longer a
-dependency problem and we aim to keep it that way.
-
-3).  Type "gmake install" to install everything.  This may require
-being the superuser. The default install path is /usr/local/classpath
-you may change it by giving configure the --prefix=<path> option.
-
-Report bugs to classpath@gnu.org or much better via Savannah at this
-URL: http://savannah.gnu.org/support/?func=addsupport&group=classpath
-
-Happy Hacking!
-
-Once installed, GNU Classpath is ready to be used by any VM that supports
-using the official version of GNU Classpath.  Simply ensure that
-/usr/local/classpath/share/classpath is in your $CLASSPATH environment
-variable.  You'll also have to set your LD_LIBRARY_PATH
-variable (or similar system configuration) to include the Classpath
-native libraries in /usr/local/classpath/lib/classpath.  
-
-*NOTE* All example paths assume the default prefix is used with configure.
-If you don't know what this means then the examples are correct.
-
-LD_LIBRARY_PATH=/usr/local/classpath/lib/classpath
-CLASSPATH=/usr/local/classpath/share/classpath/glibj.zip:.
-export LD_LIBRARY_PATH CLASSPATH
-
-More information about the VMs that use GNU Classpath can be found in the
-README file.
-
-------------------------------------------------------------------
-Building and running with the X AWT peers
-------------------------------------------------------------------
-
-In order build the X peers you need the Escher library version 0.2.3
-from http://escher.sourceforge.net . Unpack (and optionally build) the
-Escher library following the instructions in the downloaded
-package. Enable the build of the X peers by passing
---with-escher=/path/to/escher to ./configure where /path/to/escher
-either points to a directory structure or JAR file containing the
-Escher classes. For Unix systems it is preferable to also build local
-socket support by passing --enable-local-sockets, which accelerates
-the network communication to the X server significantly.
-
-In this release you have to enable the X peers at runtime by
-setting the system property awt.toolkit=gnu.java.awt.peer.x.XToolkit
-by passing -Dawt.toolkit=gnu.java.awt.peer.x.XToolkit to the java
-command when running an application.
-
-------------------------------------------------------------------
-Misc. Notes
-------------------------------------------------------------------
-Compilation is accomplished using a compiler's @file syntax.  For our
-part, we avoid placing make style dependencies as rules upon the
-compilation of a particular class file and leave this up to the Java
-compiler instead.
-
-The --enable-maintainer-mode option to configure currently does very 
-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
-Cygwin.  The mingw32 version of jikes cannot follow symbolic links, you 
-must use a cygwin build of jikes to access this limited functionality.
index 59cc3c0733b97905278c2d4fa7d913cf4feb5cf9..4434026c331b5aebbb6ff74930ab730afb9ff406 100644 (file)
@@ -4,8 +4,9 @@
 SUBDIRS = lib doc external include native resource scripts tools $(EXAMPLESDIR)
 DIST_SUBDIRS = lib doc external include native resource scripts tools examples
 
+# Allow users to pass site-specific flags to autoreconf via an env var. 
 ## GCJ LOCAL: we need an extra -I here.
-ACLOCAL_AMFLAGS = -I m4 -I ../.. -I ../../config
+ACLOCAL_AMFLAGS = -I m4 -I ../.. -I ../../config ${LOCAL_AUTORECONF_FLAGS}
 
 native: lib
 
index cbec75149dd0bc17f0ba0a3d1a9d8dcbc1e73e30..3f1ba4820e8a42d06b62233e64f5a3c70c8cc61f 100644 (file)
@@ -45,6 +45,8 @@ DIST_COMMON = README $(am__configure_deps) \
        $(top_srcdir)/gnu/classpath/Configuration.java.in \
        $(top_srcdir)/gnu/java/security/Configuration.java.in \
        $(top_srcdir)/resource/META-INF/services/java.util.prefs.PreferencesFactory.in \
+       $(top_srcdir)/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in \
+       $(top_srcdir)/resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in \
        ../../ABOUT-NLS ../../COPYING ../../COPYING.LIB \
        ../../ChangeLog ../../README ../../compile ../../config.guess \
        ../../config.rpath ../../config.sub ../../depcomp \
@@ -79,7 +81,9 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/include/config.h
 CONFIG_CLEAN_FILES = gnu/classpath/Configuration.java \
        gnu/java/security/Configuration.java \
-       resource/META-INF/services/java.util.prefs.PreferencesFactory
+       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
 SOURCES =
 DIST_SOURCES =
 MULTISRCTOP = 
@@ -142,6 +146,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -180,8 +186,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -205,6 +209,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -277,8 +290,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -354,7 +365,9 @@ vm_classes = @vm_classes@
 # lib first, to compile .class files before native code, last examples
 SUBDIRS = lib doc external include native resource scripts tools $(EXAMPLESDIR)
 DIST_SUBDIRS = lib doc external include native resource scripts tools examples
-ACLOCAL_AMFLAGS = -I m4 -I ../.. -I ../../config
+
+# Allow users to pass site-specific flags to autoreconf via an env var. 
+ACLOCAL_AMFLAGS = -I m4 -I ../.. -I ../../config ${LOCAL_AUTORECONF_FLAGS}
 EXTRA_DIST = HACKING BUGS THANKYOU mauve-classpath LICENSE \
              ChangeLog-2003 ChangeLog-2004 ChangeLog-2005 ChangeLog-2006 \
              ChangeLog.gnujaxp.1 ChangeLog.gnujaxp.2 ChangeLog.libxmlj \
@@ -402,6 +415,10 @@ gnu/java/security/Configuration.java: $(top_builddir)/config.status $(top_srcdir
        cd $(top_builddir) && $(SHELL) ./config.status $@
 resource/META-INF/services/java.util.prefs.PreferencesFactory: $(top_builddir)/config.status $(top_srcdir)/resource/META-INF/services/java.util.prefs.PreferencesFactory.in
        cd $(top_builddir) && $(SHELL) ./config.status $@
+resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader: $(top_builddir)/config.status $(top_srcdir)/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in
+       cd $(top_builddir) && $(SHELL) ./config.status $@
+resource/META-INF/services/javax.sound.sampled.spi.MixerProvider: $(top_builddir)/config.status $(top_srcdir)/resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in
+       cd $(top_builddir) && $(SHELL) ./config.status $@
 
 mostlyclean-libtool:
        -rm -f *.lo
index 85630ffab3ca59e186a1b0e97cac47cd39a65190..c46be603589226b9efd78b29a4cffc1368f2a3bb 100644 (file)
@@ -1,3 +1,10 @@
+New in release 0.96
+
+Runtime interface changes:
+
+* Add VMFloat.toString(float) and VMFloat.parseFloat(String). Default
+  implementations are the same as previous behavior.
+
 New in release 0.95 (Apr 23, 2007)
 
 * Full merge of 1.5 generics work.
index eb94e2258b3511c2dda850a4c96fe45cace970c0..3e46cff1d9c0f8bf1cd380a7b1d5bef2d10ef45e 100755 (executable)
@@ -28,50 +28,9 @@ if $have_libtool ; then : ; else
        echo "You must have libtool 1.5 installed to compile $PROJECT."
        echo "Install the appropriate package for your distribution,"
        echo "or get the source tarball at http://ftp.gnu.org/gnu/libtool/"
-       echo "For Darwin you need the latest stable (1.5.18) to support"
-       echo "Frameworks linking. Also, you have to point ACLOCAL_FLAGS"
-       echo "to this libtool/share/aclocal."
-       DIE=1
-fi
-
-have_autoconf=false
-if autoconf --version < /dev/null > /dev/null 2>&1 ; then
-       autoconf_version=`autoconf --version | sed 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'`
-       case $autoconf_version in
-           2.59* | 2.6[0-9]* )
-               have_autoconf=true
-               ;;
-       esac
-fi
-if $have_autoconf ; then : ; else
-       echo
-       echo "You must have autoconf 2.59 or later installed for $PROJECT."
-       echo "Install the appropriate package for your distribution,"
-       echo "or get the source tarball at http://ftp.gnu.org/gnu/autoconf/"
-       DIE=1
-fi
-
-have_automake=false
-# We know each 1.9.x version works
-if automake-1.9 --version < /dev/null > /dev/null 2>&1 ; then
-       AUTOMAKE=automake-1.9
-       ACLOCAL=aclocal-1.9
-       have_automake=true
-elif automake --version < /dev/null > /dev/null 2>&1 ; then
-       AUTOMAKE=automake
-       ACLOCAL=aclocal
-       automake_version=`automake --version | sed 's/^[^0-9]*\([0-9.][0-9.]*\).*/\1/'`
-       case $automake_version in
-           1.9* | 1.10*)
-               have_automake=true
-               ;;
-       esac
-fi
-if $have_automake ; then : ; else
-       echo
-       echo "You must have automake 1.9 or 1.10 installed to compile $PROJECT."
-       echo "Install the appropriate package for your distribution,"
-       echo "or get the source tarball at http://ftp.gnu.org/gnu/automake/"
+       echo "For Darwin you need the latest stable (1.5.22) to support"
+       echo "Frameworks linking. Also, you have to point"
+       echo "LOCAL_AUTORECONF_FLAGS to this libtool/share/aclocal."
        DIE=1
 fi
 
@@ -91,34 +50,8 @@ if test "x$AUTOGEN_SUBDIR_MODE" = "xyes"; then
         fi
 fi
 
-if test -z "$ACLOCAL_FLAGS"; then
-
-       acdir=`$ACLOCAL --print-ac-dir`
-        m4list="glib-2.0.m4 glib-gettext.m4"
-
-       for file in $m4list
-       do
-               if [ ! -f "$acdir/$file" ]; then
-                       echo "WARNING: aclocal's directory is $acdir, but..."
-                       echo "         no file $acdir/$file"
-                       echo "         You may see fatal macro warnings below."
-                       echo "         If these files are installed in /some/dir, set the ACLOCAL_FLAGS "
-                       echo "         environment variable to \"-I /some/dir\", or install"
-                       echo "         $acdir/$file."
-                       echo ""
-               fi
-       done
-fi
-
-# Use the "-I m4 flag in order to include pkg.m4 and other .m4 files.
-$ACLOCAL -I m4 $ACLOCAL_FLAGS || exit $?
-
-${LIBTOOLIZE} --force || exit $?
-
-autoheader || exit $?
+autoreconf --force --install --warnings=no-portability || exit $?
 
-$AUTOMAKE --add-missing || exit $?
-autoconf || exit $?
 cd $ORIGDIR || exit $?
 
 if test "x$AUTOGEN_SUBDIR_MODE" = "xyes"; then
index cdc6bf4d3e10f0f002aeb7754bb10e81afa3d654..3e8b19dda8d635e456252089a724399560aa5215 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.95.
+# Generated by GNU Autoconf 2.59 for GNU Classpath 0.96-pre.
 #
 # 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.95'
-PACKAGE_STRING='GNU Classpath 0.95'
+PACKAGE_VERSION='0.96-pre'
+PACKAGE_STRING='GNU Classpath 0.96-pre'
 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 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 FOUND_CACAO_TRUE FOUND_CACAO_FALSE 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 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 QT_CFLAGS QT_LIBS MOC MOZILLA_CFLAGS MOZILLA_LIBS GLIB_CFLAGS GLIB_LIBS PLUGIN_DIR USER_JAVAH USER_SPECIFIED_JAVAH_TRUE USER_SPECIFIED_JAVAH_FALSE 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 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_files=''
 
 # Initialize some variables set by options.
@@ -942,7 +942,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.95 to adapt to many kinds of systems.
+\`configure' configures GNU Classpath 0.96-pre to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1013,7 +1013,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GNU Classpath 0.95:";;
+     short | recursive ) echo "Configuration of GNU Classpath 0.96-pre:";;
    esac
   cat <<\_ACEOF
 
@@ -1038,6 +1038,8 @@ Optional Features:
   --disable-gconf-peer    compile GConf native peers (disabled by
                           --disable-jni) default=yes
 
+  --enable-gstreamer-peer compile GStreamer native peers (disabled by
+                          --disable-jni) default=no
   --enable-Werror         whether to compile C code with -Werror which turns
                           any compiler warning into a compilation failure
                           default=no
@@ -1227,7 +1229,7 @@ fi
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-GNU Classpath configure 0.95
+GNU Classpath configure 0.96-pre
 generated by GNU Autoconf 2.59
 
 Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1241,7 +1243,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.95, which was
+It was created by GNU Classpath $as_me 0.96-pre, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   $ $0 $@
@@ -2076,7 +2078,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='classpath'
- VERSION='0.95'
+ VERSION='0.96-pre'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2406,6 +2408,36 @@ echo "$as_me: error: No --enable-gconf-peers (or --disable-gconf-peers) option;
    { (exit 1); exit 1; }; }
 fi;
 
+# Check whether --enable-gstreamer-peer or --disable-gstreamer-peer was given.
+if test "${enable_gstreamer_peer+set}" = set; then
+  enableval="$enable_gstreamer_peer"
+  case "${enableval}" in
+                yes) COMPILE_GSTREAMER_PEER=yes ;;
+                no) COMPILE_GSTREAMER_PEER=no ;;
+                *) COMPILE_GSTREAMER_PEER=default ;;
+              esac
+else
+  COMPILE_GSTREAMER_PEER=default
+fi;
+
+
+if test "x${COMPILE_GSTREAMER_PEER}" = xyes; then
+  CREATE_GSTREAMER_PEER_LIBRARIES_TRUE=
+  CREATE_GSTREAMER_PEER_LIBRARIES_FALSE='#'
+else
+  CREATE_GSTREAMER_PEER_LIBRARIES_TRUE='#'
+  CREATE_GSTREAMER_PEER_LIBRARIES_FALSE=
+fi
+
+
+# Check whether --enable-gstreamer-peers or --disable-gstreamer-peers was given.
+if test "${enable_gstreamer_peers+set}" = set; then
+  enableval="$enable_gstreamer_peers"
+  { { echo "$as_me:$LINENO: error: No --enable-gstreamer-peers (or --disable-gstreamer-peers) option; you want --enable-gstreamer-peer" >&5
+echo "$as_me: error: No --enable-gstreamer-peers (or --disable-gstreamer-peers) option; you want --enable-gstreamer-peer" >&2;}
+   { (exit 1); exit 1; }; }
+fi;
+
 # Check whether --enable-Werror or --disable-Werror was given.
 if test "${enable_Werror+set}" = set; then
   enableval="$enable_Werror"
@@ -4775,16 +4807,6 @@ fi;
 
 
 
-
-if test "x`basename $VM_BINARY`" = xcacao; then
-  FOUND_CACAO_TRUE=
-  FOUND_CACAO_FALSE='#'
-else
-  FOUND_CACAO_TRUE='#'
-  FOUND_CACAO_FALSE=
-fi
-
-
 # Check whether --enable-regen-headers or --disable-regen-headers was given.
 if test "${enable_regen_headers+set}" = set; then
   enableval="$enable_regen_headers"
@@ -5680,13 +5702,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:5683: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:5705: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5686: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:5708: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5689: output\"" >&5)
+  (eval echo "\"\$as_me:5711: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
@@ -6730,7 +6752,7 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 6733 "configure"' > conftest.$ac_ext
+  echo '#line 6755 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -7362,11 +7384,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:7365: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7387: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7369: \$? = $ac_status" >&5
+   echo "$as_me:7391: \$? = $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.
@@ -7684,11 +7706,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:7687: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7709: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7691: \$? = $ac_status" >&5
+   echo "$as_me:7713: \$? = $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.
@@ -7789,11 +7811,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:7792: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7814: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:7796: \$? = $ac_status" >&5
+   echo "$as_me:7818: \$? = $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
@@ -7844,11 +7866,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:7847: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7869: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:7851: \$? = $ac_status" >&5
+   echo "$as_me:7873: \$? = $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
@@ -10696,7 +10718,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 10699 "configure"
+#line 10721 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -10796,7 +10818,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 10799 "configure"
+#line 10821 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -15193,11 +15215,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:15196: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15218: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:15200: \$? = $ac_status" >&5
+   echo "$as_me:15222: \$? = $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.
@@ -15292,11 +15314,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:15295: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15317: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:15299: \$? = $ac_status" >&5
+   echo "$as_me:15321: \$? = $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
@@ -15344,11 +15366,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:15347: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15369: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:15351: \$? = $ac_status" >&5
+   echo "$as_me:15373: \$? = $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
 rm -f conftest*
 
 
+  echo "$as_me:$LINENO: checking for library containing inet_pton" >&5
+echo $ECHO_N "checking for library containing inet_pton... $ECHO_C" >&6
+if test "${ac_cv_search_inet_pton+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_func_search_save_LIBS=$LIBS
+ac_cv_search_inet_pton=no
+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;}
+   { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char inet_pton ();
+int
+main ()
+{
+inet_pton ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (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); }; } &&
+        { ac_try='test -s conftest$ac_exeext'
+  { (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); }; }; then
+  ac_cv_search_inet_pton="none required"
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+if test "$ac_cv_search_inet_pton" = no; then
+  for ac_lib in nsl; do
+    LIBS="-l$ac_lib  $ac_func_search_save_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;}
+   { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char inet_pton ();
+int
+main ()
+{
+inet_pton ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  (eval $ac_link) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (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); }; } &&
+        { ac_try='test -s conftest$ac_exeext'
+  { (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); }; }; then
+  ac_cv_search_inet_pton="-l$ac_lib"
+break
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
+  done
+fi
+LIBS=$ac_func_search_save_LIBS
+fi
+echo "$as_me:$LINENO: result: $ac_cv_search_inet_pton" >&5
+echo "${ECHO_T}$ac_cv_search_inet_pton" >&6
+if test "$ac_cv_search_inet_pton" != no; then
+  test "$ac_cv_search_inet_pton" = "none required" || LIBS="$ac_cv_search_inet_pton $LIBS"
+
+fi
+
 
 
 
@@ -21911,7 +22069,10 @@ echo "$as_me: error: Library requirements (gdk-2.0 >= 2.8) not met; consider adj
     fi
   fi
 
-    if test "x${COMPILE_QT_PEER}" = xyes; then
+    if  test "x${COMPILE_GSTREAMER_PEER}" = xyes; then
+    GST_MAJORMINOR=0.10
+    GST_REQUIRED=0.10.10
+
 
   succeeded=no
 
   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 QtCore QtGui >= 4.1.0" >&5
-echo $ECHO_N "checking for QtCore QtGui >= 4.1.0... $ECHO_C" >&6
+        echo "$as_me:$LINENO: checking for gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED" >&5
+echo $ECHO_N "checking for gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED... $ECHO_C" >&6
 
-        if $PKG_CONFIG --exists "QtCore QtGui >= 4.1.0" ; then
+        if $PKG_CONFIG --exists "gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED" ; then
             echo "$as_me:$LINENO: result: yes" >&5
 echo "${ECHO_T}yes" >&6
             succeeded=yes
 
-            echo "$as_me:$LINENO: checking QT_CFLAGS" >&5
-echo $ECHO_N "checking QT_CFLAGS... $ECHO_C" >&6
-            QT_CFLAGS=`$PKG_CONFIG --cflags "QtCore QtGui >= 4.1.0"`
-            echo "$as_me:$LINENO: result: $QT_CFLAGS" >&5
-echo "${ECHO_T}$QT_CFLAGS" >&6
-
-            echo "$as_me:$LINENO: checking QT_LIBS" >&5
-echo $ECHO_N "checking QT_LIBS... $ECHO_C" >&6
-            QT_LIBS=`$PKG_CONFIG --libs "QtCore QtGui >= 4.1.0"`
-            echo "$as_me:$LINENO: result: $QT_LIBS" >&5
-echo "${ECHO_T}$QT_LIBS" >&6
+            echo "$as_me:$LINENO: checking GSTREAMER_CFLAGS" >&5
+echo $ECHO_N "checking GSTREAMER_CFLAGS... $ECHO_C" >&6
+            GSTREAMER_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED"`
+            echo "$as_me:$LINENO: result: $GSTREAMER_CFLAGS" >&5
+echo "${ECHO_T}$GSTREAMER_CFLAGS" >&6
+
+            echo "$as_me:$LINENO: checking GSTREAMER_LIBS" >&5
+echo $ECHO_N "checking GSTREAMER_LIBS... $ECHO_C" >&6
+            GSTREAMER_LIBS=`$PKG_CONFIG --libs "gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED"`
+            echo "$as_me:$LINENO: result: $GSTREAMER_LIBS" >&5
+echo "${ECHO_T}$GSTREAMER_LIBS" >&6
         else
-            QT_CFLAGS=""
-            QT_LIBS=""
+            GSTREAMER_CFLAGS=""
+            GSTREAMER_LIBS=""
             ## If we have a custom action on failure, don't print errors, but
             ## do set a variable so people can do so.
-            QT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "QtCore QtGui >= 4.1.0"`
-
+            GSTREAMER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED"`
+            echo $GSTREAMER_PKG_ERRORS
         fi
 
 
@@ -22003,109 +22164,422 @@ echo "${ECHO_T}$QT_LIBS" >&6
   fi
 
   if test $succeeded = yes; then
-     HAVE_QT4="yes"
+     :
   else
-     HAVE_QT4="no"
+     { { echo "$as_me:$LINENO: error: Library requirements (gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED) 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 (gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED) 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
 
-    if test "x$HAVE_QT4" = "xyes"; then
-                  QT_INCLUDE_DIR=`$PKG_CONFIG --variable=includedir QtGui`
-      EXTRA_QT_INCLUDE_DIR="$QT_INCLUDE_DIR/Qt"
-      as_ac_File=`echo "ac_cv_file_$QT_INCLUDE_DIR/QWidget" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $QT_INCLUDE_DIR/QWidget" >&5
-echo $ECHO_N "checking for $QT_INCLUDE_DIR/QWidget... $ECHO_C" >&6
-if eval "test \"\${$as_ac_File+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  test "$cross_compiling" = yes &&
-  { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
-echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
-   { (exit 1); exit 1; }; }
-if test -r "$QT_INCLUDE_DIR/QWidget"; then
-  eval "$as_ac_File=yes"
-else
-  eval "$as_ac_File=no"
-fi
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_File'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6
-if test `eval echo '${'$as_ac_File'}'` = yes; then
-  { echo "$as_me:$LINENO: No extra QT_INCLUDE_DIR needed" >&5
-echo "$as_me: No extra QT_INCLUDE_DIR needed" >&6;}
-else
-  as_ac_File=`echo "ac_cv_file_$EXTRA_QT_INCLUDE_DIR/QWidget" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $EXTRA_QT_INCLUDE_DIR/QWidget" >&5
-echo $ECHO_N "checking for $EXTRA_QT_INCLUDE_DIR/QWidget... $ECHO_C" >&6
-if eval "test \"\${$as_ac_File+set}\" = set"; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  test "$cross_compiling" = yes &&
-  { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
-echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
-   { (exit 1); exit 1; }; }
-if test -r "$EXTRA_QT_INCLUDE_DIR/QWidget"; then
-  eval "$as_ac_File=yes"
-else
-  eval "$as_ac_File=no"
-fi
-fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_File'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6
-if test `eval echo '${'$as_ac_File'}'` = yes; then
-  QT_CFLAGS="$QT_CFLAGS -I$EXTRA_QT_INCLUDE_DIR"
-else
-  { echo "$as_me:$LINENO: WARNING: QWidget not found" >&5
-echo "$as_me: WARNING: QWidget not found" >&2;}
-fi
 
-fi
 
-       # Extract the first word of "moc", so it can be a program name with args.
-set dummy moc; ac_word=$2
+
+
+  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_prog_MOC+set}" = set; then
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if test -n "$MOC"; then
-  ac_cv_prog_MOC="$MOC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  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_prog_MOC="moc"
+    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
-fi
-MOC=$ac_cv_prog_MOC
-if test -n "$MOC"; then
-  echo "$as_me:$LINENO: result: $MOC" >&5
-echo "${ECHO_T}$MOC" >&6
+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
 
-       # Extract the first word of "moc-qt4", so it can be a program name with args.
-set dummy moc-qt4; 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_MOC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$MOC"; then
-  ac_cv_prog_MOC="$MOC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  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 gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED" >&5
+echo $ECHO_N "checking for gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED... $ECHO_C" >&6
+
+        if $PKG_CONFIG --exists "gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED" ; then
+            echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+            succeeded=yes
+
+            echo "$as_me:$LINENO: checking GSTREAMER_BASE_CFLAGS" >&5
+echo $ECHO_N "checking GSTREAMER_BASE_CFLAGS... $ECHO_C" >&6
+            GSTREAMER_BASE_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED"`
+            echo "$as_me:$LINENO: result: $GSTREAMER_BASE_CFLAGS" >&5
+echo "${ECHO_T}$GSTREAMER_BASE_CFLAGS" >&6
+
+            echo "$as_me:$LINENO: checking GSTREAMER_BASE_LIBS" >&5
+echo $ECHO_N "checking GSTREAMER_BASE_LIBS... $ECHO_C" >&6
+            GSTREAMER_BASE_LIBS=`$PKG_CONFIG --libs "gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED"`
+            echo "$as_me:$LINENO: result: $GSTREAMER_BASE_LIBS" >&5
+echo "${ECHO_T}$GSTREAMER_BASE_LIBS" >&6
+        else
+            GSTREAMER_BASE_CFLAGS=""
+            GSTREAMER_BASE_LIBS=""
+            ## If we have a custom action on failure, don't print errors, but
+            ## do set a variable so people can do so.
+            GSTREAMER_BASE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED"`
+            echo $GSTREAMER_BASE_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 (gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED) 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 (gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED) 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
+
+
+
+
+
+  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 gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED" >&5
+echo $ECHO_N "checking for gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED... $ECHO_C" >&6
+
+        if $PKG_CONFIG --exists "gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED" ; then
+            echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+            succeeded=yes
+
+            echo "$as_me:$LINENO: checking GSTREAMER_PLUGINS_BASE_CFLAGS" >&5
+echo $ECHO_N "checking GSTREAMER_PLUGINS_BASE_CFLAGS... $ECHO_C" >&6
+            GSTREAMER_PLUGINS_BASE_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED"`
+            echo "$as_me:$LINENO: result: $GSTREAMER_PLUGINS_BASE_CFLAGS" >&5
+echo "${ECHO_T}$GSTREAMER_PLUGINS_BASE_CFLAGS" >&6
+
+            echo "$as_me:$LINENO: checking GSTREAMER_PLUGINS_BASE_LIBS" >&5
+echo $ECHO_N "checking GSTREAMER_PLUGINS_BASE_LIBS... $ECHO_C" >&6
+            GSTREAMER_PLUGINS_BASE_LIBS=`$PKG_CONFIG --libs "gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED"`
+            echo "$as_me:$LINENO: result: $GSTREAMER_PLUGINS_BASE_LIBS" >&5
+echo "${ECHO_T}$GSTREAMER_PLUGINS_BASE_LIBS" >&6
+        else
+            GSTREAMER_PLUGINS_BASE_CFLAGS=""
+            GSTREAMER_PLUGINS_BASE_LIBS=""
+            ## If we have a custom action on failure, don't print errors, but
+            ## do set a variable so people can do so.
+            GSTREAMER_PLUGINS_BASE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED"`
+            echo $GSTREAMER_PLUGINS_BASE_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 (gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED) 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 (gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED) 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
+
+
+
+
+       GST_PLUGIN_LDFLAGS='-module -avoid-version -Wno-unused-parameter -no-undefined'
+
+
+               GSTREAMER_FILE_READER=gnu.javax.sound.sampled.gstreamer.io.GstAudioFileReader
+       GSTREAMER_MIXER_PROVIDER=gnu.javax.sound.sampled.gstreamer.GStreamerMixerProvider
+  fi
+
+
+
+    if test "x${COMPILE_QT_PEER}" = xyes; then
+
+  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 QtCore QtGui >= 4.1.0" >&5
+echo $ECHO_N "checking for QtCore QtGui >= 4.1.0... $ECHO_C" >&6
+
+        if $PKG_CONFIG --exists "QtCore QtGui >= 4.1.0" ; then
+            echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+            succeeded=yes
+
+            echo "$as_me:$LINENO: checking QT_CFLAGS" >&5
+echo $ECHO_N "checking QT_CFLAGS... $ECHO_C" >&6
+            QT_CFLAGS=`$PKG_CONFIG --cflags "QtCore QtGui >= 4.1.0"`
+            echo "$as_me:$LINENO: result: $QT_CFLAGS" >&5
+echo "${ECHO_T}$QT_CFLAGS" >&6
+
+            echo "$as_me:$LINENO: checking QT_LIBS" >&5
+echo $ECHO_N "checking QT_LIBS... $ECHO_C" >&6
+            QT_LIBS=`$PKG_CONFIG --libs "QtCore QtGui >= 4.1.0"`
+            echo "$as_me:$LINENO: result: $QT_LIBS" >&5
+echo "${ECHO_T}$QT_LIBS" >&6
+        else
+            QT_CFLAGS=""
+            QT_LIBS=""
+            ## If we have a custom action on failure, don't print errors, but
+            ## do set a variable so people can do so.
+            QT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "QtCore QtGui >= 4.1.0"`
+
+        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
+     HAVE_QT4="yes"
+  else
+     HAVE_QT4="no"
+  fi
+
+    if test "x$HAVE_QT4" = "xyes"; then
+                  QT_INCLUDE_DIR=`$PKG_CONFIG --variable=includedir QtGui`
+      EXTRA_QT_INCLUDE_DIR="$QT_INCLUDE_DIR/Qt"
+      as_ac_File=`echo "ac_cv_file_$QT_INCLUDE_DIR/QWidget" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $QT_INCLUDE_DIR/QWidget" >&5
+echo $ECHO_N "checking for $QT_INCLUDE_DIR/QWidget... $ECHO_C" >&6
+if eval "test \"\${$as_ac_File+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  test "$cross_compiling" = yes &&
+  { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
+echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
+   { (exit 1); exit 1; }; }
+if test -r "$QT_INCLUDE_DIR/QWidget"; then
+  eval "$as_ac_File=yes"
+else
+  eval "$as_ac_File=no"
+fi
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_File'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6
+if test `eval echo '${'$as_ac_File'}'` = yes; then
+  { echo "$as_me:$LINENO: No extra QT_INCLUDE_DIR needed" >&5
+echo "$as_me: No extra QT_INCLUDE_DIR needed" >&6;}
+else
+  as_ac_File=`echo "ac_cv_file_$EXTRA_QT_INCLUDE_DIR/QWidget" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $EXTRA_QT_INCLUDE_DIR/QWidget" >&5
+echo $ECHO_N "checking for $EXTRA_QT_INCLUDE_DIR/QWidget... $ECHO_C" >&6
+if eval "test \"\${$as_ac_File+set}\" = set"; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  test "$cross_compiling" = yes &&
+  { { echo "$as_me:$LINENO: error: cannot check for file existence when cross compiling" >&5
+echo "$as_me: error: cannot check for file existence when cross compiling" >&2;}
+   { (exit 1); exit 1; }; }
+if test -r "$EXTRA_QT_INCLUDE_DIR/QWidget"; then
+  eval "$as_ac_File=yes"
+else
+  eval "$as_ac_File=no"
+fi
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_File'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_File'}'`" >&6
+if test `eval echo '${'$as_ac_File'}'` = yes; then
+  QT_CFLAGS="$QT_CFLAGS -I$EXTRA_QT_INCLUDE_DIR"
+else
+  { echo "$as_me:$LINENO: WARNING: QWidget not found" >&5
+echo "$as_me: WARNING: QWidget not found" >&2;}
+fi
+
+fi
+
+       # Extract the first word of "moc", so it can be a program name with args.
+set dummy moc; 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_MOC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$MOC"; then
+  ac_cv_prog_MOC="$MOC" # 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_MOC="moc"
+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+
+fi
+fi
+MOC=$ac_cv_prog_MOC
+if test -n "$MOC"; then
+  echo "$as_me:$LINENO: result: $MOC" >&5
+echo "${ECHO_T}$MOC" >&6
+else
+  echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+       # Extract the first word of "moc-qt4", so it can be a program name with args.
+set dummy moc-qt4; 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_MOC+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if test -n "$MOC"; then
+  ac_cv_prog_MOC="$MOC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
@@ -22317,6 +22791,61 @@ sed 's/^/| /' conftest.$ac_ext >&5
  echo "$as_me:$LINENO: result: no" >&5
 echo "${ECHO_T}no" >&6
 
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+        echo "$as_me:$LINENO: checking for MSG_WAITALL" >&5
+echo $ECHO_N "checking for MSG_WAITALL... $ECHO_C" >&6
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/socket.h>
+int
+main ()
+{
+ int f = MSG_WAITALL;
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+        { ac_try='test -z "$ac_c_werror_flag"
+                        || test ! -s conftest.err'
+  { (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); }; } &&
+        { ac_try='test -s conftest.$ac_objext'
+  { (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); }; }; then
+   echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_MSG_WAITALL 1
+_ACEOF
+
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+
 fi
 rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
@@ -23122,6 +23651,7 @@ echo "$as_me: error: Library requirements (gtk+-2.0 >= 2.8 gthread-2.0 >= 2.2 gd
   fi
 fi
 
+if test "x${REGENERATE_JNI_HEADERS}" = xyes; then
 
 
 # Check whether --with-javah or --without-javah was given.
 
     fi
   else
-    for javah_name in gcjh javah; do
-      # Extract the first word of ""$javah_name"", so it can be a program name with args.
-set dummy "$javah_name"; ac_word=$2
+    for ac_prog in gjavah gcjh-wrapper-4.1 gcjh-4.1 gcjh 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
 echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_path_USER_JAVAH+set}" = set; then
@@ -23215,16 +23746,16 @@ else
 echo "${ECHO_T}no" >&6
 fi
 
-      if test "x${USER_JAVAH}" != x; then
-        break
-      fi
-    done
+  test -n "$USER_JAVAH" && break
+done
+
   fi
 
-#  if test "x${USER_JAVAH}" = x; then
-#    echo "configure: cannot find javah" 1>&2
-#    exit 1
-#  fi
+  if test "x${USER_JAVAH}" = x; then
+    { { echo "$as_me:$LINENO: error: can not find javah" >&5
+echo "$as_me: error: can not find javah" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
 
     else
 
 
     fi
   else
-    for javah_name in gcjh javah; do
-      # Extract the first word of ""$javah_name"", so it can be a program name with args.
-set dummy "$javah_name"; ac_word=$2
+    for ac_prog in gjavah gcjh-wrapper-4.1 gcjh-4.1 gcjh 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
 echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_path_USER_JAVAH+set}" = set; then
@@ -23313,16 +23845,16 @@ else
 echo "${ECHO_T}no" >&6
 fi
 
-      if test "x${USER_JAVAH}" != x; then
-        break
-      fi
-    done
+  test -n "$USER_JAVAH" && break
+done
+
   fi
 
-#  if test "x${USER_JAVAH}" = x; then
-#    echo "configure: cannot find javah" 1>&2
-#    exit 1
-#  fi
+  if test "x${USER_JAVAH}" = x; then
+    { { echo "$as_me:$LINENO: error: can not find javah" >&5
+echo "$as_me: error: can not find javah" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
 
     fi
 
 
     fi
   else
-    for javah_name in gcjh javah; do
-      # Extract the first word of ""$javah_name"", so it can be a program name with args.
-set dummy "$javah_name"; ac_word=$2
+    for ac_prog in gjavah gcjh-wrapper-4.1 gcjh-4.1 gcjh 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
 echo "$as_me:$LINENO: checking for $ac_word" >&5
 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
 if test "${ac_cv_path_USER_JAVAH+set}" = set; then
@@ -23414,32 +23947,23 @@ else
 echo "${ECHO_T}no" >&6
 fi
 
-      if test "x${USER_JAVAH}" != x; then
-        break
-      fi
-    done
+  test -n "$USER_JAVAH" && break
+done
+
   fi
 
-#  if test "x${USER_JAVAH}" = x; then
-#    echo "configure: cannot find javah" 1>&2
-#    exit 1
-#  fi
+  if test "x${USER_JAVAH}" = x; then
+    { { echo "$as_me:$LINENO: error: can not find javah" >&5
+echo "$as_me: error: can not find javah" >&2;}
+   { (exit 1); exit 1; }; }
+  fi
 
 
 fi;
 
 
-if test "x${USER_JAVAH}" != x; then
-  USER_SPECIFIED_JAVAH_TRUE=
-  USER_SPECIFIED_JAVAH_FALSE='#'
-else
-  USER_SPECIFIED_JAVAH_TRUE='#'
-  USER_SPECIFIED_JAVAH_FALSE=
 fi
 
-
-
-
 CLASSPATH_INCLUDES="-I\$(top_srcdir)/include -I\$(top_srcdir)/native/jni/classpath -I\$(top_srcdir)/native/jni/native-lib"
 
 
@@ -24793,49 +25317,7 @@ if test "${with_javac+set}" = set; then
     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
-      JAVAC="${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_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
+    JAVAC="${withval}"
   else
     # Extract the first word of ""javac"", so it can be a program name with args.
 set dummy "javac"; ac_word=$2
       if test "x${withval}" != xno; then
 
   if test "x" != x; then
-    if test -f ""; then
-      JAVAC=""
-    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_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
+    JAVAC=""
   else
     # Extract the first word of ""javac"", so it can be a program name with args.
 set dummy "javac"; ac_word=$2
@@ -24975,49 +25415,7 @@ else
 
 
   if test "x" != x; then
-    if test -f ""; then
-      JAVAC=""
-    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_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
+    JAVAC=""
   else
     # Extract the first word of ""javac"", so it can be a program name with args.
 set dummy "javac"; ac_word=$2
@@ -29102,7 +29500,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/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 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 tools/Makefile examples/Makefile examples/Makefile.jawt examples/Makefile.java2d"
 
 
 if test "x${COMPILE_WRAPPERS}" = xno
@@ -29272,6 +29670,13 @@ echo "$as_me: error: conditional \"CREATE_GCONF_PEER_LIBRARIES\" was never defin
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${CREATE_GSTREAMER_PEER_LIBRARIES_TRUE}" && test -z "${CREATE_GSTREAMER_PEER_LIBRARIES_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"CREATE_GSTREAMER_PEER_LIBRARIES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"CREATE_GSTREAMER_PEER_LIBRARIES\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${CREATE_XMLJ_LIBRARY_TRUE}" && test -z "${CREATE_XMLJ_LIBRARY_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"CREATE_XMLJ_LIBRARY\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -29328,13 +29733,6 @@ echo "$as_me: error: conditional \"CREATE_PLUGIN\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
-if test -z "${FOUND_CACAO_TRUE}" && test -z "${FOUND_CACAO_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"FOUND_CACAO\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"FOUND_CACAO\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
-fi
 if test -z "${CREATE_JNI_HEADERS_TRUE}" && test -z "${CREATE_JNI_HEADERS_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"CREATE_JNI_HEADERS\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -29370,13 +29768,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 "${USER_SPECIFIED_JAVAH_TRUE}" && test -z "${USER_SPECIFIED_JAVAH_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"USER_SPECIFIED_JAVAH\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"USER_SPECIFIED_JAVAH\" 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
@@ -29781,7 +30172,7 @@ _ASBOX
 } >&5
 cat >&5 <<_CSEOF
 
-This file was extended by GNU Classpath $as_me 0.95, which was
+This file was extended by GNU Classpath $as_me 0.96-pre, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -29847,7 +30238,7 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-GNU Classpath config.status 0.95
+GNU Classpath config.status 0.96-pre
 configured by $0, generated by GNU Autoconf 2.59,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
@@ -30343,6 +30734,7 @@ do
   "native/jni/java-util/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/java-util/Makefile" ;;
   "native/jni/gtk-peer/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/gtk-peer/Makefile" ;;
   "native/jni/gconf-peer/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/gconf-peer/Makefile" ;;
+  "native/jni/gstreamer-peer/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/gstreamer-peer/Makefile" ;;
   "native/jni/qt-peer/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/qt-peer/Makefile" ;;
   "native/jni/xmlj/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/xmlj/Makefile" ;;
   "native/jni/midi-alsa/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/midi-alsa/Makefile" ;;
@@ -30351,6 +30743,8 @@ do
   "native/plugin/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/plugin/Makefile" ;;
   "resource/Makefile" ) CONFIG_FILES="$CONFIG_FILES resource/Makefile" ;;
   "resource/META-INF/services/java.util.prefs.PreferencesFactory" ) CONFIG_FILES="$CONFIG_FILES resource/META-INF/services/java.util.prefs.PreferencesFactory" ;;
+  "resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader" ) CONFIG_FILES="$CONFIG_FILES resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader" ;;
+  "resource/META-INF/services/javax.sound.sampled.spi.MixerProvider" ) CONFIG_FILES="$CONFIG_FILES resource/META-INF/services/javax.sound.sampled.spi.MixerProvider" ;;
   "scripts/Makefile" ) CONFIG_FILES="$CONFIG_FILES scripts/Makefile" ;;
   "scripts/classpath.spec" ) CONFIG_FILES="$CONFIG_FILES scripts/classpath.spec" ;;
   "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
@@ -30529,6 +30923,8 @@ s,@CREATE_CORE_JNI_LIBRARIES_TRUE@,$CREATE_CORE_JNI_LIBRARIES_TRUE,;t t
 s,@CREATE_CORE_JNI_LIBRARIES_FALSE@,$CREATE_CORE_JNI_LIBRARIES_FALSE,;t t
 s,@CREATE_GCONF_PEER_LIBRARIES_TRUE@,$CREATE_GCONF_PEER_LIBRARIES_TRUE,;t t
 s,@CREATE_GCONF_PEER_LIBRARIES_FALSE@,$CREATE_GCONF_PEER_LIBRARIES_FALSE,;t t
+s,@CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@,$CREATE_GSTREAMER_PEER_LIBRARIES_TRUE,;t t
+s,@CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@,$CREATE_GSTREAMER_PEER_LIBRARIES_FALSE,;t t
 s,@default_toolkit@,$default_toolkit,;t t
 s,@CREATE_XMLJ_LIBRARY_TRUE@,$CREATE_XMLJ_LIBRARY_TRUE,;t t
 s,@CREATE_XMLJ_LIBRARY_FALSE@,$CREATE_XMLJ_LIBRARY_FALSE,;t t
@@ -30564,8 +30960,6 @@ s,@toolexeclibdir@,$toolexeclibdir,;t t
 s,@nativeexeclibdir@,$nativeexeclibdir,;t t
 s,@glibjdir@,$glibjdir,;t t
 s,@VM_BINARY@,$VM_BINARY,;t t
-s,@FOUND_CACAO_TRUE@,$FOUND_CACAO_TRUE,;t t
-s,@FOUND_CACAO_FALSE@,$FOUND_CACAO_FALSE,;t t
 s,@CREATE_JNI_HEADERS_TRUE@,$CREATE_JNI_HEADERS_TRUE,;t t
 s,@CREATE_JNI_HEADERS_FALSE@,$CREATE_JNI_HEADERS_FALSE,;t t
 s,@CREATE_WRAPPERS_TRUE@,$CREATE_WRAPPERS_TRUE,;t t
@@ -30621,6 +31015,15 @@ s,@GCONF_CFLAGS@,$GCONF_CFLAGS,;t t
 s,@GCONF_LIBS@,$GCONF_LIBS,;t t
 s,@GDK_CFLAGS@,$GDK_CFLAGS,;t t
 s,@GDK_LIBS@,$GDK_LIBS,;t t
+s,@GSTREAMER_CFLAGS@,$GSTREAMER_CFLAGS,;t t
+s,@GSTREAMER_LIBS@,$GSTREAMER_LIBS,;t t
+s,@GSTREAMER_BASE_CFLAGS@,$GSTREAMER_BASE_CFLAGS,;t t
+s,@GSTREAMER_BASE_LIBS@,$GSTREAMER_BASE_LIBS,;t t
+s,@GSTREAMER_PLUGINS_BASE_CFLAGS@,$GSTREAMER_PLUGINS_BASE_CFLAGS,;t t
+s,@GSTREAMER_PLUGINS_BASE_LIBS@,$GSTREAMER_PLUGINS_BASE_LIBS,;t t
+s,@GST_PLUGIN_LDFLAGS@,$GST_PLUGIN_LDFLAGS,;t t
+s,@GSTREAMER_FILE_READER@,$GSTREAMER_FILE_READER,;t t
+s,@GSTREAMER_MIXER_PROVIDER@,$GSTREAMER_MIXER_PROVIDER,;t t
 s,@QT_CFLAGS@,$QT_CFLAGS,;t t
 s,@QT_LIBS@,$QT_LIBS,;t t
 s,@MOC@,$MOC,;t t
@@ -30630,8 +31033,6 @@ s,@GLIB_CFLAGS@,$GLIB_CFLAGS,;t t
 s,@GLIB_LIBS@,$GLIB_LIBS,;t t
 s,@PLUGIN_DIR@,$PLUGIN_DIR,;t t
 s,@USER_JAVAH@,$USER_JAVAH,;t t
-s,@USER_SPECIFIED_JAVAH_TRUE@,$USER_SPECIFIED_JAVAH_TRUE,;t t
-s,@USER_SPECIFIED_JAVAH_FALSE@,$USER_SPECIFIED_JAVAH_FALSE,;t t
 s,@CLASSPATH_INCLUDES@,$CLASSPATH_INCLUDES,;t t
 s,@GCJ@,$GCJ,;t t
 s,@JIKES@,$JIKES,;t t
index a751c7dd3129b72e31eeb2c17a6a82d178391642..b6feecf5b68069a20584317c5788a720625da9e6 100644 (file)
@@ -6,7 +6,7 @@ dnl -----------------------------------------------------------
 dnl define([AC_CACHE_LOAD], )dnl
 dnl define([AC_CACHE_SAVE], )dnl
 
-AC_INIT([GNU Classpath],[0.95],[classpath@gnu.org],[classpath])
+AC_INIT([GNU Classpath],[0.96-pre],[classpath@gnu.org],[classpath])
 AC_CONFIG_SRCDIR(java/lang/System.java)
 
 dnl GCJ LOCAL
@@ -150,10 +150,28 @@ AC_ARG_ENABLE([gconf-peer],
 AM_CONDITIONAL(CREATE_GCONF_PEER_LIBRARIES, test "x${COMPILE_GCONF_PEER}" = xyes)
 
 dnl -----------------------------------------------------------
-dnl GTK native peer error checking
+dnl GConf native peer error checking
 dnl -----------------------------------------------------------
 AC_ARG_ENABLE([gconf-peers],,AC_MSG_ERROR([No --enable-gconf-peers (or --disable-gconf-peers) option; you want --enable-gconf-peer]))
 
+dnl ------------------------------------------------------------
+dnl GStreamer based sound provider backend (disabled by default)
+dnl ------------------------------------------------------------
+AC_ARG_ENABLE([gstreamer-peer],
+              [AS_HELP_STRING(--enable-gstreamer-peer,compile GStreamer native peers (disabled by --disable-jni) [default=no])],
+              [case "${enableval}" in
+                yes) COMPILE_GSTREAMER_PEER=yes ;;
+                no) COMPILE_GSTREAMER_PEER=no ;;
+                *) COMPILE_GSTREAMER_PEER=default ;;
+              esac],
+              [COMPILE_GSTREAMER_PEER=default])
+AM_CONDITIONAL(CREATE_GSTREAMER_PEER_LIBRARIES, test "x${COMPILE_GSTREAMER_PEER}" = xyes)
+
+dnl -----------------------------------------------------------
+dnl GStreamer native peer error checking
+dnl -----------------------------------------------------------
+AC_ARG_ENABLE([gstreamer-peers],,AC_MSG_ERROR([No --enable-gstreamer-peers (or --disable-gstreamer-peers) option; you want --enable-gstreamer-peer]))
+
 dnl ------------------------------------------------------------
 dnl Whether to compile with -Werror or not (disabled by default)
 dnl ------------------------------------------------------------
@@ -315,7 +333,6 @@ AC_ARG_WITH([vm],
            ])
 
 AC_SUBST(VM_BINARY)
-AM_CONDITIONAL(FOUND_CACAO, test "x`basename $VM_BINARY`" = xcacao)
 
 dnl -----------------------------------------------------------
 dnl Regenerate headers at build time (disabled by default)
@@ -416,6 +433,7 @@ if test "x${COMPILE_JNI}" = xyes; then
   AC_EGREP_HEADER(u_int32_t, sys/types.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED, 1, [Define to 1 if you have BSD u_int32_t]))
   AC_EGREP_HEADER(u_int32_t, sys/config.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED, 1, [Define to 1 if you have BSD u_int32_t]))
 
+  AC_SEARCH_LIBS([inet_pton],[nsl]) 
   AC_CHECK_FUNCS([ftruncate fsync select \
                  gethostname socket strerror fork pipe execve open close \
                  lseek fstat read readv write writev htonl memset htons connect \
@@ -566,6 +584,39 @@ if test "x${COMPILE_JNI}" = xyes; then
     fi
   fi
 
+  dnl gstreamer-peer
+  if  test "x${COMPILE_GSTREAMER_PEER}" = xyes; then
+    GST_MAJORMINOR=0.10
+    GST_REQUIRED=0.10.10
+
+    dnl gstreamer
+    PKG_CHECK_MODULES(GSTREAMER, gstreamer-$GST_MAJORMINOR >= $GST_REQUIRED)
+    AC_SUBST(GSTREAMER_CFLAGS)
+    AC_SUBST(GSTREAMER_LIBS)
+
+    dnl gstreamer-base
+    PKG_CHECK_MODULES(GSTREAMER_BASE,
+                      gstreamer-base-$GST_MAJORMINOR >= $GST_REQUIRED)
+    AC_SUBST(GSTREAMER_BASE_CFLAGS)
+    AC_SUBST(GSTREAMER_BASE_LIBS)
+
+    dnl gstreamer-plugin-base
+    PKG_CHECK_MODULES(GSTREAMER_PLUGINS_BASE,
+                      gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQUIRED)
+    AC_SUBST(GSTREAMER_PLUGINS_BASE_CFLAGS)
+    AC_SUBST(GSTREAMER_PLUGINS_BASE_LIBS)
+
+       GST_PLUGIN_LDFLAGS='-module -avoid-version -Wno-unused-parameter -no-undefined'
+       AC_SUBST(GST_PLUGIN_LDFLAGS)
+       
+       dnl set the gstreamer based file reader, writer and mixer
+       GSTREAMER_FILE_READER=gnu.javax.sound.sampled.gstreamer.io.GstAudioFileReader
+       GSTREAMER_MIXER_PROVIDER=gnu.javax.sound.sampled.gstreamer.GStreamerMixerProvider
+  fi
+  dnl add the gstreamer resources 
+  AC_SUBST(GSTREAMER_FILE_READER)
+  AC_SUBST(GSTREAMER_MIXER_PROVIDER)
+
   dnl Check for AWT related Qt4
   if test "x${COMPILE_QT_PEER}" = xyes; then
     PKG_CHECK_MODULES(QT, QtCore QtGui >= 4.1.0, HAVE_QT4="yes", HAVE_QT4="no")
@@ -637,6 +688,17 @@ if test "x${COMPILE_JNI}" = xyes; then
              [Define this symbol if you have SO_NOSIGPIPE]) ],
   [ AC_MSG_RESULT(no)]
  )
+  dnl **********************************************************************
+  dnl Check for MSG_WAITALL
+  dnl **********************************************************************
+  AC_MSG_CHECKING(for MSG_WAITALL)
+  AC_TRY_COMPILE([#include <sys/socket.h>],
+   [ int f = MSG_WAITALL; ],
+   [ AC_MSG_RESULT(yes)
+     AC_DEFINE(HAVE_MSG_WAITALL, 1,
+              [Define this symbol if you have MSG_WAITALL]) ],
+   [ AC_MSG_RESULT(no)]
+  )
 
   dnl Check for plugin support headers and libraries.
   if test "x${COMPILE_PLUGIN}" = xyes; then
@@ -674,7 +736,9 @@ if test "x${COMPILE_JNI}" = xyes; then
   fi
 fi
 
-CLASSPATH_WITH_JAVAH
+if test "x${REGENERATE_JNI_HEADERS}" = xyes; then
+  CLASSPATH_WITH_JAVAH
+fi
 
 dnl ----------------------------------------------------------- 
 dnl Add the include files for the native abstraction layer.
@@ -944,6 +1008,7 @@ 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
@@ -952,6 +1017,8 @@ 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
index ca5ea4e1ef9c125b1cb1fc7d51c93d8747637deb..04701da536f33a7c39d7bb01b87a70ae3a776df5 100755 (executable)
@@ -1,10 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2006-10-15.18
+scriptversion=2005-07-09.11
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006 Free Software
-# Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005 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
@@ -92,20 +91,7 @@ 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.
-## 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
-  "$@"
+  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
   stat=$?
   if test $stat -eq 0; then :
   else
@@ -290,46 +276,6 @@ 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'.
@@ -342,13 +288,13 @@ tru64)
 
    if test "$libtool" = yes; then
       # With Tru64 cc, shared objects can also be used to make a
-      # static library.  This mechanism is used in libtool 1.4 series to
+      # static library.  This mecanism 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 $dir.libs/$base.o.d and
+      # compilations output dependencies in 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 e00e0aefd1e6a1acce48e5501ed4966d5845ab1b..f5af2231061848719dcaba3056eff20a4dcd5711 100644 (file)
@@ -123,6 +123,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -161,8 +163,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -186,6 +186,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -258,8 +267,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 937d0cc9f9c69cf436bb71b26c41512eaa0386da..128cd53d49c61126733d851630ca1486febfb65e 100644 (file)
@@ -100,6 +100,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -138,8 +140,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -163,6 +163,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -235,8 +244,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 80836223506b42c126a09d5425bc55c738c5f149..ff2c40654b2f2a17898e7c6623e8f01b0e5481d4 100644 (file)
@@ -3,11 +3,11 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2006-10-04.17}
+\def\texinfoversion{2005-07-05.19}
 %
 % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
-% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
-% Software Foundation, Inc.
+% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software
+% Foundation, Inc.
 %
 % 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
 \ifx\putwordDefopt\undefined    \gdef\putwordDefopt{User Option}\fi
 \ifx\putwordDeffunc\undefined   \gdef\putwordDeffunc{Function}\fi
 
-% 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.
+% In some macros, we cannot use the `\? notation---the left quote is
+% in some cases the escape char.
+\chardef\backChar  = `\\
 \chardef\colonChar = `\:
 \chardef\commaChar = `\,
-\chardef\dashChar  = `\-
 \chardef\dotChar   = `\.
 \chardef\exclamChar= `\!
-\chardef\lquoteChar= `\`
+\chardef\plusChar  = `\+
 \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{}
     % 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 \oddfootingyyy.)
+        % (We lessened \vsize for it in \oddfootingxxx.)
         % The \baselineskip=24pt in plain's \makefootline has no effect.
-        \vskip 24pt
+        \vskip 2\baselineskip
         \unvbox\footlinebox
       \fi
       %
 %
 \def\parsearg{\parseargusing{}}
 \def\parseargusing#1#2{%
-  \def\argtorun{#2}%
+  \def\next{#2}%
   \begingroup
     \obeylines
     \spaceisspace
 \def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{%
   \def\temp{#3}%
   \ifx\temp\empty
-    % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp:
+    % We cannot use \next here, as it holds the macro to run;
+    % thus we 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 \argtorun.
+% just before passing the control to \next.
 % (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\argtorun\expandafter{#1}}
+\def\finishparsearg#1 \ArgTerm{\expandafter\next\expandafter{#1}}
 
 % \parseargdef\foo{...}
 %      is roughly equivalent to
@@ -1051,9 +1051,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`\_ = \active
+  \catcode\underChar = \active
   \gdef\mathunderscore{%
-    \catcode`\_=\active
+    \catcode\underChar=\active
     \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
   }
 }
@@ -1096,24 +1096,15 @@ 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 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.
+% We do .5em per period so that it has the same spacing in a typewriter
+% font as three actual period characters.
 %
 \def\dots{%
   \leavevmode
-  \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
+  \hbox to 1.5em{%
+    \hskip 0pt plus 0.25fil
+    .\hfil.\hfil.%
+    \hskip 0pt plus 0.5fil
   }%
 }
 
@@ -1206,20 +1197,21 @@ where each line of input produces a line of output.}
   \fi
 \fi
 
-% PDF uses PostScript string constants for the names of xref targets,
+% PDF uses PostScript string constants for the names of xref targets, to
 % 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 what we do).
+% that's we do).
 
 % double active backslashes.
 % 
 {\catcode`\@=0 \catcode`\\=\active
+ @gdef@activebackslash{@catcode`@\=@active @otherbackslash}
  @gdef@activebackslashdouble{%
-   @catcode`@\=@active
+   @catcode@backChar=@active
    @let\=@doublebackslash}
 }
 
@@ -1251,17 +1243,21 @@ 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{(}{\realbackslash(}{#1}%
-  \HyPsdSubst{)}{\realbackslash)}{#1}%
+  \HyPsdSubst{(}{\backslashlparen}{#1}%
+  \HyPsdSubst{)}{\backslashrparen}{#1}%
+}
+
+{\catcode\exclamChar = 0 \catcode\backChar = \other
+ !gdef!backslashlparen{\(}%
+ !gdef!backslashrparen{\)}%
 }
 
 \ifpdf
   \input pdfcolor
   \pdfcatalog{/PageMode /UseOutlines}%
-  % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
   \def\dopdfimage#1#2#3{%
-    \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
-    \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
+    \def\imagewidth{#2}%
+    \def\imageheight{#3}%
     % without \immediate, pdftex seg faults when the same image is
     % included twice.  (Version 3.14159-pre-1.0-unofficial-20010704.)
     \ifnum\pdftexversion < 14
@@ -1269,8 +1265,8 @@ where each line of input produces a line of output.}
     \else
       \immediate\pdfximage
     \fi
-      \ifdim \wd0 >0pt width \imagewidth \fi
-      \ifdim \wd2 >0pt height \imageheight \fi
+      \ifx\empty\imagewidth\else width \imagewidth \fi
+      \ifx\empty\imageheight\else height \imageheight \fi
       \ifnum\pdftexversion<13
          #1.pdf%
        \else
@@ -1394,7 +1390,7 @@ 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
-      \catcode`\\=\active \otherbackslash
+      \activebackslash
       \input \jobname.toc
     \endgroup
   }
@@ -1413,17 +1409,9 @@ 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
-      % 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
+      \normalturnoffactive\def\@{@}%
       \makevalueexpandable
       \leavevmode\Red
       \startlink attr{/Border [0 0 0]}%
@@ -1493,7 +1481,6 @@ 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
 
@@ -1515,13 +1502,11 @@ where each line of input produces a line of output.}
   }%
 }
 
-
 % 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}
 
-
 % Use cm as the default font prefix.
 % To specify the font prefix, you must define \fontprefix
 % before you read in texinfo.tex.
@@ -1545,10 +1530,6 @@ 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}
@@ -1662,165 +1643,6 @@ where each line of input produces a line of output.}
 \font\reducedi=cmmi10
 \font\reducedsy=cmsy10
 
-% 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}
-\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}
-\font\texti=cmmi10 scaled \mainmagstep
-\font\textsy=cmsy10 scaled \mainmagstep
-
-% A few fonts for @defun names and args.
-\setfont\defbf\bfshape{10}{\magstephalf}
-\setfont\deftt\ttshape{10}{\magstephalf}
-\setfont\defttsl\ttslshape{10}{\magstephalf}
-\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}
-\font\smalli=cmmi9
-\font\smallsy=cmsy9
-
-% 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}
-\font\smalleri=cmmi8
-\font\smallersy=cmsy8
-
-% 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}
-\let\titlebf=\titlerm
-\setfont\titlesc\scbshape{10}{\magstep4}
-\font\titlei=cmmi12 scaled \magstep3
-\font\titlesy=cmsy10 scaled \magstep4
-\def\authorrm{\secrm}
-\def\authortt{\sectt}
-
-% Chapter fonts (14.4pt).
-\def\chapnominalsize{14pt}
-\setfont\chaprm\rmbshape{12}{\magstep1}
-\setfont\chapit\itbshape{10}{\magstep2}
-\setfont\chapsl\slbshape{10}{\magstep2}
-\setfont\chaptt\ttbshape{12}{\magstep1}
-\setfont\chapttsl\ttslshape{10}{\magstep2}
-\setfont\chapsf\sfbshape{12}{\magstep1}
-\let\chapbf\chaprm
-\setfont\chapsc\scbshape{10}{\magstep2}
-\font\chapi=cmmi12 scaled \magstep1
-\font\chapsy=cmsy10 scaled \magstep2
-
-% Section fonts (12pt).
-\def\secnominalsize{12pt}
-\setfont\secrm\rmbshape{12}{1000}
-\setfont\secit\itbshape{10}{\magstep1}
-\setfont\secsl\slbshape{10}{\magstep1}
-\setfont\sectt\ttbshape{12}{1000}
-\setfont\secttsl\ttslshape{10}{\magstep1}
-\setfont\secsf\sfbshape{12}{1000}
-\let\secbf\secrm
-\setfont\secsc\scbshape{10}{\magstep1}
-\font\seci=cmmi12 
-\font\secsy=cmsy10 scaled \magstep1
-
-% Subsection fonts (10pt).
-\def\ssecnominalsize{10pt}
-\setfont\ssecrm\rmbshape{10}{1000}
-\setfont\ssecit\itbshape{10}{1000}
-\setfont\ssecsl\slbshape{10}{1000}
-\setfont\ssectt\ttbshape{10}{1000}
-\setfont\ssecttsl\ttslshape{10}{1000}
-\setfont\ssecsf\sfbshape{10}{1000}
-\let\ssecbf\ssecrm
-\setfont\ssecsc\scbshape{10}{1000}
-\font\sseci=cmmi10
-\font\ssecsy=cmsy10
-
-% Reduced fonts for @acro in text (9pt).
-\def\reducednominalsize{9pt}
-\setfont\reducedrm\rmshape{9}{1000}
-\setfont\reducedtt\ttshape{9}{1000}
-\setfont\reducedbf\bfshape{10}{900}
-\setfont\reducedit\itshape{9}{1000}
-\setfont\reducedsl\slshape{9}{1000}
-\setfont\reducedsf\sfshape{9}{1000}
-\setfont\reducedsc\scshape{10}{900}
-\setfont\reducedttsl\ttslshape{10}{900}
-\font\reducedi=cmmi9
-\font\reducedsy=cmsy9
-
-% 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
 % texinfo doesn't allow for producing subscripts and superscripts except
@@ -1931,7 +1753,7 @@ where each line of input produces a line of output.}
 
 % Set up the default fonts, so we can use them for creating boxes.
 %
-\definetextfontsizexi
+\textfonts \rm
 
 % Define these so they can be easily changed for other fonts.
 \def\angleleft{$\langle$}
@@ -2056,14 +1878,11 @@ 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\rquoteChar=\active \catcode\lquoteChar=\active
-    \let'\codequoteright \let`\codequoteleft
-    %
-    \catcode\dashChar=\active  \catcode\underChar=\active
+    \catcode`\-=\active  \catcode`\_=\active
     \ifallowcodebreaks
      \let-\codedash
      \let_\codeunder
@@ -2309,10 +2128,6 @@ 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.
@@ -2484,8 +2299,8 @@ 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 -12pt
-  \global\advance\vsize by -12pt
+  \global\advance\pageheight by -\baselineskip
+  \global\advance\vsize by -\baselineskip
 }
 
 \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}}
@@ -3144,7 +2959,6 @@ 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
@@ -3165,16 +2979,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'.
-    \long\def\doignoretext##1^^M@end #1{%
-      \doignoretextyyy##1^^M@#1\_STOP_}%
-    %
+    % 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_}%
     % 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%
   }%
 }
@@ -3204,12 +3018,7 @@ where each line of input produces a line of output.}
 }
 
 % Finish off ignored text.
-{ \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}%
-}
+\def\enddoignore{\endgroup\ignorespaces}
 
 
 % @set VAR sets the variable VAR to an empty value.
@@ -3412,39 +3221,12 @@ 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
 }
@@ -3462,7 +3244,6 @@ where each line of input produces a line of output.}
   %
   % Do the redefinitions.
   \commondummies
-  \otherbackslash
 }
 
 % Called from \indexdummies and \atdummies.
@@ -3536,7 +3317,6 @@ where each line of input produces a line of output.}
   \definedummyword\point
   \definedummyword\print
   \definedummyword\result
-  \definedummyword\textdegree
   %
   % We want to disable all macros so that they are not expanded by \write.
   \macrolist
@@ -3550,62 +3330,63 @@ where each line of input produces a line of output.}
 
 % \commondummiesnofonts: common to \commondummies and \indexnofonts.
 %
-\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
+% 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
+  }
 }
 
 % \indexnofonts is used when outputting the strings to sort the index
@@ -3670,7 +3451,6 @@ where each line of input produces a line of output.}
   \def\point{.}%
   \def\print{-|}%
   \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.
@@ -4019,9 +3799,9 @@ where each line of input produces a line of output.}
   \endgroup
 }
 
-% Like plain.tex's \dotfill, except uses up at least 1 em.
+% Like \dotfill except takes at least 1 em.
 \def\indexdotfill{\cleaders
-  \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill}
+  \hbox{$\mathsurround=0pt \mkern1.5mu ${\it .}$ \mkern1.5mu$}\hskip 1em plus 1fill}
 
 \def\primary #1{\line{#1\hfil}}
 
@@ -4595,17 +4375,14 @@ where each line of input produces a line of output.}
     \ifx\temptype\Ynothingkeyword
       \setbox0 = \hbox{}%
       \def\toctype{unnchap}%
-      \gdef\thischapternum{}%
       \gdef\thischapter{#1}%
     \else\ifx\temptype\Yomitfromtockeyword
       \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
       \def\toctype{omit}%
-      \gdef\thischapternum{}%
       \gdef\thischapter{}%
     \else\ifx\temptype\Yappendixkeyword
       \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
       \def\toctype{app}%
-      \xdef\thischapternum{\appendixletter}%
       % 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.
@@ -4615,7 +4392,6 @@ where each line of input produces a line of output.}
     \else
       \setbox0 = \hbox{#3\enspace}%
       \def\toctype{numchap}%
-      \xdef\thischapternum{\the\chapno}%
       \xdef\thischapter{\putwordChapter{} \the\chapno:
                         \noexpand\thischaptername}%
     \fi\fi\fi
@@ -4727,21 +4503,13 @@ where each line of input produces a line of output.}
       \gdef\thissection{#1}%
     \fi\fi\fi
     %
-    % Write the toc entry (before \donoderef).  See comments in \chapmacro.
+    % Write the toc entry (before \donoderef).  See comments in \chfplain.
     \writetocentry{\toctype\sectionlevel}{#1}{#4}%
     %
     % Write the node reference (= pdf destination for pdftex).
-    % Again, see comments in \chapmacro.
+    % Again, see comments in \chfplain.
     \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
@@ -4804,7 +4572,7 @@ where each line of input produces a line of output.}
        \edef\temp{%
          \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}%
        \temp
-      }%
+      }
     \fi
   \fi
   %
@@ -5056,7 +4824,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 \reducedsf error\kern-1.5pt}
+\setbox0 = \hbox{\kern-.75pt \tensf error\kern-1.5pt}
 %
 \setbox\errorbox=\hbox to \dimen0{\hfil
    \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
@@ -5279,10 +5047,11 @@ where each line of input produces a line of output.}
 %
 \maketwodispenvs {lisp}{example}{%
   \nonfillstart
-  \tt\quoteexpand
+  \tt
   \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
   \gobble       % eat return
 }
+
 % @display/@smalldisplay: same as @lisp except keep current font.
 %
 \makedispenv {display}{%
@@ -5410,34 +5179,6 @@ 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 SETcodequoteundirected\endcsname\relax
-    '%
-  \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 SETcodequotebacktick\endcsname\relax
-    `%
-  \else
-    \char'22
-  \fi
-}
-%
 \begingroup
   \catcode`\^^I=\active
   \gdef\tabexpand{%
@@ -5450,16 +5191,7 @@ 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
@@ -5468,7 +5200,6 @@ 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
@@ -5918,6 +5649,7 @@ 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}%
@@ -6184,11 +5916,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\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
+\def\braceorline#1{\let\next=#1\futurelet\nchar\braceorlinexxx}
 \def\braceorlinexxx{%
   \ifx\nchar\bgroup\else
     \expandafter\parsearg
-  \fi \macnamexxx}
+  \fi \next}
 
 
 % @alias.
@@ -6353,7 +6085,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
@@ -6783,7 +6515,7 @@ where each line of input produces a line of output.}
     % above and below.
     \nobreak\vskip\parskip
     \nobreak
-    \line\bgroup
+    \line\bgroup\hss
   \fi
   %
   % Output the image.
@@ -6796,7 +6528,7 @@ where each line of input produces a line of output.}
     \epsfbox{#1.eps}%
   \fi
   %
-  \ifimagevmode \egroup \bigbreak \fi  % space after the image
+  \ifimagevmode \hss \egroup \bigbreak \fi  % space after the image
 \endgroup}
 
 
@@ -6937,7 +6669,6 @@ 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.
@@ -6958,9 +6689,8 @@ where each line of input produces a line of output.}
   %
   % place the captured inserts
   %
-  % BEWARE: when the floats start floating, we have to issue warning
-  % whenever an insert appears inside a float which could possibly
-  % float. --kasal, 26may04
+  % BEWARE: when the floats start float, we have to issue warning whenever an
+  % insert appears inside a float which could possibly float. --kasal, 26may04
   %
   \checkinserts
 }
@@ -7387,13 +7117,6 @@ 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,
@@ -7401,29 +7124,28 @@ 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{\\}}
 
-% 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
+% \normalbackslash outputs one backslash in fixed width font.
+\def\normalbackslash{{\tt\backslashcurfont}}
 
-% \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}
+\catcode`\\=\active
 
-% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
-% the literal character `\'.
-% 
-@def@normalturnoffactive{%
-  @let\=@normalbackslash
+% Used sometimes to turn off (effectively) the active characters
+% even after parsing them.
+@def@turnoffactive{%
   @let"=@normaldoublequote
+  @let\=@realbackslash
   @let~=@normaltilde
   @let^=@normalcaret
   @let_=@normalunderscore
@@ -7435,6 +7157,12 @@ 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
@@ -7447,7 +7175,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 731671c8a5f44519682615221e843d93cd904bf8..996274c10bc26e8b5c05fba89be4ddd539fbfa70 100644 (file)
@@ -109,6 +109,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -147,8 +149,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -172,6 +172,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -244,8 +253,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 75b6f67c92fba49fd98ed0ad98dba14e65760705..99c262b7172949fcbb1920001baaced8804e3467 100644 (file)
@@ -20,17 +20,28 @@ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 
 package gnu.classpath.examples.awt;
 
-import gnu.java.awt.font.*;
-import gnu.java.awt.font.opentype.*;
-
-import java.awt.*;
+import gnu.java.awt.font.FontDelegate;
+import gnu.java.awt.font.GNUGlyphVector;
+import gnu.java.awt.font.opentype.OpenTypeFontFactory;
+
+import java.awt.BasicStroke;
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.GridLayout;
+import java.awt.Insets;
+import java.awt.RenderingHints;
+import java.awt.Shape;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
-import java.awt.font.*;
-import java.io.*;
-import java.nio.*;
-import java.nio.channels.*;
-import java.text.*;
+import java.awt.font.FontRenderContext;
+import java.io.File;
+import java.io.RandomAccessFile;
+import java.nio.ByteBuffer;
+import java.nio.channels.FileChannel;
+import java.text.StringCharacterIterator;
 
 import javax.swing.BoxLayout;
 import javax.swing.JCheckBox;
@@ -57,6 +68,9 @@ public class HintingDemo extends JFrame {
   char character;
   Options options;
   boolean antiAlias;
+  boolean showGrid;
+  boolean showOriginal;
+  boolean showHinted;
   int flags;
 
   class StringViewer extends JPanel
@@ -133,24 +147,35 @@ public class HintingDemo extends JFrame {
           Insets i = getInsets();
           g2d.clearRect(i.left, i.top, getWidth() - i.left - i.right,
                         getHeight() - i.top - i.bottom);
-          g2d.setColor(Color.GRAY);
-          for (int x = 20; x < getWidth(); x += 20)
-            {
-              g2d.drawLine(x, i.top, x, getHeight() - i.top - i.bottom);
-            }
-          for (int y = 20; y < getHeight(); y += 20)
+          if (showGrid)
             {
-              g2d.drawLine(i.left, y, getWidth() - i.left - i.right, y);
+              g2d.setColor(Color.GRAY);
+              for (int x = 20; x < getWidth(); x += 20)
+                {
+                  g2d.drawLine(x, i.top, x, getHeight() - i.top - i.bottom);
+                }
+              for (int y = 20; y < getHeight(); y += 20)
+                {
+                  g2d.drawLine(i.left, y, getWidth() - i.left - i.right, y);
+                }
             }
-          g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
-                               RenderingHints.VALUE_ANTIALIAS_OFF);
+//          g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
+//                               RenderingHints.VALUE_ANTIALIAS_ON);
           g2d.translate(40, 300);
           g2d.scale(20., 20.);
-          g2d.setStroke(new BasicStroke((float) (1/20.)));
-          g2d.setColor(Color.RED);
-          g2d.draw(glyph.getOutline(0, 0, flags & ~FontDelegate.FLAG_FITTED));
-          g2d.setColor(Color.GREEN);
-          g2d.draw(glyph.getOutline(0, 0, flags | FontDelegate.FLAG_FITTED));
+          g2d.setStroke(new BasicStroke((float) (1/10.)));
+          if (showOriginal)
+            {
+              g2d.setColor(Color.RED);
+              g2d.draw(glyph.getOutline(0, 0,
+                                        flags & ~FontDelegate.FLAG_FITTED));
+            }
+          if (showHinted)
+            {
+              g2d.setColor(Color.RED);
+              g2d.draw(glyph.getOutline(0, 0,
+                                        flags | FontDelegate.FLAG_FITTED));
+            }
       }
     }
 
@@ -186,7 +211,7 @@ public class HintingDemo extends JFrame {
 
   HintingDemo()
   {
-    File file = new File("/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType/DejaVuSerif.ttf");
+    File file = new File("/usr/share/fonts/truetype/freefont/FreeSans.ttf");
     loadFont(file);
     setLayout(new BorderLayout());
     chooser = new Chooser();
@@ -244,6 +269,9 @@ public class HintingDemo extends JFrame {
     implements ActionListener
   {
     JCheckBox antiAliasOpt;
+    JCheckBox showGridOpt;
+    JCheckBox showOriginalOpt;
+    JCheckBox showHintedOpt;
     JCheckBox hintHorizontalOpt;
     JCheckBox hintVerticalOpt;
     JCheckBox hintEdgeOpt;
@@ -257,6 +285,18 @@ public class HintingDemo extends JFrame {
       antiAliasOpt.setSelected(true);
       antiAliasOpt.addActionListener(this);
       add(antiAliasOpt);
+      showGridOpt = new JCheckBox("Show grid");
+      showGridOpt.setSelected(true);
+      showGridOpt.addActionListener(this);
+      add(showGridOpt);
+      showOriginalOpt = new JCheckBox("Show original");
+      showOriginalOpt.setSelected(true);
+      showOriginalOpt.addActionListener(this);
+      add(showOriginalOpt);
+      showHintedOpt = new JCheckBox("Show hinted");
+      showHintedOpt.setSelected(true);
+      showHintedOpt.addActionListener(this);
+      add(showHintedOpt);
       hintHorizontalOpt = new JCheckBox("Hint horizontal");
       hintHorizontalOpt.setSelected(true);
       hintHorizontalOpt.addActionListener(this);
@@ -283,6 +323,9 @@ public class HintingDemo extends JFrame {
     void sync()
     {
       antiAlias = antiAliasOpt.isSelected();
+      showGrid = showGridOpt.isSelected();
+      showOriginal = showOriginalOpt.isSelected();
+      showHinted = showHintedOpt.isSelected();
       if (hintHorizontalOpt.isSelected())
         flags &= ~FontDelegate.FLAG_NO_HINT_HORIZONTAL;
       else
index 416d390c2637e91c295ff1b743be3ab240e34d44..4d7ccfdd3c646012772cf25ddef7650058d8cc88 100644 (file)
@@ -107,6 +107,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -145,8 +147,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -170,6 +170,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -242,8 +251,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 93f58bf233777a6776e8680a7de9d7199fc2bf01..a942ff75724d5ec798d08854616a42537ec02711 100644 (file)
@@ -98,6 +98,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -136,8 +138,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -161,6 +161,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -233,8 +242,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 6d36ab3eb180c717d64ce9064c28a3f084f02ccc..9a568158b7fc7884de62294aae6b9cfddd3d7249 100644 (file)
@@ -98,6 +98,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -136,8 +138,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -161,6 +161,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -233,8 +242,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 3ddaa288b545b8ec01acfc6ce877bfb6e2ee8190..1b22402b15fd96a8e47abdde62b20a88b1097f71 100644 (file)
@@ -98,6 +98,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -136,8 +138,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -161,6 +161,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -233,8 +242,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index ae8905f509bb7a13073d3edb5e424b8be1b0194e..d553a7b305e6a9292eb06e0039512a04d85e03b5 100644 (file)
@@ -98,6 +98,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -136,8 +138,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -161,6 +161,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -233,8 +242,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 0da0154d9d286c56c119c29a603a74139f1ec4ae..5f579050aa3d2a5a1d9e59a9024bbbfa86883c23 100644 (file)
@@ -1,6 +1,6 @@
 /* ArrayReferenceCommandSet.java -- class to implement the Array
    Reference Command Set
-   Copyright (C) 2005, 2007 Free Software Foundation
+   Copyright (C) 2005 Free Software Foundation
 
 This file is part of GNU Classpath.
 
index 030f9d3bca588df68e90b8aa9f7718eb3dab82d8..a77873309840857b81e4b51768d724dba4dd6236 100644 (file)
@@ -115,8 +115,16 @@ public interface FontDelegate
    * Returns the number of glyphs in this font face.
    */
   public int getNumGlyphs();
-  
-  
+
+  /**
+   * Returns the glyph code for the specified character.
+   *
+   * @param c the character to map
+   *
+   * @return the glyph code
+   */
+  public int getGlyphIndex(int c);
+
   /**
    * Returns the index of the glyph which gets displayed if the font
    * cannot map a Unicode code point to a glyph. Many fonts show this
index a270ce7d96d630e4719331a8072d96fa685baa0f..6c2193b94ae892ee914870057856a2db8ac86546 100644 (file)
@@ -617,7 +617,17 @@ public final class OpenTypeFont
     return new GNUGlyphVector(this, font, frc, glyphs);
   }
 
-
+  /**
+   * Returns the glyph code for the specified character.
+   *
+   * @param c the character to map
+   *
+   * @return the glyph code
+   */
+  public int getGlyphIndex(int c)
+  {
+    return getCharGlyphMap().getGlyph(c);
+  }
 
   /**
    * Determines the advance width for a glyph.
index f6c5ff0cb3b2b58ca694a1b50064966561ee511a..15ec90da1c024f5007e689f77f519130b4eaba48 100644 (file)
@@ -51,6 +51,7 @@ import java.awt.Graphics2D;
 import java.awt.Image;
 import java.awt.Paint;
 import java.awt.PaintContext;
+import java.awt.Point;
 import java.awt.Polygon;
 import java.awt.Rectangle;
 import java.awt.RenderingHints;
@@ -75,10 +76,10 @@ import java.awt.image.DataBuffer;
 import java.awt.image.ImageObserver;
 import java.awt.image.Raster;
 import java.awt.image.RenderedImage;
+import java.awt.image.SampleModel;
 import java.awt.image.WritableRaster;
 import java.awt.image.renderable.RenderableImage;
 import java.text.AttributedCharacterIterator;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -147,7 +148,7 @@ import java.util.Map;
  */
 public abstract class AbstractGraphics2D
   extends Graphics2D
-  implements Cloneable
+  implements Cloneable, Pixelizer
 {
 
   /**
@@ -155,13 +156,6 @@ public abstract class AbstractGraphics2D
    */
   private static final Font FONT = new Font("SansSerif", Font.PLAIN, 12);
 
-  /**
-   * Accuracy of the sampling in the anti-aliasing shape filler.
-   * Lower values give more speed, while higher values give more quality.
-   * It is advisable to choose powers of two.
-   */
-  private static final int AA_SAMPLING = 8;
-
   /**
    * Caches certain shapes to avoid massive creation of such Shapes in
    * the various draw* and fill* methods.
@@ -226,17 +220,6 @@ public abstract class AbstractGraphics2D
    */
   private WritableRaster destinationRaster;
 
-  /**
-   * Stores the alpha values for a scanline in the anti-aliasing shape
-   * renderer.
-   */
-  private transient int[] alpha;
-
-  /**
-   * The edge table for the scanline conversion algorithms.
-   */
-  private transient ArrayList[] edgeTable;
-
   /**
    * Indicates if certain graphics primitives can be rendered in an optimized
    * fashion. This will be the case if the following conditions are met:
@@ -931,8 +914,8 @@ public abstract class AbstractGraphics2D
   {
     // Initialize clip if not already present.
     if (clip == null)
-      clip = s;
-    
+      setClip(s);
+
     // This is so common, let's optimize this. 
     else if (clip instanceof Rectangle && s instanceof Rectangle)
       {
@@ -1174,7 +1157,9 @@ public abstract class AbstractGraphics2D
   {
     if (isOptimized)
       {
-        rawDrawLine(x1, y1, x2, y2);
+        int tx = (int) transform.getTranslateX();
+        int ty = (int) transform.getTranslateY();
+        rawDrawLine(x1 + tx, y1 + ty, x2 + tx, y2 + ty);
       }
     else
       {
@@ -1214,7 +1199,8 @@ public abstract class AbstractGraphics2D
   {
     if (isOptimized)
       {
-        rawFillRect(x, y, width, height);
+        rawFillRect(x + (int) transform.getTranslateX(),
+                    y + (int) transform.getTranslateY(), width, height);
       }
     else
       {
@@ -1352,8 +1338,16 @@ public abstract class AbstractGraphics2D
 
   public void drawPolyline(int[] xPoints, int[] yPoints, int npoints)
   {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
+    ShapeCache sc = getShapeCache();
+    if (sc.polyline == null)
+      sc.polyline = new GeneralPath();
+    GeneralPath p = sc.polyline;
+    p.reset();
+    if (npoints > 0)
+      p.moveTo(xPoints[0], yPoints[0]);
+    for (int i = 1; i < npoints; i++)
+      p.lineTo(xPoints[i], yPoints[i]);
+    fill(p);
   }
 
   /**
@@ -1364,6 +1358,7 @@ public abstract class AbstractGraphics2D
     ShapeCache sc = getShapeCache();
     if (sc.polygon == null)
       sc.polygon = new Polygon();
+    sc.polygon.reset();
     sc.polygon.xpoints = xPoints;
     sc.polygon.ypoints = yPoints;
     sc.polygon.npoints = npoints;
@@ -1378,6 +1373,7 @@ public abstract class AbstractGraphics2D
     ShapeCache sc = getShapeCache();
     if (sc.polygon == null)
       sc.polygon = new Polygon();
+    sc.polygon.reset();
     sc.polygon.xpoints = xPoints;
     sc.polygon.ypoints = yPoints;
     sc.polygon.npoints = npoints;
@@ -1397,7 +1393,10 @@ public abstract class AbstractGraphics2D
   {
     boolean ret;
     if (isOptimized)
-      ret = rawDrawImage(image, x, y, observer);
+      {
+        ret = rawDrawImage(image, x + (int) transform.getTranslateX(),
+                           y + (int) transform.getTranslateY(), observer);
+      }
     else
       {
         AffineTransform t = new AffineTransform();
@@ -1559,17 +1558,15 @@ public abstract class AbstractGraphics2D
     if (isFont)
       {
         Object v = renderingHints.get(RenderingHints.KEY_TEXT_ANTIALIASING);
-        // We default to antialiasing on for text as long as we have no
-        // good hinting implemented.
-        antialias = (v == RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
-                     //|| v == RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT);
+        // We default to antialiasing for text rendering.
+        antialias = (v == RenderingHints.VALUE_TEXT_ANTIALIAS_ON
+                     || v == RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT);
       }
     else
       {
         Object v = renderingHints.get(RenderingHints.KEY_ANTIALIASING);
         antialias = (v == RenderingHints.VALUE_ANTIALIAS_ON);
       }
-
     ScanlineConverter sc = getScanlineConverter();
     int resolution = 0;
     if (antialias)
@@ -1577,7 +1574,7 @@ public abstract class AbstractGraphics2D
         // Adjust resolution according to rendering hints.
         resolution = 2;
       }
-    sc.renderShape(this, s, clip, transform, resolution);
+    sc.renderShape(this, s, clip, transform, resolution, renderingHints);
   }
 
   /**
@@ -1609,12 +1606,20 @@ public abstract class AbstractGraphics2D
    */
   protected void rawDrawLine(int x0, int y0, int x1, int y1)
   {
-    draw(new Line2D.Float(x0, y0, x1, y1));
+    ShapeCache sc = getShapeCache();
+    if (sc.line == null)
+      sc.line = new Line2D.Float();
+    sc.line.setLine(x0, y0, x1, y1);
+    draw(sc.line);
   }
 
   protected void rawDrawRect(int x, int y, int w, int h)
   {
-    draw(new Rectangle(x, y, w, h));
+    ShapeCache sc = getShapeCache();
+    if (sc.rect == null)
+      sc.rect = new Rectangle();
+    sc.rect.setBounds(x, y, w, h);
+    draw(sc.rect);
   }
 
   /**
@@ -1662,7 +1667,11 @@ public abstract class AbstractGraphics2D
    */
   protected void rawFillRect(int x, int y, int w, int h)
   {
-    fill(new Rectangle(x, y, w, h));
+    ShapeCache sc = getShapeCache();
+    if (sc.rect == null)
+      sc.rect = new Rectangle();
+    sc.rect.setBounds(x, y, w, h);
+    fill(sc.rect);
   }
 
   /**
@@ -1718,10 +1727,38 @@ public abstract class AbstractGraphics2D
    * @param x1 the right offset
    * @param y the scanline
    */
-  protected void fillScanline(int x0, int x1, int y)
+  public void renderScanline(int y, ScanlineCoverage c)
   {
     PaintContext pCtx = paintContext;
+    int x0 = c.getMinX();
+    int x1 = c.getMaxX();
     Raster paintRaster = pCtx.getRaster(x0, y, x1 - x0, 1);
+
+    // Do the anti aliasing thing.
+    float coverageAlpha = 0;
+    float maxCoverage = c.getMaxCoverage();
+    ColorModel cm = pCtx.getColorModel();
+    DataBuffer db = paintRaster.getDataBuffer();
+    Point loc = new Point(paintRaster.getMinX(), paintRaster.getMinY());
+    SampleModel sm = paintRaster.getSampleModel();
+    WritableRaster writeRaster = Raster.createWritableRaster(sm, db, loc);
+    WritableRaster alphaRaster = cm.getAlphaRaster(writeRaster);
+    int pixel;
+    ScanlineCoverage.Iterator iter = c.iterate();
+    while (iter.hasNext())
+      {
+        ScanlineCoverage.Range range = iter.next();
+        coverageAlpha = range.getCoverage() / maxCoverage;
+        if (coverageAlpha < 1.0)
+          {
+            for (int x = range.getXPos(); x < range.getXPosEnd(); x++)
+              {
+                pixel = alphaRaster.getSample(x, y, 0);
+                pixel = (int) (pixel * coverageAlpha);
+                alphaRaster.setSample(x, y, 0, pixel);
+              }
+          }
+      }
     ColorModel paintColorModel = pCtx.getColorModel();
     CompositeContext cCtx = composite.createContext(paintColorModel,
                                                     getColorModel(),
@@ -1733,66 +1770,6 @@ public abstract class AbstractGraphics2D
   }
 
 
-  /**
-   * Fills a horizontal line between x0 and x1 for anti aliased rendering.
-   * the alpha array contains the deltas of the alpha values from one pixel
-   * to the next.
-   *
-   * @param alpha the alpha values in the scanline
-   * @param x0 the beginning of the scanline
-   * @param yy the y coordinate of the line
-   */
-  private void fillScanlineAA(int[] alpha, int x0, int yy, int numPixels,
-                              PaintContext pCtx, int offs)
-  {
-    CompositeContext cCtx = composite.createContext(pCtx.getColorModel(),
-                                                    getColorModel(),
-                                                    renderingHints);
-    Raster paintRaster = pCtx.getRaster(x0, yy, numPixels, 1);
-    //System.err.println("paintColorModel: " + pCtx.getColorModel());
-    WritableRaster aaRaster = paintRaster.createCompatibleWritableRaster();
-    ColorModel cm = pCtx.getColorModel();
-    double lastAlpha = 0.;
-    int lastAlphaInt = 0;
-
-    Object pixel = null;
-    int[] comps = null;
-    int x1 = x0 + numPixels;
-    for (int x = x0; x < x1; x++)
-      {
-        int i = x - offs;
-        if (alpha[i] != 0)
-          {
-            lastAlphaInt += alpha[i];
-            lastAlpha = (double) lastAlphaInt / (double) AA_SAMPLING;
-            alpha[i] = 0;
-          }
-        pixel = paintRaster.getDataElements(x - x0, 0, pixel);
-        comps = cm.getComponents(pixel, comps, 0);
-        if (cm.hasAlpha() && ! cm.isAlphaPremultiplied())
-          comps[comps.length - 1] *= lastAlpha;
-        else
-          {
-            int max;
-            if (cm.hasAlpha())
-              max = comps.length - 2;
-            else
-              max = comps.length - 1;
-            for (int j = 0; j < max; j++) 
-              comps[j] *= lastAlpha;
-          }
-        pixel = cm.getDataElements(comps, 0, pixel);
-        aaRaster.setDataElements(x - x0, 0, pixel);
-      }
-
-    WritableRaster targetChild =
-      destinationRaster.createWritableTranslatedChild(-x0, -yy);
-    cCtx.compose(aaRaster, targetChild, targetChild);
-    updateRaster(destinationRaster, x0, yy, numPixels, 1);
-
-    cCtx.dispose();
-  }
-
   /**
    * Initializes this graphics object. This must be called by subclasses in
    * order to correctly initialize the state of this object.
@@ -1971,4 +1948,5 @@ public abstract class AbstractGraphics2D
       }
     return sc;
   }
+
 }
diff --git a/libjava/classpath/gnu/java/awt/java2d/Pixelizer.java b/libjava/classpath/gnu/java/awt/java2d/Pixelizer.java
new file mode 100644 (file)
index 0000000..43e53bf
--- /dev/null
@@ -0,0 +1,56 @@
+/* Pixelizer.java -- Interface for the target of the rasterizer
+   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;
+
+/**
+ * A pixelizer is responsible for actually manipulating the pixel of a drawing
+ * surface after the scanline conversion process. It receives coverage
+ * information for a scanline and adjusts the surface pixels accordingly.
+ */
+public interface Pixelizer
+{
+
+  /**
+   * Renders the pixel for one scanline at the Y location <code>y</code>
+   * and using the coverage information in <code>sc</code>.
+   *
+   * @param y the scanline Y coordinate
+   * @param sc the coverage information
+   */
+  void renderScanline(int y, ScanlineCoverage sc);
+}
index 9f9d8921f59d797ab83a9bbc9e1033c4a0904916..2693a0b70c789b7fee6f4896a21a239b9bb95607 100644 (file)
@@ -1,5 +1,5 @@
 /* ScanlineConverter.java -- Rasterizes Shapes
-   Copyright (C) 2006 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -40,6 +40,7 @@ package gnu.java.awt.java2d;
 
 import gnu.java.math.Fixed;
 
+import java.awt.RenderingHints;
 import java.awt.Shape;
 import java.awt.geom.AffineTransform;
 import java.awt.geom.PathIterator;
@@ -47,7 +48,7 @@ import java.awt.geom.PathIterator;
 /**
  * Rasterizes {@link Shape} objects on an AbstractGraphics2D.
  */
-final class ScanlineConverter
+public final class ScanlineConverter
 {
 
   /**
@@ -56,10 +57,15 @@ final class ScanlineConverter
   private static int FIXED_DIGITS = 6;
 
   /**
-   * The fixed value for the number 1.
+   * The fixed point constant for the number one.
    */
   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.
    */
@@ -109,6 +115,13 @@ final class ScanlineConverter
 
   private int minY;
   private int maxY;
+  private int minX;
+  private int maxX;
+
+  /**
+   * Holds and manages information about the pixel coverage.
+   */
+  private ScanlineCoverage scanlineCoverage;
 
   /**
    * Create a new ScanlineConverter.
@@ -120,18 +133,23 @@ final class ScanlineConverter
     activeEdges = new ActiveEdges();
     edgePool = new PolyEdge();
     edgePoolLast = edgePool;
+    scanlineCoverage = new ScanlineCoverage();
   }
 
   /**
    * Renders the specified shape using the specified clip and transform.
    *
+   * @param p the pixelizer that receives the coverage information
    * @param shape the shape to render
    * @param clip the clip
    * @param trans the transform
    */
-  void renderShape(AbstractGraphics2D g, Shape shape, Shape clip,
-                   AffineTransform trans, int res)
+  public void renderShape(Pixelizer p, Shape shape, Shape clip,
+                          AffineTransform trans, int res, RenderingHints hints)
   {
+    // TODO: Do something useful with the rendering hints. Like, adjusting
+    // the resolution.
+
     // Prepare resolution and upper bounds.
     clear();
     setResolution(res);
@@ -139,11 +157,12 @@ final class ScanlineConverter
     boolean haveClip = clip != null;
 
     // Add shapes.
-    PathIterator path = shape.getPathIterator(trans, resolution);
+    float flatness = Fixed.floatValue(FIXED_DIGITS, resolution / 2);
+    PathIterator path = shape.getPathIterator(trans, flatness);
     addShape(path, false);
     if (haveClip)
       {
-        path= clip.getPathIterator(trans, resolution);
+        path= clip.getPathIterator(trans, flatness);
         addShape(path, true);
       }
 
@@ -157,11 +176,11 @@ final class ScanlineConverter
       }
 
     int y = upperBounds;
-    int lastIndex = scanlineIndex(y - resolution);
     int index;
     activeEdges.clear();
     // The render loop...
     Scanline scanline = null;
+    int lastRealY = Fixed.intValue(FIXED_DIGITS, y);
     while (y <= maxY)
       {
         // First we put together our list of active edges.
@@ -184,15 +203,16 @@ final class ScanlineConverter
         activeEdges.intersectSortAndPack(FIXED_DIGITS, y + halfStep);
 
         // Ok, now we can perform the actual scanlining.
-        boolean push = lastIndex != index;
-        doScanline(g, y, push, haveClip);
+        int realY = Fixed.intValue(FIXED_DIGITS, y + resolution);
+        boolean push = lastRealY != realY;
+        doScanline(p, y, push, haveClip);
 
         // Remove obsolete active edges.
         //activeEdges.remove(y + halfStep);
-
         // Go on with the next line...
         y += resolution;
-        lastIndex = index;
+        lastRealY = realY;
+
       }
   }
 
@@ -212,17 +232,31 @@ final class ScanlineConverter
           sl.clear();
       }
 
+    // Reset scanline coverage.
+    scanlineCoverage.clear();
+
     // Reset bounds.
     minY = Integer.MAX_VALUE;
     maxY = Integer.MIN_VALUE;
+    minX = Integer.MAX_VALUE;
+    maxX = Integer.MIN_VALUE;
   }
 
   /**
    * Performs the scanlining on the current set of active edges.
+   *
+   * @param p the pixelizer to receive the pixel coverage data
+   * @param y the Y coordinate
+   * @param push true when the scanline is ready to be pushed to the
+   *        pixelizer
+   * @param haveClip true when there's a clip, false otherwise
    */
-  private void doScanline(AbstractGraphics2D g, int y, boolean push,
+  private void doScanline(Pixelizer p, int y, boolean push,
                           boolean haveClip)
   {
+    // First, rewind the scanline coverage.
+    scanlineCoverage.rewind();
+
     // We begin outside the clip and outside the shape. We only draw when
     // we are inside the clip AND inside the shape.
     boolean inClip = ! haveClip;
@@ -238,22 +272,16 @@ final class ScanlineConverter
             int x0 = lastEdge.xIntersection;
             int x1 = edge.xIntersection;
             assert x0 <= x1;
-            if (push)
-              {
-                if (resolution == ONE)
-                  {
-                    // Non-AA rendering.
-                    g.fillScanline(Fixed.intValue(FIXED_DIGITS, x0),
-                                   Fixed.intValue(FIXED_DIGITS, x1 - resolution),
-                                   Fixed.intValue(FIXED_DIGITS, y));
-                  }
-                else
-                  {
-                    // AA rendering.
-                    // FIXME: Implement.
-                    System.err.println("Implement AA rendering.");
-                  }
-              }
+
+            int pix0 = Fixed.intValue(FIXED_DIGITS, x0);
+            int pix1 = Fixed.intValue(FIXED_DIGITS, x1);
+            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);
           }
         if (edge.isClip)
           inClip = ! inClip;
@@ -262,7 +290,15 @@ final class ScanlineConverter
 
         lastEdge = edge;
       }
-  }
+
+    // Push out the whole scanline to the pixelizer.
+    if (push && ! scanlineCoverage.isEmpty())
+      {
+        p.renderScanline(Fixed.intValue(FIXED_DIGITS, y), scanlineCoverage);
+        scanlineCoverage.clear();
+      }
+  } 
+
 
   /**
    * Sets the resolution. A value of 0 rasterizes the shape normally without
@@ -272,9 +308,12 @@ final class ScanlineConverter
    */
   private void setResolution(int res)
   {
+    int scanlinesPerPixel = 1 << res;
     int one = Fixed.fixedValue(FIXED_DIGITS, 1);
-    resolution = one / (1 << res);
+    resolution = one / (scanlinesPerPixel);
     halfStep = resolution / 2;
+
+    scanlineCoverage.setMaxCoverage(scanlinesPerPixel << Y_RESOLUTION);
   }
 
   /**
@@ -309,6 +348,8 @@ final class ScanlineConverter
               startY = lastY = Fixed.fixedValue(FIXED_DIGITS, coords[1]);
               minY = Math.min(startY, minY);
               maxY = Math.max(startY, maxY);
+              minX = Math.min(startX, minX);
+              maxX = Math.max(startX, maxX);
               break;
             case PathIterator.SEG_LINETO:
               int x = Fixed.fixedValue(FIXED_DIGITS, coords[0]);
@@ -318,6 +359,8 @@ final class ScanlineConverter
               lastY = y;
               minY = Math.min(lastY, minY);
               maxY = Math.max(lastY, maxY);
+              minX = Math.min(lastX, minX);
+              maxX = Math.max(lastX, maxX);
               break;
             case PathIterator.SEG_CLOSE:
               edgePoolAdd(lastX, lastY, startX, startY, clip);
@@ -371,7 +414,7 @@ final class ScanlineConverter
   {
     int val1 = Fixed.div(FIXED_DIGITS, y, resolution);
     int rounded = Fixed.round(FIXED_DIGITS, val1);
-    return Fixed.div(FIXED_DIGITS, rounded, resolution);
+    return Fixed.mul(FIXED_DIGITS, rounded, resolution);
   }
 
   /**
diff --git a/libjava/classpath/gnu/java/awt/java2d/ScanlineCoverage.java b/libjava/classpath/gnu/java/awt/java2d/ScanlineCoverage.java
new file mode 100644 (file)
index 0000000..6db7fb0
--- /dev/null
@@ -0,0 +1,630 @@
+/* ScanlineCoverage.java -- Manages coverage information for a scanline
+   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;
+
+/**
+ * Stores and handles the pixel converage for a scanline. The pixel coverage
+ * is stored as sorted list of {@linke Covergage} entries, 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 quickly.
+ */
+public final class ScanlineCoverage
+{
+
+  /**
+   * Iterates over the coverage list and calculates the actual coverage
+   * ranges on a scanline.
+   */
+  public final class Iterator
+  {
+    /**
+     * This instance is reused in the iteration.
+     */
+    private Range range;
+
+    /**
+     * The pointer to the current item in the iteration.
+     */
+    private Coverage currentItem;
+
+    /**
+     * The current coverage value.
+     */
+    private int currentCoverage;
+
+    /**
+     * True when the current pixel coverage has already been handled, false
+     * otherwise.
+     */
+    private boolean handledPixelCoverage;
+
+    /**
+     * Creates a new CoverageIterator.
+     */
+    Iterator()
+    {
+      range = new Range();
+    }
+
+    /**
+     * Returns the next coverage range on the scanline. The returned object
+     * will always be the same object, but with different values. Keep that
+     * in mind when dealing with this object.
+     *
+     * @return the next coverage range on the scanline
+     */
+    public Range next()
+    {
+      // TODO: Lump together the single-pixel coverage and the
+      // between-pixel coverage when the pixel coverage delta is 0.
+      if (handledPixelCoverage == false)
+        {
+          // Handle single pixel coverage.
+          range.setXPos(currentItem.xPos);
+          range.setLength(1);
+          range.setCoverage(currentCoverage + currentItem.pixelCoverage);
+          handledPixelCoverage = true;
+        }
+      else
+        {
+          // Handle pixel span coverage.
+          currentCoverage += currentItem.covDelta;
+          range.setCoverage(currentCoverage);
+          range.setXPos(currentItem.xPos + 1);
+          currentItem = currentItem.next;
+          range.setLength(currentItem.xPos - range.xPos);
+          handledPixelCoverage = false;
+        }
+      return range;
+    }
+
+    /**
+     * Returns {@ true} when there are more coverage ranges to iterate,
+     * {@ false} otherwise.
+     *
+     * @return {@ true} when there are more coverage ranges to iterate,
+     *         {@ false} otherwise
+     */
+    public boolean hasNext()
+    {
+      boolean hasNext;
+      if (currentItem != null && handledPixelCoverage == false)
+        {
+          // We have at least one more coverage item when there's a pixel
+          // coverage piece left.
+          hasNext = true;
+        }
+      else if (currentItem == null || currentItem.next == null
+          || currentItem.next == last)
+        {
+          hasNext = false;
+        }
+      else
+        {
+          hasNext = true;
+        }
+      return hasNext;
+    }
+
+    /**
+     * Resets this iterator to the start of the list.
+     */
+    void reset()
+    {
+      currentItem = head;
+      currentCoverage = 0;
+      handledPixelCoverage = false;
+    }
+  }
+
+  /**
+   * 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
+  {
+    /**
+     * The X position on the scanline, in pixels.
+     */
+    private int xPos;
+
+    /**
+     * The length of the range, in pixels.
+     */
+    private int length;
+
+    /**
+     * The actual coverage. The relation depends on
+     * {@link ScanlineCoverage#maxCoverage}.
+     */
+    private int coverage;
+
+    /**
+     * Creates a new CoverageRange object.
+     */
+    Range()
+    {
+      // Nothing to do. The values get initialized in the corresponding
+      // setters.
+    }
+
+    /**
+     * Sets the X start position (left) on the scanline. This value is
+     * considered to be in pixels and device space.
+     *
+     * @param x the x position
+     */
+    void setXPos(int x)
+    {
+      xPos = x;
+    }
+
+    /**
+     * Returns the X start position (left) on the scanline. This value
+     * is considered to be in pixels and device space.
+     * 
+     * @return the X position on the scanline
+     */
+    public int getXPos()
+    {
+      return xPos;
+    }
+
+    /**
+     * Sets the length of the pixel range. This is in pixel units.
+     *
+     * @param l the length of the range
+     */
+    void setLength(int l)
+    {
+      length = l;
+    }
+
+    /**
+     * Returns the length of the range in pixel units.
+     *
+     * @return the length of the range in pixel units
+     */
+    public int getLength()
+    {
+      return length;
+    }
+
+    /**
+     * Returns the first X position after the range.
+     *
+     * @return the first X position after the range
+     */
+    public int getXPosEnd()
+    {
+      return xPos + length;
+    }
+
+    /**
+     * Sets the coverage of the pixel range. The relation of that value
+     * depends on {@link ScanlineCoverage#maxCoverage}.
+     *
+     * @param cov the coverage value for the pixel range
+     */
+    void setCoverage(int cov)
+    {
+      coverage = cov;
+    }
+
+    /**
+     * Returns the coverage of the pixel range. The relation of this value
+     * depends on {@link ScanlineCoverage#getMaxCoverage()}.
+     *
+     * @return the coverage of the pixel range
+     */
+    public int getCoverage()
+    {
+      return coverage;
+    }
+
+    /**
+     * Returns a string representation.
+     */
+    public String toString()
+    {
+      return "Coverage range: xPos=" + xPos + ", length=" + length
+             + ", coverage: " + coverage;
+    }
+  }
+
+  /**
+   * One bucket in the list.
+   */
+  private static final class Coverage
+  {
+    /**
+     * The X coordinate on the scanline to which this bucket belongs.
+     */
+    int xPos;
+
+    /**
+     * The coverage delta from the pixel at xPos to xPos + 1.
+     */
+    int covDelta;
+
+    /**
+     * The delta for the pixel at xPos. This is added to the pixel at xPos,
+     * but not to the following pixel.
+     */
+    int pixelCoverage;
+
+    /**
+     * Implements a linked list. This points to the next element of the list.
+     */
+    Coverage next;
+
+    /**
+     * Returns the X coordinate for this entry.
+     *
+     * @return the X coordinate for this entry
+     */
+    public int getXPos()
+    {
+      return xPos;
+    }
+
+    /**
+     * Returns the coverage delta for this entry.
+     *
+     * @return the coverage delta for this entry
+     */
+    public int getCoverageDelta()
+    {
+      return covDelta;
+    }
+
+    /**
+     * Returns a string representation.
+     *
+     * @return a string representation
+     */
+    public String toString()
+    {
+      return "Coverage: xPos: " + xPos + ", covDelta: " + covDelta;
+    }
+
+    /**
+     * Returns a string representation of this entry and all the following
+     * in the linked list.
+     *
+     * @return a string representation of this entry and all the following
+     *         in the linked list
+     */
+    public String list()
+    {
+      String str = toString();
+      if (next != null)
+        str = str + " --> " + next.list();
+      return str;
+    }
+  }
+
+  /**
+   * The head of the sorted list of buckets.
+   */
+  private Coverage 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 Coverage current;
+
+  /**
+   * The item that is before current in the list.
+   */
+  private Coverage currentPrev;
+
+  /**
+   * 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 Coverage last;
+
+  /**
+   * The last valid entry.
+   */
+  private Coverage lastPrev;
+
+  /**
+   * The minimum X coordinate of this scanline.
+   */
+  private int minX;
+
+  /**
+   * The maximum X coordinate of this scanline.
+   */
+  private int maxX;
+
+  /**
+   * The maximum coverage value.
+   */
+  private int maxCoverage;
+
+  /**
+   * The iterator over the ranges of this scanline.
+   */
+  private Iterator iterator;
+
+  /**
+   * Creates a new ScanlineCoverage instance.
+   */
+  public ScanlineCoverage()
+  {
+    iterator = new Iterator();
+  }
+
+  /**
+   * 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.
+   */
+  public void rewind()
+  {
+    current = head;
+    currentPrev = null;
+  }
+
+  /**
+   * 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.
+   */
+  public void clear()
+  {
+    last = head;
+    lastPrev = null;
+    current = head;
+    currentPrev = null;
+    minX = Integer.MAX_VALUE;
+    maxX = Integer.MIN_VALUE;
+  }
+
+  /**
+   * This adds the specified coverage to the pixel at the specified
+   * X position.
+   *
+   * @param x the X position
+   * @param xc the x coverage
+   * @param yc the y coverage
+   */
+  public void add(int x, int xc, int yc)
+  {
+    Coverage bucket = findOrInsert(x);
+    bucket.covDelta += xc;
+    bucket.pixelCoverage += yc;
+    minX = Math.min(minX, x);
+    maxX = Math.max(maxX, x);
+  }
+
+  /**
+   * Returns the maximum coverage value for the scanline.
+   *
+   * @return the maximum coverage value for the scanline
+   */  
+  public int getMaxCoverage()
+  {
+    return maxCoverage;
+  }
+
+  /**
+   * Sets the maximum coverage value for the scanline.
+   *
+   * @param maxCov the maximum coverage value for the scanline
+   */
+  void setMaxCoverage(int maxCov)
+  {
+    maxCoverage = maxCov;
+  }
+
+  /**
+   * Returns the maximum X coordinate of the current scanline.
+   *
+   * @return the maximum X coordinate of the current scanline
+   */
+  public int getMaxX()
+  {
+    return maxX;
+  }
+
+  /**
+   * Returns the minimum X coordinate of the current scanline.
+   *
+   * @return the minimum X coordinate of the current scanline
+   */
+  public int getMinX()
+  {
+    return minX;
+  }
+
+  /**
+   * 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 Coverage findOrInsert(int x)
+  {
+    // First search for a matching bucket.
+    if (head == null)
+      {
+        // Special case: the list is still empty.
+        // Testpoint 1.
+        head = new Coverage();
+        head.xPos = x;
+        current = head;
+        currentPrev = null;
+        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 usually not more then 1 or 2 buckets away
+    // from the one we're looking for.
+    Coverage match = current;
+    Coverage prev = currentPrev;
+    while (match != last && match.xPos < x)
+      {
+        prev = match;
+        match = match.next;
+      }
+
+    // At this point we have either found an entry with xPos >= x, or reached
+    // the end of the list (match == last || match == null).
+    if (match == null)
+      {
+        // End of the list. No cached items to reuse.
+        // Testpoint 2.
+        match = new Coverage();
+        match.xPos = x;
+        if (prev != null)
+          prev.next = match;
+        current = match;
+        currentPrev = prev;
+        return match;
+      }
+    else if (match == last)
+      {
+        // End of the list. Reuse this item. Expand list.
+        // Testpoint 3.
+        last = match.next;
+        lastPrev = match;
+        match.xPos = x;
+        match.covDelta = 0;
+        match.pixelCoverage = 0;
+        // Keep link to last element or null, indicating the end of the list.
+        current = match;
+        currentPrev = prev;
+        return match;
+      }
+
+    if (x == match.xPos)
+      {
+        // Special case: We have another coverage entry at the same location
+        // as an already existing entry. Return this.
+        // Testpoint 4.
+        current = match;
+        currentPrev = prev;
+        return match;
+      }
+    else // x <= match.xPos
+      {
+        assert (x <= match.xPos);
+        assert (prev == null ||x > prev.xPos);
+
+        // Create new entry, or reuse existing one.
+        Coverage cov;
+        if (last != null)
+          {
+            // Testpoint 5.
+            cov = last;
+            last = cov.next;
+            lastPrev.next = last;
+          }
+        else
+          {
+            // Testpoint 6.
+            cov = new Coverage();
+          }
+        
+        cov.xPos = x;
+        cov.covDelta = 0;
+        cov.pixelCoverage = 0;
+
+        // Insert this item in the list.
+        if (prev != null)
+          {
+            // Testpoint 5 & 6.
+            prev.next = cov;
+            cov.next = match;
+            current = cov;
+            currentPrev = prev;
+          }
+        else
+          {
+            // Testpoint 7.
+            assert (match == head);
+            // Insert at head.
+            head = cov;
+            head.next = match;
+            current = head;
+            currentPrev = null;
+          }
+        return cov;
+      }
+  }
+
+  /**
+   * (Re-)Starts iterating the coverage values for the scanline.
+   * Use the returned iterator to get the consecutive coverage ranges.
+   *
+   * @return the iterator
+   */
+  public Iterator iterate()
+  {
+    iterator.reset();
+    return iterator;
+  }
+
+  /**
+   * Returns {@ true} if this object has no entries for the current scanline,
+   * {@ false} otherwise.
+   *
+   * @return {@ true} if this object has no entries for the current scanline,
+   *         {@ false} otherwise
+   */
+  public boolean isEmpty()
+  {
+    return head == null || head == last
+           || head.next == null || head.next == last;
+  }
+
+}
index 034b53cadd3c822a088bf1f3a2dda627cd1b9b49..89a9ac4ab84bac2422db95185106112bd88ffaf2 100644 (file)
@@ -42,6 +42,7 @@ import java.awt.Polygon;
 import java.awt.Rectangle;
 import java.awt.geom.Arc2D;
 import java.awt.geom.Ellipse2D;
+import java.awt.geom.GeneralPath;
 import java.awt.geom.Line2D;
 import java.awt.geom.RoundRectangle2D;
 
@@ -82,4 +83,8 @@ public class ShapeCache
    */
   public Polygon polygon;
 
+  /**
+   * A cached polyline.
+   */
+  public GeneralPath polyline;
 }
index 60fde2557aca4b158e530156fcfd03ef6ce9f1fa..e43e5f284ed8723a7a6ff8d4f935356585a8c22a 100644 (file)
@@ -644,7 +644,7 @@ public abstract class ClasspathFontPeer
    * be ignored.
    */
 
-  public abstract boolean canDisplay (Font font, char c);
+  public abstract boolean canDisplay (Font font, int c);
 
   /** 
    * Implementation of {@link Font#canDisplay(String)},
index f9a7bac8ee62eb866c710691d359a92b717137af..bf40bf379fa11a1e0251874290e0db234915723d 100644 (file)
@@ -449,4 +449,13 @@ public class GLightweightPeer
   {
     // Nothing to do here for lightweights.
   }
+
+  public boolean requestFocus(Component lightweightChild, boolean temporary,
+                              boolean focusedWindowChangeAllowed,
+                              long time, sun.awt.CausedFocusEvent.Cause cause)
+  {
+    // Always grant focus request.
+    return true;
+  }
+
 }
index 3a386075a696ba975a7e2e33c3b972466ecc3a75..db8acd1cda04c3f4691779db950d181b37b25e8f 100644 (file)
@@ -1726,7 +1726,8 @@ public abstract class CairoGraphics2D extends Graphics2D
                        .equals(RenderingHints.VALUE_TEXT_ANTIALIAS_OFF));
     ignoreAA = true;
     
-    if (gv instanceof FreetypeGlyphVector && alpha == 1.0)
+    if (gv instanceof FreetypeGlyphVector && alpha == 1.0
+        && !((FreetypeGlyphVector)gv).hasTransforms())
       {
         int n = gv.getNumGlyphs ();
         int[] codes = gv.getGlyphCodes (0, n, null);
@@ -2164,4 +2165,4 @@ public abstract class CairoGraphics2D extends Graphics2D
     
     return new Rectangle2D.Double(minX, minY, (maxX - minX), (maxY - minY));
   }
-}
+}
\ No newline at end of file
index e54320697d87774f13ac24dfa7aeb6ba353eabdb..4ce20a30d324c93a3ab282f68c1415c264ec40bb 100644 (file)
@@ -938,4 +938,4 @@ public class ComponentGraphics extends CairoGraphics2D
       unlock();
     }
   }
-}
+}
\ No newline at end of file
index 280f3e6fbcd37a772138394eaa5009c4a7876945..8d6d01ae3170a9e9787445cb79678287426d8721 100644 (file)
@@ -43,6 +43,8 @@ import java.awt.font.FontRenderContext;
 import java.awt.font.GlyphJustificationInfo;
 import java.awt.font.GlyphMetrics;
 import java.awt.font.GlyphVector;
+import java.awt.font.TextAttribute;
+import java.awt.font.TransformAttribute;
 import java.awt.geom.AffineTransform;
 import java.awt.geom.GeneralPath;
 import java.awt.geom.Point2D;
@@ -86,7 +88,10 @@ public class FreetypeGlyphVector extends GlyphVector
   private long[] fontSet = null;
 
   /**
-   * Glyph transforms. (de facto only the translation is used)
+   * Glyph transforms.  Supports all transform operations.
+   * 
+   * The identity transform should not be stored in this array; use a null
+   * instead (will result in performance improvements).
    */
   private AffineTransform[] glyphTransforms;
 
@@ -185,9 +190,12 @@ public class FreetypeGlyphVector extends GlyphVector
     fontSet = new long[nGlyphs];
     glyphPositions = new float[(nGlyphs + 1) * 2];
     glyphTransforms = new AffineTransform[ nGlyphs ];
+    Arrays.fill(glyphTransforms, null);
+    
     for(int i = 0; i < nGlyphs; i++ )
       {
-        glyphTransforms[ i ] = new AffineTransform( gv.glyphTransforms[ i ] );
+        if (gv.glyphTransforms[i] != null)
+          glyphTransforms[ i ] = new AffineTransform(gv.glyphTransforms[i]);
         glyphCodes[i] = gv.glyphCodes[ i ];
       }
     System.arraycopy(gv.glyphPositions, 0, glyphPositions, 0,
@@ -313,6 +321,25 @@ public class FreetypeGlyphVector extends GlyphVector
       }
     glyphPositions[nGlyphs * 2] = x;
     glyphPositions[nGlyphs * 2 + 1] = y;
+    
+    // Apply any transform that may be in the font's attributes
+    TransformAttribute ta;
+    ta = (TransformAttribute)font.getAttributes().get(TextAttribute.TRANSFORM);
+    if (ta != null)
+      {
+        AffineTransform tx = ta.getTransform();
+        
+        // Transform glyph positions
+        tx.transform(glyphPositions, 0, glyphPositions, 0,
+                     glyphPositions.length / 2);
+        
+        // Also store per-glyph scale/shear/rotate (but not translation) 
+        double[] matrix = new double[4];
+        tx.getMatrix(matrix);
+        AffineTransform deltaTx = new AffineTransform(matrix);
+        if (!deltaTx.isIdentity())
+          Arrays.fill(glyphTransforms, deltaTx);
+      }
   }
 
   /**
@@ -375,7 +402,7 @@ public class FreetypeGlyphVector extends GlyphVector
                                     p.getY() + r.getY() + r.getHeight()};
     
     if (glyphTransforms[glyphIndex] != null)
-      glyphTransforms[glyphIndex].transform(bounds, 0, bounds, 0, 4);
+      glyphTransforms[glyphIndex].transform(bounds, 0, bounds, 0, 2);
     
     return new Rectangle2D.Double(bounds[0], bounds[1], bounds[2] - bounds[0],
                                   bounds[3] - bounds[1]);
@@ -473,7 +500,19 @@ public class FreetypeGlyphVector extends GlyphVector
   {
     return glyphTransforms[glyphIndex];
   }
-
+  
+  /**
+   * Checks whether any transform has been set on any glyphs.
+   */
+  protected boolean hasTransforms()
+  {
+    for (int i = 0; i < glyphTransforms.length; i++)
+      if (glyphTransforms[i] != null)
+        return true;
+    
+    return false;
+  }
+  
   /**
    * Returns the visual bounds of a glyph
    * May be off by a pixel or two due to hinting/rasterization.
@@ -570,6 +609,19 @@ public class FreetypeGlyphVector extends GlyphVector
    */
   public void setGlyphTransform(int glyphIndex, AffineTransform newTX)
   {
+    // The identity transform should never be in the glyphTransforms array;
+    // using and checking for nulls can be much faster.
+    if (newTX != null && newTX.isIdentity())
+      newTX = null;
+    
+    // If the old and new transforms are identical, bail
+    if (glyphTransforms[glyphIndex] == null && newTX == null)
+      return;
+    
+    if (newTX != null && newTX.equals(glyphTransforms[glyphIndex]))
+      return;
+    
+    // Invalidate bounds cache and set new transform
     logicalBounds = null;
     glyphTransforms[glyphIndex] = newTX;
   }
index c3c94d8a93528c2d33ac14504539878dd2cf8dbe..95a806ac7eed39d900488d183e40fe5f18091362 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package gnu.java.awt.peer.gtk;
 
+import gnu.classpath.Pointer;
+
 import gnu.java.awt.ClasspathToolkit;
 import gnu.java.awt.peer.ClasspathFontPeer;
 import gnu.java.awt.font.opentype.NameDecoder;
@@ -172,6 +174,14 @@ public class GdkFontPeer extends ClasspathFontPeer
 
   private ByteBuffer nameTable = null;
 
+  /**
+   * The pointer to the native font data.
+   *
+   * This field is manipulated by native code. Don't change or remove
+   * without adjusting the native code.
+   */
+  private Pointer nativeFont;
+
   private native void initState ();
   private native void dispose ();
   private native void setFont (String family, int style, int size);
@@ -351,7 +361,7 @@ public class GdkFontPeer extends ClasspathFontPeer
     return NameDecoder.getName(nameTable, name, locale);
   }
 
-  public boolean canDisplay (Font font, char c)
+  public boolean canDisplay (Font font, int c)
   {
     // FIXME: inquire with pango
     return true;
index bd6daa2d1e50cf289ffe2128ec247e135f44d9a9..67040b82a0f56f402b5204dbda0cee8b361f26b2 100644 (file)
@@ -52,6 +52,8 @@ import java.awt.image.SampleModel;
 import java.awt.image.WritableRaster;
 import java.util.Locale;
 
+import gnu.classpath.Pointer;
+
 public class GdkGraphicsEnvironment extends ClasspathGraphicsEnvironment
 {
   private final int native_state = GtkGenericPeer.getUniqueInteger ();
@@ -59,15 +61,24 @@ public class GdkGraphicsEnvironment extends ClasspathGraphicsEnvironment
   private GdkScreenGraphicsDevice defaultDevice;
   
   private GdkScreenGraphicsDevice[] devices;
-  
+
+  /**
+   * The pointer to the native display resource.
+   *
+   * This field is manipulated by native code. Don't change or remove
+   * without adjusting the native code.
+   */
+  private Pointer display;
+
   static
   {
     System.loadLibrary("gtkpeer");
 
-    initStaticState ();
+    GtkToolkit.initializeGlobalIDs();
+    initIDs();
   }
   
-  static native void initStaticState();
+  private static native void initIDs();
   
   public GdkGraphicsEnvironment ()
   {
index 6f6ea560db70d81ef7970a9edf1ae5bae0e5a241..e52bf050c094cf5d12e5fa46b8fa75d8f32495c7 100644 (file)
@@ -68,6 +68,8 @@ import javax.imageio.spi.ImageWriterSpi;
 import javax.imageio.stream.ImageInputStream;
 import javax.imageio.stream.ImageOutputStream;
 
+import gnu.classpath.Pointer;
+
 public class GdkPixbufDecoder extends gnu.java.awt.image.ImageDecoder
 {
   static 
@@ -94,6 +96,14 @@ public class GdkPixbufDecoder extends gnu.java.awt.image.ImageDecoder
   // the current set of ImageConsumers for this decoder
   Vector curr;
 
+  /**
+   * The pointer to the native pixbuf loader.
+   *
+   * This field is manipulated by native code. Don't change or remove
+   * without adjusting the native code.
+   */
+  private Pointer nativeDecoder;
+
   // interface to GdkPixbuf
   // These native functions should be called with the pixbufLock held.
   native void initState ();
index 6d0218d057a13c41c8965a8c55cd30d659e633a3..d3e9774daa094564d31b8cfae4fafe090f264d81 100644 (file)
@@ -91,4 +91,9 @@ public class GdkRobotPeer implements RobotPeer
 
     return pixels;
   }
+
+  public void dispose()
+  {
+    // Nothing to do here yet.
+  }
 }
index a69c6f0659e89b71a6ebf36f7550353a81dccf3f..7ef4645a25740504f3a9165ea81c93cb75cd1634 100644 (file)
@@ -46,6 +46,8 @@ import java.awt.Rectangle;
 import java.awt.Window;
 import java.util.ArrayList;
 
+import gnu.classpath.Pointer;
+
 class GdkScreenGraphicsDevice extends GraphicsDevice
 {
   private final int native_state = GtkGenericPeer.getUniqueInteger ();
@@ -85,15 +87,23 @@ class GdkScreenGraphicsDevice extends GraphicsDevice
    * method must be called. 
    */
   DisplayMode fixedDisplayMode;
-  
+
+  /**
+   * The pointer to the native screen resource.
+   *
+   * This field is manipulated by native code. Don't change or remove
+   * without adjusting the native code.
+   */
+  private Pointer screen;
+
   static
   {
     System.loadLibrary("gtkpeer");
-
-    initStaticState ();
+    GtkToolkit.initializeGlobalIDs();
+    initIDs();
   }
   
-  static native void initStaticState();
+  static native void initIDs();
   
   GdkScreenGraphicsDevice (GdkGraphicsEnvironment e)
   {
index a7ae8e17f2b58705c19ac703f635842b2ff0d014..16c20ee253f939e926da49ccc226022cf8ce1d66 100644 (file)
@@ -616,11 +616,18 @@ public class GtkComponentPeer extends GtkGenericPeer
     setVisible (true);
   }
 
-  protected void postMouseEvent(int id, long when, int mods, int x, int y, 
+  protected void postMouseEvent(int id, long when, int mods, int x, int y,
                                 int clickCount, boolean popupTrigger) 
   {
-    q().postEvent(new MouseEvent(awtComponent, id, when, mods, x, y, 
-                                 clickCount, popupTrigger));
+    // It is important to do the getLocationOnScreen() here, instead
+    // of using the old MouseEvent constructors, because
+    // Component.getLocationOnScreen() locks on the AWT lock, which can
+    // trigger a deadlock. You don't want this.
+    Point locOnScreen = getLocationOnScreen();
+    q().postEvent(new MouseEvent(awtComponent, id, when, mods, x, y,
+                                 locOnScreen.x + x, locOnScreen.y + y,
+                                 clickCount, popupTrigger,
+                                 MouseEvent.NOBUTTON));
   }
 
   /**
@@ -899,4 +906,14 @@ public class GtkComponentPeer extends GtkGenericPeer
     // FIXME: implement
  
   }
+
+  public boolean requestFocus(Component lightweightChild, boolean temporary,
+                              boolean focusedWindowChangeAllowed,
+                              long time, sun.awt.CausedFocusEvent.Cause cause)
+  {
+    // TODO: Implement this properly and remove the other requestFocus()
+    // methods.
+    return true;
+  }
+
 }
index b35be52274646896b3759f0d0209eed4230b57aa..4278a4579e4c5c5493973e9befb41b528f004d7d 100644 (file)
@@ -244,6 +244,13 @@ public class GtkFramePeer extends GtkWindowPeer
     // TODO Auto-generated method stub
     return false;
   }
+
+  public Rectangle getBoundsPrivate()
+  {
+    // TODO: Implement this properly.
+    throw new InternalError("Not yet implemented");
+  }
+
 }
 
 
index 468c46dc4af7c7c8b18521d2ca872fa39672989e..8d63699eab8c3a8ad3404928821729ed1a03a8d3 100644 (file)
@@ -43,6 +43,8 @@ import java.awt.Font;
 import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
 
+import gnu.classpath.Pointer;
+
 public class GtkGenericPeer
 {
   // Used by Native State Association (NSA) functions to map
@@ -55,6 +57,40 @@ public class GtkGenericPeer
   // The widget or other java-side object we wrap.
   protected final Object awtWidget;
 
+  /**
+   * The pointer to the native GTK widget.
+   *
+   * This field is manipulated by native code. Don't change or remove
+   * without adjusting the native code.
+   */
+  private Pointer widget;
+
+  /**
+   * The pointer to the global reference to this object. The native
+   * code creates a JNI global reference of the peer object to be able
+   * to pass it to the event callbacks. It gets stored here, so that
+   * we can later delete it in the dispose() method.
+   *
+   * This field is manipulated by native code. Don't change or remove
+   * without adjusting the native code.
+   */
+  private Pointer globalRef;
+
+  /**
+   * We initialize the field IDs that are used by native code here because
+   * these remain valid until a class gets unloaded.
+   */
+  static
+  {
+    GtkToolkit.initializeGlobalIDs();
+    initIDs();
+  }
+
+  /**
+   * Initializes the field IDs that are used by the native code.
+   */
+  private static native void initIDs();
+
   /**
    * Dispose of our native state.  Calls gtk_widget_destroy on the
    * native widget and removes the awtWidget from the native state
index df18d39c9d28735f78181e2644447aa1e4cd2367..dc9c7155e6edd9e831eb98a8700e1d8df71b414c 100644 (file)
@@ -144,10 +144,39 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit
 
   static native void gtkQuit();
 
+  /**
+   * Initializes field IDs that are used by native code.
+   */
+  private static native void initIDs();
+
+  /**
+   * True when the field IDs are already initialized, false otherwise.
+   */
+  private static boolean initializedGlobalIDs = false;
+
+  /**
+   * Initializes some global fieldIDs for use in the native code. This is
+   * called by a couple of classes in the GTK peers to ensure that
+   * some necessary stuff is loaded.
+   */
+  static synchronized void initializeGlobalIDs()
+  {
+    if (! initializedGlobalIDs)
+      {
+        initIDs();
+        initializedGlobalIDs = true;
+      }
+  }
+
   static
   {
     System.loadLibrary("gtkpeer");
-      
+
+    /**
+     * Gotta do that first.
+     */
+    initializeGlobalIDs();
+
     int portableNativeSync;     
     String portNatSyncProp = 
       System.getProperty("gnu.classpath.awt.gtk.portable.native.sync");
@@ -716,4 +745,17 @@ public class GtkToolkit extends gnu.java.awt.ClasspathToolkit
 
   public native int getMouseNumberOfButtons();
 
+  @Override
+  public boolean isModalExclusionTypeSupported
+  (Dialog.ModalExclusionType modalExclusionType)
+  {
+    return false;
+  }
+
+  @Override
+  public boolean isModalityTypeSupported(Dialog.ModalityType modalityType)
+  {
+    return false;
+  }
+
 } // class GtkToolkit
index 1451dd93354a9ebc0db8b09b4364051ab148b633..d8054150dea551219c3fa0a2dc0a77bf2be267c5 100644 (file)
@@ -398,4 +398,29 @@ public class GtkWindowPeer extends GtkContainerPeer
   {
     return new Rectangle(x, y, width, height);
   }
+
+  public void updateIconImages()
+  {
+    // TODO: Implement properly.
+  }
+
+  public void updateMinimumSize()
+  {
+    // TODO: Implement properly.
+  }
+
+  public void setModalBlocked(java.awt.Dialog d, boolean b)
+  {
+    // TODO: Implement properly.
+  }
+
+  public void updateFocusableWindowState()
+  {
+    // TODO: Implement properly.
+  }
+
+  public void setAlwaysOnTop(boolean b)
+  {
+    // TODO: Implement properly.
+  }
 }
index 88438862b34a9774c90da7d35a2e9c1aba639d6f..ad5cd5ecdf262e23e0866f5f5dbcc30a0c1bc19e 100644 (file)
@@ -86,7 +86,17 @@ public class VolatileImageGraphics extends ComponentGraphics
 
   public GraphicsConfiguration getDeviceConfiguration()
   {
-    return owner.component.getGraphicsConfiguration();
+    GraphicsConfiguration conf;
+    if (owner.component != null)
+      {
+        conf = owner.component.getGraphicsConfiguration();
+      }
+    else
+      {
+        return java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment()
+          .getDefaultScreenDevice().getDefaultConfiguration();
+      }
+    return conf;
   }
 
   public Graphics create()
index 96798c9e9d8dcce9ca30307042fd59305e1be0d4..58b5f333427ae7b686d49e0c09513bc641210438 100644 (file)
@@ -368,4 +368,18 @@ public class HeadlessToolkit
     return graphicsEnv;
   }
 
+  @Override
+  public boolean isModalExclusionTypeSupported
+  (Dialog.ModalExclusionType modalExclusionType)
+  {
+    return false;
+  }
+
+  @Override
+  public boolean isModalityTypeSupported(Dialog.ModalityType modalityType)
+  {
+    return false;
+  }
+
+
 }
index 4d7b58c4d872ff5bd85169dd62674675c75fcecb..334f5908825059fda44a399b712ff78ff7eb92b4 100644 (file)
@@ -821,4 +821,14 @@ public class QtComponentPeer extends NativeWrapper implements ComponentPeer
   {
     // TODO Auto-generated method stub
   }
+
+  public boolean requestFocus(Component lightweightChild, boolean temporary,
+                              boolean focusedWindowChangeAllowed,
+                              long time, sun.awt.CausedFocusEvent.Cause cause)
+  {
+    // TODO: Implement this properly and remove the other requestFocus()
+    // methods.
+    return true;
+  }
+
 }
index 2438fcc3282ebc04503e45d42305fff0395cdd89..3b182b5eada6a6a7a276c6156fb1d13d900834d6 100644 (file)
@@ -94,7 +94,7 @@ public class QtFontMetrics extends FontMetrics
 
   // ****************** Package private ***************************
   
-  native boolean canDisplay( char c );
+  native boolean canDisplay( int c );
 
   // ****************** Public methods ****************************
 
index 6ffe3f691761c01f231f4985176eca2a3ddba57e..bd16daf28cbefb265f38c919fc5a5f12a1e184fb 100644 (file)
@@ -98,7 +98,7 @@ public class QtFontPeer extends ClasspathFontPeer
 
   // ****************** ClasspathFontPeer Methods.
 
-  public boolean canDisplay (Font font, char c)
+  public boolean canDisplay (Font font, int c)
   {
     return metrics.canDisplay( c );
   }
index b2c6a5921cb2d59e8dc349a379163296075d8c63..e3b578933ac3ca0e5fc98a656dad2497d27dd25f 100644 (file)
@@ -155,4 +155,10 @@ public class QtFramePeer extends QtWindowPeer implements FramePeer
     return false;
   }
 
+  public Rectangle getBoundsPrivate()
+  {
+    // TODO: Implement this properly.
+    throw new InternalError("Not yet implemented");
+  }
+
 }
index 9b53b278b26df4a84602700173060b2421cd80cf..4cea976ac22512c3fea6e7360c98395766cde11e 100644 (file)
@@ -452,4 +452,19 @@ public class QtToolkit extends ClasspathToolkit
     //    return new QtEmbeddedWindowPeer( this, w );
     return null;
   }
+
+  @Override
+  public boolean isModalExclusionTypeSupported
+  (Dialog.ModalExclusionType modalExclusionType)
+  {
+    return false;
+  }
+
+  @Override
+  public boolean isModalityTypeSupported(Dialog.ModalityType modalityType)
+  {
+    return false;
+  }
+
+
 }
index 7baf8e6ebea0884426479ec575815a6abc07b528..e0a9e8c55d9b64c4b2001fc203ed990d11dbd524 100644 (file)
@@ -77,4 +77,29 @@ public class QtWindowPeer extends QtContainerPeer implements WindowPeer
     return false;
   }
 
+  public void updateIconImages()
+  {
+    // TODO: Implement properly.
+  }
+
+  public void updateMinimumSize()
+  {
+    // TODO: Implement properly.
+  }
+
+  public void setModalBlocked(java.awt.Dialog d, boolean b)
+  {
+    // TODO: Implement properly.
+  }
+
+  public void updateFocusableWindowState()
+  {
+    // TODO: Implement properly.
+  }
+
+  public void setAlwaysOnTop(boolean b)
+  {
+    // TODO: Implement properly.
+  }
+
 }
index 531d6f2db3be82e3822256f03e1375c28d29d4fb..192d612ee79c7a8e91ef12664327aebc044d6911 100644 (file)
@@ -1,5 +1,5 @@
 /* SwingButtonPeer.java -- A Swing based peer for AWT buttons
-   Copyright (C)  2006  Free Software Foundation, Inc.
+   Copyright (C)  2006, 2007  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,6 +44,7 @@ import java.awt.Image;
 import java.awt.Point;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
+import java.awt.event.FocusEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
 import java.awt.peer.ButtonPeer;
@@ -70,12 +71,12 @@ public class SwingButtonPeer
     extends JButton
     implements SwingComponent
   {
-     Button button;
+    Button button;
 
-     SwingButton(Button button)
-     {
-       this.button = button;
-     }
+    SwingButton(Button button)
+    {
+      this.button = button;
+    }
 
     /**
      * Overridden so that this method returns the correct value even without a
@@ -184,6 +185,26 @@ public class SwingButtonPeer
         par = button.getParent();
       return par;
     }
+    
+    /**
+     * Handles focus events by forwarding it to
+     * <code>processFocusEvent()</code>.
+     *
+     * @param ev the Focus event
+     */
+    public void handleFocusEvent(FocusEvent ev)
+    {
+      processFocusEvent(ev);
+    }
+
+    public void requestFocus() {
+        SwingButtonPeer.this.requestFocus(awtComponent, false, true, 0);
+    }
+
+    public boolean requestFocus(boolean temporary) {
+        return SwingButtonPeer.this.requestFocus(awtComponent, temporary,
+                                                 true, 0);
+    }
   }
 
   /**
diff --git a/libjava/classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java b/libjava/classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java
new file mode 100755 (executable)
index 0000000..a8e3cb0
--- /dev/null
@@ -0,0 +1,261 @@
+/* SwingCheckboxPeer.java -- A Swing based peer for AWT checkboxes
+   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.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;
+import java.awt.event.KeyEvent;
+import java.awt.event.MouseEvent;
+import java.awt.peer.CheckboxPeer;
+
+import javax.swing.JCheckBox;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JToggleButton;
+
+/**
+ * A CheckboxPeer implementation that is backed by the Swing JCheckBox.
+ */
+public class SwingCheckboxPeer extends SwingComponentPeer implements
+        CheckboxPeer {
+
+  /**
+   * A spezialized Swing checkbox used to paint the checkbox for the
+   * AWT checkbox. 
+   */
+  private class SwingCheckbox
+    extends JCheckBox
+    implements SwingComponent
+  {
+    Checkbox checkbox;
+
+    SwingCheckbox(Checkbox checkbox)
+    {
+      this.checkbox = checkbox;
+    }
+
+    /**
+     * Returns this checkbox.
+     *
+     * @return <code>this</code>
+     */
+    public JComponent getJComponent()
+    {
+      return this;
+    }
+
+    /**
+     * Handles mouse events by forwarding it to
+     * <code>processMouseEvent()</code>.
+     *
+     * @param ev the mouse event
+     */
+    public void handleMouseEvent(MouseEvent ev)
+    {
+      ev.setSource(this);
+      processMouseEvent(ev);
+    }
+
+    /**
+     * Handles mouse motion events by forwarding it to
+     * <code>processMouseMotionEvent()</code>.
+     *
+     * @param ev the mouse motion event
+     */
+    public void handleMouseMotionEvent(MouseEvent ev)
+    {
+      ev.setSource(this);
+      processMouseMotionEvent(ev);
+    }
+
+    /**
+     * Handles key events by forwarding it to <code>processKeyEvent()</code>.
+     *
+     * @param ev the mouse event
+     */
+    public void handleKeyEvent(KeyEvent ev)
+    {
+      ev.setSource(this);
+      processKeyEvent(ev);
+    }
+
+    /**
+     * Handles focus events by forwarding it to
+     * <code>processFocusEvent()</code>.
+     *
+     * @param ev the Focus event
+     */
+    public void handleFocusEvent(FocusEvent ev)
+    {
+      processFocusEvent(ev);
+    }
+
+    /**
+     * Overridden so that this method returns the correct value even without a
+     * peer.
+     *
+     * @return the screen location of the button
+     */
+    public Point getLocationOnScreen()
+    {
+      return SwingCheckboxPeer.this.getLocationOnScreen();
+    }
+
+    /**
+     * Overridden so that the isShowing method returns the correct value
+     * for the swing button, even if it has no peer on its own.
+     *
+     * @return <code>true</code> if the button is currently showing,
+     *         <code>false</code> otherwise
+     */
+    public boolean isShowing()
+    {
+      boolean retVal = false;
+      if (checkbox != null)
+        retVal = checkbox.isShowing();
+      return retVal;
+    }
+
+    /**
+     * Overridden, so that the Swing button can create an Image without its
+     * own peer.
+     *
+     * @param w the width of the image
+     * @param h the height of the image
+     *
+     * @return an image
+     */
+    public Image createImage(int w, int h)
+    {
+      return SwingCheckboxPeer.this.createImage(w, h);
+    }
+
+    public Graphics getGraphics()
+    {
+      return SwingCheckboxPeer.this.getGraphics();
+    }
+
+    public Container getParent()
+    {
+      Container par = null;
+      if (checkbox != null)
+        par = checkbox.getParent();
+      return par;
+    }
+
+    public void requestFocus() {
+      SwingCheckboxPeer.this.requestFocus(awtComponent, false, true, 0);
+    }
+
+    public boolean requestFocus(boolean temporary) {
+      return SwingCheckboxPeer.this.requestFocus(awtComponent, temporary,
+                                                 true, 0);
+    }
+  }
+
+  /**
+   * Listens for ActionEvents on the Swing button and triggers corresponding
+   * ActionEvents on the AWT button.
+   */
+  class SwingCheckboxListener implements ItemListener
+  {
+    Checkbox awtCheckbox;
+
+    SwingCheckboxListener(Checkbox checkbox)
+    {
+      awtCheckbox = checkbox;
+    }
+
+    /**
+     * Receives notification when an action was performend on the button.
+     *
+     * @param event the action event
+     */ 
+    public void itemStateChanged(ItemEvent event)
+    {
+      awtCheckbox.setState(event.getStateChange()==ItemEvent.SELECTED);
+      ItemListener[] l = awtCheckbox.getItemListeners();
+      if (l.length == 0)
+        return;
+      ItemEvent ev = new ItemEvent(awtCheckbox, ItemEvent.ITEM_STATE_CHANGED,
+                                   awtCheckbox, event.getStateChange());
+      for (int i = 0; i < l.length; ++i)
+        l[i].itemStateChanged(ev);
+    }
+  }
+    
+  /**
+   * Creates a new SwingCheckboxPeer instance.
+   */
+  public SwingCheckboxPeer(Checkbox checkbox)
+  {
+    SwingCheckbox swingCheckbox = new SwingCheckbox(checkbox);
+    swingCheckbox.addItemListener(new SwingCheckboxListener(checkbox));
+
+    init(checkbox, swingCheckbox);
+    setLabel(checkbox.getLabel());
+    setState(checkbox.getState());
+  }
+
+  public void setCheckboxGroup(CheckboxGroup group)
+  {
+    // TODO: Implement this.
+  }
+
+  public void setLabel(String label)
+  {
+    ((JToggleButton) swingComponent).setText(label);
+  }
+
+  public void setState(boolean state)
+  {
+    ((JToggleButton) swingComponent).setSelected(state);
+  }
+
+}
index 04ca7294f78d8fd4f057a77be4155b9085b10617..d22f55d6f196fd786f0a2a673d45709fb12c445b 100644 (file)
@@ -37,6 +37,7 @@ exception statement from your version. */
 
 package gnu.java.awt.peer.swing;
 
+import java.awt.event.FocusEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
 
@@ -86,4 +87,13 @@ public interface SwingComponent
    * @param ev the key event
    */
   void handleKeyEvent(KeyEvent ev);
+  
+  /**
+   * Handles a focus event. This is usually forwarded to
+   * {@link Component#processFocusEvent(FocusEvent)} of the swing
+   * component.
+   *
+   * @param ev the focus event
+   */
+  void handleFocusEvent(FocusEvent ev);
 }
index bfa14dddee3f3620c96f0e5e63de91776a4e286e..71a7bac4d002f17072f894f4f12a3ec440662b02 100644 (file)
@@ -1,5 +1,5 @@
 /* SwingComponentPeer.java -- An abstract base class for Swing based peers
-   Copyright (C)  2006  Free Software Foundation, Inc.
+   Copyright (C)  2006, 2007  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -45,6 +45,7 @@ import java.awt.Component;
 import java.awt.Container;
 import java.awt.Cursor;
 import java.awt.Dimension;
+import java.awt.EventQueue;
 import java.awt.Font;
 import java.awt.FontMetrics;
 import java.awt.Graphics;
@@ -54,6 +55,7 @@ import java.awt.Point;
 import java.awt.Rectangle;
 import java.awt.Toolkit;
 import java.awt.BufferCapabilities.FlipContents;
+import java.awt.event.FocusEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
 import java.awt.event.PaintEvent;
@@ -349,12 +351,7 @@ public class SwingComponentPeer
    */
   public Dimension getMinimumSize()
   {
-    Dimension retVal;
-    if (swingComponent != null)
-      retVal = swingComponent.getJComponent().getMinimumSize();
-    else
-      retVal = new Dimension(0, 0);
-    return retVal;
+    return minimumSize();
   }
 
   /**
@@ -367,12 +364,7 @@ public class SwingComponentPeer
    */
   public Dimension getPreferredSize()
   {
-    Dimension retVal;
-    if (swingComponent != null)
-      retVal = swingComponent.getJComponent().getPreferredSize();
-    else
-      retVal = new Dimension(0, 0);
-    return retVal;
+    return preferredSize();
   }
 
   /**
@@ -395,30 +387,28 @@ public class SwingComponentPeer
   public void handleEvent(AWTEvent e)
   {
     switch (e.getID())
-    {
+      {
       case PaintEvent.UPDATE:
       case PaintEvent.PAINT:
-        // Need to synchronize to avoid threading problems on the
-        // paint event list.
-        // We must synchronize on the tree lock first to avoid deadlock,
-        // because Container.paint() will grab it anyway.
-        synchronized (this)
+        if (awtComponent.isShowing())
           {
-            assert paintArea != null;
-            if (awtComponent.isShowing())
+            Rectangle clip ;
+            synchronized (this)
               {
-                Graphics g = awtComponent.getGraphics();
-                try
-                  {
-                    Rectangle clip = paintArea;
-                    g.clipRect(clip.x, clip.y, clip.width, clip.height);
-                    peerPaint(g, e.getID() == PaintEvent.UPDATE);
-                  }
-                finally
-                  {
-                    g.dispose();
-                    paintArea = null;
-                  }
+                coalescePaintEvent((PaintEvent) e);
+                assert paintArea != null;
+                clip = paintArea;
+                paintArea = null;
+              }
+            Graphics g = awtComponent.getGraphics();
+            try
+              {
+                g.clipRect(clip.x, clip.y, clip.width, clip.height);
+                peerPaint(g, e.getID() == PaintEvent.UPDATE);
+              }
+            finally
+              {
+                g.dispose();
               }
           }
         break;
@@ -438,10 +428,14 @@ public class SwingComponentPeer
       case KeyEvent.KEY_TYPED:
         handleKeyEvent((KeyEvent) e);
         break;
+      case FocusEvent.FOCUS_GAINED:
+      case FocusEvent.FOCUS_LOST:
+        handleFocusEvent((FocusEvent)e);
+        break;
       default:
         // Other event types are not handled here.
         break;
-    }
+      }
   }
 
   /**
@@ -574,13 +568,16 @@ public class SwingComponentPeer
    * This is implemented to call repaint() on the Swing component.
    *
    * @param tm number of milliseconds to wait with repainting
-   * @param x the X coordinate of the upper left corner of the damaged rectangle
-   * @param y the Y coordinate of the upper left corner of the damaged rectangle
+   * @param x the X coordinate of the upper left corner of the damaged
+   *        rectangle
+   * @param y the Y coordinate of the upper left corner of the damaged
+   *        rectangle
    * @param width the width of the damaged rectangle
    * @param height the height of the damaged rectangle
    */
   public void repaint(long tm, int x, int y, int width, int height)
   {
+    // NOTE: This is never called by AWT but is mandated by the peer interface.
     if (swingComponent != null)
       swingComponent.getJComponent().repaint(tm, x, y, width, height);
     else
@@ -602,8 +599,10 @@ public class SwingComponentPeer
    */
   public void requestFocus()
   {
-    if (swingComponent != null)
-      swingComponent.getJComponent().requestFocus();
+    // NOTE: This is never called by AWT but is mandated by the peer interface.
+    Toolkit tk = Toolkit.getDefaultToolkit();
+    EventQueue q = tk.getSystemEventQueue();
+    q.postEvent(new FocusEvent(awtComponent, FocusEvent.FOCUS_GAINED, false));
   }
 
   /**
@@ -612,18 +611,22 @@ public class SwingComponentPeer
    *
    * This calls requestFocus() on the Swing component.
    *
-   * @param source TODO
-   * @param bool1 TODO
-   * @param bool2 TODO
-   * @param x TODO
+   * @param source the actual component that requests focus (may be a
+   *        lightweight descendant of the heavyweight container)
+   * @param tmp true when the change is temporary
+   * @param allowWindowFocus
+   * @param tm the timestamp of the focus change
    *
-   * @return TODO
+   * @return true when the focus change is guaranteed to be granted, false
+   *         otherwise
    */
-  public boolean requestFocus(Component source, boolean bool1, boolean bool2, long x)
+  public boolean requestFocus(Component source, boolean tmp,
+                              boolean allowWindowFocus, long tm)
   {
-    if (swingComponent != null)
-      swingComponent.getJComponent().requestFocus();
-    return swingComponent != null;
+    Toolkit tk = Toolkit.getDefaultToolkit();
+    EventQueue q = tk.getSystemEventQueue();
+    q.postEvent(new FocusEvent(source, FocusEvent.FOCUS_GAINED, tmp));
+    return true;
   }
 
   /**
@@ -1100,6 +1103,19 @@ public class SwingComponentPeer
       swingComponent.handleKeyEvent(e);
   }
 
+  /**
+   * Handles focus events on the component. This is usually forwarded to the
+   * SwingComponent's processFocusEvent() method.
+   *
+   * @param e the key event
+   */
+  protected void handleFocusEvent(FocusEvent e)
+  {
+    if (swingComponent != null)
+      swingComponent.handleFocusEvent(e);
+  }
+
+  
   /**
    * Returns the AWT component for this peer.
    *
@@ -1109,4 +1125,12 @@ public class SwingComponentPeer
   {
     return awtComponent;
   }
+
+  public boolean requestFocus(Component lightweightChild, boolean temporary,
+                              boolean focusedWindowChangeAllowed,
+                              long time, sun.awt.CausedFocusEvent.Cause cause)
+  {
+    return true;
+  }
+
 }
index c78b644a765326995feaad1b2b421bbe40e59e76..2d5d97ff14bfd70716b5d620083567b315b90e7e 100644 (file)
@@ -1,5 +1,5 @@
 /* SwingContainerPeer.java -- A Swing based peer for AWT containers
-   Copyright (C)  2006  Free Software Foundation, Inc.
+   Copyright (C)  2006, 2007  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -92,7 +92,7 @@ public class SwingContainerPeer
    * @see #peerPaintChildren(Graphics)
    * @see #removeHeavyweightDescendent(Component)
    */
-  synchronized void addHeavyweightDescendent(Component comp)
+  protected synchronized void addHeavyweightDescendent(Component comp)
   {
     heavyweightDescendents.add(comp);
     focusOwner = null;
@@ -106,12 +106,24 @@ public class SwingContainerPeer
    * @see #peerPaintChildren(Graphics)
    * @see #addHeavyweightDescendent(Component)
    */
-  synchronized void removeHeavyweightDescendent(Component comp)
+  protected synchronized void removeHeavyweightDescendent(Component comp)
   {
     heavyweightDescendents.remove(comp);
     focusOwner = null;
   }
 
+  /**
+   * Returns an array of all registered heavyweight descendents.
+   *
+   * @return all registered heavyweight descendents
+   */
+  protected Component[] getHeavyweightDescendents()
+  {
+    Component[] heavyweights = new Component[heavyweightDescendents.size()];
+    heavyweights = (Component[]) heavyweightDescendents.toArray(heavyweights);
+    return heavyweights;
+  }
+
   /**
    * Returns the insets of the container.
    *
@@ -339,7 +351,7 @@ public class SwingContainerPeer
   {
     Component owner = getFocusOwner();
     if(owner != null)
-      owner.dispatchEvent(e);
+      owner.getPeer().handleEvent(e);
     else 
       super.handleKeyEvent(e);
   }
index 349c5a0abe2539d98fe459a9ccddce4c708307a7..55c394ecb6eb338c8f960b0c1710f3bf9f5f910a 100644 (file)
@@ -1,5 +1,5 @@
 /* SwingLabelPeer.java -- A Swing based peer for AWT labels
-   Copyright (C)  2006  Free Software Foundation, Inc.
+   Copyright (C)  2006, 2007  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -42,6 +42,7 @@ import java.awt.Graphics;
 import java.awt.Image;
 import java.awt.Label;
 import java.awt.Point;
+import java.awt.event.FocusEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
 import java.awt.peer.LabelPeer;
@@ -119,6 +120,17 @@ public class SwingLabelPeer
       processKeyEvent(ev);
     }
 
+    /**
+     * Handles focus events by forwarding it to
+     * <code>processFocusEvent()</code>.
+     *
+     * @param ev the Focus event
+     */
+    public void handleFocusEvent(FocusEvent ev)
+    {
+      processFocusEvent(ev);
+    }
+
     /**
      * Overridden so that this method returns the correct value even without a
      * peer.
index aca2070486dcce745685ffd3bb276c9d4630f3e0..22a6052bb7e7972804c745d8b7a2317c73815602 100644 (file)
@@ -1,5 +1,5 @@
 /* SwingListPeer.java -- A Swing based peer for AWT lists
-   Copyright (C)  2006  Free Software Foundation, Inc.
+   Copyright (C)  2006, 2007  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -46,6 +46,7 @@ import java.awt.Image;
 import java.awt.List;
 import java.awt.Point;
 import java.awt.Rectangle;
+import java.awt.event.FocusEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
 import java.awt.peer.ListPeer;
@@ -128,6 +129,17 @@ public class SwingListPeer
       processKeyEvent(ev);
     }
 
+    /**
+     * Handles focus events by forwarding it to <code>processFocusEvent()</code>.
+     *
+     * @param ev the Focus event
+     */
+    public void handleFocusEvent(FocusEvent ev)
+    {
+      processFocusEvent(ev);
+    }
+
+    
     /**
      * Overridden so that this method returns the correct value even without a
      * peer.
index 3cea62ac4d1ea4d45ed1d7117f3ad5a55af86ce7..37c6dbc7a5bec6bf8ec8233b386401e44d22fc20 100644 (file)
@@ -1,5 +1,5 @@
 /* SwingPanelPeer.java -- A PanelPeer based on Swing
-   Copyright (C) 2006 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -47,7 +47,7 @@ import java.awt.peer.PanelPeer;
  * @author Roman Kennke (kennke@aicas.com)
  */
 // TODO: Maybe base implementation on JPanel. However, this doesn't seem
-// necessary, but might be good for more consistend Look.
+// necessary, but might be good for more consistent Look.
 public class SwingPanelPeer
   extends SwingContainerPeer
   implements PanelPeer
index 04ac011419f1e03a398b0d47e398129d43cf8249..2c438a1ccb1f7a2c495edaf5e3fcb217610e68d6 100644 (file)
@@ -1,5 +1,5 @@
 /* SwingTextAreaPeer.java -- A Swing based peer for AWT textareas
-   Copyright (C)  2006  Free Software Foundation, Inc.
+   Copyright (C)  2006, 2007  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -45,14 +45,20 @@ import java.awt.Image;
 import java.awt.Point;
 import java.awt.Rectangle;
 import java.awt.TextArea;
+import java.awt.event.ComponentEvent;
+import java.awt.event.FocusEvent;
+import java.awt.event.HierarchyEvent;
+import java.awt.event.InputMethodEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
+import java.awt.event.MouseWheelEvent;
 import java.awt.im.InputMethodRequests;
 import java.awt.peer.TextAreaPeer;
 
 import javax.swing.JComponent;
 import javax.swing.JScrollPane;
 import javax.swing.JTextArea;
+import javax.swing.JViewport;
 import javax.swing.text.BadLocationException;
 
 public class SwingTextAreaPeer
@@ -65,15 +71,19 @@ public class SwingTextAreaPeer
    *
    * @author Roman Kennke (kennke@aicas.com)
    */
-  private class SwingTextArea
+  private class SwingScrollPane
     extends JScrollPane
     implements SwingComponent
   {
 
-    SwingTextArea(Component comp)
+    SwingTextArea textArea;
+
+    SwingScrollPane(SwingTextArea textArea)
     {
-      super(comp, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+      super(textArea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
             JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+
+      this.textArea = textArea;
     }
 
     /**
@@ -94,8 +104,17 @@ public class SwingTextAreaPeer
      */
     public void handleMouseEvent(MouseEvent ev)
     {
-      ev.setSource(this);
-      dispatchEvent(ev);
+      JViewport viewPort = getViewport();
+      if(viewPort.contains(ev.getPoint()))
+        {
+          ev.setSource(textArea);
+          textArea.dispatchEvent(ev);
+        }
+      else
+        {
+          ev.setSource(this);
+          this.dispatchEvent(ev);        
+        }
     }
 
     /**
@@ -114,7 +133,7 @@ public class SwingTextAreaPeer
      */
     public void handleMouseMotionEvent(MouseEvent ev)
     {
-      processMouseMotionEvent(ev);
+      textArea.processMouseMotionEvent(ev);
     }
 
     /**
@@ -124,7 +143,18 @@ public class SwingTextAreaPeer
      */
     public void handleKeyEvent(KeyEvent ev)
     {
-      processKeyEvent(ev);
+      textArea.processKeyEvent(ev);
+    }
+
+    /**
+     * Handles focus events by forwarding it to
+     * <code>processFocusEvent()</code>.
+     *
+     * @param ev the Focus event
+     */
+    public void handleFocusEvent(FocusEvent ev)
+    {
+      textArea.processFocusEvent(ev);
     }
 
     /**
@@ -179,35 +209,160 @@ public class SwingTextAreaPeer
         par = SwingTextAreaPeer.this.awtComponent.getParent();
       return par;
     }
+    
+    public void requestFocus() {
+        SwingTextAreaPeer.this.requestFocus(awtComponent, false, true, 0);
+    }
+
+    public boolean requestFocus(boolean temporary) {
+        return SwingTextAreaPeer.this.requestFocus(awtComponent, temporary,
+                                                   true, 0);
+    }
+
   }
 
+  private class SwingTextArea extends JTextArea
+  {
+    /**
+     * Make this method accessible in this Package.
+     */
+    protected final void processComponentKeyEvent(KeyEvent e)
+    {
+      super.processComponentKeyEvent(e);
+    }
+
+    /**
+     * Make this method accessible in this Package.
+     */
+    protected final void processMouseMotionEvent(MouseEvent ev)
+    {
+      super.processMouseMotionEvent(ev);
+    }
+
+    /**
+     * Make this method accessible in this Package.
+     */
+    protected final void processComponentEvent(ComponentEvent e)
+    {
+      super.processComponentEvent(e);
+    }
+
+    /**
+     * Make this method accessible in this Package.
+     */
+    protected final void processFocusEvent(FocusEvent e)
+    {
+      super.processFocusEvent(e);
+    }
+
+    /**
+     * Make this method accessible in this Package.
+     */
+    protected final void processHierarchyBoundsEvent(HierarchyEvent e)
+    {
+      super.processHierarchyBoundsEvent(e);
+    }
+
+    /**
+     * Make this method accessible in this Package.
+     */
+    protected final void processHierarchyEvent(HierarchyEvent e)
+    {
+      super.processHierarchyEvent(e);
+    }
+
+    /**
+     * Make this method accessible in this Package.
+     */
+    protected final void processInputMethodEvent(InputMethodEvent e)
+    {
+      super.processInputMethodEvent(e);
+    }
+
+    /**
+     * Make this method accessible in this Package.
+     */
+    protected final void processMouseEvent(MouseEvent e)
+    {
+      super.processMouseEvent(e);
+    }
+
+    /**
+     * Make this method accessible in this Package.
+     */
+    protected final void processMouseWheelEvent(MouseWheelEvent e)
+    {
+      super.processMouseWheelEvent(e);
+    }
+
+    /**
+     * Make this method accessible in this Package.
+     */
+    protected final void processKeyEvent(KeyEvent e)
+    {
+      super.processKeyEvent(e);
+    }
+
+    public void requestFocus() {
+      SwingTextAreaPeer.this.requestFocus(awtComponent, false, true, 0);
+    }
+
+    public boolean requestFocus(boolean temporary) {
+      return SwingTextAreaPeer.this.requestFocus(awtComponent, temporary,
+                                                 true, 0);
+    }
+  }
+  
   /**
    * The actual JTextArea.
    */
-  private JTextArea jTextArea;
+  private SwingTextArea jTextArea;
 
   public SwingTextAreaPeer(TextArea textArea)
   {
     super();
-    System.err.println("new SwingTextAreaPeer");
-    jTextArea = new JTextArea();
-    SwingTextArea swingArea = new SwingTextArea(jTextArea);
+    jTextArea = new SwingTextArea();
+    SwingScrollPane swingArea = new SwingScrollPane(jTextArea);
     init(textArea, swingArea);
 
+    JViewport viewport = new JViewport()
+      {
+        public Image createImage(int width, int height)
+        {
+          return awtComponent.createImage(width, height);
+        }
+      };
+
+    viewport.setView(jTextArea);
+    swingArea.setViewport(viewport);
     // Pull over the text from the text area.
     setText(textArea.getText());
+
+    // Pull over the number of rows and columns
+    // if non were set use default values
+    int columns = textArea.getColumns();
+    int rows = textArea.getRows();
+
+    if(columns == 0 && rows == 0)
+      {
+        columns = 25;
+        textArea.setColumns(columns);
+        rows = 5;
+        textArea.setRows(rows);
+      }
+    
+    jTextArea.setColumns(columns);
+    jTextArea.setRows(rows);
   }
 
   public Dimension getMinimumSize(int rows, int cols)
   {
-    // TODO Auto-generated method stub
-    return null;
+    return jTextArea.getMinimumSize();
   }
 
   public Dimension getPreferredSize(int rows, int cols)
   {
-    // TODO Auto-generated method stub
-    return null;
+    return jTextArea.getPreferredSize();
   }
 
   public void insert(String text, int pos)
@@ -220,16 +375,24 @@ public class SwingTextAreaPeer
     jTextArea.insert(text, pos);
   }
 
+  public Dimension minimumSize()
+  {
+    return jTextArea.getMinimumSize();
+  }
+
+  public Dimension preferredSize()
+  {
+    return jTextArea.getPreferredSize();
+  }
+
   public Dimension minimumSize(int rows, int cols)
   {
-    // TODO Auto-generated method stub
-    return null;
+      return jTextArea.getMinimumSize();
   }
 
   public Dimension preferredSize(int rows, int cols)
   {
-    // TODO Auto-generated method stub
-    return null;
+      return jTextArea.getPreferredSize();
   }
 
   public void replaceRange(String text, int start, int end)
@@ -310,8 +473,16 @@ public class SwingTextAreaPeer
 
   public void setText(String text)
   {
-    System.err.println("setText: " + text);
     jTextArea.setText(text);
   }
 
+  public void reshape(int x, int y, int width, int height)
+  {
+    if (swingComponent != null)
+      {
+        swingComponent.getJComponent().setBounds(x, y, width, height);
+        swingComponent.getJComponent().validate();
+      }
+  }
+
 }
index d7d574a0bb9d29052ff6c7188e4071753f1dc84a..29a689da42a8de913d405a5deeb0391969154413 100644 (file)
@@ -1,5 +1,5 @@
 /* SwingTextFieldPeer.java -- A Swing based peer for AWT textfields
-   Copyright (C)  2006  Free Software Foundation, Inc.
+   Copyright (C)  2006, 2007  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -44,6 +44,7 @@ import java.awt.Image;
 import java.awt.Point;
 import java.awt.Rectangle;
 import java.awt.TextField;
+import java.awt.event.FocusEvent;
 import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
 import java.awt.im.InputMethodRequests;
@@ -72,13 +73,13 @@ public class SwingTextFieldPeer
     implements SwingComponent
   {
 
-      TextField textField;
-      
-      SwingTextField(TextField textField)
-      {
-         this.textField = textField; 
-      }
-      
+    TextField textField;
+
+    SwingTextField(TextField textField)
+    {
+      this.textField = textField; 
+    }
+
     /**
      * Overridden to provide normal behaviour even without a real peer
      * attached.
@@ -91,8 +92,8 @@ public class SwingTextFieldPeer
     }
 
     /**
-     * Overridden so that the isShowing method returns the correct value for the
-     * swing button, even if it has no peer on its own.
+     * Overridden so that the isShowing method returns the correct value
+     * for the swing button, even if it has no peer on its own.
      *
      * @return <code>true</code> if the button is currently showing,
      *         <code>false</code> otherwise
@@ -162,6 +163,18 @@ public class SwingTextFieldPeer
       processKeyEvent(ev);
     }
 
+    /**
+     * Handles focus events by forwarding it to
+     * <code>processFocusEvent()</code>.
+     *
+     * @param ev the Focus event
+     */
+    public void handleFocusEvent(FocusEvent ev)
+    {
+      processFocusEvent(ev);
+    }
+
+    
     public Container getParent()
     {
       Container par = null;
@@ -174,6 +187,16 @@ public class SwingTextFieldPeer
     {
       return SwingTextFieldPeer.this.getGraphics();
     }
+    
+    public void requestFocus() {
+        SwingTextFieldPeer.this.requestFocus(awtComponent, false, true, 0);
+    }
+
+    public boolean requestFocus(boolean temporary) {
+        return SwingTextFieldPeer.this.requestFocus(awtComponent, temporary,
+                                                    true, 0);
+    }
+
   }
 
   /**
index 166e1f47b6f125fd68e5b09fdbd03c9f7926db6d..63414050bfecaa756c213eb3dc09b77f2e45e961 100644 (file)
@@ -40,6 +40,7 @@ package gnu.java.awt.peer.swing;
 
 import java.awt.Button;
 import java.awt.Canvas;
+import java.awt.Dialog;
 import java.awt.Label;
 import java.awt.Menu;
 import java.awt.MenuBar;
@@ -162,4 +163,19 @@ public abstract class SwingToolkit extends ClasspathToolkit
   {
     return new SwingTextFieldPeer(textField);
   }
+
+  @Override
+  public boolean isModalExclusionTypeSupported
+  (Dialog.ModalExclusionType modalExclusionType)
+  {
+    return false;
+  }
+
+  @Override
+  public boolean isModalityTypeSupported(Dialog.ModalityType modalityType)
+  {
+    return false;
+  }
+
+
 }
index 531552d902cedaa6ee63cef0e75f96a16b59ec46..bdc494e958c512ceab094553b6e4300fe1fa8e72 100644 (file)
@@ -71,4 +71,29 @@ public abstract class SwingWindowPeer
     super(window);
     init(window, null);
   }
+
+  public void updateIconImages()
+  {
+    // TODO: Implement properly.
+  }
+
+  public void updateMinimumSize()
+  {
+    // TODO: Implement properly.
+  }
+
+  public void setModalBlocked(java.awt.Dialog d, boolean b)
+  {
+    // TODO: Implement properly.
+  }
+
+  public void updateFocusableWindowState()
+  {
+    // TODO: Implement properly.
+  }
+
+  public void setAlwaysOnTop(boolean b)
+  {
+    // TODO: Implement properly.
+  }
 }
index 8e0a31f5d3639229337af25f659cd849ad5af9a5..8cda31d81dd006f9e621cdb9833136996992d07e 100644 (file)
@@ -405,8 +405,12 @@ final class KeyboardMapping
 
     if ((xMods & Input.SHIFT_MASK) != 0)
       mods |= KeyEvent.SHIFT_MASK | KeyEvent.SHIFT_DOWN_MASK;
+    if ((xMods & Input.META_MASK) != 0)
+      mods |= KeyEvent.META_MASK | KeyEvent.META_DOWN_MASK;
     if ((xMods & Input.ALT_MASK) != 0)
       mods |= KeyEvent.ALT_MASK | KeyEvent.ALT_DOWN_MASK;
+    if ((xMods & Input.MOD5_MASK) != 0)
+      mods |= KeyEvent.ALT_GRAPH_MASK | KeyEvent.ALT_GRAPH_DOWN_MASK;
     if ((xMods & Input.CONTROL_MASK) != 0)
       mods |= KeyEvent.CTRL_MASK | KeyEvent.CTRL_DOWN_MASK;
 
diff --git a/libjava/classpath/gnu/java/awt/peer/x/PixmapVolatileImage.java b/libjava/classpath/gnu/java/awt/peer/x/PixmapVolatileImage.java
new file mode 100644 (file)
index 0000000..131647f
--- /dev/null
@@ -0,0 +1,185 @@
+/* PixmapVolatileImage.java -- VolatileImage implementation around a Pixmap
+   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.peer.x;
+
+import gnu.x11.GC;
+import gnu.x11.Pixmap;
+import gnu.x11.image.Image;
+import gnu.x11.image.ZPixmap;
+
+import java.awt.Graphics2D;
+import java.awt.GraphicsConfiguration;
+import java.awt.GraphicsEnvironment;
+import java.awt.ImageCapabilities;
+import java.awt.Point;
+import java.awt.Transparency;
+import java.awt.color.ColorSpace;
+import java.awt.image.BufferedImage;
+import java.awt.image.ColorModel;
+import java.awt.image.ComponentColorModel;
+import java.awt.image.ComponentSampleModel;
+import java.awt.image.DataBuffer;
+import java.awt.image.ImageObserver;
+import java.awt.image.Raster;
+import java.awt.image.SampleModel;
+import java.awt.image.VolatileImage;
+import java.awt.image.WritableRaster;
+
+/**
+ * A {@link VolatileImage} implementation that wraps an X Pixmap.
+ */
+class PixmapVolatileImage
+  extends VolatileImage
+{
+
+  /**
+   * The shared capabilities instance.
+   */
+  private static final ImageCapabilities caps = new ImageCapabilities(true);
+
+  /**
+   * The underlying pixmap.
+   */
+  private Pixmap pixmap;
+
+  /**
+   * Creates a new PixmapVolatileImage.
+   *
+   * @param w the width of the image
+   * @param h the height of the image
+   */
+  public PixmapVolatileImage(int w, int h)
+  {
+    GraphicsEnvironment env =
+      GraphicsEnvironment.getLocalGraphicsEnvironment();
+    XGraphicsDevice dev = (XGraphicsDevice) env.getDefaultScreenDevice();
+    pixmap = new Pixmap(dev.getDisplay(), w, h);
+
+    // Clear pixmap.
+    GC gc = new GC(pixmap);
+    gc.set_foreground(0xffffffff);
+    pixmap.fill_rectangle(gc, 0, 0, w, h);
+
+  }
+
+  @Override
+  public boolean contentsLost()
+  {
+    return false;
+  }
+
+  @Override
+  public Graphics2D createGraphics()
+  {
+    return new XGraphics2D(pixmap);
+  }
+
+  @Override
+  public ImageCapabilities getCapabilities()
+  {
+    return caps;
+  }
+
+  @Override
+  public int getHeight()
+  {
+    return pixmap.height;
+  }
+
+  @Override
+  public BufferedImage getSnapshot()
+  {
+    // TODO: Support non-24-bit resolutions.
+    int w = pixmap.width;
+    int h = pixmap.height;
+    ZPixmap zpixmap = (ZPixmap) pixmap.image(0, 0, w, h, 0xffffffff,
+                                             Image.Format.ZPIXMAP);
+    DataBuffer buffer = new ZPixmapDataBuffer(zpixmap);
+    SampleModel sm = new ComponentSampleModel(DataBuffer.TYPE_BYTE, w, h, 4,
+                                              w * 4,
+                                              new int[]{0, 1, 2, 3 });
+    ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_LINEAR_RGB);
+    ColorModel cm = new ComponentColorModel(cs, true, false,
+                                            Transparency.OPAQUE,
+                                            DataBuffer.TYPE_BYTE);
+    WritableRaster raster = Raster.createWritableRaster(sm, buffer,
+                                                        new Point(0, 0));
+    return new BufferedImage(cm, raster, false, null);
+  }
+
+  @Override
+  public int getWidth()
+  {
+    return pixmap.width;
+  }
+
+  @Override
+  public int validate(GraphicsConfiguration gc)
+  {
+    // TODO: Check compatibility with gc.
+    return IMAGE_OK;
+  }
+
+  @Override
+  public int getHeight(ImageObserver observer)
+  {
+    return getHeight();
+  }
+
+  @Override
+  public Object getProperty(String name, ImageObserver observer)
+  {
+    return null;
+  }
+
+  @Override
+  public int getWidth(ImageObserver observer)
+  {
+    return getWidth();
+  }
+
+  /**
+   * Returns the underlying X pixmap. This is used for the graphics code.
+   *
+   * @return the underlying X pixmap
+   */
+  Pixmap getPixmap()
+  {
+    return pixmap;
+  }
+}
index 870edf3796d2b0a9a7332256536fb30283470339..d376619c595d37ccf92e2f844e89dba4c54a4b1a 100644 (file)
@@ -97,8 +97,9 @@ public class XEventPump
     display = d;
     windows = new HashMap();
     drag = -1;
-    Thread t = new Thread(this);
-    t.start();
+    Thread thread = new Thread(this, "X Event Pump");
+    thread.setDaemon(true);
+    thread.start();
   }
 
   /**
@@ -148,8 +149,9 @@ public class XEventPump
 
   private void handleEvent(Event xEvent)
   {
-    Integer key = new Integer(xEvent.window_id());;
-    Window awtWindow = (Window) windows.get(key);
+
+    Integer key = null;
+    Window awtWindow = null;
 
     if (XToolkit.DEBUG)
       System.err.println("fetched event: " + xEvent);
@@ -157,26 +159,45 @@ public class XEventPump
     {
     case ButtonPress.CODE:
       ButtonPress bp = (ButtonPress) xEvent;
+      key= new Integer(bp.event_window_id);
+      awtWindow = (Window) windows.get(key);
       // Create and post the mouse event.
       int button = bp.detail();
+
+      // AWT cannot handle more than 3 buttons and expects 0 instead.
+      if (button >= gnu.x11.Input.BUTTON3)
+        button = 0;
       drag = button;
+
       MouseEvent mp = new MouseEvent(awtWindow, MouseEvent.MOUSE_PRESSED,
-                                     System.currentTimeMillis(), 0,
+                                     System.currentTimeMillis(),
+                                     KeyboardMapping.mapModifiers(bp.state()) | buttonToModifier(button),
                                      bp.event_x(), bp.event_y(),
                                      1, false, button);
       Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mp);
       break;
     case ButtonRelease.CODE:
       ButtonRelease br = (ButtonRelease) xEvent;
+      key= new Integer(br.event_window_id);
+      awtWindow = (Window) windows.get(key);
+
+      button = br.detail();
+      // AWT cannot handle more than 3 buttons and expects 0 instead.
+      if (button >= gnu.x11.Input.BUTTON3)
+        button = 0;
       drag = -1;
       MouseEvent mr = new MouseEvent(awtWindow, MouseEvent.MOUSE_RELEASED,
-                                     System.currentTimeMillis(), 0,
+                                     System.currentTimeMillis(),
+                                     KeyboardMapping.mapModifiers(br.state()) | buttonToModifier(button),
                                      br.event_x(), br.event_y(),
-                                     1, false, br.detail());
+                                     1, false, button);
       Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mr);
       break;
     case MotionNotify.CODE:
       MotionNotify mn = (MotionNotify) xEvent;
+      key= new Integer(mn.event_window_id);
+      awtWindow = (Window) windows.get(key);
+
       MouseEvent mm;
       if (drag == -1)
         {
@@ -195,6 +216,8 @@ public class XEventPump
       Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mm);
       break;
     case ConfigureNotify.CODE:
+      key= new Integer(((ConfigureNotify) xEvent).event_window_id);
+      awtWindow = (Window) windows.get(key);
       ConfigureNotify c = (ConfigureNotify) xEvent;
       if (XToolkit.DEBUG)
         System.err.println("resize request for window id: " + key);
@@ -213,6 +236,8 @@ public class XEventPump
         }
       break;
     case Expose.CODE:
+      key= new Integer(((Expose) xEvent).window_id);
+      awtWindow = (Window) windows.get(key);
       Expose exp = (Expose) xEvent;
       if (XToolkit.DEBUG)
         System.err.println("expose request for window id: " + key);
@@ -228,6 +253,8 @@ public class XEventPump
       break;
     case KeyPress.CODE:
     case KeyRelease.CODE:
+      key = new Integer(((Input) xEvent).event_window_id);
+      awtWindow = (Window) windows.get(key);
       handleKeyEvent(xEvent, awtWindow);
       break;
     default:
@@ -282,6 +309,23 @@ public class XEventPump
 
   }
 
+  /** Translates an X button identifier to the AWT's MouseEvent modifier
+   *  mask. As the AWT cannot handle more than 3 buttons those return
+   *  <code>0</code>.
+   */
+  static int buttonToModifier(int button)
+  {
+    switch (button)
+    {
+      case gnu.x11.Input.BUTTON1:
+        return MouseEvent.BUTTON1_DOWN_MASK | MouseEvent.BUTTON1_MASK;
+      case gnu.x11.Input.BUTTON2:
+        return MouseEvent.BUTTON2_DOWN_MASK | MouseEvent.BUTTON2_MASK;
+      case gnu.x11.Input.BUTTON3:
+        return MouseEvent.BUTTON3_DOWN_MASK | MouseEvent.BUTTON3_MASK;
+    }
 
-}
+    return 0;        
+  }
 
+}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java b/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java
deleted file mode 100644 (file)
index 8183fed..0000000
+++ /dev/null
@@ -1,759 +0,0 @@
-/* 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("fonts.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.FontReply 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.FontReply 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;
-      Iterator charInfos = info.char_infos().iterator();
-      while (charInfos.hasNext())
-        {
-          Fontable.FontReply.CharInfo charInfo =
-            (Fontable.FontReply.CharInfo) charInfos.next();
-          charWidths[index] = charInfo.character_width();
-          index++;
-        }
-    }
-
-    private void readCharWidthsNonLinear(Fontable.FontReply 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.TextExtentReply 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)
-  {
-    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, char 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.");
-  }
-
-  /**
-   * 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 = validSize(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;
-  }
-
-  /**
-   * 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;
-  }
-}
index ef9507f3050e44dee60938a1fb357a5e78082241..ab3861be1a9a59492c7722713f4dbeb636c71913 100644 (file)
@@ -42,17 +42,21 @@ 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;
@@ -62,11 +66,30 @@ 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;
@@ -79,6 +102,8 @@ public class XFontPeer2
 //      begin = b;
 //      limit = l;
       fontRenderContext = rc;
+      glyphVector = fontDelegate.createGlyphVector(font, fontRenderContext,
+                                                   ci);
     }
 
     public float getAscent()
@@ -86,7 +111,7 @@ public class XFontPeer2
       return fontDelegate.getAscent(font.getSize(), fontRenderContext.getTransform(),
                              fontRenderContext.isAntiAliased(),
                              fontRenderContext.usesFractionalMetrics(), true);
-      }
+    }
 
     public int getBaselineIndex()
     {
@@ -102,21 +127,18 @@ public class XFontPeer2
 
     public float getDescent()
     {
-      return (int) fontDelegate.getDescent(font.getSize(),
-                                           new AffineTransform(), false, false,
-                                           false);
+      return (int) fontDelegate.getDescent(font.getSize(), IDENDITY, false,
+                                           false, false);
     }
 
     public float getHeight()
     {
-      // FIXME: Implement this.
-      throw new UnsupportedOperationException("Not yet implemented");
+      return (float) glyphVector.getLogicalBounds().getHeight();
     }
 
     public float getLeading()
     {
-      // FIXME: Implement this.
-      throw new UnsupportedOperationException("Not yet implemented");
+      return getHeight() - getAscent() - getDescent();
     }
 
     public int getNumChars()
@@ -150,6 +172,11 @@ public class XFontPeer2
   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);
@@ -157,22 +184,20 @@ public class XFontPeer2
 
     public int getAscent()
     {
-      return (int) fontDelegate.getAscent(getFont().getSize(),
-                                          new AffineTransform(), false, false,
-                                          false);
+      return (int) fontDelegate.getAscent(getFont().getSize(), IDENDITY,
+                                          false, false, false);
     }
 
     public int getDescent()
     {
-      return (int) fontDelegate.getDescent(getFont().getSize(),
-                                           new AffineTransform(), false, false,
-                                           false);
+      return (int) fontDelegate.getDescent(getFont().getSize(), IDENDITY,
+                                           false, false, false);
     }
     
     public int getHeight()
     {
       GlyphVector gv = fontDelegate.createGlyphVector(getFont(),
-                    new FontRenderContext(new AffineTransform(), false, false),
+                    new FontRenderContext(IDENDITY, false, false),
                     new StringCharacterIterator("m"));
       Rectangle2D b = gv.getVisualBounds();
       return (int) b.getHeight();
@@ -180,8 +205,9 @@ public class XFontPeer2
 
     public int charWidth(char c)
     {
-      Point2D advance = new Point2D.Double();
-      fontDelegate.getAdvance(c, getFont().getSize(), new AffineTransform(),
+      int code = fontDelegate.getGlyphIndex(c);
+      Point2D advance = cachedPoint;
+      fontDelegate.getAdvance(code, font.getSize2D(), IDENDITY,
                               false, false, true, advance);
       return (int) advance.getX();
     }
@@ -194,13 +220,18 @@ public class XFontPeer2
     public int stringWidth(String s)
     {
       GlyphVector gv = fontDelegate.createGlyphVector(getFont(),
-                    new FontRenderContext(new AffineTransform(), false, false),
+                    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)
@@ -208,7 +239,7 @@ public class XFontPeer2
     super(name, style, size);
     try
       {
-        File fontfile = new File("/usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf");
+        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,
@@ -239,7 +270,7 @@ public class XFontPeer2
       }
   }
 
-  public boolean canDisplay(Font font, char c)
+  public boolean canDisplay(Font font, int c)
   {
     // FIXME: Implement this.
     throw new UnsupportedOperationException("Not yet implemented");
@@ -326,4 +357,112 @@ public class XFontPeer2
     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 439a2a7bbf18898b4cf6fa1d3fcb98ee44b7c436..74e47bc28423c6b303da1a0610fbd189d850be55 100644 (file)
@@ -137,4 +137,10 @@ public class XFramePeer
     throw new UnsupportedOperationException("Not yet implemented.");
   }
 
+  public Rectangle getBoundsPrivate()
+  {
+    // TODO: Implement this properly.
+    throw new InternalError("Not yet implemented");
+  }
+
 }
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XGraphics.java b/libjava/classpath/gnu/java/awt/peer/x/XGraphics.java
deleted file mode 100644 (file)
index 134d7d3..0000000
+++ /dev/null
@@ -1,792 +0,0 @@
-/* XGraphics.java -- The Graphics implementation 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 gnu.x11.Colormap;
-import gnu.x11.Data;
-import gnu.x11.Display;
-import gnu.x11.Drawable;
-import gnu.x11.GC;
-import gnu.x11.Pixmap;
-import gnu.x11.Point;
-import gnu.x11.image.ZPixmap;
-
-import java.awt.AWTError;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.FontMetrics;
-import java.awt.Graphics;
-import java.awt.Image;
-import java.awt.Rectangle;
-import java.awt.Shape;
-import java.awt.Toolkit;
-import java.awt.Transparency;
-import java.awt.image.BufferedImage;
-import java.awt.image.ImageObserver;
-import java.awt.image.ImageProducer;
-import java.text.AttributedCharacterIterator;
-import java.util.HashMap;
-
-public class XGraphics
-  extends Graphics
-  implements Cloneable
-{
-
-  /**
-   * The X Drawable to draw on.
-   */
-  private Drawable xdrawable;
-
-  /**
-   * The X graphics context (GC).
-   */
-  private GC xgc;
-
-  /**
-   * The current translation.
-   */
-  private int translateX;
-  private int translateY;
-
-  /**
-   * The current clip. Possibly null.
-   */
-  private Rectangle clip;
-
-  /**
-   * The current font, possibly null.
-   */
-  private Font font;
-
-  /**
-   * The current foreground color, possibly null.
-   */
-  private Color foreground;
-
-  /**
-   * Indicates if this object has been disposed.
-   */
-  private boolean disposed = false;
-
-  // TODO: Workaround for limitation in current Escher.
-  private Pixmap.Format pixmapFormat;
-  private int imageByteOrder;
-  private int pixelByteCount;
-  
-  /**
-   * Creates a new XGraphics on the specified X Drawable.
-   *
-   * @param d the X Drawable for which we create the Graphics
-   */
-  XGraphics(Drawable d)
-  {
-    xdrawable = d;
-    xgc = new GC(d);
-    translateX = 0;
-    translateY = 0;
-    clip = new Rectangle(0, 0, d.width, d.height);
-
-    Display display = xdrawable.display;
-    pixmapFormat = display.default_pixmap_format;
-    imageByteOrder = display.image_byte_order;
-    pixelByteCount = pixmapFormat.bits_per_pixel () / 8;
-  }
-
-  /**
-   * Creates an exact copy of this graphics context.
-   *
-   * @return an exact copy of this graphics context
-   */
-  public Graphics create()
-  {
-    XGraphics copy = (XGraphics) clone();
-    return copy;
-  }
-
-  /**
-   * Translates the origin by (x, y).
-   */
-  public void translate(int x, int y)
-  {
-    translateX += x;
-    translateY += y;
-    if (clip != null)
-      {
-        clip.x -= x;
-        clip.y -= y;
-      }
-  }
-
-  /**
-   * Returns the current foreground color, possibly <code>null</code>.
-   *
-   * @return the current foreground color, possibly <code>null</code>
-   */
-  public Color getColor()
-  {
-    return foreground;
-  }
-
-  /**
-   * Sets the current foreground color. A <code>null</code> value doesn't
-   * change the current setting.
-   *
-   * @param c the foreground color to set
-   */
-  public void setColor(Color c)
-  {
-    if (c != null)
-      {
-        XToolkit tk = (XToolkit) Toolkit.getDefaultToolkit();
-        HashMap colorMap = tk.colorMap;
-        gnu.x11.Color col = (gnu.x11.Color) colorMap.get(c);
-        if (col == null)
-          {
-            Colormap map = xdrawable.display.default_colormap;
-            col = map.alloc_color (c.getRed() * 256,
-                                   c.getGreen() * 256,
-                                   c.getBlue() * 256);
-            colorMap.put(c, col);
-          }
-        xgc.set_foreground(col);
-        foreground = c;
-      }
-  }
-
-  public void setPaintMode()
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  public void setXORMode(Color color)
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  /**
-   * Returns the current font, possibly <code>null</code>.
-   *
-   * @return the current font, possibly <code>null</code>
-   */
-  public Font getFont()
-  {
-    return font;
-  }
-
-  /**
-   * Sets the font on the graphics context. A <code>null</code> value doesn't
-   * change the current setting.
-   *
-   * @param f the font to set
-   */
-  public void setFont(Font f)
-  {
-    if (f != null)
-      {
-        XFontPeer xFontPeer = (XFontPeer) f.getPeer();
-        xgc.set_font(xFontPeer.getXFont());
-        font = f;
-      }
-  }
-
-  /**
-   * Returns the font metrics for the specified font.
-   *
-   * @param font the font for which we want the font metrics
-   *
-   * @return the font metrics for the specified font
-   */
-  public FontMetrics getFontMetrics(Font font)
-  {
-    if (font == null)
-      {
-        if (this.font == null)
-          setFont(new Font("Dialog", Font.PLAIN, 12));
-        font = this.font;
-      }
-    XFontPeer xFontPeer = (XFontPeer) font.getPeer();
-    return xFontPeer.getFontMetrics(font);
-  }
-
-  /**
-   * Returns the bounds of the current clip.
-   *
-   * @return the bounds of the current clip
-   */
-  public Rectangle getClipBounds()
-  {
-    return clip != null ? clip.getBounds() : null;
-  }
-
-  /**
-   * Clips the current clip with the specified clip.
-   */
-  public void clipRect(int x, int y, int width, int height)
-  {
-    if (clip == null)
-      {
-        clip = new Rectangle(x, y, width, height);
-      }
-    else
-      {
-        computeIntersection(x, y, width, height, clip);
-      }
-    // Update the X clip setting.
-    setXClip(clip.x, clip.y, clip.width, clip.height);
-  }
-
-  /**
-   * Returns <code>true</code> when the specified rectangle intersects with
-   * the current clip, <code>false</code> otherwise. This is overridden to
-   * avoid unnecessary creation of Rectangles via getBounds().
-   *
-   * @param x the x coordinate of the rectangle
-   * @param y the y coordinate of the rectangle
-   * @param w the width of the rectangle
-   * @param h the height of the rectangle
-   *
-   * @return <code>true</code> when the specified rectangle intersects with
-   *         the current clip, <code>false</code> otherwise
-   */
-  public boolean hitClip(int x, int y, int w, int h)
-  {
-    boolean hit;
-    if (clip == null)
-      {
-        hit = true;
-      }
-    else
-      {
-        // It's easier to determine if the rectangle lies outside the clip,
-        // so we determine that and reverse the result (if it's not completely
-        // outside, it most likely hits the clip rectangle).
-        int x2 = x + w;
-        int y2 = y + h;
-        int clipX2 = clip.x + clip.width;
-        int clipY2 = clip.y + clip.height;
-        boolean outside = (x < clip.x && x2 < clip.x)     // Left.
-                          || (x > clipX2  && x2 > clipX2) // Right.
-                          || (y < clip.y && y2 < clip.y)  // Top.
-                          || (y > clipY2 && y2 > clipY2); // Bottom.
-        hit = ! outside;
-      }
-    return hit;
-  }
-
-  public void setClip(int x, int y, int width, int height)
-  {
-    if (clip != null)
-      clip.setBounds(x, y, width, height);
-    else
-      clip = new Rectangle(x, y, width, height);
-    setXClip(clip.x, clip.y, clip.width, clip.height);
-  }
-
-  /**
-   * Sets the clip on the X server GC. The coordinates are not yet translated,
-   * this will be performed by the X server.
-   *
-   * @param x the clip, X coordinate
-   * @param y the clip, Y coordinate
-   * @param w the clip, width
-   * @param h the clip, height
-   */
-  private void setXClip(int x, int y, int w, int h)
-  {
-    gnu.x11.Rectangle[] clipRects = new gnu.x11.Rectangle[] {
-                                  new gnu.x11.Rectangle(x, y, w, h) };
-    xgc.set_clip_rectangles(translateX, translateY, clipRects, GC.YX_BANDED);
-  }
-
-  public Shape getClip()
-  {
-    // Return a copy here, so nobody can trash our clip.
-    return clip == null ? null : clip.getBounds();
-  }
-
-  /**
-   * Sets the current clip.
-   *
-   * @param c the clip to set
-   */
-  public void setClip(Shape c)
-  {
-    if (c != null)
-      {
-        Rectangle b;
-        if (c instanceof Rectangle)
-          {
-            b = (Rectangle) c;
-          }
-        else
-          {
-            b = c.getBounds();
-          }
-        clip.setBounds(b);
-        setXClip(b.x, b.y, b.width, b.height);
-      }
-    else
-      {
-        clip.setBounds(0, 0, xdrawable.width, xdrawable.height);
-        setXClip(0, 0, xdrawable.width, xdrawable.height);
-      }
-  }
-
-  public void copyArea(int x, int y, int width, int height, int dx, int dy)
-  {
-    // Clip and translate src rectangle.
-    int srcX = Math.min(Math.max(x, clip.x), clip.x + clip.width)
-               + translateX;
-    int srcY = Math.min(Math.max(y, clip.y), clip.y + clip.height)
-               + translateY;
-    int srcWidth = Math.min(Math.max(x + width, clip.x),
-                            clip.x + clip.width) - x;
-    int srcHeight = Math.min(Math.max(y + height, clip.y),
-                            clip.y + clip.height) - y;
-    xdrawable.copy_area(xdrawable, xgc, srcX, srcY, srcWidth, srcHeight,
-                        srcX + dx, srcY + dy);
-  }
-
-  /**
-   * Draws a line from point (x1, y1) to point (x2, y2).
-   */
-  public void drawLine(int x1, int y1, int x2, int y2)
-  {
-    //System.err.println("drawLine: " + (x1 + translateX) + ", " + ( y1 + translateY) + ", " + (x2 + translateX) + ", " + (y2 + translateY) + " on: " + xdrawable);
-    xdrawable.line(xgc, x1 + translateX, y1 + translateY,
-                   x2 + translateX, y2 + translateY);
-  }
-
-  /**
-   * Fills the specified rectangle.
-   */
-  public void fillRect(int x, int y, int width, int height)
-  {
-    xdrawable.rectangle(xgc, x + translateX, y + translateY,
-                        width, height, true);
-  }
-
-  public void clearRect(int x, int y, int width, int height)
-  {
-    xgc.set_foreground(Color.WHITE.getRGB());
-    xdrawable.rectangle(xgc, x, y, width, height, true);
-    if (foreground != null)
-      xgc.set_foreground(foreground.getRGB());
-  }
-
-  public void drawRoundRect(int x, int y, int width, int height, int arcWidth,
-                            int arcHeight)
-  {
-    // Draw 4 lines.
-    int arcRadiusX = arcWidth / 2;
-    int arcRadiusY = arcHeight / 2;
-    drawLine(x + arcRadiusX, y, x + width - arcRadiusX, y);
-    drawLine(x, y + arcRadiusY, x, y + height - arcRadiusY);
-    drawLine(x + arcRadiusX, y + height, x + width - arcRadiusX, y + height);
-    drawLine(x + width, y + arcRadiusY, x + width, y + height - arcRadiusY);
-
-    // Draw the 4 arcs at the corners.
-    // Upper left.
-    drawArc(x, y, arcWidth, arcHeight, 90, 90);
-    // Lower left.
-    drawArc(x, y + height - arcHeight, arcWidth, arcHeight, 180, 90);
-    // Upper right.
-    drawArc(x + width - arcWidth, y, arcWidth, arcHeight, 0, 90);
-    // Lower right.
-    drawArc(x + width - arcWidth, y + height - arcHeight, arcWidth, arcHeight,
-            270, 90);
-  }
-
-  public void fillRoundRect(int x, int y, int width, int height, int arcWidth,
-                            int arcHeight)
-  {
-    // Fill the 3 rectangles that make up the inner area.
-    int arcRadiusX = arcWidth / 2;
-    int arcRadiusY = arcHeight / 2;
-    // Left.
-    fillRect(x, y + arcRadiusY, arcRadiusX, height - arcHeight);
-    // Middle.
-    fillRect(x + arcRadiusX, y, width - arcWidth, height);
-    // Right.
-    fillRect(x + width - arcRadiusX, y + arcRadiusY, arcRadiusX,
-             height - arcHeight);
-
-    // Fill the 4 arcs in the corners.
-    // Upper left.
-    fillArc(x, y, arcWidth, arcHeight, 90, 90);
-    // Lower left.
-    fillArc(x, y + height - arcHeight, arcWidth, arcHeight, 180, 90);
-    // Upper right.
-    fillArc(x + width - arcWidth, y, arcWidth, arcHeight, 0, 90);
-    // Lower right.
-    fillArc(x + width - arcWidth, y + height - arcHeight, arcWidth, arcHeight,
-            270, 90);
-  }
-
-  public void drawOval(int x, int y, int width, int height)
-  {
-    xdrawable.arc(xgc, x, y, width, height, 0, 360 * 64, false);
-  }
-
-  public void fillOval(int x, int y, int width, int height)
-  {
-    xdrawable.arc(xgc, x, y, width, height, 0, 360 * 64, true);
-  }
-
-  public void drawArc(int x, int y, int width, int height, int arcStart,
-                      int arcAngle)
-  {
-    xdrawable.arc(xgc, x, y, width, height, arcStart * 64, arcAngle * 64, false);
-  }
-
-  public void fillArc(int x, int y, int width, int height, int arcStart,
-                      int arcAngle)
-  {
-    xdrawable.arc(xgc, x, y, width, height, arcStart * 64, arcAngle * 64, true);
-  }
-
-  public void drawPolyline(int[] xPoints, int[] yPoints, int npoints)
-  {
-    int numPoints = Math.min(xPoints.length, yPoints.length);
-    Point[] points = new Point[numPoints];
-    // FIXME: Improve Escher API to accept arrays to avoid creation
-    // of many Point objects.
-    for (int i = 0; i < numPoints; i++)
-      points[i] = new Point(xPoints[i], yPoints[i]);
-    xdrawable.poly_line(xgc, points, Drawable.ORIGIN);
-  }
-
-  public void drawPolygon(int[] xPoints, int[] yPoints, int npoints)
-  {
-    int numPoints = Math.min(xPoints.length, yPoints.length);
-    Point[] points = new Point[numPoints];
-    // FIXME: Improve Escher API to accept arrays to avoid creation
-    // of many Point objects.
-    for (int i = 0; i < numPoints; i++)
-      points[i] = new Point(xPoints[i], yPoints[i]);
-    xdrawable.poly_line(xgc, points, Drawable.ORIGIN);
-  }
-
-  public void fillPolygon(int[] xPoints, int[] yPoints, int npoints)
-  {
-    int numPoints = Math.min(xPoints.length, yPoints.length);
-    Point[] points = new Point[numPoints];
-    // FIXME: Improve Escher API to accept arrays to avoid creation
-    // of many Point objects.
-    for (int i = 0; i < numPoints; i++)
-      points[i] = new Point(xPoints[i], yPoints[i]);
-    xdrawable.fill_poly(xgc, points, Drawable.COMPLEX, Drawable.ORIGIN);
-  }
-
-  /**
-   * Draws the specified string at (x, y).
-   */
-  public void drawString(String string, int x, int y)
-  {
-    if (disposed)
-      throw new AWTError("XGraphics already disposed");
-
-    xdrawable.text(xgc, x + translateX, y + translateY, string);
-  }
-
-  public void drawString(AttributedCharacterIterator ci, int x, int y)
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  /**
-   * Draws the specified image on the drawable at position (x,y).
-   */
-  public boolean drawImage(Image image, int x, int y, ImageObserver observer)
-  {
-    if (image instanceof XImage)
-      {
-        XImage xim = (XImage) image;
-        Pixmap pm = xim.pixmap;
-        xdrawable.copy_area(pm, xgc, 0, 0, pm.width, pm.height,
-                            x + translateX, y + translateY);
-      }
-    else if (image instanceof BufferedImage
-        && ((BufferedImage) image).getTransparency() != Transparency.OPAQUE)
-      {
-        BufferedImage bi = (BufferedImage) image;
-        int width = bi.getWidth();
-        int height = bi.getHeight();
-        Data img = xdrawable.image(x + translateX, y + translateY,
-                                   width, height, 0xFFFFFFFF, 2);
-
-        // Compute line byte count.
-        int lineBitCount = width * pixmapFormat.bits_per_pixel ();
-        int rem = lineBitCount % pixmapFormat.scanline_pad ();
-        int linePadCount = lineBitCount / pixmapFormat.scanline_pad ()
-                             + (rem == 0 ? 0 : 1);
-        int lineByteCount = linePadCount * pixmapFormat.scanline_pad () / 8;
-
-        // Composite source and destination pixel data.
-        int[] trgb = new int[3]; // The device rgb pixels.
-        for (int yy = 0; yy < height; yy++)
-          {
-            for (int xx = 0; xx < width; xx++)
-              {
-                getRGB(xx, yy, img, trgb, lineByteCount);
-                int srgb = bi.getRGB(xx, yy);
-                float alpha = ((srgb >> 24) & 0xff) / 256F;
-                float tAlpha = 1.F - alpha;
-                int red = (srgb >> 16) & 0xFF;
-                int green = (srgb >> 8) & 0xFF;
-                int blue = (srgb) & 0xFF;
-                trgb[0] = (int) (trgb[0] * tAlpha + red * alpha);
-                trgb[1] = (int) (trgb[1] * tAlpha + green * alpha);
-                trgb[2] = (int) (trgb[2] * tAlpha + blue * alpha);
-                setRGB(xx, yy, img, trgb, lineByteCount);
-              }
-          }
-
-        // Now we have the transparent image composited onto the target
-        // Image, now we only must copy it to the Drawable.
-        ZPixmap pm = new ZPixmap(xdrawable.display);
-        pm.width = width;
-        pm.height = height;
-        pm.init();
-        System.arraycopy(img.data, 32, pm.data, 0, img.data.length - 32);
-        xdrawable.put_image(xgc, pm, x + translateX, y + translateY);
-      }
-    else
-      {
-        // Pre-render the image into an XImage.
-        ImageProducer source = image.getSource();
-        ImageConverter conv = new ImageConverter();
-        source.startProduction(conv);
-        XImage xim = conv.getXImage();
-        Pixmap pm = xim.pixmap;
-        xdrawable.copy_area(pm, xgc, 0, 0, pm.width, pm.height,
-                            x + translateX, y + translateY);
-      }
-    return true;
-  }
-
-  /**
-   * Helper method to work around limitation in the current Escher impl.
-   *
-   * @param x the x position
-   * @param y the y position
-   * @param img the image data
-   * @param rgb an 3-size array that holds the rgb values on method exit
-   */
-  private void getRGB(int x, int y, Data img, int[] rgb, int lineByteCount)
-  {
-    // TODO: Does this also work on non-RGB devices?
-    int i = y * lineByteCount + pixelByteCount * x;
-    if (imageByteOrder == gnu.x11.image.Image.LSB_FIRST)
-      {//if (i >= 5716-33) System.err.println("lbc: " + lineByteCount + ", " + pixelByteCount);
-        rgb[2] = img.data[32 + i];
-        rgb[1] = img.data[32 + i + 1];
-        rgb[0] = img.data[32 + i + 2];
-      }
-    else
-      {                    // MSB_FIRST
-        rgb[0] = img.data[32 + i];
-        rgb[1] = img.data[32 + i + 1];
-        rgb[2] = img.data[32 + i + 2];
-      }
-
-  }
-
-  /**
-   * Helper method to work around limitation in the current Escher impl.
-   *
-   * @param x the x position
-   * @param y the y position
-   * @param img the image data
-   * @param rgb an 3-size array that holds the rgb values on method exit
-   */
-  private void setRGB(int x, int y, Data img, int[] rgb, int lineByteCount)
-  {
-    // TODO: Does this also work on non-RGB devices?
-    int i = y * lineByteCount + pixelByteCount * x;
-    if (imageByteOrder == gnu.x11.image.Image.LSB_FIRST)
-      {
-        img.data[32 + i] = (byte) rgb[2];
-        img.data[32 + i + 1] = (byte) rgb[1];
-        img.data[32 + i + 2] = (byte) rgb[0];
-      }
-    else
-      {                    // MSB_FIRST
-        img.data[32 + i] = (byte) rgb[0];
-        img.data[32 + i + 1] = (byte) rgb[1];
-        img.data[32 + i + 2] = (byte) rgb[2];
-      }
-  }
-
-  public boolean drawImage(Image image, int x, int y, int width, int height,
-                           ImageObserver observer)
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  public boolean drawImage(Image image, int x, int y, Color bgcolor,
-                           ImageObserver observer)
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  public boolean drawImage(Image image, int x, int y, int width, int height,
-                           Color bgcolor, ImageObserver observer)
-  {
-    // FIXME: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented");
-  }
-
-  public boolean drawImage(Image image, int dx1, int dy1, int dx2, int dy2,
-                           int sx1, int sy1, int sx2, int sy2,
-                           ImageObserver observer)
-  {
-    return drawImage(image, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, null,
-                     observer);
-  }
-
-  public boolean drawImage(Image image, int dx1, int dy1, int dx2, int dy2,
-                           int sx1, int sy1, int sx2, int sy2, Color bgcolor,
-                           ImageObserver observer)
-  {
-
-    // FIXME: What to do with bgcolor?
-
-    // Scale the image.
-    int sw = image.getWidth(observer);
-    int sh = image.getHeight(observer);
-    double scaleX = Math.abs(dx2 - dx1) / (double) Math.abs(sx2 - sx1);
-    double scaleY = Math.abs(dy2 - dy1) / (double) Math.abs(sy2 - sy1);
-    Image scaled = image.getScaledInstance((int) (scaleX * sw),
-                                           (int) (scaleY * sh),
-                                           Image.SCALE_FAST);
-
-    // Scaled source coordinates.
-    int sx1s = (int) (scaleX * Math.min(sx1, sx2));
-    int sx2s = (int) (scaleX * Math.max(sx1, sx2));
-
-    // Temporarily clip to the target rectangle.
-    Rectangle old = clip;
-    clipRect(dx1, dy1, dx2 - dx1, dy2 - dy1);
-
-    // Draw scaled image.
-    boolean res = drawImage(scaled, dx1 - sx1s, dy1 - sx2s, observer);
-
-    // Reset clip.
-    setClip(old);
-
-    return res;
-  }
-
-  /**
-   * Frees any resources associated with this object.
-   */
-  public void dispose()
-  {
-    if (! disposed)
-      {
-        xgc.free();
-        xdrawable.display.flush();
-        disposed = true;
-      }
-  }
-
-  // Additional helper methods.
-
-  /**
-   * Creates and returns an exact copy of this XGraphics.
-   */
-  protected Object clone()
-  {
-    try
-      {
-        XGraphics copy = (XGraphics) super.clone();
-        copy.xgc = xgc.copy();
-        if (clip != null)
-          {
-            copy.clip = new Rectangle(clip);
-            copy.setXClip(clip.x, clip.y, clip.width, clip.height);
-          }
-        return copy;
-      }
-    catch (CloneNotSupportedException ex)
-      {
-        assert false;
-      }
-    return null;
-  }
-  
-  /**
-   * Computes the intersection between two rectangles and stores the result
-   * int the second rectangle.
-   *
-   * This method has been copied from {@link javax.swing.SwingUtilities}.
-   *
-   * @param x the x coordinate of the rectangle #1
-   * @param y the y coordinate of the rectangle #1
-   * @param w the width of the rectangle #1
-   * @param h the height of the rectangle #1
-   * @param rect the rectangle #2 and output rectangle
-   */
-  private static void 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 dx = (x > x2) ? x : x2;
-    int dy = (y > y2) ? y : y2;
-    int dw = (x + w < x2 + w2) ? (x + w - dx) : (x2 + w2 - dx);
-    int dh = (y + h < y2 + h2) ? (y + h - dy) : (y2 + h2 - dy);
-
-    if (dw >= 0 && dh >= 0)
-      rect.setBounds(dx, dy, dw, dh);
-    else
-      rect.setBounds(0, 0, 0, 0);
-  }
-
-
-}
index 5dc79ff5c2b4250f31a831609a2f3acde4553726..73e780cc5a2183287f1094d16451bbaba4726e92 100644 (file)
@@ -37,16 +37,23 @@ exception statement from your version. */
 
 package gnu.java.awt.peer.x;
 
+import java.awt.Color;
 import java.awt.Graphics;
 import java.awt.GraphicsConfiguration;
+import java.awt.Image;
+import java.awt.Paint;
 import java.awt.Rectangle;
 import java.awt.Shape;
 import java.awt.Toolkit;
 import java.awt.geom.AffineTransform;
 import java.awt.image.ColorModel;
+import java.awt.image.ImageObserver;
 import java.awt.image.Raster;
+import java.util.HashMap;
 
 import gnu.java.awt.java2d.AbstractGraphics2D;
+import gnu.java.awt.java2d.ScanlineCoverage;
+import gnu.x11.Colormap;
 import gnu.x11.Drawable;
 import gnu.x11.GC;
 import gnu.x11.image.ZPixmap;
@@ -70,6 +77,11 @@ public class XGraphics2D
    */
   private boolean disposed;
 
+  /**
+   * The current foreground color, possibly null.
+   */
+  private Color foreground;
+
   XGraphics2D(Drawable d)
   {
     super();
@@ -80,31 +92,9 @@ public class XGraphics2D
     //setClip(new Rectangle(0, 0, xdrawable.width, xdrawable.height));
   }
 
-  /**
-   * Draws a pixel in the target coordinate space using the specified color.
-   * 
-   * @param x the x coordinate
-   * @param y the y coordinate
-   */
-  protected void rawSetPixel(int x, int y)
-  {
-    xdrawable.point(xgc, x, y);
-  }
-
-//  protected void rawFillPolygon(double[] xpoints, double[] ypoints, int npoints)
-//  {
-//    Point[] points = new Point[npoints];
-//    for (int n = 0; n < npoints; n++)
-//      {
-//        points[n] = new Point((int) xpoints[n], (int) ypoints[n]);
-//      }
-//    xdrawable.fill_poly(xgc, points, Drawable.COMPLEX, Drawable.ORIGIN);
-//    xdrawable.display.flush();
-//  }
-
   protected void rawDrawLine(int x0, int y0, int x1, int y1)
   {
-    xdrawable.line(xgc, x0, y0, x1, y1);
+    xdrawable.segment(xgc, x0, y0, x1, y1);
   }
 
   protected void rawFillRect(int x, int y, int w, int h)
@@ -112,17 +102,6 @@ public class XGraphics2D
     xdrawable.rectangle(xgc, x, y, w, h, true);
   }
 
-  protected void rawSetForeground(java.awt.Color c)
-  {
-    if (c != null)
-      xgc.set_foreground(c.getRGB());
-  }
-
-  protected void rawSetForeground(int r, int g, int b)
-  {
-    xgc.set_foreground( r << 16 | g << 8 | b );
-  }
-
   /**
    * Returns the color model of this Graphics object.
    *
@@ -178,55 +157,6 @@ public class XGraphics2D
     return copy;
   }
 
-//  /**
-//   * Draws the specified image on the drawable at position (x,y).
-//   */
-//
-//  public boolean drawImage(Image image, int x, int y, ImageObserver observer)
-//  {
-//    AffineTransform transform = getTransform();
-//    int translateX = (int) transform.getTranslateX();
-//    int translateY = (int) transform.getTranslateY();
-//    if (image instanceof XImage)
-//      {
-//        XImage xim = (XImage) image;
-//        Pixmap pm = xim.pixmap;
-//        xdrawable.copy_area(pm, xgc, 0, 0, pm.width, pm.height,
-//                            x + translateX, y + translateY);
-//      }
-//    else if (image instanceof BufferedImage)
-//      {
-//        BufferedImage bufferedImage = (BufferedImage) image;
-//        Raster raster = bufferedImage.getData();
-//        int w = bufferedImage.getWidth();
-//        int h = bufferedImage.getHeight();
-//        // Push data to X server.
-//        ZPixmap zPixmap = new ZPixmap(xdrawable.display, w, h,
-//                                      xdrawable.display.default_pixmap_format);
-//        System.err.println("data buffer length: " + zPixmap.data.length);
-//        int[] pixel = new int[4];
-//        for (int tx = 0; tx < w; tx++)
-//          {
-//            for (int ty = 0; ty < h; ty++)
-//              {
-//                pixel = raster.getPixel(tx, ty, pixel);
-////                System.err.print("r: " + pixel[0]);
-////                System.err.print(", g: " + pixel[1]);
-////                System.err.println(", b: " + pixel[2]);
-//                zPixmap.set_red(tx, ty, pixel[0]);
-//                zPixmap.set_green(tx, ty, pixel[1]);
-//                zPixmap.set_blue(tx, ty, pixel[2]);
-//              }
-//          }
-//        xdrawable.put_image(xgc, zPixmap, x, y);
-//      }
-//    else
-//      {
-//        throw new UnsupportedOperationException("Not yet implemented.");
-//      }
-//    return true;
-//  }
-//
   public void setClip(Shape c)
   {
     super.setClip(c);
@@ -287,9 +217,115 @@ public class XGraphics2D
       }
   }
 
+  public void renderScanline(int y, ScanlineCoverage c)
+  {
+    ScanlineCoverage.Iterator iter = c.iterate();
+    float 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 red = col.getRed();
+            int green = col.getGreen();
+            int blue = col.getBlue();
+            if (coverageAlpha < c.getMaxCoverage())
+              {
+                float alpha = coverageAlpha / maxCoverage;
+                red = 255 - (int) ((255 - red) * alpha);
+                green = 255 - (int) ((255 - green) * alpha);
+                blue = 255 - (int) ((255 - blue) * alpha);
+              }
+            xgc.set_foreground(red << 16 | green << 8 | blue);
+            int x0 = range.getXPos();
+            int l = range.getLength();
+            xdrawable.fill_rectangle(xgc, x0, y, l, 1);
+          }
+      }
+    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()
   {
     super.init();
   }
+
+  public void setPaint(Paint p)
+  {
+    super.setPaint(p);
+    if (p instanceof Color)
+      {
+        Color c = (Color) p;
+        XToolkit tk = (XToolkit) Toolkit.getDefaultToolkit();
+        HashMap colorMap = tk.colorMap;
+        gnu.x11.Color col = (gnu.x11.Color) colorMap.get(c);
+        if (col == null)
+          {
+            Colormap map = xdrawable.display.default_colormap;
+            col = map.alloc_color (c.getRed() * 256,
+                                   c.getGreen() * 256,
+                                   c.getBlue() * 256);
+            colorMap.put(c, col);
+          }
+        xgc.set_foreground(col);
+        foreground = c;
+      }
+  }
+
+  protected void fillShape(Shape s, boolean isFont)
+  {
+    synchronized (xdrawable.display) {
+      super.fillShape(s, isFont);
+    }
+  }
+
+  protected boolean rawDrawImage(Image image, int x, int y, ImageObserver obs)
+  {
+    boolean ret;
+    if (image instanceof XImage)
+      {
+        XImage xImage = (XImage) image;
+        xdrawable.copy_area(xImage.pixmap, xgc, 0, 0, xImage.getWidth(obs),
+                            xImage.getHeight(obs), x, y);
+        ret = true;
+      }
+    else if (image instanceof PixmapVolatileImage)
+      {
+        PixmapVolatileImage pvi = (PixmapVolatileImage) image;
+        xdrawable.copy_area(pvi.getPixmap(), xgc, 0, 0, pvi.getWidth(obs),
+                            pvi.getHeight(obs), x, y);
+        ret = true;
+      }
+    else
+      {
+        ret = super.rawDrawImage(image, x, y, obs);
+      }
+    return ret;
+  }
+
+
 }
+
index d6e66cbd202cea0d03bcfcedabba786cf54b816b..11a9c9694f1fd87603a16cc7242e209d29af9be2 100644 (file)
@@ -39,11 +39,20 @@ package gnu.java.awt.peer.x;
 
 import java.awt.GraphicsConfiguration;
 import java.awt.GraphicsDevice;
+import java.awt.Point;
 import java.awt.Rectangle;
+import java.awt.Transparency;
+import java.awt.color.ColorSpace;
 import java.awt.geom.AffineTransform;
 import java.awt.image.BufferedImage;
 import java.awt.image.ColorModel;
+import java.awt.image.ComponentColorModel;
+import java.awt.image.ComponentSampleModel;
+import java.awt.image.DataBuffer;
+import java.awt.image.Raster;
+import java.awt.image.SampleModel;
 import java.awt.image.VolatileImage;
+import java.awt.image.WritableRaster;
 
 public class XGraphicsConfiguration
     extends GraphicsConfiguration
@@ -63,26 +72,60 @@ public class XGraphicsConfiguration
 
   public BufferedImage createCompatibleImage(int w, int h)
   {
-    return new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
+    return createCompatibleImage(w, h, Transparency.OPAQUE);
   }
 
-  public VolatileImage createCompatibleVolatileImage(int w, int h)
+  public BufferedImage createCompatibleImage(int w, int h, int transparency)
   {
-    // TODO: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented.");
+    BufferedImage bi;
+    switch (transparency)
+      {
+        case Transparency.OPAQUE:
+          DataBuffer buffer = new ZPixmapDataBuffer(w, h);
+          SampleModel sm = new ComponentSampleModel(DataBuffer.TYPE_BYTE, w, h,
+                                                    4, w * 4,
+                                                    new int[]{0, 1, 2, 3 });
+          ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_LINEAR_RGB);
+          ColorModel cm = new ComponentColorModel(cs, true, false,
+                                                  Transparency.OPAQUE,
+                                                  DataBuffer.TYPE_BYTE);
+          WritableRaster raster = Raster.createWritableRaster(sm, buffer,
+                                                              new Point(0, 0));
+          bi = new BufferedImage(cm, raster, false, null);
+          break;
+        case Transparency.BITMASK:
+        case Transparency.TRANSLUCENT:
+          bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
+          break;
+        default:
+          throw new IllegalArgumentException("Illegal transparency: "
+                                             + transparency);
+      }
+    return bi;
   }
 
-  public VolatileImage createCompatibleVolatileImage(int width, int height,
-                                                     int transparency)
+  public VolatileImage createCompatibleVolatileImage(int w, int h)
   {
-    // TODO: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented.");
+    return createCompatibleVolatileImage(w, h, Transparency.OPAQUE);
   }
 
-  public BufferedImage createCompatibleImage(int w, int h, int transparency)
+  public VolatileImage createCompatibleVolatileImage(int width, int height,
+                                                     int transparency)
   {
-    // TODO: Implement this.
-    throw new UnsupportedOperationException("Not yet implemented.");
+    VolatileImage im;
+    switch (transparency)
+      {
+      case Transparency.OPAQUE:
+        im = new PixmapVolatileImage(width, height);
+        break;
+      case Transparency.BITMASK:
+      case Transparency.TRANSLUCENT:
+        throw new UnsupportedOperationException("Not yet implemented");
+      default:
+        throw new IllegalArgumentException("Unknown transparency type: "
+                                           + transparency);  
+      }
+    return im;
   }
 
   public ColorModel getColorModel()
index 6a020ec4e7a55fa7fc1758e8697ec438c0c269bf..eff5902d22ef55974674f33903ffff17e029ac8b 100644 (file)
@@ -38,15 +38,12 @@ exception statement from your version. */
 package gnu.java.awt.peer.x;
 
 import gnu.classpath.SystemProperties;
-import gnu.java.net.local.LocalSocket;
-import gnu.java.net.local.LocalSocketAddress;
-import gnu.x11.Connection;
 import gnu.x11.Display;
 
-import java.awt.AWTError;
 import java.awt.GraphicsConfiguration;
 import java.awt.GraphicsDevice;
-import java.net.SocketException;
+import java.lang.reflect.Constructor;
+import java.net.Socket;
 
 /**
  * This class represents an X Display. The actual connection is established
@@ -127,33 +124,21 @@ public class XGraphicsDevice
              || displayName.hostname.equals(""))
           && SystemProperties.getProperty("gnu.xawt.no_local_sockets") == null)
           {
-            // TODO: Is this 100% ok?
-            String sockPath = "/tmp/.X11-unix/X" + displayName.display_no;
-            LocalSocketAddress addr = new LocalSocketAddress(sockPath);
-            try
+            Socket socket = createLocalSocket();
+            if (socket != null)
               {
-                if (XToolkit.DEBUG)
-                  System.err.println("connecting to local socket: "
-                                     + sockPath);
-                LocalSocket socket = new LocalSocket(addr);
                 display = new Display(socket, "localhost",
                                       displayName.display_no,
                                       displayName.screen_no);
-                display.connection.send_mode = Connection.ASYNCHRONOUS;
-                if (XToolkit.DEBUG)
-                  System.err.println("connected to local socket");
               }
-            catch (SocketException ex)
-              {
-                AWTError err = new AWTError("could not connect to X server");
-                err.initCause(ex);
-                throw err;
-              }
-          }
-        else
-          {
-            display = new Display(displayName);
           }
+
+        // The following happens when we are configured to use plain sockets,
+        // when the connection is probably remote or when we couldn't load
+        // the LocalSocket class stuff.
+        if (display == null)
+          display = new Display(displayName);
+
         eventPump = new XEventPump(display);
       }
     return display;
@@ -163,4 +148,36 @@ public class XGraphicsDevice
   {
     return eventPump;
   }
+
+  /**
+   * Tries to load the LocalSocket class and initiate a connection to the 
+   * local X server.
+   */
+  private Socket createLocalSocket()
+  {
+    Socket socket = null;
+    try
+      {
+        // TODO: Is this 100% ok?
+        String sockPath = "/tmp/.X11-unix/X" + displayName.display_no;
+        Class localSocketAddressClass =
+          Class.forName("gnu.java.net.local.LocalSocketAddress");
+        Constructor localSocketAddressConstr =
+          localSocketAddressClass.getConstructor(new Class[]{ String.class });
+        Object addr =
+          localSocketAddressConstr.newInstance(new Object[]{ sockPath });
+        Class localSocketClass =
+          Class.forName("gnu.java.net.local.LocalSocket");
+        Constructor localSocketConstructor =
+          localSocketClass.getConstructor(new Class[]{localSocketAddressClass});
+        Object localSocket =
+          localSocketConstructor.newInstance(new Object[]{ addr });
+        socket = (Socket) localSocket;
+      }
+    catch (Exception ex)
+      {
+        // Whatever goes wrong here, we return null.
+      }
+    return socket;
+  }
 }
index b9e993628f5c45f8115ac398b01872286aea1d83..7d4636b95da91688492cc76d8eeaa4bdbe04487d 100644 (file)
@@ -86,7 +86,7 @@ public class XImage
    */
   public Graphics getGraphics()
   {
-    XGraphics g = new XGraphics(pixmap);
+    XGraphics2D g = new XGraphics2D(pixmap);
     return g;
   }
 
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XLightweightPeer.java b/libjava/classpath/gnu/java/awt/peer/x/XLightweightPeer.java
deleted file mode 100644 (file)
index 2613d84..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/* XLightweightPeer.java -- A lightweight 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.Component;
-import java.awt.peer.LightweightPeer;
-
-import gnu.java.awt.peer.swing.SwingContainerPeer;
-
-public class XLightweightPeer
-  extends SwingContainerPeer
-  implements LightweightPeer
-{
-
-  XLightweightPeer(Component c)
-  {
-    super(c);
-    init(c, null);
-  }
-}
index a286fd6f006e5b721262c1bb8604b342924ab510..08186326ffae0b7cf5cd07b5afc89bee80351a78 100644 (file)
@@ -44,7 +44,6 @@ import java.awt.Canvas;
 import java.awt.Checkbox;
 import java.awt.CheckboxMenuItem;
 import java.awt.Choice;
-import java.awt.Component;
 import java.awt.Dialog;
 import java.awt.Dimension;
 import java.awt.EventQueue;
@@ -69,6 +68,8 @@ import java.awt.TextArea;
 import java.awt.TextField;
 import java.awt.Transparency;
 import java.awt.Window;
+import java.awt.Dialog.ModalExclusionType;
+import java.awt.Dialog.ModalityType;
 import java.awt.datatransfer.Clipboard;
 import java.awt.dnd.DragGestureEvent;
 import java.awt.dnd.peer.DragSourceContextPeer;
@@ -88,7 +89,6 @@ import java.awt.peer.FileDialogPeer;
 import java.awt.peer.FontPeer;
 import java.awt.peer.FramePeer;
 import java.awt.peer.LabelPeer;
-import java.awt.peer.LightweightPeer;
 import java.awt.peer.ListPeer;
 import java.awt.peer.MenuBarPeer;
 import java.awt.peer.MenuItemPeer;
@@ -179,16 +179,16 @@ public class XToolkit
    */
   public ClasspathFontPeer getClasspathFontPeer(String name, Map attrs)
   {
-    String canonical = XFontPeer.encodeFont(name, attrs);
+    String canonical = XFontPeer2.encodeFont(name, attrs);
     ClasspathFontPeer font;
     if (!fontCache.containsKey(canonical))
       {
         String graphics2d =
           SystemProperties.getProperty("gnu.xawt.graphics2d");
-        if (graphics2d != null && graphics2d.equals("gl"))
+        //if (graphics2d != null && graphics2d.equals("gl"))
           font = new XFontPeer2(name, attrs);
-        else
-          font = new XFontPeer(name, attrs);
+//        else
+//          font = new XFontPeer(name, attrs);
         fontCache.put(canonical, font);
       }
     else
@@ -601,8 +601,20 @@ public class XToolkit
     return (XGraphicsDevice) env.getDefaultScreenDevice();
   }
 
-  protected LightweightPeer createComponent(Component c)
+  @Override
+  public boolean isModalExclusionTypeSupported
+                 (Dialog.ModalExclusionType modalExclusionType)
   {
-    return new XLightweightPeer(c);
+    // TODO: Implement properly.
+    return false;
   }
+
+  @Override
+  public boolean isModalityTypeSupported(Dialog.ModalityType modalityType)
+  {
+    // TODO: Implement properly.
+    return false;
+  }
+
+
 }
index 28cc5a5edf55ceeb2a7fdb13074f42bd4016c4f8..10d1e96858ae309041cfb0aa2fb658af1292855a 100644 (file)
@@ -43,12 +43,16 @@ import java.awt.EventQueue;
 import java.awt.Font;
 import java.awt.FontMetrics;
 import java.awt.Graphics;
+import java.awt.GraphicsConfiguration;
+import java.awt.GraphicsDevice;
+import java.awt.GraphicsEnvironment;
 import java.awt.Image;
 import java.awt.Insets;
 import java.awt.Point;
 import java.awt.Rectangle;
 import java.awt.event.PaintEvent;
 import java.awt.event.WindowEvent;
+import java.awt.image.VolatileImage;
 
 import gnu.x11.Window;
 import gnu.x11.event.Event;
@@ -135,12 +139,22 @@ public class XWindowPeer
    */
   public Graphics getGraphics()
   {
-    return new XGraphics(xwindow);
+    return new XGraphics2D(xwindow);
   }
 
   public Image createImage(int w, int h)
   {
-    return new XImage(w, h);
+    // FIXME: Should return a buffered image.
+    return createVolatileImage(w, h);
+  }
+
+  @Override
+  public VolatileImage createVolatileImage(int width, int height)
+  {
+    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
+    GraphicsDevice gd = ge.getDefaultScreenDevice();
+    GraphicsConfiguration gc = gd.getDefaultConfiguration();
+    return gc.createCompatibleVolatileImage(width, height);
   }
 
   /**
@@ -168,6 +182,9 @@ public class XWindowPeer
                                 new Rectangle(0, 0, w.getWidth(),
                                               w.getHeight())));
 
+    Graphics g = getGraphics();
+    g.clearRect(0, 0, awtComponent.getWidth(), awtComponent.getHeight());
+    g.dispose();
 //    // Reset input selection.
 //    atts.set_override_redirect(false);
 //    xwindow.change_attributes(atts);
@@ -240,7 +257,7 @@ public class XWindowPeer
    */
   public FontMetrics getFontMetrics(Font font)
   {
-    XFontPeer fontPeer = (XFontPeer) font.getPeer();
+    XFontPeer2 fontPeer = (XFontPeer2) font.getPeer();
     return fontPeer.getFontMetrics(font);
   }
 
diff --git a/libjava/classpath/gnu/java/awt/peer/x/ZPixmapDataBuffer.java b/libjava/classpath/gnu/java/awt/peer/x/ZPixmapDataBuffer.java
new file mode 100644 (file)
index 0000000..8043c5b
--- /dev/null
@@ -0,0 +1,62 @@
+package gnu.java.awt.peer.x;
+
+import gnu.x11.Display;
+import gnu.x11.image.ZPixmap;
+
+import java.awt.GraphicsEnvironment;
+import java.awt.image.DataBuffer;
+
+/**
+ * A DataBuffer implementation that is based on a ZPixmap. This is used
+ * as backing store for BufferedImages.
+ */
+class ZPixmapDataBuffer
+  extends DataBuffer
+{
+
+  /**
+   * The backing ZPixmap.
+   */
+  private ZPixmap zpixmap;
+
+  /**
+   * Creates a new ZPixmapDataBuffer with a specified width and height.
+   *
+   * @param d the X display
+   * @param w the width
+   * @param h the height
+   */
+  ZPixmapDataBuffer(int w, int h)
+  {
+    super(TYPE_BYTE, w * h * 3); // TODO: Support non-24-bit-resolutions.
+    GraphicsEnvironment env =
+      GraphicsEnvironment.getLocalGraphicsEnvironment();
+    XGraphicsDevice dev = (XGraphicsDevice) env.getDefaultScreenDevice();
+    Display d = dev.getDisplay();
+    zpixmap = new ZPixmap(d, w, h, d.default_pixmap_format);
+  }
+
+  /**
+   * Creates a ZPixmapDataBuffer from an existing ZPixmap.
+   *
+   * @param zpixmap the ZPixmap to wrap
+   */
+  ZPixmapDataBuffer(ZPixmap zpixmap)
+  {
+    super(TYPE_BYTE, zpixmap.get_data_length());
+    this.zpixmap = zpixmap;
+  }
+
+  @Override
+  public int getElem(int bank, int i)
+  {
+    return 0xff & zpixmap.get_data_element(i);
+  }
+
+  @Override
+  public void setElem(int bank, int i, int val)
+  {
+    zpixmap.set_data_element(i, (byte) val);
+  }
+
+}
index e0284c329b9ce22dda844449f91178c622fe8b03..ed4150b108c83c0d191476c54cf03745db073426 100644 (file)
@@ -108,6 +108,19 @@ public final class Fixed
     return a & -(1 << n);
   }
 
+  /**
+   * Truncates the number so that only the digits after the point are left.
+   *
+   * @param n the number of digits
+   * @param a the fixed point value
+   *
+   * @return the truncated value
+   */
+  public static int trunc(int n, int a)
+  {
+    return a & (0xFFFFFFFF >>> 32 - n);
+  }
+
   /**
    * Returns the round value of a fixed point value <code>a</code> with
    * the <code>n</code> digits.
index 5228bcac96dc4ac5e4a41fb4c5969361fb5bdf70..5b9b6748b5b724ddd5d7ec1633192af95041d499 100644 (file)
@@ -42,6 +42,7 @@ import java.net.URL;
 import java.net.URLClassLoader;
 import java.net.URLStreamHandlerFactory;
 import java.security.CodeSource;
+import java.security.cert.Certificate;
 import java.util.ArrayList;
 import java.util.jar.Manifest;
 
@@ -95,7 +96,7 @@ public abstract class URLLoader
     this.baseURL = baseURL;
     this.factory = factory;
     this.cache = cache;
-    this.noCertCodeSource = new CodeSource(overrideURL, null);
+    this.noCertCodeSource = new CodeSource(overrideURL, (Certificate[]) null);
   }
 
   /**
index 2a3073a32ed218608fa3d53c254ab6c287c741fb..558289583dd9626f41d8ea5f21bca3c0adbbcc77 100644 (file)
@@ -71,8 +71,12 @@ final class ISO_8859_1 extends Charset
         /* These names are provided by
          * http://oss.software.ibm.com/cgi-bin/icu/convexp?s=ALL
          */
-        "ISO8859_1", "ISO_8859_1", "ibm-819", "ISO_8859-1:1987",
-        "819"
+        "ISO8859_1",
+        "ISO_8859_1",
+        "ibm-819",
+        "ISO_8859-1:1987",
+        "819",
+        "ISO8859-1"
         });
 
   }
index 44318af8ec7ac044f71f418bc64518fb0efc2442..85491922f306d8cc0e54bb9623bde79ff6a09279 100644 (file)
@@ -146,7 +146,7 @@ public final class Engine
       throw new IllegalArgumentException("Constructor's parameters MUST NOT be null");
 
     Enumeration enumer = provider.propertyNames();
-    String key;
+    String key = null;
     String alias;
     int count = 0;
     boolean algorithmFound = false;
@@ -193,7 +193,7 @@ public final class Engine
     Class clazz = null;
     ClassLoader loader = provider.getClass().getClassLoader();
     Constructor constructor = null;
-    String className = provider.getProperty(service + "." + algorithm);
+    String className = provider.getProperty(key);
     sb.append("Class [").append(className).append("] for algorithm [")
         .append(algorithm).append("] of type [").append(service)
         .append("] from provider [").append(provider).append("] ");
diff --git a/libjava/classpath/gnu/javax/sound/AudioSecurityManager.java b/libjava/classpath/gnu/javax/sound/AudioSecurityManager.java
new file mode 100644 (file)
index 0000000..cd10e51
--- /dev/null
@@ -0,0 +1,41 @@
+package gnu.javax.sound;
+
+import javax.sound.sampled.AudioPermission;
+
+public class AudioSecurityManager
+{
+  public static enum Permission
+  {
+    PLAY, RECORD, ALL
+  }
+  
+  public static final void checkPermissions()
+  {
+    checkPermissions(Permission.ALL);
+  }
+  
+  public static final void checkPermissions(Permission permission)
+  {
+    SecurityManager sm = System.getSecurityManager();
+    if (sm != null)
+      {
+        String perm = null;
+        switch (permission)
+          {
+          case PLAY:
+            perm = "play";
+            break;
+            
+          case RECORD:
+            perm = "record";
+            break;
+            
+          case ALL: default:
+            perm = "*";
+            break;
+          }
+        
+        sm.checkPermission(new AudioPermission(perm));
+      }
+  }
+}
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java
new file mode 100644 (file)
index 0000000..b32db0f
--- /dev/null
@@ -0,0 +1,270 @@
+/* GStreamerMixer.java -- Mixer 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.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;
+import javax.sound.sampled.LineListener;
+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>
+ */
+public class GStreamerMixer
+    implements Mixer
+{
+  public static class GstInfo extends Info
+  {
+    /* Mixer Properties */
+    
+    /** Name */
+    private static final String name = "Classpath GStreamer Sound Audio Engine";
+    
+    /** Vendor */
+    private static final String vendor = "GNU Classpath";
+    
+    /** Description */
+    private static final String desc = "GStreamer-based software mixer";
+    
+    /** Version */
+    private static final String vers = "0.0.1";
+    
+    protected GstInfo()
+    {
+      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),
+  };
+  
+  /** Mixer Info */
+  private static final Mixer.Info INFO = new GStreamerMixer.GstInfo();
+
+  public Line getLine(Line.Info info)
+      throws LineUnavailableException
+  {
+    // get all the lines formats supported by this mixer and
+    // and see if there is one matching the given line
+    // if the format comes from the gstreamer backend 
+    // gstreamer will be able to deal with it
+    Class clazz = info.getLineClass();
+    DataLine.Info _info = (DataLine.Info) info;
+    
+    if (clazz == SourceDataLine.class)
+      {
+        for (AudioFormat format : _info.getFormats())
+          {
+            // see if we are a gstreamer child :)
+            if (format.properties().containsKey(GST_BACKEND));
+              {
+                // we got it
+                return new GstSourceDataLine(format);
+              }
+          }
+      }
+   
+    // TODO: we also support basic PCM
+    
+    throw new LineUnavailableException("Cannot open a line");
+  }
+
+  public int getMaxLines(Line.Info info)
+  {
+    // TODO
+    return 1;
+  }
+
+  public Info getMixerInfo()
+  {
+    return INFO;
+  }
+
+  public javax.sound.sampled.Line.Info[] getSourceLineInfo()
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
+  public Line.Info[] getSourceLineInfo(Line.Info info)
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
+  public Line[] getSourceLines()
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
+  public javax.sound.sampled.Line.Info[] getTargetLineInfo()
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
+  public Line.Info[] getTargetLineInfo(Line.Info info)
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
+  public Line[] getTargetLines()
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
+  public boolean isLineSupported(Line.Info info)
+  {
+    // We support any kind of mixer that comes 
+    // from our gstreamer backend.
+    // In addition, we support PCM based audio streams for
+    // direct playback.
+    if (info instanceof DataLine.Info)
+      {
+        DataLine.Info _dinfo = (DataLine.Info) info;
+        _dinfo.getFormats();
+      }
+    
+    return true;
+  }
+
+  public boolean isSynchronizationSupported(Line[] lines, boolean sync)
+  {
+    // TODO Auto-generated method stub
+    return false;
+  }
+
+  public void synchronize(Line[] lines, boolean sync)
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  public void unsynchronize(Line[] lines)
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  public void addLineListener(LineListener listener)
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  public void close()
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  public Control getControl(Type what)
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
+  public Control[] getControls()
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
+  public javax.sound.sampled.Line.Info getLineInfo()
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
+  public boolean isControlSupported(Type what)
+  {
+    // TODO Auto-generated method stub
+    return false;
+  }
+  public boolean isOpen()
+  {
+    // TODO Auto-generated method stub
+    return false;
+  }
+
+  public void open() throws LineUnavailableException
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  public void removeLineListener(LineListener listener)
+  {
+    // TODO Auto-generated method stub
+  }
+}
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixerProvider.java
new file mode 100644 (file)
index 0000000..61a8940
--- /dev/null
@@ -0,0 +1,71 @@
+/*GStreamerMixerProvider -- GNU Classpath GStreamer Mixer provider.
+ 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;
+
+import javax.sound.sampled.Mixer;
+import javax.sound.sampled.Mixer.Info;
+import javax.sound.sampled.spi.MixerProvider;
+
+/**
+ * Concrete provider class for GStreamerMixer.
+ * 
+ * @author Mario Torre
+ */
+public class GStreamerMixerProvider
+    extends MixerProvider
+{
+  private static final GStreamerMixer mixer = new GStreamerMixer(); 
+  
+  @Override
+  public Mixer getMixer(Info info)
+  {
+    if (info.equals(mixer.getMixerInfo())) 
+      return mixer;
+    
+    throw new
+      IllegalArgumentException("This provider cannot handle a mixer or type: "
+                               + info.getName());
+  }
+
+  @Override
+  public Info[] getMixerInfo()
+  {
+    Info[] info = { mixer.getMixerInfo() };
+    return info;
+  }
+}
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java
new file mode 100644 (file)
index 0000000..53b2155
--- /dev/null
@@ -0,0 +1,139 @@
+/*GstAudioFileReader -- GNU Classpath GStreamer AudioFileReader.
+ 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 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;
+import javax.sound.sampled.AudioSystem;
+import javax.sound.sampled.UnsupportedAudioFileException;
+import javax.sound.sampled.spi.AudioFileReader;
+
+/**
+ * An implementation of a general AudioFileReader. Uses GStreamer to
+ * parse and retrieve informations about the file passed as input. 
+ * 
+ * @author Mario Torre <neugens@limasoftware.net>
+ */
+public class GstAudioFileReader
+    extends AudioFileReader
+{
+  @Override
+  public AudioFileFormat getAudioFileFormat(File file)
+      throws UnsupportedAudioFileException, IOException
+  {
+    throw new UnsupportedAudioFileException("Unsupported encoding.");
+  }
+
+  @Override
+  public AudioFileFormat getAudioFileFormat(InputStream is)
+      throws UnsupportedAudioFileException, IOException
+  {
+    throw new UnsupportedAudioFileException("Unsupported encoding.");
+  }
+
+  @Override
+  public AudioFileFormat getAudioFileFormat(URL url)
+      throws UnsupportedAudioFileException, IOException
+  {
+    return getAudioFileFormat(new BufferedInputStream(url.openStream()));
+  }
+
+  @Override
+  public AudioInputStream getAudioInputStream(File file)
+      throws UnsupportedAudioFileException, IOException
+  { 
+    InputStream stream = new FileInputStream(file);
+    long length = file.length();
+    
+    AudioFormat format = null;
+    
+    try
+      {
+        format = GstAudioFileReaderNativePeer.getAudioFormat(file);
+      }
+    catch (Exception e)
+      {
+        // TODO Auto-generated catch block
+        e.printStackTrace();
+      }
+    
+    // get the header size
+    if (format == null)
+      throw new UnsupportedAudioFileException("Unsupported encoding.");
+
+    return new AudioInputStream(stream, format, length);
+  }
+
+  @Override
+  public AudioInputStream getAudioInputStream(InputStream is)
+      throws UnsupportedAudioFileException, IOException
+  {
+    AudioFormat format = null;
+    
+    try
+      {
+        format = GstAudioFileReaderNativePeer.getAudioFormat(is);
+      }
+    catch (Exception e)
+      {
+        // TODO Auto-generated catch block
+        e.printStackTrace();
+      }
+    
+    // get the header size
+    if (format == null)
+      throw new UnsupportedAudioFileException("Unsupported encoding.");
+
+    return new AudioInputStream(is, format, AudioSystem.NOT_SPECIFIED);
+  }
+
+  @Override
+  public AudioInputStream getAudioInputStream(URL url)
+      throws UnsupportedAudioFileException, IOException
+  {
+    return getAudioInputStream(new BufferedInputStream(url.openStream()));
+  }
+}
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReaderNativePeer.java
new file mode 100644 (file)
index 0000000..45ae4ff
--- /dev/null
@@ -0,0 +1,276 @@
+/*GstAudioFileReaderNativePeer -- GNU Classpath GStreamer AudioFileReader
+  native peer class.
+ 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.javax.sound.sampled.gstreamer.GStreamerMixer;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.AudioSystem;
+import javax.sound.sampled.AudioFormat.Encoding;
+
+/**
+ * GStreamer native peer for GstAudioFileReader. 
+ * 
+ * @author Mario Torre <neugens@limasoftware.net>
+ */
+final class GstAudioFileReaderNativePeer
+{
+  private static final String GST_ENCODING = "GStreamer Generic Audio Reader";
+  
+  private static class GstHeader
+  {
+    /* 
+     * NOTE: these properties are accessed by the native code, be careful
+     * if you change them.
+     * Not all the fields are necessarily set.
+     * 
+     */
+    public String file = null;
+    
+    public String suffix = null;
+    
+    public String name = null;
+    
+    public String mimetype = null;
+    
+    public String endianness = null;
+
+    public String channels = null;
+
+    public String rate = null;
+
+    public String width = null;
+
+    public String depth = null;
+    
+    public String isSigned = null;
+    
+    public String layer = null;
+    public String bitrate = null;
+    public String framed = null;
+    public String type = null;
+  }
+  
+  public static AudioFormat getAudioFormat(File file) throws Exception
+  {
+    GstHeader header = new GstHeader();
+    header.file = file.getAbsolutePath();
+    
+    if (!gstreamer_get_audio_format_file(header))
+      return null;
+    
+    return getAudioFormat(header);
+  }
+  
+  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);
+  }
+  
+  public static AudioFormat getAudioFormat(URL url) throws Exception
+  {
+    GstHeader header = new GstHeader();
+    header.file = url.toExternalForm();
+    
+    BufferedInputStream stream = new BufferedInputStream(url.openStream());
+    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);
+  }
+  
+  private static Encoding getEncoding(GstHeader header)
+  {
+    StringBuilder buffer = new StringBuilder();
+    
+    if (header.name == null)
+      {
+        buffer.append(GST_ENCODING);
+        if (header.mimetype != null)
+          {
+            buffer.append(" ");
+            buffer.append(header.mimetype);
+          }
+       
+        header.name = buffer.toString();
+      }
+    else
+      {
+        // strip the "decoder" word from the name, if any
+        // this is a bit ugly, the alternative would be to still output the
+        // full name of the decoder/demuxer
+        String lowerCase = header.name.toLowerCase();
+        int index = lowerCase.indexOf("decoder");
+        if (index == -1)
+          {
+            index = lowerCase.indexOf("demuxer");
+          }
+        
+        if (index == -1)
+          index = lowerCase.length();
+
+        buffer.append(header.name.substring(0, index));
+          
+      }
+    
+    return new Encoding(buffer.toString().trim());
+  }
+  
+  private static AudioFormat getAudioFormat(GstHeader header)
+    throws Exception
+  {
+    int na = AudioSystem.NOT_SPECIFIED;
+    
+    /* we use mimetype as an header, but this could have some side effects */
+    Encoding encoding = getEncoding(header);
+    
+    float sampleRate = ((header.rate != null) ?
+                         new Float(header.rate).floatValue() : na);
+                        
+    int sampleSizeInBits = ((header.depth != null) ?
+                             new Integer(header.depth).intValue() : na);
+    
+    int channels = ((header.channels != null) ?
+                     new Integer(header.channels).intValue() : na);
+    
+    boolean bigEndian = false;
+    if (header.endianness != null)
+      {
+        if (header.endianness.compareTo("4321") == 0)
+          bigEndian = true;
+      }
+    
+    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"))
+      {
+        frameSize = (sampleSizeInBits >> 3) * channels;
+        frameRate = sampleRate;
+      }
+    else if (lowerCase.contains("wav"))
+      {
+        frameSize = ((sampleSizeInBits + 7) / 8) * channels;
+        frameRate = sampleRate;
+      }
+    else if (lowerCase.contains("iff"))
+      {
+        frameSize = (sampleSizeInBits * channels) / 8;
+        frameRate = sampleRate;
+      }
+    
+    // write all the additional properties we got to identify
+    // the gstreamer plugin actually used to deal with this stream
+    Map<String, Object> properties = new HashMap<String, Object>();
+    properties.put(GStreamerMixer.GST_BACKEND, true);
+    properties.put(GStreamerMixer.GST_DECODER, header.name);
+    
+    /* now we put in some of the additional properties if we have them */
+    if (header.type != null) properties.put("type", header.type);
+    if (header.framed != null) properties.put("framed", header.framed);
+    if (header.bitrate != null) properties.put("bitrate", header.bitrate);
+    if (header.isSigned != null) properties.put("isSigned", header.isSigned);
+    if (header.depth != null) properties.put("depth", header.depth);
+    if (header.mimetype != null) properties.put("mimetype", header.mimetype);
+    
+    AudioFormat format = new AudioFormat(encoding,
+                                         sampleRate,
+                                         sampleSizeInBits,
+                                         channels,
+                                         frameSize,
+                                         frameRate,
+                                         bigEndian,
+                                         properties);
+    return format;
+  }
+  
+  /* ***** native methods ***** */
+  
+  /**
+   * Retrieve header information about the file being played.
+   * 
+   * @param info
+   * @return
+   */
+  native static final
+  protected boolean gstreamer_get_audio_format_stream(GstHeader info,
+                                               BufferedInputStream istream);
+  
+  /**
+   * Retrieve header information about the file being played.
+   * 
+   * @param info
+   * @return
+   */
+  native static final
+  protected boolean gstreamer_get_audio_format_file(GstHeader info);
+  
+  static
+  {
+    System.loadLibrary("gstreamerpeer"); //$NON-NLS-1$
+  }
+}
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileWriter.java
new file mode 100644 (file)
index 0000000..9b395dc
--- /dev/null
@@ -0,0 +1,80 @@
+/*GstAudioFileWriter -- GNU Classpath GStreamer AudioFileReader.
+ 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 java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+
+import javax.sound.sampled.AudioInputStream;
+import javax.sound.sampled.AudioFileFormat.Type;
+import javax.sound.sampled.spi.AudioFileWriter;
+
+public class GstAudioFileWriter
+    extends AudioFileWriter
+{
+  @Override
+  public Type[] getAudioFileTypes()
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
+  @Override
+  public Type[] getAudioFileTypes(AudioInputStream ais)
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
+  @Override
+  public int write(AudioInputStream ais, Type type, File out)
+      throws IOException
+  {
+    // TODO Auto-generated method stub
+    return 0;
+  }
+
+  @Override
+  public int write(AudioInputStream ais, Type type, OutputStream os)
+      throws IOException
+  {
+    // TODO Auto-generated method stub
+    return 0;
+  }
+
+}
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstDataLine.java
new file mode 100644 (file)
index 0000000..0467c95
--- /dev/null
@@ -0,0 +1,145 @@
+/* GstDataLine.java -- Abstract DataLine.
+ 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.lines;
+
+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; 
+  
+  private AudioFormat format = null;
+  private int bufferSize = 0;
+  
+  public GstDataLine(AudioFormat format)
+  {
+    this.format = format;
+    this.bufferSize = DEFAULT_BUFFER_SIZE;
+  }
+  
+  public GstDataLine(AudioFormat format, int bufferSize)
+  {
+    this.format = format;
+    this.bufferSize = bufferSize;
+  }
+
+  public int getBufferSize()
+  {
+    return this.bufferSize;
+  }
+
+  public AudioFormat getFormat()
+  {
+    return this.format;
+  }
+
+  public float getLevel()
+  {
+    // 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
+
+  }
+
+  public Control getControl(Type what)
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
+  public Control[] getControls()
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
+  public javax.sound.sampled.Line.Info getLineInfo()
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
+  public boolean isControlSupported(Type what)
+  {
+    return false;
+  }
+
+  public boolean isOpen()
+  {
+    // TODO Auto-generated method stub
+    return false;
+  }
+
+  public void open() throws LineUnavailableException
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  public void removeLineListener(LineListener listener)
+  {
+    // TODO Auto-generated method stub
+
+  }
+}
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstNativeDataLine.java
new file mode 100644 (file)
index 0000000..2b41a11
--- /dev/null
@@ -0,0 +1,48 @@
+/* GstNativeDataLine.java -- SourceDataLine 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.javax.sound.sampled.gstreamer.lines;
+
+public class GstNativeDataLine
+{
+  
+  
+  static
+  {
+    System.loadLibrary("gstreamerpeer"); //$NON-NLS-1$
+  }
+}
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java
new file mode 100644 (file)
index 0000000..d1460e5
--- /dev/null
@@ -0,0 +1,57 @@
+/* GstPipeline.java -- Represents a Gstreamer Pipeline.
+ 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.lines;
+
+import gnu.classpath.Pointer;
+
+/**
+ * 
+ * @author Mario Torre <neugens@limasoftware.net>
+ */
+public class GstPipeline
+{
+  /**
+   * 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;
+
+  native private void setState();
+  
+}
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/lines/GstSourceDataLine.java
new file mode 100644 (file)
index 0000000..d1a0262
--- /dev/null
@@ -0,0 +1,134 @@
+/* GstSourceDataLine.java -- SourceDataLine 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.javax.sound.sampled.gstreamer.lines;
+
+import gnu.javax.sound.AudioSecurityManager;
+
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.LineUnavailableException;
+import javax.sound.sampled.SourceDataLine;
+
+import static gnu.javax.sound.AudioSecurityManager.Permission;
+
+public class GstSourceDataLine
+    extends GstDataLine implements SourceDataLine
+{
+  public GstSourceDataLine(AudioFormat format)
+  {
+    super(format);
+  }
+
+  public void open(AudioFormat fmt) throws LineUnavailableException
+  {
+    AudioSecurityManager.checkPermissions(Permission.PLAY);
+    throw new LineUnavailableException("Line unavailable");
+  }
+
+  public void open(AudioFormat fmt, int size) throws LineUnavailableException
+  {
+    AudioSecurityManager.checkPermissions(Permission.PLAY);
+    throw new LineUnavailableException("Line unavailable");
+  }
+
+  public int write(byte[] buf, int offset, int length)
+  {
+    // TODO Auto-generated method stub
+    return 0;
+  }
+
+  public int available()
+  {
+    // TODO Auto-generated method stub
+    return 0;
+  }
+
+  public void drain()
+  {
+    // TODO Auto-generated method stub
+    
+  }
+
+  public void flush()
+  {
+    // TODO Auto-generated method stub
+    
+  }
+
+  public int getFramePosition()
+  {
+    // TODO Auto-generated method stub
+    return 0;
+  }
+
+  public long getLongFramePosition()
+  {
+    // TODO Auto-generated method stub
+    return 0;
+  }
+
+  public long getMicrosecondPosition()
+  {
+    // TODO Auto-generated method stub
+    return 0;
+  }
+
+  public boolean isActive()
+  {
+    // TODO Auto-generated method stub
+    return false;
+  }
+
+  public void start()
+  {
+    // TODO Auto-generated method stub
+    
+  }
+
+  public void stop()
+  {
+    // TODO Auto-generated method stub
+    
+  }
+
+  public void close()
+  {
+    // TODO Auto-generated method stub
+    
+  }
+
+}
index 5d06a428be420c130487e53e0feddc4e2151b70a..bcc729335d54bf66b261f045dc5e3ae1be7e3c25 100644 (file)
@@ -87,6 +87,7 @@ public class DomDocument
   private final DOMImplementation implementation;
   private boolean checkingCharacters = true;
   boolean checkingWellformedness = true;
+  private boolean defaultAttributes = true;
 
   boolean building; // if true, skip mutation events in the tree
   
@@ -155,7 +156,15 @@ public class DomDocument
   public void setCheckingCharacters(boolean flag)
   {
     checkingCharacters = flag;
-  }  
+  }
+
+  /**
+   * Sets whether to default attributes for new elements.
+   */
+  public void setDefaultAttributes(boolean flag)
+  {
+    defaultAttributes = flag;
+  }
   
   /**
    * <b>DOM L1</b>
@@ -607,7 +616,8 @@ public class DomDocument
         domElement.localName = null;
         element = domElement;
       }
-    defaultAttributes(element, name);
+    if (defaultAttributes)
+      setDefaultAttributes(element, name);
     return element;
   }
 
@@ -652,11 +662,12 @@ public class DomDocument
       }
     
     Element  element = new DomElement(this, namespaceURI, name);
-    defaultAttributes(element, name);
+    if (defaultAttributes)
+      setDefaultAttributes(element, name);
     return element;
   }
   
-  private void defaultAttributes(Element element, String name)
+  private void setDefaultAttributes(Element element, String name)
   {
     DomDoctype doctype = (DomDoctype) getDoctype();
     if (doctype == null)
@@ -671,9 +682,11 @@ public class DomDocument
         for (Iterator i = info.attributes(); i != null && i.hasNext(); )
           {
             DTDAttributeTypeInfo attr = (DTDAttributeTypeInfo) i.next();
+            String value = attr.value;
+            if ("#IMPLIED".equals(attr.mode) && value == null)
+              continue;
             DomAttr node = (DomAttr) createAttribute(attr.name);
             
-            String value = attr.value;
             if (value == null)
               {
                 value = "";
index f55b084cc944039dcfb395aa6d1001e5598e85e6..9fd81e9705b130c55d6badeafa54f9482ff37f43 100644 (file)
@@ -124,7 +124,7 @@ public class DomElement
         node.attributes = new DomNamedNodeMap(node, Node.ATTRIBUTE_NODE);
         for (DomNode ctx = attributes.first; ctx != null; ctx = ctx.next)
           {
-            node.attributes.setNamedItemNS(ctx.cloneNode(true));
+            node.attributes.setNamedItem(ctx.cloneNode(true), true, true);
           }
       }
     return node;
index e3f08e4b4b78f1a1045182014f6716c84ddcd9ee..e37cc3dceb5c315d7009c733d8d371e3f46be6e4 100644 (file)
@@ -148,7 +148,7 @@ public class DomNamedNodeMap
    */
   public Node setNamedItem(Node arg)
   {
-    return setNamedItem(arg, false);
+    return setNamedItem(arg, false, false);
   }
 
   /**
@@ -160,10 +160,10 @@ public class DomNamedNodeMap
    */
   public Node setNamedItemNS(Node arg)
   {
-    return setNamedItem(arg, true);
+    return setNamedItem(arg, true, false);
   }
 
-  Node setNamedItem(Node arg, boolean ns)
+  Node setNamedItem(Node arg, boolean ns, boolean cloning)
   {
     if (readonly)
       {
@@ -171,7 +171,7 @@ public class DomNamedNodeMap
       }
 
     DomNode node = (DomNode) arg;
-    if (node.owner != owner.owner)
+    if (!cloning && node.owner != owner.owner)
       {
         throw new DomDOMException(DOMException.WRONG_DOCUMENT_ERR);
       }
index 9af3f3e549898c2eeff0c0fa4013af4e38067773..1cbdc2aecc04a74c3b2b85cbc599f01c1b1044ab 100644 (file)
@@ -1108,26 +1108,47 @@ public abstract class DomNode
    */
   public Node cloneNode(boolean deep)
   {
-    DomNode node = (DomNode) clone();
-    
     if (deep)
       {
-        DomDocument doc = (nodeType == DOCUMENT_NODE) ?
-          (DomDocument) node : node.owner;
-        boolean building = doc.building;
+        return cloneNodeDeepInternal(true, null);
+      }
+
+    DomNode node = (DomNode) clone();
+    if (nodeType == ENTITY_REFERENCE_NODE)
+      {
+        node.makeReadonly();
+      }
+    notifyUserDataHandlers(UserDataHandler.NODE_CLONED, this, node);
+    return node;
+  }
+
+  /**
+   * Returns a deep clone of this node.
+   */
+  private DomNode cloneNodeDeepInternal(boolean root, DomDocument doc)
+  {
+    DomNode node = (DomNode) clone();
+    boolean building = false; // Never used unless root is true
+    if (root)
+      {
+        doc = (nodeType == DOCUMENT_NODE) ? (DomDocument) node : node.owner;
+        building = doc.building;
         doc.building = true; // Permit certain structural rules
-        for (DomNode ctx = first; ctx != null; ctx = ctx.next)
-          {
-            DomNode newChild = (DomNode) ctx.cloneNode(deep);
-            newChild.setOwner(doc);
-            node.appendChild(newChild);
-          }
-        doc.building = building;
+      }
+    node.owner = doc;
+    for (DomNode ctx = first; ctx != null; ctx = ctx.next)
+      {
+        DomNode newChild = ctx.cloneNodeDeepInternal(false, doc);
+        node.appendChild(newChild);
       }
     if (nodeType == ENTITY_REFERENCE_NODE)
       {
         node.makeReadonly();
       }
+    if (root)
+      {
+        doc.building = building;
+      }
     notifyUserDataHandlers(UserDataHandler.NODE_CLONED, this, node);
     return node;
   }
index 364c576d1969d9a2eefcbe97540beb193801f663..0a165aafbad57e0b478c1d5bd3603acf4b957f0b 100644 (file)
@@ -138,6 +138,7 @@ public class SAXEventSink
     doc = new DomDocument();
     doc.setStrictErrorChecking(false);
     doc.setBuilding(true);
+    doc.setDefaultAttributes(false);
     ctx = doc;
 
     final String FEATURES = "http://xml.org/sax/features/";
@@ -185,6 +186,7 @@ public class SAXEventSink
   {
     doc.setStrictErrorChecking(true);
     doc.setBuilding(false);
+    doc.setDefaultAttributes(true);
     DomDoctype doctype = (DomDoctype) doc.getDoctype();
     if (doctype != null)
       {
index fae4afec808525c55790b69df476c8f0c0f7883b..c1eee946e6977cc20946e827837d03743efc7bd1 100644 (file)
@@ -4598,6 +4598,28 @@ public class XMLParser
         }
       return false;
     }
+
+    public String toString()
+    {
+      StringBuffer buf = new StringBuffer(getClass().getName());
+      buf.append('[');
+      buf.append("name=");
+      buf.append(name);
+      if (value != null)
+        {
+          buf.append(",value=");
+          buf.append(value);
+        }
+      if (type != null)
+        {
+          buf.append(",type=");
+          buf.append(type);
+        }
+      if (specified)
+        buf.append(",specified");
+      buf.append(']');
+      return buf.toString();
+    }
     
   }
 
index 0fb09d61eb9119c19b3db0ab49d1e9e7b1011ab3..bcfe1e9b7f05428496c4cc04c1b49cf144a3a9e9 100644 (file)
@@ -81,6 +81,10 @@ final class WithParam
       {
         return select.evaluate(context, pos, len);
       }
+    else if (content == null)
+      {
+        return "";
+      }
     else
       {
         Document doc = (context instanceof Document) ? (Document) context :
diff --git a/libjava/classpath/include/GtkDragSourceContextPeer.h b/libjava/classpath/include/GtkDragSourceContextPeer.h
deleted file mode 100644 (file)
index 87606ec..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-
-#ifndef __GtkDragSourceContextPeer__
-#define __GtkDragSourceContextPeer__
-
-#include <jni.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeStartDrag (JNIEnv *env, jobject, jobject, jint, jint, jint, jstring);
-JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_connectSignals (JNIEnv *env, jobject, jobject);
-JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_create (JNIEnv *env, jobject, jobject);
-JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeSetCursor (JNIEnv *env, jobject, jint) ;
-JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_setTarget (JNIEnv *env, jobject, jobject);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __GtkDragSourceContextPeer__ */
index 9cb9a05cfc2b8da9f4ba8c75734fffae6993569f..8f53940490a93c9aa2aa8ad2139cfe8575e3868f 100644 (file)
@@ -15,12 +15,14 @@ $(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
 
+GST_PEER_H_FILES = \
+$(top_srcdir)/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.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_GnomeXPathNSResolver.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 \
@@ -76,7 +78,7 @@ $(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/GtkDragSourceContextPeer.h
+$(top_srcdir)/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h
 
 QTPEER_H_FILES = \
 $(top_srcdir)/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h \
@@ -102,7 +104,6 @@ $(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_QtGraphicsEnvironment.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 \
@@ -113,7 +114,6 @@ $(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_QtContainerPeer.h \
 $(top_srcdir)/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h 
 
 GCONF_PREFS_FILES = \
@@ -121,6 +121,7 @@ $(top_srcdir)/include/gnu_java_util_prefs_gconf_GConfNativePeer.h
 
 H_FILES = \
 $(SOUND_H_FILES) \
+$(GST_PEER_H_FILES) \
 $(XMLJ_H_FILES) \
 $(GTKPEER_H_FILES) \
 $(QTPEER_H_FILES) \
@@ -156,30 +157,204 @@ if CREATE_JNI_HEADERS
 
 all-local: $(H_FILES)
 
-$(top_srcdir)/include/gnu_xml_libxmlj_dom_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/dom/%.class
-       $(JAVAH) -o $@ gnu.xml.libxmlj.dom.$*
-
-$(top_srcdir)/include/gnu_xml_libxmlj_sax_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/sax/%.class
-       $(JAVAH) -o $@ gnu.xml.libxmlj.sax.$*
-
-$(top_srcdir)/include/gnu_xml_libxmlj_transform_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/transform/%.class
-       $(JAVAH) -o $@ gnu.xml.libxmlj.transform.$*
-
-$(top_srcdir)/include/gnu_java_awt_peer_gtk_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/awt/peer/gtk/%.class
-       $(JAVAH) -o $@ gnu.java.awt.peer.gtk.$*
-
-$(top_srcdir)/include/gnu_java_awt_peer_qt_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/awt/peer/qt/%.class
-       $(JAVAH) -o $@ gnu.java.awt.peer.qt.$*
-
-$(top_srcdir)/include/gnu_javax_sound_midi_alsa_%.h: $(top_builddir)/$(CLASSDIR)/gnu/javax/sound/midi/alsa/%.class
-       $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.$*
-
-$(top_srcdir)/include/gnu_javax_sound_midi_dssi_%.h: $(top_builddir)/$(CLASSDIR)/gnu/javax/sound/midi/dssi/%.class
-       $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.$*
-
-$(top_srcdir)/include/gnu_java_util_prefs_gconf_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/util/prefs/gconf/%.class
-       $(JAVAH) -o $@ gnu.java.util.prefs.gconf.$*
-
+$(top_srcdir)/include/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
+       $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathNodeList
+$(top_srcdir)/include/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
+       $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeProcessingInstruction
+$(top_srcdir)/include/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
+       $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeNodeList
+$(top_srcdir)/include/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
+       $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathResult
+$(top_srcdir)/include/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
+       $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeEntity
+$(top_srcdir)/include/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
+       $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeXPathExpression
+$(top_srcdir)/include/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
+       $(JAVAH) -o $@ gnu.xml.libxmlj.dom.GnomeDocumentBuilder
+$(top_srcdir)/include/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
+       $(JAVAH) -o $@ gnu.xml.libxmlj.sax.GnomeLocator
+$(top_srcdir)/include/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
+       $(JAVAH) -o $@ gnu.xml.libxmlj.transform.GnomeTransformer
+$(top_srcdir)/include/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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
+       $(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
        $(JAVAH) -o $@ gnu.java.net.VMPlainSocketImpl
 $(top_srcdir)/include/gnu_java_net_local_LocalSocketImpl.h: $(top_srcdir)/gnu/java/net/local/LocalSocketImpl.java
index d2f0707de2cc26d07e77e530f1c980489e692615..a93e9ce7fe2328713dfc1d2c87bcd138a88987f1 100644 (file)
@@ -99,6 +99,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -137,8 +139,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -162,6 +162,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -234,8 +243,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -319,12 +326,14 @@ $(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
 
+GST_PEER_H_FILES = \
+$(top_srcdir)/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.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_GnomeXPathNSResolver.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 \
@@ -380,7 +389,7 @@ $(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/GtkDragSourceContextPeer.h
+$(top_srcdir)/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h
 
 QTPEER_H_FILES = \
 $(top_srcdir)/include/gnu_java_awt_peer_qt_QtCheckboxPeer.h \
@@ -406,7 +415,6 @@ $(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_QtGraphicsEnvironment.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 \
@@ -417,7 +425,6 @@ $(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_QtContainerPeer.h \
 $(top_srcdir)/include/gnu_java_awt_peer_qt_QtEmbeddedWindowPeer.h 
 
 GCONF_PREFS_FILES = \
@@ -425,6 +432,7 @@ $(top_srcdir)/include/gnu_java_util_prefs_gconf_GConfNativePeer.h
 
 H_FILES = \
 $(SOUND_H_FILES) \
+$(GST_PEER_H_FILES) \
 $(XMLJ_H_FILES) \
 $(GTKPEER_H_FILES) \
 $(QTPEER_H_FILES) \
@@ -640,30 +648,204 @@ uninstall-am: uninstall-info-am
 
 @CREATE_JNI_HEADERS_TRUE@all-local: $(H_FILES)
 
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_dom_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/dom/%.class
-@CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.dom.$*
-
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_sax_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/sax/%.class
-@CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.sax.$*
-
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_xml_libxmlj_transform_%.h: $(top_builddir)/$(CLASSDIR)/gnu/xml/libxmlj/transform/%.class
-@CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.xml.libxmlj.transform.$*
-
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_gtk_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/awt/peer/gtk/%.class
-@CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.gtk.$*
-
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_awt_peer_qt_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/awt/peer/qt/%.class
-@CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.awt.peer.qt.$*
-
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_alsa_%.h: $(top_builddir)/$(CLASSDIR)/gnu/javax/sound/midi/alsa/%.class
-@CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.javax.sound.midi.alsa.$*
-
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_javax_sound_midi_dssi_%.h: $(top_builddir)/$(CLASSDIR)/gnu/javax/sound/midi/dssi/%.class
-@CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.javax.sound.midi.dssi.$*
-
-@CREATE_JNI_HEADERS_TRUE@$(top_srcdir)/include/gnu_java_util_prefs_gconf_%.h: $(top_builddir)/$(CLASSDIR)/gnu/java/util/prefs/gconf/%.class
-@CREATE_JNI_HEADERS_TRUE@      $(JAVAH) -o $@ gnu.java.util.prefs.gconf.$*
-
+@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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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@      $(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
index a0e3150c5c94e77424eb338a8b0d206582e75e2a..e52b7eff732b6733cb698aa4e496117e380e4c31 100644 (file)
 /* Define this symbol if you have MSG_NOSIGNAL */
 #undef HAVE_MSG_NOSIGNAL
 
+/* Define this symbol if you have MSG_WAITALL */
+#undef HAVE_MSG_WAITALL
+
 /* Define to 1 if you have the `msync' function. */
 #undef HAVE_MSYNC
 
diff --git a/libjava/classpath/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h b/libjava/classpath/include/gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h
new file mode 100644 (file)
index 0000000..f9fca11
--- /dev/null
@@ -0,0 +1,23 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+
+#ifndef __gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer__
+#define __gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer__
+
+#include <jni.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeStartDrag (JNIEnv *env, jobject, jobject, jint, jint, jint, jstring);
+JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_connectSignals (JNIEnv *env, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_create (JNIEnv *env, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeSetCursor (JNIEnv *env, jobject, jint);
+JNIEXPORT void JNICALL Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_setTarget (JNIEnv *env, jobject, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer__ */
index 3ae95a283e56e09b74a8532c5442af44a77ca842..a24f92d196be693c94b3dcb51200b65f0d54ca3d 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,7 +38,6 @@ 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 3dd8bb431784b84c57c18116eb4e277cb681f624..2df12469b42ea8811e498baa66bf5306ed06a176 100644 (file)
@@ -1,10 +1,10 @@
 /* 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"
 {
index 6177a6fb9390171a1424ddad5d714a182f50c9d5..aa0bd0156899a2a53be31425214695f1000eca0c 100644 (file)
@@ -10,7 +10,7 @@ extern "C"
 {
 #endif
 
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_initStaticState (JNIEnv *env, jclass);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_initIDs (JNIEnv *env, jclass);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeInitState (JNIEnv *env, jobject);
 JNIEXPORT jobjectArray JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetScreenDevices (JNIEnv *env, jobject);
 JNIEXPORT jobject JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetDefaultScreenDevice (JNIEnv *env, jobject);
index 8037af0825ee4c7c231069c4aaba174bcfcbd0f1..37654e4f48db7fc0a4717caaea6fd28d5e8e5d43 100644 (file)
@@ -10,7 +10,7 @@ extern "C"
 {
 #endif
 
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_initStaticState (JNIEnv *env, jclass);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_initIDs (JNIEnv *env, jclass);
 JNIEXPORT jobject JNICALL Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetFixedDisplayMode (JNIEnv *env, jobject, jobject);
 JNIEXPORT jstring JNICALL Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetIDString (JNIEnv *env, jobject);
 JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetDisplayModeIndex (JNIEnv *env, jobject, jobject);
index fd9b10687b1ed8cc57d2d47ddd345f642d4146c9..1a95d70d339e5ebad35119ee82babfb86cad6bbb 100644 (file)
@@ -10,6 +10,7 @@ extern "C"
 {
 #endif
 
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkGenericPeer_initIDs (JNIEnv *env, jclass);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose (JNIEnv *env, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkGenericPeer_gtkWidgetModifyFont (JNIEnv *env, jobject, jstring, jint, jint);
 
index 5bceda7ad7b83d14d82a3d4e3b770fdbc03ee0f9..ad6eb394453d270972e7004ef48b0cf891c2631b 100644 (file)
@@ -13,6 +13,7 @@ extern "C"
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit (JNIEnv *env, jclass, jint, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkMain (JNIEnv *env, jclass);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkQuit (JNIEnv *env, jclass);
+JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_initIDs (JNIEnv *env, jclass);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_beep (JNIEnv *env, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_getScreenSizeDimensions (JNIEnv *env, jobject, jintArray);
 JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_getScreenResolution (JNIEnv *env, jobject);
diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtContainerPeer.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtContainerPeer.h
deleted file mode 100644 (file)
index 2993e18..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-
-#ifndef __gnu_java_awt_peer_qt_QtContainerPeer__
-#define __gnu_java_awt_peer_qt_QtContainerPeer__
-
-#include <jni.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gnu_java_awt_peer_qt_QtContainerPeer__ */
index 632167a7662332c585c675d1a6c3bd68be230017..ebc607ed34e88f29debd182444258a71a476e402 100644 (file)
@@ -14,7 +14,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_init (JNIEnv *env
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_initGraphics (JNIEnv *env, jobject, jobject, jobject);
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_dispose (JNIEnv *env, jobject);
 JNIEXPORT jobject JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_getStringBounds (JNIEnv *env, jobject, jstring);
-JNIEXPORT jboolean JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_canDisplay (JNIEnv *env, jobject, jchar);
+JNIEXPORT jboolean JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_canDisplay (JNIEnv *env, jobject, jint);
 JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_getAscent (JNIEnv *env, jobject);
 JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_getDescent (JNIEnv *env, jobject);
 JNIEXPORT jint JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_getHeight (JNIEnv *env, jobject);
diff --git a/libjava/classpath/include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h b/libjava/classpath/include/gnu_java_awt_peer_qt_QtGraphicsEnvironment.h
deleted file mode 100644 (file)
index d964760..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-
-#ifndef __gnu_java_awt_peer_qt_QtGraphicsEnvironment__
-#define __gnu_java_awt_peer_qt_QtGraphicsEnvironment__
-
-#include <jni.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gnu_java_awt_peer_qt_QtGraphicsEnvironment__ */
diff --git a/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h b/libjava/classpath/include/gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer.h
new file mode 100644 (file)
index 0000000..509a43c
--- /dev/null
@@ -0,0 +1,20 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+
+#ifndef __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer__
+#define __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer__
+
+#include <jni.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+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);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __gnu_javax_sound_sampled_gstreamer_io_GstAudioFileReaderNativePeer__ */
diff --git a/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h b/libjava/classpath/include/gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h
deleted file mode 100644 (file)
index 95fa3d8..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-/* DO NOT EDIT THIS FILE - it is machine generated */
-
-#ifndef __gnu_xml_libxmlj_dom_GnomeXPathNSResolver__
-#define __gnu_xml_libxmlj_dom_GnomeXPathNSResolver__
-
-#include <jni.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gnu_xml_libxmlj_dom_GnomeXPathNSResolver__ */
index 3a0d9c31ec300401dbe0206b6490f995d525ebe8..1c9be9584c08a4b914bdb14021e795c0bcca5c6f 100644 (file)
@@ -1,5 +1,5 @@
 /* jni.h
-   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006  Free Software Foundation
+   Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007  Free Software Foundation
 
 This file is part of GNU Classpath.
 
@@ -117,8 +117,8 @@ typedef jobject jdoubleArray;
 #define JNI_TRUE  1
 #define JNI_FALSE 0
 
-typedef const struct JNINativeInterface *JNIEnv;
-typedef const struct JNIInvokeInterface *JavaVM;
+typedef const struct JNINativeInterface_ *JNIEnv;
+typedef const struct JNIInvokeInterface_ *JavaVM;
 
 # endif /* __cplusplus */
 
@@ -206,7 +206,7 @@ typedef struct
   void *fnPtr;                 /* Sigh.  */
 } JNINativeMethod;
 
-struct JNINativeInterface
+struct JNINativeInterface_
 {
   void *reserved0;
   void *reserved1;
@@ -256,7 +256,7 @@ struct JNINativeInterface
   jobject (JNICALL *NewObjectV)                           (JNIEnv *, jclass, 
                                                     jmethodID, va_list);
   jobject (JNICALL *NewObjectA)                           (JNIEnv *, jclass, 
-                                                    jmethodID, jvalue *);
+                                                    jmethodID, const jvalue *);
 
   jclass   (JNICALL *GetObjectClass)               (JNIEnv *, jobject);
   jboolean (JNICALL *IsInstanceOf)                 (JNIEnv *, jobject, jclass);
@@ -267,114 +267,114 @@ struct JNINativeInterface
   jobject (JNICALL *CallObjectMethodV)    (JNIEnv *, jobject, jmethodID,
                                             va_list);
   jobject (JNICALL *CallObjectMethodA)    (JNIEnv *, jobject, jmethodID,
-                                            jvalue *);
+                                            const jvalue *);
   jboolean (JNICALL *CallBooleanMethod)           (JNIEnv *, jobject, jmethodID,
                                             ...);
   jboolean (JNICALL *CallBooleanMethodV)   (JNIEnv *, jobject, jmethodID,
                                             va_list);
   jboolean (JNICALL *CallBooleanMethodA)   (JNIEnv *, jobject, jmethodID,
-                                            jvalue *);
+                                            const jvalue *);
   jbyte (JNICALL *CallByteMethod)   (JNIEnv *, jobject, jmethodID, ...);
   jbyte (JNICALL *CallByteMethodV)        (JNIEnv *, jobject, jmethodID,
                                             va_list);
   jbyte (JNICALL *CallByteMethodA)        (JNIEnv *, jobject, jmethodID,
-                                            jvalue *);
+                                            const jvalue *);
   jchar (JNICALL *CallCharMethod)         (JNIEnv *, jobject, jmethodID, ...);
   jchar (JNICALL *CallCharMethodV)        (JNIEnv *, jobject, jmethodID,
                                             va_list);
   jchar (JNICALL *CallCharMethodA)        (JNIEnv *, jobject, jmethodID,
-                                            jvalue *);
+                                            const jvalue *);
   jshort (JNICALL *CallShortMethod)       (JNIEnv *, jobject, jmethodID, ...);
   jshort (JNICALL *CallShortMethodV)      (JNIEnv *, jobject, jmethodID,
                                             va_list);
   jshort (JNICALL *CallShortMethodA)      (JNIEnv *, jobject, jmethodID,
-                                            jvalue *);
+                                            const jvalue *);
   jint         (JNICALL *CallIntMethod)           (JNIEnv *, jobject, jmethodID, ...);
   jint         (JNICALL *CallIntMethodV)          (JNIEnv *, jobject, jmethodID,
                                             va_list);
   jint         (JNICALL *CallIntMethodA)          (JNIEnv *, jobject, jmethodID,
-                                            jvalue *);
+                                            const jvalue *);
   jlong (JNICALL *CallLongMethod)         (JNIEnv *, jobject, jmethodID, ...);
   jlong (JNICALL *CallLongMethodV)        (JNIEnv *, jobject, jmethodID,
                                             va_list);
   jlong (JNICALL *CallLongMethodA)        (JNIEnv *, jobject, jmethodID,
-                                            jvalue *);
+                                            const jvalue *);
   jfloat (JNICALL *CallFloatMethod)       (JNIEnv *, jobject, jmethodID, ...);
   jfloat (JNICALL *CallFloatMethodV)      (JNIEnv *, jobject, jmethodID,
                                             va_list);
   jfloat (JNICALL *CallFloatMethodA)      (JNIEnv *, jobject, jmethodID,
-                                            jvalue *);
+                                            const jvalue *);
   jdouble (JNICALL *CallDoubleMethod)     (JNIEnv *, jobject, jmethodID, ...);
   jdouble (JNICALL *CallDoubleMethodV)    (JNIEnv *, jobject, jmethodID,
                                             va_list);
   jdouble (JNICALL *CallDoubleMethodA)    (JNIEnv *, jobject, jmethodID,
-                                            jvalue *);
+                                            const jvalue *);
   void  (JNICALL *CallVoidMethod)         (JNIEnv *, jobject, jmethodID, ...);
   void  (JNICALL *CallVoidMethodV)        (JNIEnv *, jobject, jmethodID,
                                             va_list);
   void  (JNICALL *CallVoidMethodA)        (JNIEnv *, jobject, jmethodID,
-                                            jvalue *);
+                                            const jvalue *);
 
   jobject   (JNICALL *CallNonvirtualObjectMethod)  (JNIEnv *, jobject, jclass,
                                                     jmethodID, ...);
   jobject   (JNICALL *CallNonvirtualObjectMethodV) (JNIEnv *, jobject, jclass,
                                                    jmethodID, va_list);
   jobject   (JNICALL *CallNonvirtualObjectMethodA) (JNIEnv *, jobject, jclass,
-                                                   jmethodID, jvalue *);
+                                                   jmethodID, const jvalue *);
   jboolean  (JNICALL *CallNonvirtualBooleanMethod) (JNIEnv *, jobject, jclass,
                                                    jmethodID, ...);
   jboolean  (JNICALL *CallNonvirtualBooleanMethodV) (JNIEnv *, jobject, jclass,
                                                     jmethodID, va_list);
   jboolean  (JNICALL *CallNonvirtualBooleanMethodA) (JNIEnv *, jobject, jclass,
-                                                    jmethodID, jvalue *);
+                                                    jmethodID, const jvalue *);
   jbyte     (JNICALL *CallNonvirtualByteMethod)           (JNIEnv *, jobject, jclass,
                                                    jmethodID, ...);
   jbyte     (JNICALL *CallNonvirtualByteMethodV)   (JNIEnv *, jobject, jclass,
                                                    jmethodID, va_list);
   jbyte     (JNICALL *CallNonvirtualByteMethodA)   (JNIEnv *, jobject, jclass,
-                                                   jmethodID, jvalue *);
+                                                   jmethodID, const jvalue *);
   jchar     (JNICALL *CallNonvirtualCharMethod)           (JNIEnv *, jobject, jclass,
                                                    jmethodID, ...);
   jchar     (JNICALL *CallNonvirtualCharMethodV)   (JNIEnv *, jobject, jclass,
                                                    jmethodID, va_list);
   jchar     (JNICALL *CallNonvirtualCharMethodA)   (JNIEnv *, jobject, jclass,
-                                                   jmethodID, jvalue *);
+                                                   jmethodID, const jvalue *);
   jshort    (JNICALL *CallNonvirtualShortMethod)   (JNIEnv *, jobject, jclass,
                                                    jmethodID, ...);
   jshort    (JNICALL *CallNonvirtualShortMethodV)  (JNIEnv *, jobject, jclass,
                                                    jmethodID, va_list);
   jshort    (JNICALL *CallNonvirtualShortMethodA)  (JNIEnv *, jobject, jclass,
-                                                   jmethodID, jvalue *);
+                                                   jmethodID, const jvalue *);
   jint             (JNICALL *CallNonvirtualIntMethod)     (JNIEnv *, jobject, jclass,
                                                    jmethodID, ...);
   jint             (JNICALL *CallNonvirtualIntMethodV)    (JNIEnv *, jobject, jclass,
                                                    jmethodID, va_list);
   jint             (JNICALL *CallNonvirtualIntMethodA)    (JNIEnv *, jobject, jclass,
-                                                   jmethodID, jvalue *);
+                                                   jmethodID, const jvalue *);
   jlong     (JNICALL *CallNonvirtualLongMethod)           (JNIEnv *, jobject, jclass,
                                                    jmethodID, ...);
   jlong     (JNICALL *CallNonvirtualLongMethodV)   (JNIEnv *, jobject, jclass,
                                                    jmethodID, va_list);
   jlong     (JNICALL *CallNonvirtualLongMethodA)   (JNIEnv *, jobject, jclass,
-                                                   jmethodID, jvalue *);
+                                                   jmethodID, const jvalue *);
   jfloat    (JNICALL *CallNonvirtualFloatMethod)   (JNIEnv *, jobject, jclass,
                                                    jmethodID, ...);
   jfloat    (JNICALL *CallNonvirtualFloatMethodV)  (JNIEnv *, jobject, jclass,
                                                    jmethodID, va_list);
   jfloat    (JNICALL *CallNonvirtualFloatMethodA)  (JNIEnv *, jobject, jclass,
-                                                   jmethodID, jvalue *);
+                                                   jmethodID, const jvalue *);
   jdouble   (JNICALL *CallNonvirtualDoubleMethod)  (JNIEnv *, jobject, jclass,
                                                    jmethodID, ...);
   jdouble   (JNICALL *CallNonvirtualDoubleMethodV) (JNIEnv *, jobject, jclass,
                                                    jmethodID, va_list);
   jdouble   (JNICALL *CallNonvirtualDoubleMethodA) (JNIEnv *, jobject, jclass,
-                                                   jmethodID, jvalue *);
+                                                   jmethodID, const jvalue *);
   void      (JNICALL *CallNonvirtualVoidMethod)           (JNIEnv *, jobject, jclass,
                                                    jmethodID, ...);
   void      (JNICALL *CallNonvirtualVoidMethodV)   (JNIEnv *, jobject, jclass,
                                                    jmethodID, va_list);
   void      (JNICALL *CallNonvirtualVoidMethodA)   (JNIEnv *, jobject, jclass,
-                                                   jmethodID, jvalue *);
+                                                   jmethodID, const jvalue *);
 
   jfieldID  (JNICALL *GetFieldID)          (JNIEnv *, jclass, const char *,
                                            const char *);
@@ -416,61 +416,61 @@ struct JNINativeInterface
   jobject  (JNICALL *CallStaticObjectMethodV) (JNIEnv *, jclass, jmethodID,
                                               va_list);
   jobject  (JNICALL *CallStaticObjectMethodA) (JNIEnv *, jclass, jmethodID,
-                                              jvalue *);
+                                              const jvalue *);
   jboolean (JNICALL *CallStaticBooleanMethod) (JNIEnv *, jclass, jmethodID,
                                               ...);
   jboolean (JNICALL *CallStaticBooleanMethodV) (JNIEnv *, jclass, jmethodID,
                                                va_list);
   jboolean (JNICALL *CallStaticBooleanMethodA) (JNIEnv *, jclass, jmethodID,
-                                               jvalue *);
+                                               const jvalue *);
   jbyte           (JNICALL *CallStaticByteMethod)    (JNIEnv *, jclass, jmethodID,
                                               ...);
   jbyte    (JNICALL *CallStaticByteMethodV)   (JNIEnv *, jclass, jmethodID,
                                               va_list);
   jbyte    (JNICALL *CallStaticByteMethodA)   (JNIEnv *, jclass, jmethodID,
-                                              jvalue *);
+                                              const jvalue *);
   jchar    (JNICALL *CallStaticCharMethod)    (JNIEnv *, jclass, jmethodID,
                                               ...);
   jchar    (JNICALL *CallStaticCharMethodV)   (JNIEnv *, jclass, jmethodID,
                                               va_list);
   jchar    (JNICALL *CallStaticCharMethodA)   (JNIEnv *, jclass, jmethodID,
-                                              jvalue *);
+                                              const jvalue *);
   jshort   (JNICALL *CallStaticShortMethod)   (JNIEnv *, jclass, jmethodID,
                                               ...);
   jshort   (JNICALL *CallStaticShortMethodV)  (JNIEnv *, jclass, jmethodID,
                                               va_list);
   jshort   (JNICALL *CallStaticShortMethodA)  (JNIEnv *, jclass, jmethodID,
-                                              jvalue *);
+                                              const jvalue *);
   jint            (JNICALL *CallStaticIntMethod)     (JNIEnv *, jclass, jmethodID,
                                               ...);
   jint            (JNICALL *CallStaticIntMethodV)    (JNIEnv *, jclass, jmethodID,
                                               va_list);
   jint            (JNICALL *CallStaticIntMethodA)    (JNIEnv *, jclass, jmethodID,
-                                              jvalue *);
+                                              const jvalue *);
   jlong    (JNICALL *CallStaticLongMethod)    (JNIEnv *, jclass, jmethodID,
                                               ...);
   jlong    (JNICALL *CallStaticLongMethodV)   (JNIEnv *, jclass, jmethodID,
                                               va_list);
   jlong    (JNICALL *CallStaticLongMethodA)   (JNIEnv *, jclass, jmethodID,
-                                              jvalue *);
+                                              const jvalue *);
   jfloat   (JNICALL *CallStaticFloatMethod)   (JNIEnv *, jclass, jmethodID,
                                               ...);
   jfloat   (JNICALL *CallStaticFloatMethodV)  (JNIEnv *, jclass, jmethodID,
                                               va_list);
   jfloat   (JNICALL *CallStaticFloatMethodA)  (JNIEnv *, jclass, jmethodID,
-                                              jvalue *);
+                                              const jvalue *);
   jdouble  (JNICALL *CallStaticDoubleMethod)  (JNIEnv *, jclass, jmethodID,
                                               ...);
   jdouble  (JNICALL *CallStaticDoubleMethodV) (JNIEnv *, jclass, jmethodID,
                                               va_list);
   jdouble  (JNICALL *CallStaticDoubleMethodA) (JNIEnv *, jclass, jmethodID,
-                                              jvalue *);
+                                              const jvalue *);
   void     (JNICALL *CallStaticVoidMethod)    (JNIEnv *, jclass, jmethodID,
                                               ...);
   void     (JNICALL *CallStaticVoidMethodV)   (JNIEnv *, jclass, jmethodID,
                                               va_list);
   void     (JNICALL *CallStaticVoidMethodA)   (JNIEnv *, jclass, jmethodID,
-                                              jvalue *);
+                                              const jvalue *);
 
   jfieldID (JNICALL *GetStaticFieldID)        (JNIEnv *, jclass, const char *,
                                               const char *);
@@ -579,21 +579,29 @@ struct JNINativeInterface
                                                    jsize, jsize, jdouble *);
 
   void                 (JNICALL *SetBooleanArrayRegion)   (JNIEnv *, jbooleanArray,
-                                                   jsize, jsize, jboolean *);
+                                                   jsize, jsize,
+                                                    const jboolean *);
   void                 (JNICALL *SetByteArrayRegion)      (JNIEnv *, jbyteArray,
-                                                   jsize, jsize, jbyte *);
+                                                   jsize, jsize,
+                                                    const jbyte *);
   void                 (JNICALL *SetCharArrayRegion)      (JNIEnv *, jcharArray,
-                                                   jsize, jsize, jchar *);
+                                                   jsize, jsize,
+                                                    const jchar *);
   void                 (JNICALL *SetShortArrayRegion)     (JNIEnv *, jshortArray,
-                                                   jsize, jsize, jshort *);
+                                                   jsize, jsize,
+                                                    const jshort *);
   void                 (JNICALL *SetIntArrayRegion)       (JNIEnv *, jintArray,
-                                                   jsize, jsize, jint *);
+                                                   jsize, jsize,
+                                                    const jint *);
   void                 (JNICALL *SetLongArrayRegion)      (JNIEnv *, jlongArray,
-                                                   jsize, jsize, jlong *);
+                                                   jsize, jsize,
+                                                    const jlong *);
   void                 (JNICALL *SetFloatArrayRegion)     (JNIEnv *, jfloatArray,
-                                                   jsize, jsize, jfloat *);
+                                                   jsize, jsize,
+                                                    const jfloat *);
   void                 (JNICALL *SetDoubleArrayRegion)    (JNIEnv *, jdoubleArray,
-                                                   jsize, jsize, jdouble *);
+                                                   jsize, jsize,
+                                                    const jdouble *);
 
   jint     (JNICALL *RegisterNatives)              (JNIEnv *, jclass,
                                                    const JNINativeMethod *, 
@@ -636,7 +644,7 @@ class _Jv_JNIEnv
 {
 public:
   /* The method table.  */
-  struct JNINativeInterface *p;
+  struct JNINativeInterface_ *p;
 
 #ifdef _CLASSPATH_JNIENV_CONTENTS
   _CLASSPATH_JNIENV_CONTENTS
@@ -766,7 +774,8 @@ public:
   jboolean CallBooleanMethodV (jobject obj0, jmethodID meth1, va_list val2)
   { return p->CallBooleanMethodV (this, obj0, meth1, val2); }
 
-  jboolean CallBooleanMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
+  jboolean CallBooleanMethodA (jobject obj0, jmethodID meth1,
+                               const jvalue * val2)
   { return p->CallBooleanMethodA (this, obj0, meth1, val2); }
 
   jbyte CallByteMethod (jobject obj0, jmethodID meth1, ...)
@@ -781,7 +790,7 @@ public:
   jbyte CallByteMethodV (jobject obj0, jmethodID meth1, va_list val2)
   { return p->CallByteMethodV (this, obj0, meth1, val2); }
 
-  jbyte CallByteMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
+  jbyte CallByteMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
   { return p->CallByteMethodA (this, obj0, meth1, val2); }
 
   jchar CallCharMethod (jobject obj0, jmethodID meth1, ...)
@@ -796,7 +805,7 @@ public:
   jchar CallCharMethodV (jobject obj0, jmethodID meth1, va_list val2)
   { return p->CallCharMethodV (this, obj0, meth1, val2); }
 
-  jchar CallCharMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
+  jchar CallCharMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
   { return p->CallCharMethodA (this, obj0, meth1, val2); }
 
   jshort CallShortMethod (jobject obj0, jmethodID meth1, ...)
@@ -811,7 +820,7 @@ public:
   jshort CallShortMethodV (jobject obj0, jmethodID meth1, va_list val2)
   { return p->CallShortMethodV (this, obj0, meth1, val2); }
 
-  jshort CallShortMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
+  jshort CallShortMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
   { return p->CallShortMethodA (this, obj0, meth1, val2); }
 
   jint CallIntMethod (jobject obj0, jmethodID meth1, ...)
@@ -841,7 +850,7 @@ public:
   jlong CallLongMethodV (jobject obj0, jmethodID meth1, va_list val2)
   { return p->CallLongMethodV (this, obj0, meth1, val2); }
 
-  jlong CallLongMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
+  jlong CallLongMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
   { return p->CallLongMethodA (this, obj0, meth1, val2); }
 
   jfloat CallFloatMethod (jobject obj0, jmethodID meth1, ...)
@@ -856,7 +865,7 @@ public:
   jfloat CallFloatMethodV (jobject obj0, jmethodID meth1, va_list val2)
   { return p->CallFloatMethodV (this, obj0, meth1, val2); }
 
-  jfloat CallFloatMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
+  jfloat CallFloatMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
   { return p->CallFloatMethodA (this, obj0, meth1, val2); }
 
   jdouble CallDoubleMethod (jobject obj0, jmethodID meth1, ...)
@@ -871,7 +880,7 @@ public:
   jdouble CallDoubleMethodV (jobject obj0, jmethodID meth1, va_list val2)
   { return p->CallDoubleMethodV (this, obj0, meth1, val2); }
 
-  jdouble CallDoubleMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
+  jdouble CallDoubleMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
   { return p->CallDoubleMethodA (this, obj0, meth1, val2); }
 
   void CallVoidMethod (jobject obj0, jmethodID meth1, ...)
@@ -885,7 +894,7 @@ public:
   void CallVoidMethodV (jobject obj0, jmethodID meth1, va_list val2)
   { p->CallVoidMethodV (this, obj0, meth1, val2); }
 
-  void CallVoidMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
+  void CallVoidMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
   { p->CallVoidMethodA (this, obj0, meth1, val2); }
 
   jobject CallNonvirtualObjectMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -900,7 +909,7 @@ public:
   jobject CallNonvirtualObjectMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
   { return p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, val3); }
 
-  jobject CallNonvirtualObjectMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+  jobject CallNonvirtualObjectMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
   { return p->CallNonvirtualObjectMethodA (this, obj0, cl1, meth2, val3); }
 
   jboolean CallNonvirtualBooleanMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -915,7 +924,7 @@ public:
   jboolean CallNonvirtualBooleanMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
   { return p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, val3); }
 
-  jboolean CallNonvirtualBooleanMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+  jboolean CallNonvirtualBooleanMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
   { return p->CallNonvirtualBooleanMethodA (this, obj0, cl1, meth2, val3); }
 
   jbyte CallNonvirtualByteMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -930,7 +939,7 @@ public:
   jbyte CallNonvirtualByteMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
   { return p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, val3); }
 
-  jbyte CallNonvirtualByteMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+  jbyte CallNonvirtualByteMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
   { return p->CallNonvirtualByteMethodA (this, obj0, cl1, meth2, val3); }
 
   jchar CallNonvirtualCharMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -945,7 +954,7 @@ public:
   jchar CallNonvirtualCharMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
   { return p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, val3); }
 
-  jchar CallNonvirtualCharMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+  jchar CallNonvirtualCharMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
   { return p->CallNonvirtualCharMethodA (this, obj0, cl1, meth2, val3); }
 
   jshort CallNonvirtualShortMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -960,7 +969,7 @@ public:
   jshort CallNonvirtualShortMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
   { return p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, val3); }
 
-  jshort CallNonvirtualShortMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+  jshort CallNonvirtualShortMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
   { return p->CallNonvirtualShortMethodA (this, obj0, cl1, meth2, val3); }
 
   jint CallNonvirtualIntMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -975,7 +984,7 @@ public:
   jint CallNonvirtualIntMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
   { return p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, val3); }
 
-  jint CallNonvirtualIntMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+  jint CallNonvirtualIntMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
   { return p->CallNonvirtualIntMethodA (this, obj0, cl1, meth2, val3); }
 
   jlong CallNonvirtualLongMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -990,7 +999,7 @@ public:
   jlong CallNonvirtualLongMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
   { return p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, val3); }
 
-  jlong CallNonvirtualLongMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+  jlong CallNonvirtualLongMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
   { return p->CallNonvirtualLongMethodA (this, obj0, cl1, meth2, val3); }
 
   jfloat CallNonvirtualFloatMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -1005,7 +1014,7 @@ public:
   jfloat CallNonvirtualFloatMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
   { return p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, val3); }
 
-  jfloat CallNonvirtualFloatMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+  jfloat CallNonvirtualFloatMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
   { return p->CallNonvirtualFloatMethodA (this, obj0, cl1, meth2, val3); }
 
   jdouble CallNonvirtualDoubleMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -1020,7 +1029,7 @@ public:
   jdouble CallNonvirtualDoubleMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
   { return p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, val3); }
 
-  jdouble CallNonvirtualDoubleMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+  jdouble CallNonvirtualDoubleMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
   { return p->CallNonvirtualDoubleMethodA (this, obj0, cl1, meth2, val3); }
 
   void CallNonvirtualVoidMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
@@ -1034,7 +1043,7 @@ public:
   void CallNonvirtualVoidMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
   { p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, val3); }
 
-  void CallNonvirtualVoidMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
+  void CallNonvirtualVoidMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
   { p->CallNonvirtualVoidMethodA (this, obj0, cl1, meth2, val3); }
 
   jfieldID GetFieldID (jclass cl0, const char * val1, const char * val2)
@@ -1109,7 +1118,8 @@ public:
   jobject CallStaticObjectMethodV (jclass cl0, jmethodID meth1, va_list val2)
   { return p->CallStaticObjectMethodV (this, cl0, meth1, val2); }
 
-  jobject CallStaticObjectMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+  jobject CallStaticObjectMethodA (jclass cl0, jmethodID meth1,
+                                   const jvalue * val2)
   { return p->CallStaticObjectMethodA (this, cl0, meth1, val2); }
 
   jboolean CallStaticBooleanMethod (jclass cl0, jmethodID meth1, ...)
@@ -1124,7 +1134,8 @@ public:
   jboolean CallStaticBooleanMethodV (jclass cl0, jmethodID meth1, va_list val2)
   { return p->CallStaticBooleanMethodV (this, cl0, meth1, val2); }
 
-  jboolean CallStaticBooleanMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+  jboolean CallStaticBooleanMethodA (jclass cl0, jmethodID meth1,
+                                     const jvalue * val2)
   { return p->CallStaticBooleanMethodA (this, cl0, meth1, val2); }
 
   jbyte CallStaticByteMethod (jclass cl0, jmethodID meth1, ...)
@@ -1139,7 +1150,7 @@ public:
   jbyte CallStaticByteMethodV (jclass cl0, jmethodID meth1, va_list val2)
   { return p->CallStaticByteMethodV (this, cl0, meth1, val2); }
 
-  jbyte CallStaticByteMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+  jbyte CallStaticByteMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
   { return p->CallStaticByteMethodA (this, cl0, meth1, val2); }
 
   jchar CallStaticCharMethod (jclass cl0, jmethodID meth1, ...)
@@ -1154,7 +1165,7 @@ public:
   jchar CallStaticCharMethodV (jclass cl0, jmethodID meth1, va_list val2)
   { return p->CallStaticCharMethodV (this, cl0, meth1, val2); }
 
-  jchar CallStaticCharMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+  jchar CallStaticCharMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
   { return p->CallStaticCharMethodA (this, cl0, meth1, val2); }
 
   jshort CallStaticShortMethod (jclass cl0, jmethodID meth1, ...)
@@ -1169,7 +1180,8 @@ public:
   jshort CallStaticShortMethodV (jclass cl0, jmethodID meth1, va_list val2)
   { return p->CallStaticShortMethodV (this, cl0, meth1, val2); }
 
-  jshort CallStaticShortMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+  jshort CallStaticShortMethodA (jclass cl0, jmethodID meth1,
+                                 const jvalue * val2)
   { return p->CallStaticShortMethodA (this, cl0, meth1, val2); }
 
   jint CallStaticIntMethod (jclass cl0, jmethodID meth1, ...)
@@ -1184,7 +1196,7 @@ public:
   jint CallStaticIntMethodV (jclass cl0, jmethodID meth1, va_list val2)
   { return p->CallStaticIntMethodV (this, cl0, meth1, val2); }
 
-  jint CallStaticIntMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+  jint CallStaticIntMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
   { return p->CallStaticIntMethodA (this, cl0, meth1, val2); }
 
   jlong CallStaticLongMethod (jclass cl0, jmethodID meth1, ...)
@@ -1199,7 +1211,7 @@ public:
   jlong CallStaticLongMethodV (jclass cl0, jmethodID meth1, va_list val2)
   { return p->CallStaticLongMethodV (this, cl0, meth1, val2); }
 
-  jlong CallStaticLongMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+  jlong CallStaticLongMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
   { return p->CallStaticLongMethodA (this, cl0, meth1, val2); }
 
   jfloat CallStaticFloatMethod (jclass cl0, jmethodID meth1, ...)
@@ -1214,7 +1226,8 @@ public:
   jfloat CallStaticFloatMethodV (jclass cl0, jmethodID meth1, va_list val2)
   { return p->CallStaticFloatMethodV (this, cl0, meth1, val2); }
 
-  jfloat CallStaticFloatMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+  jfloat CallStaticFloatMethodA (jclass cl0, jmethodID meth1,
+                                 const jvalue * val2)
   { return p->CallStaticFloatMethodA (this, cl0, meth1, val2); }
 
   jdouble CallStaticDoubleMethod (jclass cl0, jmethodID meth1, ...)
@@ -1229,7 +1242,8 @@ public:
   jdouble CallStaticDoubleMethodV (jclass cl0, jmethodID meth1, va_list val2)
   { return p->CallStaticDoubleMethodV (this, cl0, meth1, val2); }
 
-  jdouble CallStaticDoubleMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+  jdouble CallStaticDoubleMethodA (jclass cl0, jmethodID meth1,
+                                   const jvalue * val2)
   { return p->CallStaticDoubleMethodA (this, cl0, meth1, val2); }
 
   void CallStaticVoidMethod (jclass cl0, jmethodID meth1, ...)
@@ -1243,7 +1257,7 @@ public:
   void CallStaticVoidMethodV (jclass cl0, jmethodID meth1, va_list val2)
   { p->CallStaticVoidMethodV (this, cl0, meth1, val2); }
 
-  void CallStaticVoidMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
+  void CallStaticVoidMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
   { p->CallStaticVoidMethodA (this, cl0, meth1, val2); }
 
   jfieldID GetStaticFieldID (jclass cl0, const char * val1, const char * val2)
@@ -1517,7 +1531,7 @@ public:
  * Invocation API.
  */
 
-struct JNIInvokeInterface
+struct JNIInvokeInterface_
 {
   void *reserved0;
   void *reserved1;
@@ -1535,7 +1549,7 @@ struct JNIInvokeInterface
 class _Jv_JavaVM
 {
 public:
-  const struct JNIInvokeInterface *functions;
+  const struct JNIInvokeInterface_ *functions;
 
   jint DestroyJavaVM ()
   { return functions->DestroyJavaVM (this); }
@@ -1626,13 +1640,15 @@ typedef struct JDK1_1AttachArgs
 
 \f
 /* Keep c-font-lock-extra-types in alphabetical order. */
-/* Local Variables: */
-/* c-font-lock-extra-types: ("\\sw+_t" 
-   "JNIEnv" "JNINativeMethod" "JavaVM" "JavaVMOption" "jarray"
-   "jboolean" "jbooleanArray" "jbyte" "jbyteArray" "jchar"  "jcharArray" 
-   "jclass" "jdouble" "jdoubleArray" "jfieldID" "jfloat" "jfloatArray"
-   "jint" "jintArray" "jlong" "jlongArray" "jmethodID" "jobject" "jstring" "jthrowable" 
-   "jvalue" "jweak") */
-/* End: */
+/*
+Local Variables:
+c-font-lock-extra-types: ("\\sw+_t" \
+   "JNIEnv" "JNINativeMethod" "JavaVM" "JavaVMOption" "jarray" \
+   "jboolean" "jbooleanArray" "jbyte" "jbyteArray" "jchar"  "jcharArray" \
+   "jclass" "jdouble" "jdoubleArray" "jfieldID" "jfloat" "jfloatArray" \
+   "jint" "jintArray" "jlong" "jlongArray" "jmethodID" "jobject" \
+   "jstring" "jthrowable" "jvalue" "jweak")
+End:
+*/
 
 #endif /* _CLASSPATH_JNI_H */
index b26f7932e54a8589c7fa841ce5352ad3d7b0b41f..c455838f1260ff1e339d5bbd5088f37643286358 100644 (file)
@@ -637,7 +637,7 @@ typedef void (JNICALL *jvmtiStartFunction)
 /*
  * JVM Tool Interface Base Types
  */
-typedef struct JNINativeInterface jniNativeInterface;
+typedef struct JNINativeInterface_ jniNativeInterface;
 
 struct _Jv_jvmtiEnv
 {
index 4fbbae7b7ff932e5af542dbe9612f193a68ed4d1..4d4a9519eaf88b18fb157dfe5fae59c1c5d005c7 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2006-10-14.15
+scriptversion=2005-05-14.22
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -39,24 +39,15 @@ scriptversion=2006-10-14.15
 # when there is no Makefile.
 #
 # This script is compatible with the BSD install script, but was written
-# from scratch.
-
-nl='
-'
-IFS=" ""       $nl"
+# from scratch.  It can only install one file at a time, a restriction
+# shared with many OS's install programs.
 
 # set DOITPROG to echo to test this script
 
 # Don't use :- since 4.3BSD and earlier shells don't like it.
 doit="${DOITPROG-}"
-if test -z "$doit"; then
-  doit_exec=exec
-else
-  doit_exec=$doit
-fi
 
-# Put in absolute file names if you don't have them in your path;
-# or use environment vars.
+# put in absolute paths if you don't have them in your path; or use env. vars.
 
 mvprog="${MVPROG-mv}"
 cpprog="${CPPROG-cp}"
@@ -67,13 +58,7 @@ stripprog="${STRIPPROG-strip}"
 rmprog="${RMPROG-rm}"
 mkdirprog="${MKDIRPROG-mkdir}"
 
-posix_glob=
-posix_mkdir=
-
-# Desired mode of installed file.
-mode=0755
-
-chmodcmd=$chmodprog
+chmodcmd="$chmodprog 0755"
 chowncmd=
 chgrpcmd=
 stripcmd=
@@ -110,7 +95,7 @@ Environment variables override the default commands:
   CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
 "
 
-while test $# -ne 0; do
+while test -n "$1"; do
   case $1 in
     -c) shift
         continue;;
@@ -126,15 +111,9 @@ while test $# -ne 0; do
 
     --help) echo "$usage"; exit $?;;
 
-    -m) mode=$2
+    -m) chmodcmd="$chmodprog $2"
         shift
         shift
-       case $mode in
-         *' '* | *'    '* | *'
-'*       | *'*'* | *'?'* | *'['*)
-           echo "$0: invalid mode: $mode" >&2
-           exit 1;;
-       esac
         continue;;
 
     -o) chowncmd="$chownprog $2"
@@ -157,33 +136,25 @@ while test $# -ne 0; do
 
     --version) echo "$0 $scriptversion"; exit $?;;
 
-    --)        shift
+    *)  # 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
        break;;
-
-    -*)        echo "$0: invalid option: $1" >&2
-       exit 1;;
-
-    *)  break;;
   esac
 done
 
-if test $# -ne 0 && test -z "$dir_arg$dstarg"; 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 "$dstarg"; then
-      # $@ is not empty: it contains at least $arg.
-      set fnord "$@" "$dstarg"
-      shift # fnord
-    fi
-    shift # arg
-    dstarg=$arg
-  done
-fi
-
-if test $# -eq 0; then
+if test -z "$1"; then
   if test -z "$dir_arg"; then
     echo "$0: no input file specified." >&2
     exit 1
@@ -193,33 +164,6 @@ if test $# -eq 0; 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 `-'.
@@ -229,11 +173,15 @@ do
 
   if test -n "$dir_arg"; then
     dst=$src
-    dstdir=$dst
-    test -d "$dstdir"
-    dstdir_status=$?
-  else
+    src=
 
+    if test -d "$dst"; then
+      mkdircmd=:
+      chmodcmd=
+    else
+      mkdircmd=$mkdirprog
+    fi
+  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 '*'.
@@ -260,188 +208,53 @@ do
        echo "$0: $dstarg: Is a directory" >&2
        exit 1
       fi
-      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=$?
+      dst=$dst/`basename "$src"`
     fi
   fi
 
-  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
+  # This sed command emulates the dirname command.
+  dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
 
-    if
-      $posix_mkdir && (
-       umask $mkdir_umask &&
-       $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
-      )
-    then :
-    else
+  # Make sure that the destination directory exists.
+
+  # 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.
-
-      case $dstdir in
-       /*) prefix=/ ;;
-       -*) prefix=./ ;;
-       *)  prefix= ;;
-      esac
-
-      case $posix_glob in
-        '')
-         if (set -f) 2>/dev/null; then
-           posix_glob=true
-         else
-           posix_glob=false
-         fi ;;
-      esac
-
-      oIFS=$IFS
-      IFS=/
-      $posix_glob && set -f
-      set fnord $dstdir
+    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
+
+    pathcomp=
+
+    while test $# -ne 0 ; do
+      pathcomp=$pathcomp$1
       shift
-      $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
+      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
       fi
-    fi
+      pathcomp=$pathcomp/
+    done
   fi
 
   if test -n "$dir_arg"; then
-    { 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
+    $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"; }
+
   else
+    dstfile=`basename "$dst"`
 
     # Make a couple of temp file names in the proper directory.
     dsttmp=$dstdir/_inst.$$_
@@ -449,9 +262,10 @@ 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.
-    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+    $doit $cpprog "$src" "$dsttmp" &&
 
     # and set any options; do chmod last to preserve setuid bits.
     #
@@ -462,10 +276,10 @@ do
     { 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"; } &&
+      && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
 
     # Now rename the file to the real destination.
-    { $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null \
+    { $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
@@ -477,12 +291,11 @@ do
           # reasons.  In this case, the final cleanup might fail but the new
           # file should still install successfully.
           {
-            if test -f "$dst"; then
-              $doit $rmcmd -f "$dst" 2>/dev/null \
-              || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null \
-                    && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }; }\
+            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 $dst" >&2
+                echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
                 (exit 1); exit 1
               }
             else
@@ -491,14 +304,17 @@ do
           } &&
 
           # Now rename the file to the real destination.
-          $doit $mvcmd "$dsttmp" "$dst"
+          $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
         }
-    } || exit 1
-
-    trap '' 0
-  fi
+    }
+  fi || { (exit 1); exit 1; }
 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 e0b34e9923837d93f7f48409ce0c805390c265d1..0fc44287a16c83f362231fa017f1f06f45e3f57c 100644 (file)
@@ -93,7 +93,7 @@ public class AWTKeyStroke implements Serializable
     private static final int MAX_CACHE_SIZE = 2048;
 
     /** Prune stale entries. */
-    protected boolean removeEldestEntry(Entry<AWTKeyStroke,AWTKeyStroke>
+    protected boolean removeEldestEntry(Map.Entry<AWTKeyStroke,AWTKeyStroke>
                                        eldest)
     {
       return size() > MAX_CACHE_SIZE;
index 90df2e66d8c1983ca4d20727f85798b5279627bb..addd1e7132735b67ba10db917883767c08af352b 100644 (file)
@@ -61,7 +61,7 @@ public final class AlphaComposite implements Composite
     private static final int MAX_CACHE_SIZE = 2048;
 
     /** Prune stale entries. */
-    protected boolean removeEldestEntry(Entry eldest)
+    protected boolean removeEldestEntry(Map.Entry eldest)
     {
       return size() > MAX_CACHE_SIZE;
     }
index 7df2f523c86f7216603b5fe81f5788155bbf831e..83fb52d89d759c3d8fa4a4f203ce3a28e4a455cd 100644 (file)
@@ -61,6 +61,21 @@ import javax.accessibility.AccessibleStateSet;
  */
 public class Dialog extends Window
 {
+  public enum ModalExclusionType
+  {
+    APPLICATION_EXCLUDE,
+    NO_EXCLUDE,
+    TOOLKIT_EXCLUDE
+  }
+
+  public enum ModalityType
+  {
+    APPLICATION_MODAL,
+    DOCUMENT_MODAL,
+    MODELESS,
+    TOOLKIT_MODAL
+  }
+
   // Serialization constant
   private static final long serialVersionUID = 5920926903803293709L;
 
index 29b87d6af99ce3d3aff52b4ada9c7d68cd9b2cfd..d6892a626dc1ce431520a00b2ea1545cee252ada 100644 (file)
@@ -169,6 +169,31 @@ public class Font implements Serializable
    */
   public static final int LAYOUT_NO_LIMIT_CONTEXT = 4;
 
+  /**
+   * @since 1.6
+   */
+  public static final String DIALOG = "Dialog";
+
+  /**
+   * @since 1.6
+   */
+  public static final String DIALOG_INPUT = "DialogInput";
+
+  /**
+   * @since 1.6
+   */
+  public static final String MONOSPACED = "Monospaced";
+
+  /**
+   * @since 1.6
+   */
+  public static final String SANS_SERIF = "SansSerif";
+
+  /**
+   * @since 1.6
+   */
+  public static final String SERIF = "Serif";
+
   /**
    * The logical name of this font.
    *
@@ -330,6 +355,11 @@ public class Font implements Serializable
     return getFont(propname, (Font) null);
   }
 
+  protected Font(Font font)
+  {
+    this(font.getName(), font.getAttributes());
+  }
+
   /**
    * Initializes a new instance of <code>Font</code> with the specified
    * attributes.
@@ -491,7 +521,12 @@ public class Font implements Serializable
    */
   public boolean canDisplay(char c)
   {
-    return peer.canDisplay(this, c);    
+    return canDisplay((int) c);
+  }
+
+  public boolean canDisplay(int codePoint)
+  {
+    return peer.canDisplay(this, codePoint);
   }
 
   /**
@@ -1373,6 +1408,12 @@ public class Font implements Serializable
     return getLineMetrics(str, 0, str.length() - 1, frc);
   }
 
+  public boolean hasLayoutAttributes()
+  {
+    // TODO: Implement properly.
+    return false;
+  }
+
   /**
    * Reads the normal fields from the stream and then constructs the
    * peer from the style and size through getPeerFromToolkit().
index 305402e9541a99ff72c4b84f52d6c6c97b3d09ee..b12e9e10dc0d989e792dab77d3e93d4efab5b317 100644 (file)
@@ -1287,6 +1287,12 @@ public abstract class Toolkit
   public abstract Map<TextAttribute,?>
     mapInputMethodHighlight(InputMethodHighlight highlight);
 
+  public abstract boolean isModalExclusionTypeSupported
+                          (Dialog.ModalExclusionType modalExclusionType);
+
+  public abstract boolean isModalityTypeSupported
+                          (Dialog.ModalityType modalityType);
+
   /**
    * Initializes the accessibility framework. In particular, this loads the
    * properties javax.accessibility.screen_magnifier_present and
index f2bcfbcc65fd33b912d741825a25509db8dd0e51..ad777e8f433849075685facdffbe93f7c434cb3a 100644 (file)
@@ -163,6 +163,16 @@ public class MouseEvent extends InputEvent
    */
   private int y;
 
+  /**
+   * The screen position of that mouse event, X coordinate.
+   */
+  private int absX;
+
+  /**
+   * The screen position of that mouse event, Y coordinate.
+   */
+  private int absY;
+
   /**
    * The number of clicks that took place. For MOUSE_CLICKED, MOUSE_PRESSED,
    * and MOUSE_RELEASED, this will be at least 1; otherwise it is 0.
@@ -212,6 +222,7 @@ public class MouseEvent extends InputEvent
                     int button)
   {
     super(source, id, when, modifiers);
+
     this.x = x;
     this.y = y;
     this.clickCount = clickCount;
@@ -234,6 +245,13 @@ public class MouseEvent extends InputEvent
       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;
+      }
   }
 
   /**
@@ -257,6 +275,59 @@ public class MouseEvent extends InputEvent
          NOBUTTON);
   }
 
+  /**
+   * Creates a new MouseEvent. This is like the other constructors and adds
+   * specific absolute coordinates.
+   *
+   * @param source the source of the event
+   * @param id the event id
+   * @param when the timestamp of when the event occurred
+   * @param modifiers the modifier keys during the event, in old or new style
+   * @param x the X coordinate of the mouse point
+   * @param y the Y coordinate of the mouse point
+   * @param absX the absolute X screen coordinate of this event
+   * @param absY the absolute Y screen coordinate of this event
+   * @param clickCount the number of mouse clicks for this event
+   * @param popupTrigger true if this event triggers a popup menu
+   * @param button the most recent mouse button to change state
+   *
+   * @throws IllegalArgumentException if source is null or button is invalid
+   *
+   * @since 1.6
+   */
+  public MouseEvent(Component source, int id, long when, int modifiers,
+                    int x, int y, int absX, int absY, 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);
+
+    this.absX = absX;
+    this.absY = absY;
+  }
+
   /**
    * This method returns the X coordinate of the mouse position. This is
    * relative to the source component.
@@ -279,6 +350,30 @@ public class MouseEvent extends InputEvent
     return y;
   }
 
+  /**
+   * @since 1.6
+   */
+  public Point getLocationOnScreen()
+  {
+    return new Point(absX, absY);
+  }
+
+  /**
+   * @since 1.6
+   */
+  public int getXOnScreen()
+  {
+    return absX;
+  }
+
+  /**
+   * @since 1.6
+   */
+  public int getYOnScreen()
+  {
+    return absY;
+  }
+
   /**
    * This method returns a <code>Point</code> for the x,y position of
    * the mouse pointer. This is relative to the source component.
index bc6e3a457f376a52b833a06299cc4168dfe6ff34..b498ddf664ea2f7cb3dffaa9cbe906c08c1640b3 100644 (file)
@@ -59,6 +59,8 @@ import java.awt.image.ImageObserver;
 import java.awt.image.ImageProducer;
 import java.awt.image.VolatileImage;
 
+import sun.awt.CausedFocusEvent;
+
 /**
  * Defines the methods that a component peer is required to implement.
  */
@@ -264,7 +266,7 @@ public interface ComponentPeer
   /**
    * Requests that this component receives the focus. This is called from
    * {@link Component#requestFocus()}.
-   * 
+   *
    * @specnote Part of the earlier 1.1 API, apparently replaced by argument 
    *           form of the same method.
    */
@@ -518,4 +520,13 @@ public interface ComponentPeer
    * @since 1.5
    */
   void layout();
+
+
+  /**
+   * Requests the focus on the component.
+   */
+  boolean requestFocus(Component lightweightChild, boolean temporary,
+                       boolean focusedWindowChangeAllowed, long time,
+                       CausedFocusEvent.Cause cause);
+
 }
index 13435f8e4c5a182fb971aaf85d9cc3f0a456fe52..929791489ac78c91f0a5d4a701eb742977874db9 100644 (file)
@@ -71,5 +71,8 @@ public interface FramePeer extends WindowPeer
    * @since 1.5
    */
   void setBoundsPrivate(int x, int y, int width, int height);
+
+  Rectangle getBoundsPrivate();
+
 } // interface FramePeer
 
index db81c809d72997a8a93bdd7bb730ab5e4d318dfc..a11bfc7343db5006e7eb230c9aea86e7cd6022f8 100644 (file)
@@ -50,5 +50,7 @@ public interface RobotPeer
   void keyRelease (int keycode);
   int getRGBPixel (int x, int y);
   int[] getRGBPixels (Rectangle screen);
+  void dispose();
+
 } // interface RobotPeer
 
index 00d1035791a31212b073542dec347f4a149943ce..e8b7d72015b96c0401a548d16602af6652dbba51 100644 (file)
@@ -38,6 +38,8 @@ exception statement from your version. */
 
 package java.awt.peer;
 
+import java.awt.Dialog;
+
 public interface WindowPeer extends ContainerPeer
 {
   void toBack();
@@ -57,5 +59,12 @@ public interface WindowPeer extends ContainerPeer
    * @since 1.5
    */
   boolean requestWindowFocus();
+
+  void setAlwaysOnTop(boolean alwaysOnTop);
+  void updateFocusableWindowState();
+  void setModalBlocked(Dialog blocker, boolean blocked);
+  void updateMinimumSize();
+  void updateIconImages();
+
 } // interface WindowPeer 
 
index cc3d0a9e31fb1569ec19449f73ced3d8ace021a7..1f3ba73dc99aca31b9b46b130b9d7e4836ee9e5c 100644 (file)
@@ -799,6 +799,14 @@ outer:
       result = cache.longValue(); 
     else
       {
+       // Note that we can't use Class.isEnum() here, because that returns
+       // false for java.lang.Enum and enum value sub classes.
+       if (Enum.class.isAssignableFrom(cl) || Proxy.isProxyClass(cl))
+         {
+           // Spec says that enums and dynamic proxies have
+           // a serialVersionUID of 0L.
+           return 0L;
+         }
         try
           {
             result = getClassUIDFromField(cl);
index 1e85922be72e1805f850a00f24fe214d4f82adfb..dc39ec2af203401277352558e5bb83054a869d52 100644 (file)
@@ -181,7 +181,7 @@ public final class Float extends Number implements Comparable<Float>
    */
   public static String toString(float f)
   {
-    return VMDouble.toString(f, true);
+    return VMFloat.toString(f);
   }
 
   /**
@@ -331,9 +331,9 @@ public final class Float extends Number implements Comparable<Float>
    *
    * @param str the <code>String</code> to convert
    * @return the <code>float</code> value of <code>s</code>
-   * @throws NumberFormatException if <code>s</code> cannot be parsed as a
+   * @throws NumberFormatException if <code>str</code> cannot be parsed as a
    *         <code>float</code>
-   * @throws NullPointerException if <code>s</code> is null
+   * @throws NullPointerException if <code>str</code> is null
    * @see #MIN_VALUE
    * @see #MAX_VALUE
    * @see #POSITIVE_INFINITY
@@ -342,9 +342,7 @@ public final class Float extends Number implements Comparable<Float>
    */
   public static float parseFloat(String str)
   {
-    // XXX Rounding parseDouble() causes some errors greater than 1 ulp from
-    // the infinitely precise decimal.
-    return (float) Double.parseDouble(str);
+    return VMFloat.parseFloat(str);
   }
 
   /**
index e38eb53edd33e5e9c9e8acf7220c6367580a011a..62907ff775329e9308033796751037fda850f4b1 100644 (file)
@@ -705,10 +705,13 @@ 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 == '-')
+    if (ch == '-' || ch == '+')
       {
         if (len == 1)
-          throw new NumberFormatException("pure '-'");
+          if (ch == '-')
+            throw new NumberFormatException("pure '-'");
+          else if (ch == '+')
+            throw new NumberFormatException("pure '+'");
         isNeg = true;
         ch = str.charAt(++index);
       }
index 373bf204c8e5f23c50bc2ef3bb5b108129758651..fee9f0172ee8d6bdb13d753fb0ce19e1b7884981 100644 (file)
@@ -147,8 +147,7 @@ public final class Array
   {
     if (dimensions.length <= 0)
       throw new IllegalArgumentException ("Empty dimensions array.");
-    return createMultiArray(componentType, dimensions,
-                                  dimensions.length - 1);
+    return createMultiArray(componentType, dimensions, 0);
   }
 
   /**
@@ -638,10 +637,10 @@ public final class Array
   private static Object createMultiArray(Class type, int[] dimensions,
                                          int index)
   {
-    if (index == 0)
-      return newInstance(type, dimensions[0]);
+    if (index == dimensions.length - 1)
+      return newInstance(type, dimensions[index]);
 
-    Object toAdd = createMultiArray(type, dimensions, index - 1);
+    Object toAdd = createMultiArray(type, dimensions, index + 1);
     Class thisType = toAdd.getClass();
     Object[] retval
       = (Object[]) VMArray.createObjectArray(thisType, dimensions[index]);
@@ -649,7 +648,7 @@ public final class Array
       retval[0] = toAdd;
     int i = dimensions[index];
     while (--i > 0)
-      retval[i] = createMultiArray(type, dimensions, index - 1);
+      retval[i] = createMultiArray(type, dimensions, index + 1);
     return retval;
   }
 
index 6df2818c5c9644da878c5d30c86dd485151d5f13..346f51c5dfaec4293b47808120e48bf73ec98702 100644 (file)
@@ -262,10 +262,9 @@ public class URLClassLoader extends SecureClassLoader
     super(parent);
     this.securityContext = null;
     this.factory = factory;
-    addURLs(urls);
-
-    // If this factory is still not in factoryCache, add it.
+    // If this factory is not yet in factoryCache, add it.
     factoryCache.add(factory);
+    addURLs(urls);
   }
 
   // Methods
@@ -624,10 +623,7 @@ public class URLClassLoader extends SecureClassLoader
       }
     catch (IOException ioe)
       {
-       ClassNotFoundException cnfe;
-       cnfe = new ClassNotFoundException(className + " not found in " + this);
-       cnfe.initCause(ioe);
-       throw cnfe;
+       throw new ClassNotFoundException(className + " not found in " + this, ioe);
       }
   }
   
index 2c7e00dcb6e4005e753a29dd929e3db0168a8a78..c2569eea9754238a669cfb3f03b3c446e1749f26 100644 (file)
@@ -358,4 +358,65 @@ public abstract class Buffer
         (arraylength < length + offset))
       throw new IndexOutOfBoundsException ();
   }
+
+  /**
+   * Returns the backing array of this buffer, if this buffer has one.
+   * Modification to the array are directly visible in this buffer and vice
+   * versa.
+   *
+   * <p>
+   * If this is a read-only buffer, then a {@link ReadOnlyBufferException} is
+   * thrown because exposing the array would allow to circumvent the read-only
+   * property. If this buffer doesn't have an array, then an
+   * {@link UnsupportedOperationException} is thrown. Applications should check
+   * if this buffer supports a backing array by calling {@link #hasArray}
+   * first.</p>
+   *
+   * @return the backing array of this buffer
+   *
+   * @throws ReadOnlyBufferException when this buffer is read only
+   * @throws UnsupportedOperationException when this buffer does not provide
+   *         a backing array
+   *
+   * @since 1.6
+   */
+  public abstract Object array();
+
+  /**
+   * Returns <code>true</code> if this buffer can provide a backing array,
+   * <code>false</code> otherwise. When <code>true</code>, application code
+   * can call {@link #array()} to access this backing array.
+   *
+   * @return <code>true</code> if this buffer can provide a backing array,
+   *         <code>false</code> otherwise
+   *
+   * @since 1.6
+   */
+  public abstract boolean hasArray();
+
+  /**
+   * For buffers that are backed by a Java array, this returns the offset
+   * into that array at which the buffer content starts.
+   *
+   * @return the offset into the backing array at which the buffer content
+   *         starts
+   * @throws ReadOnlyBufferException when this buffer is read only
+   * @throws UnsupportedOperationException when this buffer does not provide
+   *         a backing array
+   *
+   * @since 1.6
+   */
+  public abstract int arrayOffset();
+
+  /**
+   * Returns <code>true</code> when this buffer is direct, <code>false</code>
+   * otherwise. A direct buffer is usually backed by a raw memory area instead
+   * of a Java array.
+   *
+   * @return <code>true</code> when this buffer is direct, <code>false</code>
+   *         otherwise
+   *
+   * @since 1.6
+   */
+  public abstract boolean isDirect();
 }
index 34f429f62f7d2df41c2ac9807a2b296041dc5498..2feada4c81742f8b40ee7eb96d55447e744025e9 100644 (file)
@@ -107,20 +107,7 @@ public abstract class CharBuffer extends Buffer
    */
   public static final CharBuffer wrap(CharSequence seq, int start, int end)
   {
-    // FIXME: implement better handling of java.lang.String.
-    // Probably share data with String via reflection.
-            
-    int len = end - start;
-
-    if( len < 0 )
-      throw new IndexOutOfBoundsException();
-
-    char[] buffer = new char[len];
-    
-    for (int i = 0; i < len; i++)
-      buffer[i] = seq.charAt(i + start);
-    
-    return wrap(buffer, 0, len).asReadOnlyBuffer();
+    return new CharSequenceBuffer(seq, start, end);
   }
 
   /**
diff --git a/libjava/classpath/java/nio/CharSequenceBuffer.java b/libjava/classpath/java/nio/CharSequenceBuffer.java
new file mode 100644 (file)
index 0000000..26aad1c
--- /dev/null
@@ -0,0 +1,208 @@
+/* CharBuffer.java -- 
+   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 java.nio;
+
+/**
+ * A CharBuffer that wraps a {@link CharSequence}.
+ */
+final class CharSequenceBuffer
+  extends CharBuffer
+{
+
+  /**
+   * The wrapped char sequence.
+   */
+  private CharSequence charSequence;
+
+  /**
+   * Creates a new CharSequenceBuffer.
+   *
+   * @param charSeq the CharSequence to wrap
+   * @param capacity the capacity
+   * @param limit the limit
+   * @param position the position
+   * @param mark the mark
+   * @param offs the offset
+   */
+  CharSequenceBuffer(CharSequence charSeq, int capacity, int limit,
+                     int position, int mark, int offs)
+  {
+    super(capacity, limit, position, mark);
+    charSequence = charSeq;
+    array_offset = offs;
+  }
+
+  /**
+   * Creates a new instance of CharSequenceBuffer, wrapping the specified
+   * {@link CharSequence}.
+   *
+   * @param charSeq the char sequence to wrap
+   * @param start the start index in the char sequence
+   * @param end the end index in the char sequence
+   */
+  CharSequenceBuffer(CharSequence charSeq, int start, int end)
+  {
+    this(charSeq, charSeq.length(), end, start, -1, 0);
+  }
+
+  /**
+   * Returns a read-only view of this buffer.
+   */
+  public CharBuffer asReadOnlyBuffer()
+  {
+    return duplicate();
+  }    
+
+  /**
+   * This buffer class is not writable by definition and thus throws
+   * a ReadOnlyBufferException here.
+   */
+  public CharBuffer compact()
+  {
+    throw new ReadOnlyBufferException();
+  }
+
+  /**
+   * Returns a duplicate of this buffer.
+   *
+   * @return a duplicate of this buffer
+   */
+  public CharBuffer duplicate()
+  {
+    return new CharSequenceBuffer(charSequence, cap, limit, pos, mark, 0);
+  }
+
+  /**
+   * Returns the character at the current position.
+   *
+   * @return the character at the current position
+   */
+  public char get()
+  {
+    if (pos >= limit)
+      throw new BufferUnderflowException();
+
+    return charSequence.charAt(array_offset + pos++);
+  }
+
+  /**
+   * Returns the character at the specified position.
+   *
+   * @return the character at the specified position
+   */
+  public char get(int index)
+  {
+    if (index < 0 || index >= limit)
+      throw new IndexOutOfBoundsException();
+
+    return charSequence.charAt(array_offset + index);
+  }
+
+  /**
+   * Cannot be direct, return <code>false</code> here.
+   *
+   * @return false
+   */
+  public boolean isDirect()
+  {
+    return false;
+  }
+
+  /**
+   * Returns the byte order of this buffer. This is always the native byte
+   * order.
+   *
+   * @return the byte order of this buffer
+   */
+  public ByteOrder order()
+  {
+    return ByteOrder.nativeOrder();
+  }
+
+  /**
+   * This buffer class is not writable by definition and thus throws
+   * a ReadOnlyBufferException here.
+   */
+  public CharBuffer put(char b)
+  {
+    throw new ReadOnlyBufferException();
+  }
+
+  /**
+   * This buffer class is not writable by definition and thus throws
+   * a ReadOnlyBufferException here.
+   */
+  public CharBuffer put(int index, char b)
+  {
+    throw new ReadOnlyBufferException();
+  }
+
+  /**
+   * Returns a slice of this buffer, exposing the current position and limit.
+   */
+  public CharBuffer slice()
+  {
+    int newCapacity = limit - pos;
+    return new CharSequenceBuffer(charSequence, newCapacity, newCapacity, 0,
+                                  -1, pos);
+  }
+
+  /**
+   * Returns a sub sequence from the specified start index and with the
+   * specified length.
+   *
+   * @param start the start index
+   * @param length the length of the sub sequence
+   */
+  public CharSequence subSequence(int start, int length)
+  {
+    int begin = array_offset + start + pos;
+    return charSequence.subSequence(begin, begin + length);
+  }
+
+  /**
+   * This kind of CharBuffer is read-only, so we return <code>true</code>
+   * here.
+   */
+  public boolean isReadOnly()
+  {
+    return true;
+  }
+
+}
index 319831544610b3c21ed1474358892365f02284c8..33bbac8b0008eedb757f6e20213fbbd8cb08c8fd 100644 (file)
@@ -133,7 +133,7 @@ class CharViewBufferImpl extends CharBuffer
   public CharBuffer slice ()
   {
     // Create a sliced copy of this object that shares its content.
-    return new CharViewBufferImpl (bb, (position () >> 1) + offset,
+    return new CharViewBufferImpl (bb, (position () << 1) + offset,
                                   remaining (), remaining (), 0, -1,
                                   isReadOnly (), endian);
   }
index e860f2f808da9aa11a7cd00ccdb1c836265b3603..d1399154a71a73d6d18be229bfe9519e3004027f 100644 (file)
@@ -130,7 +130,7 @@ final class DoubleViewBufferImpl extends DoubleBuffer
   
   public DoubleBuffer slice ()
   {
-    return new DoubleViewBufferImpl (bb, (position () >> 3) + offset,
+    return new DoubleViewBufferImpl (bb, (position () << 3) + offset,
                                     remaining(), remaining(), 0, -1,
                                      readOnly, endian);
   }
index 55770d52a2932d66fc0d3a98d04c7eea92e53039..8bb342d103d775105031150df19dca253b58f482 100644 (file)
@@ -131,7 +131,7 @@ final class FloatViewBufferImpl extends FloatBuffer
   public FloatBuffer slice ()
   {
     // Create a sliced copy of this object that shares its content.
-    return new FloatViewBufferImpl (bb, (position () >> 2) + offset,
+    return new FloatViewBufferImpl (bb, (position () << 2) + offset,
                                    remaining(), remaining(), 0, -1,
                                    readOnly, endian);
   }
index d0b0057c117bf42ff088d441c6769820569bc528..cd8307f3ebd99073fc5977e230cefc9ba6554f07 100644 (file)
@@ -131,7 +131,7 @@ final class IntViewBufferImpl extends IntBuffer
   public IntBuffer slice ()
   {
     // Create a sliced copy of this object that shares its content.
-    return new IntViewBufferImpl (bb, (position () >> 2) + offset,
+    return new IntViewBufferImpl (bb, (position () << 2) + offset,
                                  remaining(), remaining(), 0, -1,
                                  readOnly, endian);
   }
index 9c3452ae809d8d11bc7ed5015d34a24018c557d5..eefbcbdc8dd55363f08b398fb3d6cd655ac66e08 100644 (file)
@@ -131,7 +131,7 @@ final class LongViewBufferImpl extends LongBuffer
   public LongBuffer slice ()
   {
     // Create a sliced copy of this object that shares its content.
-    return new LongViewBufferImpl (bb, (position () >> 3) + offset,
+    return new LongViewBufferImpl (bb, (position () << 3) + offset,
                                   remaining(), remaining(), 0, -1,
                                   readOnly, endian);
   }
index cdd559522ff94d33c110abc8d53809c0d70813da..df7133612d26ad994f951c1cb52881047b974846 100644 (file)
@@ -131,7 +131,7 @@ final class ShortViewBufferImpl extends ShortBuffer
   public ShortBuffer slice ()
   {
     // Create a sliced copy of this object that shares its content.
-    return new ShortViewBufferImpl (bb, (position () >> 1) + offset,
+    return new ShortViewBufferImpl (bb, (position () << 1) + offset,
                                    remaining(), remaining(), 0, -1,
                                    readOnly, endian);
   }
index e1a30f5f005eaae445c4a98ca3727803de36779a..180c0a9be29b33f8811ee3deb5001f3626b4809b 100644 (file)
@@ -58,7 +58,7 @@ import java.io.Serializable;
  *
  * @author unknown
  */
-public final class MarshalledObject
+public final class MarshalledObject<T>
   implements Serializable
 {
   // The following fields are from Java API Documentation "Serialized form"
@@ -74,7 +74,7 @@ public final class MarshalledObject
    * @param obj the object to marshal
    * @throws IOException if an I/O error during serialization occurs.
    */
-  public MarshalledObject(Object obj) throws IOException
+  public MarshalledObject(T obj) throws IOException
   {
     ByteArrayOutputStream objStream = new ByteArrayOutputStream();
     RMIMarshalledObjectOutputStream stream = 
@@ -136,14 +136,14 @@ public final class MarshalledObject
    * @throws ClassNotFoundException if the class of the deserialized object 
    * cannot be found.
    */
-  public Object get() throws IOException, ClassNotFoundException
+  public T get() throws IOException, ClassNotFoundException
   {
     if (objBytes == null)
       return null;
     
     RMIMarshalledObjectInputStream stream = 
       new RMIMarshalledObjectInputStream(objBytes, locBytes);
-    return stream.readObject();
+    return (T) stream.readObject();
   }
 
   public int hashCode()
index 472c65c1110406ce012b2827f57b7d71a65dd9aa..0f201cacf63608a079441b089f99fef2c89de19c 100644 (file)
@@ -103,7 +103,7 @@ public abstract class Activatable
    * @throws ActivationException if the activation failed
    * @throws RemoteException if the remote call failed.
    */
-  protected Activatable(String codebase, MarshalledObject data,
+  protected Activatable(String codebase, MarshalledObject<?> data,
                         boolean restart, int port) throws ActivationException,
       RemoteException
   {
@@ -133,7 +133,7 @@ public abstract class Activatable
    * @throws ActivationException if the activation failed
    * @throws RemoteException if the remote call failed.
    */
-  protected Activatable(String codebase, MarshalledObject data,
+  protected Activatable(String codebase, MarshalledObject<?> data,
                         boolean restart, int port, RMIClientSocketFactory csf,
                         RMIServerSocketFactory ssf) throws ActivationException,
       RemoteException
@@ -314,7 +314,7 @@ public abstract class Activatable
    * @throws RemoteException if the registration or export fails
    */
   public static ActivationID exportObject(Remote obj, String location,
-                                          MarshalledObject data,
+                                          MarshalledObject<?> data,
                                           boolean restart, int port)
       throws ActivationException, RemoteException
   {
index b8616562fa56802cd14600b5dc132baf5300a24f..ae2b78eca8e7760bd4a6c9d598c83e7c1dd18d69 100644 (file)
@@ -80,7 +80,7 @@ public final class ActivationDesc
   /**
    * The object specific intitalization data.
    */
-  private MarshalledObject data;
+  private MarshalledObject<?> data;
 
   /**
    * The start mode.
@@ -95,7 +95,7 @@ public final class ActivationDesc
    * @param location the code base URL
    * @param data the object initialization data, contained in a marshalled form
    */
-  public ActivationDesc(String className, String location, MarshalledObject data)
+  public ActivationDesc(String className, String location, MarshalledObject<?> data)
       throws ActivationException
   {
     this(ActivationGroup.currentGroupID(), className, location, data, false);
@@ -115,7 +115,7 @@ public final class ActivationDesc
    *          object is normally activated on demand).
    */
   public ActivationDesc(String className, String location,
-                        MarshalledObject data, boolean restart)
+                        MarshalledObject<?> data, boolean restart)
       throws ActivationException
   {
     this(ActivationGroup.currentGroupID(), className, location, data, restart);
@@ -131,7 +131,7 @@ public final class ActivationDesc
    * @param data the object initialization data, contained in a marshalled form
    */
   public ActivationDesc(ActivationGroupID groupID, String className,
-                        String location, MarshalledObject data)
+                        String location, MarshalledObject<?> data)
   {
     this(groupID, className, location, data, false);
   }
@@ -150,7 +150,7 @@ public final class ActivationDesc
    *          object is normally activated on demand).
    */
   public ActivationDesc(ActivationGroupID groupID, String className,
-                        String location, MarshalledObject data, boolean restart)
+                        String location, MarshalledObject<?> data, boolean restart)
   {
     this.groupid = groupID;
     this.classname = className;
@@ -184,7 +184,7 @@ public final class ActivationDesc
     return location;
   }
 
-  public MarshalledObject getData()
+  public MarshalledObject<?> getData()
   {
     return data;
   }
index 5e7bbd209984f92ff8a898bbf61a319feb25efb1..ad5a05d01a9a1aeb6a6a35667cb4a2b18147c9ef 100644 (file)
@@ -314,7 +314,8 @@ public abstract class ActivationGroup
    * @throws UnknownObjectException if such object is not registered
    * @throws RemoteException on remote call (to monitor) error
    */
-  protected void activeObject(ActivationID id, MarshalledObject mObject)
+  protected void activeObject(ActivationID id,
+                             MarshalledObject<? extends Remote> mObject)
       throws ActivationException, UnknownObjectException, RemoteException
   {
     if (monitor!=null)
index 76ac63b6391bb296b697aa02daa46365c5458cb9..bf7445f17bb3aa7ef62bb9fdb94ff54532723332 100644 (file)
@@ -199,7 +199,7 @@ public final class ActivationGroupDesc
   /**
    * The group initialization data.
    */
-  final MarshalledObject data;
+  final MarshalledObject<?> data;
   
   /**
    * The path to the group jre and the parameters of this jre, may be
@@ -252,7 +252,7 @@ public final class ActivationGroupDesc
    *          options.
    */
   public ActivationGroupDesc(String aClassName, String aLocation,
-                             MarshalledObject aData, Properties aProperties,
+                             MarshalledObject<?> aData, Properties aProperties,
                              ActivationGroupDesc.CommandEnvironment environment)
   {
     className = aClassName;
@@ -288,7 +288,7 @@ public final class ActivationGroupDesc
    * 
    * @return the group intialization data in the marshalled form.
    */
-  public MarshalledObject getData()
+  public MarshalledObject<?> getData()
   {
     return data;
   }
index a0f04ed36cdaa4790e693dd5ca5c1e0c0554adbe..3f4b557cb91f5f7af4602101393be76d532767a9 100644 (file)
@@ -68,6 +68,6 @@ public interface ActivationInstantiator
    * @throws ActivationException if the activation fails
    * @throws RemoteException if the remote call fails
    */
-  MarshalledObject newInstance (ActivationID id, ActivationDesc desc)
+  MarshalledObject<? extends Remote> newInstance (ActivationID id, ActivationDesc desc)
     throws ActivationException, RemoteException;
 }
index e9f43ae1a940f05e7f05806ae7ed578b2759dc2b..93def8c441a4aab5e668e14f0965e2a7f95dc020 100644 (file)
@@ -59,7 +59,7 @@ public interface ActivationMonitor extends Remote
    * @throws UnknownObjectException is such object is not known in this group
    * @throws RemoteException if remote call fails
    */
-  void activeObject (ActivationID id, MarshalledObject obj)
+  void activeObject (ActivationID id, MarshalledObject<? extends Remote> obj)
     throws UnknownObjectException, RemoteException;
 
   /**
index 57a4d16a72300532164733fc387e01e79d717c92..d0de12d8c97011d0396dc8432c416ac4b2cc7a46 100644 (file)
@@ -67,6 +67,6 @@ public interface Activator
    * @throws ActivationException if the activation has failed due other reason
    * @throws RemoteException if the remote call has failed.
    */
-  MarshalledObject activate (ActivationID id, boolean force)
+  MarshalledObject<? extends Remote> activate (ActivationID id, boolean force)
     throws ActivationException, UnknownObjectException, RemoteException;
 }
index 9443ced5bdd077c6bf87752660052009f7d30bc1..e5f772778c2f50069a395e6d65f71b8b49d03a15 100644 (file)
@@ -3941,7 +3941,8 @@ public class Arrays
     if (from > to)
       throw new IllegalArgumentException("The initial index is after " +
                                         "the final index.");
-    T[] newArray = (T[]) new Object[to - from];
+    Class elemType = original.getClass().getComponentType();
+    T[] newArray = (T[]) Array.newInstance(elemType, to - from);
     if (to > original.length)
       {
        System.arraycopy(original, from, newArray, 0,
index a0933eca2f6628efaf549f4ecb37b94fb1d45530..b5da13c37f1a81ba9c8d1064a21a940e61ac3249 100644 (file)
@@ -273,6 +273,11 @@ public final class Currency
        throw new
          NullPointerException("The locale or its country is null.");
       }
+    
+    /* Check that country of locale given is valid. */
+    if (country.length() != 2)
+      throw new IllegalArgumentException();
+    
     /* Attempt to get the currency from the cache */
     String code = (String) countryMap.get(country);
     if (code == null)
index 477dff8e0ab2012cc4e1b28933b8a4a3dae0b969..b7187b935f23126d87b1f856dc9445fc0fbe2575 100644 (file)
@@ -1,5 +1,5 @@
 /* EnumMap.java - Map where keys are enum constants
-   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -140,7 +140,8 @@ public class EnumMap<K extends Enum<K>, V>
     Enum<K> e = (Enum<K>) key;
     if (e.getDeclaringClass() != enumClass)
       return null;
-    return store[e.ordinal()];
+    V o = store[e.ordinal()];
+    return o == emptySlot ? null : o;
   }
 
   public V put(K key, V value)
@@ -387,8 +388,18 @@ public class EnumMap<K extends Enum<K>, V>
 
   public EnumMap<K, V> clone()
   {
-    /* This constructor provides this functionality */
-    return new EnumMap(this);
+    EnumMap<K, V> result;
+    try
+      {
+       result = (EnumMap<K, V>) super.clone();
+      }
+    catch (CloneNotSupportedException ignore)
+      {
+       // Can't happen.
+       result = null;
+      }
+    result.store = (V[]) store.clone();
+    return result;
   }
 
 }
index a3f30efffb42df307fa8bc215a2bf98a01238324..4ea21cdc7ae7fc149049902954d3ce12c01c12b2 100644 (file)
@@ -71,7 +71,7 @@ import java.io.ObjectOutputStream;
  * is separated by commas, and largely consists of unordered key-value
  * pairs, separated by an equals sign ('=').  At most one element may
  * be an asterisk ('*'), which turns the {@link ObjectName} instance
- * into a <emph>property pattern</emph>.  In this situation, the pattern
+ * into a <emph>property list pattern</emph>.  In this situation, the pattern
  * matches a name if the name contains at least those key-value pairs
  * given and has the same domain.
  * </p>
@@ -89,6 +89,13 @@ import java.io.ObjectOutputStream;
  * (after expansion) are considered part of the value.
  * </p>
  * <p>
+ * Both quoted and unquoted values may contain the wildcard characters
+ * '?' and '*'.  A name with at least one value containing a wildcard
+ * character is known as a <emph>property value pattern</emph>.  A
+ * name is generally a <emph>property pattern</emph> if it is either
+ * a <emph>property list pattern</emph> or <emph>property value pattern</emph>.
+ * </p>
+ * <p>
  * Spaces are maintained within the different parts of the name.  Thus,
  * '<code>domain: key1 = value1 </code>' has a key ' key1 ' with value
  * ' value1 '.  Newlines are disallowed, except where escaped in quoted
@@ -127,9 +134,14 @@ public class ObjectName
   private transient String propertyListString;
 
   /**
-   * True if this object name is a property pattern.
+   * True if this object name is a property list pattern.
    */
-  private transient boolean propertyPattern;
+  private transient boolean propertyListPattern;
+
+  /**
+   * True if this object name is a property value pattern.
+   */
+  private transient boolean propertyValuePattern;
 
   /**
    * The management server associated with this object name.
@@ -202,10 +214,10 @@ public class ObjectName
       {
        if (pairs[a].equals("*"))
          {
-           if (propertyPattern)
+           if (propertyListPattern)
              throw new MalformedObjectNameException("Multiple wildcards " +
                                                     "in properties.");
-           propertyPattern = true;
+           propertyListPattern = true;
            continue;
          }
        int sep = pairs[a].indexOf('=');
@@ -291,16 +303,17 @@ public class ObjectName
     if (domain.indexOf('\n') != -1)
       throw new MalformedObjectNameException("The domain includes a newline " +
                                             "character.");
-    char[] chars = new char[] { '\n', ':', ',', '*', '?', '=' };
+    char[] keychars = new char[] { '\n', ':', ',', '*', '?', '=' };
+    char[] valchars = new char[] { '\n', ':', ',', '=' };
     Iterator i = properties.entrySet().iterator();
     while (i.hasNext())
       {
        Map.Entry entry = (Map.Entry) i.next();
        String key = (String) entry.getKey();
-       for (int a = 0; a < chars.length; ++a)
-         if (key.indexOf(chars[a]) != -1)
+       for (int a = 0; a < keychars.length; ++a)
+         if (key.indexOf(keychars[a]) != -1)
            throw new MalformedObjectNameException("A key contains a '" +
-                                                  chars[a] + "' " +
+                                                  keychars[a] + "' " +
                                                   "character.");
        String value = (String) entry.getValue();
        int quote = value.indexOf('"');
@@ -322,12 +335,15 @@ public class ObjectName
                                                 "a '\"' character.");
        else
          {
-           for (int a = 0; a < chars.length; ++a)
-             if (value.indexOf(chars[a]) != -1)
+           for (int a = 0; a < valchars.length; ++a)
+             if (value.indexOf(valchars[a]) != -1)
                throw new MalformedObjectNameException("A value contains " +
-                                                      "a '" + chars[a] + "' " +
+                                                      "a '" + valchars[a] + "' " +
                                                       "character.");
+           
          }
+       if (value.indexOf('*') != -1 || value.indexOf('?') != -1)
+         propertyValuePattern = true;
       }
   }
 
@@ -690,14 +706,60 @@ public class ObjectName
   }
 
   /**
-   * Returns true if this object name is a property pattern.  This is
-   * the case if the list of properties contains an '*'.
+   * Returns true if this object name is a property list
+   * pattern, a property value pattern or both.
    *
-   * @return true if this is a property pattern.
+   * @return true if the properties of this name contain a pattern.
+   * @see #isPropertyListPattern
+   * @see #isPropertyValuePattern
    */
   public boolean isPropertyPattern()
   {
-    return propertyPattern;
+    return propertyListPattern || propertyValuePattern;
+  }
+
+  /**
+   * Returns true if this object name is a property list pattern.  This is
+   * the case if the list of properties contains an '*'.
+   *
+   * @return true if this is a property list pattern.
+   * @since 1.6
+   */
+  public boolean isPropertyListPattern()
+  {
+    return propertyListPattern;
+  }
+
+  /**
+   * Returns true if this object name is a property value pattern.  This is
+   * the case if one of the values contains a wildcard character,
+   * '?' or '*'.
+   *
+   * @return true if this is a property value pattern.
+   * @since 1.6
+   */
+  public boolean isPropertyValuePattern()
+  {
+    return propertyValuePattern;
+  }
+
+  /**
+   * Returns true if the value of the given key is a pattern.  This is
+   * the case if the value contains a wildcard character, '?' or '*'.
+   *
+   * @param key the key whose value should be checked.
+   * @return true if the value of the given key is a pattern.
+   * @since 1.6
+   * @throws NullPointerException if {@code key} is {@code null}.
+   * @throws IllegalArgumentException if {@code key} is not a valid
+   *                                  property.
+   */
+  public boolean isPropertyValuePattern(String key)
+  {
+    String value = getKeyProperty(key);
+    if (value == null)
+      throw new IllegalArgumentException(key + " is not a valid property.");
+    return value.indexOf('?') != -1 || value.indexOf('*') != -1;
   }
 
   /**
index 6296784426c05e520ba2001ad26b5d453ba6cc9c..7b6ebc4b03b92ea1eb307b06358d2dfce22a046d 100644 (file)
@@ -330,16 +330,35 @@ public class AudioFormat
   public String toString()
   {
     StringBuffer result = new StringBuffer();
+    
+    // usually at least encoding should be somewhat specified
     result.append(encoding);
-    result.append(" ");
-    result.append(sampleRate);
-    result.append(" Hz ");
-    result.append(sampleSizeInBits);
-    result.append(" bits ");
-    result.append(channels);
-    result.append(" channels");
+    
+    if (sampleRate != AudioSystem.NOT_SPECIFIED)
+      {
+        result.append(" ");
+        result.append(sampleRate);
+        result.append(" Hz");
+      }
+    
+    if (sampleSizeInBits != AudioSystem.NOT_SPECIFIED)
+      {
+        result.append(" ");
+        result.append(sampleSizeInBits);
+        result.append(" bits");
+      }
+    
+    if (channels != AudioSystem.NOT_SPECIFIED)
+      {
+        result.append(" ");
+        result.append(channels);
+        result.append(" channel");
+        if (channels > 1) result.append("s");
+      }
+    
     if (sampleSizeInBits > 8)
       result.append(bigEndian ? " big endian" : " little endian");
+    
     return result.toString();
   }
 }
index aa99a046ce4a5d611dc0ee455403885e3717bc56..b7cb70e493145ed23a815bc2acea2f08336a24b5 100644 (file)
@@ -1,5 +1,5 @@
 /* 
-   Copyright (C) 2005 Free Software Foundation, Inc.
+   Copyright (C) 2005-2007 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -35,7 +35,6 @@ 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.sound.sampled;
 
 /**
@@ -138,10 +137,10 @@ public interface DataLine extends Line
     public boolean isFormatSupported(AudioFormat fmt)
     {
       for (int i = 0; i < formats.length; ++i)
-       {
-         if (fmt.matches(formats[i]))
-           return true;
-       }
+        {
+          if (fmt.matches(formats[i]))
+            return true;
+        }
       return false;
     }
 
@@ -151,25 +150,28 @@ public interface DataLine extends Line
     public boolean matches(Line.Info o)
     {
       if (! super.matches(o) || ! (o instanceof Info))
-       return false;
+        return false;
+
       Info other = (Info) o;
-      if (minBufferSize < other.minBufferSize
-         || maxBufferSize > other.maxBufferSize)
-       return false;
+      if (minBufferSize < other.minBufferSize ||
+          maxBufferSize > other.maxBufferSize)
+        return false;
+      
       for (int i = 0; i < formats.length; ++i)
-       {
-         boolean ok = false;
-         for (int j = 0; j < other.formats.length; ++j)
-           {
-             if (formats[i].matches(other.formats[j]))
-               {
-                 ok = true;
-                 break;
-               }
-           }
-         if (! ok)
-           return false;
-       }
+        {
+          boolean ok = false;
+          for (int j = 0; j < other.formats.length; ++j)
+            {
+              if (formats[i].matches(other.formats[j]))
+                {
+                  ok = true;
+                  break;
+                }
+            }
+          if (! ok)
+            return false;
+        }
+      
       return true;
     }
 
@@ -181,18 +183,20 @@ public interface DataLine extends Line
       StringBuffer result = new StringBuffer();
       result.append("formats: [");
       for (int i = 0; i < formats.length; ++i)
-       {
-         if (i > 0)
-           result.append(", ");
-         result.append(formats[i].toString());
-       }
+        {
+          if (i > 0)
+            result.append(", ");
+          result.append(formats[i].toString());
+        }
+      
       result.append("]; minBufferSize: ");
       result.append(minBufferSize);
       result.append("; maxBufferSize: ");
       result.append(maxBufferSize);
       return result.toString();
     }
-  }
+    
+  } // end class: Info
 
   /**
    * Return the number of bytes currently available on this DataLine.
index 1ae7b3bb7d84c50aad4e1795b102a7c0d7480414..72b972497e11f2bda8fe7c5e10f38aa1005d3ec6 100644 (file)
@@ -78,8 +78,8 @@ public abstract class MixerProvider
     Mixer.Info[] infos = getMixerInfo();
     for (int i = 0; i < infos.length; ++i)
       {
-       if (info.equals(infos[i]))
-         return true;
+        if (info.equals(infos[i]))
+          return true;
       }
     return false;
   }
index df4c3aebdfdad04a935169c9191052b66138f03b..12bbe013c5e564b1cbcf10e8f9071e3fb1650e59 100644 (file)
@@ -600,8 +600,13 @@ public class BasicProgressBarUI extends ProgressBarUI
                                      int y, int width, int height)
   {
     Rectangle tr = new Rectangle();
-    Rectangle vr = new Rectangle(x, y, width, height);
+    Rectangle vr = new Rectangle();
     Rectangle ir = new Rectangle();
+    
+    if (progressBar.getOrientation() == JProgressBar.HORIZONTAL)
+      vr.setBounds(x, y, width, height);
+    else
+      vr.setBounds(y, x, height, width);
 
     Font f = g.getFont();
     FontMetrics fm = g.getFontMetrics(f);
@@ -611,7 +616,11 @@ public class BasicProgressBarUI extends ProgressBarUI
                                        SwingConstants.CENTER,
                                        SwingConstants.CENTER,
                                        SwingConstants.CENTER, vr, ir, tr, 0);
-    return new Point(tr.x, tr.y);
+    
+    if (progressBar.getOrientation() == JProgressBar.HORIZONTAL)
+      return new Point(tr.x, tr.y);
+    else
+      return new Point(tr.y, tr.x);
   }
 
   /**
@@ -741,14 +750,19 @@ public class BasicProgressBarUI extends ProgressBarUI
       {
         AffineTransform rotate = AffineTransform.getRotateInstance(Math.PI / 2);
         g.setFont(progressBar.getFont().deriveFont(rotate));
+        placement.x = width - placement.x - fm.getAscent();
+      }
+    else
+      {
+        placement.y += fm.getAscent();
       }
     
     g.setColor(getSelectionForeground());
     g.setClip(0, 0, full + b.left, height);
-    g.drawString(str, placement.x, placement.y + fm.getAscent());
+    g.drawString(str, placement.x, placement.y);
     g.setColor(getSelectionBackground());
     g.setClip(full + b.left, 0, width - full, height);
-    g.drawString(str, placement.x, placement.y + fm.getAscent());
+    g.drawString(str, placement.x, placement.y);
     g.setClip(savedClip);
     g.setColor(savedColor);
   }
index d48266d473079ba99f0062ccc2e53b3415a9a5a2..a943f056de149962df021ee15096dd9a9077b45b 100644 (file)
@@ -253,7 +253,7 @@ public final class AttributeList
    */
   public Enumeration<?> getValues()
   {
-    return values.elements();
+    return (values != null) ? values.elements() : null;
   }
 
   /**
index 3f2de4187c88c29440db5943ca92275ea8a176cb..f2089f243d69082f5547daf94af49752cea33fd8 100644 (file)
@@ -5,13 +5,6 @@ JAVA_DEPEND = java.dep
 ## this file and restart the make process again
 sinclude $(JAVA_DEPEND)
 
-propertyfiles :=  $(shell cd $(top_srcdir)/resource && $(FIND) gnu java javax org -name \*\.properties -print)
-cssfiles := $(shell cd $(top_srcdir) && $(FIND) gnu java javax org -name \*\.css -print)
-## GCJ LOCAL: prune .svn directories
-metafiles :=  $(shell cd $(top_srcdir)/resource && $(FIND) META-INF -name CVS -prune -o -name \*\.in -prune -o -type f -print | fgrep -v .svn)
-## END GCJ LOCAL
-iconfiles :=  $(shell cd $(top_srcdir) && $(FIND) gnu/javax/swing/plaf/gtk/icons -name *.png -type f -print)
-
 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)
 
 # handling source to bytecode compiler programs like gcj, jikes  and kjc
@@ -35,8 +28,6 @@ endif # FOUND_KJC
 endif # FOUND_GCJ
 endif # FOUND_JIKES
 
-JAVAH = $(USER_JAVAH) -jni -classpath .:$(USER_CLASSLIB)
-
 if CREATE_COLLECTIONS
 COLLECTIONS = collections.jar
 
@@ -100,23 +91,18 @@ glibj.zip: classes compile-classes resources
 endif # USE_PREBUILT_GLIBJ_ZIP
 
 resources: copy-vmresources.sh
-       @list='$(propertyfiles)'; for p in $$list; do \
+       @list=`cd $(top_srcdir)/resource && $(FIND) gnu java javax org -name \*\.properties -print -o -name \*\.css -print`; for p in $$list; do \
           dirname=`dirname $$p`; \
           if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
          cp $(top_srcdir)/resource/$$p $$p; \
        done
-       @list='$(cssfiles)'; for p in $$list; do \
-          dirname=`dirname $$p`; \
-          if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
-         cp $(top_srcdir)/$$p $$p; \
-       done
-       @list='$(metafiles)'; for p in $$list; do \
+       @list=`cd $(top_srcdir)/resource && $(FIND) META-INF -name CVS -prune -o -name \*\.in -prune -o -type f -print`; for p in $$list; do \
           dirname=`dirname $$p`; \
           if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
          cp $(top_srcdir)/resource/$$p $$p; \
        done
        @$(SHELL) ./copy-vmresources.sh
-       @list='$(iconfiles)'; for p in $$list; do \
+       @list=`cd $(top_srcdir) && $(FIND) gnu/javax/swing/plaf/gtk/icons -name *.png -type f -print`; for p in $$list; do \
           dirname=`dirname $$p`; \
           if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
          cp $(top_srcdir)/$$p $$p; \
index eef968cacc2e5a6db0e086eee804a52739c4a419..bb2dac45e552939641f51dcfe9c5991514255438 100644 (file)
@@ -103,6 +103,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -141,8 +143,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -166,6 +166,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -238,8 +247,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -312,10 +319,6 @@ target_vendor = @target_vendor@
 toolexeclibdir = @toolexeclibdir@
 vm_classes = @vm_classes@
 JAVA_DEPEND = java.dep
-propertyfiles := $(shell cd $(top_srcdir)/resource && $(FIND) gnu java javax org -name \*\.properties -print)
-cssfiles := $(shell cd $(top_srcdir) && $(FIND) gnu java javax org -name \*\.css -print)
-metafiles := $(shell cd $(top_srcdir)/resource && $(FIND) META-INF -name CVS -prune -o -name \*\.in -prune -o -type f -print | fgrep -v .svn)
-iconfiles := $(shell cd $(top_srcdir) && $(FIND) gnu/javax/swing/plaf/gtk/icons -name *.png -type f -print)
 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
@@ -323,7 +326,6 @@ compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$
 
 # 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
-JAVAH = $(USER_JAVAH) -jni -classpath .:$(USER_CLASSLIB)
 @CREATE_COLLECTIONS_TRUE@COLLECTIONS = collections.jar
 @BUILD_CLASS_FILES_TRUE@noinst_DATA = genclasses compile-classes resources
 # endif
@@ -548,23 +550,18 @@ sinclude $(JAVA_DEPEND)
 @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='$(propertyfiles)'; for p in $$list; do \
+       @list=`cd $(top_srcdir)/resource && $(FIND) gnu java javax org -name \*\.properties -print -o -name \*\.css -print`; for p in $$list; do \
           dirname=`dirname $$p`; \
           if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
          cp $(top_srcdir)/resource/$$p $$p; \
        done
-       @list='$(cssfiles)'; for p in $$list; do \
-          dirname=`dirname $$p`; \
-          if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
-         cp $(top_srcdir)/$$p $$p; \
-       done
-       @list='$(metafiles)'; for p in $$list; do \
+       @list=`cd $(top_srcdir)/resource && $(FIND) META-INF -name CVS -prune -o -name \*\.in -prune -o -type f -print`; for p in $$list; do \
           dirname=`dirname $$p`; \
           if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
          cp $(top_srcdir)/resource/$$p $$p; \
        done
        @$(SHELL) ./copy-vmresources.sh
-       @list='$(iconfiles)'; for p in $$list; do \
+       @list=`cd $(top_srcdir) && $(FIND) gnu/javax/swing/plaf/gtk/icons -name *.png -type f -print`; for p in $$list; do \
           dirname=`dirname $$p`; \
           if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
          cp $(top_srcdir)/$$p $$p; \
index 85e366de3816d6410b43762c3cce0e719fc17e0d..07a969a8199e0729b28e935434a0c290bedb8ddb 100644 (file)
Binary files a/libjava/classpath/lib/gnu/awt/xlib/XCanvasPeer$DoMap.class and b/libjava/classpath/lib/gnu/awt/xlib/XCanvasPeer$DoMap.class differ
index 5bd9bfd44b5a0802b6e5704917c6c3012f5c7ad5..1cf8cd7bf85abb63203fdecfbd717e0753e7c2e8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/awt/xlib/XCanvasPeer.class and b/libjava/classpath/lib/gnu/awt/xlib/XCanvasPeer.class differ
index 49be95c498466bd2d81b68feb03b05c5b30c1436..9a5b14fb4f5d9bbb26346e8e08244bd09edf91f5 100644 (file)
Binary files a/libjava/classpath/lib/gnu/awt/xlib/XFontPeer.class and b/libjava/classpath/lib/gnu/awt/xlib/XFontPeer.class differ
index 43e9b4bcb847d026adb6c34d900b1d6ff043f7c1..8cb0234114067c2f25c3623a47fc8732280fca21 100644 (file)
Binary files a/libjava/classpath/lib/gnu/awt/xlib/XFramePeer.class and b/libjava/classpath/lib/gnu/awt/xlib/XFramePeer.class differ
index cbbe2a92bdd401b261172da08660b547e8d6dcf2..7d28074f24814759efaf6d271a41526892a4eb42 100644 (file)
Binary files a/libjava/classpath/lib/gnu/awt/xlib/XToolkit.class and b/libjava/classpath/lib/gnu/awt/xlib/XToolkit.class differ
index dbfaf4b1f18734618b669be479e7a6de513a3e09..9123146a2c101a40b7af8810d0285272313c75d1 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/font/FontDelegate.class and b/libjava/classpath/lib/gnu/java/awt/font/FontDelegate.class differ
index 14a8ff0b17fb1d8d282721873153cb43f1dffb3e..37fce044ea6373e5d5b65ec5bf19e9367e5d4364 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/font/opentype/OpenTypeFont.class and b/libjava/classpath/lib/gnu/java/awt/font/opentype/OpenTypeFont.class differ
index 16e2c489783fe5ea832881e96d19f40dd00a0214..cbbf6fd7b8c0a8684dd8d917fcecfb3fe93bd3d7 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/Pixelizer.class b/libjava/classpath/lib/gnu/java/awt/java2d/Pixelizer.class
new file mode 100644 (file)
index 0000000..b0a8665
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/java2d/Pixelizer.class differ
index b27aa84eb6ec1eb81ab2d445e2faae04062329f9..d4615e8231587d2e1e5095381d79512c4a95d79d 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/ScanlineCoverage$Coverage.class b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Coverage.class
new file mode 100644 (file)
index 0000000..c5da4d8
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Coverage.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Iterator.class b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Iterator.class
new file mode 100644 (file)
index 0000000..dd2dc43
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Iterator.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Range.class b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Range.class
new file mode 100644 (file)
index 0000000..17636a7
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage$Range.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage.class b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage.class
new file mode 100644 (file)
index 0000000..3d774a3
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineCoverage.class differ
index d82213949e56f591d240a94085397ec36e011978..4cc1fd2ee244d7efe5919a78ec959c40bed51fc0 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/java2d/ShapeCache.class and b/libjava/classpath/lib/gnu/java/awt/java2d/ShapeCache.class differ
index 9dd1dfffb0845457f086130caac8701add1fa72b..ac6edad202d99bccee1f62ad507dae9e89e78353 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/ClasspathFontPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/ClasspathFontPeer.class differ
index 679f4e734734524177260efa9e85b4e0ae7cd136..db76d831f433b5f912e56032107611848c94102e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/GLightweightPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/GLightweightPeer.class differ
index 9ff901c2ed76171095ed3514f4089bb2222996c2..49ee40561eb60f0ed2d6f57f5f59c697510d7005 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 284bb0d6fd32176a4f4ebdcb5f1499eb1efd6d1e..e1b64636ebcc2e276e09591c903ed7f3ecf30d92 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/FreetypeGlyphVector.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/FreetypeGlyphVector.class differ
index 64d47db6b38a2ab052f5ba502950f6fd0230384f..2df0587b70ce8810580fd9b814799182a8ed79f6 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 0807a240c958f73d2209a6506e2274f0533976b7..a20978bc9969d8c1cb5de68df354398b5027ecf2 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 a8c30b26e3de8b492c82c51ddb3daa05b0054b38..e4dfec577ef54f41da380731372d36a67f0d5a28 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 074b1b539e1437ba9662ae447793b35c46cc222f..dfb28e4bf3ece359dd067cd75655587ef1450c28 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 293db87d449f5e74d8ed8fc3cf9e981111d2f5fd..5806dc2f5a82805dd90ed1447992a0d21e7b015a 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 0b18f33487d5b3b94aede726ae31d5e92ae53cf0..a4105ea03a9dd67ea6ebd3f62a77c833f633ac9c 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 cbfa62c192ea5125b770618506583ec1fdcd51f8..3eb57b1611fa69f36a6239593daec4efe51f3169 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 0e6abdf8be1507dba584f17309d90a6f3b0a04bd..84223c8a55be6283cef34bcbd9b119ecacb1b531 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 d831c638eaa6780f49b5a8b6f4fc97095ecdec4f..53fcf3bbbcb5c0143e8c369cc920adf84a5c8cf9 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 2968b39e8931d1250e157fb1af1d952de644f188..118b4d808664501e6766ca3c1a254a0755f40893 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 a3330885a2195005c2e44af6381e805927568627..07ffa91a18c6485e6daca9b3bd24393723a82e1a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkRobotPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkRobotPeer.class differ
index 0494728ecb62bfb87b3477782e076aed56b9fa12..a13f74232bb7c2b21f71df7d907f0431309a528e 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 69b4f870cccab0734e770bb2faf6b44189237c24..97fe84a8ec8cbbd9f1cb2aa8d2664cac6ca267f8 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 d7021880c85398f7f4a7a7630550ec27ccb84356..9627e77665a99cadcab4a46d83cab59b5d19e4a8 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 e6de1c3eafa5a4f8e828dcf0bd6714f6a85d64b0..613e0748ef7ec06948e0f92007d1a5f5232110f7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkFramePeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkFramePeer.class differ
index 956a5e1c98941bb91d60c6484c4a6f8752f4287a..1553852658d14ddf775a2a2b7f5b586e47083e4a 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkGenericPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkGenericPeer.class differ
index cf0105ceeb27b711b7667cf539e6644619f5e173..8e9d88427b3f3327acf45b37c4a150a4899b9420 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 131cdf7a93ca73bcfb669807f8a3583b1183f6eb..15180e0769bd0f6bb624ceb3c8e6208200f7c7e2 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 53be22ad284fd347772308663ecd4b249fc29dba..53b831decaf8782bd7c1a72b4759b4d75a3e9a1a 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 4a2fa1c1956b7d5ff5aca46d73fac09cdc4de62c..a5df713903faaa111deb813fdd2c81be8cc12ad1 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 609c79cf092aa553cf13c30caec1c90550b14322..7c2e901d4cf38876cdc0383ceced3d088998c5f7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/headless/HeadlessToolkit.class and b/libjava/classpath/lib/gnu/java/awt/peer/headless/HeadlessToolkit.class differ
index 6593dd64f4db975b116bc79b754493854f12a945..482da2d33502969dafd9533cb633838e5589d79f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtComponentPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtComponentPeer.class differ
index f70900ce602f61692e2aac5438d09a05e3113df8..d7bf8638989479eb3308a111278e13d686e19dd3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontMetrics.class and b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontMetrics.class differ
index dfdfde005b13578e0a10040aa776dbe8e2bff99c..607696c42c913cebddcf22af9738c33a418589d0 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFontPeer.class differ
index d658fe22eda32bff420258fde3e90e1425ec0b7d..58d280c135628420198d3bd69e4728f367900137 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFramePeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtFramePeer.class differ
index d44cb314658fdff7e0190a03dfe97d1ea1dea69c..caa0257f7360fb8e25cf96b60999e863aa2f0ffd 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtToolkit.class and b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtToolkit.class differ
index ae9fa720e7365af7be45a58ad0f9c182a8fd29cb..4e50a77f6c93c1b208df155c31dcb77af72bbcab 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/qt/QtWindowPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/qt/QtWindowPeer.class differ
index 602b48fb91b776721045619ba68300f305518724..95f32f011ac1dc55d34e47df250256750abcb135 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButton.class differ
index 24adbb8af3ca44e50e9aa88e8e71b03f977b292c..f23519fdecfa43ab38dab6a7f272b4714895fbde 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButtonListener.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer$SwingButtonListener.class differ
index 8c8a09afeeb2ff66b6596eabb21bb18460c11aa9..0ea9f7ebffa383c9303aef7c61734c8e32a723a0 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingButtonPeer.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.class
new file mode 100644 (file)
index 0000000..a290ef3
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.class
new file mode 100644 (file)
index 0000000..7259ec2
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class
new file mode 100644 (file)
index 0000000..fce29a6
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingCheckboxPeer.class differ
index 75a9113d86ed49be04927565f04dcd6e6d4fe327..43fa6cee965fe49700d24d9b65426cde96d3b1d8 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponent.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponent.class differ
index d5df2074a36d4625515c41bff466da082b58a5ae..697a7aaa8a3f219568892be77c04099840782080 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponentPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingComponentPeer.class differ
index edf0a7d0b7b06b3d8b3a486d678faa73312b9d7c..0f014bc33fa2fa322f6f7f211d39317c1628867b 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingContainerPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingContainerPeer.class differ
index 2334fe73c7522f95b87ae78231d7dc7615b3bfe7..48eb45d715a05d59112e6aa24efd4344579dc7fc 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer$SwingLabel.class differ
index 7d34f8504f27e6507ffae321abe907cdbc187719..343c3ed5925fd47cbab81eacc39b22820982ce3f 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingLabelPeer.class differ
index 6351297a9d0442e1ec7d2c036a08d296b7d95f0c..9b08f566c6fa2d9b5f83b36b345288973c20e704 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer$SwingList.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer$SwingList.class differ
index 094a417f432ee8b7aa01cf5cb4bc6e73b12d831e..86290a837d048e3bd86cc7d4033d6d5226794482 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingListPeer.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.class
new file mode 100644 (file)
index 0000000..6340030
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.class differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.class b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.class
new file mode 100644 (file)
index 0000000..394a3ac
Binary files /dev/null and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.class differ
index 59edb75bbe03bed48031c7204e751299b967d375..cb80579e17f66e14a3f62a641a74fccf8c9d1ed2 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 e8836be2637034bdf166364de8ed24cc73a0b58f..643ba7a05cc7794682bc1f21612920ab9add24f1 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 fe242f791dc7070d8106d456b5f1350cae1bfcc3..db2bf26d071bc98d1ef63ca68b464d1a894b81df 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 0250fba193b527791a36d5cad46bfbebb7b78c18..55eaafca06d8552a660d8da2367b3c197269770f 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 f44acac3806c87c8a177abb30d83e5b02eac20a7..0dc260bbea49a3745314efebe82b9b6306222638 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingToolkit.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingToolkit.class differ
index f3f2f6fb9a0ddcdae8b192a3efd04a8a2807ac01..6c90744c2e0f4a6081765960186b5f55c97fdf78 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingWindowPeer.class and b/libjava/classpath/lib/gnu/java/awt/peer/swing/SwingWindowPeer.class differ
index 338cc8fc352a2d477e3f498381944692138b1126..f2772bbdd139564560ce07e6628adbfa5f551f29 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/locale/LocaleData.class and b/libjava/classpath/lib/gnu/java/locale/LocaleData.class differ
index 276a3c914f66bdff2af86b4be2454aa08a24b2b2..5aed8debfb45cb181e0fe4b59bb3be5c9e6eac97 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/math/Fixed.class and b/libjava/classpath/lib/gnu/java/math/Fixed.class differ
index ca359339eb7b9dea053319904179150090ff44f2..e2d328afe5a27d614c4f2cb96e7ae7116276490d 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/net/loader/URLLoader.class and b/libjava/classpath/lib/gnu/java/net/loader/URLLoader.class differ
index d4bb421d7386d44761a816b67c72340cc92519f0..64e6768b89544eb009f73277d47904f781eceebf 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 0262718eb6628c9f6140bfeabcff0f0cf46def3f..6fe13059542293462c107879f6a90a129f98de3d 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 8447ee3747987f6e2e85e73f11a2a13f06704318..28c62ca33ce8d528d8c21011d21f0b17c0dd9bb8 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 b9b5a3f916d5c78c511705676a3243910c337c3f..cf92b9675192477d442d24a5eb157148ceaaa688 100644 (file)
Binary files a/libjava/classpath/lib/gnu/java/security/Engine.class and b/libjava/classpath/lib/gnu/java/security/Engine.class differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class
new file mode 100644 (file)
index 0000000..3eae4f2
Binary files /dev/null and b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager$Permission.class differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class
new file mode 100644 (file)
index 0000000..1b2798c
Binary files /dev/null and b/libjava/classpath/lib/gnu/javax/sound/AudioSecurityManager.class differ
index e513ecf6fec7f94a759d8d6c99ca7dde60b2bf8c..07a45dedd84812af42b9ce24736846a4025318f3 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomDocument.class and b/libjava/classpath/lib/gnu/xml/dom/DomDocument.class differ
index 76a244e798d3d6808da23fc05085c8b48e016a1a..4c7d97f5afc67712ac474a2b2ca562bdfbb79112 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomElement.class and b/libjava/classpath/lib/gnu/xml/dom/DomElement.class differ
index 5ff3c7a8dbe0b3cb1b6a0afe70984d769b0bbe12..3f8a7fd3eaf08ed38c2584ea61c9e895e9284c8e 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomNamedNodeMap.class and b/libjava/classpath/lib/gnu/xml/dom/DomNamedNodeMap.class differ
index e2c1a29b51fec7804b266dd213f2936d6a534927..ef4159ec9f506a303029568793fd7a7601de69f6 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.class and b/libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.class differ
index 71bf96f416781c44d2ef50b0023617b2e6a3d07e..a01897c9416e0fc207fe4bdf03ddf4432136df42 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.class and b/libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.class differ
index 6be5e27c4046fc03c9e0cbb3fac0f706d96ece40..9c50f2b1af7abc738be67c2d0cc906d61bbb4434 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.class and b/libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.class differ
index be87f5c76bbecaa8d08df229dbf1035aba7321bd..aef279fcbc8b266cc0930ffa830bcc920371ebdc 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.class and b/libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.class differ
index f673df8bbf91cfe3bb88960b71c742a7d7070240..cf1ae634f87ff132a0f8549beb68e8c0ed68ecf7 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/DomNode.class and b/libjava/classpath/lib/gnu/xml/dom/DomNode.class differ
index 5ba9dfac935839f0c88afa0b18be4802e64534c4..34ee47d5329e5b0e1db7fd69bf81dd38428c0668 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.class and b/libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.class differ
index ebaf1ecf0e55a04b5c281d44f284ab85bba45dff..517fa692f8b2cb77e0c87a94318fdcdd3843fd40 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 0931e75681855253960dc30103b6a85fcadd0dcb..099ec4ac773990c11e9298e7a8c75b8866a6fa99 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 f600870306830bd43d00936090dba24c6bf1e620..af7ce24839561692a6be2ce267dd783ee68bd4d9 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 bf985d77cf957b0dd8f86f3e499266c8e28a728b..f5f1f53615998f0c9e0f7968486af7c8c2dfc0ad 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 7c6c30ca9ea035b101916edeae66a3116bb30cfd..c5289181000920b4cacc8e00847c17be77896bab 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 547386eba68ac431e9fc1856eb99098f864cab8a..9b457cbe0c0e4f8e797409b4e4f8162688fc342c 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 243ba76c828c8ebd78e69d6648c8914e7e319932..b3c4eed3bb323e5c87efeaa3394e0f8657fdb944 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 4abfa1d6507ab75ae232c9db5168dfa670d4726b..6a3ba1e8256551021898327e036454d895b08c3e 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 59189736fac1d0b058cacbc93730d37c451136e9..dcb88dd26858bc97a6618a4438f6cd7893fb980d 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 db3548b35926e95dfdd97827ae0875ef0af86108..7fb33b06247c26f2450d4d21e8a9061de14f9ad2 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 4d38e3e3eb5dccbc6ea678d5c330b35f753ee6c1..70cd47ed8c4ed0eb8cdd07190d44e63118a88a43 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 788a08467bbe6ebe41001f064170f76a4d408cba..6af01d297576c040cc1dd810e1ffdf7202be447c 100644 (file)
Binary files a/libjava/classpath/lib/gnu/xml/transform/WithParam.class and b/libjava/classpath/lib/gnu/xml/transform/WithParam.class differ
index 5c29aba6a4e576ec3b3859946a3b1c15675d5f36..c10c5bb3d87e22ade6fedfd71fa17c25995dc010 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Dialog$AccessibleAWTDialog.class and b/libjava/classpath/lib/java/awt/Dialog$AccessibleAWTDialog.class differ
diff --git a/libjava/classpath/lib/java/awt/Dialog$ModalExclusionType.class b/libjava/classpath/lib/java/awt/Dialog$ModalExclusionType.class
new file mode 100644 (file)
index 0000000..3bad6d3
Binary files /dev/null and b/libjava/classpath/lib/java/awt/Dialog$ModalExclusionType.class differ
diff --git a/libjava/classpath/lib/java/awt/Dialog$ModalityType.class b/libjava/classpath/lib/java/awt/Dialog$ModalityType.class
new file mode 100644 (file)
index 0000000..cfbe00e
Binary files /dev/null and b/libjava/classpath/lib/java/awt/Dialog$ModalityType.class differ
index dd13eb4bab97b9599d1d2b1ced90b4d6831d8f01..92ca1360727bf55bc3448c9b845ba2228ac4fafd 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Dialog.class and b/libjava/classpath/lib/java/awt/Dialog.class differ
index 4676333992ccbda900e03fa460ad5fb97864ccce..d0df448d21b7a432e59e834f332e3076c7cf9a67 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Font.class and b/libjava/classpath/lib/java/awt/Font.class differ
index ec337be149430f8eb73bb26df302c96bd46aa4b7..aa49f06a31ed6538b7a55deb611c25b476c1a80f 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Toolkit$2.class and b/libjava/classpath/lib/java/awt/Toolkit$2.class differ
index 89a853a3d560c334a1074d34b5b12a367bbbe0a6..66d4ae6d63b45ec6e6114cd20d4632d86e8fe1f8 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/Toolkit.class and b/libjava/classpath/lib/java/awt/Toolkit.class differ
index 9bd3051178ef0dfb0c67ccc2a6b31f9012fd0ceb..0a7888a3cf06fcb419c00543fd5b26fb2661dcbd 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 db106ffae06503736eb390bbd5597592112b66d1..de354b52e30969e40bf1c319d3081b53d9b12f1b 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/peer/ComponentPeer.class and b/libjava/classpath/lib/java/awt/peer/ComponentPeer.class differ
index b8bc7585d5f7f6da6618760ef2ebd1b90c9e3de9..9deaff99ab01be86fff3d7c7ffcd6e2b2a37c503 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/peer/FramePeer.class and b/libjava/classpath/lib/java/awt/peer/FramePeer.class differ
index 983c6d5114f361724f709d49f7be36788f2d59d1..a49e946dc21361c95d499238cdd04e0e0181b1dc 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/peer/RobotPeer.class and b/libjava/classpath/lib/java/awt/peer/RobotPeer.class differ
index 09f9d3415e5723b1c99faee4d1e67c4af8ee82fc..a1c4df15af59911468f5737c0eec28e609461c93 100644 (file)
Binary files a/libjava/classpath/lib/java/awt/peer/WindowPeer.class and b/libjava/classpath/lib/java/awt/peer/WindowPeer.class differ
index d1c8dcc79d1a8f8c6e60b0733fdb4e39107a040f..8c29f2e128614222646abcc0c32029b54cfaf3a1 100644 (file)
Binary files a/libjava/classpath/lib/java/io/ObjectStreamClass$2.class and b/libjava/classpath/lib/java/io/ObjectStreamClass$2.class differ
index babf58570decf555bc0073e700f8a2098a072af6..ef83afe0c2c4207e695f92314340320d138ec7d2 100644 (file)
Binary files a/libjava/classpath/lib/java/io/ObjectStreamClass$InterfaceComparator.class and b/libjava/classpath/lib/java/io/ObjectStreamClass$InterfaceComparator.class differ
index 527fd88ab9f57e8c50d5a7e9e79242bd411e91f1..6454fa88e741184aa678291d9b94e78074f0421e 100644 (file)
Binary files a/libjava/classpath/lib/java/io/ObjectStreamClass$MemberComparator.class and b/libjava/classpath/lib/java/io/ObjectStreamClass$MemberComparator.class differ
index 66dc650d80477ed0da21dcc9e3ce24b8cb9416d9..9767f9fc6cf9821c11773367170269cae333e05e 100644 (file)
Binary files a/libjava/classpath/lib/java/io/ObjectStreamClass.class and b/libjava/classpath/lib/java/io/ObjectStreamClass.class differ
index 42732a6f381e1fd2eb189950dbf13b2c0829584b..7565a07d535d256e52f31301daf52fd1dd76226c 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Float.class and b/libjava/classpath/lib/java/lang/Float.class differ
index 3fc97252e294a4bc0a3f2599c8c88f2182289c9b..291b0d03f8c64f4d3b16dc18dd1a83b7b760259e 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/Integer.class and b/libjava/classpath/lib/java/lang/Integer.class differ
index f2c252ea8653f8e4e5ca4e39c2a13d6d48a5145b..563357d3839b691edf7a09cede5d2975c37cf49e 100644 (file)
Binary files a/libjava/classpath/lib/java/lang/VMFloat.class and b/libjava/classpath/lib/java/lang/VMFloat.class differ
index 19d6d969cfa1ea5c4fdbc7e1eb60c87ed0f8a231..6209502f8b53d25bad7af1a23460d576cf0ab151 100644 (file)
Binary files a/libjava/classpath/lib/java/net/URLClassLoader$1.class and b/libjava/classpath/lib/java/net/URLClassLoader$1.class differ
index d1192b5b507be5fa6ee3a23054dceb15efad11ec..7f046b870a3e2ca1a8364490b4ca3fb06761a7ad 100644 (file)
Binary files a/libjava/classpath/lib/java/net/URLClassLoader$2.class and b/libjava/classpath/lib/java/net/URLClassLoader$2.class differ
index fe9324f198d7cbf1fbd9764cbe26af00a480b775..8ec9a2d572a8b567e16a8bf614fff66a456d21b5 100644 (file)
Binary files a/libjava/classpath/lib/java/net/URLClassLoader.class and b/libjava/classpath/lib/java/net/URLClassLoader.class differ
index 2da715f4a4be6b5d84c29d6b990fdb358e38798a..5f4bc4e168c66609e803f2249948d010961d7df3 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/CharBuffer.class and b/libjava/classpath/lib/java/nio/CharBuffer.class differ
diff --git a/libjava/classpath/lib/java/nio/CharSequenceBuffer.class b/libjava/classpath/lib/java/nio/CharSequenceBuffer.class
new file mode 100644 (file)
index 0000000..dbd8f15
Binary files /dev/null and b/libjava/classpath/lib/java/nio/CharSequenceBuffer.class differ
index 25e84f01cd497e1d7bf46d2224ae44bb1c7689a3..2e5c5e82909cf258627059225bc6f1b3abdfe6ed 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/CharViewBufferImpl.class and b/libjava/classpath/lib/java/nio/CharViewBufferImpl.class differ
index 1e50947b6d3ed6b29651d146ee8346342ddb88f7..85c1c4da4b399e3ad56ac212b51a42951a421227 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/DoubleViewBufferImpl.class and b/libjava/classpath/lib/java/nio/DoubleViewBufferImpl.class differ
index 09fa18e1caa2d1f5c08282eeafaa7d9e404c99f7..e5e22a3d6ebb2eb160583a58c44855d8afa7a912 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/FloatViewBufferImpl.class and b/libjava/classpath/lib/java/nio/FloatViewBufferImpl.class differ
index 116807e8b22edc3c735a9efa065a2d044f87ef42..ec0607c820842a9987c0408158dd3eeeefd2004f 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/IntViewBufferImpl.class and b/libjava/classpath/lib/java/nio/IntViewBufferImpl.class differ
index 381a3419b361dea00515c9833d3ec4763c6a6800..5dd6cd4483ef86eed3987f171b6a2f209ca1ad78 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/LongViewBufferImpl.class and b/libjava/classpath/lib/java/nio/LongViewBufferImpl.class differ
index 5570a67d3e98d32a0905cf8474059ca01f0aa37d..5171ca63386f2f5a8300568eeb27bb89f4d64b9b 100644 (file)
Binary files a/libjava/classpath/lib/java/nio/ShortViewBufferImpl.class and b/libjava/classpath/lib/java/nio/ShortViewBufferImpl.class differ
index f09c1a6156a18c351f022ce515c9d1ee410ec766..d48c8153174c9214fc247f5d8e711e8e7048724b 100644 (file)
Binary files a/libjava/classpath/lib/java/rmi/MarshalledObject.class and b/libjava/classpath/lib/java/rmi/MarshalledObject.class differ
index 09eee6b76e9fcb3ab102bd2e0cc77659135b3bc4..fd96c1aa83464f2d6e372fcca69d5c06d638019b 100644 (file)
Binary files a/libjava/classpath/lib/java/rmi/activation/Activatable.class and b/libjava/classpath/lib/java/rmi/activation/Activatable.class differ
index c1c90dcc2ddc269d9e436ad88a81d67e03959073..fa8ecbf91279a24bc63712778c385afb72c65d8d 100644 (file)
Binary files a/libjava/classpath/lib/java/rmi/activation/ActivationDesc.class and b/libjava/classpath/lib/java/rmi/activation/ActivationDesc.class differ
index f07ac428422f80d355bca419b64bee69a92f2eec..e1c86e6786dafa956592773f08b5456270000bd1 100644 (file)
Binary files a/libjava/classpath/lib/java/rmi/activation/ActivationGroup.class and b/libjava/classpath/lib/java/rmi/activation/ActivationGroup.class differ
index 7800656e70a6dbf5db007431c466c7879db613d4..1380bc04d3f5ef415e809aa5759a8f09f2291026 100644 (file)
Binary files a/libjava/classpath/lib/java/rmi/activation/ActivationGroupDesc.class and b/libjava/classpath/lib/java/rmi/activation/ActivationGroupDesc.class differ
index d3e9f4dc9cd0a2c8ac85371e2686605b24cd373c..37e2dbccaf43aaa694907de74c21bf25d7c4a064 100644 (file)
Binary files a/libjava/classpath/lib/java/rmi/activation/ActivationInstantiator.class and b/libjava/classpath/lib/java/rmi/activation/ActivationInstantiator.class differ
index 28e35559397849f724a61a04be919d9b4f02f92a..eb3662e5f58cca6fb252cad4f8886e08fa7fabda 100644 (file)
Binary files a/libjava/classpath/lib/java/rmi/activation/ActivationMonitor.class and b/libjava/classpath/lib/java/rmi/activation/ActivationMonitor.class differ
index 1610b115818a78a8691ac1a18051c23708604406..8d4bcc90b58be920e52d40905ab6a75b499eabfb 100644 (file)
Binary files a/libjava/classpath/lib/java/rmi/activation/Activator.class and b/libjava/classpath/lib/java/rmi/activation/Activator.class differ
index 0aabd2c532e0cdc95f11ad59f2dfe10594e60c18..be0021123e8a594b3eb868b9dc75d568919f0a24 100644 (file)
Binary files a/libjava/classpath/lib/java/util/Arrays.class and b/libjava/classpath/lib/java/util/Arrays.class differ
index 35221f848ea1652506fbd88b2afcb65c3ac622b1..4f03a7d44b4b1296be10f201df0da0f3cdf165d2 100644 (file)
Binary files a/libjava/classpath/lib/java/util/EnumMap$1.class and b/libjava/classpath/lib/java/util/EnumMap$1.class differ
index c241a888857eeeb56daf8defdedaae27a2ca8100..ab4c751de9110ebf88b3364abe2411664acac480 100644 (file)
Binary files a/libjava/classpath/lib/java/util/EnumMap$2.class and b/libjava/classpath/lib/java/util/EnumMap$2.class differ
index 0727486a69c091130008f193840590ccb467dcf9..0e884685fdbb899de8877a97daf2c56b3702a12a 100644 (file)
Binary files a/libjava/classpath/lib/java/util/EnumMap$3.class and b/libjava/classpath/lib/java/util/EnumMap$3.class differ
index 047c317495601f2db9a3e68849a3bae380ec9a55..932a4363866d0c9f768ff5a4063b47a6a9c864dd 100644 (file)
Binary files a/libjava/classpath/lib/java/util/EnumMap$4.class and b/libjava/classpath/lib/java/util/EnumMap$4.class differ
index 2d2c5f12d0dfb684417de7e210ccdacfd68f4d4b..93b6b8dc55dda23fd3514cda805aa9801adc660c 100644 (file)
Binary files a/libjava/classpath/lib/java/util/EnumMap$5.class and b/libjava/classpath/lib/java/util/EnumMap$5.class differ
index f91d2ffdbb0acb63e4babf6871600058a160a209..904cf125e9f34b05c64f071b10359d07cd8c6852 100644 (file)
Binary files a/libjava/classpath/lib/java/util/EnumMap$6.class and b/libjava/classpath/lib/java/util/EnumMap$6.class differ
index e04db4e6950a09f280132e1a6d068b5143981609..cb383d0cfd877d80283ed3631766238d89a21415 100644 (file)
Binary files a/libjava/classpath/lib/java/util/EnumMap$7.class and b/libjava/classpath/lib/java/util/EnumMap$7.class differ
index 994696b720eb71b75f52095c5270794da609cb0d..b7d97575a92e7c507e53c3bab944db8f86ec3aef 100644 (file)
Binary files a/libjava/classpath/lib/java/util/EnumMap.class and b/libjava/classpath/lib/java/util/EnumMap.class differ
index fc2ed913d2ea8799d3398d5c686d22e650c71d4f..99df669d32d51a6c49ec7502f7751c4bad772d38 100644 (file)
Binary files a/libjava/classpath/lib/javax/management/ObjectName.class and b/libjava/classpath/lib/javax/management/ObjectName.class differ
index e2d846dc58b2286ace10ac1e13c2304d8877716a..c9d2849a17c138be9fd5e0c47b5da6d4415e1b78 100644 (file)
Binary files a/libjava/classpath/lib/javax/sound/sampled/AudioFormat.class and b/libjava/classpath/lib/javax/sound/sampled/AudioFormat.class differ
index 7d626c0b316c0cc0417657d180b3b2e0dc44aa9b..81c8b23a7763c3a0e046e8fee299dfbeb18f0744 100644 (file)
Binary files a/libjava/classpath/lib/javax/sound/sampled/DataLine$Info.class and b/libjava/classpath/lib/javax/sound/sampled/DataLine$Info.class differ
index 34b6cf6c5051c47f6cdf9110beb0fdd66a82a767..80783b1ed49d19233c991a8acc163ff0a22bb049 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI.class and b/libjava/classpath/lib/javax/swing/plaf/basic/BasicProgressBarUI.class differ
index ecfd94af194d2eec0bedce0188208bd1042e2307..32c3dbc1dd0d47792eec367c61421f8935a82253 100644 (file)
Binary files a/libjava/classpath/lib/javax/swing/text/html/parser/AttributeList.class and b/libjava/classpath/lib/javax/swing/text/html/parser/AttributeList.class differ
diff --git a/libjava/classpath/lib/sun/awt/CausedFocusEvent$Cause.class b/libjava/classpath/lib/sun/awt/CausedFocusEvent$Cause.class
new file mode 100644 (file)
index 0000000..6664666
Binary files /dev/null and b/libjava/classpath/lib/sun/awt/CausedFocusEvent$Cause.class differ
diff --git a/libjava/classpath/lib/sun/awt/CausedFocusEvent.class b/libjava/classpath/lib/sun/awt/CausedFocusEvent.class
new file mode 100644 (file)
index 0000000..417a4fc
Binary files /dev/null and b/libjava/classpath/lib/sun/awt/CausedFocusEvent.class differ
index 35daa03a190c71368be8b97a33ebcf904bcb9a42..e61ddd8038c95faa12020aff32096249bfc131b2 100644 (file)
@@ -203,7 +203,6 @@ AC_DEFUN([CLASSPATH_WITH_JAVAH],
   [ 
     CLASSPATH_CHECK_JAVAH
   ])
-  AM_CONDITIONAL(USER_SPECIFIED_JAVAH, test "x${USER_JAVAH}" != x)
   AC_SUBST(USER_JAVAH)
 ])
 
@@ -219,18 +218,12 @@ AC_DEFUN([CLASSPATH_CHECK_JAVAH],
       AC_PATH_PROG(USER_JAVAH, "$1")
     fi
   else
-    for javah_name in gcjh javah; do
-      AC_PATH_PROG(USER_JAVAH, "$javah_name")
-      if test "x${USER_JAVAH}" != x; then
-        break
-      fi
-    done
+    AC_PATH_PROGS([USER_JAVAH],[gjavah gcjh-wrapper-4.1 gcjh-4.1 gcjh javah])
   fi
   
-#  if test "x${USER_JAVAH}" = x; then
-#    echo "configure: cannot find javah" 1>&2
-#    exit 1
-#  fi
+  if test "x${USER_JAVAH}" = x; then
+    AC_MSG_ERROR([can not find javah])
+  fi
 ])
 
 dnl -----------------------------------------------------------
@@ -467,11 +460,7 @@ dnl -----------------------------------------------------------
 AC_DEFUN([CLASSPATH_CHECK_JAVAC],
 [
   if test "x$1" != x; then
-    if test -f "$1"; then
-      JAVAC="$1"
-    else
-      AC_PATH_PROG(JAVAC, "$1")
-    fi
+    JAVAC="$1"
   else
     AC_PATH_PROG(JAVAC, "javac")
   fi
index 1c8ff7049d8f3aaa9741c53e7f3145d9b76a77d8..894e786e16c1d0d94dfc08d6b475270fe1418d6a 100755 (executable)
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
 
-scriptversion=2006-05-10.23
+scriptversion=2005-06-08.21
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
 #   Free Software Foundation, Inc.
 # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
@@ -33,8 +33,6 @@ 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.
@@ -46,7 +44,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=
@@ -79,7 +77,6 @@ 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
@@ -109,7 +106,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.
     ;;
@@ -138,7 +135,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
@@ -167,7 +164,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";;
@@ -195,8 +192,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 "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
+    test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
     if test -f "$file"; then
        touch $file
     else
@@ -217,25 +214,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 test $# -ne 1; then
+    if [ $# -ne 1 ]; then
         eval LASTARG="\${$#}"
-       case $LASTARG in
+       case "$LASTARG" in
        *.y)
            SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-           if test -f "$SRCFILE"; then
+           if [ -f "$SRCFILE" ]; then
                 cp "$SRCFILE" y.tab.c
            fi
            SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-           if test -f "$SRCFILE"; then
+           if [ -f "$SRCFILE" ]; then
                 cp "$SRCFILE" y.tab.h
            fi
          ;;
        esac
     fi
-    if test ! -f y.tab.h; then
+    if [ ! -f y.tab.h ]; then
        echo >y.tab.h
     fi
-    if test ! -f y.tab.c; then
+    if [ ! -f y.tab.c ]; then
        echo 'main() { return 0; }' >y.tab.c
     fi
     ;;
@@ -247,18 +244,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 test $# -ne 1; then
+    if [ $# -ne 1 ]; then
         eval LASTARG="\${$#}"
-       case $LASTARG in
+       case "$LASTARG" in
        *.l)
            SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-           if test -f "$SRCFILE"; then
+           if [ -f "$SRCFILE" ]; then
                 cp "$SRCFILE" lex.yy.c
            fi
          ;;
        esac
     fi
-    if test ! -f lex.yy.c; then
+    if [ ! -f lex.yy.c ]; then
        echo 'main() { return 0; }' >lex.yy.c
     fi
     ;;
@@ -270,9 +267,11 @@ 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 "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -f "$file"; then
+    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
        touch $file
     else
        test -z "$file" || exec >$file
@@ -290,17 +289,11 @@ 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 "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
     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
@@ -324,13 +317,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 75ab244a5518a46c6bae761b2101e6d8caa89459..de59a595ff3db122481eeefd778a76832a736421 100644 (file)
@@ -106,6 +106,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -144,8 +146,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -169,6 +169,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -241,8 +250,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index ffbb7bca585a62aadd426bd220258c5df8743ee0..2b1bd1f4b001142791e94697dce739156bb2d661 100644 (file)
@@ -125,6 +125,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -163,8 +165,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -188,6 +188,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -260,8 +269,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 2fb6bb4032018e9db3fc267e9b8c8f4a7e030085..2361b92d189c82657669d21a73473ee0f7ed05b6 100644 (file)
@@ -125,6 +125,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -163,8 +165,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -188,6 +188,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -260,8 +269,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 1105407993f12c4b44a1d9e5fd362371fc4be5e7..b820fe745d2879ca0dcd2f1d6c386e7bb20f756d 100644 (file)
@@ -24,16 +24,20 @@ if CREATE_GCONF_PEER_LIBRARIES
   CLASSPATH_GCONF_PEER_DIR = gconf-peer
 endif
 
+if CREATE_GSTREAMER_PEER_LIBRARIES
+  CLASSPATH_GSTREAMER_PEER_DIR = gstreamer-peer
+endif
+
 if CREATE_XMLJ_LIBRARY
   XMLJDIR = xmlj
 endif
 
 SUBDIRS = classpath $(JNIDIRS) \
   $(ALSADIR) $(DSSIDIR) $(GTKDIR) $(CLASSPATH_QT_PEER_DIR) $(XMLJDIR) \
-  $(CLASSPATH_GCONF_PEER_DIR)
+  $(CLASSPATH_GCONF_PEER_DIR) $(CLASSPATH_GSTREAMER_PEER_DIR)
 DIST_SUBDIRS = classpath java-io java-lang java-net java-nio java-util \
-               gtk-peer gconf-peer qt-peer xmlj midi-alsa midi-dssi \
-               native-lib
+               gtk-peer gconf-peer gstreamer-peer qt-peer xmlj midi-alsa \
+               midi-dssi native-lib
 
 all-local:
        cd $(top_srcdir) && $(SHELL) ./scripts/check_jni_methods.sh
index d4ad33bca5deb8e3fc5cf51d91df3832673103ea..00e6c51df777f3d2ff5879f0ecb4e728c7c864aa 100644 (file)
@@ -106,6 +106,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -144,8 +146,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -169,6 +169,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -241,8 +250,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -320,14 +327,15 @@ vm_classes = @vm_classes@
 @CREATE_GTK_PEER_LIBRARIES_TRUE@GTKDIR = gtk-peer
 @CREATE_QT_PEER_LIBRARIES_TRUE@CLASSPATH_QT_PEER_DIR = qt-peer
 @CREATE_GCONF_PEER_LIBRARIES_TRUE@CLASSPATH_GCONF_PEER_DIR = gconf-peer
+@CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@CLASSPATH_GSTREAMER_PEER_DIR = gstreamer-peer
 @CREATE_XMLJ_LIBRARY_TRUE@XMLJDIR = xmlj
 SUBDIRS = classpath $(JNIDIRS) \
   $(ALSADIR) $(DSSIDIR) $(GTKDIR) $(CLASSPATH_QT_PEER_DIR) $(XMLJDIR) \
-  $(CLASSPATH_GCONF_PEER_DIR)
+  $(CLASSPATH_GCONF_PEER_DIR) $(CLASSPATH_GSTREAMER_PEER_DIR)
 
 DIST_SUBDIRS = classpath java-io java-lang java-net java-nio java-util \
-               gtk-peer gconf-peer qt-peer xmlj midi-alsa midi-dssi \
-               native-lib
+               gtk-peer gconf-peer gstreamer-peer qt-peer xmlj midi-alsa \
+               midi-dssi native-lib
 
 all: all-recursive
 
index d996df63640e809462d4ec09e8691e58be52b271..5436c42beecde9b4db022635e065b87689902baf 100644 (file)
@@ -4,8 +4,7 @@ EXTRA_DIST = classpath_jawt.h
 noinst_LTLIBRARIES = libclasspath.la
 
 libclasspath_la_SOURCES = jcl.c jcl.h \
-                         jnilink.c jnilink.h \
-                         native_state.c native_state.h
+                         jnilink.c jnilink.h
 
 AM_LDFLAGS = @CLASSPATH_CONVENIENCE@
 AM_CPPFLAGS = @CLASSPATH_INCLUDES@
index f9428576663c5fdbb79c976469036a6e08c31a6e..aff43aa76c9e52136e8385d159b0b67871004922 100644 (file)
@@ -63,7 +63,7 @@ CONFIG_HEADER = $(top_builddir)/include/config.h
 CONFIG_CLEAN_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libclasspath_la_LIBADD =
-am_libclasspath_la_OBJECTS = jcl.lo jnilink.lo native_state.lo
+am_libclasspath_la_OBJECTS = jcl.lo jnilink.lo
 libclasspath_la_OBJECTS = $(am_libclasspath_la_OBJECTS)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
 depcomp = $(SHELL) $(top_srcdir)/../../depcomp
@@ -116,6 +116,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -154,8 +156,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -179,6 +179,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -251,8 +260,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -329,8 +336,7 @@ vm_classes = @vm_classes@
 EXTRA_DIST = classpath_jawt.h
 noinst_LTLIBRARIES = libclasspath.la
 libclasspath_la_SOURCES = jcl.c jcl.h \
-                         jnilink.c jnilink.h \
-                         native_state.c native_state.h
+                         jnilink.c jnilink.h
 
 AM_LDFLAGS = @CLASSPATH_CONVENIENCE@
 AM_CPPFLAGS = @CLASSPATH_INCLUDES@
@@ -388,7 +394,6 @@ distclean-compile:
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jcl.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jnilink.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/native_state.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/classpath/native_state.c b/libjava/classpath/native/jni/classpath/native_state.c
deleted file mode 100644 (file)
index 2cb43d6..0000000
+++ /dev/null
@@ -1,276 +0,0 @@
-/* Magical NSA API -- Associate a C ptr with an instance of an object
-   Copyright (C) 1998, 2002 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 <stdlib.h>
-#include <assert.h>
-#include <jni.h>
-#include "native_state.h"
-
-#define DEFAULT_TABLE_SIZE 97
-
-struct state_table *
-cp_gtk_init_state_table_with_size (JNIEnv * env, jclass clazz, jint size)
-{
-  struct state_table *table;
-  jfieldID hash;
-  jclass clazz_g;
-
-  hash = (*env)->GetFieldID (env, clazz, "native_state", "I");
-  if (hash == NULL)
-    return NULL;
-
-  clazz_g = (*env)->NewGlobalRef (env, clazz);
-  if (clazz_g == NULL)
-    return NULL;
-
-  table = (struct state_table *) malloc (sizeof (struct state_table));
-  table->size = size;
-  table->head = (struct state_node **) calloc (sizeof (struct state_node *),
-                                              table->size);
-  table->hash = hash;
-  table->clazz = clazz_g;
-
-  return table;
-}
-
-struct state_table *
-cp_gtk_init_state_table (JNIEnv * env, jclass clazz)
-{
-  return cp_gtk_init_state_table_with_size (env, clazz, DEFAULT_TABLE_SIZE);
-}
-
-static void *
-remove_node (struct state_node **head, jint obj_id)
-{
-  struct state_node *back_ptr = NULL;
-  struct state_node *node = *head;
-
-  while (node != NULL)
-    {
-      if (node->key == obj_id)
-       {
-         void *return_value;
-         if (back_ptr == NULL)
-           *head = node->next;
-         else
-           back_ptr->next = node->next;
-         return_value = node->c_state;
-         free (node);
-         return return_value;
-       }
-      back_ptr = node;
-      node = node->next;
-    }
-
-  return NULL;
-}
-
-static void *
-get_node (struct state_node **head, jint obj_id)
-{
-  struct state_node *back_ptr = NULL;
-  struct state_node *node = *head;
-
-  while (node != NULL)
-    {
-      if (node->key == obj_id)
-       {
-         /* Move the node we found to the front of the list.  */
-         if (back_ptr != NULL)
-           {
-             back_ptr->next = node->next;
-             node->next = *head;
-             *head = node;
-           }
-
-         /* Return the match.  */
-         return node->c_state;
-       }
-
-      back_ptr = node;
-      node = node->next;
-    }
-
-  return NULL;
-}
-
-static void
-add_node (struct state_node **head, jint obj_id, void *state)
-{
-  struct state_node *node = *head;
-  struct state_node *back_ptr = NULL;
-
-  struct state_node *new_node;
-
-  if (node != NULL)
-    {
-      while (node->next != NULL && obj_id != node->key)
-       {
-         back_ptr = node;
-         node = node->next;
-       }
-
-      if (node->key == obj_id)
-       {
-         /* If we're updating a node, move it to the front of the
-            list.  */
-         if (back_ptr != NULL)
-           {
-             back_ptr->next = node->next;
-             node->next = *head;
-             *head = node;
-           }
-         node->c_state = state;
-         return;
-       }
-    }
-
-  new_node = (struct state_node *) malloc (sizeof (struct state_node));
-  new_node->key = obj_id;
-  new_node->c_state = state;
-  new_node->next = *head;
-  *head = new_node;
-}
-
-#ifndef NDEBUG
-static void
-cp_gtk_check_compat (JNIEnv * env, jobject obj, struct state_table *table)
-{
-  jclass objclazz;
-
-  objclazz = (*env)->GetObjectClass(env, obj);
-  assert ((*env)->IsAssignableFrom(env, objclazz, table->clazz));
-  (*env)->DeleteLocalRef(env, objclazz);
-}
-#endif
-
-void
-cp_gtk_set_state_oid (JNIEnv * env, jobject lock, struct state_table *table,
-              jint obj_id, void *state)
-{
-  jint hash;
-
-  hash = obj_id % table->size;
-
-  (*env)->MonitorEnter (env, lock);
-  add_node (&table->head[hash], obj_id, state);
-  (*env)->MonitorExit (env, lock);
-}
-
-void *
-cp_gtk_get_state_oid (JNIEnv * env, jobject lock, struct state_table *table,
-              jint obj_id)
-{
-  jint hash;
-  void *return_value;
-
-  hash = obj_id % table->size;
-
-  (*env)->MonitorEnter (env, lock);
-  return_value = get_node (&table->head[hash], obj_id);
-  (*env)->MonitorExit (env, lock);
-
-  return return_value;
-}
-
-void *
-cp_gtk_remove_state_oid (JNIEnv * env, jobject lock, struct state_table *table,
-                 jint obj_id)
-{
-  jint hash;
-  void *return_value;
-
-  hash = obj_id % table->size;
-
-  (*env)->MonitorEnter (env, lock);
-  return_value = remove_node (&table->head[hash], obj_id);
-  (*env)->MonitorExit (env, lock);
-
-  return return_value;
-}
-
-int
-cp_gtk_set_state (JNIEnv * env, jobject obj, struct state_table *table, void *state)
-{
-  jint obj_id;
-
-#ifndef NDEBUG
-  cp_gtk_check_compat(env, obj, table);
-#endif
-
-  obj_id = (*env)->GetIntField (env, obj, table->hash);
-
-  if ((*env)->ExceptionOccurred (env) != NULL)
-    return -1;
-
-  cp_gtk_set_state_oid (env, table->clazz, table, obj_id, state);
-  return 0;
-}
-
-void *
-cp_gtk_get_state (JNIEnv * env, jobject obj, struct state_table *table)
-{
-  jint obj_id;
-
-#ifndef NDEBUG
-  cp_gtk_check_compat(env, obj, table);
-#endif
-
-  obj_id = (*env)->GetIntField (env, obj, table->hash);
-
-  if ((*env)->ExceptionOccurred (env) != NULL)
-    return NULL;
-
-  return cp_gtk_get_state_oid (env, table->clazz, table, obj_id);
-}
-
-void *
-cp_gtk_remove_state_slot (JNIEnv * env, jobject obj, struct state_table *table)
-{
-  jint obj_id;
-
-#ifndef NDEBUG
-  cp_gtk_check_compat(env, obj, table);
-#endif
-
-  obj_id = (*env)->GetIntField (env, obj, table->hash);
-
-  if ((*env)->ExceptionOccurred (env) != NULL)
-    return NULL;
-
-  return cp_gtk_remove_state_oid (env, table->clazz, table, obj_id);
-}
diff --git a/libjava/classpath/native/jni/classpath/native_state.h b/libjava/classpath/native/jni/classpath/native_state.h
deleted file mode 100644 (file)
index 641e588..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Magical NSA API -- Associate a C ptr with an instance of an object
-   Copyright (C) 1998 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 JCL_NATIVE_STATE
-#define JCL_NATIVE_STATE
-
-#include <jni.h>
-
-struct state_table
-{
-  jint size;                   /* number of slots, should be prime */
-  jfieldID hash;               /* field containing System.identityHashCode(this) */
-  jclass clazz;                        /* lock aquired for reading/writing nodes */
-  struct state_node **head;
-};
-
-struct state_node
-{
-  jint key;
-  void *c_state;
-  struct state_node *next;
-};
-
-struct state_table *cp_gtk_init_state_table_with_size (JNIEnv *, jclass, jint);
-struct state_table *cp_gtk_init_state_table (JNIEnv *, jclass);
-
-/* lowlevel api */
-void cp_gtk_set_state_oid (JNIEnv *, jobject, struct state_table *, jint, void *);
-void *cp_gtk_get_state_oid (JNIEnv *, jobject, struct state_table *, jint);
-void *cp_gtk_remove_state_oid (JNIEnv *, jobject, struct state_table *, jint);
-
-/* highlevel api */
-int cp_gtk_set_state (JNIEnv *, jobject, struct state_table *, void *);
-void *cp_gtk_get_state (JNIEnv *, jobject, struct state_table *);
-void *cp_gtk_remove_state_slot (JNIEnv *, jobject, struct state_table *);
-
-#endif
index 3008b3d7acd78472695103be77fdc284e4271bd4..56789462d231d7fa9567a092b90b7cdd3589dbc7 100644 (file)
@@ -2,8 +2,7 @@ nativeexeclib_LTLIBRARIES = libgconfpeer.la
 
 libgconfpeer_la_SOURCES = GConfNativePeer.c
 
-libgconfpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/native_state.lo \
-                       $(top_builddir)/native/jni/classpath/jcl.lo
+libgconfpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
 
 libgconfpeer_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
 
index 109df48959af91a3e2d3516cac430b168d40b86c..9c459465c825f7143d2af3e313ad3d10eb14fe8f 100644 (file)
@@ -71,7 +71,6 @@ am__installdirs = "$(DESTDIR)$(nativeexeclibdir)"
 nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL)
 LTLIBRARIES = $(nativeexeclib_LTLIBRARIES)
 libgconfpeer_la_DEPENDENCIES =  \
-       $(top_builddir)/native/jni/classpath/native_state.lo \
        $(top_builddir)/native/jni/classpath/jcl.lo
 am_libgconfpeer_la_OBJECTS = GConfNativePeer.lo
 libgconfpeer_la_OBJECTS = $(am_libgconfpeer_la_OBJECTS)
@@ -126,6 +125,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -164,8 +165,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -189,6 +188,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -261,8 +269,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -336,9 +342,7 @@ toolexeclibdir = @toolexeclibdir@
 vm_classes = @vm_classes@
 nativeexeclib_LTLIBRARIES = libgconfpeer.la
 libgconfpeer_la_SOURCES = GConfNativePeer.c
-libgconfpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/native_state.lo \
-                       $(top_builddir)/native/jni/classpath/jcl.lo
-
+libgconfpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
 libgconfpeer_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
 AM_LDFLAGS = @CLASSPATH_MODULE@ @GCONF_LIBS@ @GDK_LIBS@
 AM_CPPFLAGS = @CLASSPATH_INCLUDES@
diff --git a/libjava/classpath/native/jni/gstreamer-peer/GStreamerIOPeer.c b/libjava/classpath/native/jni/gstreamer-peer/GStreamerIOPeer.c
new file mode 100644 (file)
index 0000000..f5d52e8
--- /dev/null
@@ -0,0 +1,772 @@
+/* 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 ***** */
diff --git a/libjava/classpath/native/jni/gstreamer-peer/Makefile.am b/libjava/classpath/native/jni/gstreamer-peer/Makefile.am
new file mode 100644 (file)
index 0000000..c40170f
--- /dev/null
@@ -0,0 +1,22 @@
+nativeexeclib_LTLIBRARIES = libgstreamerpeer.la
+
+libgstreamerpeer_la_SOURCES = GStreamerIOPeer.c \
+                              gstinputstream.c \
+                                                                                                                 gstclasspathsrc.c \
+                              gstclasspathsrc.h \
+                              gstinputstream.h
+
+libgstreamerpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
+
+libgstreamerpeer_la_LDFLAGS = $(AM_LDFLAGS) @GST_PLUGIN_LDFLAGS@ -avoid-version
+
+AM_LDFLAGS = @CLASSPATH_MODULE@ @GSTREAMER_LIBS@ @GSTREAMER_BASE_LIBS@ \
+             @GSTREAMER_PLUGINS_BASE_LIBS@ @GDK_LIBS@
+
+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 \
+            @ERROR_CFLAGS@ -Wno-unused-parameter @GSTREAMER_BASE_CFLAGS@ \
+            @GDK_CFLAGS@ @GSTREAMER_CFLAGS@ @GSTREAMER_PLUGINS_BASE_CFLAGS@ 
diff --git a/libjava/classpath/native/jni/gstreamer-peer/Makefile.in b/libjava/classpath/native/jni/gstreamer-peer/Makefile.in
new file mode 100644 (file)
index 0000000..7d752f9
--- /dev/null
@@ -0,0 +1,640 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+top_builddir = ../../..
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+INSTALL = @INSTALL@
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = native/jni/gstreamer-peer
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
+       $(top_srcdir)/../../config/lead-dot.m4 \
+       $(top_srcdir)/../../config/multi.m4 \
+       $(top_srcdir)/../../config/no-executables.m4 \
+       $(top_srcdir)/../../libtool.m4 \
+       $(top_srcdir)/../../ltoptions.m4 \
+       $(top_srcdir)/../../ltsugar.m4 \
+       $(top_srcdir)/../../ltversion.m4 \
+       $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
+       $(top_srcdir)/m4/acinclude.m4 \
+       $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+       $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
+       $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
+       $(top_srcdir)/configure.ac
+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 =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(nativeexeclibdir)"
+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
+libgstreamerpeer_la_OBJECTS = $(am_libgstreamerpeer_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+depcomp = $(SHELL) $(top_srcdir)/../../depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+       $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+       $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libgstreamerpeer_la_SOURCES)
+DIST_SOURCES = $(libgstreamerpeer_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMDEP_FALSE = @AMDEP_FALSE@
+AMDEP_TRUE = @AMDEP_TRUE@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BUILD_CLASS_FILES_FALSE = @BUILD_CLASS_FILES_FALSE@
+BUILD_CLASS_FILES_TRUE = @BUILD_CLASS_FILES_TRUE@
+CAIRO_CFLAGS = @CAIRO_CFLAGS@
+CAIRO_LIBS = @CAIRO_LIBS@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@
+CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@
+CLASSPATH_MODULE = @CLASSPATH_MODULE@
+COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@
+CP = @CP@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
+CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
+CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
+CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
+CREATE_COLLECTIONS_FALSE = @CREATE_COLLECTIONS_FALSE@
+CREATE_COLLECTIONS_TRUE = @CREATE_COLLECTIONS_TRUE@
+CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
+CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
+CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
+CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
+CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
+CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
+CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
+CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
+CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
+CREATE_JNI_HEADERS_TRUE = @CREATE_JNI_HEADERS_TRUE@
+CREATE_JNI_LIBRARIES_FALSE = @CREATE_JNI_LIBRARIES_FALSE@
+CREATE_JNI_LIBRARIES_TRUE = @CREATE_JNI_LIBRARIES_TRUE@
+CREATE_PLUGIN_FALSE = @CREATE_PLUGIN_FALSE@
+CREATE_PLUGIN_TRUE = @CREATE_PLUGIN_TRUE@
+CREATE_QT_PEER_LIBRARIES_FALSE = @CREATE_QT_PEER_LIBRARIES_FALSE@
+CREATE_QT_PEER_LIBRARIES_TRUE = @CREATE_QT_PEER_LIBRARIES_TRUE@
+CREATE_WRAPPERS_FALSE = @CREATE_WRAPPERS_FALSE@
+CREATE_WRAPPERS_TRUE = @CREATE_WRAPPERS_TRUE@
+CREATE_XMLJ_LIBRARY_FALSE = @CREATE_XMLJ_LIBRARY_FALSE@
+CREATE_XMLJ_LIBRARY_TRUE = @CREATE_XMLJ_LIBRARY_TRUE@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATE = @DATE@
+DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+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@
+ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@
+ERROR_CFLAGS = @ERROR_CFLAGS@
+EXAMPLESDIR = @EXAMPLESDIR@
+EXEEXT = @EXEEXT@
+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@
+GDK_LIBS = @GDK_LIBS@
+GENINSRC_FALSE = @GENINSRC_FALSE@
+GENINSRC_TRUE = @GENINSRC_TRUE@
+GJDOC = @GJDOC@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
+INSTALL_CLASS_FILES_FALSE = @INSTALL_CLASS_FILES_FALSE@
+INSTALL_CLASS_FILES_TRUE = @INSTALL_CLASS_FILES_TRUE@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_GLIBJ_ZIP_FALSE = @INSTALL_GLIBJ_ZIP_FALSE@
+INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAVAC = @JAVAC@
+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@
+LIBICONV = @LIBICONV@
+LIBMAGIC = @LIBMAGIC@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBVERSION = @LIBVERSION@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+MKDIR = @MKDIR@
+MOC = @MOC@
+MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
+MOZILLA_LIBS = @MOZILLA_LIBS@
+NM = @NM@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
+PANGOFT2_LIBS = @PANGOFT2_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PATH_TO_ESCHER = @PATH_TO_ESCHER@
+PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PLUGIN_DIR = @PLUGIN_DIR@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+REGEN_PARSERS_FALSE = @REGEN_PARSERS_FALSE@
+REGEN_PARSERS_TRUE = @REGEN_PARSERS_TRUE@
+REMOVE = @REMOVE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
+STRIP = @STRIP@
+USER_CLASSLIB = @USER_CLASSLIB@
+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@
+USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
+VERSION = @VERSION@
+VM_BINARY = @VM_BINARY@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+XML_CFLAGS = @XML_CFLAGS@
+XML_LIBS = @XML_LIBS@
+XSLT_CFLAGS = @XSLT_CFLAGS@
+XSLT_LIBS = @XSLT_LIBS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+ZIP = @ZIP@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
+am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+default_toolkit = @default_toolkit@
+exec_prefix = @exec_prefix@
+glibjdir = @glibjdir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+multi_basedir = @multi_basedir@
+nativeexeclibdir = @nativeexeclibdir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+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_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
+libgstreamerpeer_la_LDFLAGS = $(AM_LDFLAGS) @GST_PLUGIN_LDFLAGS@ -avoid-version
+AM_LDFLAGS = @CLASSPATH_MODULE@ @GSTREAMER_LIBS@ @GSTREAMER_BASE_LIBS@ \
+             @GSTREAMER_PLUGINS_BASE_LIBS@ @GDK_LIBS@
+
+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 \
+            @ERROR_CFLAGS@ -Wno-unused-parameter @GSTREAMER_BASE_CFLAGS@ \
+            @GDK_CFLAGS@ @GSTREAMER_CFLAGS@ @GSTREAMER_PLUGINS_BASE_CFLAGS@ 
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+       @for dep in $?; do \
+         case '$(am__configure_deps)' in \
+           *$$dep*) \
+             cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+               && exit 0; \
+             exit 1;; \
+         esac; \
+       done; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  native/jni/gstreamer-peer/Makefile'; \
+       cd $(top_srcdir) && \
+         $(AUTOMAKE) --gnu  native/jni/gstreamer-peer/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+       @case '$?' in \
+         *config.status*) \
+           cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+         *) \
+           echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+           cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+       esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+       cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES)
+       @$(NORMAL_INSTALL)
+       test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)"
+       @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \
+         if test -f $$p; then \
+           f=$(am__strip_dir) \
+           echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \
+           $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \
+         else :; fi; \
+       done
+
+uninstall-nativeexeclibLTLIBRARIES:
+       @$(NORMAL_UNINSTALL)
+       @set -x; list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \
+         p=$(am__strip_dir) \
+         echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativeexeclibdir)/$$p'"; \
+         $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativeexeclibdir)/$$p"; \
+       done
+
+clean-nativeexeclibLTLIBRARIES:
+       -test -z "$(nativeexeclib_LTLIBRARIES)" || rm -f $(nativeexeclib_LTLIBRARIES)
+       @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \
+         dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
+         test "$$dir" != "$$p" || dir=.; \
+         echo "rm -f \"$${dir}/so_locations\""; \
+         rm -f "$${dir}/so_locations"; \
+       done
+libgstreamerpeer.la: $(libgstreamerpeer_la_OBJECTS) $(libgstreamerpeer_la_DEPENDENCIES) 
+       $(LINK) -rpath $(nativeexeclibdir) $(libgstreamerpeer_la_LDFLAGS) $(libgstreamerpeer_la_OBJECTS) $(libgstreamerpeer_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+       -rm -f *.$(OBJEXT)
+
+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@
+
+.c.o:
+@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@   if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+       -rm -f *.lo
+
+clean-libtool:
+       -rm -rf .libs _libs
+
+distclean-libtool:
+       -rm -f libtool
+uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+       list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+         test -n "$$unique" || unique=$$empty_fix; \
+         $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+           $$tags $$unique; \
+       fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+               $(TAGS_FILES) $(LISP)
+       tags=; \
+       here=`pwd`; \
+       list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+       unique=`for i in $$list; do \
+           if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+         done | \
+         $(AWK) '    { files[$$0] = 1; } \
+              END { for (i in files) print i; }'`; \
+       test -z "$(CTAGS_ARGS)$$tags$$unique" \
+         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+            $$tags $$unique
+
+GTAGS:
+       here=`$(am__cd) $(top_builddir) && pwd` \
+         && cd $(top_srcdir) \
+         && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+       @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+       topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+       list='$(DISTFILES)'; for file in $$list; do \
+         case $$file in \
+           $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+           $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+         esac; \
+         if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+         dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+         if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+           dir="/$$dir"; \
+           $(mkdir_p) "$(distdir)$$dir"; \
+         else \
+           dir=''; \
+         fi; \
+         if test -d $$d/$$file; then \
+           if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+             cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+           fi; \
+           cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+         else \
+           test -f $(distdir)/$$file \
+           || cp -p $$d/$$file $(distdir)/$$file \
+           || exit 1; \
+         fi; \
+       done
+check-am: all-am
+check: check-am
+all-am: Makefile $(LTLIBRARIES)
+installdirs:
+       for dir in "$(DESTDIR)$(nativeexeclibdir)"; do \
+         test -z "$$dir" || $(mkdir_p) "$$dir"; \
+       done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+         install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+         `test -z '$(STRIP)' || \
+           echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+       @echo "This command is intended for maintainers to use"
+       @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-nativeexeclibLTLIBRARIES \
+       mostlyclean-am
+
+distclean: distclean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+       distclean-libtool distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-exec-am: install-nativeexeclibLTLIBRARIES
+
+install-info: install-info-am
+
+install-man:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+       -rm -rf ./$(DEPDIR)
+       -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+       mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-info-am uninstall-nativeexeclibLTLIBRARIES
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+       clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \
+       distclean-compile distclean-generic distclean-libtool \
+       distclean-tags distdir dvi dvi-am html html-am info info-am \
+       install install-am install-data install-data-am install-exec \
+       install-exec-am install-info install-info-am install-man \
+       install-nativeexeclibLTLIBRARIES install-strip installcheck \
+       installcheck-am installdirs maintainer-clean \
+       maintainer-clean-generic mostlyclean mostlyclean-compile \
+       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+       tags uninstall uninstall-am uninstall-info-am \
+       uninstall-nativeexeclibLTLIBRARIES
+
+# 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:
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.c b/libjava/classpath/native/jni/gstreamer-peer/gstclasspathsrc.c
new file mode 100644 (file)
index 0000000..afce1f1
--- /dev/null
@@ -0,0 +1,332 @@
+/*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
new file mode 100644 (file)
index 0000000..f5fa6c8
--- /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 "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
new file mode 100644 (file)
index 0000000..eb49696
--- /dev/null
@@ -0,0 +1,494 @@
+/*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
new file mode 100644 (file)
index 0000000..1930412
--- /dev/null
@@ -0,0 +1,99 @@
+/*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__ */
index 62ffa1395eabbb1a2353d2508f17345a8e495f04..aee61bd08f614719e3985f07e0bfc9eefaa961fd 100644 (file)
@@ -36,7 +36,7 @@ obligated to do so.  If you do not wish to do so, delete this
 exception statement from your version. */
 
 #include "gtkpeer.h"
-#include "GtkDragSourceContextPeer.h"
+#include "gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h"
 
 #include <jni.h>
 #include <gtk/gtk.h>
@@ -78,7 +78,7 @@ static jmethodID dropCompleteID;
 
 GtkWidget *widget;
 GtkWidget *tgt;
-jobject *gref;
+jobject gref;
 jobject javaObj;
 
 JNIEXPORT void JNICALL 
@@ -88,10 +88,10 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_create
   gdk_threads_enter ();
  
   javaObj = obj;
-  NSA_SET_GLOBAL_REF (env, obj);  
-  NSA_SET_GLOBAL_REF (env, comp);
+  gtkpeer_set_global_ref (env, obj);  
+  gtkpeer_set_global_ref (env, comp);
   
-  gref = NSA_GET_PTR (env, comp);
+  gref = gtkpeer_get_widget (env, comp);
   widget = get_widget (GTK_WIDGET (gref));
 
   gdk_threads_leave ();
@@ -109,7 +109,7 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeSetCursor
   gdk_threads_enter ();
 
   javaObj = obj;
-  ptr = NSA_GET_GLOBAL_REF (env, obj);
+  ptr = gtkpeer_get_global_ref (env, obj);
   
   switch (type)
     {
@@ -180,7 +180,7 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_connectSignals
   gdk_threads_enter ();
 
   javaObj = obj;
-  gref = NSA_GET_GLOBAL_REF (env, comp);
+  gref = gtkpeer_get_global_ref (env, comp);
   
   connect_signals_for_widget (widget);
 
@@ -245,7 +245,7 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_setTarget
   gdk_threads_enter ();
   
   javaObj = obj;
-  ptr = NSA_GET_PTR (env, target);
+  ptr = gtkpeer_get_widget (env, target);
   tgt = get_widget (GTK_WIDGET (ptr));
   connect_signals_for_widget (tgt);
 
@@ -268,7 +268,7 @@ Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeStartDrag
   gdk_threads_enter ();
   
   javaObj = obj;
-  ptr = NSA_GET_GLOBAL_REF (env, obj);
+  ptr = gtkpeer_get_global_ref (env, obj);
 
   data = (*env)->GetStringUTFChars (env, target, NULL);
   tar[0].target = (gchar *) data;  
index 15f865d4feeb6517585a10982c65abec9f538824..b6438ff6fea0e8f7255945459b8bf27eed9ea002 100644 (file)
@@ -44,10 +44,10 @@ libgtkpeer_la_SOURCES = gnu_java_awt_peer_gtk_CairoSurface.c \
                        gdkdisplay.h \
                        gdkfont.h \
                        gtk_jawt.c \
+                       gtkpeer.c \
                        gtkpeer.h
 
-libgtkpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/native_state.lo \
-                      $(top_builddir)/native/jni/classpath/jcl.lo
+libgtkpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
 libgtkpeer_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
 
 AM_LDFLAGS = @CLASSPATH_MODULE@ @GTK_LIBS@ @FREETYPE2_LIBS@ \
index c12ee60603dd3f2f480284df7d2152493914ff2c..1b76b7fb13d34d99427bd291a51d5340090b2d71 100644 (file)
@@ -71,7 +71,6 @@ am__installdirs = "$(DESTDIR)$(nativeexeclibdir)"
 nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL)
 LTLIBRARIES = $(nativeexeclib_LTLIBRARIES)
 libgtkpeer_la_DEPENDENCIES =  \
-       $(top_builddir)/native/jni/classpath/native_state.lo \
        $(top_builddir)/native/jni/classpath/jcl.lo
 am_libgtkpeer_la_OBJECTS = gnu_java_awt_peer_gtk_CairoSurface.lo \
        gnu_java_awt_peer_gtk_CairoGraphics2D.lo \
@@ -111,7 +110,7 @@ am_libgtkpeer_la_OBJECTS = gnu_java_awt_peer_gtk_CairoSurface.lo \
        gnu_java_awt_peer_gtk_GtkToolkit.lo \
        gnu_java_awt_peer_gtk_GtkWindowPeer.lo \
        gnu_java_awt_peer_gtk_GtkVolatileImage.lo \
-       GtkDragSourceContextPeer.lo gtk_jawt.lo
+       GtkDragSourceContextPeer.lo gtk_jawt.lo gtkpeer.lo
 libgtkpeer_la_OBJECTS = $(am_libgtkpeer_la_OBJECTS)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
 depcomp = $(SHELL) $(top_srcdir)/../../depcomp
@@ -164,6 +163,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -202,8 +203,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -227,6 +226,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -299,8 +307,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -418,11 +424,10 @@ libgtkpeer_la_SOURCES = gnu_java_awt_peer_gtk_CairoSurface.c \
                        gdkdisplay.h \
                        gdkfont.h \
                        gtk_jawt.c \
+                       gtkpeer.c \
                        gtkpeer.h
 
-libgtkpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/native_state.lo \
-                      $(top_builddir)/native/jni/classpath/jcl.lo
-
+libgtkpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
 libgtkpeer_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
 AM_LDFLAGS = @CLASSPATH_MODULE@ @GTK_LIBS@ @FREETYPE2_LIBS@ \
              @PANGOFT2_LIBS@ @X_PRE_LIBS@ @X_LIBS@ @X_EXTRA_LIBS@ @XTEST_LIBS@
@@ -544,6 +549,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkVolatileImage.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkWindowPeer.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_jawt.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkpeer.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@   if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
index fc564a86a99529ce0195d876357a78e72550984c..d5611bff6d0ca414c85a806d0d0aaf950976e845 100644 (file)
@@ -45,7 +45,6 @@ exception statement from your version. */
 #include <stdlib.h>
 #include <string.h>
 #include <config.h>
-#include "native_state.h"
 #include <gdk-pixbuf/gdk-pixbuf.h>
 
 #include <jni.h>
index 238ff9e261326597238c2c0b9932adb531ccc592..e15f08e6906577eecb0d68faf63da8d8d0766a3a 100644 (file)
 
 #include "gtkpeer.h"
 
-/* Allows storing GdkDisplay pointers in GdkGraphicsEnvironment instances. */
-extern struct state_table *cp_gtk_native_display_state_table;
-
-/* Allows storing GdkScreen pointers in GdkScreenGraphicsDevice instances. */
-extern struct state_table *cp_gtk_native_screen_state_table;
-
-#define NSA_DISPLAY_INIT(env, clazz) \
-  cp_gtk_native_display_state_table = cp_gtk_init_state_table (env, clazz)
-
-#define NSA_GET_DISPLAY_PTR(env, obj) \
-  cp_gtk_get_state (env, obj, cp_gtk_native_display_state_table)
-
-#define NSA_SET_DISPLAY_PTR(env, obj, ptr) \
-  cp_gtk_set_state (env, obj, cp_gtk_native_display_state_table, (void *)ptr)
-
-#define NSA_SCREEN_INIT(env, clazz) \
-  cp_gtk_native_screen_state_table = cp_gtk_init_state_table (env, clazz)
-
-#define NSA_GET_SCREEN_PTR(env, obj) \
-  cp_gtk_get_state (env, obj, cp_gtk_native_screen_state_table)
-
-#define NSA_SET_SCREEN_PTR(env, obj, ptr) \
-  cp_gtk_set_state (env, obj, cp_gtk_native_screen_state_table, (void *)ptr)
-
 #endif /* __GDKDISPLAY_H__ */
index 20b8e424d8484bee7bef5f308b009c9659c0584b..241a05f7d5fd2576439ac01a56954d707d735e40 100644 (file)
 #include <pango/pango-fontmap.h>
 #include <pango/pangoft2.h>
 
-extern struct state_table *cp_gtk_native_font_state_table;
-extern struct state_table *native_glyphvector_state_table;
-extern struct state_table *cp_gtk_native_text_layout_state_table;
-
-#define NSA_FONT_INIT(env, clazz) \
-  cp_gtk_native_font_state_table = cp_gtk_init_state_table (env, clazz)
-
-#define NSA_GET_FONT_PTR(env, obj) \
-  cp_gtk_get_state (env, obj, cp_gtk_native_font_state_table)
-
-#define NSA_SET_FONT_PTR(env, obj, ptr) \
-  cp_gtk_set_state (env, obj, cp_gtk_native_font_state_table, (void *)ptr)
-
-#define NSA_DEL_FONT_PTR(env, obj) \
-  cp_gtk_remove_state_slot (env, obj, cp_gtk_native_font_state_table)
-
-
-#define NSA_GV_INIT(env, clazz) \
-  native_glyphvector_state_table = cp_gtk_init_state_table (env, clazz)
-
-#define NSA_GET_GV_PTR(env, obj) \
-  cp_gtk_get_state (env, obj, native_glyphvector_state_table)
-
-#define NSA_SET_GV_PTR(env, obj, ptr) \
-  cp_gtk_set_state (env, obj, native_glyphvector_state_table, (void *)ptr)
-
-#define NSA_DEL_GV_PTR(env, obj) \
-  cp_gtk_remove_state_slot (env, obj, native_glyphvector_state_table)
-
-
-#define NSA_TEXT_LAYOUT_INIT(env, clazz) \
-  cp_gtk_native_text_layout_state_table = cp_gtk_init_state_table (env, clazz)
-
-#define NSA_GET_TEXT_LAYOUT_PTR(env, obj) \
-  cp_gtk_get_state (env, obj, cp_gtk_native_text_layout_state_table)
-
-#define NSA_SET_TEXT_LAYOUT_PTR(env, obj, ptr) \
-  cp_gtk_set_state (env, obj, cp_gtk_native_text_layout_state_table, (void *)ptr)
-
-#define NSA_DEL_TEXT_LAYOUT_PTR(env, obj) \
-  cp_gtk_remove_state_slot (env, obj, cp_gtk_native_text_layout_state_table)
-
 #define FONT_METRICS_ASCENT      0
 #define FONT_METRICS_MAX_ASCENT  1
 #define FONT_METRICS_DESCENT     2
index 40ddeedf8a18aa6adaccaa7a3f7a827a9b42fcf0..141e83792d2cc99ebffee6dae8cb9a6070ce8655 100644 (file)
@@ -327,7 +327,7 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector
   gr = JLONG_TO_PTR(struct cairographics2d, pointer);
   g_assert (gr != NULL);
 
-  pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, font);
+  pfont = (struct peerfont *) gtkpeer_get_font(env, font);
   g_assert (pfont != NULL);
 
   glyphs = g_malloc( sizeof(cairo_glyph_t) * n);
@@ -392,7 +392,7 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFont
   gr = JLONG_TO_PTR(struct cairographics2d, pointer);
   g_assert (gr != NULL);
   
-  pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, font);
+  pfont = (struct peerfont *) gtkpeer_get_font(env, font);
   g_assert (pfont != NULL);
 
   gdk_threads_enter();
@@ -508,7 +508,7 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFillRule
 JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetLine
 (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer, jdouble width, int cap, int join, double miterLimit)
+ jlong pointer, jdouble width, jint cap, jint join, jdouble miterLimit)
 {
   struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
   g_assert (gr != NULL);
index ed9cf3d6ddc3e16b9d6e3a4c1b0f4cf6a2a83fcd..9de0d7b95f12361e35befbc3d3f3f4aceb517cf5 100644 (file)
@@ -125,13 +125,13 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState
   cairo_surface_t *surface;
   GdkWindow *win;
   GtkWidget *widget = NULL;
-  void *ptr = NULL;
   int width, height;
   cairo_t *cr;
+  void *ptr;
 
   gdk_threads_enter();
 
-  ptr = NSA_GET_PTR (env, peer);
+  ptr = gtkpeer_get_widget (env, peer);
   g_assert (ptr != NULL);
 
   widget = GTK_WIDGET (ptr);
@@ -232,7 +232,7 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_copyAreaNative
 
   gdk_threads_enter();
 
-  ptr = NSA_GET_PTR (env, peer);
+  ptr = gtkpeer_get_widget (env, peer);
   g_assert (ptr != NULL);
 
   widget = GTK_WIDGET (ptr);
@@ -260,10 +260,10 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_nativeGrab
   gint w,h;
   GtkWidget *widget = NULL;
   void *ptr = NULL;
-  
+
   gdk_threads_enter();
 
-  ptr = NSA_GET_PTR (env, peer);
+  ptr = gtkpeer_get_widget (env, peer);
   g_assert (ptr != NULL);
 
   widget = GTK_WIDGET (ptr);
@@ -293,12 +293,13 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_drawVolatile
 {
   GdkPixmap *pixmap;
   GtkWidget *widget = NULL;
-  void *ptr = NULL;
   GdkGC *gc;
   GdkRectangle clip;
+  void *ptr;
 
   gdk_threads_enter();
-  ptr = NSA_GET_PTR (env, peer);
+
+  ptr = gtkpeer_get_widget (env, peer);
   g_assert (ptr != NULL);
 
   widget = GTK_WIDGET (ptr);
index 76caa5d0c0040b11b3a07fa08e6a99a5669e37d6..7ce93b0a7a502eb69b2b586e10b6bd277394c5ef 100644 (file)
@@ -67,7 +67,7 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_getPixbuf
 
   gdk_threads_enter();
 
-  ptr = NSA_GET_PTR (env, peer);
+  ptr = gtkpeer_get_widget (env, peer);
   g_assert (ptr != NULL);
 
   widget = GTK_WIDGET (ptr);
@@ -95,8 +95,8 @@ JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_copyPixbuf
   (JNIEnv *env, jobject obj __attribute__((unused)),
    jobject peer, jobject image,
-   int x __attribute__((unused)), int y __attribute__((unused)),
-   int width __attribute__((unused)), int height __attribute__((unused)))
+   jint x __attribute__((unused)), jint y __attribute__((unused)),
+   jint width __attribute__((unused)), jint height __attribute__((unused)))
 {
   gint pwidth, pheight;
   GdkPixbuf *pixbuf;
@@ -107,7 +107,7 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_copyPixbuf
 
   gdk_threads_enter();
 
-  ptr = NSA_GET_PTR (env, peer);
+  ptr = gtkpeer_get_widget (env, peer);
   g_assert (ptr != NULL);
 
   widget = GTK_WIDGET (ptr);
index 1a2d2a07430ea1c249c61286a0a6d3cf6bee398e..cea06f52d512527e7c04c6774f7aeaa1baaf4b11 100644 (file)
@@ -45,7 +45,6 @@ exception statement from your version. */
 #include <freetype/ftglyph.h>
 #include <freetype/ftoutln.h>
 #include "jcl.h"
-#include "native_state.h"
 #include "gdkfont.h"
 #include "gnu_java_awt_peer_gtk_FreetypeGlyphVector.h"
 #include "cairographics2d.h"
@@ -76,7 +75,7 @@ getFont(JNIEnv *env, jobject obj)
   data = (*env)->GetObjectField (env, obj, fid);
   g_assert (data != NULL);
 
-  pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, data);
+  pfont = (struct peerfont *) gtkpeer_get_font(env, data);
   g_assert (pfont != NULL);
   g_assert (pfont->font != NULL);
 
@@ -99,7 +98,7 @@ getFontSet(JNIEnv *env, jobject obj)
   data = (*env)->GetObjectField (env, obj, fid);
   g_assert (data != NULL);
 
-  pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, data);
+  pfont = (struct peerfont *) gtkpeer_get_font (env, data);
   g_assert (pfont != NULL);
   g_assert (pfont->font != NULL);
 
index 022edeeaffd8c8f4a5975364f2436b9c6b6e4c47..a5e59f7e4fd8cca68d83703524c18adcf02939d5 100644 (file)
 #include <freetype/fttypes.h>
 #include <freetype/tttables.h>
 #include "gdkfont.h"
+#include "gtkpeer.h"
 #include "gnu_java_awt_peer_gtk_GdkFontPeer.h"
 
-struct state_table *cp_gtk_native_font_state_table;
-
 enum java_awt_font_style {
   java_awt_font_PLAIN = 0,
   java_awt_font_BOLD = 1,
@@ -60,11 +59,14 @@ enum java_awt_font_baseline {
   java_awt_font_HANGING_BASELINE = 2
 };
 
+static PangoFT2FontMap *ft2_map = NULL;
+
 JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GdkFontPeer_initStaticState 
-  (JNIEnv *env, jclass clazz)
+  (JNIEnv *env, jclass clazz __attribute__((unused)))
 {
-  NSA_FONT_INIT (env, clazz);
+  gtkpeer_init_font_IDs(env);
+  ft2_map = PANGO_FT2_FONT_MAP(pango_ft2_font_map_new());
 }
 
 JNIEXPORT void JNICALL
@@ -78,7 +80,7 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_initState
   g_assert (self != NULL);
   pfont = (struct peerfont *) g_malloc0 (sizeof (struct peerfont));
   g_assert (pfont != NULL);
-  NSA_SET_FONT_PTR (env, self, pfont);
+  gtkpeer_set_font (env, self, pfont);
 
   gdk_threads_leave ();
 }
@@ -92,7 +94,7 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_dispose
 
   gdk_threads_enter ();
 
-  pfont = (struct peerfont *)NSA_DEL_FONT_PTR (env, self);
+  pfont = (struct peerfont *) gtkpeer_get_font (env, self);
   g_assert (pfont != NULL);
   if (pfont->layout != NULL)
     g_object_unref (pfont->layout);
@@ -118,7 +120,7 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_releasePeerGraphicsResource
 
   gdk_threads_enter();
 
-  pfont = (struct peerfont *) NSA_GET_FONT_PTR (env, java_font);
+  pfont = (struct peerfont *) gtkpeer_get_font (env, java_font);
   g_assert (pfont != NULL);
   if (pfont->graphics_resource != NULL)
     {
@@ -145,7 +147,7 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics
 
   gdk_threads_enter();
 
-  pfont = (struct peerfont *) NSA_GET_FONT_PTR (env, java_font);
+  pfont = (struct peerfont *) gtkpeer_get_font (env, java_font);
   g_assert (pfont != NULL);
   face = pango_fc_font_lock_face ((PangoFcFont *)pfont->font);
 
@@ -194,7 +196,7 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics
 
   gdk_threads_enter();
 
-  pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, java_font);
+  pfont = (struct peerfont *) gtkpeer_get_font(env, java_font);
   g_assert (pfont != NULL);
 
   cstr = (*env)->GetStringUTFChars (env, str, NULL);
@@ -248,14 +250,13 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont
   struct peerfont *pfont = NULL;
   char const *family_name = NULL;
   enum java_awt_font_style style;
-  PangoFT2FontMap *ft2_map = NULL;
 
   gdk_threads_enter ();
 
   style = (enum java_awt_font_style) style_int;
 
   g_assert (self != NULL);
-  pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, self);
+  pfont = (struct peerfont *) gtkpeer_get_font(env, self);
   g_assert (pfont != NULL);
 
   /* Clear old font information */
@@ -286,9 +287,7 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont
   pango_font_description_set_size (pfont->desc, size * PANGO_SCALE);
   
   /* Create new context */
-  ft2_map = PANGO_FT2_FONT_MAP(pango_ft2_font_map_new());
   pfont->ctx = pango_ft2_font_map_create_context (ft2_map);
-  g_object_unref(ft2_map);
   g_assert (pfont->ctx != NULL);
   
   pango_context_set_font_description (pfont->ctx, pfont->desc);
@@ -321,7 +320,7 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTrueTypeTable
   jbyteArray result_array;
   jbyte *rbuf;
 
-  pfont = (struct peerfont *)NSA_GET_FONT_PTR (env, self);
+  pfont = (struct peerfont *) gtkpeer_get_font(env, self);
   if(pfont == NULL)
     return NULL;
 
index 6528ad43a2e91fdc860b3ea479905c6d6bde213f..1c88d1b510e4cf09b9c4f47756c438ad919b99be 100644 (file)
 #include "gdkdisplay.h"
 #include "gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h"
 
-struct state_table *cp_gtk_native_display_state_table;
-
 jclass gdkGraphicsEnvironment_class;
 
 JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_initStaticState
+Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_initIDs
 (JNIEnv *env, jclass klazz __attribute__((unused)))
 {
-    gdkGraphicsEnvironment_class = (*env)->NewGlobalRef
-    (env, klazz);
-
-       NSA_DISPLAY_INIT(env, gdkGraphicsEnvironment_class);
+  gtkpeer_init_display_IDs(env);
 }
 
 JNIEXPORT void JNICALL
@@ -70,7 +65,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeInitState
     gdk_threads_leave();
     
     /* Store display pointer in GdkGraphicsEnvironment instance. */
-    NSA_SET_DISPLAY_PTR(env, obj, (void *) defaultDisplay);
+    gtkpeer_set_display(env, obj, (void *) defaultDisplay);
 }
 
 static gint
@@ -157,7 +152,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetScreenDevices
        gdkScreenGraphicsDevice_init = (*env)->GetMethodID 
     (env, gdkScreenGraphicsDevice_class, "init", "()V");
 
-       display = (GdkDisplay *) NSA_GET_DISPLAY_PTR(env, obj);
+       display = (GdkDisplay *) gtkpeer_get_display(env, obj);
        
        gdk_threads_enter();
        
@@ -181,9 +176,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetScreenDevices
                                       gdkScreenGraphicsDevice_ctor,
                                       obj);
                                                                          
-        NSA_SET_SCREEN_PTR(env,
-                           instance,
-                           gdk_display_get_screen(display, i));
+        gtkpeer_set_screen(env, instance, gdk_display_get_screen(display, i));
                                                   
         gdk_threads_leave();
         (*env)->CallVoidMethod(env,
@@ -214,15 +207,12 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetDefaultScreenDevice
     gdkScreenGraphicsDevice_ctor = (*env)->GetMethodID 
     (env, gdkScreenGraphicsDevice_class, "<init>",
      "(Lgnu/java/awt/peer/gtk/GdkGraphicsEnvironment;)V");
-    
     gdkScreenGraphicsDevice_init = (*env)->GetMethodID 
     (env, gdkScreenGraphicsDevice_class, "init", "()V");
     
     /* Create the GdkScreenGraphicsDevice instance. */
-    defaultDevice = (*env)->NewObject (env, 
-                                                                          gdkScreenGraphicsDevice_class,
-                                                                          gdkScreenGraphicsDevice_ctor,
-                                                                          obj);
+    defaultDevice = (*env)->NewObject(env, gdkScreenGraphicsDevice_class,
+                                      gdkScreenGraphicsDevice_ctor, obj);
                                                                           
     gdk_threads_enter();
        
@@ -233,7 +223,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetDefaultScreenDevice
        /* Class initialization will have set up the native_state storage
         * mechanism for GdkScreenGraphicsDevice.
         */
-    NSA_SET_SCREEN_PTR(env, defaultDevice, defaultScreen);
+    gtkpeer_set_screen(env, defaultDevice, defaultScreen);
 
     (*env)->CallVoidMethod(env,
                            defaultDevice,
@@ -252,7 +242,7 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_getMouseCoordinates
   gint x, y, screenIndex;
   GdkScreen *screen;
 
-  display = (GdkDisplay *) NSA_GET_DISPLAY_PTR(env, obj);
+  display = (GdkDisplay *) gtkpeer_get_display(env, obj);
   g_assert (display != NULL);
   
   gdk_threads_enter ();
index b92d017a5d4c482d391da017494b997fc25ec741..5ed39521aca25b7270310ba3269f864d52d7e15f 100644 (file)
 
 #include <jni.h>
 #include <jcl.h>
-#include "native_state.h"
 #include "gnu_java_awt_peer_gtk_GdkPixbufDecoder.h"
 
 #include <string.h>
 #include <stdlib.h>
 
-static struct state_table *native_pixbufdecoder_state_table;
-
-#define NSA_PB_INIT(env, clazz) \
-  native_pixbufdecoder_state_table = cp_gtk_init_state_table (env, clazz)
-
-#define NSA_GET_PB_PTR(env, obj) \
-  cp_gtk_get_state (env, obj, native_pixbufdecoder_state_table)
-
-#define NSA_SET_PB_PTR(env, obj, ptr) \
-  cp_gtk_set_state (env, obj, native_pixbufdecoder_state_table, (void *)ptr)
-
-#define NSA_DEL_PB_PTR(env, obj) \
-  cp_gtk_remove_state_slot (env, obj, native_pixbufdecoder_state_table)
-
 /* Union used for type punning. */
 union env_union
 {
@@ -201,7 +186,7 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initState
   g_signal_connect (loader, "area-updated", G_CALLBACK (area_updated_cb), decoder);
   g_signal_connect (loader, "closed", G_CALLBACK (closed_cb), decoder);
 
-  NSA_SET_PB_PTR (env, obj, loader);
+  gtkpeer_set_pixbuf_loader (env, obj, loader);
 }
 
 static void
@@ -310,7 +295,7 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initStaticState
 
   query_formats (env, clazz);
   
-  NSA_PB_INIT (env, clazz);
+  gtkpeer_init_pixbuf_IDs (env);
 }
 
 
@@ -320,7 +305,7 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_finish
 {
   GdkPixbufLoader *loader = NULL;
 
-  loader = (GdkPixbufLoader *)NSA_DEL_PB_PTR (env, obj);
+  loader = (GdkPixbufLoader *) gtkpeer_get_pixbuf_loader(env, obj);
   if (loader == NULL)
     return;
 
@@ -336,7 +321,7 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpDone
   GError *err = NULL;
   GdkPixbufLoader *loader = NULL;
 
-  loader = (GdkPixbufLoader *)NSA_GET_PB_PTR (env, obj);
+  loader = (GdkPixbufLoader *) gtkpeer_get_pixbuf_loader (env, obj);
   g_assert (loader != NULL);
 
   gdk_pixbuf_loader_close (loader, &err);
@@ -470,7 +455,7 @@ Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpBytes
 
   bytes = (*env)->GetByteArrayElements (env, jarr, NULL);
   g_assert (bytes != NULL);
-  loader = (GdkPixbufLoader *)NSA_GET_PB_PTR (env, obj);
+  loader = (GdkPixbufLoader *) gtkpeer_get_pixbuf_loader (env, obj);
   g_assert (loader != NULL);
 
   gdk_pixbuf_loader_write (loader, (const guchar *) bytes, len, &err);
index 4053ad8b6f26e491232383dc82b333eb9ce6f64e..14ba2a123d6d1a23dcc781d4353d092cbe479cb0 100644 (file)
@@ -54,13 +54,10 @@ struct state_table *cp_gtk_native_screen_state_table;
 jclass gdkScreenGraphicsDevice_class;
 
 JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_initStaticState
-(JNIEnv *env, jclass klazz)
+Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_initIDs
+(JNIEnv *env, jclass klazz __attribute__((unused)))
 {
-       gdkScreenGraphicsDevice_class = (*env)->NewGlobalRef
-    (env, klazz);
-
-       NSA_SCREEN_INIT(env, gdkScreenGraphicsDevice_class);
+  gtkpeer_init_screen_IDs(env);
 }
 
 JNIEXPORT jobject JNICALL
@@ -75,7 +72,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetFixedDisplayMode
        int temp1, temp2;
        GdkDisplay *display;
 
-    display = (GdkDisplay *) NSA_GET_DISPLAY_PTR(env, gdkGraphicsEnv);
+    display = (GdkDisplay *) gtkpeer_get_display(env, gdkGraphicsEnv);
 
        gdk_threads_enter();
 
@@ -87,7 +84,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetFixedDisplayMode
                                                "<init>",
                                                "(IIII)V");
 
-        screen = (GdkScreen *) NSA_GET_SCREEN_PTR(env, obj);
+        screen = (GdkScreen *) gtkpeer_get_screen(env, obj);
                
                fixedDisplayMode = (*env)->NewObject(env,
                                                     displayMode_class,
@@ -108,7 +105,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetFixedDisplayMode
                                            "<init>",
                                            "(IIII)V");
 
-    screen = (GdkScreen *) NSA_GET_SCREEN_PTR(env, obj);
+    screen = (GdkScreen *) gtkpeer_get_screen(env, obj);
                
     fixedDisplayMode = (*env)->NewObject(env,
                                             displayMode_class,
@@ -130,7 +127,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetIDString
        gchar* displayName;
        jstring string;
 
-    screen = (GdkScreen *) NSA_GET_SCREEN_PTR(env, obj);
+    screen = (GdkScreen *) gtkpeer_get_screen(env, obj);
        
        gdk_threads_enter();
        
@@ -155,7 +152,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetDisplayModeRate
        XRRScreenConfiguration *config;
        int rate;
        
-       display = (GdkDisplay *) NSA_GET_DISPLAY_PTR(env, gdkGraphicsEnv);
+       display = (GdkDisplay *) gtkpeer_get_display(env, gdkGraphicsEnv);
        
        gdk_threads_enter();
        
@@ -188,7 +185,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetDisplayModeIndex
        SizeID index;
        Rotation rotation;
        
-       display = (GdkDisplay *) NSA_GET_DISPLAY_PTR(env, gdkGraphicsEnv);
+       display = (GdkDisplay *) gtkpeer_get_display(env, gdkGraphicsEnv);
        
        gdk_threads_enter();
        
@@ -229,7 +226,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetDisplayModes
        short *rates;
        jshortArray shortArray;
        
-       display = (GdkDisplay *) NSA_GET_DISPLAY_PTR(env, gdkGraphicsEnv);
+       display = (GdkDisplay *) gtkpeer_get_display(env, gdkGraphicsEnv);
        
        gdk_threads_enter();
        
@@ -289,7 +286,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeSetDisplayMode
        XRRScreenConfiguration *config;
        Rotation rotation;
        
-       display = (GdkDisplay *) NSA_GET_DISPLAY_PTR(env, gdkGraphicsEnv);
+       display = (GdkDisplay *) gtkpeer_get_display(env, gdkGraphicsEnv);
        
        gdk_threads_enter();
        
@@ -335,7 +332,7 @@ Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetBounds
     rectangle_ctor = (*env)->GetMethodID 
     (env, rectangle_class, "<init>", "(IIII)V");
 
-    screen = (GdkScreen *) NSA_GET_SCREEN_PTR(env, obj);
+    screen = (GdkScreen *) gtkpeer_get_screen(env, obj);
 
        gdk_threads_enter();
        
index 1099287e2ff066b37ba513724d986e0420bd4d63..3e39b0ee29f2dfe64c4bce71010db06a8083edeb 100644 (file)
@@ -42,16 +42,15 @@ exception statement from your version. */
 static jmethodID postActionEventID;
 
 void
-cp_gtk_button_init_jni (void)
+cp_gtk_button_init_jni (JNIEnv* env)
 {
   jclass gtkbuttonpeer;
 
-  gtkbuttonpeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(),
-                                           "gnu/java/awt/peer/gtk/GtkButtonPeer");
+  gtkbuttonpeer = (*env)->FindClass (env,
+                                     "gnu/java/awt/peer/gtk/GtkButtonPeer");
 
-  postActionEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
-                                                       gtkbuttonpeer,
-                                                  "postActionEvent", "(I)V");
+  postActionEventID = (*env)->GetMethodID (cp_gtk_gdk_env(), gtkbuttonpeer,
+                                           "postActionEvent", "(I)V");
 }
 
 static void clicked_cb (GtkButton *button,
@@ -67,7 +66,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create
 
   gdk_threads_enter ();
 
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
 
   c_label = (*env)->GetStringUTFChars (env, label, NULL);
 
@@ -77,7 +76,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create
   gtk_widget_show (button);
 
   (*env)->ReleaseStringUTFChars (env, label, c_label);
-  NSA_SET_PTR (env, obj, eventbox);
+  gtkpeer_set_widget (env, obj, eventbox);
 
   gdk_threads_leave ();
 }
@@ -96,7 +95,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetGetPreferredDimensions
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   button = gtk_bin_get_child (GTK_BIN (ptr));
   label = gtk_bin_get_child (GTK_BIN (button));
@@ -136,20 +135,20 @@ JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GtkButtonPeer_connectSignals
   (JNIEnv *env, jobject obj)
 {
-  void *ptr;
-  jobject *gref;
+  GtkWidget *widget;
+  jobject gref;
   GtkWidget *button;
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
-  gref = NSA_GET_GLOBAL_REF (env, obj);
+  widget = gtkpeer_get_widget (env, obj);
+  gref = gtkpeer_get_global_ref (env, obj);
 
-  button = gtk_bin_get_child (GTK_BIN (ptr));
+  button = gtk_bin_get_child (GTK_BIN (widget));
 
   /* Button signals */
   g_signal_connect (G_OBJECT (button), "clicked",
-                   G_CALLBACK (clicked_cb), *gref);
+                   G_CALLBACK (clicked_cb), gref);
 
   /* Component signals */
   cp_gtk_component_connect_signals (G_OBJECT (button), gref);
@@ -168,7 +167,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkSetLabel
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   text = (*env)->GetStringUTFChars (env, jtext, NULL);
 
@@ -193,7 +192,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetModifyFont
 
   gdk_threads_enter();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   font_name = (*env)->GetStringUTFChars (env, name, NULL);
 
@@ -234,7 +233,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetSetBackground
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   normal_color.red = (red / 255.0) * 65535;
   normal_color.green = (green / 255.0) * 65535;
@@ -275,7 +274,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetSetForeground
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   color.red = (red / 255.0) * 65535;
   color.green = (green / 255.0) * 65535;
@@ -300,7 +299,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkActivate
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   button = gtk_bin_get_child (GTK_BIN (ptr));
   gtk_widget_activate (GTK_WIDGET (button));
@@ -317,7 +316,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetRequestFocus
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   button = gtk_bin_get_child (GTK_BIN (ptr));
   gtk_widget_grab_focus (button);
@@ -334,7 +333,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_setNativeBounds
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   widget = GTK_WIDGET (ptr);
 
index ef9ac12076af9adeb21d16c9c3b8a3fe98627d4d..600b61a333230e86a3e95640fd87b2a547c4ad5e 100644 (file)
@@ -48,11 +48,11 @@ Java_gnu_java_awt_peer_gtk_GtkCanvasPeer_create
   gdk_threads_enter ();
 
   /* Create global reference and save it for future use */
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
 
   widget = gtk_drawing_area_new ();
 
-  NSA_SET_PTR (env, obj, widget);
+  gtkpeer_set_widget (env, obj, widget);
 
   gdk_threads_leave ();
 }
index 77836cedd1eb125cb435474172c9c17824cb62c8..a30eba4498ed1de9e28854b17a2e1ca71334e769 100644 (file)
@@ -48,7 +48,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer_create
 
   gdk_threads_enter ();
   
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
 
   str = (*env)->GetStringUTFChars (env, label, NULL);
 
@@ -57,7 +57,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer_create
 
   (*env)->ReleaseStringUTFChars (env, label, str);
 
-  NSA_SET_PTR (env, obj, widget);
+  gtkpeer_set_widget (env, obj, widget);
 
   gdk_threads_leave ();
 }
@@ -70,7 +70,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer_setState
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   
   gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (ptr), state);
 
index 9a6f713ba8a7d63309648287c7ff9628bb72a899..96230aadf07041652a50e692006b82e435829d47 100644 (file)
@@ -69,18 +69,18 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_connectSignals
   (JNIEnv *env, jobject obj)
 {
   void *ptr;
-  jobject *gref;
+  jobject gref;
   GtkWidget *bin;
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
-  gref = NSA_GET_GLOBAL_REF (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
+  gref = gtkpeer_get_global_ref (env, obj);
   bin = checkbox_get_widget (GTK_WIDGET (ptr));
 
   /* Checkbox signals */
   g_signal_connect (G_OBJECT (bin), "toggled",
-                    G_CALLBACK (item_toggled_cb), *gref);
+                    G_CALLBACK (item_toggled_cb), gref);
 
   /* Component signals */
   cp_gtk_component_connect_signals (G_OBJECT (bin), gref);
@@ -97,7 +97,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkToggleButtonSetActive
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   bin = checkbox_get_widget (GTK_WIDGET (ptr));
   
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (bin), is_active);
@@ -117,7 +117,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkWidgetModifyFont
 
   gdk_threads_enter();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   button = checkbox_get_widget (GTK_WIDGET (ptr));
   label = gtk_bin_get_child (GTK_BIN(button));
@@ -156,7 +156,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkButtonSetLabel
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   c_label = (*env)->GetStringUTFChars (env, label, NULL);
 
@@ -182,14 +182,14 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_createCheckButton
 
   gdk_threads_enter ();
 
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
   eventbox = gtk_event_box_new ();
 
   button = gtk_check_button_new_with_label ("");
   gtk_container_add (GTK_CONTAINER (eventbox), button);
   gtk_widget_show (button); 
 
-  NSA_SET_PTR (env, obj, eventbox);
+  gtkpeer_set_widget (env, obj, eventbox);
 
   gdk_threads_leave ();
 }
@@ -210,7 +210,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_createRadioButton
   
   gdk_threads_enter ();
 
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
   eventbox = gtk_event_box_new ();
 
   if (groupPointer != 0)
@@ -231,7 +231,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_createRadioButton
   gtk_container_add (GTK_CONTAINER (eventbox), button);
   gtk_widget_show (button);
   
-  NSA_SET_PTR (env, obj, eventbox);
+  gtkpeer_set_widget (env, obj, eventbox);
   
   (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), obj,
                                 addToGroupMapID,
@@ -258,7 +258,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_addToGroup
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   container = GTK_WIDGET (ptr);
   check_button = checkbox_get_widget (container);
   label = gtk_label_get_text (GTK_LABEL (gtk_bin_get_child 
@@ -312,7 +312,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_removeFromGroup
     
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   container = GTK_WIDGET (ptr);
   radio_button = checkbox_get_widget (container);
   label = gtk_label_get_text (GTK_LABEL (gtk_bin_get_child 
@@ -357,7 +357,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_switchToGroup
   
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   radio_button = checkbox_get_widget (GTK_WIDGET (ptr));
   
   native_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio_button));
index ac4df69f45761174fc5c7a6bf09e27ab3c5d573c..6f3d9c0e19ba177183cafbc0b40775409ec9ddbc 100644 (file)
@@ -63,19 +63,17 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_create
 {
   GtkWidget *combobox;
   GtkWidget *eventbox;
-  jobject *gref;
 
   gdk_threads_enter ();
   
-  NSA_SET_GLOBAL_REF (env, obj);
-  gref = NSA_GET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
   
   eventbox = gtk_event_box_new ();
   combobox = gtk_combo_box_new_text ();
   gtk_container_add (GTK_CONTAINER (eventbox), combobox);
   gtk_widget_show (combobox);  
 
-  NSA_SET_PTR (env, obj, eventbox);
+  gtkpeer_set_widget (env, obj, eventbox);
 
   gdk_threads_leave ();
 }
@@ -85,19 +83,19 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_connectSignals
   (JNIEnv *env, jobject obj)
 {
   void *ptr = NULL;
-  jobject *gref = NULL;
+  jobject gref;
   GtkWidget *bin;
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
-  gref = NSA_GET_GLOBAL_REF (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
+  gref = gtkpeer_get_global_ref (env, obj);
 
   bin = choice_get_widget (GTK_WIDGET (ptr));
 
   /* Choice signals */
   g_signal_connect (G_OBJECT (bin), "changed",
-                    G_CALLBACK (selection_changed_cb), *gref);
+                    G_CALLBACK (selection_changed_cb), gref);
 
   /* Component signals */
   cp_gtk_component_connect_signals (G_OBJECT (bin), gref);
@@ -115,7 +113,7 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_add
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   bin = choice_get_widget (GTK_WIDGET (ptr));
     
   label = (*env)->GetStringUTFChars (env, item, 0);      
@@ -136,7 +134,7 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemove
   
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   bin = choice_get_widget (GTK_WIDGET (ptr));
 
   /* First, unselect everything, to avoid problems when removing items. */
@@ -157,7 +155,7 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemoveAll
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   bin = choice_get_widget (GTK_WIDGET (ptr));
   
   model = gtk_combo_box_get_model (GTK_COMBO_BOX (bin));
@@ -192,7 +190,7 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_selectNativeUnlocked
   void *ptr;
   GtkWidget *bin;
   
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   bin = choice_get_widget (GTK_WIDGET (ptr));
   gtk_combo_box_set_active (GTK_COMBO_BOX (bin), (gint)index);
 }
@@ -207,7 +205,7 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeGetSelected
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   bin = choice_get_widget (GTK_WIDGET (ptr));
   
   index = gtk_combo_box_get_active (GTK_COMBO_BOX (bin));
index 7ce1185a46da2056d692e3709f3062e7728e368b..0b076f864e3b02ec3f9cb362d4dc8e81c55f9031 100644 (file)
@@ -193,6 +193,7 @@ clipboard_get_func (GtkClipboard *clipboard,
                                       gtk_clipboard_instance,
                                       provideContentID,
                                       target_string);
+      (*env)->DeleteLocalRef(env, target_string);
       if (bytes == NULL)
        return;
       len = (*env)->GetArrayLength(env, bytes);
@@ -273,9 +274,13 @@ clipboard_get_func (GtkClipboard *clipboard,
            break;
          text = (*env)->GetStringUTFChars (env, uri, NULL);
          if (text == NULL)
-           break;
+            {
+              (*env)->DeleteLocalRef(env, uri);
+              break;
+            }
          list[i] = strdup (text);
          (*env)->ReleaseStringUTFChars (env, uri, text);
+         (*env)->DeleteLocalRef(env, uri);
        }
 
       if (i == count)
index d2025bb701f941240650415439a4eafd580ae9a4..8dbf25a5ae7791627e502fbec93bcbbdac3a9e7f 100644 (file)
@@ -208,7 +208,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursorUnlocked
   GdkCursorType gdk_cursor_type;
   GdkCursor *gdk_cursor;
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   switch (type)
     {
@@ -287,8 +287,8 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetParent
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
-  parent_ptr = NSA_GET_PTR (env, parent);
+  ptr = gtkpeer_get_widget (env, obj);
+  parent_ptr = gtkpeer_get_widget (env, parent);
   
   widget = GTK_WIDGET (ptr);
   parent_widget = get_widget(GTK_WIDGET (parent_ptr));
@@ -332,7 +332,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetSensitive
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   gtk_widget_set_sensitive (get_widget(GTK_WIDGET (ptr)), sensitive);
 
@@ -348,7 +348,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetHasFocus
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   
   retval = GTK_WIDGET_HAS_FOCUS((GTK_WIDGET (ptr)));
 
@@ -366,7 +366,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetCanFocus
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   
   retval = GTK_WIDGET_CAN_FOCUS((GTK_WIDGET (ptr)));
 
@@ -383,7 +383,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetRequestFocus
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   
   gtk_widget_grab_focus (get_widget(GTK_WIDGET (ptr)));
 
@@ -407,7 +407,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetDispatchKeyEvent
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   if (id == AWT_KEY_PRESSED)
     event = gdk_event_new (GDK_KEY_PRESS);
@@ -522,7 +522,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreen
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  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);
@@ -545,7 +545,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   point = (*env)->GetIntArrayElements (env, jpoint, 0);
 
   widget = get_widget(GTK_WIDGET (ptr));
@@ -574,7 +574,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetDimensions
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   dims = (*env)->GetIntArrayElements (env, jdims, 0);  
   dims[0] = dims[1] = 0;
@@ -603,7 +603,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetPreferredDimensions
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   dims = (*env)->GetIntArrayElements (env, jdims, 0);  
   dims[0] = dims[1] = 0;
@@ -650,7 +650,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeBounds
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   widget = GTK_WIDGET (ptr);
 
@@ -685,7 +685,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetBackground
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   bg = GTK_WIDGET (ptr)->style->bg[GTK_STATE_NORMAL];
 
@@ -714,7 +714,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetForeground
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   fg = get_widget(GTK_WIDGET (ptr))->style->fg[GTK_STATE_NORMAL];
 
@@ -743,7 +743,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetBackground
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   normal_color.red = (red / 255.0) * 65535;
   normal_color.green = (green / 255.0) * 65535;
@@ -774,7 +774,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetForeground
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   color.red = (red / 255.0) * 65535;
   color.green = (green / 255.0) * 65535;
@@ -796,7 +796,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_realize (JNIEnv *env, jobject obj)
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   gtk_widget_realize (GTK_WIDGET (ptr));
 
@@ -821,7 +821,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setVisibleNativeUnlocked
 {
   void *ptr;
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   if (visible)
     gtk_widget_show (GTK_WIDGET (ptr));
@@ -838,7 +838,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_isEnabled
   
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   ret_val = GTK_WIDGET_IS_SENSITIVE (get_widget(GTK_WIDGET (ptr)));
 
@@ -869,12 +869,12 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals
   (JNIEnv *env, jobject obj)
 {
   void *ptr;
-  jobject *gref;
+  jobject gref;
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
-  gref = NSA_GET_GLOBAL_REF (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
+  gref = gtkpeer_get_global_ref (env, obj);
 
   cp_gtk_component_connect_signals (ptr, gref);
 
@@ -889,7 +889,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeEventMask
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   gtk_widget_add_events (get_widget(GTK_WIDGET (ptr)),
                          GDK_POINTER_MOTION_MASK
@@ -948,46 +948,46 @@ find_bg_color_widget (GtkWidget *widget)
 }
 
 void
-cp_gtk_component_connect_expose_signals (GObject *ptr, jobject *gref)
+cp_gtk_component_connect_expose_signals (GObject *ptr, jobject gref)
 {
   g_signal_connect (G_OBJECT (ptr), "expose-event",
-                    G_CALLBACK (component_expose_cb), *gref);
+                    G_CALLBACK (component_expose_cb), gref);
 }
 
 void
-cp_gtk_component_connect_focus_signals (GObject *ptr, jobject *gref)
+cp_gtk_component_connect_focus_signals (GObject *ptr, jobject gref)
 {
   g_signal_connect (G_OBJECT (ptr), "focus-in-event",
-                    G_CALLBACK (component_focus_in_cb), *gref);
+                    G_CALLBACK (component_focus_in_cb), gref);
  
   g_signal_connect (G_OBJECT (ptr), "focus-out-event",
-                    G_CALLBACK (component_focus_out_cb), *gref);
+                    G_CALLBACK (component_focus_out_cb), gref);
 }
 
 void
-cp_gtk_component_connect_mouse_signals (GObject *ptr, jobject *gref)
+cp_gtk_component_connect_mouse_signals (GObject *ptr, jobject gref)
 {
   g_signal_connect (G_OBJECT (ptr), "button-press-event",
-                    G_CALLBACK (component_button_press_cb), *gref);
+                    G_CALLBACK (component_button_press_cb), gref);
  
   g_signal_connect (G_OBJECT (ptr), "button-release-event",
-                    G_CALLBACK (component_button_release_cb), *gref);
+                    G_CALLBACK (component_button_release_cb), gref);
  
   g_signal_connect (G_OBJECT (ptr), "enter-notify-event",
-                    G_CALLBACK (component_enter_notify_cb), *gref);
+                    G_CALLBACK (component_enter_notify_cb), gref);
  
   g_signal_connect (G_OBJECT (ptr), "leave-notify-event",
-                    G_CALLBACK (component_leave_notify_cb), *gref);
+                    G_CALLBACK (component_leave_notify_cb), gref);
 
   g_signal_connect (G_OBJECT (ptr), "motion-notify-event",
-                    G_CALLBACK (component_motion_notify_cb), *gref);
+                    G_CALLBACK (component_motion_notify_cb), gref);
 
   g_signal_connect (G_OBJECT (ptr), "scroll-event",
-                    G_CALLBACK (component_scroll_cb), *gref);
+                    G_CALLBACK (component_scroll_cb), gref);
 }
 
 void
-cp_gtk_component_connect_signals (GObject *ptr, jobject *gref)
+cp_gtk_component_connect_signals (GObject *ptr, jobject gref)
 {
   cp_gtk_component_connect_expose_signals (ptr, gref);
   cp_gtk_component_connect_focus_signals (ptr, gref);
index ca765c15c7be5cb7c61288e79ee05038fb97b639..fabadc8ca1c27cb1979ccab7c4d94b3e35baf19d 100644 (file)
@@ -49,7 +49,7 @@ Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create
 
   gdk_threads_enter ();
 
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
 
   window = gtk_plug_new ((GdkNativeWindow) socket_id);
 
@@ -60,7 +60,7 @@ Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create
 
   gtk_widget_show (fixed);
 
-  NSA_SET_PTR (env, obj, window);
+  gtkpeer_set_widget (env, obj, window);
 
   gdk_threads_leave ();
 }
@@ -73,7 +73,7 @@ Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_construct
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   if (GTK_WIDGET_REALIZED (GTK_WIDGET (ptr)))
     g_printerr ("ERROR: GtkPlug is already realized\n");
index b9fd54abbcdc994f9ca5052405b323d5f7e72681..10f512f298b58854753e23f10238ac9b793e41e8 100644 (file)
@@ -90,7 +90,7 @@ cp_gtk_filedialog_init_jni (void)
 
 JNIEXPORT void JNICALL 
 Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_create 
-  (JNIEnv *env, jobject obj, jobject parent, int mode)
+  (JNIEnv *env, jobject obj, jobject parent, jint mode)
 {
   void *parentp;
   gpointer widget;
@@ -98,9 +98,9 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_create
   gdk_threads_enter ();
   
   /* Create global reference and save it for future use */
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
 
-  parentp = NSA_GET_PTR(env, parent);
+  parentp = gtkpeer_get_widget(env, parent);
 
   if (mode == AWT_FILEDIALOG_LOAD)
     widget = gtk_file_chooser_dialog_new
@@ -134,7 +134,7 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_create
   gtk_window_group_add_window (cp_gtk_global_window_group,
                                GTK_WINDOW (widget));
 
-  NSA_SET_PTR (env, obj, widget);
+  gtkpeer_set_widget (env, obj, widget);
 
   gdk_threads_leave ();
 }
@@ -144,16 +144,16 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_connectSignals
   (JNIEnv *env, jobject obj)
 {
   void *ptr = NULL;
-  jobject *gref = NULL;
+  jobject gref;
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
-  gref = NSA_GET_GLOBAL_REF (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
+  gref = gtkpeer_get_global_ref (env, obj);
 
   /* FileDialog signals */
   g_signal_connect (G_OBJECT (ptr), "response",
-                   G_CALLBACK (handle_response_cb), *gref);
+                   G_CALLBACK (handle_response_cb), gref);
 
   /* Component signals */
   cp_gtk_component_connect_signals (G_OBJECT (ptr), gref);
@@ -170,7 +170,7 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeGetDirectory
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   str = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER(ptr));
 
@@ -208,7 +208,7 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFilenameFilter
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   filter = gtk_file_filter_new();
   gtk_file_filter_add_custom(filter, GTK_FILE_FILTER_FILENAME,
@@ -228,7 +228,7 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetDirectory
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   str = (*env)->GetStringUTFChars (env, directory, 0);
 
@@ -248,7 +248,7 @@ Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFile
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
     
   str = (*env)->GetStringUTFChars (env, filename, 0);
      
@@ -275,7 +275,7 @@ handle_response_cb (GtkDialog *dialog __attribute__((unused)),
       && responseId != GTK_RESPONSE_CANCEL)
     return;
 
-  ptr = NSA_GET_PTR (cp_gtk_gdk_env(), peer_obj);
+  ptr = gtkpeer_get_widget (cp_gtk_gdk_env(), peer_obj);
 
   if (responseId == GTK_RESPONSE_DELETE_EVENT)
   {
index 144ca0e8a95f3ace8c14f15e572b289e8f117197..ef7df0f0342c8f27fc019d429b1e94ec254d5900 100644 (file)
@@ -49,7 +49,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_removeMenuBarPeer
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   fixed = gtk_container_get_children (GTK_CONTAINER (ptr))->data;
   children = gtk_container_get_children (GTK_CONTAINER (fixed));
@@ -84,11 +84,11 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_setMenuBarPeer
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   if (menubar)
     {
-      mptr = NSA_GET_PTR (env, menubar);
+      mptr = gtkpeer_get_widget (env, menubar);
 
       fixed = gtk_container_get_children (GTK_CONTAINER (ptr))->data;
       gtk_fixed_put (GTK_FIXED (fixed), mptr, 0, 0);
@@ -107,7 +107,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_getMenuBarHeight
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, menubar);
+  ptr = gtkpeer_get_widget (env, menubar);
 
   gtk_widget_size_request (ptr, &requisition);
 
@@ -137,7 +137,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_setMenuBarWidthUnlocked
 
   if (menubar)
     {
-      ptr = NSA_GET_PTR (env, menubar);
+      ptr = gtkpeer_get_widget (env, menubar);
 
       /* Get the menubar's natural size request. */
       gtk_widget_set_size_request (GTK_WIDGET (ptr), -1, -1);
@@ -158,7 +158,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_gtkFixedSetVisible
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   fixed = gtk_container_get_children (GTK_CONTAINER (ptr))->data;
 
@@ -182,7 +182,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_nativeSetIconImage
   pixbuf = cp_gtk_image_get_pixbuf (env, gtkimage);
   g_assert (pixbuf != NULL);
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   gtk_window_set_icon (GTK_WINDOW (ptr), pixbuf);
 
@@ -195,7 +195,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_maximize
 {
   void *ptr;
   gdk_threads_enter ();
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   gtk_window_maximize (GTK_WINDOW (ptr));
   gdk_threads_leave ();
 }
@@ -206,7 +206,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_unmaximize
 {
   void *ptr;
   gdk_threads_enter ();
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   gtk_window_unmaximize (GTK_WINDOW (ptr));
   gdk_threads_leave ();
 }
@@ -217,7 +217,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_iconify
 {
   void *ptr;
   gdk_threads_enter ();
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   gtk_window_iconify (GTK_WINDOW (ptr));
   gdk_threads_leave ();
 }
@@ -228,7 +228,7 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_deiconify
 {
   void *ptr;
   gdk_threads_enter ();
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   gtk_window_deiconify (GTK_WINDOW (ptr));
   gdk_threads_leave ();
 }
index c8fb53040e8b2de9afb89089b028a563c1e5cb47..e0ba508499b7d32836a888e27515b8c006fdd904 100644 (file)
@@ -39,6 +39,13 @@ exception statement from your version. */
 #include "gtkpeer.h"
 #include "gnu_java_awt_peer_gtk_GtkGenericPeer.h"
 
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkGenericPeer_initIDs
+(JNIEnv *env, jclass clz __attribute__((unused)))
+{
+  gtkpeer_init_widget_IDs(env);
+}
+
 JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose
   (JNIEnv *env, jobject obj)
@@ -47,15 +54,14 @@ Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   /* For now the native state for any object must be a widget.
      However, a subclass could override dispose() if required.  */
   gtk_widget_destroy (GTK_WIDGET (ptr));
 
-  /* Remove entries from state tables */
-  NSA_DEL_GLOBAL_REF (env, obj);
-  NSA_DEL_PTR (env, obj);
+  /* Delete global reference. */
+  gtkpeer_del_global_ref(env, obj);
 
   gdk_threads_leave ();
 }
@@ -70,7 +76,7 @@ Java_gnu_java_awt_peer_gtk_GtkGenericPeer_gtkWidgetModifyFont
 
   gdk_threads_enter();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   font_name = (*env)->GetStringUTFChars (env, name, NULL);
 
index 13473a9a8db7cf9f113c367d8cf4b4af4b690a7e..3703858fe0082c820e14590f796a5761545839c0 100644 (file)
@@ -49,7 +49,7 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_create
 
   gdk_threads_enter ();
 
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
 
   str = (*env)->GetStringUTFChars (env, text, 0);
 
@@ -61,7 +61,7 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_create
 
   (*env)->ReleaseStringUTFChars (env, text, str);
 
-  NSA_SET_PTR (env, obj, eventbox);
+  gtkpeer_set_widget (env, obj, eventbox);
 
   gdk_threads_leave ();
 }
@@ -78,7 +78,7 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_gtkWidgetGetPreferredDimensions
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   label = gtk_bin_get_child (GTK_BIN (ptr));
 
@@ -115,7 +115,7 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_gtkWidgetModifyFont
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   font_name = (*env)->GetStringUTFChars (env, name, NULL);
 
@@ -156,7 +156,7 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeText
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   str = (*env)->GetStringUTFChars (env, text, 0);
 
@@ -178,7 +178,7 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_nativeSetAlignment
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   label = gtk_bin_get_child (GTK_BIN(ptr));
 
@@ -196,7 +196,7 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeBounds
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   widget = GTK_WIDGET (ptr);
 
index 54ef31a4fede7ab0268a5385015acb71f60a315f..4b7b63e6df8c5d012f439828a92bf1b2d8a79a8e 100644 (file)
@@ -84,7 +84,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_create
   gdk_threads_enter ();
 
   /* Create global reference and save it for future use */
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
 
   list_store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING);
   /* Add the number of rows so that we can calculate the tree view's
@@ -127,7 +127,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_create
   gtk_widget_show (list);
   gtk_widget_show (sw);
 
-  NSA_SET_PTR (env, obj, eventbox);
+  gtkpeer_set_widget (env, obj, eventbox);
 
   gdk_threads_leave ();
 }
@@ -137,20 +137,20 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_connectSignals
   (JNIEnv *env, jobject obj)
 {
   void *ptr;
-  jobject *gref;
+  jobject gref;
   GtkWidget *list;
   GtkTreeSelection *selection;
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
-  gref = NSA_GET_GLOBAL_REF (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
+  gref = gtkpeer_get_global_ref (env, obj);
 
   list = list_get_widget (GTK_WIDGET (ptr));
 
   selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list));
   gtk_tree_selection_set_select_function (selection, item_highlighted_cb,
-                                          *gref, NULL);
+                                          gref, NULL);
 
   cp_gtk_component_connect_signals (G_OBJECT (list), gref);
 
@@ -168,7 +168,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_gtkWidgetModifyFont
 
   gdk_threads_enter();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   list = list_get_widget (GTK_WIDGET (ptr));
 
@@ -202,7 +202,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_gtkWidgetRequestFocus
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   
   list = list_get_widget (GTK_WIDGET (ptr));
   gtk_widget_grab_focus (list);
@@ -223,7 +223,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_append
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   count = (*env)->GetArrayLength (env, items);
 
@@ -261,7 +261,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_add
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   str = (*env)->GetStringUTFChars (env, text, NULL);
 
   list = list_get_widget (GTK_WIDGET (ptr));
@@ -294,7 +294,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_delItems
     
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   list = list_get_widget (GTK_WIDGET (ptr));
   list_store = gtk_tree_view_get_model (GTK_TREE_VIEW (list));
@@ -327,7 +327,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_select
     
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   list = list_get_widget (GTK_WIDGET (ptr));
   path = gtk_tree_path_new_from_indices (index, -1);
@@ -347,7 +347,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_deselect
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   list = list_get_widget (GTK_WIDGET (ptr));
   selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list));
@@ -372,7 +372,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_getSize
   dims = (*env)->GetIntArrayElements (env, jdims, NULL);
   dims[0] = dims[1] = 0;
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   bin = list_get_widget (GTK_WIDGET (ptr));
   
   /* Save the widget's current size request. */
@@ -421,7 +421,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_getSelectedIndexes
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   list = list_get_widget (GTK_WIDGET (ptr));
   selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list));
@@ -467,7 +467,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_makeVisible
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   list = list_get_widget (GTK_WIDGET (ptr));
   path = gtk_tree_path_new_from_indices (index, -1);
@@ -487,7 +487,7 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_setMultipleMode
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   list = list_get_widget (GTK_WIDGET (ptr));
   selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list));
index 1a21126a81a611409c73c7618edd700a34ad323b..ac3fab78be0cf49de994c683c371a937f0a1483e 100644 (file)
@@ -47,12 +47,12 @@ Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_create
 
   gdk_threads_enter ();
   
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
 
   widget = gtk_menu_bar_new ();
   gtk_widget_show (widget);
 
-  NSA_SET_PTR (env, obj, widget);
+  gtkpeer_set_widget (env, obj, widget);
 
   gdk_threads_leave ();
 }
@@ -65,8 +65,8 @@ Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_addMenu
 
   gdk_threads_enter ();
 
-  mbar = NSA_GET_PTR (env, obj);
-  menu = NSA_GET_PTR (env, menupeer);
+  mbar = gtkpeer_get_widget (env, obj);
+  menu = gtkpeer_get_widget (env, menupeer);
 
   gtk_menu_shell_append (GTK_MENU_SHELL (mbar), GTK_WIDGET (menu));
 
@@ -82,7 +82,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_delMenu
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   list = gtk_container_get_children (GTK_CONTAINER (ptr));
   list = g_list_nth (list, index);
index 01b74e46c5766b7fbe26e671c511eeb81cb913ae..6da949488bea94575a3438b9bbac033408383e2e 100644 (file)
@@ -51,6 +51,5 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuComponentPeer_dispose
   /* However, references to the Java objects still exist in the
      state tables, so we still have to remove those. */
      
-  NSA_DEL_GLOBAL_REF (env, obj);
-  NSA_DEL_PTR (env, obj);  
+  gtkpeer_del_global_ref (env, obj);
 }
index d2ae148a9a444688fe3794fef3bfc78febb12592..965435545807ab726c3dd4e93ffbaa1410f75822 100644 (file)
@@ -68,7 +68,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_create
 
   gdk_threads_enter ();
 
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
 
   str = (*env)->GetStringUTFChars (env, label, NULL);
 
@@ -82,7 +82,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_create
 
   (*env)->ReleaseStringUTFChars (env, label, str);
 
-  NSA_SET_PTR (env, obj, widget);
+  gtkpeer_set_widget (env, obj, widget);
 
   gdk_threads_leave ();
 }
@@ -92,15 +92,15 @@ Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_connectSignals
   (JNIEnv *env, jobject obj)
 {
   void *ptr;
-  jobject *gref;
+  jobject gref;
   
   gdk_threads_enter ();
   
-  ptr = NSA_GET_PTR (env, obj);
-  gref = NSA_GET_GLOBAL_REF (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
+  gref = gtkpeer_get_global_ref (env, obj);
 
   g_signal_connect (G_OBJECT (ptr), "activate",
-                    G_CALLBACK (item_activate_cb), *gref);
+                    G_CALLBACK (item_activate_cb), gref);
 
   gdk_threads_leave ();
 }
@@ -116,7 +116,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_gtkWidgetModifyFont
 
   gdk_threads_enter();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   font_name = (*env)->GetStringUTFChars (env, name, NULL);
 
@@ -152,7 +152,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setEnabled
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   gtk_widget_set_sensitive (GTK_WIDGET (ptr), enabled);
 
@@ -169,7 +169,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setLabel
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   str = (*env)->GetStringUTFChars (env, label, NULL);
 
index c23fc5bd6a4dd4ecbda7ceb650b9e95a0f1ec373..1081de2530f3b29699bf67cfc287fdfc4d16f53a 100644 (file)
@@ -47,7 +47,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuPeer_setupAccelGroup
 
   gdk_threads_enter ();
 
-  ptr1 = NSA_GET_PTR (env, obj);
+  ptr1 = gtkpeer_get_widget (env, obj);
 
   if (!parent)
     {
@@ -58,7 +58,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuPeer_setupAccelGroup
     {
       GtkAccelGroup *parent_accel;
 
-      ptr2 = NSA_GET_PTR (env, parent);
+      ptr2 = gtkpeer_get_widget (env, parent);
       parent_accel = gtk_menu_get_accel_group (GTK_MENU (GTK_MENU_ITEM (ptr2)->submenu));
       
       gtk_menu_set_accel_group (GTK_MENU (GTK_MENU_ITEM (ptr1)->submenu),
@@ -78,7 +78,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuPeer_create
 
   gdk_threads_enter ();
   
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
 
   str = (*env)->GetStringUTFChars (env, label, NULL);
 
@@ -101,7 +101,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuPeer_create
 
   gtk_widget_show (menu_title);
 
-  NSA_SET_PTR (env, obj, menu_title);
+  gtkpeer_set_widget (env, obj, menu_title);
 
   (*env)->ReleaseStringUTFChars (env, label, str);
 
@@ -117,7 +117,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuPeer_addTearOff
 
   gdk_threads_enter ();
 
-  ptr1 = NSA_GET_PTR (env, obj);
+  ptr1 = gtkpeer_get_widget (env, obj);
 
   menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (ptr1));
   item = gtk_tearoff_menu_item_new ();
@@ -136,8 +136,8 @@ Java_gnu_java_awt_peer_gtk_GtkMenuPeer_addItem
 
   gdk_threads_enter ();
 
-  ptr1 = NSA_GET_PTR (env, obj);
-  ptr2 = NSA_GET_PTR (env, menuitempeer);
+  ptr1 = gtkpeer_get_widget (env, obj);
+  ptr2 = gtkpeer_get_widget (env, menuitempeer);
 
   menu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(ptr1));
   gtk_menu_shell_append (GTK_MENU_SHELL(menu), GTK_WIDGET (ptr2));
@@ -164,7 +164,7 @@ Java_gnu_java_awt_peer_gtk_GtkMenuPeer_delItem
   
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   menu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(ptr));
 
index 8a130e1a4b390ce458b39eda7bdeaa2acc5b34a6..e52e6de5133cfc0ac702d8a981091b2b0627c46c 100644 (file)
@@ -55,7 +55,7 @@ Java_gnu_java_awt_peer_gtk_GtkPanelPeer_create
 
   gdk_threads_enter ();
 
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
 
   widget = gtk_fixed_new ();
 
@@ -63,7 +63,7 @@ Java_gnu_java_awt_peer_gtk_GtkPanelPeer_create
 
   GTK_WIDGET_SET_FLAGS (widget, GTK_CAN_FOCUS);
 
-  NSA_SET_PTR (env, obj, widget);
+  gtkpeer_set_widget (env, obj, widget);
 
   gdk_threads_leave ();
 }
@@ -73,20 +73,20 @@ Java_gnu_java_awt_peer_gtk_GtkPanelPeer_connectSignals
   (JNIEnv *env, jobject obj)
 {
   void *ptr;
-  jobject *gref;
+  jobject gref;
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
-  gref = NSA_GET_GLOBAL_REF (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
+  gref = gtkpeer_get_global_ref (env, obj);
 
   /* Panel signals.  These callbacks prevent expose events being
      delivered to the panel when it is focused. */
   g_signal_connect (G_OBJECT (ptr), "focus-in-event",
-                    G_CALLBACK (panel_focus_in_cb), *gref);
+                    G_CALLBACK (panel_focus_in_cb), gref);
 
   g_signal_connect (G_OBJECT (ptr), "focus-out-event",
-                    G_CALLBACK (panel_focus_out_cb), *gref);
+                    G_CALLBACK (panel_focus_out_cb), gref);
 
   /* Component signals.  Exclude focus signals. */
   cp_gtk_component_connect_expose_signals (ptr, gref);
index e684a090f8f20cbb3f00a3d6cf836d72aa7a9c2c..b7b1c3322d1fab6d95006e3912c1d97a1cede1f6 100644 (file)
@@ -67,7 +67,7 @@ Java_gnu_java_awt_peer_gtk_GtkPopupMenuPeer_show
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   p = g_malloc (sizeof (struct pos));
   p->x = x;
@@ -90,8 +90,8 @@ Java_gnu_java_awt_peer_gtk_GtkPopupMenuPeer_setupAccelGroup
 
   gdk_threads_enter ();
 
-  ptr1 = NSA_GET_PTR (env, obj);
-  ptr2 = NSA_GET_PTR (env, parent);
+  ptr1 = gtkpeer_get_widget (env, obj);
+  ptr2 = gtkpeer_get_widget (env, parent);
 
   menu = GTK_MENU (GTK_MENU_ITEM (ptr1)->submenu);
   gtk_menu_set_accel_group (menu, gtk_accel_group_new ());
index a4690deeda30f41e3045cc45e4f73529b3091431..0d67b0b787e890934a6df6fad5f029422f4549d0 100644 (file)
@@ -55,7 +55,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_create
   gdk_threads_enter ();
   
   /* Create global reference and save it for future use */
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
 
   sw = gtk_scrolled_window_new (NULL, NULL);
   gtk_widget_set_size_request (sw, width, height);
@@ -63,7 +63,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_create
   gtk_container_add (GTK_CONTAINER (eventbox), sw);
   gtk_widget_show (sw);
 
-  NSA_SET_PTR (env, obj, eventbox);
+  gtkpeer_set_widget (env, obj, eventbox);
 
   gdk_threads_leave ();
 }
@@ -78,7 +78,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_setScrollPosition
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr)));
 
@@ -101,7 +101,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowSetHScrollIncremen
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr)));
 
@@ -121,7 +121,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowSetVScrollIncremen
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr)));
 
@@ -143,7 +143,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_getHScrollbarHeight
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr)));
 
@@ -168,7 +168,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_getVScrollbarWidth
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr)));
 
@@ -190,7 +190,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_setPolicy
   
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   switch (policy)
     {
index a90501968b684fe1ab94eb3fd632169e22a400c3..64d91d2b276bdac3dcb455a053d2313c93dda880 100644 (file)
@@ -84,7 +84,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_create
   GtkObject *adj;
 
   /* Create global reference and save it for future use */
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
 
   gdk_threads_enter ();
 
@@ -119,16 +119,16 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_create
 
   gdk_threads_leave ();
 
-  NSA_SET_PTR (env, obj, eventbox);
+  gtkpeer_set_widget (env, obj, eventbox);
 }
 
 JNIEXPORT void JNICALL
 Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_connectSignals
   (JNIEnv *env, jobject obj)
 {
-  void *ptr = NSA_GET_PTR (env, obj);
+  void *ptr = gtkpeer_get_widget (env, obj);
   GtkWidget *wid = scrollbar_get_widget (GTK_WIDGET (ptr));
-  jobject *gref = NSA_GET_GLOBAL_REF (env, obj);
+  jobject gref = gtkpeer_get_global_ref (env, obj);
   g_assert (gref);
 
   gdk_threads_enter ();
@@ -136,10 +136,10 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_connectSignals
   /* Scrollbar signals */
 #if GTK_MINOR_VERSION > 4
   g_signal_connect (G_OBJECT (wid), "change-value",
-                    G_CALLBACK (slider_moved_cb), *gref);
+                    G_CALLBACK (slider_moved_cb), gref);
 #else
   g_signal_connect (G_OBJECT (wid), "value-changed",
-                    G_CALLBACK (post_change_event_cb), *gref);
+                    G_CALLBACK (post_change_event_cb), gref);
 #endif
 
   /* Component signals */
@@ -156,7 +156,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setLineIncrement
   GtkAdjustment *adj;
   GtkWidget *wid;
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   wid = scrollbar_get_widget (GTK_WIDGET (ptr));
   
   gdk_threads_enter ();
@@ -176,7 +176,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setPageIncrement
   GtkAdjustment *adj;
   GtkWidget *wid;
   
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   wid = scrollbar_get_widget (GTK_WIDGET (ptr));
   
   gdk_threads_enter ();
@@ -196,7 +196,7 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setBarValues
   GtkAdjustment *adj;
   GtkWidget *wid;
   
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   wid = scrollbar_get_widget (GTK_WIDGET (ptr));
   
   gdk_threads_enter ();
index be03c45254e1457510ec80df8ef602140edaeec2..e5ba4c7b1140c50b6c704c775bd07b7a34b6aa66 100644 (file)
@@ -105,6 +105,8 @@ clipboard_targets_received (GtkClipboard *clipboard
          stringClass = (*env)->FindClass (env, "java/lang/String");
          strings = (*env)->NewObjectArray (env, strings_len, stringClass,
                                            NULL);
+         (*env)->DeleteLocalRef(env, stringClass);
+
          if (strings != NULL)
            {
              if (include_text)
@@ -133,6 +135,8 @@ clipboard_targets_received (GtkClipboard *clipboard
                      (*env)->DeleteLocalRef (env, string);
                    }
                }
+
+             (*env)->DeleteLocalRef(env, strings);
            }
 
          for (i = 0; i < targets_len; i++)
@@ -341,6 +345,8 @@ clipboard_uris_received (GtkClipboard *clipboard
        len++;
 
       strings = (*env)->NewObjectArray (env, len, stringClass, NULL);
+      (*env)->DeleteLocalRef(env, stringClass);
+
       if (strings != NULL)
        {
          for (i = 0; i < len; i++)
@@ -351,6 +357,8 @@ clipboard_uris_received (GtkClipboard *clipboard
              (*env)->SetObjectArrayElement (env, strings, i, string);
              (*env)->DeleteLocalRef (env, string);
            }
+
+         (*env)->DeleteLocalRef(env, strings);
        }
       g_strfreev (uris);
     }
index bd6e14d76506715193eb989ccaba462e0f00feee..4d768fa330283a94a6c75094527315f2f456bff1 100644 (file)
@@ -57,7 +57,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create
   gdk_threads_enter ();
 
   /* Create global reference and save it for future use */
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
 
   text = gtk_text_view_new ();
   gtk_widget_set_size_request (text, textview_width, textview_height);
@@ -86,7 +86,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create
                                || scroll == AWT_TEXTAREA_SCROLLBARS_HORIZONTAL_ONLY)
                               ? GTK_WRAP_NONE : GTK_WRAP_WORD);
 
-  NSA_SET_PTR (env, obj, eventbox);
+  gtkpeer_set_widget (env, obj, eventbox);
 
   gdk_threads_leave ();
 }
@@ -98,12 +98,12 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_connectSignals
   GtkWidget *text = NULL;
   GtkTextBuffer *buf;
   void *ptr;
-  jobject *gref;
+  jobject gref;
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
-  gref = NSA_GET_GLOBAL_REF (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
+  gref = gtkpeer_get_global_ref (env, obj);
 
   /* Unwrap the text view from the scrolled window */
   text = textarea_get_widget (GTK_WIDGET (ptr));
@@ -131,7 +131,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_insert
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   str = (*env)->GetStringUTFChars (env, contents, NULL);
   
   text = textarea_get_widget (GTK_WIDGET (ptr));
@@ -159,7 +159,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_replaceRange
 
   gdk_threads_enter ();
   
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   str = (*env)->GetStringUTFChars (env, contents, NULL);
   
   text = textarea_get_widget (GTK_WIDGET (ptr));
@@ -189,7 +189,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkWidgetModifyFont
 
   gdk_threads_enter();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   
   text = textarea_get_widget (GTK_WIDGET (ptr));
 
@@ -223,7 +223,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkWidgetRequestFocus
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   
   text = textarea_get_widget (GTK_WIDGET (ptr));
 
@@ -245,7 +245,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getHScrollbarHeight
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   bin = gtk_bin_get_child (GTK_BIN (ptr));
   sw = GTK_SCROLLED_WINDOW (bin);
@@ -275,7 +275,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getVScrollbarWidth
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   
   bin = gtk_bin_get_child (GTK_BIN (ptr));
   sw = GTK_SCROLLED_WINDOW (bin);
@@ -305,7 +305,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getCaretPosition
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   
   text = textarea_get_widget (GTK_WIDGET (ptr));
 
@@ -333,7 +333,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_setCaretPosition
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   
   text = textarea_get_widget (GTK_WIDGET (ptr));
 
@@ -375,7 +375,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getSelectionStart
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   text = textarea_get_widget (GTK_WIDGET (ptr));
 
@@ -412,7 +412,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getSelectionEnd
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   text = textarea_get_widget (GTK_WIDGET (ptr));
 
@@ -445,7 +445,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_select
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   text = textarea_get_widget (GTK_WIDGET (ptr));
 
@@ -469,7 +469,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_setEditable
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   text = textarea_get_widget (GTK_WIDGET (ptr));
 
@@ -491,7 +491,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getText
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   text = textarea_get_widget (GTK_WIDGET (ptr));
 
@@ -519,7 +519,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_setText
   
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   str = (*env)->GetStringUTFChars (env, contents, NULL);
 
   text = textarea_get_widget (GTK_WIDGET (ptr));
index 30b4a0fdac1f002ba96512fafa655074b90619d8..df82ff091b51ba0af15dc5678a2457e61c22fa83 100644 (file)
@@ -73,13 +73,13 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_create
   gdk_threads_enter ();
 
   /* Create global reference and save it for future use */
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
 
   entry = gtk_entry_new ();
   gtk_widget_set_size_request (entry,
                               text_width + 2 * get_border_width (entry), -1);
 
-  NSA_SET_PTR (env, obj, entry);
+  gtkpeer_set_widget (env, obj, entry);
 
   gdk_threads_leave ();
 }
@@ -89,12 +89,12 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_connectSignals
   (JNIEnv *env, jobject obj)
 {
   void *ptr;
-  jobject *gref;
+  jobject gref;
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
-  gref = NSA_GET_GLOBAL_REF (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
+  gref = gtkpeer_get_global_ref (env, obj);
 
   /* TextComponent signals */
   cp_gtk_textcomponent_connect_signals (G_OBJECT (ptr), gref);
@@ -114,7 +114,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkWidgetSetBackground
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   color.red = (red / 255.0) * 65535;
   color.green = (green / 255.0) * 65535;
@@ -134,7 +134,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkWidgetSetForeground
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   color.red = (red / 255.0) * 65535;
   color.green = (green / 255.0) * 65535;
@@ -162,7 +162,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkEntryGetBorderWidth
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   border_width = get_border_width (GTK_WIDGET (ptr));
 
@@ -207,7 +207,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setEchoChar
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   entry = GTK_ENTRY (ptr);
 
@@ -233,7 +233,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_getCaretPosition
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   pos = gtk_editable_get_position (GTK_EDITABLE (ptr));
 
@@ -250,7 +250,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setCaretPosition
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   gtk_editable_set_position (GTK_EDITABLE (ptr), pos);
 
@@ -267,7 +267,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_getSelectionStart
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   if (gtk_editable_get_selection_bounds (GTK_EDITABLE (ptr), &starti, &endi))
     pos = starti;
@@ -289,7 +289,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_getSelectionEnd
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   if (gtk_editable_get_selection_bounds (GTK_EDITABLE (ptr), &starti, &endi))
     pos = endi;
@@ -309,7 +309,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_select
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   gtk_editable_select_region (GTK_EDITABLE (ptr), start, end);
 
@@ -324,7 +324,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setEditable
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   gtk_editable_set_editable (GTK_EDITABLE (ptr), state);
 
@@ -341,7 +341,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_getText
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   
   contents = gtk_editable_get_chars (GTK_EDITABLE (ptr), 0, -1);
 
@@ -363,7 +363,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setText
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   str = (*env)->GetStringUTFChars (env, contents, NULL);
   
   gtk_entry_set_text (GTK_ENTRY (ptr), str);
@@ -374,10 +374,10 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setText
 }
 
 void
-cp_gtk_textcomponent_connect_signals (GObject *ptr, jobject *gref)
+cp_gtk_textcomponent_connect_signals (GObject *ptr, jobject gref)
 {
   g_signal_connect (G_OBJECT(ptr), "changed",
-                    G_CALLBACK (textcomponent_changed_cb), *gref);
+                    G_CALLBACK (textcomponent_changed_cb), gref);
 }
 
 static void
index d2a4b0e4222d2a4351422e35ca4f781a23d30398..1186f659c1567e78340b4c254247258249118f6c 100644 (file)
@@ -79,9 +79,6 @@ exception statement from your version. */
 #define VK_CAPS_LOCK 20
 #define VK_META 157
 
-struct state_table *cp_gtk_native_state_table;
-struct state_table *cp_gtk_native_global_ref_table;
-
 static jclass gtkgenericpeer;
 static jclass gtktoolkit;
 static JavaVM *java_vm;
@@ -129,6 +126,13 @@ static void glog_func (const gchar *log_domain,
                       gpointer user_data);
 #endif
 
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkToolkit_initIDs
+(JNIEnv *env, jclass cls __attribute__((unused)))
+{
+  gtkpeer_init_pointer_IDs(env);
+}
+
 /*
  * Call gtk_init.  It is very important that this happen before any other
  * gtk calls.
@@ -158,8 +162,6 @@ Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit (JNIEnv *env,
   printCurrentThreadID = (*env)->GetStaticMethodID (env, gtkgenericpeer,
                                                     "printCurrentThread", "()V");
  
-  NSA_INIT (env, gtkgenericpeer);
-
   g_assert((*env)->GetJavaVM(env, &java_vm) == 0);
 
   /* GTK requires a program's argc and argv variables, and requires that they
@@ -203,7 +205,7 @@ Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit (JNIEnv *env,
   old_glog_func = g_log_set_default_handler (&glog_func, NULL);
 #endif
 
-  cp_gtk_button_init_jni ();
+  cp_gtk_button_init_jni (env);
   cp_gtk_checkbox_init_jni ();
   cp_gtk_choice_init_jni ();
   cp_gtk_component_init_jni ();
index 3fb5331a23ed97890d2f3c111db1b224ffb248ac..e3edf1fb542849efa87213c1adb72e6219ff40a6 100644 (file)
@@ -65,7 +65,7 @@ Java_gnu_java_awt_peer_gtk_GtkVolatileImage_init (JNIEnv *env,
 
   if( peer != NULL )
     {
-      ptr = NSA_GET_PTR (env, peer);
+      ptr = gtkpeer_get_widget (env, peer);
       g_assert (ptr != NULL);
       
       widget = GTK_WIDGET (ptr);
index aa70b9d2dca0e8de997ee991fd0f038d17fe06e6..6ba8d4767586573f83b263baffe953912ebae2b3 100644 (file)
@@ -1167,7 +1167,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create
 
   gdk_threads_enter ();
   
-  NSA_SET_GLOBAL_REF (env, obj);
+  gtkpeer_set_global_ref (env, obj);
 
   window_widget = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   window = GTK_WINDOW (window_widget);
@@ -1175,7 +1175,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create
   /* Keep this window in front of its parent, if it has one. */
   if (parent)
     {
-      window_parent = NSA_GET_PTR (env, parent);
+      window_parent = gtkpeer_get_widget (env, parent);
       gtk_window_set_transient_for (window, GTK_WINDOW(window_parent));
     }
 
@@ -1191,7 +1191,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create
 
   gtk_widget_show (fixed);
 
-  NSA_SET_PTR (env, obj, window_widget);
+  gtkpeer_set_widget (env, obj, window_widget);
 
   gdk_threads_leave ();
 }
@@ -1205,7 +1205,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetTitle
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   c_title = (*env)->GetStringUTFChars (env, title, NULL);
 
@@ -1224,7 +1224,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetResizable
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
   gtk_window_set_resizable (GTK_WINDOW (ptr), resizable);
   g_object_set (G_OBJECT (ptr), "allow-shrink", resizable, NULL);
 
@@ -1239,7 +1239,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetModal
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   gtk_window_set_modal (GTK_WINDOW (ptr), modal);
 
@@ -1254,7 +1254,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetAlwaysOnTop
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   gtk_window_set_keep_above (GTK_WINDOW (ptr), alwaysOnTop);
 
@@ -1270,7 +1270,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowHasFocus
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   retval = gtk_window_has_toplevel_focus (GTK_WINDOW (ptr));
 
@@ -1298,7 +1298,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setVisibleNativeUnlocked
 {
   void *ptr;
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   if (visible)
     gtk_widget_show (GTK_WIDGET (ptr));
@@ -1311,48 +1311,48 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_connectSignals
   (JNIEnv *env, jobject obj)
 {
   void *ptr;
-  jobject *gref;
+  jobject gref;
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
-  gref = NSA_GET_GLOBAL_REF (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
+  gref = (jobject) gtkpeer_get_global_ref (env, obj);
 
   g_signal_connect (G_OBJECT (ptr), "delete-event",
-                   G_CALLBACK (window_delete_cb), *gref);
+                   G_CALLBACK (window_delete_cb), gref);
 
   g_signal_connect (G_OBJECT (ptr), "destroy-event",
-                   G_CALLBACK (window_destroy_cb), *gref);
+                   G_CALLBACK (window_destroy_cb), gref);
 
   g_signal_connect (G_OBJECT (ptr), "notify::has-toplevel-focus",
-                   G_CALLBACK (window_focus_state_change_cb), *gref);
+                   G_CALLBACK (window_focus_state_change_cb), gref);
 
   g_signal_connect (G_OBJECT (ptr), "focus-in-event",
-                    G_CALLBACK (window_focus_in_cb), *gref);
+                    G_CALLBACK (window_focus_in_cb), gref);
 
   g_signal_connect (G_OBJECT (ptr), "focus-out-event",
-                    G_CALLBACK (window_focus_out_cb), *gref);
+                    G_CALLBACK (window_focus_out_cb), gref);
 
   g_signal_connect (G_OBJECT (ptr), "window-state-event",
-                   G_CALLBACK (window_window_state_cb), *gref);
+                   G_CALLBACK (window_window_state_cb), gref);
 
   g_signal_connect (G_OBJECT (ptr), "property-notify-event",
-                   G_CALLBACK (window_property_changed_cb), *gref);
+                   G_CALLBACK (window_property_changed_cb), gref);
 
   g_signal_connect_after (G_OBJECT (ptr), "realize",
-                          G_CALLBACK (realize_cb), *gref);
+                          G_CALLBACK (realize_cb), gref);
 
   g_signal_connect (G_OBJECT (ptr), "key-press-event",
-                    G_CALLBACK (key_press_cb), *gref);
+                    G_CALLBACK (key_press_cb), gref);
 
   g_signal_connect (G_OBJECT (ptr), "key-release-event",
-                    G_CALLBACK (key_release_cb), *gref);
+                    G_CALLBACK (key_release_cb), gref);
 
   g_signal_connect_after (G_OBJECT (ptr), "window-state-event",
-                          G_CALLBACK (window_window_state_cb), *gref);
+                          G_CALLBACK (window_window_state_cb), gref);
 
   g_signal_connect (G_OBJECT (ptr), "configure-event",
-                    G_CALLBACK (window_configure_cb), *gref);
+                    G_CALLBACK (window_configure_cb), gref);
 
   cp_gtk_component_connect_expose_signals (ptr, gref);
   cp_gtk_component_connect_mouse_signals (ptr, gref);
@@ -1372,7 +1372,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_realize (JNIEnv *env, jobject obj)
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   gtk_widget_realize (GTK_WIDGET (ptr));
 
@@ -1387,7 +1387,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_toBack (JNIEnv *env,
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
     
   gdk_window_lower (GTK_WIDGET (ptr)->window);
   gdk_flush ();
@@ -1403,7 +1403,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_toFront (JNIEnv *env,
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
     
   gdk_window_raise (GTK_WIDGET (ptr)->window);
   gdk_flush ();
@@ -1419,7 +1419,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setSize
 
   gdk_threads_enter ();
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   /* Avoid GTK runtime assertion failures. */
   width = (width < 1) ? 1 : width;
@@ -1448,7 +1448,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocationUnlocked
 {
   void *ptr;
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   gtk_window_move (GTK_WINDOW(ptr), x, y);
 
@@ -1476,7 +1476,7 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBoundsUnlocked
   gint current_width;
   gint current_height;
 
-  ptr = NSA_GET_PTR (env, obj);
+  ptr = gtkpeer_get_widget (env, obj);
 
   /* Avoid GTK runtime assertion failures. */
   width = (width < 1) ? 1 : width;
index 2348a63fb046a26a2f94a08b62a875284f427cb2..72130376f155126196f8b2745c14a3a39631117f 100644 (file)
@@ -69,7 +69,7 @@ classpath_jawt_get_default_display (JNIEnv* env, jobject canvas)
 
   peer = (*env)->CallObjectMethod (env, canvas, method_id);
 
-  ptr = NSA_GET_PTR (env, peer);
+  ptr = gtkpeer_get_widget (env, peer);
 
   widget = GTK_WIDGET (ptr);
 
@@ -105,7 +105,7 @@ classpath_jawt_get_visualID (JNIEnv* env, jobject canvas)
 
   peer = (*env)->CallObjectMethod (env, canvas, method_id);
 
-  ptr = NSA_GET_PTR (env, peer);
+  ptr = gtkpeer_get_widget (env, peer);
 
   widget = GTK_WIDGET (ptr);
 
@@ -140,7 +140,7 @@ classpath_jawt_get_depth (JNIEnv* env, jobject canvas)
 
   peer = (*env)->CallObjectMethod (env, canvas, method_id);
 
-  ptr = NSA_GET_PTR (env, peer);
+  ptr = gtkpeer_get_widget (env, peer);
 
   widget = GTK_WIDGET (ptr);
 
@@ -175,7 +175,7 @@ classpath_jawt_get_drawable (JNIEnv* env, jobject canvas)
 
   peer = (*env)->CallObjectMethod (env, canvas, method_id);
 
-  ptr = NSA_GET_PTR (env, peer);
+  ptr = gtkpeer_get_widget (env, peer);
 
   widget = GTK_WIDGET (ptr);
 
diff --git a/libjava/classpath/native/jni/gtk-peer/gtkpeer.c b/libjava/classpath/native/jni/gtk-peer/gtkpeer.c
new file mode 100644 (file)
index 0000000..c99fc48
--- /dev/null
@@ -0,0 +1,584 @@
+/* gtkpeer.c -- Some GTK peer specific helper functions
+   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 "gtkpeer.h"
+#include "jni.h"
+
+/**
+ * The Pointer class.
+ */
+static jclass pointerClass;
+
+/**
+ * The Pointer constructor.
+ */
+static jmethodID pointerConstructorMID;
+
+/**
+ * The field ID of the data field in the Pointer class.
+ */
+static jfieldID pointerDataFID;
+
+/**
+ * The field ID of the widget field in the GtkGenericPeer class.
+ */
+static jfieldID widgetFID;
+
+/**
+ * The field ID of the globalRef field in the GtkGenericPeer class.
+ */
+static jfieldID globalRefFID;
+
+/**
+ * The field ID of the display field in the GdkGraphicsEnvironment class.
+ */
+static jfieldID displayFID;
+
+/**
+ * The field ID of the screen field in the GdkScreenGraphicsDevice class.
+ */
+static jfieldID screenFID;
+
+/**
+ * The field ID of the nativeFont field in GdkFontPeer.
+ */
+static jfieldID fontFID;
+
+/**
+ * The field ID of the nativeDecoder field in GdkPixbufDecoder.
+ */
+static jfieldID pixbufLoaderFID;
+
+/**
+ * Initializes the IDs of the Pointer* classes.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_pointer_IDs(JNIEnv* env)
+{
+#if SIZEOF_VOID_P == 8
+  pointerClass = (*env)->FindClass (env, "gnu/classpath/Pointer64");
+  if (pointerClass != NULL)
+    {
+      pointerClass = (*env)->NewGlobalRef (env, pointerClass);
+      pointerDataFID = (*env)->GetFieldID (env, pointerClass, "data", "J");
+      pointerConstructorMID = (*env)->GetMethodID (env, pointerClass, "<init>",
+                                                  "(J)V");
+    }
+#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");
+#else
+#error "Pointer size is not supported."
+#endif /* SIZEOF_VOID_P == 4 */
+#endif /* SIZEOF_VOID_P == 8 */
+}
+
+/**
+ * Initializes the field IDs for the widget reference.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_widget_IDs(JNIEnv *env)
+{
+  jclass cls;
+
+  /* Find the widget field ID in GtkGenericPeer. */
+  cls = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GtkGenericPeer");
+  widgetFID = (*env)->GetFieldID(env, cls, "widget",
+                                 "Lgnu/classpath/Pointer;");
+
+  /* Find the globalRef field in GtkGenericPeer. */
+  globalRefFID = (*env)->GetFieldID(env, cls, "globalRef",
+                                 "Lgnu/classpath/Pointer;");
+}
+
+/**
+ * Stores the GTK widget reference in the GtkGenericPeer object.
+ *
+ * @param env the JNI environment
+ * @param peer the actual peer object
+ * @param widget the widget reference to store
+ */
+void gtkpeer_set_widget(JNIEnv *env, jobject peer, void *widget)
+{
+  jobject obj;
+
+  /* Fetch the widget field object. */
+  obj = (*env)->GetObjectField(env, peer, widgetFID);
+  if (obj == NULL)
+    {
+      /* Create if necessary. */
+#if SIZEOF_VOID_P == 8
+      obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+                              (jlong) widget);
+#else
+      obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+                              (jint) widget);
+#endif
+      (*env)->SetObjectField(env, peer, widgetFID, obj);
+    }
+  else
+    {
+#if SIZEOF_VOID_P == 8
+      (*env)->SetLongField(env, obj, pointerDataFID, (jlong) widget);
+#else
+      (*env)->SetIntField(env, obj, pointerDataFID, (jint) widget);
+#endif
+    }
+}
+
+/**
+ * Retrieves the GTK widget reference from a GtkGenericPeer object.
+ *
+ * @param env the JNI environment
+ * @param peer the actual peer object
+ *
+ * @return the widget reference
+ */
+void* gtkpeer_get_widget(JNIEnv *env, jobject peer)
+{
+  jobject obj;
+  void *widget;
+
+  /* Fetch the widget field from the peer object. */
+  obj = (*env)->GetObjectField(env, peer, widgetFID);
+
+  /* Fetch actual widget pointer. */
+#if SIZEOF_VOID_P == 8
+  widget = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
+#else
+  widget = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
+#endif
+  return widget;
+}
+
+
+/**
+ * Stores the global JNI reference of a peer inside the peer.
+ *
+ * @param env the JNI environment
+ * @param peer the peer object
+ */
+void gtkpeer_set_global_ref(JNIEnv *env, jobject peer)
+{
+  jobject obj;
+  void* globalRef;
+
+  /* Create global reference. */
+  globalRef = (*env)->NewGlobalRef(env, peer);
+
+  /* Fetch the globalRef field object. */
+  obj = (*env)->GetObjectField(env, peer, globalRefFID);
+  if (obj == NULL)
+    {
+      /* Create if necessary. */
+#if SIZEOF_VOID_P == 8
+      obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+                              (jlong) globalRef);
+#else
+      obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+                              (jint) globalRef);
+#endif
+      (*env)->SetObjectField(env, peer, globalRefFID, obj);
+    }
+  else
+    {
+#if SIZEOF_VOID_P == 8
+      (*env)->SetLongField(env, obj, pointerDataFID, (jlong) globalRef);
+#else
+      (*env)->SetIntField(env, obj, pointerDataFID, (jint) globalRef);
+#endif
+    }
+}
+
+/**
+ * Retrieves the global reference from a peer.
+ *
+ * @param env the JNI environment
+ * @param peer the peer object
+ *
+ * @return the global reference
+ */
+void* gtkpeer_get_global_ref(JNIEnv *env, jobject peer)
+{
+  jobject obj;
+  void *globalRef;
+
+  /* Fetch the globalRef field from the peer object. */
+  obj = (*env)->GetObjectField(env, peer, globalRefFID);
+
+  /* Fetch actual globalRef pointer. */
+#if SIZEOF_VOID_P == 8
+  globalRef = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
+#else
+  globalRef = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
+#endif
+  return globalRef;
+}
+
+/**
+ * Deletes the global reference of a peer. This is necessary in order to
+ * allow the peer to be garbage collected.
+ *
+ * @param env the JNI environment
+ * @param peer the peer object.
+ */
+void gtkpeer_del_global_ref(JNIEnv* env, jobject peer)
+{
+  jobject obj;
+  void *globalRef;
+
+  /* Fetch the globalRef field from the peer object. */
+  obj = (*env)->GetObjectField(env, peer, globalRefFID);
+
+  /* Fetch actual globalRef pointer. */
+#if SIZEOF_VOID_P == 8
+  globalRef = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
+#else
+  globalRef = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
+#endif
+  (*env)->DeleteGlobalRef(env, globalRef);
+}
+
+/**
+ * Initializes the fieldIDs for the display and screen fields.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_display_IDs(JNIEnv* env)
+{
+  jclass cls;
+
+  /* Find the display field ID in GdkGraphicsEnvironment. */
+  cls = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GdkGraphicsEnvironment");
+  displayFID = (*env)->GetFieldID(env, cls, "display",
+                                  "Lgnu/classpath/Pointer;");
+}
+
+/**
+ * Sets the native display pointer in the GdkGraphicsEnvironment object.
+ *
+ * @param env the JNI environment
+ * @param graphicsenv the GdkGraphicsEnvironment object
+ * @param display the native display pointer
+ */
+void gtkpeer_set_display(JNIEnv* env, jobject graphicsenv, void* display)
+{
+  jobject obj;
+
+  /* Fetch the display field object. */
+  obj = (*env)->GetObjectField(env, graphicsenv, displayFID);
+  if (obj == NULL)
+    {
+      /* Create if necessary. */
+#if SIZEOF_VOID_P == 8
+      obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+                              (jlong) display);
+#else
+      obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+                              (jint) display);
+#endif
+      (*env)->SetObjectField(env, graphicsenv, displayFID, obj);
+    }
+  else
+    {
+#if SIZEOF_VOID_P == 8
+      (*env)->SetLongField(env, obj, pointerDataFID, (jlong) display);
+#else
+      (*env)->SetIntField(env, obj, pointerDataFID, (jint) display);
+#endif
+    }
+}
+
+/**
+ * Fetches the native display pointer from the GdkGraphicsEnvironment object.
+ *
+ * @param env the JNI environment
+ * @param graphicsenv the GdkGraphicsEnvironment object
+ *
+ * @return the native display pointer
+ */
+void* gtkpeer_get_display(JNIEnv* env, jobject graphicsenv)
+{
+  jobject obj;
+  void *display;
+
+  /* Fetch the display field from the peer object. */
+  obj = (*env)->GetObjectField(env, graphicsenv, displayFID);
+
+  /* Fetch actual display pointer. */
+#if SIZEOF_VOID_P == 8
+  display = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
+#else
+  display = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
+#endif
+  return display;
+}
+
+/**
+ * Initializes the fieldIDs for the screen field.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_screen_IDs(JNIEnv* env)
+{
+  jclass cls;
+
+  /* Find the display field ID in GdkScreenGraphicsDevice. */
+  cls = (*env)->FindClass(env,
+                          "gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice");
+  screenFID = (*env)->GetFieldID(env, cls, "screen",
+                                 "Lgnu/classpath/Pointer;");
+}
+
+/**
+ * Sets the native screen in the GdkScreenGraphicsDevice object.
+ *
+ * @param env the JNI environment
+ * @param screen_graphics_device the GdkScreenGraphicsDevice object
+ * @param ptr the native screen pointer
+ */
+void gtkpeer_set_screen(JNIEnv* env, jobject screen_graphics_device,
+                        void* ptr)
+{
+  jobject obj;
+
+  /* Fetch the screen field object. */
+  obj = (*env)->GetObjectField(env, screen_graphics_device, screenFID);
+  if (obj == NULL)
+    {
+      /* Create if necessary. */
+#if SIZEOF_VOID_P == 8
+      obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+                              (jlong) ptr);
+#else
+      obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+                              (jint) ptr);
+#endif
+      (*env)->SetObjectField(env, screen_graphics_device, screenFID, obj);
+    }
+  else
+    {
+#if SIZEOF_VOID_P == 8
+      (*env)->SetLongField(env, obj, pointerDataFID, (jlong) ptr);
+#else
+      (*env)->SetIntField(env, obj, pointerDataFID, (jint) ptr);
+#endif
+    }
+}
+
+/**
+ * Fetches the native screen pointer from the GdkScreenGraphicsDevice object.
+ *
+ * @param env the JNI environment
+ * @param screen_graphics_device the GdkScreenGraphicsDevice object
+ *
+ * @return the native screen pointer
+ */
+void* gtkpeer_get_screen(JNIEnv* env, jobject screen_graphics_device)
+{
+  jobject obj;
+  void *screen;
+
+  /* Fetch the display field from the peer object. */
+  obj = (*env)->GetObjectField(env, screen_graphics_device, screenFID);
+
+  /* Fetch actual display pointer. */
+#if SIZEOF_VOID_P == 8
+  screen = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
+#else
+  screen = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
+#endif
+  return screen;
+}
+
+/**
+ * Initializes the field IDs for fonts.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_font_IDs(JNIEnv* env)
+{
+  jclass cls;
+
+  /* Find the nativeFont field ID in GdkFontPeer. */
+  cls = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GdkFontPeer");
+  fontFID = (*env)->GetFieldID(env, cls, "nativeFont",
+                               "Lgnu/classpath/Pointer;");
+}
+
+/**
+ * Sets the native font in the nativeFont field in GdkFontPeer.
+ *
+ * @param env the JNI environment
+ * @param font_peer the font peer object
+ * @param font the actual native font reference
+ */
+void gtkpeer_set_font(JNIEnv* env, jobject font_peer, void* font)
+{
+  jobject obj;
+
+  /* Fetch the nativeFont field object. */
+  obj = (*env)->GetObjectField(env, font_peer, fontFID);
+  if (obj == NULL)
+    {
+      /* Create if necessary. */
+#if SIZEOF_VOID_P == 8
+      obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+                              (jlong) font);
+#else
+      obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+                              (jint) font);
+#endif
+      (*env)->SetObjectField(env, font_peer, fontFID, obj);
+    }
+  else
+    {
+#if SIZEOF_VOID_P == 8
+      (*env)->SetLongField(env, obj, pointerDataFID, (jlong) font);
+#else
+      (*env)->SetIntField(env, obj, pointerDataFID, (jint) font);
+#endif
+    }
+}
+
+/**
+ * Fetches the native font reference from the GdkFontPeer object.
+ *
+ * @param env the JNI environment
+ * @param font_peer the font peer object
+ *
+ * @return the native font structure
+ */
+void* gtkpeer_get_font(JNIEnv* env, jobject font_peer)
+{
+  jobject obj;
+  void *font;
+
+  /* Fetch the nativeFont field from the peer object. */
+  obj = (*env)->GetObjectField(env, font_peer, fontFID);
+
+  /* Fetch actual font pointer. */
+#if SIZEOF_VOID_P == 8
+  font = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
+#else
+  font = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
+#endif
+  return font;
+}
+
+/**
+ * Initializes the field IDs for pixbuf decoder.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_pixbuf_IDs(JNIEnv* env)
+{
+  jclass cls;
+
+  /* Find the nativeFont field ID in GdkFontPeer. */
+  cls = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GdkPixbufDecoder");
+  pixbufLoaderFID = (*env)->GetFieldID(env, cls, "nativeDecoder",
+                                       "Lgnu/classpath/Pointer;");
+}
+
+/**
+ * Sets the native font in the nativeFont field in GdkFontPeer.
+ *
+ * @param env the JNI environment
+ * @param pixbuf_dec the pixbuf decoder object
+ * @param pixbuf_loader the native pixbuf loader
+ */
+void gtkpeer_set_pixbuf_loader(JNIEnv* env, jobject pixbuf_dec,
+                               void* pixbuf_loader)
+{
+  jobject obj;
+
+  /* Fetch the nativeDecoder field object. */
+  obj = (*env)->GetObjectField(env, pixbuf_dec, pixbufLoaderFID);
+  if (obj == NULL)
+    {
+      /* Create if necessary. */
+#if SIZEOF_VOID_P == 8
+      obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+                              (jlong) pixbuf_loader);
+#else
+      obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
+                              (jint) pixbuf_loader);
+#endif
+      (*env)->SetObjectField(env, pixbuf_dec, pixbufLoaderFID, obj);
+    }
+  else
+    {
+#if SIZEOF_VOID_P == 8
+      (*env)->SetLongField(env, obj, pointerDataFID, (jlong) pixbuf_loader);
+#else
+      (*env)->SetIntField(env, obj, pointerDataFID, (jint) pixbuf_loader);
+#endif
+    }
+}
+
+/**
+ * Fetches the native pixbuf loader reference from the GdkPixbufDecoder object.
+ *
+ * @param env the JNI environment
+ * @param pixbuf_dec the pixbuf decoder object
+ *
+ * @return the native pixbuf loader
+ */
+void* gtkpeer_get_pixbuf_loader(JNIEnv* env, jobject pixbuf_dec)
+{
+  jobject obj;
+  void *loader;
+
+  /* Fetch the nativeFont field from the peer object. */
+  obj = (*env)->GetObjectField(env, pixbuf_dec, pixbufLoaderFID);
+
+  /* Fetch actual font pointer. */
+#if SIZEOF_VOID_P == 8
+  loader = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
+#else
+  loader = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
+#endif
+  return loader;
+}
index 065d20608f56917060960eb1f6c79072aa093e3b..8b677aff7fdcc7fe373befcc53d513aaa07ff6c8 100644 (file)
@@ -42,7 +42,6 @@ exception statement from your version. */
 #include <stdlib.h>
 #include <string.h>
 #include <config.h>
-#include "native_state.h"
 #include <gdk-pixbuf/gdk-pixbuf.h>
 
 #include <jni.h>
@@ -54,49 +53,173 @@ exception statement from your version. */
 #define __attribute__(x) /* nothing */
 #endif
 
-extern struct state_table *cp_gtk_native_state_table;
-extern struct state_table *cp_gtk_native_global_ref_table;
-extern struct state_table *cp_gtk_native_graphics2d_state_table;
+/**
+ * Initializes the IDs of the Pointer* classes.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_pointer_IDs(JNIEnv* env);
+
+/**
+ * Initializes the field IDs for the widget reference.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_widget_IDs(JNIEnv *env);
+
+/**
+ * Stores the GTK widget reference in the GtkComponentPeer object.
+ *
+ * @param env the JNI environment
+ * @param peer the actual peer object
+ * @param widget the widget reference to store
+ */
+void gtkpeer_set_widget(JNIEnv *env, jobject peer, void *widget);
+
+/**
+ * Retrieves the GTK widget reference from a GtkComponentPeer object.
+ *
+ * @param env the JNI environment
+ * @param peer the actual peer object
+ *
+ * @return the widget reference
+ */
+void* gtkpeer_get_widget(JNIEnv *env, jobject peer);
+
+/**
+ * Stores the global JNI reference of a peer inside the peer.
+ *
+ * @param env the JNI environment
+ * @param peer the peer object
+ */
+void gtkpeer_set_global_ref(JNIEnv *env, jobject peer);
+
+/**
+ * Retrieves the global reference from a peer.
+ *
+ * @param env the JNI environment
+ * @param peer the peer object
+ *
+ * @return the global reference
+ */
+void* gtkpeer_get_global_ref(JNIEnv *env, jobject peer);
+
+/**
+ * Deletes the global reference of a peer. This is necessary in order to
+ * allow the peer to be garbage collected.
+ *
+ * @param env the JNI environment
+ * @param peer the peer object.
+ */
+void gtkpeer_del_global_ref(JNIEnv* env, jobject peer);
+
+
+/**
+ * Initializes the fieldIDs for the display and screen fields.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_display_IDs(JNIEnv* env);
+
+/**
+ * Sets the native display pointer in the GdkGraphicsEnvironment object.
+ *
+ * @param env the JNI environment
+ * @param graphicsenv the GdkGraphicsEnvironment object
+ * @param display the native display pointer
+ */
+void gtkpeer_set_display(JNIEnv* env, jobject graphicsenv, void* display);
+
+/**
+ * Fetches the native display pointer from the GdkGraphicsEnvironment object.
+ *
+ * @param env the JNI environment
+ * @param graphicsenv the GdkGraphicsEnvironment object
+ *
+ * @return the native display pointer
+ */
+void* gtkpeer_get_display(JNIEnv* env, jobject graphicsenv);
+
+/**
+ * Initializes the fieldIDs for the screen field.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_screen_IDs(JNIEnv* env);
+
+/**
+ * Sets the native screen in the GdkScreenGraphicsDevice object.
+ *
+ * @param env the JNI environment
+ * @param screen_graphics_device the GdkScreenGraphicsDevice object
+ * @param ptr the native screen pointer
+ */
+void gtkpeer_set_screen(JNIEnv* env, jobject screen_graphics_device,
+                        void* ptr);
+
+/**
+ * Fetches the native screen pointer from the GdkScreenGraphicsDevice object.
+ *
+ * @param env the JNI environment
+ * @param screen_graphics_device the GdkScreenGraphicsDevice object
+ *
+ * @return the native screen pointer
+ */
+void* gtkpeer_get_screen(JNIEnv* env, jobject screen_graphics_device);
+
+/**
+ * Initializes the field IDs for fonts.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_font_IDs(JNIEnv* env);
+
+/**
+ * Sets the native font in the nativeFont field in GdkFontPeer.
+ *
+ * @param env the JNI environment
+ * @param font_peer the font peer object
+ * @param font the actual native font reference
+ */
+void gtkpeer_set_font(JNIEnv* env, jobject font_peer, void* font);
+
+/**
+ * Fetches the native font reference from the GdkFontPeer object.
+ *
+ * @param env the JNI environment
+ * @param font_peer the font peer object
+ *
+ * @return the native font structure
+ */
+void* gtkpeer_get_font(JNIEnv* env, jobject font_peer);
+
+/**
+ * Initializes the field IDs for pixbuf decoder.
+ *
+ * @param env the JNI environment
+ */
+void gtkpeer_init_pixbuf_IDs(JNIEnv* env);
+
+/**
+ * Sets the native font in the nativeFont field in GdkFontPeer.
+ *
+ * @param env the JNI environment
+ * @param pixbuf_dec the pixbuf decoder object
+ * @param pixbuf_loader the native pixbuf loader
+ */
+void gtkpeer_set_pixbuf_loader(JNIEnv* env, jobject pixbuf_dec,
+                               void* pixbuf_loader);
+
+/**
+ * Fetches the native pixbuf loader reference from the GdkPixbufDecoder object.
+ *
+ * @param env the JNI environment
+ * @param pixbuf_dec the pixbuf decoder object
+ *
+ * @return the native pixbuf loader
+ */
+void* gtkpeer_get_pixbuf_loader(JNIEnv* env, jobject pixbuf_dec);
 
-#define NSA_INIT(env, clazz) \
-   do {cp_gtk_native_state_table = cp_gtk_init_state_table (env, clazz); \
-   cp_gtk_native_global_ref_table = cp_gtk_init_state_table (env, clazz);} while (0)
-
-#define NSA_GET_PTR(env, obj) \
-  cp_gtk_get_state (env, obj, cp_gtk_native_state_table)
-
-#define NSA_SET_PTR(env, obj, ptr) \
-  cp_gtk_set_state (env, obj, cp_gtk_native_state_table, (void *)ptr)
-
-#define NSA_DEL_PTR(env, obj) \
-  cp_gtk_remove_state_slot (env, obj, cp_gtk_native_state_table)
-
-#define NSA_GET_GLOBAL_REF(env, obj) \
-  cp_gtk_get_state (env, obj, cp_gtk_native_global_ref_table)
-
-#define NSA_SET_GLOBAL_REF(env, obj) \
-  do {jobject *globRefPtr; \
-    globRefPtr = (jobject *) malloc (sizeof (jobject)); \
-    *globRefPtr = (*env)->NewGlobalRef (env, obj); \
-    cp_gtk_set_state (env, obj, cp_gtk_native_global_ref_table, (void *)globRefPtr);} while (0)
-
-#define NSA_DEL_GLOBAL_REF(env, obj) \
-  do {jobject *globRefPtr = cp_gtk_get_state (env, obj, cp_gtk_native_global_ref_table); \
-    cp_gtk_remove_state_slot (env, obj, cp_gtk_native_global_ref_table); \
-    (*env)->DeleteGlobalRef (env, *globRefPtr); \
-    free (globRefPtr);} while (0)
-
-#define NSA_G2D_INIT(env, clazz) \
-  cp_gtk_native_graphics2d_state_table = cp_gtk_init_state_table (env, clazz)
-
-#define NSA_GET_G2D_PTR(env, obj) \
-  cp_gtk_get_state (env, obj, cp_gtk_native_graphics2d_state_table)
-
-#define NSA_SET_G2D_PTR(env, obj, ptr) \
-  cp_gtk_set_state (env, obj, cp_gtk_native_graphics2d_state_table, (void *)ptr)
-
-#define NSA_DEL_G2D_PTR(env, obj) \
-  cp_gtk_remove_state_slot (env, obj, cp_gtk_native_graphics2d_state_table)
 
 #define SWAPU32(w)                                                     \
   (((w) << 24) | (((w) & 0xff00) << 8) | (((w) >> 8) & 0xff00) | ((w) >> 24))
@@ -188,7 +311,7 @@ void cp_gtk_grab_current_drawable(GtkWidget *widget, GdkDrawable **draw,
                                  GdkWindow **win);
 
 /* JNI initialization functions */
-void cp_gtk_button_init_jni (void);
+void cp_gtk_button_init_jni (JNIEnv*);
 void cp_gtk_checkbox_init_jni (void);
 void cp_gtk_choice_init_jni (void);
 void cp_gtk_component_init_jni (void);
@@ -200,11 +323,11 @@ void cp_gtk_textcomponent_init_jni (void);
 void cp_gtk_window_init_jni (void);
 
 /* Signal connection convience functions */
-void cp_gtk_component_connect_expose_signals (GObject *ptr, jobject *gref);
-void cp_gtk_component_connect_focus_signals (GObject *ptr, jobject *gref);
-void cp_gtk_component_connect_mouse_signals (GObject *ptr, jobject *gref);
-void cp_gtk_component_connect_signals (GObject *ptr, jobject *gref);
-void cp_gtk_textcomponent_connect_signals (GObject *ptr, jobject *gref);
+void cp_gtk_component_connect_expose_signals (GObject *ptr, jobject gref);
+void cp_gtk_component_connect_focus_signals (GObject *ptr, jobject gref);
+void cp_gtk_component_connect_mouse_signals (GObject *ptr, jobject gref);
+void cp_gtk_component_connect_signals (GObject *ptr, jobject gref);
+void cp_gtk_textcomponent_connect_signals (GObject *ptr, jobject gref);
 
 /* Debugging */
 void cp_gtk_print_current_thread (void);
index a3c39829e6b64f599bc0f248c049cd63177bb61c..42bb7cd4a3717a4402698f002ef472923f348185 100644 (file)
@@ -127,6 +127,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -165,8 +167,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -190,6 +190,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -262,8 +271,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 3c8780471e1e255f609a5d811c108c40bf0595a3..a7b436b5e497c0ab8dfb46aeb58be5e5ab703ae5 100644 (file)
@@ -141,6 +141,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -179,8 +181,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -204,6 +204,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -276,8 +285,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index b2f7efced6e5709a88c802c236225deb7cc4b2a0..3fdf64d3d2c741346a17aa47fde15d112f9ffcc9 100644 (file)
@@ -137,6 +137,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -175,8 +177,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -200,6 +200,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -272,8 +281,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index cdfbe739789a7d58f901ce7309cf8413a6a59a99..a59604c04af3f0e4cf11febcd52a9c2979f80938 100644 (file)
@@ -69,6 +69,7 @@ exception statement from your version. */
 #include "gnu_java_net_VMPlainSocketImpl.h"
 
 #define THROW_NO_NETWORK(env) JCL_ThrowException (env, "java/lang/InternalError", "this platform not configured for network support")
+#define THROW_NO_IPV6(env)    JCL_ThrowException (env, "java/lang/InternalError", "IPv6 support not available")
 
 /*
  * Class:     gnu_java_net_VMPlainSocketImpl
@@ -120,7 +121,7 @@ Java_gnu_java_net_VMPlainSocketImpl_bind6 (JNIEnv *env,
                                            jclass c __attribute__((unused)),
                                            jint fd, jbyteArray addr, jint port)
 {
-  /* FIXME! Add check if we have IPv6! */
+#ifdef HAVE_INET6
   struct sockaddr_in6 sockaddr;
   jbyte *elems;
   int ret;
@@ -141,6 +142,9 @@ Java_gnu_java_net_VMPlainSocketImpl_bind6 (JNIEnv *env,
 
   if (-1 == ret)
     JCL_ThrowException (env, IO_EXCEPTION, strerror (errno));
+#else
+  THROW_NO_IPV6(env);
+#endif
 }
 
 
@@ -442,8 +446,7 @@ Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface6 (JNIEnv *env,
 #endif /* HAVE_INET6 */
 #else
   (void) fd;
-  JCL_ThrowException (env, "java/lang/InternalError",
-                      "socket options not supported");
+  THROW_NO_IPV6(env);
 #endif /* HAVE_SETSOCKOPT */
 }
 
@@ -582,8 +585,7 @@ Java_gnu_java_net_VMPlainSocketImpl_join6 (JNIEnv *env,
 #else
   (void) fd;
   (void) addr;
-  JCL_ThrowException (env, "java/lang/InternalError",
-                      "IPv6 support not available");
+  THROW_NO_IPV6(env);
 #endif /* HAVE_INET6 */
 #else
   (void) fd;
@@ -657,8 +659,7 @@ Java_gnu_java_net_VMPlainSocketImpl_leave6 (JNIEnv *env,
 #else
   (void) fd;
   (void) addr;
-  JCL_ThrowException (env, "java/lang/InternalError",
-                      "IPv6 support not available");
+  THROW_NO_IPV6(env);
 #endif /* HAVE_INET6 */
 #else
   (void) fd;
@@ -763,8 +764,7 @@ Java_gnu_java_net_VMPlainSocketImpl_joinGroup6 (JNIEnv *env,
 #else
   (void) fd;
   (void) addr;
-  JCL_ThrowException (env, "java/lang/InternalError",
-                      "IPv6 support not available");
+  THROW_NO_IPV6(env);
 #endif /* HAVE_INET6 */
 #else
   (void) fd;
@@ -865,8 +865,7 @@ Java_gnu_java_net_VMPlainSocketImpl_leaveGroup6 (JNIEnv *env,
 #else
   (void) fd;
   (void) addr;
-  JCL_ThrowException (env, "java/lang/InternalError",
-                      "IPv6 support not available");
+  THROW_NO_IPV6(env);
 #endif /* HAVE_INET6 */
 #else
   (void) fd;
index fc921ecef1f389fec7e5f30762fd91de496bd414..43f2d9146dd4f454e11219f11b9429649318986e 100644 (file)
@@ -163,10 +163,12 @@ Java_java_net_VMInetAddress_getHostByAddr (JNIEnv * env,
       addr = cpnet_newIPV4Address(env);
       cpnet_bytesToIPV4Address (addr, octets);      
       break;
+#ifdef HAVE_INET6
     case 16:
       addr = cpnet_newIPV6Address(env);
       cpnet_bytesToIPV6Address (addr, octets);
       break;
+#endif
     default:
       JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Bad IP Address");
       return (jstring) NULL;
@@ -245,9 +247,9 @@ Java_java_net_VMInetAddress_getHostByName (JNIEnv * env,
   /* Now loop and copy in each address */
   for (i = 0; i < addresses_count; i++)
     {
-      if (cpnet_isIPV6Address (addresses[i]))
+      if (cpnet_isIPV4Address (addresses[i]))
        {
-         ret_octets = (*env)->NewByteArray (env, 16);
+         ret_octets = (*env)->NewByteArray (env, 4);
 
          if (!ret_octets)
            {
@@ -258,15 +260,16 @@ Java_java_net_VMInetAddress_getHostByName (JNIEnv * env,
          
          octets = (*env)->GetByteArrayElements (env, ret_octets, 0);
 
-         cpnet_IPV6AddressToBytes (addresses[i], octets);
+         cpnet_IPV4AddressToBytes (addresses[i], octets);
 
          (*env)->ReleaseByteArrayElements (env, ret_octets, octets, 0);
 
          (*env)->SetObjectArrayElement (env, addrs, i, ret_octets);
        }
-      else if (cpnet_isIPV4Address (addresses[i]))
+#ifdef HAVE_INET6
+      else if (cpnet_isIPV6Address (addresses[i]))
        {
-         ret_octets = (*env)->NewByteArray (env, 4);
+         ret_octets = (*env)->NewByteArray (env, 16);
 
          if (!ret_octets)
            {
@@ -277,12 +280,13 @@ Java_java_net_VMInetAddress_getHostByName (JNIEnv * env,
          
          octets = (*env)->GetByteArrayElements (env, ret_octets, 0);
 
-         cpnet_IPV4AddressToBytes (addresses[i], octets);
+         cpnet_IPV6AddressToBytes (addresses[i], octets);
 
          (*env)->ReleaseByteArrayElements (env, ret_octets, octets, 0);
 
          (*env)->SetObjectArrayElement (env, addrs, i, ret_octets);
        }
+#endif
       else
        {
          JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Internal Error");
@@ -336,9 +340,9 @@ Java_java_net_VMInetAddress_aton (JNIEnv *env,
   if (!address)
     return (jbyteArray) NULL;
 
-  if (cpnet_isIPV6Address (address))
+  if (cpnet_isIPV4Address (address))
     {
-      ret_octets = (jbyteArray) (*env)->NewByteArray (env, 16);
+      ret_octets = (jbyteArray) (*env)->NewByteArray (env, 4);
 
       if (!ret_octets)
        {
@@ -349,13 +353,14 @@ Java_java_net_VMInetAddress_aton (JNIEnv *env,
          
       octets = (*env)->GetByteArrayElements (env, ret_octets, 0);
 
-      cpnet_IPV6AddressToBytes (address, octets);
+      cpnet_IPV4AddressToBytes (address, octets);
 
       (*env)->ReleaseByteArrayElements (env, ret_octets, octets, 0);
     }
-  else if (cpnet_isIPV4Address (address))
+#ifdef HAVE_INET6
+  else if (cpnet_isIPV6Address (address))
     {
-      ret_octets = (jbyteArray) (*env)->NewByteArray (env, 4);
+      ret_octets = (jbyteArray) (*env)->NewByteArray (env, 16);
 
       if (!ret_octets)
        {
@@ -366,10 +371,11 @@ Java_java_net_VMInetAddress_aton (JNIEnv *env,
          
       octets = (*env)->GetByteArrayElements (env, ret_octets, 0);
 
-      cpnet_IPV4AddressToBytes (address, octets);
+      cpnet_IPV6AddressToBytes (address, octets);
 
       (*env)->ReleaseByteArrayElements (env, ret_octets, octets, 0);
     }
+#endif
   else
     {
       JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Internal Error");
index 1d2f7202a1758c1070014cf3e7cafca0cb878f39..1f093f4aa7232c528c49a338334517ecc441f35d 100644 (file)
@@ -395,10 +395,12 @@ _javanet_get_ip_netaddr (JNIEnv * env, jobject addr)
       netaddr = cpnet_newIPV4Address(env);
       cpnet_bytesToIPV4Address(netaddr, octets);
       break;
+#ifdef HAVE_INET6
     case 16:
       netaddr = cpnet_newIPV6Address(env);
       cpnet_bytesToIPV6Address(netaddr, octets);
       break;
+#endif
     default:
       /* This should not happen as we have checked before.
        * But that way we shut the compiler warnings */
index bf6243ed4be1dec2e74fac9b3eab6b5c42a9153c..390a278da606625014536853e4a537636960db5c 100644 (file)
@@ -135,6 +135,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -173,8 +175,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -198,6 +198,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -270,8 +279,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index c8df841a1d67a0ec362ea8bb9671c1ac9f478bc5..a5bbd71262c5b95f427d016a65dc1481ed20c8cb 100644 (file)
@@ -771,6 +771,10 @@ Java_gnu_java_nio_VMChannel_receive (JNIEnv *env,
   if (JCL_init_buffer (env, &buf, dst) == -1)
     JCL_ThrowException (env, IO_EXCEPTION, "loading buffer failed");
 
+#ifndef HAVE_MSG_WAITALL
+#define MSG_WAITALL       0
+#endif
+
   ret = cpnio_recvfrom (fd, &(buf.ptr[buf.position + buf.offset]),
                         buf.limit - buf.position, MSG_WAITALL,
                         sockaddr, &slen);
@@ -1582,14 +1586,84 @@ Java_gnu_java_nio_VMChannel_available (JNIEnv *env,
                                        jclass c __attribute__((unused)),
                                        jint fd)
 {
+#if defined (FIONREAD)
+
   jint avail = 0;
 
+#if defined(ENOTTY) && defined(HAVE_FSTAT)
+  struct stat statBuffer;
+  off_t n;
+#endif
+
 /*   NIODBG("fd: %d", fd); */
   if (ioctl (fd, FIONREAD, &avail) == -1)
-    JCL_ThrowException (env, IO_EXCEPTION, strerror (errno));
+    {
+#if defined(ENOTTY) && defined(HAVE_FSTAT)
+      if (errno == ENOTTY)
+        {
+          if ((fstat (fd, &statBuffer) == 0) && S_ISREG (statBuffer.st_mode))
+            {
+              n = lseek (fd, 0, SEEK_CUR);
+              if (n != -1)
+                {
+                  avail = statBuffer.st_size - n;
+                  return avail;
+                }
+            }
+        }
+#endif
+      JCL_ThrowException (env, IO_EXCEPTION, strerror (errno));
+    }
 /*   NIODBG("avail: %d", avail); */
 
   return avail;
+
+#elif defined(HAVE_FSTAT)
+
+  jint avail = 0;
+
+  struct stat statBuffer;
+  off_t n;
+
+  if ((fstat (fd, &statBuffer) == 0) && S_ISREG (statBuffer.st_mode))
+    {
+      n = lseek (fd, 0, SEEK_CUR);
+      if (n != -1) 
+        { 
+         avail = statBuffer.st_size - n;
+         return avail;
+        } 
+    }
+  JCL_ThrowException (env, IO_EXCEPTION, strerror (errno));
+
+#elif defined(HAVE_SELECT)
+
+  jint avail = 0;
+  fd_set filedescriptset;
+  struct timeval tv;
+
+  FD_ZERO (&filedescriptset);
+  FD_SET (fd,&filedescriptset);
+  memset (&tv, 0, sizeof(tv));
+
+  switch (select (fd+1, &filedescriptset, NULL, NULL, &tv))
+    {
+      case -1:
+        break;
+      case  0:
+        avail = 0;
+       return avail;
+      default:
+        avail = 1;
+       return avail;
+    }
+  JCL_ThrowException (env, IO_EXCEPTION, strerror (errno));
+
+#else
+
+  JCL_ThrowException (env, IO_EXCEPTION, "No native method for available");
+
+#endif
 }
 
 
@@ -1627,7 +1701,7 @@ Java_gnu_java_nio_VMChannel_open (JNIEnv *env,
   nmode = (nmode
            | ((nmode == O_RDWR || nmode == O_WRONLY) ? O_CREAT : 0)
            | ((mode & CPNIO_APPEND) ? O_APPEND :
-              ((nmode == O_RDWR || nmode == O_WRONLY) ? O_TRUNC : 0))
+              ((nmode == O_WRONLY) ? O_TRUNC : 0))
            | ((mode & CPNIO_EXCL) ? O_EXCL : 0)
            | ((mode & CPNIO_SYNC) ? O_SYNC : 0));
 
index 389de4e16863d541d20a02fbc75e3bd07544e15f..af44e11b43e1d9158bf3b638f6618130ca4f931b 100644 (file)
@@ -124,6 +124,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -162,8 +164,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -187,6 +187,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -259,8 +268,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 6028c58b8ae3def63551bdc95e9e65bff4b03a7c..80187067de801a879bb63efc439656742eadcecc 100644 (file)
@@ -127,6 +127,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -165,8 +167,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -190,6 +190,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -262,8 +271,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 711eba8edaabb32dea9ebaa7cea12379fed13b01..9eacf1c2d66876fa869edc08011147b203108dbc 100644 (file)
@@ -127,6 +127,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -165,8 +167,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -190,6 +190,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -262,8 +271,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index bc87d788213b19af61ac9a33ba3a59b99fa57978..558750eab7ac5511023fecac14f0ab9f8257021a 100644 (file)
@@ -116,6 +116,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -154,8 +156,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -179,6 +179,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -251,8 +260,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index ac3c0b5e79c930181b933f18264170c7fba82c85..743968bd36cc88262b184e4d8c67ce3ca8a21f65 100644 (file)
@@ -158,14 +158,14 @@ JNIEXPORT int cpio_availableBytes (int fd, jlong *bytes_available)
   off_t n;
   int result;
 
-  *bytes_available = 0
+  *bytes_available = 0;
   if ((fstat (fd, &statBuffer) == 0) && S_ISREG (statBuffer.st_mode))
     {
       n = lseek (fd, 0, SEEK_CUR);
       if (n != -1) 
        { 
          *bytes_available = statBuffer.st_size - n; 
-         result = 0;
+         result = CPNATIVE_OK;
        } 
       else 
        { 
@@ -189,7 +189,7 @@ JNIEXPORT int cpio_availableBytes (int fd, jlong *bytes_available)
   FD_SET (fd,&filedescriptset);
   memset (&tv, 0, sizeof(tv));
 
-  switch (select (fd+1, &filedescriptset, NULL, NULL, &timeval)) \
+  switch (select (fd+1, &filedescriptset, NULL, NULL, &tv))
     {
     case -1: 
       result=errno; 
index 22ce69e27975cd5d38e982811e67f6b07bbd8b8c..0444981131ba61c7cfbd698d69bc7c93bee73a6f 100644 (file)
@@ -693,6 +693,7 @@ jint cpnet_getHostByName (JNIEnv *env, const char *hostname, cpnet_address ***ad
          cpnet_bytesToIPV4Address(addr_arr[i], (jbyte *)hret.h_addr_list[i]);
        }
       break;
+#ifdef HAVE_INET6
     case AF_INET6:
       for (i = 0; i < counter; i++)
        {
@@ -700,6 +701,7 @@ jint cpnet_getHostByName (JNIEnv *env, const char *hostname, cpnet_address ***ad
          cpnet_bytesToIPV6Address(addr_arr[i], (jbyte *)hret.h_addr_list[i]);
        }
       break;
+#endif
     default:
       *addresses_count = 0;
       JCL_free(env, addr_arr);
@@ -732,12 +734,14 @@ jint cpnet_getHostByAddr (JNIEnv *env UNUSED, cpnet_address *addr, char *hostnam
       addr_len = sizeof(haddr.addr_v4->sin_addr);
       addr_type = AF_INET;
     }
+#ifdef HAVE_INET6
   else if (haddr.addr_v6->sin6_family == AF_INET6)
     {
       raw_addr = &haddr.addr_v6->sin6_addr;
       addr_type = AF_INET6;
       addr_len = sizeof(haddr.addr_v6->sin6_addr);
     }
+#endif
   else
     return EINVAL;
 
@@ -762,7 +766,8 @@ jint cpnet_getHostByAddr (JNIEnv *env UNUSED, cpnet_address *addr, char *hostnam
 jint cpnet_aton (JNIEnv *env, const char *hostname, cpnet_address **addr)
 {
   jbyte *bytes = NULL;
-#ifdef HAVE_INET_PTON
+
+#if defined(HAVE_INET_PTON) && defined(HAVE_INET6)
   jbyte inet6_addr[16];
 #endif
 
@@ -789,7 +794,7 @@ jint cpnet_aton (JNIEnv *env, const char *hostname, cpnet_address **addr)
       return 0;
     }
 
-#ifdef HAVE_INET_PTON
+#if defined(HAVE_INET_PTON) && defined(HAVE_INET6)
   if (inet_pton (AF_INET6, hostname, inet6_addr) > 0)
     {
       *addr = cpnet_newIPV6Address(env);
index 10963262731bb59517853a5c013dc734051f7e14..72850b4c8c6fdc6ac3c57da44e2b9d54f7a63d45 100644 (file)
@@ -117,6 +117,7 @@ static inline void cpnet_setIPV4Any(cpnet_address *addr)
   netaddr->sin_addr.s_addr = INADDR_ANY;
 }
 
+#ifdef HAVE_INET6
 static inline cpnet_address *cpnet_newIPV6Address(JNIEnv * env)
 {
   cpnet_address * addr = (cpnet_address *)JCL_malloc(env, sizeof(cpnet_address) + sizeof(struct sockaddr_in6));
@@ -128,6 +129,7 @@ static inline cpnet_address *cpnet_newIPV6Address(JNIEnv * env)
 
   return addr;
 }
+#endif
 
 static inline void cpnet_freeAddress(JNIEnv * env, cpnet_address *addr)
 {
@@ -156,12 +158,14 @@ static inline jboolean cpnet_isAddressEqual(cpnet_address *addr1, cpnet_address
   return memcmp(addr1->data, addr2->data, addr1->len) == 0;
 }
 
+#ifdef HAVE_INET6
 static inline jboolean cpnet_isIPV6Address(cpnet_address *addr)
 {
   struct sockaddr_in *ipaddr = (struct sockaddr_in *)&(addr->data[0]);
 
   return ipaddr->sin_family == AF_INET6;
 }
+#endif
 
 static inline jboolean cpnet_isIPV4Address(cpnet_address *addr)
 {
@@ -194,6 +198,7 @@ static inline void cpnet_bytesToIPV4Address(cpnet_address *netaddr, jbyte *octet
   ipaddr->sin_addr.s_addr = htonl(sysaddr);
 }
 
+#ifdef HAVE_INET6
 static inline void cpnet_IPV6AddressToBytes(cpnet_address *netaddr, jbyte *octets)
 {
   struct sockaddr_in6 *ipaddr = (struct sockaddr_in6 *)&(netaddr->data[0]);
@@ -207,5 +212,6 @@ static inline void cpnet_bytesToIPV6Address(cpnet_address *netaddr, jbyte *octet
 
   memcpy(&ipaddr->sin6_addr, octets, 16);
 }
+#endif
 
 #endif
index 8d268163b862d225821a03074c338739dfa804fd..ad19aa739ba94dcfc9a6845d0e0fe7c4bdbd750f 100644 (file)
@@ -142,6 +142,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -180,8 +182,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -205,6 +205,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -277,8 +286,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index fd56b287856aa74dab5b4373269009eb27f84633..f2f61822d3f9b9fc38d59609f5341fbb7d995fde 100644 (file)
@@ -127,11 +127,11 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_dispose
  * Returns JNI_TRUE if a character is displayable.
  */
 JNIEXPORT jboolean JNICALL Java_gnu_java_awt_peer_qt_QtFontMetrics_canDisplay
-(JNIEnv *env, jobject obj, jchar c)
+(JNIEnv *env, jobject obj, jint c)
 {
   QFontMetrics *fm = getFontMetrics( env, obj );
   assert( fm );
-  bool result = fm->inFont( QChar( (unsigned short)c ) );
+  bool result = fm->inFont( QChar( (unsigned int) c ) );
   return (result ? JNI_TRUE : JNI_FALSE);
 }
 
index 079f7f4df050ddb5191c672b4b61daeaff6c18a7..016f97f7eca3b49cc7d95098c9d7c0b49f6154e4 100644 (file)
@@ -126,6 +126,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -164,8 +166,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -189,6 +189,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -261,8 +270,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 6d014cefc91982b9dabc18c0fce3724361a6a5b3..6aabaad23ef572e4a169be9d46f7dc55e1766c83 100644 (file)
@@ -39,7 +39,6 @@ exception statement from your version. */
 #include "gnu_xml_libxmlj_dom_GnomeElement.h"
 #include "gnu_xml_libxmlj_dom_GnomeXPathExpression.h"
 #include "gnu_xml_libxmlj_dom_GnomeXPathNodeList.h"
-#include "gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h"
 #include "gnu_xml_libxmlj_dom_GnomeXPathResult.h"
 #include "xmlj_node.h"
 #include "xmlj_util.h"
index c57aa773c6de1314f7368023ffb93fd9f257db8e..62bcde56b47f49a1a7d33129dde4cb57922c7587 100644 (file)
@@ -124,6 +124,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -162,8 +164,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -187,6 +187,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -259,8 +268,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_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/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in b/libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader.in
new file mode 100644 (file)
index 0000000..7fd2721
--- /dev/null
@@ -0,0 +1,3 @@
+@GSTREAMER_FILE_READER@
+gnu.javax.sound.sampled.WAV.WAVReader
+gnu.javax.sound.sampled.AU.AUReader
diff --git a/libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in b/libjava/classpath/resource/META-INF/services/javax.sound.sampled.spi.MixerProvider.in
new file mode 100644 (file)
index 0000000..03d1b5c
--- /dev/null
@@ -0,0 +1 @@
+@GSTREAMER_MIXER_PROVIDER@
index af9b55a8dd6b1cfa17a62158d8a769c3860e9d6c..bfceca81e6dbcac7da4adac37a249b4efc22b93c 100644 (file)
@@ -109,6 +109,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -147,8 +149,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -172,6 +172,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -244,8 +253,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
index 9e4377096c151d8ec5c1a1c232adf4d3035083ce..a6f6e01a457dc3c5d6fbb9286520db9dc58d05ef 100644 (file)
@@ -99,6 +99,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -137,8 +139,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -162,6 +162,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -234,8 +243,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_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/sun/awt/CausedFocusEvent.java b/libjava/classpath/sun/awt/CausedFocusEvent.java
new file mode 100644 (file)
index 0000000..6e0feb9
--- /dev/null
@@ -0,0 +1,89 @@
+/* CausedFocusEvent.java -- A special focus event for peers.
+   Copyright (C) 2007  Free Software Foundation
+
+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 sun.awt;
+
+import java.awt.Component;
+import java.awt.event.FocusEvent;
+
+/**
+ * Special FocusEvent for peers. This has additional knowledge about the
+ * cause of the focus change.
+ */
+public class CausedFocusEvent
+extends FocusEvent
+{
+
+  public enum Cause
+  {
+    UNKNOWN,
+    MOUSE_EVENT,
+    TRAVERSAL,
+    TRAVERSAL_UP,
+    TRAVERSAL_DOWN,
+    TRAVERSAL_FORWARD,
+    TRAVERSAL_BACKWARD,
+    MANUAL_REQUEST,
+    AUTOMATIC_TRAVERSE,
+    ROLLBACK,
+    NATIVE_SYSTEM,
+    ACTIVATION,
+    CLEAR_GLOBAL_FOCUS_OWNER,
+    RETARGETED
+  }
+
+  /**
+   * The cause of the focus change.
+   */
+  private Cause cause;
+
+  public CausedFocusEvent(Component c, int id, boolean temporary,
+                          Component opposite, Cause cause)
+  {
+    super(c, id, temporary, opposite);
+    if (cause == null)
+      {
+        cause = Cause.UNKNOWN;
+      }
+    this.cause = cause;
+  }
+
+  public Cause getCause()
+  {
+    return cause;
+  }
+}
index f9f9dbd6e3da32ee68819c7551fafbb23ee9190f..2ab650201e81672d10551d80f5381946e02079d0 100755 (executable)
@@ -110,6 +110,7 @@ TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*/*.java \
        $(srcdir)/com/sun/javadoc/*.java \
        $(srcdir)/com/sun/tools/doclets/*.java \
        $(srcdir)/com/sun/tools/javac/*.java \
+       $(srcdir)/com/sun/tools/javah/*.java \
        $(srcdir)/sun/rmi/rmic/*.java \
        $(srcdir)/external/asm/org/objectweb/asm/*.java \
        $(srcdir)/external/asm/org/objectweb/asm/attrs/*.java \
@@ -168,6 +169,7 @@ $(TOOLS_ZIP): $(TOOLS_JAVA_FILES)
             $(srcdir)/com/sun/javadoc \
             $(srcdir)/com/sun/tools/doclets \
             $(srcdir)/com/sun/tools/javac \
+            $(srcdir)/com/sun/tools/javah \
             $(srcdir)/sun/rmi/rmic \
             -name '*.java' -print > classes.lst
        if [ -f $(top_builddir)/../vm-tools-packages ]; then \
index c9e748616237e8a75f0dff48d9ee5652de14319d..2d730aadbc3f1b243bfd5e9c5d01e071e0b5797e 100644 (file)
@@ -201,6 +201,8 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
 CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
 CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
 CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
 CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
 CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
 CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
@@ -239,8 +241,6 @@ EXEEXT = @EXEEXT@
 FASTJAR = @FASTJAR@
 FGREP = @FGREP@
 FIND = @FIND@
-FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
-FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
 FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
 FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
 FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
@@ -264,6 +264,15 @@ GJDOC = @GJDOC@
 GLIB_CFLAGS = @GLIB_CFLAGS@
 GLIB_LIBS = @GLIB_LIBS@
 GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
 GTK_CFLAGS = @GTK_CFLAGS@
 GTK_LIBS = @GTK_LIBS@
 INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
@@ -336,8 +345,6 @@ USER_CLASSLIB = @USER_CLASSLIB@
 USER_JAVAH = @USER_JAVAH@
 USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
 USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
-USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
-USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
 USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
 USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
 USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
@@ -498,6 +505,7 @@ TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*/*.java \
        $(srcdir)/com/sun/javadoc/*.java \
        $(srcdir)/com/sun/tools/doclets/*.java \
        $(srcdir)/com/sun/tools/javac/*.java \
+       $(srcdir)/com/sun/tools/javah/*.java \
        $(srcdir)/sun/rmi/rmic/*.java \
        $(srcdir)/external/asm/org/objectweb/asm/*.java \
        $(srcdir)/external/asm/org/objectweb/asm/attrs/*.java \
@@ -1109,6 +1117,7 @@ $(TOOLS_ZIP): $(TOOLS_JAVA_FILES)
             $(srcdir)/com/sun/javadoc \
             $(srcdir)/com/sun/tools/doclets \
             $(srcdir)/com/sun/tools/javac \
+            $(srcdir)/com/sun/tools/javah \
             $(srcdir)/sun/rmi/rmic \
             -name '*.java' -print > classes.lst
        if [ -f $(top_builddir)/../vm-tools-packages ]; then \
diff --git a/libjava/classpath/tools/classes/com/sun/tools/javah/Main.class b/libjava/classpath/tools/classes/com/sun/tools/javah/Main.class
new file mode 100644 (file)
index 0000000..b1f830d
Binary files /dev/null and b/libjava/classpath/tools/classes/com/sun/tools/javah/Main.class differ
diff --git a/libjava/classpath/tools/com/sun/tools/javah/Main.java b/libjava/classpath/tools/com/sun/tools/javah/Main.java
new file mode 100644 (file)
index 0000000..7eb0f37
--- /dev/null
@@ -0,0 +1,58 @@
+/* Main.java -- implement com.sun.tools.javah.Main
+   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 com.sun.tools.javah;
+
+import java.io.IOException;
+
+public class Main
+{
+
+  public static void main(String[] args)
+  {
+    try
+      {
+       gnu.classpath.tools.javah.Main.main(args);
+      }
+    catch (IOException e)
+      {
+       throw new IllegalArgumentException("An I/O error occurred " +
+                                          "in executing javah", e);
+      }
+  }
+}
index 1057aba9733e65f5316725bc3715e02bf6d3968f..721078bb79c65cfe56f9de3f9792e7c9fdfcde52 100644 (file)
@@ -40,6 +40,7 @@
 ##
 
 prefix=@prefix@
+datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
index df2da926c0ccaa33724ca3d08ee9d02971170561..da7581167e0ec2fb82562f4a8a5c957fe8c4707f 100644 (file)
@@ -41,6 +41,7 @@
 ##
 
 prefix=@prefix@
+datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
index 071b8a6477d4d0306f0aa90ae38dd0fd87df1f29..e3abc6ce6743fb6cffeef77e1ca68983738f9926 100644 (file)
@@ -41,6 +41,7 @@
 ##
 
 prefix=@prefix@
+datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
index 3140e21e4b66ddaec8a91705a07423e345f2863a..797721b955091a3a259d1cc0a464fa499175f93a 100644 (file)
@@ -41,6 +41,7 @@
 ##
 
 prefix=@prefix@
+datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
index d35f08df7df2eb3516e76be711bbc2673393888e..59516efe8037ec513c9cb5a3d1107a11b910f871 100644 (file)
@@ -41,6 +41,7 @@
 ##
 
 prefix=@prefix@
+datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
index f886074b7b88e38995eae5a1ff60bfff5909b9a0..17d7cd7e006d3b89e31f2cab96730b1c2762f798 100644 (file)
@@ -41,6 +41,7 @@
 ##
 
 prefix=@prefix@
+datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
index ab1a19a8602b37a232a0d2485bf69143b37fd1a3..40d01eee2a10017622881fde586d0a52f394d483 100644 (file)
@@ -41,6 +41,7 @@
 ##
 
 prefix=@prefix@
+datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
index eabce0e498cd22a810024f2e3865f8895893edcb..9b7314429c1f4377d524b31c96805145b731d4bd 100644 (file)
@@ -41,6 +41,7 @@
 ##
 
 prefix=@prefix@
+datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
index aa4e1432ad1ce6e89ec7c3db14649bf5632d41f6..7eefb769d65f685a992aa102bc8b4a6d9f9d7c7b 100644 (file)
@@ -41,6 +41,7 @@
 ##
 
 prefix=@prefix@
+datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
index 5e2798fd3adf935f54376caa77a52441154ae297..d08120af92272d0e2da3ba755813cdf0c0a2f510 100644 (file)
@@ -41,6 +41,7 @@
 ##
 
 prefix=@prefix@
+datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
index dbc80f268ad82149b31e4d9b930d1cb4687744c1..85aeea62d5198a7cb3f9e931270201fd2c407460 100644 (file)
@@ -41,6 +41,7 @@
 ##
 
 prefix=@prefix@
+datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
index c8e7484f6ffdec76087125c258e366cdf0cb77a1..4fbcf371313d7f41f52c35ca9056b3016aedf4c0 100644 (file)
@@ -41,6 +41,7 @@
 ##
 
 prefix=@prefix@
+datarootdir=@datarootdir@
 tools_dir=@datadir@/@PACKAGE@
 tools_cp=${tools_dir}/tools.zip
 
index eec7b63d67b32722a0f1c735c4dc69009e37bcd1..767a902ff1c486d410d56c2833fcc9a5555c6dae 100644 (file)
@@ -73,12 +73,15 @@ public class VMFrame
    * @param thr a Thread, the thread this frame is in
    * @param frame_id a long, the jframeID of this frame
    * @param frame_loc a Location, the location of this frame
+   * @param frame_obj the "this" object of this frame
    */
-  public VMFrame(Thread thr, long frame_id, Location frame_loc)
+  public VMFrame(Thread thr, long frame_id, Location frame_loc,
+                 Object frame_obj)
   {
     thread = thr;
     id = frame_id;
     loc = frame_loc;
+    obj = frame_obj;
   }
   
   /**
index d345bc1b515cec75dd09bac7a380f5b2209ede75..6a2b04ecf9791ea87fd7081dcaaab1331cabf865 100644 (file)
@@ -1,5 +1,5 @@
 /* VMMethod.java -- a method in a virtual machine
-   Copyright (C) 2006 Free Software Foundation, Inc.
+   Copyright (C) 2006, 2007 Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -175,4 +175,15 @@ public class VMMethod
   {
     return VMVirtualMachine.getClassMethod(klass, bb.getLong());
   }
+
+  public boolean equals(Object obj)
+  {
+    if (obj instanceof VMMethod)
+      {
+       VMMethod m = (VMMethod) obj;
+       return (getId() == m.getId());
+      }
+
+    return false;
+  }
 }
index 2e7f439a443aa18bf45f4a4f91ab55a07f045d6b..15348130f10c4dd9ee7765562b944f60bfc60ee0 100644 (file)
@@ -108,4 +108,26 @@ final class VMFloat
    */
   static native float intBitsToFloat(int bits);
 
+  /**
+   * @param f the <code>float</code> to convert
+   * @return the <code>String</code> representing the <code>float</code>
+   */
+  static String toString(float f)
+  {
+    return VMDouble.toString(f, true);
+  }
+
+  /**
+   * @param str the <code>String</code> to convert
+   * @return the <code>float</code> value of <code>s</code>
+   * @throws NumberFormatException if <code>str</code> cannot be parsed as a
+   *         <code>float</code>
+   * @throws NullPointerException if <code>str</code> is null
+   */
+  static float parseFloat(String str)
+  {
+    // XXX Rounding parseDouble() causes some errors greater than 1 ulp from
+    // the infinitely precise decimal.
+    return (float) Double.parseDouble(str);
+  }
 } // class VMFloat
index fa199f83e0a24463a36ec026314ad0260ad1c16a..5dee8cfefd79aa7140f90587f59ed665cebb0d2f 100644 (file)
@@ -305,7 +305,7 @@ public class Unsafe
    *
    * @param thread the thread to unblock.
    */
-  public native void unpark(Thread thread);
+  public native void unpark(Object thread);
 
   /**
    * Blocks the thread until a matching 
index fb01c06c2e4cf94f0c10c5441c7f688e53351c67..509b98e3301ed172b710877bea1b1e9ced89608f 100644 (file)
@@ -65,6 +65,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class gnu::awt::xlib::XCanvasPeer : public ::java::lang::Object
@@ -119,6 +126,7 @@ public:
   virtual void hide();
   virtual jboolean isFocusable();
   virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong);
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *);
   virtual jboolean isObscured();
   virtual jboolean canDetermineObscurity();
   virtual void coalescePaintEvent(::java::awt::event::PaintEvent *);
index 097ad0e47d26e92fcb69a61c6301309d93402878..6d1fb67521b46041c69c5d50f3cc712ca631e985 100644 (file)
@@ -44,6 +44,8 @@ import gnu.gcj.xlib.XImage;
 
 import gnu.awt.j2d.*;
 
+import sun.awt.CausedFocusEvent;
+
 public class XCanvasPeer implements CanvasPeer
 {
   static final Dimension MIN_SIZE = new Dimension(1, 1);
@@ -469,6 +471,13 @@ public class XCanvasPeer implements CanvasPeer
     return false;
   }
 
+  public boolean requestFocus (Component source, boolean b1, 
+                               boolean b2, long x,
+                              CausedFocusEvent.Cause cause)
+  {
+    return false;
+  }
+
   public boolean isObscured ()
   {
     return false;
index 7a7f6b7df1afa3634ae4c1fcf70c68c557d675c6..b497d06cbb29c15e2d7f7a5e6c47d6d0af292ea4 100644 (file)
@@ -51,7 +51,7 @@ class gnu::awt::xlib::XFontPeer : public ::gnu::java::awt::peer::ClasspathFontPe
 public:
   XFontPeer(::java::lang::String *, jint);
   XFontPeer(::java::lang::String *, jint, jfloat);
-  virtual jboolean canDisplay(::java::awt::Font *, jchar);
+  virtual jboolean canDisplay(::java::awt::Font *, jint);
   virtual jint canDisplayUpTo(::java::awt::Font *, ::java::text::CharacterIterator *, jint, 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 > *);
index 523cc22795f197af440ec862c90da74190f11d01..cd05a11fbc754fded7bb55b81a3656816fa62894 100644 (file)
@@ -38,7 +38,7 @@ public class XFontPeer extends ClasspathFontPeer
    * useful if you are sharing peers between Font objects. Otherwise it may
    * be ignored.
    */
-  public boolean canDisplay (Font font, char c)
+  public boolean canDisplay (Font font, int c)
   {
     throw new UnsupportedOperationException ();
   }
index 621d2919d3442d9ccabf910d2b09b78d1e590dcb..1ca28c61a9d50991f52366f6569a850e278fe1c5 100644 (file)
@@ -31,6 +31,7 @@ extern "Java"
   {
     namespace awt
     {
+        class Dialog;
         class Frame;
         class Image;
         class Insets;
@@ -69,8 +70,14 @@ public:
   virtual void endLayout();
   virtual jboolean isPaintPending();
   virtual void setBoundsPrivate(jint, jint, jint, jint);
+  virtual ::java::awt::Rectangle * getBoundsPrivate();
   virtual void updateAlwaysOnTop();
   virtual jboolean requestWindowFocus();
+  virtual void setAlwaysOnTop(jboolean);
+  virtual void updateFocusableWindowState();
+  virtual void setModalBlocked(::java::awt::Dialog *, jboolean);
+  virtual void updateMinimumSize();
+  virtual void updateIconImages();
 private:
   jboolean __attribute__((aligned(__alignof__( ::gnu::awt::xlib::XCanvasPeer)))) processingConfigureNotify;
 public: // actually package-private
index e7fdc83c7ec798b61ef770d0b635a9fa64393628..2f9b503afd656ce65d6a00dc095c302741da6563 100644 (file)
@@ -196,6 +196,14 @@ public class XFramePeer extends XCanvasPeer implements FramePeer
    */
   public void setBoundsPrivate (int x, int y, int width, int height)
   {
+    // TODO: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented.");
+  }
+
+  public Rectangle getBoundsPrivate()
+  {
+    // TODO: Implement this.
+    throw new UnsupportedOperationException("Not yet implemented.");
   }
 
   /**
@@ -212,4 +220,29 @@ public class XFramePeer extends XCanvasPeer implements FramePeer
   {
     return false;
   }
+
+  public void setAlwaysOnTop(boolean alwaysOnTop)
+  {
+    throw new UnsupportedOperationException("not implemented yet");    
+  }
+
+  public void updateFocusableWindowState()
+  {
+    throw new UnsupportedOperationException("not implemented yet");    
+  }
+
+  public void setModalBlocked(Dialog blocker, boolean blocked)
+  {
+    throw new UnsupportedOperationException("not implemented yet");    
+  }
+
+  public void updateMinimumSize()
+  {
+    throw new UnsupportedOperationException("not implemented yet");    
+  }
+
+  public void updateIconImages()
+  {
+    throw new UnsupportedOperationException("not implemented yet");    
+  }
 }
index 7bfc61e13491e5ca4419217a1293c4a914823f57..e4e35dbd226aeffade74a72956acf52cb596af7e 100644 (file)
@@ -53,6 +53,8 @@ extern "Java"
         class Choice;
         class Component;
         class Dialog;
+        class Dialog$ModalExclusionType;
+        class Dialog$ModalityType;
         class Dimension;
         class EventQueue;
         class FileDialog;
@@ -196,6 +198,9 @@ public:
   virtual jboolean nativeQueueEmpty();
   virtual void wakeNativeQueue();
   virtual void iterateNativeQueue(::java::awt::EventQueue *, jboolean);
+  virtual void setAlwaysOnTop(jboolean);
+  virtual jboolean isModalExclusionTypeSupported(::java::awt::Dialog$ModalExclusionType *);
+  virtual jboolean isModalityTypeSupported(::java::awt::Dialog$ModalityType *);
 public: // actually package-private
   static ::gnu::awt::xlib::XToolkit * INSTANCE;
   ::gnu::gcj::xlib::Display * __attribute__((aligned(__alignof__( ::gnu::java::awt::ClasspathToolkit)))) display;
index 98ef7c162b36f56478f416e434cb4a36a066490d..681aad6d2fc26d6fa65c471b7c540c5cf152e1a6 100644 (file)
@@ -480,5 +480,23 @@ public class XToolkit extends ClasspathToolkit
         // InterruptedException intentionally ignored
       }
     }
-  }; 
+  }
+
+  public void setAlwaysOnTop(boolean b)
+  {
+    // TODO: Implement properly.
+  }
+
+  public boolean isModalExclusionTypeSupported
+    (Dialog.ModalExclusionType modalExclusionType)
+  {
+    // TODO: Implement properly.
+    return false;
+  }
+
+  public boolean isModalityTypeSupported(Dialog.ModalityType modalityType)
+  {
+    // TODO: Implement properly.
+    return false;
+  }
 }
index a84c93e1c75a93dba478d24cff809039218ed4ca..add915545108041efc3988e2622d65e57b943871 100644 (file)
@@ -55,6 +55,7 @@ public:
   virtual ::java::lang::String * getSubFamilyName(::java::util::Locale *) = 0;
   virtual ::java::lang::String * getPostScriptName() = 0;
   virtual jint getNumGlyphs() = 0;
+  virtual jint getGlyphIndex(jint) = 0;
   virtual jint getMissingGlyphCode() = 0;
   virtual ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, ::java::text::CharacterIterator *) = 0;
   virtual void getAdvance(jint, jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jboolean, ::java::awt::geom::Point2D *) = 0;
index 7d07889c7d690164bf12334bcf47f92446e7119a..3fec583d7d5362f3150c994d6582bc84f910d3a1 100644 (file)
@@ -88,6 +88,7 @@ private:
 public:
   jint getGlyph(jint);
   ::java::awt::font::GlyphVector * createGlyphVector(::java::awt::Font *, ::java::awt::font::FontRenderContext *, ::java::text::CharacterIterator *);
+  jint getGlyphIndex(jint);
   void getAdvance(jint, jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jboolean, ::java::awt::geom::Point2D *);
   ::java::awt::geom::GeneralPath * getGlyphOutline(jint, jfloat, ::java::awt::geom::AffineTransform *, jboolean, jboolean, jint);
   ::gnu::java::awt::font::opentype::truetype::Zone * getRawGlyphOutline(jint, ::java::awt::geom::AffineTransform *);
index 48d474bf2a604763af771ee2dd08a1811db948d1..035671677349c65f4ed6758025cb9c33669fd03b 100644 (file)
@@ -21,6 +21,7 @@ extern "Java"
         {
             class AbstractGraphics2D;
             class ScanlineConverter;
+            class ScanlineCoverage;
             class ShapeCache;
         }
       }
@@ -176,10 +177,8 @@ public: // actually protected
   virtual void rawCopyArea(jint, jint, jint, jint, jint, jint);
 private:
   void copyAreaImpl(jint, jint, jint, jint, jint, jint);
-public: // actually protected
-  virtual void fillScanline(jint, jint, jint);
-private:
-  void fillScanlineAA(JArray< jint > *, jint, jint, jint, ::java::awt::PaintContext *, jint);
+public:
+  virtual void renderScanline(jint, ::gnu::java::awt::java2d::ScanlineCoverage *);
 public: // actually protected
   virtual void init();
   virtual ::java::awt::image::WritableRaster * getDestinationRaster();
@@ -191,7 +190,6 @@ private:
   ::gnu::java::awt::java2d::ShapeCache * getShapeCache();
   ::gnu::java::awt::java2d::ScanlineConverter * getScanlineConverter();
   static ::java::awt::Font * FONT;
-  static const jint AA_SAMPLING = 8;
   static ::java::lang::ThreadLocal * shapeCache;
   static ::java::lang::ThreadLocal * scanlineConverters;
 public: // actually protected
@@ -206,8 +204,6 @@ private:
   ::java::awt::Shape * clip__;
   ::java::awt::RenderingHints * renderingHints;
   ::java::awt::image::WritableRaster * destinationRaster;
-  JArray< jint > * alpha;
-  JArray< ::java::util::ArrayList * > * edgeTable;
   jboolean isOptimized;
   static ::java::awt::BasicStroke * STANDARD_STROKE;
   static ::java::util::HashMap * STANDARD_HINTS;
diff --git a/libjava/gnu/java/awt/java2d/Pixelizer.h b/libjava/gnu/java/awt/java2d/Pixelizer.h
new file mode 100644 (file)
index 0000000..469019a
--- /dev/null
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_java2d_Pixelizer__
+#define __gnu_java_awt_java2d_Pixelizer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace java2d
+        {
+            class Pixelizer;
+            class ScanlineCoverage;
+        }
+      }
+    }
+  }
+}
+
+class gnu::java::awt::java2d::Pixelizer : public ::java::lang::Object
+{
+
+public:
+  virtual void renderScanline(jint, ::gnu::java::awt::java2d::ScanlineCoverage *) = 0;
+  static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __gnu_java_awt_java2d_Pixelizer__
index febf495e4515e6939b188477ef657c47e7207bf1..8ef5369096d91f6c1de1e4cc836bdea36c4c9a87 100644 (file)
@@ -19,11 +19,12 @@ extern "Java"
       {
         namespace java2d
         {
-            class AbstractGraphics2D;
             class ActiveEdges;
+            class Pixelizer;
             class PolyEdge;
             class Scanline;
             class ScanlineConverter;
+            class ScanlineCoverage;
         }
       }
     }
@@ -32,6 +33,7 @@ extern "Java"
   {
     namespace awt
     {
+        class RenderingHints;
         class Shape;
       namespace geom
       {
@@ -47,10 +49,11 @@ class gnu::java::awt::java2d::ScanlineConverter : public ::java::lang::Object
 
 public: // actually package-private
   ScanlineConverter();
-  void renderShape(::gnu::java::awt::java2d::AbstractGraphics2D *, ::java::awt::Shape *, ::java::awt::Shape *, ::java::awt::geom::AffineTransform *, jint);
+public:
+  void renderShape(::gnu::java::awt::java2d::Pixelizer *, ::java::awt::Shape *, ::java::awt::Shape *, ::java::awt::geom::AffineTransform *, jint, ::java::awt::RenderingHints *);
 private:
   void clear();
-  void doScanline(::gnu::java::awt::java2d::AbstractGraphics2D *, jint, jboolean, jboolean);
+  void doScanline(::gnu::java::awt::java2d::Pixelizer *, jint, jboolean, jboolean);
   void setResolution(jint);
   void setUpperBounds(jint);
   void addShape(::java::awt::geom::PathIterator *, jboolean);
@@ -60,6 +63,7 @@ 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;
@@ -71,6 +75,9 @@ private:
   ::gnu::java::awt::java2d::PolyEdge * edgePoolLast;
   jint minY;
   jint maxY;
+  jint minX;
+  jint maxX;
+  ::gnu::java::awt::java2d::ScanlineCoverage * scanlineCoverage;
 public: // actually package-private
   static jboolean $assertionsDisabled;
 public:
diff --git a/libjava/gnu/java/awt/java2d/ScanlineCoverage$Coverage.h b/libjava/gnu/java/awt/java2d/ScanlineCoverage$Coverage.h
new file mode 100644 (file)
index 0000000..0f1a5b7
--- /dev/null
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_java2d_ScanlineCoverage$Coverage__
+#define __gnu_java_awt_java2d_ScanlineCoverage$Coverage__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace java2d
+        {
+            class ScanlineCoverage$Coverage;
+        }
+      }
+    }
+  }
+}
+
+class gnu::java::awt::java2d::ScanlineCoverage$Coverage : public ::java::lang::Object
+{
+
+  ScanlineCoverage$Coverage();
+public:
+  jint getXPos();
+  jint getCoverageDelta();
+  ::java::lang::String * toString();
+  ::java::lang::String * list();
+public: // actually package-private
+  ScanlineCoverage$Coverage(::gnu::java::awt::java2d::ScanlineCoverage$Coverage *);
+  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) xPos;
+  jint covDelta;
+  jint pixelCoverage;
+  ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * next;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_java2d_ScanlineCoverage$Coverage__
diff --git a/libjava/gnu/java/awt/java2d/ScanlineCoverage$Iterator.h b/libjava/gnu/java/awt/java2d/ScanlineCoverage$Iterator.h
new file mode 100644 (file)
index 0000000..2ea741e
--- /dev/null
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_java2d_ScanlineCoverage$Iterator__
+#define __gnu_java_awt_java2d_ScanlineCoverage$Iterator__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace java2d
+        {
+            class ScanlineCoverage;
+            class ScanlineCoverage$Coverage;
+            class ScanlineCoverage$Iterator;
+            class ScanlineCoverage$Range;
+        }
+      }
+    }
+  }
+}
+
+class gnu::java::awt::java2d::ScanlineCoverage$Iterator : public ::java::lang::Object
+{
+
+public: // actually package-private
+  ScanlineCoverage$Iterator(::gnu::java::awt::java2d::ScanlineCoverage *);
+public:
+  ::gnu::java::awt::java2d::ScanlineCoverage$Range * next();
+  jboolean hasNext();
+public: // actually package-private
+  void reset();
+private:
+  ::gnu::java::awt::java2d::ScanlineCoverage$Range * __attribute__((aligned(__alignof__( ::java::lang::Object)))) range;
+  ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * currentItem;
+  jint currentCoverage;
+  jboolean handledPixelCoverage;
+public: // actually package-private
+  ::gnu::java::awt::java2d::ScanlineCoverage * this$0;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_java2d_ScanlineCoverage$Iterator__
diff --git a/libjava/gnu/java/awt/java2d/ScanlineCoverage$Range.h b/libjava/gnu/java/awt/java2d/ScanlineCoverage$Range.h
new file mode 100644 (file)
index 0000000..5f6ccd6
--- /dev/null
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_java2d_ScanlineCoverage$Range__
+#define __gnu_java_awt_java2d_ScanlineCoverage$Range__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace java2d
+        {
+            class ScanlineCoverage$Range;
+        }
+      }
+    }
+  }
+}
+
+class gnu::java::awt::java2d::ScanlineCoverage$Range : public ::java::lang::Object
+{
+
+public: // actually package-private
+  ScanlineCoverage$Range();
+  void setXPos(jint);
+public:
+  jint getXPos();
+public: // actually package-private
+  void setLength(jint);
+public:
+  jint getLength();
+  jint getXPosEnd();
+public: // actually package-private
+  void setCoverage(jint);
+public:
+  jint getCoverage();
+  ::java::lang::String * toString();
+public: // actually package-private
+  static jint access$0(::gnu::java::awt::java2d::ScanlineCoverage$Range *);
+private:
+  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) xPos;
+  jint length;
+  jint coverage;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_java2d_ScanlineCoverage$Range__
diff --git a/libjava/gnu/java/awt/java2d/ScanlineCoverage.h b/libjava/gnu/java/awt/java2d/ScanlineCoverage.h
new file mode 100644 (file)
index 0000000..46d9ae8
--- /dev/null
@@ -0,0 +1,67 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_java2d_ScanlineCoverage__
+#define __gnu_java_awt_java2d_ScanlineCoverage__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace java2d
+        {
+            class ScanlineCoverage;
+            class ScanlineCoverage$Coverage;
+            class ScanlineCoverage$Iterator;
+        }
+      }
+    }
+  }
+}
+
+class gnu::java::awt::java2d::ScanlineCoverage : public ::java::lang::Object
+{
+
+public:
+  ScanlineCoverage();
+  void rewind();
+  void clear();
+  void add(jint, jint, jint);
+  jint getMaxCoverage();
+public: // actually package-private
+  void setMaxCoverage(jint);
+public:
+  jint getMaxX();
+  jint getMinX();
+private:
+  ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * findOrInsert(jint);
+public:
+  ::gnu::java::awt::java2d::ScanlineCoverage$Iterator * iterate();
+  jboolean isEmpty();
+public: // actually package-private
+  static ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * access$0(::gnu::java::awt::java2d::ScanlineCoverage *);
+  static ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * access$1(::gnu::java::awt::java2d::ScanlineCoverage *);
+private:
+  ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * __attribute__((aligned(__alignof__( ::java::lang::Object)))) head;
+  ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * current;
+  ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * currentPrev;
+  ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * last;
+  ::gnu::java::awt::java2d::ScanlineCoverage$Coverage * lastPrev;
+  jint minX;
+  jint maxX;
+  jint maxCoverage;
+  ::gnu::java::awt::java2d::ScanlineCoverage$Iterator * iterator;
+public: // actually package-private
+  static jboolean $assertionsDisabled;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_java2d_ScanlineCoverage__
index ac7f3dacdba8792e5f037e1a24db93e123267bdf..1ae8ffdac3eff44c1e3375b4257c4ad06406bdcf 100644 (file)
@@ -32,6 +32,7 @@ extern "Java"
       {
           class Arc2D;
           class Ellipse2D;
+          class GeneralPath;
           class Line2D;
           class RoundRectangle2D;
       }
@@ -50,6 +51,7 @@ public:
   ::java::awt::geom::Ellipse2D * ellipse;
   ::java::awt::geom::Arc2D * arc;
   ::java::awt::Polygon * polygon;
+  ::java::awt::geom::GeneralPath * polyline;
   static ::java::lang::Class class$;
 };
 
index 2752664c8fc46c1955fb64b7e42b1cfdf1377d80..18ab58c6851acc37bb287c921faaa1bf8bdec973 100644 (file)
@@ -95,7 +95,7 @@ public:
   virtual jboolean isTransformed(::java::awt::Font *);
   virtual jfloat getItalicAngle(::java::awt::Font *);
   virtual jint getStyle(::java::awt::Font *);
-  virtual jboolean canDisplay(::java::awt::Font *, jchar) = 0;
+  virtual jboolean canDisplay(::java::awt::Font *, jint) = 0;
   virtual jint canDisplayUpTo(::java::awt::Font *, ::java::text::CharacterIterator *, jint, jint) = 0;
   virtual ::java::lang::String * getSubFamilyName(::java::awt::Font *, ::java::util::Locale *) = 0;
   virtual ::java::lang::String * getPostScriptName(::java::awt::Font *) = 0;
index 53715c43b5aa3c41431fe06e7d4d0a539f21e3a7..89b4c8b06d7032c57a0f9b7e6944372e3f02ed4b 100644 (file)
@@ -32,6 +32,7 @@ extern "Java"
         class Color;
         class Component;
         class Cursor;
+        class Dialog;
         class Dimension;
         class Font;
         class FontMetrics;
@@ -60,6 +61,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class gnu::java::awt::peer::EmbeddedWindowPeer : public ::java::lang::Object
@@ -76,10 +84,16 @@ public:
   virtual void setMaximizedBounds(::java::awt::Rectangle *) = 0;
   virtual jboolean isRestackSupported() = 0;
   virtual void setBoundsPrivate(jint, jint, jint, jint) = 0;
+  virtual ::java::awt::Rectangle * getBoundsPrivate() = 0;
   virtual void toBack() = 0;
   virtual void toFront() = 0;
   virtual void updateAlwaysOnTop() = 0;
   virtual jboolean requestWindowFocus() = 0;
+  virtual void setAlwaysOnTop(jboolean) = 0;
+  virtual void updateFocusableWindowState() = 0;
+  virtual void setModalBlocked(::java::awt::Dialog *, jboolean) = 0;
+  virtual void updateMinimumSize() = 0;
+  virtual void updateIconImages() = 0;
   virtual ::java::awt::Insets * insets() = 0;
   virtual ::java::awt::Insets * getInsets() = 0;
   virtual void beginValidate() = 0;
@@ -140,6 +154,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index d9e6e58e6b1e8cb19b344c403e3fcf895be8c9b8..ecf0b46533b0e6006182791d254f4626a9c551b3 100644 (file)
@@ -59,6 +59,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class gnu::java::awt::peer::GLightweightPeer : public ::java::lang::Object
@@ -127,6 +134,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint);
   virtual jboolean isReparentSupported();
   virtual void layout();
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *);
   static ::java::lang::Class class$;
 };
 
index 47b452ee7122ea30209f8b93909803ea8840d43b..f782b9cbd61c2c56bfd49a5f0407e3d6d3f8011c 100644 (file)
@@ -91,6 +91,9 @@ public:
   virtual ::java::awt::geom::Point2D * getGlyphPosition(jint);
   virtual JArray< jfloat > * getGlyphPositions(jint, jint, JArray< jfloat > *);
   virtual ::java::awt::geom::AffineTransform * getGlyphTransform(jint);
+public: // actually protected
+  virtual jboolean hasTransforms();
+public:
   virtual ::java::awt::Shape * getGlyphVisualBounds(jint);
   virtual ::java::awt::geom::Rectangle2D * getLogicalBounds();
   virtual jint getNumGlyphs();
index d7168b27bcf680a62d70fcc9b5e6c9eb95af1c53..ebfdd2c96f98a7ad039290c20e16801646ded92a 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
 {
   namespace gnu
   {
+    namespace classpath
+    {
+        class Pointer;
+    }
     namespace java
     {
       namespace awt
@@ -93,7 +97,7 @@ public:
 private:
   ::java::lang::String * getName(jint, ::java::util::Locale *);
 public:
-  virtual jboolean canDisplay(::java::awt::Font *, jchar);
+  virtual jboolean canDisplay(::java::awt::Font *, jint);
   virtual jint canDisplayUpTo(::java::awt::Font *, ::java::text::CharacterIterator *, jint, 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 > *);
@@ -135,6 +139,7 @@ public: // actually package-private
   ::gnu::java::awt::peer::gtk::GdkFontPeer$GdkFontMetrics * metrics;
 private:
   ::java::nio::ByteBuffer * nameTable;
+  ::gnu::classpath::Pointer * nativeFont;
 public:
   static ::java::lang::Class class$;
 };
index 49586fc08b17e3afab09d01a33b967fa528f4d0e..78d947c6ef4c4d711a05f32c4cfa5db4b6664d0a 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
 {
   namespace gnu
   {
+    namespace classpath
+    {
+        class Pointer;
+    }
     namespace java
     {
       namespace awt
@@ -49,8 +53,7 @@ extern "Java"
 class gnu::java::awt::peer::gtk::GdkGraphicsEnvironment : public ::gnu::java::awt::ClasspathGraphicsEnvironment
 {
 
-public: // actually package-private
-  static void initStaticState();
+  static void initIDs();
 public:
   GdkGraphicsEnvironment();
 public: // actually package-private
@@ -80,6 +83,7 @@ private:
   jint __attribute__((aligned(__alignof__( ::gnu::java::awt::ClasspathGraphicsEnvironment)))) native_state;
   ::gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice * defaultDevice;
   JArray< ::gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice * > * devices;
+  ::gnu::classpath::Pointer * display;
 public:
   static ::java::lang::Class class$;
 };
index 8f7066551cb6a190d55a548f9627491f499b35e2..1c5fa79395e73e4bd3d4ff4b14489951ea8472a0 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
 {
   namespace gnu
   {
+    namespace classpath
+    {
+        class Pointer;
+    }
     namespace java
     {
       namespace awt
@@ -96,6 +100,9 @@ private:
   jboolean needsClose;
 public: // actually package-private
   ::java::util::Vector * curr;
+private:
+  ::gnu::classpath::Pointer * nativeDecoder;
+public: // actually package-private
   static ::java::awt::image::ColorModel * cm;
   static ::java::util::ArrayList * imageFormatSpecs;
 private:
index d961df32f295331f9582a2b4113276576598ea89..24c6a853c354d66f23c9393b773a1e5415ea26f7 100644 (file)
@@ -60,6 +60,7 @@ public: // actually package-private
 public:
   virtual jint getRGBPixel(jint, jint);
   virtual JArray< jint > * getRGBPixels(::java::awt::Rectangle *);
+  virtual void dispose();
 public: // actually package-private
   static ::java::awt::image::ColorModel * cm;
 public:
index 30c165f6e7e971ada63ea810d4382dbad9567ea6..ff0362b99a2315dc8272668b68bf21c6cbe50bfe 100644 (file)
@@ -13,6 +13,10 @@ extern "Java"
 {
   namespace gnu
   {
+    namespace classpath
+    {
+        class Pointer;
+    }
     namespace java
     {
       namespace awt
@@ -46,7 +50,7 @@ class gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice : public ::java::awt::G
 {
 
 public: // actually package-private
-  static void initStaticState();
+  static void initIDs();
   GdkScreenGraphicsDevice(::gnu::java::awt::peer::gtk::GdkGraphicsEnvironment *);
   virtual void init();
   virtual ::java::awt::DisplayMode * nativeGetFixedDisplayMode(::gnu::java::awt::peer::gtk::GdkGraphicsEnvironment *);
@@ -90,6 +94,8 @@ public: // actually package-private
   ::java::lang::String * idString;
   JArray< ::gnu::java::awt::peer::gtk::GdkScreenGraphicsDevice$X11DisplayMode * > * displayModes;
   ::java::awt::DisplayMode * fixedDisplayMode;
+private:
+  ::gnu::classpath::Pointer * screen;
 public:
   static ::java::lang::Class class$;
 };
index d29f0366f40b6a4f5157fa1551922ac616c362a5..fa35e2ad70b64085a0088bb4a698df8b2d2234c3 100644 (file)
@@ -67,6 +67,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class gnu::java::awt::peer::gtk::GtkComponentPeer : public ::gnu::java::awt::peer::gtk::GtkGenericPeer
@@ -182,6 +189,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint);
   virtual jboolean isReparentSupported();
   virtual void layout();
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *);
 public: // actually package-private
   ::java::awt::image::VolatileImage * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::GtkGenericPeer)))) backBuffer;
   ::java::awt::BufferCapabilities * caps;
index c136fa917ca6faf7b911dc102f572eb8a2ce6f85..2c8ea0ee3f03a1bf8ea41a8db2eb022df071b357 100644 (file)
@@ -80,6 +80,7 @@ public:
   virtual void setMaximizedBounds(::java::awt::Rectangle *);
   virtual void setBoundsPrivate(jint, jint, jint, jint);
   virtual jboolean requestWindowFocus();
+  virtual ::java::awt::Rectangle * getBoundsPrivate();
 private:
   jint __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::gtk::GtkWindowPeer)))) menuBarHeight;
   ::java::awt::peer::MenuBarPeer * menuBar;
index 6c9c87dc1ef7e4653250d4596070e8ecafbfd3c2..ffb135bac0d0e16ba7acf6d4bfb86cdeb14b1c3e 100644 (file)
@@ -11,6 +11,10 @@ extern "Java"
 {
   namespace gnu
   {
+    namespace classpath
+    {
+        class Pointer;
+    }
     namespace java
     {
       namespace awt
@@ -38,6 +42,7 @@ extern "Java"
 class gnu::java::awt::peer::gtk::GtkGenericPeer : public ::java::lang::Object
 {
 
+  static void initIDs();
 public:
   virtual void dispose();
 public: // actually package-private
@@ -57,6 +62,9 @@ private:
   static jint next_native_state;
 public: // actually protected
   ::java::lang::Object * awtWidget;
+private:
+  ::gnu::classpath::Pointer * widget;
+  ::gnu::classpath::Pointer * globalRef;
 public:
   static ::java::lang::Class class$;
 };
index 66b3fcbaad4b758e323d1ca935e2b20eaafbda40..c562e059e04b2aa7d06a0a0f2bc9569a4b2b972c 100644 (file)
@@ -44,6 +44,8 @@ extern "Java"
         class Component;
         class Cursor;
         class Dialog;
+        class Dialog$ModalExclusionType;
+        class Dialog$ModalityType;
         class Dimension;
         class EventQueue;
         class FileDialog;
@@ -144,6 +146,10 @@ public: // actually package-private
   static void gtkInit(jint, ::java::lang::Object *);
   static void gtkMain();
   static void gtkQuit();
+private:
+  static void initIDs();
+public: // actually package-private
+  static void initializeGlobalIDs();
 public:
   GtkToolkit();
   virtual void beep();
@@ -228,10 +234,13 @@ private:
   void checkHeadless();
 public:
   virtual jint getMouseNumberOfButtons();
+  virtual jboolean isModalExclusionTypeSupported(::java::awt::Dialog$ModalExclusionType *);
+  virtual jboolean isModalityTypeSupported(::java::awt::Dialog$ModalityType *);
 public: // actually package-private
   static ::java::lang::Object * GTK_LOCK;
 private:
   static ::java::awt::EventQueue * q;
+  static jboolean initializedGlobalIDs;
   ::gnu::java::awt::peer::gtk::GtkToolkit$LRUCache * __attribute__((aligned(__alignof__( ::gnu::java::awt::ClasspathToolkit)))) fontCache;
   ::gnu::java::awt::peer::gtk::GtkToolkit$LRUCache * imageCache;
 public:
index da0c32556aeb9a072cbe7610ba6a1f8be851f508..3eb4c142aaf739b9c4c2cc53e3348f9df4e84e8c 100644 (file)
@@ -30,6 +30,7 @@ extern "Java"
     namespace awt
     {
         class Component;
+        class Dialog;
         class Graphics;
         class Rectangle;
         class Window;
@@ -101,6 +102,11 @@ public: // actually protected
   virtual void postMouseEvent(jint, jlong, jint, jint, jint, jint, jboolean);
 public:
   virtual ::java::awt::Rectangle * getBounds();
+  virtual void updateIconImages();
+  virtual void updateMinimumSize();
+  virtual void setModalBlocked(::java::awt::Dialog *, jboolean);
+  virtual void updateFocusableWindowState();
+  virtual void setAlwaysOnTop(jboolean);
 public: // actually protected
   static const jint GDK_WINDOW_TYPE_HINT_NORMAL = 0;
   static const jint GDK_WINDOW_TYPE_HINT_DIALOG = 1;
index d7a72173ef22108dbe37096ede58161f0c28e69a..657b32333a356c7012334f37d2d35c0412888d26 100644 (file)
@@ -41,6 +41,8 @@ extern "Java"
         class CheckboxMenuItem;
         class Choice;
         class Dialog;
+        class Dialog$ModalExclusionType;
+        class Dialog$ModalityType;
         class Dimension;
         class EventQueue;
         class FileDialog;
@@ -179,6 +181,8 @@ public:
   virtual ::java::awt::peer::RobotPeer * createRobot(::java::awt::GraphicsDevice *);
   virtual ::gnu::java::awt::peer::ClasspathFontPeer * getClasspathFontPeer(::java::lang::String *, ::java::util::Map *);
   virtual ::java::awt::GraphicsEnvironment * getLocalGraphicsEnvironment();
+  virtual jboolean isModalExclusionTypeSupported(::java::awt::Dialog$ModalExclusionType *);
+  virtual jboolean isModalityTypeSupported(::java::awt::Dialog$ModalityType *);
 private:
   ::gnu::java::awt::peer::headless::HeadlessGraphicsEnvironment * __attribute__((aligned(__alignof__( ::gnu::java::awt::ClasspathToolkit)))) graphicsEnv;
 public:
index f596e809c2a65510497a9e9ee9a6e54acc94e8de..4688b8e3f2425e22de184377d61ce083f1e0aa0c 100644 (file)
@@ -65,6 +65,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class gnu::java::awt::peer::qt::QtComponentPeer : public ::gnu::java::awt::peer::qt::NativeWrapper
@@ -168,6 +175,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint);
   virtual jboolean isReparentSupported();
   virtual void layout();
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *);
 public: // actually protected
   static const jint POPUP_TRIGGER = 3;
   ::gnu::java::awt::peer::qt::QtToolkit * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::qt::NativeWrapper)))) toolkit;
index a0655f2111f7d384e3f182dfa7204299b6c501a8..fcb30d235be72b9321de0c171e6d19b16f168f50 100644 (file)
@@ -59,7 +59,7 @@ private:
   void dispose();
 public: // actually package-private
   virtual ::java::awt::geom::Rectangle2D * getStringBounds(::java::lang::String *);
-  virtual jboolean canDisplay(jchar);
+  virtual jboolean canDisplay(jint);
 public:
   virtual jint getAscent();
   virtual jint getDescent();
index 11ca6ccf6c61fa62f7ed7edf202b30b64a754153..0daebcc135ec61e09a98bbe25af95d62f83d8fdb 100644 (file)
@@ -64,7 +64,7 @@ private:
   void create(::java::lang::String *, jint, jint);
 public:
   virtual void dispose();
-  virtual jboolean canDisplay(::java::awt::Font *, jchar);
+  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 *);
index 1b0f39e68d5055577646b683fdb5d8cbdc964719..a89557c60118076fbbd01d6c3006323f3f0d1c43 100644 (file)
@@ -66,6 +66,7 @@ public:
   virtual void setBoundsPrivate(jint, jint, jint, jint);
   virtual void updateAlwaysOnTop();
   virtual jboolean requestWindowFocus();
+  virtual ::java::awt::Rectangle * getBoundsPrivate();
 private:
   jint __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::qt::QtWindowPeer)))) theState;
 public: // actually package-private
index 471794be6c9b5c508715f31566a9cda134ac87cd..319318ac5ff6fc1328ce94d93f73ac8a7e62b28f 100644 (file)
@@ -43,6 +43,8 @@ extern "Java"
         class CheckboxMenuItem;
         class Choice;
         class Dialog;
+        class Dialog$ModalExclusionType;
+        class Dialog$ModalityType;
         class Dimension;
         class EventQueue;
         class FileDialog;
@@ -193,6 +195,8 @@ public:
   virtual ::java::awt::Font * createFont(jint, ::java::io::InputStream *);
   virtual ::java::awt::peer::RobotPeer * createRobot(::java::awt::GraphicsDevice *);
   virtual ::gnu::java::awt::peer::EmbeddedWindowPeer * createEmbeddedWindow(::gnu::java::awt::EmbeddedWindow *);
+  virtual jboolean isModalExclusionTypeSupported(::java::awt::Dialog$ModalExclusionType *);
+  virtual jboolean isModalityTypeSupported(::java::awt::Dialog$ModalityType *);
   static ::java::awt::EventQueue * eventQueue;
   static ::gnu::java::awt::peer::qt::QtRepaintThread * repaintThread;
   static ::gnu::java::awt::peer::qt::MainQtThread * guiThread;
index e451e3c60270cca8a0f22e7b8b0b94df4abd966e..9e5a1474f2d3e1a5ab5327e24f81caeeaac46e98 100644 (file)
@@ -31,6 +31,7 @@ extern "Java"
     namespace awt
     {
         class Component;
+        class Dialog;
     }
   }
 }
@@ -49,6 +50,11 @@ public:
   virtual void setTitle(::java::lang::String *);
   virtual void updateAlwaysOnTop();
   virtual jboolean requestWindowFocus();
+  virtual void updateIconImages();
+  virtual void updateMinimumSize();
+  virtual void setModalBlocked(::java::awt::Dialog *, jboolean);
+  virtual void updateFocusableWindowState();
+  virtual void setAlwaysOnTop(jboolean);
   static ::java::lang::Class class$;
 };
 
index 1bc372511eb876c769c5e85853e91edfcdc5358c..ffaa2b6cdc28031f6b3430f03253c08744988a51 100644 (file)
@@ -37,6 +37,7 @@ extern "Java"
         class Point;
       namespace event
       {
+          class FocusEvent;
           class KeyEvent;
           class MouseEvent;
       }
@@ -66,6 +67,9 @@ public:
   virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *);
   virtual void handleKeyEvent(::java::awt::event::KeyEvent *);
   virtual ::java::awt::Container * getParent();
+  virtual void handleFocusEvent(::java::awt::event::FocusEvent *);
+  virtual void requestFocus();
+  virtual jboolean requestFocus(jboolean);
 public: // actually package-private
   ::java::awt::Button * __attribute__((aligned(__alignof__( ::javax::swing::JButton)))) button;
   ::gnu::java::awt::peer::swing::SwingButtonPeer * this$0;
diff --git a/libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.h b/libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckbox.h
new file mode 100644 (file)
index 0000000..d50fe66
--- /dev/null
@@ -0,0 +1,80 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_peer_swing_SwingCheckboxPeer$SwingCheckbox__
+#define __gnu_java_awt_peer_swing_SwingCheckboxPeer$SwingCheckbox__
+
+#pragma interface
+
+#include <javax/swing/JCheckBox.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace peer
+        {
+          namespace swing
+          {
+              class SwingCheckboxPeer;
+              class SwingCheckboxPeer$SwingCheckbox;
+          }
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace awt
+    {
+        class Checkbox;
+        class Container;
+        class Graphics;
+        class Image;
+        class Point;
+      namespace event
+      {
+          class FocusEvent;
+          class KeyEvent;
+          class MouseEvent;
+      }
+    }
+  }
+  namespace javax
+  {
+    namespace swing
+    {
+        class JComponent;
+    }
+  }
+}
+
+class gnu::java::awt::peer::swing::SwingCheckboxPeer$SwingCheckbox : public ::javax::swing::JCheckBox
+{
+
+public: // actually package-private
+  SwingCheckboxPeer$SwingCheckbox(::gnu::java::awt::peer::swing::SwingCheckboxPeer *, ::java::awt::Checkbox *);
+public:
+  virtual ::javax::swing::JComponent * getJComponent();
+  virtual void handleMouseEvent(::java::awt::event::MouseEvent *);
+  virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *);
+  virtual void handleKeyEvent(::java::awt::event::KeyEvent *);
+  virtual void handleFocusEvent(::java::awt::event::FocusEvent *);
+  virtual ::java::awt::Point * getLocationOnScreen();
+  virtual jboolean isShowing();
+  virtual ::java::awt::Image * createImage(jint, jint);
+  virtual ::java::awt::Graphics * getGraphics();
+  virtual ::java::awt::Container * getParent();
+  virtual void requestFocus();
+  virtual jboolean requestFocus(jboolean);
+public: // actually package-private
+  ::java::awt::Checkbox * __attribute__((aligned(__alignof__( ::javax::swing::JCheckBox)))) checkbox;
+  ::gnu::java::awt::peer::swing::SwingCheckboxPeer * this$0;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_peer_swing_SwingCheckboxPeer$SwingCheckbox__
diff --git a/libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.h b/libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer$SwingCheckboxListener.h
new file mode 100644 (file)
index 0000000..71517ae
--- /dev/null
@@ -0,0 +1,56 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_peer_swing_SwingCheckboxPeer$SwingCheckboxListener__
+#define __gnu_java_awt_peer_swing_SwingCheckboxPeer$SwingCheckboxListener__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace peer
+        {
+          namespace swing
+          {
+              class SwingCheckboxPeer;
+              class SwingCheckboxPeer$SwingCheckboxListener;
+          }
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace awt
+    {
+        class Checkbox;
+      namespace event
+      {
+          class ItemEvent;
+      }
+    }
+  }
+}
+
+class gnu::java::awt::peer::swing::SwingCheckboxPeer$SwingCheckboxListener : public ::java::lang::Object
+{
+
+public: // actually package-private
+  SwingCheckboxPeer$SwingCheckboxListener(::gnu::java::awt::peer::swing::SwingCheckboxPeer *, ::java::awt::Checkbox *);
+public:
+  virtual void itemStateChanged(::java::awt::event::ItemEvent *);
+public: // actually package-private
+  ::java::awt::Checkbox * __attribute__((aligned(__alignof__( ::java::lang::Object)))) awtCheckbox;
+  ::gnu::java::awt::peer::swing::SwingCheckboxPeer * this$0;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_peer_swing_SwingCheckboxPeer$SwingCheckboxListener__
diff --git a/libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer.h b/libjava/gnu/java/awt/peer/swing/SwingCheckboxPeer.h
new file mode 100644 (file)
index 0000000..bceaa21
--- /dev/null
@@ -0,0 +1,49 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_peer_swing_SwingCheckboxPeer__
+#define __gnu_java_awt_peer_swing_SwingCheckboxPeer__
+
+#pragma interface
+
+#include <gnu/java/awt/peer/swing/SwingComponentPeer.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace peer
+        {
+          namespace swing
+          {
+              class SwingCheckboxPeer;
+          }
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace awt
+    {
+        class Checkbox;
+        class CheckboxGroup;
+    }
+  }
+}
+
+class gnu::java::awt::peer::swing::SwingCheckboxPeer : public ::gnu::java::awt::peer::swing::SwingComponentPeer
+{
+
+public:
+  SwingCheckboxPeer(::java::awt::Checkbox *);
+  virtual void setCheckboxGroup(::java::awt::CheckboxGroup *);
+  virtual void setLabel(::java::lang::String *);
+  virtual void setState(jboolean);
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_peer_swing_SwingCheckboxPeer__
index b9777c2b13f1399925bab5699e205afca50680a7..619a05e36d26d12ee001fb2509ba12bca7e594e7 100644 (file)
@@ -31,6 +31,7 @@ extern "Java"
     {
       namespace event
       {
+          class FocusEvent;
           class KeyEvent;
           class MouseEvent;
       }
@@ -53,6 +54,7 @@ public:
   virtual void handleMouseEvent(::java::awt::event::MouseEvent *) = 0;
   virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *) = 0;
   virtual void handleKeyEvent(::java::awt::event::KeyEvent *) = 0;
+  virtual void handleFocusEvent(::java::awt::event::FocusEvent *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index af2d715d6b6a9de9d6b4e0ffda2f723821f31f38..545496878815b7dfda2ba4596067e03761445ee1 100644 (file)
@@ -47,6 +47,7 @@ extern "Java"
         class Toolkit;
       namespace event
       {
+          class FocusEvent;
           class KeyEvent;
           class MouseEvent;
           class PaintEvent;
@@ -64,6 +65,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class gnu::java::awt::peer::swing::SwingComponentPeer : public ::java::lang::Object
@@ -130,8 +138,10 @@ public: // actually protected
   virtual void handleMouseEvent(::java::awt::event::MouseEvent *);
   virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *);
   virtual void handleKeyEvent(::java::awt::event::KeyEvent *);
+  virtual void handleFocusEvent(::java::awt::event::FocusEvent *);
 public:
   virtual ::java::awt::Component * getComponent();
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *);
 public: // actually protected
   ::java::awt::Component * __attribute__((aligned(__alignof__( ::java::lang::Object)))) awtComponent;
   ::gnu::java::awt::peer::swing::SwingComponent * swingComponent;
index 40d783975bb6bf773832519db12e56e15f33fa27..a3895c08c436b05347aec8e6e5e0375fd550956b 100644 (file)
@@ -7,6 +7,8 @@
 #pragma interface
 
 #include <gnu/java/awt/peer/swing/SwingComponentPeer.h>
+#include <gcj/array.h>
+
 extern "Java"
 {
   namespace gnu
@@ -48,9 +50,10 @@ class gnu::java::awt::peer::swing::SwingContainerPeer : public ::gnu::java::awt:
 
 public:
   SwingContainerPeer(::java::awt::Container *);
-public: // actually package-private
+public: // actually protected
   virtual void addHeavyweightDescendent(::java::awt::Component *);
   virtual void removeHeavyweightDescendent(::java::awt::Component *);
+  virtual JArray< ::java::awt::Component * > * getHeavyweightDescendents();
 public:
   virtual ::java::awt::Insets * insets();
   virtual ::java::awt::Insets * getInsets();
index 2822fccb36fa4ff64349778e73ace46bcdc2f004..e09ee5d1dd879503ecbf1e7410425787e4603297 100644 (file)
@@ -68,6 +68,7 @@ public:
   virtual void setState(jint) = 0;
   virtual void setMaximizedBounds(::java::awt::Rectangle *) = 0;
   virtual void setBoundsPrivate(jint, jint, jint, jint) = 0;
+  virtual ::java::awt::Rectangle * getBoundsPrivate() = 0;
 public: // actually package-private
   ::gnu::java::awt::peer::swing::SwingMenuBarPeer * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::swing::SwingWindowPeer)))) menuBar;
 public:
index bc9eb617f7818bbf925ed63937a63d28ceb3c20b..561c8102fcb3a0a15bf062ffa367edd079d1944e 100644 (file)
@@ -37,6 +37,7 @@ extern "Java"
         class Point;
       namespace event
       {
+          class FocusEvent;
           class KeyEvent;
           class MouseEvent;
       }
@@ -61,6 +62,7 @@ public:
   virtual void handleMouseEvent(::java::awt::event::MouseEvent *);
   virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *);
   virtual void handleKeyEvent(::java::awt::event::KeyEvent *);
+  virtual void handleFocusEvent(::java::awt::event::FocusEvent *);
   virtual ::java::awt::Point * getLocationOnScreen();
   virtual jboolean isShowing();
   virtual ::java::awt::Image * createImage(jint, jint);
index 507e1e942b9003e232074e86a3c36d8f4dba8fda..76b8b759b7af91edf73da816c65935598a32abfa 100644 (file)
@@ -37,6 +37,7 @@ extern "Java"
         class Point;
       namespace event
       {
+          class FocusEvent;
           class KeyEvent;
           class MouseEvent;
       }
@@ -62,6 +63,7 @@ public:
   virtual jboolean isLightweight();
   virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *);
   virtual void handleKeyEvent(::java::awt::event::KeyEvent *);
+  virtual void handleFocusEvent(::java::awt::event::FocusEvent *);
   virtual ::java::awt::Point * getLocationOnScreen();
   virtual jboolean isShowing();
   virtual ::java::awt::Image * createImage(jint, jint);
diff --git a/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.h b/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$1.h
new file mode 100644 (file)
index 0000000..1735bf0
--- /dev/null
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_peer_swing_SwingTextAreaPeer$1__
+#define __gnu_java_awt_peer_swing_SwingTextAreaPeer$1__
+
+#pragma interface
+
+#include <javax/swing/JViewport.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace peer
+        {
+          namespace swing
+          {
+              class SwingTextAreaPeer;
+              class SwingTextAreaPeer$1;
+          }
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace awt
+    {
+        class Image;
+    }
+  }
+}
+
+class gnu::java::awt::peer::swing::SwingTextAreaPeer$1 : public ::javax::swing::JViewport
+{
+
+public: // actually package-private
+  SwingTextAreaPeer$1(::gnu::java::awt::peer::swing::SwingTextAreaPeer *);
+public:
+  ::java::awt::Image * createImage(jint, jint);
+public: // actually package-private
+  ::gnu::java::awt::peer::swing::SwingTextAreaPeer * __attribute__((aligned(__alignof__( ::javax::swing::JViewport)))) this$0;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_peer_swing_SwingTextAreaPeer$1__
diff --git a/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.h b/libjava/gnu/java/awt/peer/swing/SwingTextAreaPeer$SwingScrollPane.h
new file mode 100644 (file)
index 0000000..040c7f0
--- /dev/null
@@ -0,0 +1,81 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_awt_peer_swing_SwingTextAreaPeer$SwingScrollPane__
+#define __gnu_java_awt_peer_swing_SwingTextAreaPeer$SwingScrollPane__
+
+#pragma interface
+
+#include <javax/swing/JScrollPane.h>
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace java
+    {
+      namespace awt
+      {
+        namespace peer
+        {
+          namespace swing
+          {
+              class SwingTextAreaPeer;
+              class SwingTextAreaPeer$SwingScrollPane;
+              class SwingTextAreaPeer$SwingTextArea;
+          }
+        }
+      }
+    }
+  }
+  namespace java
+  {
+    namespace awt
+    {
+        class Container;
+        class Graphics;
+        class Image;
+        class Point;
+      namespace event
+      {
+          class FocusEvent;
+          class KeyEvent;
+          class MouseEvent;
+      }
+    }
+  }
+  namespace javax
+  {
+    namespace swing
+    {
+        class JComponent;
+    }
+  }
+}
+
+class gnu::java::awt::peer::swing::SwingTextAreaPeer$SwingScrollPane : public ::javax::swing::JScrollPane
+{
+
+public: // actually package-private
+  SwingTextAreaPeer$SwingScrollPane(::gnu::java::awt::peer::swing::SwingTextAreaPeer *, ::gnu::java::awt::peer::swing::SwingTextAreaPeer$SwingTextArea *);
+public:
+  virtual ::javax::swing::JComponent * getJComponent();
+  virtual void handleMouseEvent(::java::awt::event::MouseEvent *);
+  virtual jboolean isLightweight();
+  virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *);
+  virtual void handleKeyEvent(::java::awt::event::KeyEvent *);
+  virtual void handleFocusEvent(::java::awt::event::FocusEvent *);
+  virtual ::java::awt::Point * getLocationOnScreen();
+  virtual jboolean isShowing();
+  virtual ::java::awt::Image * createImage(jint, jint);
+  virtual ::java::awt::Graphics * getGraphics();
+  virtual ::java::awt::Container * getParent();
+  virtual void requestFocus();
+  virtual jboolean requestFocus(jboolean);
+public: // actually package-private
+  ::gnu::java::awt::peer::swing::SwingTextAreaPeer$SwingTextArea * __attribute__((aligned(__alignof__( ::javax::swing::JScrollPane)))) textArea;
+  ::gnu::java::awt::peer::swing::SwingTextAreaPeer * this$0;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_awt_peer_swing_SwingTextAreaPeer$SwingScrollPane__
index 6b283b69ef0a7087112894ff3b8724dd56fcf90e..fe39275bb55913c72ed0aa3d439d6bc69dfe1c20 100644 (file)
@@ -6,7 +6,7 @@
 
 #pragma interface
 
-#include <javax/swing/JScrollPane.h>
+#include <javax/swing/JTextArea.h>
 extern "Java"
 {
   namespace gnu
@@ -30,45 +30,41 @@ extern "Java"
   {
     namespace awt
     {
-        class Component;
-        class Container;
-        class Graphics;
-        class Image;
-        class Point;
       namespace event
       {
+          class ComponentEvent;
+          class FocusEvent;
+          class HierarchyEvent;
+          class InputMethodEvent;
           class KeyEvent;
           class MouseEvent;
+          class MouseWheelEvent;
       }
     }
   }
-  namespace javax
-  {
-    namespace swing
-    {
-        class JComponent;
-    }
-  }
 }
 
-class gnu::java::awt::peer::swing::SwingTextAreaPeer$SwingTextArea : public ::javax::swing::JScrollPane
+class gnu::java::awt::peer::swing::SwingTextAreaPeer$SwingTextArea : public ::javax::swing::JTextArea
 {
 
-public: // actually package-private
-  SwingTextAreaPeer$SwingTextArea(::gnu::java::awt::peer::swing::SwingTextAreaPeer *, ::java::awt::Component *);
+  SwingTextAreaPeer$SwingTextArea(::gnu::java::awt::peer::swing::SwingTextAreaPeer *);
+public: // actually protected
+  virtual void processComponentKeyEvent(::java::awt::event::KeyEvent *);
+  virtual void processMouseMotionEvent(::java::awt::event::MouseEvent *);
+  virtual void processComponentEvent(::java::awt::event::ComponentEvent *);
+  virtual void processFocusEvent(::java::awt::event::FocusEvent *);
+  virtual void processHierarchyBoundsEvent(::java::awt::event::HierarchyEvent *);
+  virtual void processHierarchyEvent(::java::awt::event::HierarchyEvent *);
+  virtual void processInputMethodEvent(::java::awt::event::InputMethodEvent *);
+  virtual void processMouseEvent(::java::awt::event::MouseEvent *);
+  virtual void processMouseWheelEvent(::java::awt::event::MouseWheelEvent *);
+  virtual void processKeyEvent(::java::awt::event::KeyEvent *);
 public:
-  virtual ::javax::swing::JComponent * getJComponent();
-  virtual void handleMouseEvent(::java::awt::event::MouseEvent *);
-  virtual jboolean isLightweight();
-  virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *);
-  virtual void handleKeyEvent(::java::awt::event::KeyEvent *);
-  virtual ::java::awt::Point * getLocationOnScreen();
-  virtual jboolean isShowing();
-  virtual ::java::awt::Image * createImage(jint, jint);
-  virtual ::java::awt::Graphics * getGraphics();
-  virtual ::java::awt::Container * getParent();
+  virtual void requestFocus();
+  virtual jboolean requestFocus(jboolean);
 public: // actually package-private
-  ::gnu::java::awt::peer::swing::SwingTextAreaPeer * __attribute__((aligned(__alignof__( ::javax::swing::JScrollPane)))) this$0;
+  SwingTextAreaPeer$SwingTextArea(::gnu::java::awt::peer::swing::SwingTextAreaPeer *, ::gnu::java::awt::peer::swing::SwingTextAreaPeer$SwingTextArea *);
+  ::gnu::java::awt::peer::swing::SwingTextAreaPeer * __attribute__((aligned(__alignof__( ::javax::swing::JTextArea)))) this$0;
 public:
   static ::java::lang::Class class$;
 };
index a9d4b8f60f8cb82bd6656187aad9175f17af8a9e..2e58f536a463f4457938570175d3aaa9ea4af467 100644 (file)
@@ -20,6 +20,7 @@ extern "Java"
           namespace swing
           {
               class SwingTextAreaPeer;
+              class SwingTextAreaPeer$SwingTextArea;
           }
         }
       }
@@ -38,13 +39,6 @@ extern "Java"
       }
     }
   }
-  namespace javax
-  {
-    namespace swing
-    {
-        class JTextArea;
-    }
-  }
 }
 
 class gnu::java::awt::peer::swing::SwingTextAreaPeer : public ::gnu::java::awt::peer::swing::SwingComponentPeer
@@ -56,6 +50,8 @@ public:
   virtual ::java::awt::Dimension * getPreferredSize(jint, jint);
   virtual void insert(::java::lang::String *, jint);
   virtual void insertText(::java::lang::String *, jint);
+  virtual ::java::awt::Dimension * minimumSize();
+  virtual ::java::awt::Dimension * preferredSize();
   virtual ::java::awt::Dimension * minimumSize(jint, jint);
   virtual ::java::awt::Dimension * preferredSize(jint, jint);
   virtual void replaceRange(::java::lang::String *, jint, jint);
@@ -72,8 +68,9 @@ public:
   virtual void setCaretPosition(jint);
   virtual void setEditable(jboolean);
   virtual void setText(::java::lang::String *);
+  virtual void reshape(jint, jint, jint, jint);
 private:
-  ::javax::swing::JTextArea * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::swing::SwingComponentPeer)))) jTextArea;
+  ::gnu::java::awt::peer::swing::SwingTextAreaPeer$SwingTextArea * __attribute__((aligned(__alignof__( ::gnu::java::awt::peer::swing::SwingComponentPeer)))) jTextArea;
 public:
   static ::java::lang::Class class$;
 };
index 08ac1387f7ffe43466cbddf07ac049b8c15c5963..3a46f6719568f9c330047b61f22864f2f571e9e5 100644 (file)
@@ -37,6 +37,7 @@ extern "Java"
         class TextField;
       namespace event
       {
+          class FocusEvent;
           class KeyEvent;
           class MouseEvent;
       }
@@ -64,8 +65,11 @@ public:
   virtual void handleMouseEvent(::java::awt::event::MouseEvent *);
   virtual void handleMouseMotionEvent(::java::awt::event::MouseEvent *);
   virtual void handleKeyEvent(::java::awt::event::KeyEvent *);
+  virtual void handleFocusEvent(::java::awt::event::FocusEvent *);
   virtual ::java::awt::Container * getParent();
   virtual ::java::awt::Graphics * getGraphics();
+  virtual void requestFocus();
+  virtual jboolean requestFocus(jboolean);
 public: // actually package-private
   ::java::awt::TextField * __attribute__((aligned(__alignof__( ::javax::swing::JTextField)))) textField;
   ::gnu::java::awt::peer::swing::SwingTextFieldPeer * this$0;
index c84bfe992c547c02924111a521d4d6df4e9ea893..9572f3f76578af37a3970989f7742f1f595b1788 100644 (file)
@@ -31,6 +31,8 @@ extern "Java"
     {
         class Button;
         class Canvas;
+        class Dialog$ModalExclusionType;
+        class Dialog$ModalityType;
         class Label;
         class Menu;
         class MenuBar;
@@ -67,6 +69,8 @@ public: // actually protected
   virtual ::java::awt::peer::PanelPeer * createPanel(::java::awt::Panel *);
   virtual ::java::awt::peer::TextFieldPeer * createTextField(::java::awt::TextField *);
 public:
+  virtual jboolean isModalExclusionTypeSupported(::java::awt::Dialog$ModalExclusionType *);
+  virtual jboolean isModalityTypeSupported(::java::awt::Dialog$ModalityType *);
   static ::java::lang::Class class$;
 };
 
index ce4e987158b933da76873c158fefac0c4c66c634..c4fc73fda58cbee06d965ac50b5fbce45f948c5e 100644 (file)
@@ -29,6 +29,7 @@ extern "Java"
   {
     namespace awt
     {
+        class Dialog;
         class Window;
     }
   }
@@ -39,6 +40,11 @@ class gnu::java::awt::peer::swing::SwingWindowPeer : public ::gnu::java::awt::pe
 
 public:
   SwingWindowPeer(::java::awt::Window *);
+  virtual void updateIconImages();
+  virtual void updateMinimumSize();
+  virtual void setModalBlocked(::java::awt::Dialog *, jboolean);
+  virtual void updateFocusableWindowState();
+  virtual void setAlwaysOnTop(jboolean);
   virtual void toBack() = 0;
   virtual void toFront() = 0;
   virtual void updateAlwaysOnTop() = 0;
index 92c1c55585fe934164ef41b342bff321a3fce4a8..18f522e9c6fe19069e27b8bffce4509c75164a31 100644 (file)
@@ -30,6 +30,7 @@ public:
   static jint mul(jint, jint, jint);
   static jint ceil(jint, jint);
   static jint floor(jint, jint);
+  static jint trunc(jint, jint);
   static jint round(jint, jint);
   static jfloat floatValue(jint, jint);
   static jdouble doubleValue(jint, jint);
diff --git a/libjava/gnu/javax/sound/AudioSecurityManager$Permission.h b/libjava/gnu/javax/sound/AudioSecurityManager$Permission.h
new file mode 100644 (file)
index 0000000..d8f3536
--- /dev/null
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_AudioSecurityManager$Permission__
+#define __gnu_javax_sound_AudioSecurityManager$Permission__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace javax
+    {
+      namespace sound
+      {
+          class AudioSecurityManager$Permission;
+      }
+    }
+  }
+}
+
+class gnu::javax::sound::AudioSecurityManager$Permission : public ::java::lang::Enum
+{
+
+  AudioSecurityManager$Permission(::java::lang::String *, jint);
+public:
+  static JArray< ::gnu::javax::sound::AudioSecurityManager$Permission * > * values();
+  static ::gnu::javax::sound::AudioSecurityManager$Permission * valueOf(::java::lang::String *);
+  static ::gnu::javax::sound::AudioSecurityManager$Permission * PLAY;
+  static ::gnu::javax::sound::AudioSecurityManager$Permission * RECORD;
+  static ::gnu::javax::sound::AudioSecurityManager$Permission * ALL;
+private:
+  static JArray< ::gnu::javax::sound::AudioSecurityManager$Permission * > * ENUM$VALUES;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_AudioSecurityManager$Permission__
diff --git a/libjava/gnu/javax/sound/AudioSecurityManager.h b/libjava/gnu/javax/sound/AudioSecurityManager.h
new file mode 100644 (file)
index 0000000..9d0ec83
--- /dev/null
@@ -0,0 +1,42 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_sound_AudioSecurityManager__
+#define __gnu_javax_sound_AudioSecurityManager__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace gnu
+  {
+    namespace javax
+    {
+      namespace sound
+      {
+          class AudioSecurityManager;
+          class AudioSecurityManager$Permission;
+      }
+    }
+  }
+}
+
+class gnu::javax::sound::AudioSecurityManager : public ::java::lang::Object
+{
+
+public:
+  AudioSecurityManager();
+  static void checkPermissions();
+  static void checkPermissions(::gnu::javax::sound::AudioSecurityManager$Permission *);
+public: // actually package-private
+  static JArray< jint > * $SWITCH_TABLE$gnu$javax$sound$AudioSecurityManager$Permission();
+private:
+  static JArray< jint > * $SWITCH_TABLE$gnu$javax$sound$AudioSecurityManager$Permission__;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_sound_AudioSecurityManager__
index e11ce621b4bde7aa55e8910cebe44d8b89b347ed..d634485b0ad5c8d81c73a8ca9f87e90928905d43 100644 (file)
@@ -68,6 +68,7 @@ public:
   virtual void setBuilding(jboolean);
   virtual void setCheckWellformedness(jboolean);
   virtual void setCheckingCharacters(jboolean);
+  virtual void setDefaultAttributes(jboolean);
   virtual ::java::lang::String * getNodeName();
   virtual ::org::w3c::dom::Element * getDocumentElement();
   virtual ::org::w3c::dom::DocumentType * getDoctype();
@@ -89,7 +90,7 @@ public:
   virtual ::org::w3c::dom::Element * createElement(::java::lang::String *);
   virtual ::org::w3c::dom::Element * createElementNS(::java::lang::String *, ::java::lang::String *);
 private:
-  void defaultAttributes(::org::w3c::dom::Element *, ::java::lang::String *);
+  void setDefaultAttributes(::org::w3c::dom::Element *, ::java::lang::String *);
 public:
   virtual ::org::w3c::dom::DocumentFragment * createDocumentFragment();
   virtual ::org::w3c::dom::Text * createTextNode(::java::lang::String *);
@@ -140,6 +141,9 @@ private:
   jboolean checkingCharacters;
 public: // actually package-private
   jboolean checkingWellformedness;
+private:
+  jboolean defaultAttributes;
+public: // actually package-private
   jboolean building;
   ::gnu::xml::dom::DomDocumentConfiguration * config;
   ::java::lang::String * inputEncoding;
index c26f2af4890c6b56d058c9626c551f5be83c1903..3d5f41bdeaf898b76b984c0dee9e166fc717ce45 100644 (file)
@@ -45,7 +45,7 @@ public:
   virtual ::org::w3c::dom::Node * setNamedItem(::org::w3c::dom::Node *);
   virtual ::org::w3c::dom::Node * setNamedItemNS(::org::w3c::dom::Node *);
 public: // actually package-private
-  virtual ::org::w3c::dom::Node * setNamedItem(::org::w3c::dom::Node *, jboolean);
+  virtual ::org::w3c::dom::Node * setNamedItem(::org::w3c::dom::Node *, jboolean, jboolean);
   virtual void reparent(::gnu::xml::dom::DomNode *, ::java::lang::String *, jint);
 public:
   virtual ::org::w3c::dom::Node * removeNamedItem(::java::lang::String *);
index 763284796a1f4eee121b49dd6132ee6b1dfdac02..dca589ac735a4bee35c5fac288123544aee3a401 100644 (file)
@@ -94,6 +94,8 @@ public:
   virtual ::java::lang::String * getNamespaceURI();
   virtual ::java::lang::String * getLocalName();
   virtual ::org::w3c::dom::Node * cloneNode(jboolean);
+private:
+  ::gnu::xml::dom::DomNode * cloneNodeDeepInternal(jboolean, ::gnu::xml::dom::DomDocument *);
 public: // actually package-private
   virtual void notifyUserDataHandlers(jshort, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *);
 public:
index 0b2b62aa653e1d65d3c742f020b9364eade836ab..3601ebebed4a3210801f4082cf4ffb775b42c90c 100644 (file)
@@ -29,6 +29,7 @@ public: // actually package-private
   XMLParser$Attribute(::gnu::xml::stream::XMLParser *, ::java::lang::String *, ::java::lang::String *, jboolean, ::java::lang::String *);
 public:
   virtual jboolean equals(::java::lang::Object *);
+  virtual ::java::lang::String * toString();
 public: // actually package-private
   ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
   ::java::lang::String * type;
index 02974e8c7ea08ee5841b92793c6363b9c69a53af..8e60bb573c23b9a217747c12ea10dba52c776812 100644 (file)
@@ -548,7 +548,7 @@ extern void _Jv_CallAnyMethodA (jobject obj,
                                jboolean is_constructor,
                                jboolean is_virtual_call,
                                JArray<jclass> *parameter_types,
-                               jvalue *args,
+                               const jvalue *args,
                                jvalue *result,
                                jboolean is_jni_call = true,
                                jclass iface = NULL);
diff --git a/libjava/java/awt/Dialog$ModalExclusionType.h b/libjava/java/awt/Dialog$ModalExclusionType.h
new file mode 100644 (file)
index 0000000..a47a2b4
--- /dev/null
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Dialog$ModalExclusionType__
+#define __java_awt_Dialog$ModalExclusionType__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace java
+  {
+    namespace awt
+    {
+        class Dialog$ModalExclusionType;
+    }
+  }
+}
+
+class java::awt::Dialog$ModalExclusionType : public ::java::lang::Enum
+{
+
+  Dialog$ModalExclusionType(::java::lang::String *, jint);
+public:
+  static JArray< ::java::awt::Dialog$ModalExclusionType * > * values();
+  static ::java::awt::Dialog$ModalExclusionType * valueOf(::java::lang::String *);
+  static ::java::awt::Dialog$ModalExclusionType * APPLICATION_EXCLUDE;
+  static ::java::awt::Dialog$ModalExclusionType * NO_EXCLUDE;
+  static ::java::awt::Dialog$ModalExclusionType * TOOLKIT_EXCLUDE;
+private:
+  static JArray< ::java::awt::Dialog$ModalExclusionType * > * ENUM$VALUES;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Dialog$ModalExclusionType__
diff --git a/libjava/java/awt/Dialog$ModalityType.h b/libjava/java/awt/Dialog$ModalityType.h
new file mode 100644 (file)
index 0000000..e7a3b73
--- /dev/null
@@ -0,0 +1,40 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_awt_Dialog$ModalityType__
+#define __java_awt_Dialog$ModalityType__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace java
+  {
+    namespace awt
+    {
+        class Dialog$ModalityType;
+    }
+  }
+}
+
+class java::awt::Dialog$ModalityType : public ::java::lang::Enum
+{
+
+  Dialog$ModalityType(::java::lang::String *, jint);
+public:
+  static JArray< ::java::awt::Dialog$ModalityType * > * values();
+  static ::java::awt::Dialog$ModalityType * valueOf(::java::lang::String *);
+  static ::java::awt::Dialog$ModalityType * APPLICATION_MODAL;
+  static ::java::awt::Dialog$ModalityType * DOCUMENT_MODAL;
+  static ::java::awt::Dialog$ModalityType * MODELESS;
+  static ::java::awt::Dialog$ModalityType * TOOLKIT_MODAL;
+private:
+  static JArray< ::java::awt::Dialog$ModalityType * > * ENUM$VALUES;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __java_awt_Dialog$ModalityType__
index 07c651f5837992d7e1cd8633debe98460703ea12..c3b46bf7c75d2fe028c9dfc8e1d041fbb7437120 100644 (file)
@@ -66,6 +66,9 @@ public: // actually package-private
 public:
   static ::java::awt::Font * getFont(::java::lang::String *, ::java::awt::Font *);
   static ::java::awt::Font * getFont(::java::lang::String *);
+public: // actually protected
+  Font(::java::awt::Font *);
+public:
   Font(::java::lang::String *, jint, jint);
   Font(::java::util::Map *);
 public: // actually package-private
@@ -80,6 +83,7 @@ public:
   virtual ::java::lang::String * getFamily();
   virtual jint getStyle();
   virtual jboolean canDisplay(jchar);
+  virtual jboolean canDisplay(jint);
   virtual jint canDisplayUpTo(::java::lang::String *);
   virtual jint canDisplayUpTo(JArray< jchar > *, jint, jint);
   virtual jint canDisplayUpTo(::java::text::CharacterIterator *, jint, jint);
@@ -123,6 +127,7 @@ public:
   virtual jboolean equals(::java::lang::Object *);
   virtual ::java::lang::String * toString();
   virtual ::java::awt::font::LineMetrics * getLineMetrics(::java::lang::String *, ::java::awt::font::FontRenderContext *);
+  virtual jboolean hasLayoutAttributes();
 private:
   void readObject(::java::io::ObjectInputStream *);
 public:
@@ -138,6 +143,11 @@ public:
   static const jint LAYOUT_RIGHT_TO_LEFT = 1;
   static const jint LAYOUT_NO_START_CONTEXT = 2;
   static const jint LAYOUT_NO_LIMIT_CONTEXT = 4;
+  static ::java::lang::String * DIALOG;
+  static ::java::lang::String * DIALOG_INPUT;
+  static ::java::lang::String * MONOSPACED;
+  static ::java::lang::String * SANS_SERIF;
+  static ::java::lang::String * SERIF;
 public: // actually protected
   ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
   jint size;
index 80528fe0571d9923939b60914572e91c71e1539a..844ebe81571b1d26c071476f0a402ea391b0cb15 100644 (file)
@@ -39,6 +39,8 @@ extern "Java"
         class Cursor;
         class Desktop;
         class Dialog;
+        class Dialog$ModalExclusionType;
+        class Dialog$ModalityType;
         class Dimension;
         class EventQueue;
         class FileDialog;
@@ -229,6 +231,8 @@ public: // actually package-private
   virtual void globalDispatchEvent(::java::awt::AWTEvent *);
 public:
   virtual ::java::util::Map * mapInputMethodHighlight(::java::awt::im::InputMethodHighlight *) = 0;
+  virtual jboolean isModalExclusionTypeSupported(::java::awt::Dialog$ModalExclusionType *) = 0;
+  virtual jboolean isModalityTypeSupported(::java::awt::Dialog$ModalityType *) = 0;
 private:
   static void initAccessibility();
   static ::java::lang::String * default_toolkit_name;
index 439fc50ca39ffbd0cb9a41bd98c4dff7aadd1797..82ef6c22d12db6b8b355105777e67fe0832747f2 100644 (file)
@@ -29,8 +29,12 @@ class java::awt::event::MouseEvent : public ::java::awt::event::InputEvent
 public:
   MouseEvent(::java::awt::Component *, jint, jlong, jint, jint, jint, jint, jboolean, jint);
   MouseEvent(::java::awt::Component *, jint, jlong, jint, jint, jint, jint, jboolean);
+  MouseEvent(::java::awt::Component *, jint, jlong, jint, jint, jint, jint, jint, jint, jboolean, jint);
   virtual jint getX();
   virtual jint getY();
+  virtual ::java::awt::Point * getLocationOnScreen();
+  virtual jint getXOnScreen();
+  virtual jint getYOnScreen();
   virtual ::java::awt::Point * getPoint();
   virtual void translatePoint(jint, jint);
   virtual jint getClickCount();
@@ -59,6 +63,8 @@ public:
 private:
   jint __attribute__((aligned(__alignof__( ::java::awt::event::InputEvent)))) x;
   jint y;
+  jint absX;
+  jint absY;
   jint clickCount;
   jint button;
   jboolean popupTrigger;
index 1f5c203e055e975302d9b797895d67d3fa70e2fe..781fd0e6fcba220db5987486064b9028e6200fbb 100644 (file)
@@ -46,6 +46,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::ButtonPeer : public ::java::lang::Object
@@ -104,6 +111,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index 503b48a561d723beca6d8b2588df6f8090e08645..2f9ba7c139836193ae13fd3f80b8cf94a4266453 100644 (file)
@@ -46,6 +46,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::CanvasPeer : public ::java::lang::Object
@@ -103,6 +110,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index a397322e4977365811e9025d7c2652673c527e3e..72e05ee204a82516e6abb8e6d40caf2e61687e33 100644 (file)
@@ -47,6 +47,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::CheckboxPeer : public ::java::lang::Object
@@ -107,6 +114,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index 78dca416d052109fec57be69cec304b10313ec32..9a152d69322a4cc12f05a925c61a5cae4869fb59 100644 (file)
@@ -46,6 +46,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::ChoicePeer : public ::java::lang::Object
@@ -108,6 +115,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index 3d3c22d9d2b456585bd5c3c5c8348d3c6258d66f..5bcd8876f4f067e4d827979bcc4e3259ea552d44 100644 (file)
@@ -46,6 +46,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::ComponentPeer : public ::java::lang::Object
@@ -103,6 +110,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index 6d6e9df45800d68b1c6eb631aeddc2dc3b588f66..d1d26a02bd8051444b96ef4af5f52c1ad0633883 100644 (file)
@@ -46,6 +46,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::ContainerPeer : public ::java::lang::Object
@@ -113,6 +120,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index 2212ec95bcbe8ae244b575be2e4011c11eb63f20..95f9e0c1c853d5eb2c31442effbbc6820b27cc17 100644 (file)
@@ -19,6 +19,7 @@ extern "Java"
         class Color;
         class Component;
         class Cursor;
+        class Dialog;
         class Dimension;
         class Font;
         class FontMetrics;
@@ -47,6 +48,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::DialogPeer : public ::java::lang::Object
@@ -59,6 +67,11 @@ public:
   virtual void toFront() = 0;
   virtual void updateAlwaysOnTop() = 0;
   virtual jboolean requestWindowFocus() = 0;
+  virtual void setAlwaysOnTop(jboolean) = 0;
+  virtual void updateFocusableWindowState() = 0;
+  virtual void setModalBlocked(::java::awt::Dialog *, jboolean) = 0;
+  virtual void updateMinimumSize() = 0;
+  virtual void updateIconImages() = 0;
   virtual ::java::awt::Insets * insets() = 0;
   virtual ::java::awt::Insets * getInsets() = 0;
   virtual void beginValidate() = 0;
@@ -120,6 +133,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index b2419e42f41ef1e757a546ba7b88ef731953af6a..22575b600419fac74b2931bddeb495f6ecf4a4e6 100644 (file)
@@ -19,6 +19,7 @@ extern "Java"
         class Color;
         class Component;
         class Cursor;
+        class Dialog;
         class Dimension;
         class Font;
         class FontMetrics;
@@ -47,6 +48,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::FileDialogPeer : public ::java::lang::Object
@@ -62,6 +70,11 @@ public:
   virtual void toFront() = 0;
   virtual void updateAlwaysOnTop() = 0;
   virtual jboolean requestWindowFocus() = 0;
+  virtual void setAlwaysOnTop(jboolean) = 0;
+  virtual void updateFocusableWindowState() = 0;
+  virtual void setModalBlocked(::java::awt::Dialog *, jboolean) = 0;
+  virtual void updateMinimumSize() = 0;
+  virtual void updateIconImages() = 0;
   virtual ::java::awt::Insets * insets() = 0;
   virtual ::java::awt::Insets * getInsets() = 0;
   virtual void beginValidate() = 0;
@@ -123,6 +136,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index a80ca5540f1baf1fa91533805f5ec338cb93a62d..e340e134b9d198601c0049d71cb0003788cfba45 100644 (file)
@@ -19,6 +19,7 @@ extern "Java"
         class Color;
         class Component;
         class Cursor;
+        class Dialog;
         class Dimension;
         class Font;
         class FontMetrics;
@@ -48,6 +49,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::FramePeer : public ::java::lang::Object
@@ -63,10 +71,16 @@ public:
   virtual void setMaximizedBounds(::java::awt::Rectangle *) = 0;
   virtual jboolean isRestackSupported() = 0;
   virtual void setBoundsPrivate(jint, jint, jint, jint) = 0;
+  virtual ::java::awt::Rectangle * getBoundsPrivate() = 0;
   virtual void toBack() = 0;
   virtual void toFront() = 0;
   virtual void updateAlwaysOnTop() = 0;
   virtual jboolean requestWindowFocus() = 0;
+  virtual void setAlwaysOnTop(jboolean) = 0;
+  virtual void updateFocusableWindowState() = 0;
+  virtual void setModalBlocked(::java::awt::Dialog *, jboolean) = 0;
+  virtual void updateMinimumSize() = 0;
+  virtual void updateIconImages() = 0;
   virtual ::java::awt::Insets * insets() = 0;
   virtual ::java::awt::Insets * getInsets() = 0;
   virtual void beginValidate() = 0;
@@ -127,6 +141,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index 426772d0e09ecd1a22314dd347f04bf687fa3cda..5247a0d09652846d95de7aee984e4a669b8b181b 100644 (file)
@@ -46,6 +46,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::LabelPeer : public ::java::lang::Object
@@ -105,6 +112,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index 9c743d97f3d419de60e45015684232a51c588a5f..b18182f82713cb78f55798dfaed0e48aa11fbfc6 100644 (file)
@@ -46,6 +46,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::LightweightPeer : public ::java::lang::Object
@@ -103,6 +110,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index 3dd6bad7aa217ad7e7e59124f57aa961ef040e10..0edfd62516805f45f58165b6b40535a9aad3d213 100644 (file)
@@ -48,6 +48,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::ListPeer : public ::java::lang::Object
@@ -120,6 +127,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index 57e4ff7687adf6e5db656f5c4f3dcac1f99877d8..b90c0570aa1387c126d6159319e55ea364d4ddb1 100644 (file)
@@ -47,6 +47,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::PanelPeer : public ::java::lang::Object
@@ -114,6 +121,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index f0f810ae384304ec61c3b1403ef4470f726aca07..7947c5031c3357e9d01039d9ed8bdb1ae586619a 100644 (file)
@@ -36,6 +36,7 @@ public:
   virtual void keyRelease(jint) = 0;
   virtual jint getRGBPixel(jint, jint) = 0;
   virtual JArray< jint > * getRGBPixels(::java::awt::Rectangle *) = 0;
+  virtual void dispose() = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index f6387a5046859b0b2ef474e7bb5c210876a68017..25f9431f549c3d32c873ba383239deb3b01fd40e 100644 (file)
@@ -48,6 +48,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::ScrollPanePeer : public ::java::lang::Object
@@ -121,6 +128,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index 9e0c7c76c1bad94c11eac9c86ea3f3ab9b57f1e4..b030ca5d90f02b527aac2ec20d58d8fccc01d722 100644 (file)
@@ -46,6 +46,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::ScrollbarPeer : public ::java::lang::Object
@@ -106,6 +113,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index 1954909b9bc1e8153a0a7968c22d3e48cdfefaad..24fb100d711029ed961372627d3fcfa983db3a8c 100644 (file)
@@ -50,6 +50,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::TextAreaPeer : public ::java::lang::Object
@@ -127,6 +134,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index 37e0310bde1a270f77b6cb6e46f67b04ac4c021c..71afe17f5a02a7ee36d3e15485b75ccee46bca88 100644 (file)
@@ -50,6 +50,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::TextComponentPeer : public ::java::lang::Object
@@ -119,6 +126,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index a3718929d641ff5778b4fbbdbf4b36701ded61de..a2785b1b6bcfe2dc22f3447c26a07f248351cbea 100644 (file)
@@ -50,6 +50,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::TextFieldPeer : public ::java::lang::Object
@@ -125,6 +132,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index c900a1cecab037e9e386b6d56b8ccf12507923fa..0257d8cb88cefd541a21b4de3a162c72a555c15e 100644 (file)
@@ -19,6 +19,7 @@ extern "Java"
         class Color;
         class Component;
         class Cursor;
+        class Dialog;
         class Dimension;
         class Font;
         class FontMetrics;
@@ -47,6 +48,13 @@ extern "Java"
       }
     }
   }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
 }
 
 class java::awt::peer::WindowPeer : public ::java::lang::Object
@@ -57,6 +65,11 @@ public:
   virtual void toFront() = 0;
   virtual void updateAlwaysOnTop() = 0;
   virtual jboolean requestWindowFocus() = 0;
+  virtual void setAlwaysOnTop(jboolean) = 0;
+  virtual void updateFocusableWindowState() = 0;
+  virtual void setModalBlocked(::java::awt::Dialog *, jboolean) = 0;
+  virtual void updateMinimumSize() = 0;
+  virtual void updateIconImages() = 0;
   virtual ::java::awt::Insets * insets() = 0;
   virtual ::java::awt::Insets * getInsets() = 0;
   virtual void beginValidate() = 0;
@@ -118,6 +131,7 @@ public:
   virtual void setBounds(jint, jint, jint, jint, jint) = 0;
   virtual jboolean isReparentSupported() = 0;
   virtual void layout() = 0;
+  virtual jboolean requestFocus(::java::awt::Component *, jboolean, jboolean, jlong, ::sun::awt::CausedFocusEvent$Cause *) = 0;
   static ::java::lang::Class class$;
 } __attribute__ ((java_interface));
 
index 58e7ba9bbcce90cc06ce64df1fb454e3e005b001..fec037b2cf1bf1b67c08d4704580b65504f22a50 100644 (file)
@@ -16,6 +16,8 @@ public: // actually package-private
   static jint floatToIntBits(jfloat);
   static jint floatToRawIntBits(jfloat);
   static jfloat intBitsToFloat(jint);
+  static ::java::lang::String * toString(jfloat);
+  static jfloat parseFloat(::java::lang::String *);
 public:
   static ::java::lang::Class class$;
 };
index a6570f929c6b6fe20216c43fc02edef3a76788e2..72a8c3c6b18ed43554fccbecc350945887afbeed 100644 (file)
@@ -96,4 +96,26 @@ final class VMFloat
    */
   static native float intBitsToFloat(int bits);
 
+  /**
+   * @param f the <code>float</code> to convert
+   * @return the <code>String</code> representing the <code>float</code>
+   */
+  static String toString(float f)
+  {
+    return VMDouble.toString(f, true);
+  }
+
+  /**
+   * @param str the <code>String</code> to convert
+   * @return the <code>float</code> value of <code>s</code>
+   * @throws NumberFormatException if <code>str</code> cannot be parsed as a
+   *         <code>float</code>
+   * @throws NullPointerException if <code>str</code> is null
+   */
+  static float parseFloat(String str)
+  {
+    // XXX Rounding parseDouble() causes some errors greater than 1 ulp from
+    // the infinitely precise decimal.
+    return (float) Double.parseDouble(str);
+  }
 } // class VMFloat
index 4593da7f49e373a16a491b57c4930c6a7a002f70..d95c92f846863e831d7461e109c9e9eeacd836c1 100644 (file)
@@ -359,7 +359,7 @@ _Jv_CallAnyMethodA (jobject obj,
                    jboolean is_constructor,
                    jboolean is_virtual_call,
                    JArray<jclass> *parameter_types,
-                   jvalue *args,
+                   const jvalue *args,
                    jvalue *result,
                    jboolean is_jni_call,
                    jclass iface)
diff --git a/libjava/java/nio/CharSequenceBuffer.h b/libjava/java/nio/CharSequenceBuffer.h
new file mode 100644 (file)
index 0000000..b46b2b6
--- /dev/null
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_nio_CharSequenceBuffer__
+#define __java_nio_CharSequenceBuffer__
+
+#pragma interface
+
+#include <java/nio/CharBuffer.h>
+extern "Java"
+{
+  namespace java
+  {
+    namespace nio
+    {
+        class ByteOrder;
+        class CharBuffer;
+        class CharSequenceBuffer;
+    }
+  }
+}
+
+class java::nio::CharSequenceBuffer : public ::java::nio::CharBuffer
+{
+
+public: // actually package-private
+  CharSequenceBuffer(::java::lang::CharSequence *, jint, jint, jint, jint, jint);
+  CharSequenceBuffer(::java::lang::CharSequence *, jint, jint);
+public:
+  ::java::nio::CharBuffer * asReadOnlyBuffer();
+  ::java::nio::CharBuffer * compact();
+  ::java::nio::CharBuffer * duplicate();
+  jchar get();
+  jchar get(jint);
+  jboolean isDirect();
+  ::java::nio::ByteOrder * order();
+  ::java::nio::CharBuffer * put(jchar);
+  ::java::nio::CharBuffer * put(jint, jchar);
+  ::java::nio::CharBuffer * slice();
+  ::java::lang::CharSequence * subSequence(jint, jint);
+  jboolean isReadOnly();
+private:
+  ::java::lang::CharSequence * __attribute__((aligned(__alignof__( ::java::nio::CharBuffer)))) charSequence;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __java_nio_CharSequenceBuffer__
index 19a0dbfcd1a323ab038110999849c8c90ee499f6..d4288807e5067a925ce7d5a07cca88c37888278f 100644 (file)
@@ -51,6 +51,9 @@ public:
   virtual jboolean isDomainPattern();
   virtual jboolean isPattern();
   virtual jboolean isPropertyPattern();
+  virtual jboolean isPropertyListPattern();
+  virtual jboolean isPropertyValuePattern();
+  virtual jboolean isPropertyValuePattern(::java::lang::String *);
   static ::java::lang::String * quote(::java::lang::String *);
   virtual void setMBeanServer(::javax::management::MBeanServer *);
   virtual ::java::lang::String * toString();
@@ -67,7 +70,8 @@ private:
   ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) domain;
   ::java::util::TreeMap * properties;
   ::java::lang::String * propertyListString;
-  jboolean propertyPattern;
+  jboolean propertyListPattern;
+  jboolean propertyValuePattern;
   ::javax::management::MBeanServer * server;
 public:
   static ::java::lang::Class class$;
index d0c3036538ed3ece33c25624e9cac41d0feb0f6e..1833eb7f34509ce92bb5fe9acf0c830c69f2d909 100644 (file)
@@ -17,7 +17,7 @@ details.  */
 using namespace gcj;
 
 // Forward declarations.
-extern struct JNIInvokeInterface _Jv_JNI_InvokeFunctions;
+extern struct JNIInvokeInterface_ _Jv_JNI_InvokeFunctions;
 extern jint JNICALL _Jv_JNI_AttachCurrentThread (JavaVM *vm,
                                                  void **penv, void *args);
 extern JavaVM *_Jv_the_vm;
index 8660753ee9b31f7f631121b4b8eaea9c3fbcd734..a65952bedc9e61489f0d32a0e317c21e2e729770 100644 (file)
@@ -70,8 +70,8 @@ enum invocation_type
 };
 
 // Forward declarations.
-extern struct JNINativeInterface _Jv_JNIFunctions;
-extern struct JNIInvokeInterface _Jv_JNI_InvokeFunctions;
+extern struct JNINativeInterface_ _Jv_JNIFunctions;
+extern struct JNIInvokeInterface_ _Jv_JNI_InvokeFunctions;
 
 // Number of slots in the default frame.  The VM must allow at least
 // 16.
@@ -873,7 +873,7 @@ _Jv_JNI_CallAnyMethod (JNIEnv *env, jobject obj, jclass klass,
 template<typename T, invocation_type style>
 static T JNICALL
 _Jv_JNI_CallAnyMethodA (JNIEnv *env, jobject obj, jclass klass,
-                       jmethodID id, jvalue *args)
+                       jmethodID id, const jvalue *args)
 {
   obj = unwrap (obj);
   klass = unwrap (klass);
@@ -970,7 +970,7 @@ _Jv_JNI_CallAnyVoidMethod (JNIEnv *env, jobject obj, jclass klass,
 template<invocation_type style>
 static void JNICALL
 _Jv_JNI_CallAnyVoidMethodA (JNIEnv *env, jobject obj, jclass klass,
-                           jmethodID id, jvalue *args)
+                           jmethodID id, const jvalue *args)
 {
   jclass decl_class = klass ? klass : obj->getClass ();
   JvAssert (decl_class != NULL);
@@ -1035,7 +1035,7 @@ _Jv_JNI_CallMethod (JNIEnv *env, jobject obj, jmethodID id, ...)
 template<typename T>
 static T JNICALL
 _Jv_JNI_CallMethodA (JNIEnv *env, jobject obj, 
-                    jmethodID id, jvalue *args)
+                    jmethodID id, const jvalue *args)
 {
   return _Jv_JNI_CallAnyMethodA<T, normal> (env, obj, NULL, id, args);
 }
@@ -1059,7 +1059,7 @@ _Jv_JNI_CallVoidMethod (JNIEnv *env, jobject obj, jmethodID id, ...)
 
 static void JNICALL
 _Jv_JNI_CallVoidMethodA (JNIEnv *env, jobject obj, 
-                        jmethodID id, jvalue *args)
+                        jmethodID id, const jvalue *args)
 {
   _Jv_JNI_CallAnyVoidMethodA<normal> (env, obj, NULL, id, args);
 }
@@ -1103,7 +1103,7 @@ _Jv_JNI_CallStaticMethod (JNIEnv *env, jclass klass,
 template<typename T>
 static T JNICALL
 _Jv_JNI_CallStaticMethodA (JNIEnv *env, jclass klass, jmethodID id,
-                          jvalue *args)
+                          const jvalue *args)
 {
   JvAssert (((id->accflags) & java::lang::reflect::Modifier::STATIC));
   JvAssert (java::lang::Class::class$.isInstance (unwrap (klass)));
@@ -1131,7 +1131,7 @@ _Jv_JNI_CallStaticVoidMethod (JNIEnv *env, jclass klass,
 
 static void JNICALL
 _Jv_JNI_CallStaticVoidMethodA (JNIEnv *env, jclass klass, 
-                              jmethodID id, jvalue *args)
+                              jmethodID id, const jvalue *args)
 {
   _Jv_JNI_CallAnyVoidMethodA<static_type> (env, NULL, klass, id, args);
 }
@@ -1174,7 +1174,7 @@ _Jv_JNI_NewObject (JNIEnv *env, jclass klass, jmethodID id, ...)
 
 static jobject JNICALL
 _Jv_JNI_NewObjectA (JNIEnv *env, jclass klass, jmethodID id,
-                   jvalue *args)
+                   const jvalue *args)
 {
   JvAssert (klass && ! klass->isArray ());
   JvAssert (! strcmp (id->name->chars(), "<init>")
@@ -1577,7 +1577,7 @@ _Jv_JNI_GetPrimitiveArrayRegion (JNIEnv *env, JArray<T> *array,
 template<typename T, jclass K>
 static void JNICALL
 _Jv_JNI_SetPrimitiveArrayRegion (JNIEnv *env, JArray<T> *array,
-                                jsize start, jsize len, T *buf)
+                                jsize start, jsize len, const T *buf)
 {
   array = unwrap (array);
   if (! _Jv_JNI_check_types (env, array, K))
@@ -2593,7 +2593,7 @@ _Jv_JNI_GetJavaVM (JNIEnv *, JavaVM **vm)
 
 #define RESERVED NULL
 
-struct JNINativeInterface _Jv_JNIFunctions =
+struct JNINativeInterface_ _Jv_JNIFunctions =
 {
   RESERVED,
   RESERVED,
@@ -2876,7 +2876,7 @@ struct JNINativeInterface _Jv_JNIFunctions =
   _Jv_JNI_GetDirectBufferCapacity          // GetDirectBufferCapacity
 };
 
-struct JNIInvokeInterface _Jv_JNI_InvokeFunctions =
+struct JNIInvokeInterface_ _Jv_JNI_InvokeFunctions =
 {
   RESERVED,
   RESERVED,
index b1789a16d89cacbd9b8b9afa558433ae655b93c2..988770a61e67c18d43e5ef4be93a7e61a24322f6 100755 (executable)
@@ -73,6 +73,7 @@ set package_map(gnu/java/awt/peer/qt) bc
 set package_map(gnu/java/awt/peer/x) bc
 set package_map(gnu/java/util/prefs/gconf) bc
 set package_map(gnu/javax/sound/midi) bc
+set package_map(gnu/javax/sound/sampled/gstreamer) ignore
 set package_map(org/xml) bc
 set package_map(org/w3c) bc
 set package_map(org/relaxng) bc
@@ -149,6 +150,9 @@ set properties_map(META-INF/services/javax.xml.parsers.TransformerFactory) _
 set properties_map(META-INF/services/org.relaxng.datatype.DatatypeLibraryFactory) _
 set properties_map(META-INF/services/org.w3c.dom.DOMImplementationSourceList) _
 set properties_map(META-INF/services/org.xml.sax.driver) _
+set properties_map(META-INF/services/javax.sound.sampled.spi.AudioFileReader.in) ignore
+set properties_map(META-INF/services/javax.sound.sampled.spi.MixerProvider) ignore
+set properties_map(META-INF/services/javax.sound.sampled.spi.MixerProvider.in) ignore
 
 # List of all properties files.
 set properties_files {}
index 41f23fcdd9f3bfbf7dba3f57bacfdb4e5cc75a1e..f96412be2e657f4263e0298fb7008f7e363c2f54 100644 (file)
@@ -800,12 +800,14 @@ 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/Pixelizer.java \
 classpath/gnu/java/awt/java2d/PolyEdge.java \
 classpath/gnu/java/awt/java2d/PolyEdgeComparator.java \
 classpath/gnu/java/awt/java2d/QuadSegment.java \
 classpath/gnu/java/awt/java2d/RasterGraphics.java \
 classpath/gnu/java/awt/java2d/Scanline.java \
 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/TexturePaintContext.java
@@ -960,6 +962,7 @@ gnu-java-awt-peer-qt.lo: $(gnu_java_awt_peer_qt_source_files)
 gnu_java_awt_peer_swing_source_files = \
 classpath/gnu/java/awt/peer/swing/SwingButtonPeer.java \
 classpath/gnu/java/awt/peer/swing/SwingCanvasPeer.java \
+classpath/gnu/java/awt/peer/swing/SwingCheckboxPeer.java \
 classpath/gnu/java/awt/peer/swing/SwingComponent.java \
 classpath/gnu/java/awt/peer/swing/SwingComponentPeer.java \
 classpath/gnu/java/awt/peer/swing/SwingContainerPeer.java \
@@ -984,20 +987,19 @@ 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/XFontPeer.java \
 classpath/gnu/java/awt/peer/x/XFontPeer2.java \
 classpath/gnu/java/awt/peer/x/XFramePeer.java \
-classpath/gnu/java/awt/peer/x/XGraphics.java \
 classpath/gnu/java/awt/peer/x/XGraphics2D.java \
 classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java \
 classpath/gnu/java/awt/peer/x/XGraphicsDevice.java \
 classpath/gnu/java/awt/peer/x/XGraphicsEnvironment.java \
 classpath/gnu/java/awt/peer/x/XImage.java \
-classpath/gnu/java/awt/peer/x/XLightweightPeer.java \
 classpath/gnu/java/awt/peer/x/XToolkit.java \
-classpath/gnu/java/awt/peer/x/XWindowPeer.java
+classpath/gnu/java/awt/peer/x/XWindowPeer.java \
+classpath/gnu/java/awt/peer/x/ZPixmapDataBuffer.java
 
 gnu-java-awt-peer-x.lo: $(gnu_java_awt_peer_x_source_files)
        @find $(srcdir)/classpath/lib/gnu/java/awt/peer/x -name '*.class' > gnu-java-awt-peer-x.list
@@ -3335,6 +3337,18 @@ gnu/javax/security/auth/login.list: $(gnu_javax_security_auth_login_source_files
 -include gnu/javax/security/auth/login.deps
 
 
+gnu_javax_sound_source_files = \
+classpath/gnu/javax/sound/AudioSecurityManager.java
+
+gnu_javax_sound_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_sound_source_files)))
+
+gnu/javax/sound.list: $(gnu_javax_sound_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       echo $(srcdir)/classpath/lib/gnu/javax/sound/*.class > gnu/javax/sound.list
+
+-include gnu/javax/sound.deps
+
+
 gnu_javax_sound_midi_source_files = \
 classpath/gnu/javax/sound/midi/alsa/AlsaInputPortDevice.java \
 classpath/gnu/javax/sound/midi/alsa/AlsaMidiDeviceProvider.java \
@@ -5015,6 +5029,7 @@ classpath/java/nio/ByteBufferImpl.java \
 classpath/java/nio/ByteOrder.java \
 classpath/java/nio/CharBuffer.java \
 classpath/java/nio/CharBufferImpl.java \
+classpath/java/nio/CharSequenceBuffer.java \
 classpath/java/nio/CharViewBufferImpl.java \
 java/nio/DirectByteBufferImpl.java \
 classpath/java/nio/DoubleBuffer.java \
@@ -8462,6 +8477,18 @@ org-xml.lo: $(org_xml_source_files)
        $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni -findirect-dispatch -fno-indirect-classes -c -o org-xml.lo @org-xml.list
        @rm -f org-xml.list
 
+sun_awt_source_files = \
+classpath/sun/awt/CausedFocusEvent.java
+
+sun_awt_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(sun_awt_source_files)))
+
+sun/awt.list: $(sun_awt_source_files)
+       @$(mkinstalldirs) $(dir $@)
+       echo $(srcdir)/classpath/lib/sun/awt/*.class > sun/awt.list
+
+-include sun/awt.deps
+
+
 sun_misc_source_files = \
 classpath/sun/misc/Service.java \
 classpath/sun/misc/ServiceConfigurationError.java \
@@ -8688,6 +8715,7 @@ all_packages_source_files = \
   gnu/javax/security/auth.list \
   gnu/javax/security/auth/callback.list \
   gnu/javax/security/auth/login.list \
+  gnu/javax/sound.list \
   gnu/javax/sound/sampled/AU.list \
   gnu/javax/sound/sampled/WAV.list \
   gnu/javax/swing/plaf/gnu.list \
@@ -8809,6 +8837,7 @@ all_packages_source_files = \
   javax/transaction.list \
   javax/transaction/xa.list \
   org/ietf/jgss.list \
+  sun/awt.list \
   sun/misc.list \
   sun/reflect.list \
   sun/reflect/annotation.list \
@@ -8934,6 +8963,7 @@ ordinary_header_files = \
   $(gnu_javax_security_auth_header_files) \
   $(gnu_javax_security_auth_callback_header_files) \
   $(gnu_javax_security_auth_login_header_files) \
+  $(gnu_javax_sound_header_files) \
   $(gnu_javax_sound_sampled_AU_header_files) \
   $(gnu_javax_sound_sampled_WAV_header_files) \
   $(gnu_javax_swing_plaf_gnu_header_files) \
@@ -9050,6 +9080,7 @@ ordinary_header_files = \
   $(javax_transaction_header_files) \
   $(javax_transaction_xa_header_files) \
   $(org_ietf_jgss_header_files) \
+  $(sun_awt_header_files) \
   $(sun_misc_header_files) \
   $(sun_reflect_header_files) \
   $(sun_reflect_annotation_header_files) \
diff --git a/libjava/sun/awt/CausedFocusEvent$Cause.h b/libjava/sun/awt/CausedFocusEvent$Cause.h
new file mode 100644 (file)
index 0000000..d342fc6
--- /dev/null
@@ -0,0 +1,50 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __sun_awt_CausedFocusEvent$Cause__
+#define __sun_awt_CausedFocusEvent$Cause__
+
+#pragma interface
+
+#include <java/lang/Enum.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent$Cause;
+    }
+  }
+}
+
+class sun::awt::CausedFocusEvent$Cause : public ::java::lang::Enum
+{
+
+  CausedFocusEvent$Cause(::java::lang::String *, jint);
+public:
+  static JArray< ::sun::awt::CausedFocusEvent$Cause * > * values();
+  static ::sun::awt::CausedFocusEvent$Cause * valueOf(::java::lang::String *);
+  static ::sun::awt::CausedFocusEvent$Cause * UNKNOWN;
+  static ::sun::awt::CausedFocusEvent$Cause * MOUSE_EVENT;
+  static ::sun::awt::CausedFocusEvent$Cause * TRAVERSAL;
+  static ::sun::awt::CausedFocusEvent$Cause * TRAVERSAL_UP;
+  static ::sun::awt::CausedFocusEvent$Cause * TRAVERSAL_DOWN;
+  static ::sun::awt::CausedFocusEvent$Cause * TRAVERSAL_FORWARD;
+  static ::sun::awt::CausedFocusEvent$Cause * TRAVERSAL_BACKWARD;
+  static ::sun::awt::CausedFocusEvent$Cause * MANUAL_REQUEST;
+  static ::sun::awt::CausedFocusEvent$Cause * AUTOMATIC_TRAVERSE;
+  static ::sun::awt::CausedFocusEvent$Cause * ROLLBACK;
+  static ::sun::awt::CausedFocusEvent$Cause * NATIVE_SYSTEM;
+  static ::sun::awt::CausedFocusEvent$Cause * ACTIVATION;
+  static ::sun::awt::CausedFocusEvent$Cause * CLEAR_GLOBAL_FOCUS_OWNER;
+  static ::sun::awt::CausedFocusEvent$Cause * RETARGETED;
+private:
+  static JArray< ::sun::awt::CausedFocusEvent$Cause * > * ENUM$VALUES;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __sun_awt_CausedFocusEvent$Cause__
diff --git a/libjava/sun/awt/CausedFocusEvent.h b/libjava/sun/awt/CausedFocusEvent.h
new file mode 100644 (file)
index 0000000..b6575e7
--- /dev/null
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __sun_awt_CausedFocusEvent__
+#define __sun_awt_CausedFocusEvent__
+
+#pragma interface
+
+#include <java/awt/event/FocusEvent.h>
+extern "Java"
+{
+  namespace java
+  {
+    namespace awt
+    {
+        class Component;
+    }
+  }
+  namespace sun
+  {
+    namespace awt
+    {
+        class CausedFocusEvent;
+        class CausedFocusEvent$Cause;
+    }
+  }
+}
+
+class sun::awt::CausedFocusEvent : public ::java::awt::event::FocusEvent
+{
+
+public:
+  CausedFocusEvent(::java::awt::Component *, jint, jboolean, ::java::awt::Component *, ::sun::awt::CausedFocusEvent$Cause *);
+  virtual ::sun::awt::CausedFocusEvent$Cause * getCause();
+private:
+  ::sun::awt::CausedFocusEvent$Cause * __attribute__((aligned(__alignof__( ::java::awt::event::FocusEvent)))) cause;
+public:
+  static ::java::lang::Class class$;
+};
+
+#endif // __sun_awt_CausedFocusEvent__