From a1906e8bbfa426ed1adfe751608bc74f1d4d2ab7 Mon Sep 17 00:00:00 2001 From: Matthias Klose Date: Wed, 19 Dec 2012 17:03:15 +0000 Subject: [PATCH] Import GNU Classpath (20121202). 2012-12-19 Matthias Klose Import GNU Classpath (20121202). * Regenerate class and header files. * Regenerate auto* files. * sources.am, gcj/javaprims.h: Regenerate. * gnu/java/nio/FileLockImpl.java (close): New override. From-SVN: r194618 --- libjava/ChangeLog | 9 + libjava/classpath/ChangeLog | 974 ++++++++- libjava/classpath/ChangeLog.gcj | 5 + libjava/classpath/INSTALL | 9 +- libjava/classpath/Makefile.in | 18 +- libjava/classpath/NEWS | 25 +- libjava/classpath/THANKYOU | 4 + libjava/classpath/aclocal.m4 | 6 +- libjava/classpath/config.sub | 42 +- libjava/classpath/configure | 323 ++- libjava/classpath/configure.ac | 14 +- libjava/classpath/depcomp | 74 +- libjava/classpath/doc/Makefile.am | 6 +- libjava/classpath/doc/Makefile.in | 25 +- libjava/classpath/doc/api/Makefile.in | 8 +- libjava/classpath/doc/cp-tools.texinfo | 4 +- libjava/classpath/doc/texinfo.tex | 1916 ++++++----------- libjava/classpath/examples/Makefile.in | 8 +- libjava/classpath/external/Makefile.in | 8 +- libjava/classpath/external/jsr166/Makefile.in | 8 +- .../external/relaxngDatatype/Makefile.in | 8 +- libjava/classpath/external/sax/Makefile.in | 8 +- .../sax/org/xml/sax/ext/EntityResolver2.java | 2 +- .../sax/org/xml/sax/ext/Locator2Impl.java | 2 +- .../org/xml/sax/helpers/XMLReaderAdapter.java | 2 +- .../classpath/external/w3c_dom/Makefile.in | 8 +- .../classpath/gnu/java/nio/FileLockImpl.java | 5 + .../gnu/java/text/AttributedFormatBuffer.java | 61 +- .../classpath/gnu/java/text/FormatBuffer.java | 17 +- .../java/text/FormatCharacterIterator.java | 223 +- .../gnu/java/text/StringFormatBuffer.java | 19 +- .../midi/dssi/DSSIMidiDeviceProvider.java | 21 +- .../sound/midi/dssi/DSSISynthesizer.java | 27 +- .../javax/sound/midi/file/MidiFileReader.java | 4 +- .../javax/sound/midi/file/MidiFileWriter.java | 4 +- .../javax/sound/sampled/WAV/WAVReader.java | 6 +- .../sampled/gstreamer/GStreamerMixer.java | 4 +- .../gnu/xml/transform/SAXSerializer.java | 3 +- libjava/classpath/include/Makefile.in | 8 +- libjava/classpath/install-sh | 29 +- libjava/classpath/java/awt/geom/Area.java | 226 +- libjava/classpath/java/beans/XMLDecoder.java | 1 + libjava/classpath/java/beans/XMLEncoder.java | 4 +- libjava/classpath/java/io/Closeable.java | 1 + libjava/classpath/java/io/ObjectInput.java | 3 +- .../classpath/java/io/ObjectInputStream.java | 3 +- libjava/classpath/java/io/ObjectOutput.java | 3 +- .../classpath/java/lang/AssertionError.java | 14 +- .../classpath/java/lang/AutoCloseable.java | 50 + libjava/classpath/java/lang/Boolean.java | 15 + libjava/classpath/java/lang/Byte.java | 17 + libjava/classpath/java/lang/Character.java | 17 + .../java/lang/ClassNotFoundException.java | 6 +- .../java/lang/IllegalAccessException.java | 6 +- .../java/lang/InstantiationException.java | 6 +- libjava/classpath/java/lang/Integer.java | 17 + libjava/classpath/java/lang/LinkageError.java | 17 +- libjava/classpath/java/lang/Long.java | 17 + .../java/lang/NoSuchFieldException.java | 6 +- .../java/lang/NoSuchMethodException.java | 6 +- .../lang/ReflectiveOperationException.java | 88 + libjava/classpath/java/lang/Short.java | 17 + libjava/classpath/java/lang/String.java | 6 +- libjava/classpath/java/lang/System.java | 12 + .../reflect/InvocationTargetException.java | 6 +- .../classpath/java/lang/reflect/Member.java | 2 +- .../classpath/java/lang/reflect/Modifier.java | 42 +- .../classpath/java/nio/channels/FileLock.java | 1 + libjava/classpath/java/sql/Connection.java | 1 + libjava/classpath/java/sql/ResultSet.java | 1 + libjava/classpath/java/sql/Statement.java | 1 + .../classpath/java/text/AttributedString.java | 44 +- .../java/text/AttributedStringIterator.java | 43 +- libjava/classpath/java/text/Bidi.java | 26 +- .../classpath/java/text/BreakIterator.java | 4 +- libjava/classpath/java/text/ChoiceFormat.java | 8 +- .../java/text/CollationElementIterator.java | 73 +- .../java/text/DateFormatSymbols.java | 315 ++- .../classpath/java/text/DecimalFormat.java | 6 +- .../classpath/java/text/MessageFormat.java | 3 +- libjava/classpath/java/text/NumberFormat.java | 3 +- libjava/classpath/java/util/Collections.java | 32 +- libjava/classpath/java/util/Formatter.java | 21 +- libjava/classpath/java/util/TimeZone.java | 52 +- .../classpath/java/util/regex/Matcher.java | 24 +- .../activation/ActivationDataFlavor.java | 6 +- .../activation/MimeTypeParameterList.java | 2 +- .../management/DefaultLoaderRepository.java | 4 +- .../management/MBeanConstructorInfo.java | 2 +- .../management/remote/rmi/RMIConnection.java | 20 +- .../classpath/javax/security/sasl/Sasl.java | 10 + .../javax/sound/midi/MetaMessage.java | 6 +- .../javax/sound/midi/MidiDevice.java | 1 + .../javax/sound/midi/MidiSystem.java | 71 +- .../classpath/javax/sound/midi/Receiver.java | 1 + .../javax/sound/midi/SoundbankResource.java | 4 +- libjava/classpath/javax/sound/midi/Track.java | 12 +- .../javax/sound/midi/Transmitter.java | 1 + .../javax/sound/sampled/AudioSystem.java | 83 +- .../classpath/javax/sound/sampled/Line.java | 5 +- .../swing/tree/DefaultMutableTreeNode.java | 38 +- .../classpath/javax/swing/tree/TreeNode.java | 2 +- .../javax/xml/namespace/NamespaceContext.java | 2 +- .../javax/xml/stream/XMLEventFactory.java | 10 +- .../javax/xml/stream/XMLEventReader.java | 2 +- .../javax/xml/stream/events/DTD.java | 4 +- .../javax/xml/stream/events/EndElement.java | 2 +- .../javax/xml/stream/events/StartElement.java | 4 +- .../javax/xml/xpath/XPathFunction.java | 2 +- libjava/classpath/lib/Makefile.in | 8 +- .../gnu/java/beans/editors/ColorEditor.class | Bin 2251 -> 2251 bytes .../lib/gnu/java/locale/LocaleData.class | Bin 7402 -> 7402 bytes .../lib/gnu/java/nio/FileLockImpl.class | Bin 1125 -> 1233 bytes .../java/text/AttributedFormatBuffer.class | Bin 4282 -> 4924 bytes .../lib/gnu/java/text/FormatBuffer.class | Bin 752 -> 896 bytes .../java/text/FormatCharacterIterator.class | Bin 7254 -> 9268 bytes .../gnu/java/text/StringFormatBuffer.class | Bin 2445 -> 2733 bytes .../midi/dssi/DSSIMidiDeviceProvider$1.class | Bin 748 -> 748 bytes .../DSSIMidiDeviceProvider$DSSIInfo.class | Bin 897 -> 959 bytes .../midi/dssi/DSSIMidiDeviceProvider.class | Bin 3143 -> 3447 bytes .../DSSISynthesizer$DSSIMidiChannel.class | Bin 3148 -> 3148 bytes .../dssi/DSSISynthesizer$DSSIReceiver.class | Bin 1835 -> 1835 bytes .../dssi/DSSISynthesizer$DSSISoundbank.class | Bin 2595 -> 2819 bytes .../sound/midi/dssi/DSSISynthesizer.class | Bin 6391 -> 6612 bytes .../sampled/gstreamer/GStreamerMixer.class | Bin 4522 -> 4588 bytes .../lib/gnu/xml/transform/SAXSerializer.class | Bin 6494 -> 6526 bytes .../Area$AreaIterator$IteratorSegment.class | Bin 630 -> 630 bytes .../lib/java/awt/geom/Area$AreaIterator.class | Bin 2499 -> 2685 bytes .../lib/java/awt/geom/Area$CubicSegment.class | Bin 8483 -> 8483 bytes .../lib/java/awt/geom/Area$Intersection.class | Bin 722 -> 722 bytes .../lib/java/awt/geom/Area$LineSegment.class | Bin 5372 -> 5372 bytes .../lib/java/awt/geom/Area$QuadSegment.class | Bin 6187 -> 6187 bytes .../lib/java/awt/geom/Area$Segment.class | Bin 6182 -> 6350 bytes .../classpath/lib/java/awt/geom/Area.class | Bin 23671 -> 24352 bytes .../classpath/lib/java/beans/XMLDecoder.class | Bin 2926 -> 2957 bytes .../classpath/lib/java/beans/XMLEncoder.class | Bin 3443 -> 3474 bytes libjava/classpath/lib/java/io/Closeable.class | Bin 177 -> 208 bytes .../classpath/lib/java/io/ObjectInput.class | Bin 447 -> 478 bytes .../lib/java/io/ObjectInputStream$1.class | Bin 1152 -> 1152 bytes .../lib/java/io/ObjectInputStream$2.class | Bin 6167 -> 6167 bytes .../java/io/ObjectInputStream$GetField.class | Bin 1025 -> 1025 bytes ...jectInputStream$ValidatorAndPriority.class | Bin 786 -> 786 bytes .../lib/java/io/ObjectInputStream.class | Bin 30759 -> 30795 bytes .../classpath/lib/java/io/ObjectOutput.class | Bin 378 -> 409 bytes .../lib/java/lang/AssertionError.class | Bin 1646 -> 1841 bytes .../lib/java/lang/AutoCloseable.class | Bin 0 -> 187 bytes libjava/classpath/lib/java/lang/Boolean.class | Bin 2395 -> 2509 bytes libjava/classpath/lib/java/lang/Byte.class | Bin 3059 -> 3163 bytes .../java/lang/ClassNotFoundException.class | Bin 894 -> 913 bytes .../java/lang/IllegalAccessException.class | Bin 517 -> 536 bytes .../java/lang/InstantiationException.class | Bin 517 -> 536 bytes libjava/classpath/lib/java/lang/Integer.class | Bin 7295 -> 7387 bytes .../lib/java/lang/LinkageError.class | Bin 483 -> 663 bytes libjava/classpath/lib/java/lang/Long.class | Bin 7040 -> 7140 bytes .../lib/java/lang/NoSuchFieldException.class | Bin 511 -> 530 bytes .../lib/java/lang/NoSuchMethodException.class | Bin 514 -> 533 bytes .../lang/ReflectiveOperationException.class | Bin 0 -> 832 bytes libjava/classpath/lib/java/lang/Short.class | Bin 3265 -> 3369 bytes .../reflect/InvocationTargetException.class | Bin 985 -> 1004 bytes .../lib/java/lang/reflect/Member.class | Bin 341 -> 386 bytes .../lib/java/nio/channels/FileLock.class | Bin 1809 -> 1840 bytes .../classpath/lib/java/sql/Connection.class | Bin 2469 -> 2500 bytes .../classpath/lib/java/sql/ResultSet.class | Bin 7255 -> 7286 bytes .../classpath/lib/java/sql/Statement.class | Bin 2029 -> 2060 bytes .../AttributedString$AttributeRange.class | Bin 689 -> 1023 bytes .../lib/java/text/AttributedString.class | Bin 5889 -> 6341 bytes .../java/text/AttributedStringIterator.class | Bin 5288 -> 6136 bytes libjava/classpath/lib/java/text/Bidi.class | Bin 10825 -> 10884 bytes .../lib/java/text/BreakIterator.class | Bin 4752 -> 4818 bytes .../lib/java/text/ChoiceFormat.class | Bin 5857 -> 5992 bytes .../java/text/CollationElementIterator.class | Bin 5555 -> 5720 bytes .../java/text/DateFormatSymbols$DFSData.class | Bin 0 -> 2183 bytes .../lib/java/text/DateFormatSymbols.class | Bin 11437 -> 13323 bytes .../lib/java/text/DecimalFormat.class | Bin 25204 -> 25276 bytes libjava/classpath/lib/java/text/Format.class | Bin 2009 -> 2121 bytes .../lib/java/text/MessageFormat$Field.class | Bin 1206 -> 1206 bytes .../lib/java/text/MessageFormat.class | Bin 12313 -> 12425 bytes .../lib/java/text/NumberFormat$Field.class | Bin 2128 -> 2128 bytes .../lib/java/text/NumberFormat.class | Bin 9372 -> 9372 bytes .../lib/java/text/SimpleDateFormat.class | Bin 18466 -> 18458 bytes .../Collections$1$SynchronizedMapEntry.class | Bin 2229 -> 2229 bytes .../lib/java/util/Collections$1.class | Bin 1138 -> 1138 bytes .../lib/java/util/Collections$2.class | Bin 1212 -> 1212 bytes .../lib/java/util/Collections$3.class | Bin 1605 -> 1605 bytes .../lib/java/util/Collections$4.class | Bin 1640 -> 1640 bytes .../lib/java/util/Collections$5.class | Bin 1708 -> 1708 bytes .../lib/java/util/Collections$6.class | Bin 1553 -> 1553 bytes .../lib/java/util/Collections$7.class | Bin 1844 -> 1844 bytes .../lib/java/util/Collections$8.class | Bin 889 -> 889 bytes .../lib/java/util/Collections$9.class | Bin 930 -> 930 bytes .../util/Collections$CheckedCollection.class | Bin 3874 -> 3874 bytes .../util/Collections$CheckedIterator.class | Bin 1272 -> 1272 bytes .../java/util/Collections$CheckedList.class | Bin 3930 -> 3930 bytes .../Collections$CheckedListIterator.class | Bin 2091 -> 2091 bytes ...llections$CheckedMap$CheckedEntrySet.class | Bin 1810 -> 1810 bytes .../java/util/Collections$CheckedMap.class | Bin 5166 -> 5166 bytes .../Collections$CheckedRandomAccessList.class | Bin 985 -> 985 bytes .../java/util/Collections$CheckedSet.class | Bin 1318 -> 1318 bytes .../util/Collections$CheckedSortedMap.class | Bin 2368 -> 2368 bytes .../util/Collections$CheckedSortedSet.class | Bin 2174 -> 2174 bytes .../java/util/Collections$CopiesList.class | Bin 2721 -> 2721 bytes .../lib/java/util/Collections$EmptyList.class | Bin 2671 -> 2671 bytes .../lib/java/util/Collections$EmptyMap.class | Bin 2184 -> 2184 bytes .../lib/java/util/Collections$EmptySet.class | Bin 2422 -> 2422 bytes .../lib/java/util/Collections$LIFOQueue.class | Bin 2279 -> 2279 bytes .../lib/java/util/Collections$MapSet.class | Bin 2571 -> 2571 bytes .../util/Collections$ReverseComparator.class | Bin 1024 -> 1024 bytes .../java/util/Collections$SingletonList.class | Bin 3063 -> 3064 bytes .../java/util/Collections$SingletonMap.class | Bin 3012 -> 3012 bytes .../java/util/Collections$SingletonSet.class | Bin 2438 -> 2438 bytes .../Collections$SynchronizedCollection.class | Bin 4000 -> 4000 bytes .../Collections$SynchronizedIterator.class | Bin 1366 -> 1366 bytes .../util/Collections$SynchronizedList.class | Bin 3903 -> 3903 bytes ...Collections$SynchronizedListIterator.class | Bin 2061 -> 2061 bytes .../util/Collections$SynchronizedMap.class | Bin 4820 -> 4820 bytes ...ections$SynchronizedRandomAccessList.class | Bin 1488 -> 1488 bytes .../util/Collections$SynchronizedSet.class | Bin 1583 -> 1583 bytes .../Collections$SynchronizedSortedMap.class | Bin 2637 -> 2637 bytes .../Collections$SynchronizedSortedSet.class | Bin 2603 -> 2603 bytes .../Collections$UnmodifiableCollection.class | Bin 3127 -> 3127 bytes .../Collections$UnmodifiableIterator.class | Bin 1182 -> 1182 bytes .../util/Collections$UnmodifiableList.class | Bin 3204 -> 3204 bytes ...Collections$UnmodifiableListIterator.class | Bin 1776 -> 1776 bytes ...ifiableEntrySet$UnmodifiableMapEntry.class | Bin 2223 -> 2223 bytes ...UnmodifiableMap$UnmodifiableEntrySet.class | Bin 2441 -> 2441 bytes .../util/Collections$UnmodifiableMap.class | Bin 3798 -> 3798 bytes ...ections$UnmodifiableRandomAccessList.class | Bin 910 -> 910 bytes .../util/Collections$UnmodifiableSet.class | Bin 1226 -> 1226 bytes .../Collections$UnmodifiableSortedMap.class | Bin 2131 -> 2131 bytes .../Collections$UnmodifiableSortedSet.class | Bin 2058 -> 2058 bytes .../classpath/lib/java/util/Collections.class | Bin 21874 -> 21862 bytes .../classpath/lib/java/util/Formatter.class | Bin 17810 -> 17869 bytes .../classpath/lib/java/util/TimeZone$1.class | Bin 1026 -> 1182 bytes .../classpath/lib/java/util/TimeZone.class | Bin 31322 -> 32132 bytes .../lib/java/util/regex/Matcher.class | Bin 7507 -> 7772 bytes .../lib/javax/security/sasl/Sasl.class | Bin 6585 -> 6652 bytes .../lib/javax/sound/midi/MetaMessage.class | Bin 2002 -> 2012 bytes .../javax/sound/midi/MidiDevice$Info.class | Bin 1283 -> 1283 bytes .../lib/javax/sound/midi/MidiDevice.class | Bin 621 -> 652 bytes .../lib/javax/sound/midi/MidiSystem.class | Bin 8292 -> 8977 bytes .../lib/javax/sound/midi/Receiver.class | Bin 248 -> 279 bytes .../javax/sound/midi/SoundbankResource.class | Bin 1130 -> 1138 bytes .../lib/javax/sound/midi/Track.class | Bin 2021 -> 2152 bytes .../lib/javax/sound/midi/Transmitter.class | Bin 251 -> 282 bytes .../lib/javax/sound/sampled/AudioSystem.class | Bin 12598 -> 13183 bytes .../lib/javax/sound/sampled/Line$Info.class | Bin 995 -> 1003 bytes .../lib/javax/sound/sampled/Line.class | Bin 769 -> 800 bytes ...ableTreeNode$BreadthFirstEnumeration.class | Bin 1664 -> 1664 bytes ...MutableTreeNode$PostorderEnumeration.class | Bin 2190 -> 2228 bytes ...tMutableTreeNode$PreorderEnumeration.class | Bin 2076 -> 2160 bytes libjava/classpath/m4/ac_prog_javac.m4 | 2 +- libjava/classpath/m4/acinclude.m4 | 2 + libjava/classpath/m4/lib-ld.m4 | 110 + libjava/classpath/m4/lib-link.m4 | 774 +++++++ libjava/classpath/m4/lib-prefix.m4 | 224 ++ libjava/classpath/missing | 53 +- libjava/classpath/native/Makefile.in | 8 +- libjava/classpath/native/fdlibm/Makefile.in | 8 +- libjava/classpath/native/jawt/Makefile.in | 8 +- libjava/classpath/native/jni/Makefile.in | 8 +- .../native/jni/classpath/Makefile.in | 8 +- .../native/jni/gconf-peer/Makefile.in | 8 +- .../native/jni/gstreamer-peer/Makefile.in | 8 +- .../classpath/native/jni/gtk-peer/Makefile.in | 8 +- .../gnu_java_awt_peer_gtk_GdkFontPeer.c | 6 +- .../gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c | 2 +- .../classpath/native/jni/java-io/Makefile.in | 8 +- .../native/jni/java-io/java_io_VMConsole.c | 4 + .../native/jni/java-lang/Makefile.in | 8 +- .../native/jni/java-math/Makefile.in | 8 +- .../classpath/native/jni/java-net/Makefile.in | 8 +- .../classpath/native/jni/java-nio/Makefile.in | 8 +- .../native/jni/java-util/Makefile.in | 8 +- .../jni/java-util/java_util_VMTimeZone.c | 9 +- .../native/jni/midi-alsa/Makefile.in | 8 +- .../native/jni/midi-dssi/Makefile.in | 8 +- ...nu_javax_sound_midi_dssi_DSSISynthesizer.c | 15 +- .../native/jni/native-lib/Makefile.in | 8 +- .../classpath/native/jni/qt-peer/Makefile.in | 8 +- libjava/classpath/native/jni/xmlj/Makefile.in | 8 +- libjava/classpath/native/plugin/Makefile.in | 8 +- .../classpath/org/omg/CORBA/LocalObject.java | 2 +- .../org/omg/CORBA/portable/Delegate.java | 2 +- .../org/omg/CORBA/portable/InputStream.java | 2 +- .../org/omg/CORBA/portable/ObjectImpl.java | 2 +- .../omg/CORBA_2_3/portable/InputStream.java | 4 +- .../omg/CORBA_2_3/portable/OutputStream.java | 2 +- .../omg/DynamicAny/_DynAnyFactoryStub.java | 2 +- .../org/omg/DynamicAny/_DynAnyStub.java | 2 +- .../org/omg/DynamicAny/_DynArrayStub.java | 2 +- .../org/omg/DynamicAny/_DynEnumStub.java | 2 +- .../org/omg/DynamicAny/_DynFixedStub.java | 2 +- .../org/omg/DynamicAny/_DynSequenceStub.java | 2 +- .../org/omg/DynamicAny/_DynStructStub.java | 2 +- .../org/omg/DynamicAny/_DynUnionStub.java | 2 +- .../org/omg/DynamicAny/_DynValueStub.java | 2 +- .../PortableServer/_ServantActivatorStub.java | 2 +- .../PortableServer/_ServantLocatorStub.java | 2 +- libjava/classpath/resource/Makefile.in | 8 +- .../util/regex/MessagesBundle_it.properties | 2 +- libjava/classpath/scripts/Makefile.in | 8 +- libjava/classpath/scripts/classpath.spec.in | 2 +- libjava/classpath/tools/Makefile.in | 8 +- .../tools/classes/com/sun/javadoc/Doc.class | Bin 741 -> 849 bytes .../AbstractDoclet$DocletOptionGroup.class | Bin 2075 -> 2172 bytes .../AbstractDoclet$DocletOptionTag.class | Bin 3296 -> 3296 bytes .../AbstractDoclet$DocletOptionTaglet.class | Bin 4359 -> 0 bytes ...bstractDoclet$DocletOptionTagletPath.class | Bin 955 -> 0 bytes .../doclets/AbstractDoclet$IndexKey.class | Bin 1129 -> 1373 bytes .../AbstractDoclet$InterfaceRelation.class | Bin 663 -> 663 bytes .../doclets/AbstractDoclet$UsageType.class | Bin 1848 -> 2065 bytes .../tools/doclets/AbstractDoclet.class | Bin 27182 -> 28956 bytes .../tools/doclets/PackageMatcher.class | Bin 2907 -> 3230 bytes .../doclets/htmldoclet/HtmlDoclet$1.class | Bin 1205 -> 1205 bytes .../doclets/htmldoclet/HtmlDoclet$2.class | Bin 1207 -> 1207 bytes .../doclets/htmldoclet/HtmlDoclet$3.class | Bin 1401 -> 1401 bytes .../htmldoclet/HtmlDoclet$TreeNode.class | Bin 1088 -> 1435 bytes .../tools/doclets/htmldoclet/HtmlDoclet.class | Bin 79930 -> 81614 bytes .../tools/gjdoc/BlockSourceComponent.class | Bin 629 -> 629 bytes .../classpath/tools/gjdoc/BracketClose.class | Bin 862 -> 862 bytes .../tools/gjdoc/ClassComponent.class | Bin 2610 -> 2610 bytes .../classpath/tools/gjdoc/ClassDocImpl.class | Bin 25782 -> 26937 bytes .../classpath/tools/gjdoc/ClassDocProxy.class | Bin 7577 -> 7652 bytes .../tools/gjdoc/ClassDocReflectedImpl.class | Bin 8685 -> 8760 bytes .../tools/gjdoc/CommentComponent.class | Bin 1517 -> 1517 bytes .../gnu/classpath/tools/gjdoc/DocImpl.class | Bin 19116 -> 19208 bytes .../tools/gjdoc/EmptyStatementComponent.class | Bin 612 -> 612 bytes .../tools/gjdoc/ExecutableMemberDocImpl.class | Bin 9289 -> 9315 bytes .../tools/gjdoc/FieldComponent.class | Bin 3110 -> 3267 bytes .../classpath/tools/gjdoc/FieldDocImpl.class | Bin 8266 -> 8628 bytes .../tools/gjdoc/FunctionComponent.class | Bin 2992 -> 3194 bytes .../gjdoc/IgnoredFileParseException.class | Bin 357 -> 357 bytes .../tools/gjdoc/ImportComponent.class | Bin 1226 -> 1226 bytes .../gnu/classpath/tools/gjdoc/Main$1.class | Bin 825 -> 928 bytes .../gnu/classpath/tools/gjdoc/Main$10.class | Bin 1221 -> 1221 bytes .../gnu/classpath/tools/gjdoc/Main$11.class | Bin 1728 -> 1728 bytes .../gnu/classpath/tools/gjdoc/Main$12.class | Bin 1799 -> 1799 bytes .../gnu/classpath/tools/gjdoc/Main$13.class | Bin 1800 -> 1799 bytes .../gnu/classpath/tools/gjdoc/Main$14.class | Bin 1002 -> 929 bytes .../gnu/classpath/tools/gjdoc/Main$15.class | Bin 924 -> 923 bytes .../gnu/classpath/tools/gjdoc/Main$16.class | Bin 1715 -> 1715 bytes .../gnu/classpath/tools/gjdoc/Main$17.class | Bin 828 -> 828 bytes .../gnu/classpath/tools/gjdoc/Main$18.class | Bin 809 -> 809 bytes .../gnu/classpath/tools/gjdoc/Main$19.class | Bin 809 -> 809 bytes .../gnu/classpath/tools/gjdoc/Main$2.class | Bin 767 -> 767 bytes .../gnu/classpath/tools/gjdoc/Main$20.class | Bin 1382 -> 1382 bytes .../gnu/classpath/tools/gjdoc/Main$21.class | Bin 1401 -> 1400 bytes .../gnu/classpath/tools/gjdoc/Main$22.class | Bin 809 -> 809 bytes .../gnu/classpath/tools/gjdoc/Main$23.class | Bin 809 -> 809 bytes .../gnu/classpath/tools/gjdoc/Main$24.class | Bin 809 -> 809 bytes .../gnu/classpath/tools/gjdoc/Main$25.class | Bin 809 -> 809 bytes .../gnu/classpath/tools/gjdoc/Main$3.class | Bin 767 -> 767 bytes .../gnu/classpath/tools/gjdoc/Main$4.class | Bin 767 -> 767 bytes .../gnu/classpath/tools/gjdoc/Main$5.class | Bin 767 -> 767 bytes .../gnu/classpath/tools/gjdoc/Main$6.class | Bin 806 -> 806 bytes .../gnu/classpath/tools/gjdoc/Main$7.class | Bin 825 -> 825 bytes .../gnu/classpath/tools/gjdoc/Main$8.class | Bin 825 -> 825 bytes .../gnu/classpath/tools/gjdoc/Main$9.class | Bin 806 -> 926 bytes .../tools/gjdoc/Main$OptionProcessor.class | Bin 727 -> 727 bytes .../gnu/classpath/tools/gjdoc/Main.class | Bin 29338 -> 28819 bytes .../classpath/tools/gjdoc/MemberDocImpl.class | Bin 5337 -> 5343 bytes .../tools/gjdoc/PackageComponent.class | Bin 1142 -> 1142 bytes .../tools/gjdoc/PackageDocImpl.class | Bin 5798 -> 6230 bytes .../gnu/classpath/tools/gjdoc/Parser$1.class | Bin 1669 -> 1669 bytes .../tools/gjdoc/Parser$Context.class | Bin 1209 -> 1510 bytes .../gnu/classpath/tools/gjdoc/Parser.class | Bin 13190 -> 13661 bytes .../classpath/tools/gjdoc/RootDocImpl.class | Bin 20655 -> 20857 bytes .../gjdoc/SlashSlashCommentComponent.class | Bin 556 -> 556 bytes .../tools/gjdoc/SourceComponent.class | Bin 787 -> 787 bytes .../tools/gjdoc/StaticBlockComponent.class | Bin 1030 -> 1030 bytes .../classpath/tools/gjdoc/Whitespace.class | Bin 591 -> 591 bytes .../tools/gjdoc/expr/Evaluator.class | Bin 3343 -> 3589 bytes .../gjdoc/expr/EvaluatorEnvironment.class | Bin 378 -> 482 bytes .../gnu/classpath/tools/gjdoc/expr/Type.class | Bin 1204 -> 1324 bytes .../rmic/ClassRmicCompiler$MethodRef.class | Bin 2719 -> 2976 bytes .../tools/rmic/ClassRmicCompiler.class | Bin 30526 -> 31874 bytes .../gnu/classpath/tools/rmic/Main.class | Bin 6058 -> 6165 bytes .../tools/rmic/SourceGiopRmicCompiler.class | Bin 12269 -> 13494 bytes .../gnu/classpath/tools/rmic/Variables.class | Bin 3290 -> 3583 bytes .../classpath/tools/com/sun/javadoc/Doc.java | 4 +- .../tools/doclets/AbstractDoclet.java | 205 +- .../tools/doclets/PackageMatcher.java | 12 +- .../tools/doclets/htmldoclet/HtmlDoclet.java | 122 +- .../classpath/tools/gjdoc/ClassDocImpl.java | 52 +- .../classpath/tools/gjdoc/ClassDocProxy.java | 11 +- .../tools/gjdoc/ClassDocReflectedImpl.java | 25 +- .../gnu/classpath/tools/gjdoc/DocImpl.java | 6 +- .../tools/gjdoc/ExecutableMemberDocImpl.java | 12 +- .../classpath/tools/gjdoc/FieldDocImpl.java | 13 +- .../tools/gnu/classpath/tools/gjdoc/Main.java | 122 +- .../classpath/tools/gjdoc/MemberDocImpl.java | 12 +- .../classpath/tools/gjdoc/PackageDocImpl.java | 26 +- .../gnu/classpath/tools/gjdoc/Parser.java | 148 +- .../classpath/tools/gjdoc/RootDocImpl.java | 10 +- .../classpath/tools/gjdoc/expr/Evaluator.java | 6 +- .../gjdoc/expr/EvaluatorEnvironment.java | 6 +- .../gnu/classpath/tools/gjdoc/expr/Type.java | 6 +- .../tools/rmic/ClassRmicCompiler.java | 126 +- .../tools/gnu/classpath/tools/rmic/Main.java | 6 +- .../tools/rmic/RmiMethodGenerator.java | 8 +- .../tools/rmic/SourceGiopRmicCompiler.java | 58 +- .../gnu/classpath/tools/rmic/Variables.java | 27 +- .../gnu/classpath/tools/gjdoc/dtd/dbcentx.mod | 2 +- .../tools/gjdoc/dtd/ent/iso-amsa.ent | 2 +- .../tools/gjdoc/dtd/ent/iso-amsb.ent | 2 +- .../tools/gjdoc/dtd/ent/iso-amsc.ent | 2 +- .../tools/gjdoc/dtd/ent/iso-amsn.ent | 2 +- .../tools/gjdoc/dtd/ent/iso-amso.ent | 2 +- .../tools/gjdoc/dtd/ent/iso-amsr.ent | 2 +- .../classpath/tools/gjdoc/dtd/ent/iso-box.ent | 2 +- .../tools/gjdoc/dtd/ent/iso-cyr1.ent | 2 +- .../tools/gjdoc/dtd/ent/iso-cyr2.ent | 2 +- .../classpath/tools/gjdoc/dtd/ent/iso-dia.ent | 2 +- .../tools/gjdoc/dtd/ent/iso-grk1.ent | 2 +- .../tools/gjdoc/dtd/ent/iso-grk2.ent | 2 +- .../tools/gjdoc/dtd/ent/iso-grk3.ent | 2 +- .../tools/gjdoc/dtd/ent/iso-grk4.ent | 2 +- .../tools/gjdoc/dtd/ent/iso-lat1.ent | 2 +- .../tools/gjdoc/dtd/ent/iso-lat2.ent | 2 +- .../classpath/tools/gjdoc/dtd/ent/iso-num.ent | 2 +- .../classpath/tools/gjdoc/dtd/ent/iso-pub.ent | 2 +- .../tools/gjdoc/dtd/ent/iso-tech.ent | 2 +- libjava/gcj/javaprims.h | 2 + libjava/gnu/java/nio/FileLockImpl.h | 1 + libjava/gnu/java/nio/FileLockImpl.java | 5 + .../gnu/java/text/AttributedFormatBuffer.h | 8 +- libjava/gnu/java/text/FormatBuffer.h | 2 +- .../gnu/java/text/FormatCharacterIterator.h | 8 +- libjava/gnu/java/text/StringFormatBuffer.h | 2 +- .../dssi/DSSIMidiDeviceProvider$DSSIInfo.h | 5 +- libjava/java/awt/geom/Area.h | 2 +- libjava/java/lang/AssertionError.h | 1 + libjava/java/lang/AutoCloseable.h | 19 + libjava/java/lang/Boolean.h | 1 + libjava/java/lang/Byte.h | 1 + libjava/java/lang/ClassNotFoundException.h | 6 +- libjava/java/lang/IllegalAccessException.h | 4 +- libjava/java/lang/InstantiationException.h | 4 +- libjava/java/lang/Integer.h | 1 + libjava/java/lang/LinkageError.h | 1 + libjava/java/lang/Long.h | 1 + libjava/java/lang/NoSuchFieldException.h | 4 +- libjava/java/lang/NoSuchMethodException.h | 4 +- .../java/lang/ReflectiveOperationException.h | 25 + libjava/java/lang/Short.h | 1 + .../lang/reflect/InvocationTargetException.h | 6 +- libjava/java/nio/channels/FileLock.h | 1 + libjava/java/text/CollationElementIterator.h | 4 +- libjava/java/text/DateFormatSymbols$DFSData.h | 53 + libjava/java/text/DateFormatSymbols.h | 13 +- libjava/java/util/TimeZone$1.h | 1 + libjava/java/util/regex/Matcher.h | 1 + libjava/javax/security/sasl/Sasl.h | 1 + libjava/sources.am | 2 + 454 files changed, 5246 insertions(+), 2947 deletions(-) create mode 100644 libjava/classpath/java/lang/AutoCloseable.java create mode 100644 libjava/classpath/java/lang/ReflectiveOperationException.java create mode 100644 libjava/classpath/lib/java/lang/AutoCloseable.class create mode 100644 libjava/classpath/lib/java/lang/ReflectiveOperationException.class create mode 100644 libjava/classpath/lib/java/text/DateFormatSymbols$DFSData.class create mode 100644 libjava/classpath/m4/lib-ld.m4 create mode 100644 libjava/classpath/m4/lib-link.m4 create mode 100644 libjava/classpath/m4/lib-prefix.m4 delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet.class delete mode 100644 libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTagletPath.class create mode 100644 libjava/java/lang/AutoCloseable.h create mode 100644 libjava/java/lang/ReflectiveOperationException.h create mode 100644 libjava/java/text/DateFormatSymbols$DFSData.h diff --git a/libjava/ChangeLog b/libjava/ChangeLog index fa62d1ec50fd..ff22755dbe1a 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,12 @@ +2012-12-19 Matthias Klose + + Import GNU Classpath (20121202). + + * Regenerate class and header files. + * Regenerate auto* files. + * sources.am, gcj/javaprims.h: Regenerate. + * gnu/java/nio/FileLockImpl.java (close): New override. + 2012-12-12 H.J. Lu * Makefile.am (lib_gnu_awt_xlib_la_CPPFLAGS): Use diff --git a/libjava/classpath/ChangeLog b/libjava/classpath/ChangeLog index 8e867541555a..37d11a3c942a 100644 --- a/libjava/classpath/ChangeLog +++ b/libjava/classpath/ChangeLog @@ -4,21 +4,981 @@ * tools/gnu/classpath/tools/javah/Main.java (parseClasses): Don't scan inner classes if our item is a file. -2012-09-14 David Edelsohn +2012-11-02 Andrew John Hughes - * configure: Regenerated. + PR classpath/55182 + * configure.ac: + Lower required version to support autoconf + on RHEL6. Make disabling Werror the default. + If a Qt4-specific moc is detected, use it + rather than the default. + * doc/Makefile.am: + Generate texi2dvi output in the build directory + and explicitly specify POSIX locale to work around + Debian bug 586134. + (clean-local): Remove output from texi2dvi. + +2012-10-30 Andrew John Hughes + + PR classpath/55140 + * NEWS: List fix. + * java/lang/String.java: + (codePointBefore(int)): Fix index check to match spec. + +2012-10-16 Ivan Maidanski + + * java/util/Collections.java: + (emptySet()): Don't create new instance, instead using + the corresponding immutable container instance. Remove FIXME + and suppress resulting unchecked warning. + (EmptySet.iterator()): Suppress warning due to cast + for immutable container instance. + (EmptySet.equals(Object)): Add type parameters. + (emptyList()): Don't create new instance, instead using + the corresponding immutable container instance. Remove FIXME + and suppress resulting unchecked warning. + (EmptyList.equals(Object)): Add type parameters. + (emptyMap()): Don't create new instance, instead using + the corresponding immutable container instance. Remove FIXME + and suppress resulting unchecked warning. + (EmptyMap.entrySet()): Cast to parameterised type and + suppress warning. + (EmptyMap.equals(Object)): Add type parameters. + (EmptyMap.keySet()): Cast to parameterised type and + suppress warning. + (EmptyMap.values()): Likewise. + (SingletonList.subList(int, int)): Use emptyList() instead of + EMPTY_LIST to eliminate unchecked warning. + (SynchronizedCollection.toArray(T[])): Rename T type to E to + suppress compiler warning about type hiding. + +2012-10-26 Andrew John Hughes + + PR classpath/41689 + * javax/security/sasl/Sasl.java: + (CREDENTIALS): Add missing field. + * NEWS: Updated. + +2012-10-26 Andrew John Hughes + + * NEWS: Updated with latest bug fixes. + * THANKYOU: Add bug authors. + +2010-05-20 Paul Viney + + PR classpath/44208 + * java/io/ObjectInputStream.java, + (parseContent(byte,boolean)): Ensure a handle + for the enum is registered before one for its + String constant. + +2009-12-30 Paul Fernhout + + PR classpath/42551 + * javax/sound/midi/MetaMessage.java: + (setMessage(int,byte[],int)): Don't overwrite + length variable when computing the length representation. + +2012-10-17 Jeremy Singer + + PR classpath/54960 + * gnu/xml/transform/SAXSerializer.java: + (getValue(String)): Avoid NullPointerException. + +2012-10-26 Andrew John Hughes + + * native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c: + (Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1(JNIEnv*, + jclass, jlong)): Use jack_client_open instead of + deprecated jack_client_new. + +2012-10-15 Andrew John Hughes + + * configure.ac: Set to 0.99.1pre, as + 0.99.1 will now be next release. + * NEWS: Updated with last bug fix + and 0.99.1 + +2012-10-15 Andrew John Hughes + + PR classpath/54931 + * m4/acinclude.m4: + (CLASSPATH_WITH_GJDOC): Allow GJDoc versions + included with GNU Classpath to be used to + build (0.98 on). + +2012-03-15 Pekka Enberg + + * java/util/Formatter.java: + (icharacterFormat(Object,int,int,int,char): + Fix NullPointerException for null characters. + (basicIntegralConversion(Object, int, int, int, int, char): + Fix NullPointerException for null integers. + (format(Locale, String, Object...)): + Fix NullPointerException for null object. + +2012-03-15 Pekka Enberg + + * java/lang/String.java: + (codePointAt(int))): Fix exception type. + (codePointBefore(int)): Fix exception type. + +2011-07-20 Ivan Maidanski + + * native/jni/java-util/java_util_VMTimeZone.c: + Include jcl.h file. + (Java_java_util_VMTimeZone_getSystemTimeZoneId(JNIEnv*,jclass)): + Throw OutOfMemoryException in case of malloc() failure. + +2012-06-10 Ivan Maidanski + + * compat/.gitignore, + * compat/java.net/.gitignore, + * doc/.gitignore, + * doc/api/.gitignore, + * doc/www.gnu.org/.gitignore, + * doc/www.gnu.org/announce/.gitignore, + * doc/www.gnu.org/cp-tools/.gitignore, + * doc/www.gnu.org/docs/.gitignore, + * doc/www.gnu.org/downloads/.gitignore, + * doc/www.gnu.org/events/.gitignore, + * doc/www.gnu.org/faq/.gitignore, + * examples/.gitignore, + * external/.gitignore, + * external/jsr166/.gitignore, + * external/relaxngDatatype/.gitignore, + * external/sax/.gitignore, + * external/w3c_dom/.gitignore, + * gnu/classpath/.gitignore, + * gnu/java/locale/.gitignore, + * gnu/java/security/.gitignore, + * gnu/test/.gitignore, + * include/.gitignore, + * java/util/.gitignore, + * lib/.gitignore, + * native/.gitignore, + * native/fdlibm/.gitignore, + * native/jawt/.gitignore, + * native/jni/.gitignore, + * native/jni/classpath/.gitignore, + * native/jni/gconf-peer/.gitignore, + * native/jni/gstreamer-peer/.gitignore, + * native/jni/gtk-peer/.gitignore, + * native/jni/java-io/.gitignore, + * native/jni/java-lang/.gitignore, + * native/jni/java-math/.gitignore, + * native/jni/java-net/.gitignore, + * native/jni/java-nio/.gitignore, + * native/jni/java-util/.gitignore, + * native/jni/midi-alsa/.gitignore, + * native/jni/midi-dssi/.gitignore, + * native/jni/native-lib/.gitignore, + * native/jni/qt-peer/.gitignore, + * native/jni/xmlj/.gitignore, + * native/plugin/.gitignore, + * native/testsuite/.gitignore, + * native/vmi/.gitignore, + * resource/.gitignore, + * resource/META-INF/services/.gitignore, + * scripts/.gitignore, + * test/.gitignore, + * test/gnu.java.lang.reflect/.gitignore, + * test/java.io/.gitignore, + * test/java.lang.reflect/.gitignore, + * test/java.net/.gitignore, + * test/java.util/.gitignore, + * tools/.gitignore, + * tools/gnu/classpath/tools/doclets/.gitignore, + * tools/gnu/classpath/tools/doclets/debugdoclet/.gitignore, + * tools/gnu/classpath/tools/doclets/htmldoclet/.gitignore, + * tools/gnu/classpath/tools/doclets/xmldoclet/.gitignore, + * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/.gitignore, + * tools/gnu/classpath/tools/gjdoc/.gitignore, + * tools/gnu/classpath/tools/gjdoc/expr/.gitignore, + * tools/gnu/classpath/tools/java2xhtml/.gitignore, + * tools/gnu/classpath/tools/taglets/.gitignore, + * vm/.gitignore, + * vm/reference/.gitignore: Renamed from .cvsignore. + +2012-10-10 Andrew John Hughes + + * java/awt/geom/Area.java: + (solids): Add type parameter. + (holes): Likewise. + (ccIntersections): Likewise and rename to meet + standards. + (Area()): Add type parameters. + (Area(Shape)): Likewise and remove redundant casts. + (add(Area)): Likewise and remove unused nNodes variable. + (subtract(Area)): Likewise. + (intersect(Area)): Likewise. + (exclusiveOr(Area)): Likewise. + (reset()): Add type parameters. + (isEmpty()): Remove redundant casts. + (isPolygonal()): Likewise. + (isRectangular()): Likewise. + (getBounds2D()): Likewise. + (clone()): Likewise. + (equals(Area)): Add type parameters. + (transform(AffineTransform)): Remove redundant casts. + (contains(double,double)): Likewise. + (contains(double,double,double,double)): Likewise. + (intersects(double,double,double,double)): Likewise. + (AreaIterator.segments): Add type parameter. + (AreaIterator(AffineTransform)): Add type parameters. + Remove redundant casts. + (currentSegment(double[])): Remove redundant casts. + (currentSegment(float[])): Likewise. + (weilerAtherton(Vector)): Add type parameters and remove + redundant casts. + (recursiveSubdivide(CubicCurve2D,CubicCurve2D,int,int,double, + double,double,double)): Fix use of cc_intersections/ccIntersections. + (cubicCubicIntersect(CubicSegment,CubicSegment)): Likewise. + (lineQuadIntersect(LineSegment,QuadSegment)): Fix Javadoc typo. + (makeSegment(Shape)): Add type parameters. + (createNodes(Segment,Segment)): Remove redundant bracketing. + (deleteRedundantPaths(Vector)): Likewise. Remove redundant + casts. Add type parameters. + (setDirection(Vector,boolean)): Add type parameters and remove + redundant casts. + (cloneSegmentList()): Add type parameter. Remove redundant + cast. + (createNodes(Segment,Intersection[])): Add type parameter. + Remove redundant cast. + +2012-10-09 Andrew John Hughes + + * gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java: + (DSSIInfo.copyright): Added field. + (DSSIInfo(String,String,String,String,String,String,long)): + Extended constructor to store copyright. + (examineLibrary(String)): Add type parameter. + Fix call to new DSSIInfo constructor. + (static): Add type parameters. + * gnu/javax/sound/midi/dssi/DSSISynthesizer.java: + (instruments): Add type parameter. + (resources): Likewise. + (getResources()): Remove redundant cast. + (getInstruments()): Likewise. + (getInstrument(Patch)): Add type parameter and remove + redundant cast. + (soundbanks): Add type parameter. + (getAvailableInstruments()): Add type parameters and + remove redundant casts. + * gnu/javax/sound/midi/file/MidiFileReader.java: + (getSequence(InputStream)): Don't store length as not used. + * gnu/javax/sound/midi/file/MidiFileWriter.java: + (computeTrackLength(Track,MidiDataOutputStream)): Drop unused + count variable. + * gnu/javax/sound/sampled/WAV/WAVReader.java: + (getAudioFileFormat(InputStream)): Drop unused blockAlign variable. + * gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java: + (getLine(Line.Info)): Add type parameter to Class. + * javax/sound/midi/MidiSystem.java: + (getMidiDeviceInfo()): Add type parameters. Remove unnecessary cast. + (getMidiDevice(MidiDevice.Info)): Add type parameter. + (getSoundbank(InputStream)): Add type parameters and remove + unnecessary casts. + (getSoundbank(URL)): Likewise. + (getSoundbank(File)): Likewise. + (getMidiFileFormat(InputStream)): Likewise. + (getMidiFileFormat(URL)): Likewise. + (getMidiFileFormat(File)): Likewise. + (getSequence(InputStream)): Likewise. + (getSequence(URL)): Likewise. + (getSequence(File)): Likewise. + (getMidiFileTypes()): Likewise. + (isFileTypeSupported(int)): Likewise. + (getMidiFileTypes(Sequence)): Likewise. + (isFileTypeSupported(int,Sequence)): Likewise. + (write(Sequence,int,OutputStream)): Likewise. + (write(Sequence,int,File)): Likewise. + * javax/sound/midi/SoundbankResource.java: + (dataClass): Add type parameter. + * javax/sound/midi/Track.java: + (events): Add type parameter. + (eventSet): Likewise. + (add(MidiEvent)): Remove redundant cast. + (get(int)): Likewise. + (ticks()): Likewise. + * javax/sound/sampled/AudioSystem.java: + (getAudioFileFormat(File)): Add type parameters and + remove unnecessary casts. + (getAudioFileFormat(InputStream)): Likewise. + (getAudioFileFormat(URL)): Likewise. + (getAudioFileTypes()): Likewise. + (getAudioFileTypes(AudioInputStream)): Likewise. + (getAudioInputStream(AudioFormat.Encoding,AudioInputStream)): + Likewise. + (getAudioInputStream(AudioFormat,AudioInputStream)): Likewise. + (getAudioInputStream(File)): Likewise. + (getAudioInputStream(InputStream)): Likewise. + (getAudioInputStream(URL)): Likewise. + (getMixer(Mixer.Info)): Likewise. + (getMixerInfo()): Likewise. + (getTargetEncodings(AudioFormat.Encoding)): Likewise. + (getTargetEncodings(AudioFormat)): Likewise. + (getTargetFormats(AudioFormat.Encoding,AudioFormat)): Likewise. + (isConversionSupported(AudioFormat.Encoding,AudioFormat)): Likewise. + (isConversionSupported(AudioFormat,AudioFormat)): Likewise. + (write(AudioInputStream,AudioFileFormat.Type,File)): Likewise. + (write(AudioInputStream,AudioFileFormat.Type,OutputStream)): Likewise. + * javax/sound/sampled/Line.java: + (klass): Add type parameter. + * m4/ac_prog_javac.m4: + (ECJ_OPTS): Turn of unused private field warnings for now, + as some may be used from native code. + +2012-09-26 Andrew John Hughes + + PR classpath/42134 + * java/text/Bidi.java: + (Bidi(AttributedCharacterIterator)): Remove shadow + variable text which hides the instance variable + of the same name. Remove unnecessary use of this. + * NEWS: Updated. + +2012-09-24 Andrew John Hughes + + * tools/com/sun/javadoc/Doc.java: + Add type parameter to Comparable. + * tools/gnu/classpath/tools/doclets/AbstractDoclet.java: + (tagletMap): Use type parameters. + (packageGroups): Likewise. + (tagletPath): Removed, unused. + (mentionedTags): Use type parameters. + (optionNoEmailWarn): Removed, unused. + (optionTagletPath): Likewise. + (DocletOptionTaglet): Likewise. + (DocletOptionGroup.set(String[])): Add type aprameters to + groupPackages. + (DocletOptionTagletPath): Removed, unused. + (commonOptions): Remove optionTagletPath. + (nameToOptionMap): Add type parameters. + (getOptionLength(String)): Remove unnecessary cast. + (getKnownDirectSubclasses(ClassDoc)): Add type parameters. + (IndexKey): Add type parameter to Comparable. + (IndexKey.compareTo(IndexKey)): Update to use specific type. + (categorizedIndex): Use type parameters. + (getCategorizedIndex()): Likewise. + (indexByName): Likewise. + (getIndexByName()): Likewise. + (printTaglets(Tag[],TagletContext,TagletPrinter,boolean)): Likewise. + (addUsedBy(Map,ClassDoc,UsageType,Doc,PackageDoc)): Likewise. + (collectUsage()): Likewise. + (usedClassToPackagesMap): Likewise. + (getUsageOfClass(ClassDoc)): Likewise. + (UsageType): Add type parameter to Comparable. + (UsageType.compareTo(UsageType)): Update to use specific type. + (getPackageGroups()): Use type parameters. + * tools/gnu/classpath/tools/doclets/PackageMatcher.java: + (patterns): Use type parameters. + (filter(Packagedoc[])): Likewise. + (match(PackageDoc)): Likewise. + * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java: + (externalDocSets): Use type parameters. + (packageNameToDocSet)): Likewise. + (printPackagePage(File,String,PackageDoc,PackageDoc,PackageDoc)): Likewise. + (TreeNode): Add type parameter to Comparable. + (TreeNode.children): Use type parameters. + (TreeNode.compareTo(TreeNode)): Update to use specific type. + (addClassTreeNode(Map,ClassDoc)): Use type parameters. + (addInterfacetreeNode(Map,ClassDoc)): Likewise. + (printClassTree(HtmlPage,ClassDoc[])): Likewise. + (printInterfaceTree(HtmlPage,ClassDoc[])): Likewise. + (printFullTreePage()): Likewise. + (printIndexEntry(HtmlPage,Doc)): Likewise. + (printPackagesMenuPage()): Likewise. + (printClassMenuSection(HtmlPage,Collection,String)): Likewise. + (printClassMenuList(HtmlPage,ClassDoc[],boolean)): Likewise. + (printSplitIndex()): Likewise. + (printIndexPage(int,int,Character,List)): Likewise. + (printSerializationPage()): Likewise. + (printDeprecationPage()): Likewise. + (getMemberDocURL(HtmlPage,ProgramElementDoc)): Likewise. + (createTypeHref(HtmlPage,Type,boolean)): Likewise. + (getPackageURL(PackageDoc)): Remove redundant cast. + (getClassURL(ClassDoc)): Likewise. + * tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java: + (primitiveNames): Add type parameters. + (findClassCache): Likewise. + (findClass(String,String): Likewise. + (createInstance(ClassDoc,PackageDoc,ClassDoc[],PackageDoc[], + char[],int,int,List)): Likewise. + (resolve()): Likewise. + (typeMap): Likewise. + (typeForString(String)): Likewise.. + (equals(Object)): Likewise. + (maybeSerMethodList): Likewise. + (setMaybeSerMethodList(List)): Likewise. + (findFieldValue(String,ClassDoc,String,Set)): Likewise. + (getValue(String,Set)): Likewise. + (compareTo(Doc)): Use specific type. + (importStatementList): Use type parameters. + (setImportStatementList(List)): Likewise. + * tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java: + (compareTo(Doc)): Use specific type. + * tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java: + Expand imports. + (findClass(String)): Don't use full class name for String. + (compareTo(Doc)): Use specific type. + * tools/gnu/classpath/tools/gjdoc/DocImpl.java: + (compareTo(Doc)): Use specific type. + * tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java: + (compareTo(Doc)): Use specific type. + * tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java: + (createFromSource(ClassDoc,PackageDoc,char[],int,int)): + Use type parameters. Remove unused lastFieldDefStart + variable. + (constantValue(Set)): Use type parameters. + * tools/gnu/classpath/tools/gjdoc/Main.java: + (option_overview): Removed unused field. + (option_classpath): Likewise. + (option_sourcepath): Add type parameters. + (option_extdirs): Removed unused field. + (option_verbose): Likewise. + (option_java_flags): Likewise. + (option_subpackages): Add type parameters. + (option_exclude): Likewise. + (startDoclet(List)): Likewise. + (addFoundPackages(String,Set)): Likewise. + (findPackages(String,File,Set)): Likewise. + (start(String[])): Likewise. + (addJavaLangClasses()): Commented out, apparently unused. + (options): Add type parameters. + (initOptions()): Likewise. Remove redundant variable + setting. + * tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java: + (compareTo(Doc)): Use specific type. + * tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java: + (allClassesSet): Use type parameters. + (ordinaryClassesList): Likewise. + (exceptionsList): Likewise. + (interfacesList): Likewise. + (errorsList): Likewise. + (resolve()): Likewise. + (toClassDocArray(Collection)): Likewise. + (compareTo(Doc)): Use specific type. + * tools/gnu/classpath/tools/gjdoc/Parser.java: + Expand import statements. + (process(Parser,char[],int,int)): Add type parameters. + (processedFiles): Add type parameters. + (processSourceFile(File,boolean,String,String)): Add type + parameters. + (classOpened(char[],int,int)): Likewise. + (toArray(List,T[])): Likewise. + (classClosed()): Likewise. + (Context.fieldList): Likewise. + (Context.filteredFieldList): Likewise. + (Context.sfieldList): Likewise. + (Context.methodList): Likewise. + (Context.filteredMethodList): Likewise. + (Context.maybeSerMethodList): Likewise. + (Context.constructorList): Likewise. + (Context.filteredConstructorList): Likewise. + (Context.innerClassesList): Likewise. + (Context.filteredInnerClassesList): Likewise. + * tools/gnu/classpath/tools/gjdoc/RootDocImpl.java: + (findSourceFiles(String)): Add type parameters. + * tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java: + (evaluate(String,Set,EvaluatorEnvironment)): Add type parameters. + * tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java: + (getValue(String,Set)): Add type parameters. + * tools/gnu/classpath/tools/gjdoc/expr/Type.java: + (clazz): Add type parameters. + (Type(Class)): Likewise. + * tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java: + (keep): Remove unused field. + (errors): Add type parameter. + (compile): Remove unused field. + (classpath): Likewise. + (clazz): Add type parameter. + (mRemoteInterfaces): Likewise. + (run(String[])): Add type parameters. + (processClass(String)): Likewise. + (getException()): Remove unnecessary cast. + (typeArray(Class[])): Add type parameter. + (param(Method,int)): Add type parameter. Use Integer.valueOf. + (generateClassConstant(MethodVisitor,Class)): Add type parameters. + (generateClassArray(MethodVisitor,Class)): Likewise. + (generateStub()): Remove unused variables stubclassname, size + & endReturnTryCatch. Remove unnecessary casts and add type + parameters. + (generateSkel()): Remove unused variable skelclassname. + Use Long.valueOf. + (generateMethodSkel(MethodVisitor,Method,Variables)): + Add type parameters. + (typeArg(Class)): Add type parameter. + (readMethod(Class)): Likewise. + (writeMethod(Class)): Likewise. + (returnOpcode(Class)): Likewise. + (loadOpcode(Class)): Likewise. + (storeOpcode(Class)): Likewise. + (unboxMethod(Class)): Likewise. + (box(Class)): Likewise. + (size(Class)): Likewise. + (sortExceptions(Class[])): Add type parameters. + (setup(boolean,boolean,boolean,boolean,boolean,boolean, + boolean,boolean,boolean,boolean,String,String,String,String)): + Remove unused variables keep & classpath. + (findRemoteMethods()): Add type parameters. + (MethodRef.exceptions): Add type parameter. + (MethodRef.removeSubclasses(Class[])): Add type parameters. + (MethodRef.intersectExceptions(Method)): Likewise. + * tools/gnu/classpath/tools/rmic/Main.java: + (backends): Add type parameter. + (run(String[])): Remove redundant cast. + * tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java: + (getArgumentList()): Add type parameters. + (getArgumentNames()): Likewise. + (getThrows()): Likewise. + (getStaticMethodDeclarations()): Likewise. + * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java: + Add type parameter to Comparable. + (implementedRemotes): Add type parameter. + (extraImports): Likewise. + (methods): Likewise. + (interfaces): Likewise. + (compile(Class)): Add type parameters. + (getId(Class)): Add type parameter. + (getIdList(Collection)): Add type parameters. + (generateStub()): Add type parameters. + (generateTie()): Likewise. + (compare(AbstractMethodGenerator,AbstractMethodGenerator)): Use + more specific types. + (getImportStatements()): Add type parameters. + * tools/gnu/classpath/tools/rmic/Variables.java: + (free): Add type parameter. + (names): Add type parameters. + (wides): Add type parameter. + (declared): Likewise. + (allocateNow(Object,int)): Use Integer.valueOf. + (allocate(Object,int)): Add type parameters. + (deallocate(Object)): Remove redundant cast. + Use Integer.valueOf. + (get(Object)): Remove redundant cast. 2012-08-09 Dodji Seketeli Use accessor functions to manipulate xmlOutputBuffer * native/jni/xmlj/xmlj_io.c (GET_XML_OUTPUT_BUFFER_CONTENT) - (GET_XML_OUTPUT_BUFFER_SIZE): New macros. - (xmljOutputWriteCallback): Use them. + (GET_XML_OUTPUT_BUFFER_SIZE): New macros. + (xmljOutputWriteCallback): Use them. + +2012-08-09 Andrew John Hughes + + * java/util/TimeZone.java: + (defaultZone()): Use parameterized PrivilegedAction. + (aliases0): Add type parameters. + (timezones0); Likewise. + (timezones()): Likewise. + (getDateParams(String)): Fix indenting. + (getTimeZoneInternal(String)): Remove redundant casts. + (getAvailableIDs(int)): Add type parameters. + (getAvailableIDs(File,String,ArrayList)): Likewise. + (getAvailableIDs()): Likewise. + +2012-07-03 Andrew John Hughes + + Update copyright headers throughout. + * gnu/java/text/AttributedFormatBuffer.java: + (ranges): Add generic type information. + (attributes): Likewise. + (aRanges): Rename from a_ranges. + (aAttributes): Add generic type information and + rename from a_attributes. Convert to a list of + maps rather than an array for type safety. + (defaultAttr): Replace prefix with static import. + (AttributedFormatBuffer(CPStringBuilder): Add generic + typing. + (addAttribute(int,Attribute)): Drop prefix, rename + new_range to newRange. Add generic types. + Use Integer.valueOf in place of new Integer. + (append(String,Attribute)): Drop prefix. + (append(String,int[],List)): Replace array with list. + Use Integer.valueOf instead of new Integer. + (append(char,Attribute)): Drop prefix. + (setDefaultAttribute(Attribute)): Likewise. + (getDefaultAttribute()): Likewise. + (sync()): Rename a_ranges to aRanges. Drop unneeded casts. + Replace array with list. + (getRanges()): Rename a_ranges to aRanges. + (getAttributes()): Replace map with list. Rename a_attributes + to aAttributes. + * gnu/java/text/FormatBuffer.java: + Add static import for Attribute. + * gnu/java/text/FormatCharacterIterator.java: + (attributes): Replace array with list. + (FormatCharacterIterator()): Likewise. + (FormatCharacterIterator(String,int,List)): Switch from + array to list. Update documentation. + (getAllAttributeKeys()): Add generic type. Switch + from array to list. + (getAttributes()): Likewise. + (getAttribute(Attribute)): Likewise. + (getRunLimit(Set)): Likewise. + (getRunLimit(Attribute)): Likewise. + (getRunStart(Set)): Likewise. + (getRunStart(Attribute)): Likewise. + (mergeAttributes(List,int[])): Likewise. Use List + in preference to Vector. Use newRanges & newAttributes + rather than new_ranges and new_attributes. + (append(AttributedCharacterIterator)): Likewise. + (append(String,HashMap)): Likewise. + (addAttributes(Map,int,int)): Likewise. + (dumpTable()): Use startRange instead of start_range. + Add generic types. + * gnu/java/text/StringFormatBuffer.java, + Add static import for Attribute. + * java/text/AttributedString.java: + Add static import for Attribute. + (attribs): Add generic type. + (AttributeRange(Map,int,int)): Likewise. + (AttributedString(String,Map)): Likewise. + (AttributedString(AttributedCharacterIterator, int, int, + Attribute)): Drop prefix, add generic types. + (addAttribute(Attribute,Object)): Drop prefix. + (addAttribute(Attribute,Object,int,int)): Likewise + and add generic types. + (addAttributes(Map,int,int)): Add generic types. + (getIterator(Attribute)): Drop prefix. + (getIterator(Attribute[])): Likewise. + * java/text/AttributedStringIterator.java: + Add static import for Attribute. + (getAllAttributeKeys()): Add generic type. + (getRunLimit(Attribute)): Add generic type, drop + prefix. + (getRunLimit(Set)): Add generic types. + (getRunStart(Attribute)): Add generic type, drop + prefix. + (getRunStart(Set)): Add generic types. + (getAttributes()): Likewise. + * java/text/Bidi.java: + (formatterIndices): Add generic type. + (reinsertFormattingCodes()): Drop redundant cast. + * java/text/BreakIterator.java: + (getInstance(String,Locale)): Add generic type to Class. + * java/text/ChoiceFormat.java: + (stringVec): Add generic type. + (limitVec): Likewise. + (applyPattern(String)): Remove redundant cast. + * java/text/CollationElementIterator.java: + (textDecomposition): Renamed from text_decomposition. + (textIndexes): Renamed from text_indexes. + (setText(String)): Add generic types. Rename a_element + to aElement. Rename a_idx to aIdx. Rename key_old to + keyOld. Use Integer.valueOf rather than new Integer. + * java/text/DecimalFormat.java: + (attributes): Add generic type. + (formatToCharacterIterator(Object)): Remove redundant cast. + * java/text/MessageFormat.java: + (Field()): Remove unneeded warning suppression. + * java/text/NumberFormat.java: + (Field()): Likewise. + +2012-07-01 Andrew John Hughes + + PR classpath/44052 + * java/text/DateFormatSymbols.java: + (DFSData): Inner immutable class for storing parsed + locale data. + (DFSData.DFSData(String[],String[],String,String[], + String[],String[],String[],String[],String[], + String[][])): Constructor to initialise a new instance + with property data. + (DFSData.getAMPMs()): Return a clone of the ampms array. + (DFSData.getEras()): Likewise for eras. + (DFSData.getLocalPatternChars()): Return the local pattern + characters. + (DFSData.getMonths()): Return a clone of the (long) months + array. + (DFSData.getShortMonths()): Likewise for the short months array. + (DFSData.getWeekdays()): Likewise for (long) weekdays. + (DFSData.getShortWeekdays()): Likewise for short weekdays. + (DFSData.getDateFormats()): Likewise for date formats. + (DFSData.getTimeFormats()): Likewise for time formats. + (DFSData.getZoneStrings()): Likewise for zone strings. + (dataCache): Cache of parsed locale data. + (getZoneStrings(List,Locale)): + Make static so it can be called by retrieveData. + (formatsForKey(List,String)): + Likewise. + (getString(List, String)): Likewise. + (retrieveData(Locale)): Separate out retrieval of + locale data from constructor and store it in the cache. + (DateFormatSymbols(Locale)): Modify to call retrieveData + and set fields from the returned DFSData instance. + +2012-05-30 Andrew John Hughes -2012-03-08 Andrew John Hughes + * java/text/DateFormatSymbols.java: + (getZoneStrings(List, Locale)): + Refactor to use existing list of resource bundles. + (formatsForKey(List, String)): + Likewise and use new local getString method. + (getString(List, String)): + Use first available String from most-specific locale + rather than the least-specific. + (DateFormatSymbols(Locale)): Use bundles for resolving + localPatternChars, dateFormats, timeFormats and runtimeZoneStrings + as well. + +2012-05-04 Andrew John Hughes + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c, + (font_map): Renamed from ft2_map. + (Java_gnu_java_awt_peer_gtk_GdkFontPeer_initStaticState(JNIEnv, + jclass)): Remove cast to pango_ft2_font_map_new. + (Java_gnu_java_awt_peer_gtk_GdKFontPeer_setFont(JNIEnv, + jobject,jstring,jint,jint)): Call pango_font_map_create_context + rather than deprecated pango_ft2_font_map_create_context. + +2012-05-01 Andrew John Hughes + + * java/text/DateFormatSymbols.java: + Rename U00AE and U000A9 as the more memorable + FIELD_SPLIT and ZONE_SPLIT respectively. + * THANKYOU: Add Andreas Sewe. - * NEWS: Set correct release date. - * configure.ac: Bump to 0.99 proper. +2012-04-30 Andreas Sewe + + PR classpath/53171 + * java/text/DateFormatSymbols.java: + (U00A9): Pre-compile pattern for zone separation. + (U00AE): Likewise for fields. + (getStringArray(List,String,int,String)): Use U00AE.split + in place of String.split. + (getZoneStrings(ResourceBundle,Locale)): Use U00AE.split + and U00A9.split in place of String.split. + +2012-04-25 Andrew John Hughes + + Update warning suppression so it still works + with newer compilers. + * javax/activation/ActivationDataFlavor.java: + (ActivationDataFlavor(Class,String,String)): Suppress + rawtypes not unchecked. + (ActivationDataFlavor(Class,String)): Likewise. + (getRepresentationClass()): Likewise. + * javax/activation/MimeTypeParameterList.java: + (getNames()): Likewise. + * javax/management/DefaultLoaderRepository.java: + (loadClass(String)): Likewise. + (loadClassWithout(ClassLoader,String)): Likewise. + * javax/management/MBeanConstructorInfo.java: + (MBeanConstructorInof(String,Constructor)): Likewise. + * javax/management/remote/rmi/RMIConnection.java: + (addNotificationListener(ObjectName,ObjectName,MarshelledObject, + MarshelledObject,Subject)): Likewise. + (addNotificationListeners(ObjectName[],MarshelledObject[], Subject[])): + Likewise. + (createMBean(String,ObjectName,MarshalledObject,String,Subject)): Likewise. + (createMBean(String,ObjectName,ObjectName,MarshalledObject,String[],Subject)): + Likewise. + (invoke(ObjectName,String,MarshalledObject,String[],Subject)): Likewise. + (queryMBeans(ObjectName,MarshalledObject,Subject)): Likewise. + (queryNames(ObjectName,MarshalledObject,Subject)): Likewise. + (removeNotificationListener(ObjectName,ObjectName,MarshalledObject, + MarshalledObject,Subject)): Likewise. + (setAttribute(ObjectName,MarshalledObject,Subject)): Likewise. + (setAttributes(ObjectName,MarshalledObject,Subject)): Likewise. + * javax/swing/tree/DefaultMutableTreeNode.java: + (children()): Likewise. + (preorderEnumeration()): Likewise. + (postorderEnumeration()): Likewise. + (breadthFirstEnumeration()): Likewise. + (depthFirstEnumeration()): Likewise. + (pathFromAncestorEnumeration(TreeNode)): Likewise. + (BreadthFirstEnumeration.nextElement()): Move annotation down to assignment level. + (PreorderEnumeration.PreorderEnumeration(TreeNode)): Likewise. + (PreorderEnumeration.traverse(Enumeration)): Likewise. + (PostorderEnumeration.PostorderEnumeration(TreeNode)): Likewise. + (PostorderEnumeration.traverse(Enumeration()): Likewise. + * javax/swing/tree/TreeNode.java: + (children()): Suppress rawtypes not unchecked. + * javax/xml/namespace/NamespaceContext.java: + (getPrefixes(String)): Likewise. + * javax/xml/stream/XMLEventFactory.java: + (createStartElement(QName,Iterator,Iterator)): Likewise. + (createStartElement(String,String,String,Iterator,Iterator)): Likewise. + (createStartElement(String,String,String,Iterator,Iterator,NamespaceContext)): + Likewise. + (createEndElement(QName,Iterator)): Likewise. + (createEndElement(String,String,String,Iterator)): Likewise. + * javax/xml/stream/XMLEventReader.java: Likewise (at class level + due to inheritance). + * javax/xml/stream/events/DTD.java: + (getNotations()): Likewise. + (getEntities()): Likewise. + * javax/xml/stream/events/EndElement.java: + (getNamespaces()): Likewise. + * javax/xml/stream/events/StartElement.java: + (getAttributes()): Likewise. + (getNamespaces()): Likewise. + * javax/xml/xpath/XPathFunction.java: + (evaluate(List)): Likewise. + * org/omg/CORBA/LocalObject.java: + (_servant_preinvoke(String,Class)): Likewise. + * org/omg/CORBA/portable/Delegate.java: + (servant_preinvoke(org.omg.CORBA.Object,String,Class)): Likewise. + * org/omg/CORBA/portable/InputStream.java: + (read_Object(Class)): Likewise. + * org/omg/CORBA/portable/ObjectImpl.java: + (_servant_preinvoke(String,Class)): Likewise. + * org/omg/CORBA_2_3/portable/InputStream.java: + (read_abstract_interface(Class)): Likewise. + (read_value(Class)): Likewise. + * org/omg/CORBA_2_3/portable/OutputStream.java: + (write_value(Serializable,Class)): Likewise. + * org/omg/DynamicAny/_DynAnyFactoryStub.java: + (_opsClass): Likewise. + * org/omg/DynamicAny/_DynAnyStub.java: + (_opsClass): Likewise. + * org/omg/DynamicAny/_DynArrayStub.java, + (_opsClass): Likewise. + * org/omg/DynamicAny/_DynEnumStub.java, + (_opsClass): Likewise. + * org/omg/DynamicAny/_DynFixedStub.java, + (_opsClass): Likewise. + * org/omg/DynamicAny/_DynSequenceStub.java, + (_opsClass): Likewise. + * org/omg/DynamicAny/_DynStructStub.java, + (_opsClass): Likewise. + * org/omg/DynamicAny/_DynUnionStub.java, + (_opsClass): Likewise. + * org/omg/DynamicAny/_DynValueStub.java, + (_opsClass): Likewise. + * org/omg/PortableServer/_ServantActivatorStub.java, + (_opsClass): Likewise. + * org/omg/PortableServer/_ServantLocatorStub.java, + (_opsClass): Likewise. + +2012-04-24 Andrew John Hughes + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c: + (Java_gnu_java_awt_peer_gtk_GtkImage_freePixbuf): + Use g_object_unref rather than deprecated gdk_pixbuf_unref + to avoid warning. + +2012-04-03 Andrew John Hughes + + * .gitignore: Renamed from .cvsignore. + +2012-01-01 Jakub Jelinek + + * gnu/java/rmi/registry/RegistryImpl.java (version): Update + copyright notice dates. + * tools/gnu/classpath/tools/orbd/Main.java (run): Likewise. + +2007-02-26 Jakub Jelinek + + * java/util/TimeZone.java (getDefaultDisplayName): Don't + check if TimeZone is instanceof SimpleTimeZone. + +2006-09-13 Andrew Haley + + * java/util/PriorityQueue.java: Throw IllegalArgumentException for + capacity < 1. + (Iterator.remove()): Decrement index after removing element. + +2007-02-14 Jakub Jelinek + Andrew Haley + + * java/util/TimeZone.java (getDateParams): Negate dayOfWeek. + +2012-03-22 Andrew John Hughes + + * java/util/regex/Matcher.java: + (usePattern(Pattern)): Implemented. + +2012-03-25 Gerald Pfeifer + + PR libgcj/52694 + * native/jni/java-io/java_io_VMConsole.c (IUCLC): Define, if + undefined. + +2012-03-16 Andrew John Hughes + + * NEWS: Add key along the same lines + as IcedTea. + +2012-03-12 Pekka Enberg + + * gnu/java/nio/FileLockImpl.java, + * java/beans/XMLDecoder.java, + * java/beans/XMLEncoder.java, + * java/io/Closeable.java, + * java/io/ObjectInput.java, + * java/io/ObjectOutput.java, + * java/lang/AutoCloseable.java, + * java/nio/channels/FileLock.java, + * java/sql/Connection.java, + * java/sql/ResultSet.java, + * java/sql/Statement.java, + * javax/sound/midi/MidiDevice.java, + * javax/sound/midi/Receiver.java, + * javax/sound/midi/Transmitter.java, + * javax/sound/sampled/Line.java: + Add missing interface. + +2012-03-12 Pekka Enberg + + * java/lang/reflect/Modifier.java: + (classModifiers): Add missing method. + (interfaceModifiers): Add missing method. + (constructorModifiers): Add missing method. + (methodModifiers): Add missing method. + (fieldModifiers): Add missing method. + +2012-03-12 Pekka Enberg + + * java/lang/ClassNotFoundException, + * java/lang/IllegalAccessException.java, + * java/lang/InstantiationException.java, + * java/lang/NoSuchFieldException.java, + * java/lang/NoSuchMethodException.java, + * java/lang/ReflectiveOperationException.java, + * java/lang/reflect/InvocationTargetException.java: + Add ReflectiveOperationException class. + +2012-03-12 Pekka Enberg + + * java/lang/AssertionError.java: + (AssertionError): Add missing constructor. + * java/lang/LinkageError.java: + (LinkageError): Add missing constructor. + +2012-03-12 Pekka Enberg + + * java/lang/Boolean.java: + (compare): Add missing method. + * java/lang/Byte.java: + (compare): Add missing method. + * java/lang/Character.java: + (compare): Add missing method. + * java/lang/Integer.java: + (compare): Add missing method. + * java/lang/Long.java: + (compare): Add missing method. + * java/lang/Short.java: + (compare): Add missing method. + +2012-03-12 Pekka Enberg + + * java/lang/System.java: + (lineSeparator): Add missing method. + +2012-03-12 Pekka Enberg + + * java/lang/reflect/Member.java: + (getDeclaringClass): Fix return type. + +2012-03-07 Andrew John Hughes + + * NEWS: + Add section for 1.0 release. + * configure.ac: + Bump to 1.0pre. 2012-03-07 Andrew John Hughes diff --git a/libjava/classpath/ChangeLog.gcj b/libjava/classpath/ChangeLog.gcj index 53d206bdcc95..45da96b0792b 100644 --- a/libjava/classpath/ChangeLog.gcj +++ b/libjava/classpath/ChangeLog.gcj @@ -1,3 +1,8 @@ +2012-12-03 Matthias Klose + + * configure.ac (AM_INIT_AUTOMAKE): Call with no-dist. + * m4/lib-ld.m4, m4/lib-link.m4,m4/lib-prefix.m4: New. + 2012-05-16 H.J. Lu * configure: Regenerated. diff --git a/libjava/classpath/INSTALL b/libjava/classpath/INSTALL index a1e89e18ad20..7d1c323beae7 100644 --- a/libjava/classpath/INSTALL +++ b/libjava/classpath/INSTALL @@ -1,8 +1,8 @@ Installation Instructions ************************* -Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, -Inc. +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, +2006, 2007, 2008, 2009 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright @@ -226,11 +226,6 @@ order to use an ANSI C compiler: and if that doesn't work, install pre-built binaries of GCC for HP-UX. - HP-UX `make' updates targets which have the same time stamps as -their prerequisites, which makes it generally unusable when shipped -generated files such as `configure' are involved. Use GNU `make' -instead. - On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended diff --git a/libjava/classpath/Makefile.in b/libjava/classpath/Makefile.in index 0e8aee5b8d0a..eda3433a3212 100644 --- a/libjava/classpath/Makefile.in +++ b/libjava/classpath/Makefile.in @@ -36,11 +36,11 @@ host_triplet = @host@ target_triplet = @target@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/../../compile \ - $(srcdir)/../../config.guess $(srcdir)/../../config.sub \ - $(srcdir)/../../install-sh $(srcdir)/../../ltmain.sh \ - $(srcdir)/../../missing $(srcdir)/../../mkinstalldirs \ - $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ - $(top_srcdir)/configure \ + $(srcdir)/../../config.guess $(srcdir)/../../config.rpath \ + $(srcdir)/../../config.sub $(srcdir)/../../install-sh \ + $(srcdir)/../../ltmain.sh $(srcdir)/../../missing \ + $(srcdir)/../../mkinstalldirs $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(top_srcdir)/configure \ $(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 \ @@ -57,9 +57,6 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/../../compile \ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ - $(top_srcdir)/../../config/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -78,7 +75,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ @@ -247,6 +246,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/NEWS b/libjava/classpath/NEWS index dd2e1568ff26..0a7884a6fabb 100644 --- a/libjava/classpath/NEWS +++ b/libjava/classpath/NEWS @@ -1,4 +1,27 @@ -New in release 0.99 (Mar 08, 2012) +Key: + +SX - http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=X +RHX - https://bugzilla.redhat.com/show_bug.cgi?id=X +DX - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=X +GX - http://bugs.gentoo.org/show_bug.cgi?id=X +CAX - http://server.complang.tuwien.ac.at/cgi-bin/bugzilla/show_bug.cgi?id=X +LPX - https://bugs.launchpad.net/bugs/X +PRX - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=X + +CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY + +New in release 0.99.1 (XXX XX, 2012) + +* Bug fixes: + - PR42134: NPE in java.text.Bidi + - PR54931: Classpath will not build docs with version of GJDoc included with itself + - PR54960: Avoid NullPointerException in SAXSerializer. + - PR42551: Avoid overwriting length of message when computing length representation. + - PR44208: Ensure a handle for the enum is registered before its constant. + - PR41689: javax.security.sasl.CREDIENTIALS field is missing + - PR55140: Addition of exception to codePointBefore breaks OpenJDK GenerateBreakIteratorData tool + +New in release 0.99 (Feb 15, 2012) * Addition of java.util.regex.Pattern.quote. * Addition of java.io.IOError. diff --git a/libjava/classpath/THANKYOU b/libjava/classpath/THANKYOU index 21e75c84e471..22314d1e7430 100644 --- a/libjava/classpath/THANKYOU +++ b/libjava/classpath/THANKYOU @@ -15,6 +15,7 @@ Moses DeJong (dejong@cs.umn.edu) Patrick Doyle (doylep@eecg.toronto.edu) Julian Dolby (dolby@us.ibm.com) Raimar Falke (hawk@hawk.shef.ac.uk) +Paul Fernhout (pdfernhout@kurtz-fernhout.com) Philip Fong (pwlfong@users.sourceforge.net) Jeroen Frijters (jeroen@sumatra.nl) Etienne M. Gagnon (etienne.gagnon@uqam.ca) @@ -43,6 +44,8 @@ Petter Reinholdtsen (pere@hungry.com) Julian Scheid (julian.scheid@sektor37.de) Martin Schröder (ms@artcom-gmbh.de) Robert Schuster (robertschuster@fsfe.org) +Andreas Sewe (sewe@st.informatik.tu-darmstadt.de) +Jeremy Singer (Jeremy.Singer@glasgow.ac.uk) Gaute Smaaland (gs@sevenmountains.no) Michael Smith (msmith@spinnakernet.com) J. Russell Smyth (drfish@uswest.net) @@ -50,6 +53,7 @@ Ian D. Stewart (idstewart@softhome.net) Jeff Sturm (jsturm@one-point.com) Sreenivas Subramoney (sreenivas.subramoney@intel.com) Chris Toshok (toshok@hungry.com) +Paul Viney (paul@diasoft.nl) Weldon Washburn (weldon.washburn@intel.com) Adam Welc (welc@cs.purdue.edu) Gansha Wu (gansha.wu@intel.com) diff --git a/libjava/classpath/aclocal.m4 b/libjava/classpath/aclocal.m4 index e84d8d8e1a94..c6fce4da260f 100644 --- a/libjava/classpath/aclocal.m4 +++ b/libjava/classpath/aclocal.m4 @@ -1062,9 +1062,6 @@ AC_SUBST([am__untar]) m4_include([../../config/depstand.m4]) m4_include([../../config/lead-dot.m4]) -m4_include([../../config/lib-ld.m4]) -m4_include([../../config/lib-link.m4]) -m4_include([../../config/lib-prefix.m4]) m4_include([../../config/multi.m4]) m4_include([../../config/no-executables.m4]) m4_include([../../config/override.m4]) @@ -1085,4 +1082,7 @@ m4_include([m4/ax_create_stdint_h.m4]) m4_include([m4/ax_func_which_gethostbyname_r.m4]) m4_include([m4/gcc_attribute.m4]) m4_include([m4/iconv.m4]) +m4_include([m4/lib-ld.m4]) +m4_include([m4/lib-link.m4]) +m4_include([m4/lib-prefix.m4]) m4_include([m4/pkg.m4]) diff --git a/libjava/classpath/config.sub b/libjava/classpath/config.sub index 78176a44029f..59bb593f109c 100755 --- a/libjava/classpath/config.sub +++ b/libjava/classpath/config.sub @@ -2,9 +2,9 @@ # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -# 2011 Free Software Foundation, Inc. +# 2011, 2012 Free Software Foundation, Inc. -timestamp='2011-10-29' +timestamp='2012-04-18' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -21,9 +21,7 @@ timestamp='2011-10-29' # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -76,8 +74,8 @@ version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free -Software Foundation, Inc. +2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 +Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -132,6 +130,10 @@ case $maybe_os in os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] @@ -223,6 +225,12 @@ case $os in -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; -lynx*) os=-lynxos ;; @@ -247,6 +255,7 @@ case $basic_machine in # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ + | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ @@ -319,8 +328,7 @@ case $basic_machine in c6x) basic_machine=tic6x-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12 | picochip) - # Motorola 68HC11/12. + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; @@ -333,7 +341,10 @@ case $basic_machine in strongarm | thumb | xscale) basic_machine=arm-unknown ;; - + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; xscaleeb) basic_machine=armeb-unknown ;; @@ -356,6 +367,7 @@ case $basic_machine in # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ + | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ @@ -719,7 +731,6 @@ case $basic_machine in i370-ibm* | ibm*) basic_machine=i370-ibm ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 @@ -816,6 +827,10 @@ case $basic_machine in ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; + msys) + basic_machine=i386-pc + os=-msys + ;; mvs) basic_machine=i370-ibm os=-mvs @@ -1343,7 +1358,7 @@ case $os in | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ @@ -1555,9 +1570,6 @@ case $basic_machine in ;; m68000-sun) os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 ;; m68*-cisco) os=-aout diff --git a/libjava/classpath/configure b/libjava/classpath/configure index 48a422ab1022..e42cde641029 100755 --- a/libjava/classpath/configure +++ b/libjava/classpath/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.64 for GNU Classpath 0.99. +# Generated by GNU Autoconf 2.64 for GNU Classpath 0.99.1-pre. # # Report bugs to . # @@ -559,8 +559,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='GNU Classpath' PACKAGE_TARNAME='classpath' -PACKAGE_VERSION='0.99' -PACKAGE_STRING='GNU Classpath 0.99' +PACKAGE_VERSION='0.99.1-pre' +PACKAGE_STRING='GNU Classpath 0.99.1-pre' PACKAGE_BUGREPORT='classpath@gnu.org' PACKAGE_URL='http://www.gnu.org/software/classpath/' @@ -669,6 +669,7 @@ GLIB_LIBS GLIB_CFLAGS MOZILLA_LIBS MOZILLA_CFLAGS +MOC4 MOC QT_LIBS QT_CFLAGS @@ -1490,7 +1491,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.99 to adapt to many kinds of systems. +\`configure' configures GNU Classpath 0.99.1-pre to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1565,7 +1566,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GNU Classpath 0.99:";; + short | recursive ) echo "Configuration of GNU Classpath 0.99.1-pre:";; esac cat <<\_ACEOF @@ -1757,7 +1758,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -GNU Classpath configure 0.99 +GNU Classpath configure 0.99.1-pre generated by GNU Autoconf 2.64 Copyright (C) 2009 Free Software Foundation, Inc. @@ -2586,7 +2587,7 @@ cat >config.log <<_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.99, which was +It was created by GNU Classpath $as_me 0.99.1-pre, which was generated by GNU Autoconf 2.64. Invocation command line was $ $0 $@ @@ -3621,7 +3622,7 @@ fi # Define the identity of the package. PACKAGE='classpath' - VERSION='0.99' + VERSION='0.99.1-pre' cat >>confdefs.h <<_ACEOF @@ -3880,10 +3881,10 @@ if test "${enable_Werror+set}" = set; then : enableval=$enable_Werror; case "${enableval}" in yes) ENABLE_WERROR=yes ;; no) ENABLE_WERROR=no ;; - *) ENABLE_WERROR=default ;; + *) ENABLE_WERROR=no ;; esac else - ENABLE_WERROR=default + ENABLE_WERROR=no fi @@ -11819,7 +11820,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11822 "configure" +#line 11823 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11925,7 +11926,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11928 "configure" +#line 11929 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -17957,7 +17958,7 @@ $as_echo_n "checking for ld used by GCC... " >&6; } # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; @@ -17989,11 +17990,12 @@ else # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. - if "$acl_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi + case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break ;; + *) + test "$with_gnu_ld" != yes && break ;; + esac fi done IFS="$ac_save_ifs" @@ -18017,11 +18019,12 @@ if test "${acl_cv_prog_gnu_ld+set}" = set; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then - acl_cv_prog_gnu_ld=yes -else - acl_cv_prog_gnu_ld=no -fi +case `$LD -v 2>&1 &5 $as_echo "$acl_cv_prog_gnu_ld" >&6; } @@ -18029,6 +18032,7 @@ with_gnu_ld=$acl_cv_prog_gnu_ld + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 $as_echo_n "checking for shared library run path origin... " >&6; } if test "${acl_cv_rpath+set}" = set; then : @@ -18045,12 +18049,14 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 $as_echo "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" - libext="$acl_cv_libext" - shlibext="$acl_cv_shlibext" - hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" - hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" - hardcode_direct="$acl_cv_hardcode_direct" - hardcode_minus_L="$acl_cv_hardcode_minus_L" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then : enableval=$enable_rpath; : @@ -18061,6 +18067,74 @@ fi + acl_libdirstem=lib + acl_libdirstem2= + case "$host_os" in + solaris*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 +$as_echo_n "checking for 64-bit host... " >&6; } +if test "${gl_cv_solaris_64bit+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _LP64 +sixtyfour bits +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "sixtyfour bits" >/dev/null 2>&1; then : + gl_cv_solaris_64bit=yes +else + gl_cv_solaris_64bit=no +fi +rm -f conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 +$as_echo "$gl_cv_solaris_64bit" >&6; } + if test $gl_cv_solaris_64bit = yes; then + acl_libdirstem=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem2=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; + esac + fi + ;; + *) + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" + + + + + + + + @@ -18100,7 +18174,11 @@ if test "${with_libiconv_prefix+set}" = set; then : else additional_includedir="$withval/include" - additional_libdir="$withval/lib" + additional_libdir="$withval/$acl_libdirstem" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi fi fi @@ -18109,6 +18187,8 @@ fi LIBICONV= LTLIBICONV= INCICONV= + LIBICONV_PREFIX= + HAVE_LIBICONV= rpathdirs= ltrpathdirs= names_already_handled= @@ -18142,21 +18222,51 @@ fi found_la= found_so= found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi if test $use_additional = yes; then - if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then - found_dir="$additional_libdir" - found_so="$additional_libdir/lib$name.$shlibext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" - fi - else - if test -f "$additional_libdir/lib$name.$libext"; then - found_dir="$additional_libdir" - found_a="$additional_libdir/lib$name.$libext" - if test -f "$additional_libdir/lib$name.la"; then - found_la="$additional_libdir/lib$name.la" + dir="$additional_libdir" + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done fi fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi fi fi if test "X$found_dir" = "X"; then @@ -18173,20 +18283,43 @@ fi case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then - found_dir="$dir" - found_so="$dir/lib$name.$shlibext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" - fi - else - if test -f "$dir/lib$name.$libext"; then + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then found_dir="$dir" - found_a="$dir/lib$name.$libext" - if test -f "$dir/lib$name.la"; then - found_la="$dir/lib$name.la" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done fi fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi fi ;; esac @@ -18198,7 +18331,9 @@ fi if test "X$found_dir" != "X"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then - if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else haveit= @@ -18211,10 +18346,10 @@ fi if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi - if test "$hardcode_direct" = yes; then + if test "$acl_hardcode_direct" = yes; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else - if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" haveit= for x in $rpathdirs; do @@ -18246,7 +18381,7 @@ fi if test -z "$haveit"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" fi - if test "$hardcode_minus_L" != no; then + if test "$acl_hardcode_minus_L" != no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" @@ -18263,8 +18398,18 @@ fi fi additional_includedir= case "$found_dir" in - */lib | */lib/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = 'iconv'; then + LIBICONV_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = 'iconv'; then + LIBICONV_PREFIX="$basedir" + fi additional_includedir="$basedir/include" ;; esac @@ -18274,7 +18419,7 @@ fi if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in - linux*) haveit=yes;; + linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi @@ -18313,12 +18458,14 @@ fi case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - if test "X$additional_libdir" != "X/usr/lib"; then + if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= - if test "X$additional_libdir" = "X/usr/local/lib"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in - linux*) haveit=yes;; + linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi @@ -18415,21 +18562,21 @@ fi done done if test "X$rpathdirs" != "X"; then - if test -n "$hardcode_libdir_separator"; then + if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" - eval flag=\"$hardcode_libdir_flag_spec\" + eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" - eval flag=\"$hardcode_libdir_flag_spec\" + eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" done @@ -18447,6 +18594,11 @@ fi + + + + + am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do @@ -20897,11 +21049,11 @@ fi set dummy moc-qt4; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_MOC+set}" = set; then : +if test "${ac_cv_prog_MOC4+set}" = set; then : $as_echo_n "(cached) " >&6 else - if test -n "$MOC"; then - ac_cv_prog_MOC="$MOC" # Let the user override the test. + if test -n "$MOC4"; then + ac_cv_prog_MOC4="$MOC4" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -20910,7 +21062,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_MOC="moc-qt4" + ac_cv_prog_MOC4="moc-qt4" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -20920,16 +21072,21 @@ IFS=$as_save_IFS fi fi -MOC=$ac_cv_prog_MOC -if test -n "$MOC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC" >&5 -$as_echo "$MOC" >&6; } +MOC4=$ac_cv_prog_MOC4 +if test -n "$MOC4"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MOC4" >&5 +$as_echo "$MOC4" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi + if test x"$MOC4" != x ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: Using $MOC4 as moc" >&5 +$as_echo "$as_me: Using $MOC4 as moc" >&6;} + MOC=$MOC4; + fi fi if test "x$HAVE_QT4" = "xno"; then { $as_echo "$as_me:${as_lineno-$LINENO}: Looking for QT_CFLAGS and QT_LIBS without pkg-config" >&5 @@ -23038,6 +23195,8 @@ $as_echo "${gjdoc_version}" >&6; } case ${gjdoc_version} in 0.7.9) ;; 0.8*) ;; + 0.9*) ;; + 1*) ;; *) as_fn_error "Building documentation requires GJDoc >= 0.7.9, ${gjdoc_version} found." "$LINENO" 5 ;; esac fi @@ -23757,7 +23916,7 @@ fi test "x$JAVA" = x && as_fn_error "no acceptable Java virtual machine found in \$PATH" "$LINENO" 5 -ECJ_OPTS="-warn:-deprecation,serial,unusedImport" +ECJ_OPTS="-warn:-deprecation,serial,unusedImport,unusedPrivate,resource" JAVAC_OPTS="-Xlint:unchecked,cast,divzero,empty,finally,overrides" GCJ_OPTS="-g" if test "x$JAVAPREFIX" = x; then @@ -23887,7 +24046,7 @@ else JAVA_TEST=Object.java CLASS_TEST=Object.class cat << \EOF > $JAVA_TEST -/* #line 23890 "configure" */ +/* #line 24049 "configure" */ package java.lang; public class Object @@ -23980,7 +24139,7 @@ EOF if uudecode$EXEEXT Test.uue; then ac_cv_prog_uudecode_base64=yes else - echo "configure: 23983: uudecode had trouble decoding base 64 file 'Test.uue'" >&5 + echo "configure: 24142: uudecode had trouble decoding base 64 file 'Test.uue'" >&5 echo "configure: failed file was:" >&5 cat Test.uue >&5 ac_cv_prog_uudecode_base64=no @@ -24008,7 +24167,7 @@ JAVA_TEST=Test.java CLASS_TEST=Test.class TEST=Test cat << \EOF > $JAVA_TEST -/* [#]line 24011 "configure" */ +/* [#]line 24170 "configure" */ public class Test { public static void main (String args[]) { System.exit (0); @@ -24216,7 +24375,7 @@ if test "x${use_glibj_zip}" = xfalse || \ JAVA_TEST=Test.java CLASS_TEST=Test.class cat << \EOF > $JAVA_TEST - /* #line 24219 "configure" */ + /* #line 24378 "configure" */ public class Test { public static void main(String args) @@ -25061,7 +25220,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by GNU Classpath $as_me 0.99, which was +This file was extended by GNU Classpath $as_me 0.99.1-pre, which was generated by GNU Autoconf 2.64. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -25131,7 +25290,7 @@ General help using GNU software: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ -GNU Classpath config.status 0.99 +GNU Classpath config.status 0.99.1-pre configured by $0, generated by GNU Autoconf 2.64, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" diff --git a/libjava/classpath/configure.ac b/libjava/classpath/configure.ac index 60121a56356d..910c8f02e9a4 100644 --- a/libjava/classpath/configure.ac +++ b/libjava/classpath/configure.ac @@ -6,7 +6,7 @@ dnl ----------------------------------------------------------- dnl define([AC_CACHE_LOAD], )dnl dnl define([AC_CACHE_SAVE], )dnl -AC_INIT([GNU Classpath],[0.99],[classpath@gnu.org],[classpath]) +AC_INIT([GNU Classpath],[0.99.1-pre],[classpath@gnu.org],[classpath]) AC_CONFIG_SRCDIR(java/lang/System.java) AC_CONFIG_MACRO_DIR([m4]) @@ -75,7 +75,7 @@ CLASSPATH_CONVENIENCE="-no-undefined" AC_SUBST(CLASSPATH_CONVENIENCE) AC_PREREQ(2.64) -AM_INIT_AUTOMAKE([1.9.0 gnu std-options tar-ustar -Wno-portability]) +AM_INIT_AUTOMAKE([1.9.0 no-dist gnu std-options tar-ustar -Wno-portability]) AC_CONFIG_HEADERS([include/config.h]) AC_PREFIX_DEFAULT(/usr/local/classpath) @@ -183,9 +183,9 @@ AC_ARG_ENABLE([Werror], [case "${enableval}" in yes) ENABLE_WERROR=yes ;; no) ENABLE_WERROR=no ;; - *) ENABLE_WERROR=default ;; + *) ENABLE_WERROR=no ;; esac], - [ENABLE_WERROR=default]) + [ENABLE_WERROR=no]) dnl ----------------------------------------------------------- dnl Default AWT toolkit @@ -703,7 +703,11 @@ if test "x${COMPILE_JNI}" = xyes; then QT_CFLAGS="$QT_CFLAGS -I$EXTRA_QT_INCLUDE_DIR", AC_MSG_WARN([QWidget not found]))) AC_CHECK_PROG(MOC, [moc], [moc]) - AC_CHECK_PROG(MOC, [moc-qt4], [moc-qt4]) + AC_CHECK_PROG(MOC4, [moc-qt4], [moc-qt4]) + if test x"$MOC4" != x ; then + AC_MSG_NOTICE([Using $MOC4 as moc]) + MOC=$MOC4; + fi fi if test "x$HAVE_QT4" = "xno"; then AC_MSG_NOTICE([Looking for QT_CFLAGS and QT_LIBS without pkg-config]) diff --git a/libjava/classpath/depcomp b/libjava/classpath/depcomp index bd0ac089584a..df8eea7e4ce8 100755 --- a/libjava/classpath/depcomp +++ b/libjava/classpath/depcomp @@ -1,10 +1,10 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2011-12-04.11; # UTC +scriptversion=2009-04-28.21; # UTC -# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, -# 2011 Free Software Foundation, Inc. +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 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 @@ -44,7 +44,7 @@ Environment variables: object Object file output by `PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. - tmpdepfile Temporary file to use when outputting dependencies. + tmpdepfile Temporary file to use when outputing dependencies. libtool Whether libtool is used (yes/no). Report bugs to . @@ -90,18 +90,10 @@ if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' + cygpath_u="sed s,\\\\\\\\,/,g" depmode=msvisualcpp fi -if test "$depmode" = msvc7msys; then - # This is just like msvc7 but w/o cygpath translation. - # Just convert the backslash-escaped backslashes to single forward - # slashes to satisfy depend.m4 - cygpath_u='sed s,\\\\,/,g' - depmode=msvc7 -fi - case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what @@ -166,12 +158,10 @@ gcc) ' < "$tmpdepfile" | ## Some versions of gcc put a space before the `:'. On the theory ## that the space means something, we add a space to the output as -## well. hp depmode also adds that space, but also prefixes the VPATH -## to the object. Take care to not repeat it in the output. +## well. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. - sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ - | sed -e 's/$/ :/' >> "$depfile" + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; @@ -415,52 +405,6 @@ tru64) rm -f "$tmpdepfile" ;; -msvc7) - if test "$libtool" = yes; then - showIncludes=-Wc,-showIncludes - else - showIncludes=-showIncludes - fi - "$@" $showIncludes > "$tmpdepfile" - stat=$? - grep -v '^Note: including file: ' "$tmpdepfile" - if test "$stat" = 0; then : - else - rm -f "$tmpdepfile" - exit $stat - fi - rm -f "$depfile" - echo "$object : \\" > "$depfile" - # The first sed program below extracts the file names and escapes - # backslashes for cygpath. The second sed program outputs the file - # name when reading, but also accumulates all include files in the - # hold buffer in order to output them again at the end. This only - # works with sed implementations that can handle large buffers. - sed < "$tmpdepfile" -n ' -/^Note: including file: *\(.*\)/ { - s//\1/ - s/\\/\\\\/g - p -}' | $cygpath_u | sort -u | sed -n ' -s/ /\\ /g -s/\(.*\)/ \1 \\/p -s/.\(.*\) \\/\1:/ -H -$ { - s/.*/ / - G - p -}' >> "$depfile" - rm -f "$tmpdepfile" - ;; - -msvc7msys) - # This case exists only to let depend.m4 do its work. It works by - # looking at the text of this script. This case will never be run, - # since it is checked for above. - exit 1 - ;; - #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. @@ -559,9 +503,7 @@ makedepend) touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" - # makedepend may prepend the VPATH from the source file name to the object. - # No need to regex-escape $object, excess matching of '.' is harmless. - sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + cat < "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' ' ' | \ ## Some versions of the HPUX 10.20 sed can't process this invocation diff --git a/libjava/classpath/doc/Makefile.am b/libjava/classpath/doc/Makefile.am index a5f19b7e5da8..27a378d07be8 100644 --- a/libjava/classpath/doc/Makefile.am +++ b/libjava/classpath/doc/Makefile.am @@ -7,8 +7,9 @@ EXTRA_DIST = README.jaxp texi2pod.pl $(man_MANS) TEXINFO_TEX = ../../gcc/doc/include/texinfo.tex info_TEXINFOS = cp-tools.texinfo +# POSIX locale necessary to make grep work; see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=586134 .texinfo.dvi: - texi2dvi $< + LC_ALL=POSIX texi2dvi --build-dir=$(builddir) -o $@ $< .dvi.ps: dvips -o $@ $< @@ -135,3 +136,6 @@ MAINTAINERCLEANFILES = \ $(srcdir)/gserialver.1 \ $(srcdir)/gtnameserv.1 \ $(srcdir)/cp-tools.info + +clean-local: + -rm -rf *.t2d diff --git a/libjava/classpath/doc/Makefile.in b/libjava/classpath/doc/Makefile.in index 7a2432c0dda1..060ddea533bf 100644 --- a/libjava/classpath/doc/Makefile.in +++ b/libjava/classpath/doc/Makefile.in @@ -39,9 +39,6 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in texinfo.tex ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \ $(top_srcdir)/../../config/lead-dot.m4 \ - $(top_srcdir)/../../config/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -60,7 +57,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -245,6 +244,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ @@ -868,7 +868,8 @@ maintainer-clean-generic: -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive -clean-am: clean-aminfo clean-generic clean-libtool mostlyclean-am +clean-am: clean-aminfo clean-generic clean-libtool clean-local \ + mostlyclean-am distclean: distclean-recursive -rm -f Makefile @@ -1018,10 +1019,10 @@ uninstall-man: uninstall-man1 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am all-local check check-am clean clean-aminfo \ - clean-generic clean-libtool ctags ctags-recursive dist-info \ - distclean 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-dvi \ + clean-generic clean-libtool clean-local ctags ctags-recursive \ + dist-info distclean 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-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-man1 install-pdf install-pdf-am install-ps \ @@ -1034,8 +1035,9 @@ uninstall-man: uninstall-man1 uninstall-man uninstall-man1 uninstall-pdf-am uninstall-ps-am +# POSIX locale necessary to make grep work; see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=586134 .texinfo.dvi: - texi2dvi $< + LC_ALL=POSIX texi2dvi --build-dir=$(builddir) -o $@ $< .dvi.ps: dvips -o $@ $< @@ -1113,6 +1115,9 @@ stamp-geninsrc: $(TOOLS_MANFILES) cp-tools.info -cp -p cp-tools.info $(srcdir)/cp-tools.info touch $@ +clean-local: + -rm -rf *.t2d + # 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/doc/api/Makefile.in b/libjava/classpath/doc/api/Makefile.in index c811ef15ac38..88bd46b1c878 100644 --- a/libjava/classpath/doc/api/Makefile.in +++ b/libjava/classpath/doc/api/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -170,6 +169,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/doc/cp-tools.texinfo b/libjava/classpath/doc/cp-tools.texinfo index 7b4e747319eb..ec186dee7785 100644 --- a/libjava/classpath/doc/cp-tools.texinfo +++ b/libjava/classpath/doc/cp-tools.texinfo @@ -2438,14 +2438,14 @@ with the header @samp{CVS ID}, you would specify: Let's say that a class javadoc comment contains @smallexample -@@cvsid $Id: cp-tools.texinfo,v 1.9 2012/03/07 15:27:27 gnu_andrew Exp $ +@@cvsid $Id: cp-tools.texinfo,v 1.9 2012-03-07 15:27:27 gnu_andrew Exp $ @end smallexample Then the HTML output will contain something like @smallexample CVS ID: - $Id: cp-tools.texinfo,v 1.9 2012/03/07 15:27:27 gnu_andrew Exp $ + $Id: cp-tools.texinfo,v 1.9 2012-03-07 15:27:27 gnu_andrew Exp $ @end smallexample @end table diff --git a/libjava/classpath/doc/texinfo.tex b/libjava/classpath/doc/texinfo.tex index 2abda0f3daf9..91408263bc9c 100644 --- a/libjava/classpath/doc/texinfo.tex +++ b/libjava/classpath/doc/texinfo.tex @@ -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{2012-01-03.09} +\def\texinfoversion{2009-08-14.15} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, -% 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. +% 2007, 2008, 2009 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 @@ -65,6 +65,7 @@ \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} + \chardef\other=12 % We never want plain's \outer definition of \+ in Texinfo. @@ -92,13 +93,14 @@ \let\ptexnewwrite\newwrite \let\ptexnoindent=\noindent \let\ptexplus=+ -\let\ptexraggedright=\raggedright \let\ptexrbrace=\} \let\ptexslash=\/ \let\ptexstar=\* \let\ptext=\t \let\ptextop=\top -{\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode +{\catcode`\'=\active +\global\let\ptexquoteright'}% Math-mode def from plain.tex. +\let\ptexraggedright=\raggedright % If this character appears in an error message or help string, it % starts a new line in the output. @@ -116,11 +118,10 @@ % Set up fixed words for English if not already set. \ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi -\ifx\putworderror\undefined \gdef\putworderror{error}\fi \ifx\putwordfile\undefined \gdef\putwordfile{file}\fi \ifx\putwordin\undefined \gdef\putwordin{in}\fi -\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi -\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi +\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi +\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi \ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi \ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi \ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi @@ -159,18 +160,15 @@ \def\spaceisspace{\catcode`\ =\spacecat} % sometimes characters are active, so we need control sequences. -\chardef\ampChar = `\& \chardef\colonChar = `\: \chardef\commaChar = `\, \chardef\dashChar = `\- \chardef\dotChar = `\. \chardef\exclamChar= `\! -\chardef\hashChar = `\# \chardef\lquoteChar= `\` \chardef\questChar = `\? \chardef\rquoteChar= `\' \chardef\semiChar = `\; -\chardef\slashChar = `\/ \chardef\underChar = `\_ % Ignore a token. @@ -201,7 +199,36 @@ % that mark overfull boxes (in case you have decided % that the text looks ok even though it passes the margin). % -\def\finalout{\overfullrule=0pt } +\def\finalout{\overfullrule=0pt} + +% @| inserts a changebar to the left of the current line. It should +% surround any changed text. This approach does *not* work if the +% change spans more than two lines of output. To handle that, we would +% have adopt a much more difficult approach (putting marks into the main +% vertical list for the beginning and end of each change). +% +\def\|{% + % \vadjust can only be used in horizontal mode. + \leavevmode + % + % Append this vertical mode material after the current line in the output. + \vadjust{% + % We want to insert a rule with the height and depth of the current + % leading; that is exactly what \strutbox is supposed to record. + \vskip-\baselineskip + % + % \vadjust-items are inserted at the left edge of the type. So + % the \llap here moves out into the left-hand margin. + \llap{% + % + % For a thicker or thinner bar, change the `1pt'. + \vrule height\baselineskip width1pt + % + % This is the space between the bar and the text. + \hskip 12pt + }% + }% +} % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, @@ -219,7 +246,7 @@ \tracingmacros2 \tracingrestores1 \showboxbreadth\maxdimen \showboxdepth\maxdimen - \ifx\eTeXversion\thisisundefined\else % etex gives us more logging + \ifx\eTeXversion\undefined\else % etex gives us more logging \tracingscantokens1 \tracingifs1 \tracinggroups1 @@ -230,13 +257,6 @@ \errorcontextlines16 }% -% @errormsg{MSG}. Do the index-like expansions on MSG, but if things -% aren't perfect, it's not the end of the world, being an error message, -% after all. -% -\def\errormsg{\begingroup \indexnofonts \doerrormsg} -\def\doerrormsg#1{\errmessage{#1}} - % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. % @@ -247,6 +267,7 @@ \def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount \removelastskip\penalty-200\bigskip\fi\fi} +% For @cropmarks command. % Do @cropmarks to get crop marks. % \newif\ifcropmarks @@ -556,7 +577,7 @@ } \def\inenvironment#1{% \ifx#1\empty - outside of any environment% + out of any environment% \else in environment \expandafter\string#1% \fi @@ -568,7 +589,7 @@ \parseargdef\end{% \if 1\csname iscond.#1\endcsname \else - % The general wording of \badenverr may not be ideal. + % The general wording of \badenverr may not be ideal, but... --kasal, 06nov03 \expandafter\checkenv\csname#1\endcsname \csname E#1\endcsname \endgroup @@ -578,6 +599,85 @@ \newhelp\EMsimple{Press RETURN to continue.} +%% Simple single-character @ commands + +% @@ prints an @ +% Kludge this until the fonts are right (grr). +\def\@{{\tt\char64}} + +% This is turned off because it was never documented +% and you can use @w{...} around a quote to suppress ligatures. +%% Define @` and @' to be the same as ` and ' +%% but suppressing ligatures. +%\def\`{{`}} +%\def\'{{'}} + +% Used to generate quoted braces. +\def\mylbrace {{\tt\char123}} +\def\myrbrace {{\tt\char125}} +\let\{=\mylbrace +\let\}=\myrbrace +\begingroup + % Definitions to produce \{ and \} commands for indices, + % and @{ and @} for the aux/toc files. + \catcode`\{ = \other \catcode`\} = \other + \catcode`\[ = 1 \catcode`\] = 2 + \catcode`\! = 0 \catcode`\\ = \other + !gdef!lbracecmd[\{]% + !gdef!rbracecmd[\}]% + !gdef!lbraceatcmd[@{]% + !gdef!rbraceatcmd[@}]% +!endgroup + +% @comma{} to avoid , parsing problems. +\let\comma = , + +% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent +% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. +\let\, = \c +\let\dotaccent = \. +\def\ringaccent#1{{\accent23 #1}} +\let\tieaccent = \t +\let\ubaraccent = \b +\let\udotaccent = \d + +% Other special characters: @questiondown @exclamdown @ordf @ordm +% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. +\def\questiondown{?`} +\def\exclamdown{!`} +\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}} +\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}} + +% Dotless i and dotless j, used for accents. +\def\imacro{i} +\def\jmacro{j} +\def\dotless#1{% + \def\temp{#1}% + \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi + \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi + \else \errmessage{@dotless can be used only with i or j}% + \fi\fi +} + +% The \TeX{} logo, as in plain, but resetting the spacing so that a +% period following counts as ending a sentence. (Idea found in latex.) +% +\edef\TeX{\TeX \spacefactor=1000 } + +% @LaTeX{} logo. Not quite the same results as the definition in +% latex.ltx, since we use a different font for the raised A; it's most +% convenient for us to use an explicitly smaller font, rather than using +% the \scriptstyle font (since we don't reset \scriptstyle and +% \scriptscriptstyle). +% +\def\LaTeX{% + L\kern-.36em + {\setbox0=\hbox{T}% + \vbox to \ht0{\hbox{\selectfonts\lllsize A}\vss}}% + \kern-.15em + \TeX +} + % Be sure we're in horizontal mode when doing a tie, since we make space % equivalent to this in @example-like environments. Otherwise, a space % at the beginning of a line will start with \penalty -- and @@ -619,7 +719,7 @@ \else\ifx\temp\offword \plainnonfrenchspacing \else \errhelp = \EMsimple - \errmessage{Unknown @frenchspacing option `\temp', must be on|off}% + \errmessage{Unknown @frenchspacing option `\temp', must be on/off}% \fi\fi } @@ -701,6 +801,15 @@ where each line of input produces a line of output.} \newdimen\mil \mil=0.001in +% Old definition--didn't work. +%\parseargdef\need{\par % +%% This method tries to make TeX break the page naturally +%% if the depth of the box does not fit. +%{\baselineskip=0pt% +%\vtop to #1\mil{\vfil}\kern -#1\mil\nobreak +%\prevdepth=-1000pt +%}} + \parseargdef\need{% % Ensure vertical mode, so we don't make a big box in the middle of a % paragraph. @@ -764,7 +873,7 @@ where each line of input produces a line of output.} % @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current % paragraph. For more general purposes, use the \margin insertion -% class. WHICH is `l' or `r'. Not documented, written for gawk manual. +% class. WHICH is `l' or `r'. % \newskip\inmarginspacing \inmarginspacing=1cm \def\strutdepth{\dp\strutbox} @@ -811,36 +920,6 @@ where each line of input produces a line of output.} \temp } -% @| inserts a changebar to the left of the current line. It should -% surround any changed text. This approach does *not* work if the -% change spans more than two lines of output. To handle that, we would -% have adopt a much more difficult approach (putting marks into the main -% vertical list for the beginning and end of each change). This command -% is not documented, not supported, and doesn't work. -% -\def\|{% - % \vadjust can only be used in horizontal mode. - \leavevmode - % - % Append this vertical mode material after the current line in the output. - \vadjust{% - % We want to insert a rule with the height and depth of the current - % leading; that is exactly what \strutbox is supposed to record. - \vskip-\baselineskip - % - % \vadjust-items are inserted at the left edge of the type. So - % the \llap here moves out into the left-hand margin. - \llap{% - % - % For a thicker or thinner bar, change the `1pt'. - \vrule height\baselineskip width1pt - % - % This is the space between the bar and the text. - \hskip 12pt - }% - }% -} - % @include FILE -- \input text of FILE. % \def\include{\parseargusing\filenamecatcodes\includezzz} @@ -851,7 +930,6 @@ where each line of input produces a line of output.} \makevalueexpandable % we want to expand any @value in FILE. \turnoffactive % and allow special characters in the expansion \indexnofonts % Allow `@@' and other weird things in file names. - \wlog{texinfo.tex: doing @include of #1^^J}% \edef\temp{\noexpand\input #1 }% % % This trickery is to read FILE outside of a group, in case it makes @@ -1017,6 +1095,109 @@ where each line of input produces a line of output.} } +% @asis just yields its argument. Used with @table, for example. +% +\def\asis#1{#1} + +% @math outputs its argument in math mode. +% +% One complication: _ usually means subscripts, but it could also mean +% an actual _ character, as in @math{@var{some_variable} + 1}. So make +% _ active, and distinguish by seeing if the current family is \slfam, +% which is what @var uses. +{ + \catcode`\_ = \active + \gdef\mathunderscore{% + \catcode`\_=\active + \def_{\ifnum\fam=\slfam \_\else\sb\fi}% + } +} +% Another complication: we want \\ (and @\) to output a \ character. +% FYI, plain.tex uses \\ as a temporary control sequence (why?), but +% this is not advertised and we don't care. Texinfo does not +% otherwise define @\. +% +% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. +\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} +% +\def\math{% + \tex + \mathunderscore + \let\\ = \mathbackslash + \mathactive + % make the texinfo accent commands work in math mode + \let\"=\ddot + \let\'=\acute + \let\==\bar + \let\^=\hat + \let\`=\grave + \let\u=\breve + \let\v=\check + \let\~=\tilde + \let\dotaccent=\dot + $\finishmath +} +\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. + +% Some active characters (such as <) are spaced differently in math. +% We have to reset their definitions in case the @math was an argument +% to a command which sets the catcodes (such as @item or @section). +% +{ + \catcode`^ = \active + \catcode`< = \active + \catcode`> = \active + \catcode`+ = \active + \catcode`' = \active + \gdef\mathactive{% + \let^ = \ptexhat + \let< = \ptexless + \let> = \ptexgtr + \let+ = \ptexplus + \let' = \ptexquoteright + } +} + +% Some math mode symbols. +\def\bullet{$\ptexbullet$} +\def\geq{\ifmmode \ge\else $\ge$\fi} +\def\leq{\ifmmode \le\else $\le$\fi} +\def\minus{\ifmmode -\else $-$\fi} + +% @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. +% +\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 + }% +} + +% @enddots{} is an end-of-sentence ellipsis. +% +\def\enddots{% + \dots + \spacefactor=\endofsentencespacefactor +} + +% @comma{} is so commas can be inserted into text without messing up +% Texinfo's parsing. +% +\let\comma = , + % @refill is a no-op. \let\refill=\relax @@ -1081,8 +1262,9 @@ where each line of input produces a line of output.} \newif\ifpdfmakepagedest % when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1 -% can be set). So we test for \relax and 0 as well as being undefined. -\ifx\pdfoutput\thisisundefined +% can be set). So we test for \relax and 0 as well as \undefined, +% borrowed from ifpdf.sty. +\ifx\pdfoutput\undefined \else \ifx\pdfoutput\relax \else @@ -1097,24 +1279,50 @@ where each line of input produces a line of output.} % 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. -% -% See 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. pdftex 1.30.0 (ca.2005) introduced a primitive to -% do this reliably, so we use it. - -% #1 is a control sequence in which to do the replacements, -% which we \xdef. -\def\txiescapepdf#1{% - \ifx\pdfescapestring\relax - % No primitive available; should we give a warning or log? - % Many times it won't matter. - \else - % The expandable \pdfescapestring primitive escapes parentheses, - % backslashes, and other special chars. - \xdef#1{\pdfescapestring{#1}}% - \fi +% 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). + +% double active backslashes. +% +{\catcode`\@=0 \catcode`\\=\active + @gdef@activebackslashdouble{% + @catcode`@\=@active + @let\=@doublebackslash} +} + +% To handle parens, we must adopt a different approach, since parens are +% not active characters. hyperref.dtx (which has the same problem as +% us) handles it with this amazing macro to replace tokens, with minor +% changes for Texinfo. It is included here under the GPL by permission +% from the author, Heiko Oberdiek. +% +% #1 is the tokens to replace. +% #2 is the replacement. +% #3 is the control sequence with the string. +% +\def\HyPsdSubst#1#2#3{% + \def\HyPsdReplace##1#1##2\END{% + ##1% + \ifx\\##2\\% + \else + #2% + \HyReturnAfterFi{% + \HyPsdReplace##2\END + }% + \fi + }% + \xdef#3{\expandafter\HyPsdReplace#3#1\END}% +} +\long\def\HyReturnAfterFi#1\fi{\fi#1} + +% #1 is a control sequence in which to do the replacements. +\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}% } \newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images @@ -1176,31 +1384,29 @@ output) for that.)} \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% % - % pdftex (and the PDF format) support .pdf, .png, .jpg (among - % others). Let's try in that order, PDF first since if - % someone has a scalable image, presumably better to use that than a - % bitmap. + % pdftex (and the PDF format) support .png, .jpg, .pdf (among + % others). Let's try in that order. \let\pdfimgext=\empty \begingroup - \openin 1 #1.pdf \ifeof 1 - \openin 1 #1.PDF \ifeof 1 - \openin 1 #1.png \ifeof 1 - \openin 1 #1.jpg \ifeof 1 - \openin 1 #1.jpeg \ifeof 1 - \openin 1 #1.JPG \ifeof 1 + \openin 1 #1.png \ifeof 1 + \openin 1 #1.jpg \ifeof 1 + \openin 1 #1.jpeg \ifeof 1 + \openin 1 #1.JPG \ifeof 1 + \openin 1 #1.pdf \ifeof 1 + \openin 1 #1.PDF \ifeof 1 \errhelp = \nopdfimagehelp \errmessage{Could not find image file #1 for pdf}% - \else \gdef\pdfimgext{JPG}% + \else \gdef\pdfimgext{PDF}% \fi - \else \gdef\pdfimgext{jpeg}% + \else \gdef\pdfimgext{pdf}% \fi - \else \gdef\pdfimgext{jpg}% + \else \gdef\pdfimgext{JPG}% \fi - \else \gdef\pdfimgext{png}% + \else \gdef\pdfimgext{jpeg}% \fi - \else \gdef\pdfimgext{PDF}% + \else \gdef\pdfimgext{jpg}% \fi - \else \gdef\pdfimgext{pdf}% + \else \gdef\pdfimgext{png}% \fi \closein 1 \endgroup @@ -1228,9 +1434,10 @@ output) for that.)} % such as \, aren't expanded when present in a section title. \indexnofonts \turnoffactive + \activebackslashdouble \makevalueexpandable \def\pdfdestname{#1}% - \txiescapepdf\pdfdestname + \backslashparens\pdfdestname \safewhatsit{\pdfdest name{\pdfdestname} xyz}% }} % @@ -1262,24 +1469,29 @@ output) for that.)} % page number. We could generate a destination for the section % text in the case where a section has no node, but it doesn't % seem worth the trouble, since most documents are normally structured. - \edef\pdfoutlinedest{#3}% + \def\pdfoutlinedest{#3}% \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}% \else - \txiescapepdf\pdfoutlinedest + % Doubled backslashes in the name. + {\activebackslashdouble \xdef\pdfoutlinedest{#3}% + \backslashparens\pdfoutlinedest}% \fi % - % Also escape PDF chars in the display string. - \edef\pdfoutlinetext{#1}% - \txiescapepdf\pdfoutlinetext + % Also double the backslashes in the display string. + {\activebackslashdouble \xdef\pdfoutlinetext{#1}% + \backslashparens\pdfoutlinetext}% % \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}% } % \def\pdfmakeoutlines{% \begingroup + % Thanh's hack / proper braces in bookmarks + \edef\mylbrace{\iftrue \string{\else}\fi}\let\{=\mylbrace + \edef\myrbrace{\iffalse{\else\string}\fi}\let\}=\myrbrace + % % Read toc silently, to get counts of subentries for \pdfoutline. - \def\partentry##1##2##3##4{}% ignore parts in the outlines \def\numchapentry##1##2##3##4{% \def\thischapnum{##2}% \def\thissecnum{0}% @@ -1333,26 +1545,15 @@ output) for that.)} % Latin 2 (0xea) gets translated to a | character. Info from % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100. % - % TODO this right, we have to translate 8-bit characters to - % their "best" equivalent, based on the @documentencoding. Too - % much work for too little return. Just use the ASCII equivalents - % we use for the index sort strings. - % + % xx to do this right, we have to translate 8-bit characters to + % their "best" equivalent, based on the @documentencoding. Right + % now, I guess we'll just let the pdf reader have its way. \indexnofonts \setupdatafile - % We can have normal brace characters in the PDF outlines, unlike - % Texinfo index files. So set that up. - \def\{{\lbracecharliteral}% - \def\}{\rbracecharliteral}% \catcode`\\=\active \otherbackslash \input \tocreadfilename \endgroup } - {\catcode`[=1 \catcode`]=2 - \catcode`{=\other \catcode`}=\other - \gdef\lbracecharliteral[{]% - \gdef\rbracecharliteral[}]% - ] % \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax @@ -1494,7 +1695,7 @@ output) for that.)} % if we are producing pdf, and we have \pdffontattr, then define cmaps. % (\pdffontattr was introduced many years ago, but people still run % older pdftex's; it's easy to conditionalize, so we do.) -\ifpdf \ifx\pdffontattr\thisisundefined \else +\ifpdf \ifx\pdffontattr\undefined \else \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap @@ -1761,7 +1962,7 @@ end % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix % before you read in texinfo.tex. -\ifx\fontprefix\thisisundefined +\ifx\fontprefix\undefined \def\fontprefix{cm} \fi % Support font families that don't use the same naming scheme as CM. @@ -1904,8 +2105,8 @@ end \font\reducedsy=cmsy10 \def\reducedecsize{1000} -\textleading = 13.2pt % line spacing for 11pt CM -\textfonts % reset the current fonts +% reset the current fonts +\textfonts \rm } % end of 11pt text font size definitions @@ -2035,9 +2236,11 @@ end \font\reducedsy=cmsy9 \def\reducedecsize{0900} -\divide\parskip by 2 % reduce space between paragraphs -\textleading = 12pt % line spacing for 10pt CM -\textfonts % reset the current fonts +% reduce space between paragraphs +\divide\parskip by 2 + +% reset the current fonts +\textfonts \rm } % end of 10pt text font size definitions @@ -2046,13 +2249,12 @@ end % @fonttextsize 10 % (or 11) to redefine the text font size. pt is assumed. % -\def\xiword{11} \def\xword{10} -\def\xwordpt{10pt} +\def\xiword{11} % \parseargdef\fonttextsize{% \def\textsizearg{#1}% - %\wlog{doing @fonttextsize \textsizearg}% + \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. @@ -2106,7 +2308,7 @@ end \let\tenttsl=\titlettsl \def\curfontsize{title}% \def\lsize{chap}\def\lllsize{subsec}% - \resetmathfonts \setleading{27pt}} + \resetmathfonts \setleading{25pt}} \def\titlefont#1{{\titlefonts\rmisbold #1}} \def\chapfonts{% \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl @@ -2234,14 +2436,12 @@ end % Markup style setup for left and right quotes. \defmarkupstylesetup\markupsetuplq{% - \expandafter\let\expandafter \temp - \csname markupsetuplq\currentmarkupstyle\endcsname + \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname \ifx\temp\relax \markupsetuplqdefault \else \temp \fi } \defmarkupstylesetup\markupsetuprq{% - \expandafter\let\expandafter \temp - \csname markupsetuprq\currentmarkupstyle\endcsname + \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname \ifx\temp\relax \markupsetuprqdefault \else \temp \fi } @@ -2260,26 +2460,22 @@ end \let\markupsetuplqcode \markupsetcodequoteleft \let\markupsetuprqcode \markupsetcodequoteright -% \let\markupsetuplqexample \markupsetcodequoteleft \let\markupsetuprqexample \markupsetcodequoteright -% -\let\markupsetuplqsamp \markupsetcodequoteleft -\let\markupsetuprqsamp \markupsetcodequoteright -% \let\markupsetuplqverb \markupsetcodequoteleft \let\markupsetuprqverb \markupsetcodequoteright -% \let\markupsetuplqverbatim \markupsetcodequoteleft \let\markupsetuprqverbatim \markupsetcodequoteright +\let\markupsetuplqsamp \markupsetnoligaturesquoteleft \let\markupsetuplqkbd \markupsetnoligaturesquoteleft -% Allow an option to not use regular directed right quote/apostrophe -% (char 0x27), but instead 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. +% Allow an option to not replace quotes with a regular directed right +% quote/apostrophe (char 0x27), but instead use the undirected quote +% from cmtt (char 0x0d). The undirected quote is ugly, so don't make it +% the default, but it works for pasting with more pdf viewers (at least +% evince), the lilypond developers report. xpdf does work with the +% regular 0x27. % \def\codequoteright{% \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax @@ -2303,84 +2499,33 @@ end \else \char'22 \fi } -% Commands to set the quote options. -% -\parseargdef\codequoteundirected{% - \def\temp{#1}% - \ifx\temp\onword - \expandafter\let\csname SETtxicodequoteundirected\endcsname - = t% - \else\ifx\temp\offword - \expandafter\let\csname SETtxicodequoteundirected\endcsname - = \relax - \else - \errhelp = \EMsimple - \errmessage{Unknown @codequoteundirected value `\temp', must be on|off}% - \fi\fi -} -% -\parseargdef\codequotebacktick{% - \def\temp{#1}% - \ifx\temp\onword - \expandafter\let\csname SETtxicodequotebacktick\endcsname - = t% - \else\ifx\temp\offword - \expandafter\let\csname SETtxicodequotebacktick\endcsname - = \relax - \else - \errhelp = \EMsimple - \errmessage{Unknown @codequotebacktick value `\temp', must be on|off}% - \fi\fi -} - % [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font. \def\noligaturesquoteleft{\relax\lq} % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 -% Font commands. +%% Add scribe-like font environments, plus @l for inline lisp (usually sans +%% serif) and @ii for TeX italic -% #1 is the font command (\sl or \it), #2 is the text to slant. -% If we are in a monospaced environment, however, 1) always use \ttsl, -% and 2) do not add an italic correction. -\def\dosmartslant#1#2{% - \ifusingtt - {{\ttsl #2}\let\next=\relax}% - {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}% - \next -} -\def\smartslanted{\dosmartslant\sl} -\def\smartitalic{\dosmartslant\it} +% \smartitalic{ARG} outputs arg in italics, followed by an italic correction +% unless the following character is such as not to need one. +\def\smartitalicx{\ifx\next,\else\ifx\next-\else\ifx\next.\else + \ptexslash\fi\fi\fi} +\def\smartslanted#1{{\ifusingtt\ttsl\sl #1}\futurelet\next\smartitalicx} +\def\smartitalic#1{{\ifusingtt\ttsl\it #1}\futurelet\next\smartitalicx} -% Output an italic correction unless \next (presumed to be the following -% character) is such as not to need one. -\def\smartitaliccorrection{% - \ifx\next,% - \else\ifx\next-% - \else\ifx\next.% - \else\ptexslash - \fi\fi\fi - \aftersmartic -} - -% like \smartslanted except unconditionally uses \ttsl, and no ic. +% like \smartslanted except unconditionally uses \ttsl. % @var is set to this for defun arguments. -\def\ttslanted#1{{\ttsl #1}} +\def\ttslanted#1{{\ttsl #1}\futurelet\next\smartitalicx} % @cite is like \smartslanted except unconditionally use \sl. We never want % ttsl for book titles, do we? -\def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection} - -\def\aftersmartic{} -\def\var#1{% - \let\saveaftersmartic = \aftersmartic - \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}% - \smartslanted{#1}% -} +\def\cite#1{{\sl #1}\futurelet\next\smartitalicx} \let\i=\smartitalic \let\slanted=\smartslanted +\def\var#1{{\setupmarkupstyle{var}\smartslanted{#1}}} \let\dfn=\smartslanted \let\emph=\smartitalic @@ -2476,7 +2621,7 @@ end \plainfrenchspacing #1% }% - \null % reset spacefactor to 1000 + \null } % We *must* turn on hyphenation at `-' and `_' in @code. @@ -2508,8 +2653,6 @@ end } } -\def\codex #1{\tclose{#1}\endgroup} - \def\realdash{-} \def\codedash{-\discretionary{}{}{}} \def\codeunder{% @@ -2523,6 +2666,7 @@ end \discretionary{}{}{}}% {\_}% } +\def\codex #1{\tclose{#1}\endgroup} % An additional complication: the above will allow breaks after, e.g., % each of the four underscores in __typeof__. This is undesirable in @@ -2542,156 +2686,10 @@ end \allowcodebreaksfalse \else \errhelp = \EMsimple - \errmessage{Unknown @allowcodebreaks option `\txiarg', must be true|false}% + \errmessage{Unknown @allowcodebreaks option `\txiarg'}% \fi\fi } -% @uref (abbreviation for `urlref') takes an optional (comma-separated) -% second argument specifying the text to display and an optional third -% arg as text to display instead of (rather than in addition to) the url -% itself. First (mandatory) arg is the url. -% (This \urefnobreak definition isn't used now, leaving it for a while -% for comparison.) -\def\urefnobreak#1{\dourefnobreak #1,,,\finish} -\def\dourefnobreak#1,#2,#3,#4\finish{\begingroup - \unsepspaces - \pdfurl{#1}% - \setbox0 = \hbox{\ignorespaces #3}% - \ifdim\wd0 > 0pt - \unhbox0 % third arg given, show only that - \else - \setbox0 = \hbox{\ignorespaces #2}% - \ifdim\wd0 > 0pt - \ifpdf - \unhbox0 % PDF: 2nd arg given, show only it - \else - \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url - \fi - \else - \code{#1}% only url given, so show it - \fi - \fi - \endlink -\endgroup} - -% This \urefbreak definition is the active one. -\def\urefbreak{\begingroup \urefcatcodes \dourefbreak} -\let\uref=\urefbreak -\def\dourefbreak#1{\urefbreakfinish #1,,,\finish} -\def\urefbreakfinish#1,#2,#3,#4\finish{% doesn't work in @example - \unsepspaces - \pdfurl{#1}% - \setbox0 = \hbox{\ignorespaces #3}% - \ifdim\wd0 > 0pt - \unhbox0 % third arg given, show only that - \else - \setbox0 = \hbox{\ignorespaces #2}% - \ifdim\wd0 > 0pt - \ifpdf - \unhbox0 % PDF: 2nd arg given, show only it - \else - \unhbox0\ (\urefcode{#1})% DVI: 2nd arg given, show both it and url - \fi - \else - \urefcode{#1}% only url given, so show it - \fi - \fi - \endlink -\endgroup} - -% Allow line breaks around only a few characters (only). -\def\urefcatcodes{% - \catcode\ampChar=\active \catcode\dotChar=\active - \catcode\hashChar=\active \catcode\questChar=\active - \catcode\slashChar=\active -} -{ - \urefcatcodes - % - \global\def\urefcode{\begingroup - \setupmarkupstyle{code}% - \urefcatcodes - \let&\urefcodeamp - \let.\urefcodedot - \let#\urefcodehash - \let?\urefcodequest - \let/\urefcodeslash - \codex - } - % - % By default, they are just regular characters. - \global\def&{\normalamp} - \global\def.{\normaldot} - \global\def#{\normalhash} - \global\def?{\normalquest} - \global\def/{\normalslash} -} - -% we put a little stretch before and after the breakable chars, to help -% line breaking of long url's. The unequal skips make look better in -% cmtt at least, especially for dots. -\def\urefprestretch{\urefprebreak \hskip0pt plus.13em } -\def\urefpoststretch{\urefpostbreak \hskip0pt plus.1em } -% -\def\urefcodeamp{\urefprestretch \&\urefpoststretch} -\def\urefcodedot{\urefprestretch .\urefpoststretch} -\def\urefcodehash{\urefprestretch \#\urefpoststretch} -\def\urefcodequest{\urefprestretch ?\urefpoststretch} -\def\urefcodeslash{\futurelet\next\urefcodeslashfinish} -{ - \catcode`\/=\active - \global\def\urefcodeslashfinish{% - \urefprestretch \slashChar - % Allow line break only after the final / in a sequence of - % slashes, to avoid line break between the slashes in http://. - \ifx\next/\else \urefpoststretch \fi - } -} - -% One more complication: by default we'll break after the special -% characters, but some people like to break before the special chars, so -% allow that. Also allow no breaking at all, for manual control. -% -\parseargdef\urefbreakstyle{% - \def\txiarg{#1}% - \ifx\txiarg\wordnone - \def\urefprebreak{\nobreak}\def\urefpostbreak{\nobreak} - \else\ifx\txiarg\wordbefore - \def\urefprebreak{\allowbreak}\def\urefpostbreak{\nobreak} - \else\ifx\txiarg\wordafter - \def\urefprebreak{\nobreak}\def\urefpostbreak{\allowbreak} - \else - \errhelp = \EMsimple - \errmessage{Unknown @urefbreakstyle setting `\txiarg'}% - \fi\fi\fi -} -\def\wordafter{after} -\def\wordbefore{before} -\def\wordnone{none} - -\urefbreakstyle after - -% @url synonym for @uref, since that's how everyone uses it. -% -\let\url=\uref - -% rms does not like angle brackets --karl, 17may97. -% So now @email is just like @uref, unless we are pdf. -% -%\def\email#1{\angleleft{\tt #1}\angleright} -\ifpdf - \def\email#1{\doemail#1,,\finish} - \def\doemail#1,#2,#3\finish{\begingroup - \unsepspaces - \pdfurl{mailto:#1}% - \setbox0 = \hbox{\ignorespaces #2}% - \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi - \endlink - \endgroup} -\else - \let\email=\uref -\fi - % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. \def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}} @@ -2709,7 +2707,7 @@ end \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% \else \errhelp = \EMsimple - \errmessage{Unknown @kbdinputstyle setting `\txiarg'}% + \errmessage{Unknown @kbdinputstyle option `\txiarg'}% \fi\fi\fi } \def\worddistinct{distinct} @@ -2737,254 +2735,93 @@ end \parseargdef\clickstyle{\def\click{#1}} \def\click{\arrow} -% Typeset a dimension, e.g., `in' or `pt'. The only reason for the -% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. -% -\def\dmn#1{\thinspace #1} - -% @l was never documented to mean ``switch to the Lisp font'', -% and it is not used as such in any manual I can find. We need it for -% Polish suppressed-l. --karl, 22sep96. -%\def\l#1{{\li #1}\null} - -% @acronym for "FBI", "NATO", and the like. -% We print this one point size smaller, since it's intended for -% all-uppercase. -% -\def\acronym#1{\doacronym #1,,\finish} -\def\doacronym#1,#2,#3\finish{% - {\selectfonts\lsize #1}% - \def\temp{#2}% - \ifx\temp\empty \else - \space ({\unsepspaces \ignorespaces \temp \unskip})% - \fi - \null % reset \spacefactor=1000 -} - -% @abbr for "Comput. J." and the like. -% No font change, but don't do end-of-sentence spacing. +% @uref (abbreviation for `urlref') takes an optional (comma-separated) +% second argument specifying the text to display and an optional third +% arg as text to display instead of (rather than in addition to) the url +% itself. First (mandatory) arg is the url. Perhaps eventually put in +% a hypertex \special here. % -\def\abbr#1{\doabbr #1,,\finish} -\def\doabbr#1,#2,#3\finish{% - {\plainfrenchspacing #1}% - \def\temp{#2}% - \ifx\temp\empty \else - \space ({\unsepspaces \ignorespaces \temp \unskip})% +\def\uref#1{\douref #1,,,\finish} +\def\douref#1,#2,#3,#4\finish{\begingroup + \unsepspaces + \pdfurl{#1}% + \setbox0 = \hbox{\ignorespaces #3}% + \ifdim\wd0 > 0pt + \unhbox0 % third arg given, show only that + \else + \setbox0 = \hbox{\ignorespaces #2}% + \ifdim\wd0 > 0pt + \ifpdf + \unhbox0 % PDF: 2nd arg given, show only it + \else + \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url + \fi + \else + \code{#1}% only url given, so show it + \fi \fi - \null % reset \spacefactor=1000 -} - -% @asis just yields its argument. Used with @table, for example. -% -\def\asis#1{#1} - -% @math outputs its argument in math mode. -% -% One complication: _ usually means subscripts, but it could also mean -% an actual _ character, as in @math{@var{some_variable} + 1}. So make -% _ active, and distinguish by seeing if the current family is \slfam, -% which is what @var uses. -{ - \catcode`\_ = \active - \gdef\mathunderscore{% - \catcode`\_=\active - \def_{\ifnum\fam=\slfam \_\else\sb\fi}% - } -} -% Another complication: we want \\ (and @\) to output a math (or tt) \. -% FYI, plain.tex uses \\ as a temporary control sequence (for no -% particular reason), but this is not advertised and we don't care. -% -% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. -\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} -% -\def\math{% - \tex - \mathunderscore - \let\\ = \mathbackslash - \mathactive - % make the texinfo accent commands work in math mode - \let\"=\ddot - \let\'=\acute - \let\==\bar - \let\^=\hat - \let\`=\grave - \let\u=\breve - \let\v=\check - \let\~=\tilde - \let\dotaccent=\dot - $\finishmath -} -\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. + \endlink +\endgroup} -% Some active characters (such as <) are spaced differently in math. -% We have to reset their definitions in case the @math was an argument -% to a command which sets the catcodes (such as @item or @section). +% @url synonym for @uref, since that's how everyone uses it. % -{ - \catcode`^ = \active - \catcode`< = \active - \catcode`> = \active - \catcode`+ = \active - \catcode`' = \active - \gdef\mathactive{% - \let^ = \ptexhat - \let< = \ptexless - \let> = \ptexgtr - \let+ = \ptexplus - \let' = \ptexquoteright - } -} - -% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. -% Ignore unless FMTNAME == tex; then it is like @iftex and @tex, -% except specified as a normal braced arg, so no newlines to worry about. -% -\def\outfmtnametex{tex} -% -\def\inlinefmt#1{\doinlinefmt #1,\finish} -\def\doinlinefmt#1,#2,\finish{% - \def\inlinefmtname{#1}% - \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi -} -% For raw, must switch into @tex before parsing the argument, to avoid -% setting catcodes prematurely. Doing it this way means that, for -% example, @inlineraw{html, foo{bar} gets a parse error instead of being -% ignored. But this isn't important because if people want a literal -% *right* brace they would have to use a command anyway, so they may as -% well use a command to get a left brace too. We could re-use the -% delimiter character idea from \verb, but it seems like overkill. -% -\def\inlineraw{\tex \doinlineraw} -\def\doinlineraw#1{\doinlinerawtwo #1,\finish} -\def\doinlinerawtwo#1,#2,\finish{% - \def\inlinerawname{#1}% - \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi - \endgroup % close group opened by \tex. -} - - -\message{glyphs,} -% and logos. - -% @@ prints an @, as does @atchar{}. -\def\@{\char64 } -\let\atchar=\@ - -% @{ @} @lbracechar{} @rbracechar{} all generate brace characters. -% Unless we're in typewriter, use \ecfont because the CM text fonts do -% not have braces, and we don't want to switch into math. -\def\mylbrace{{\ifmonospace\else\ecfont\fi \char123}} -\def\myrbrace{{\ifmonospace\else\ecfont\fi \char125}} -\let\{=\mylbrace \let\lbracechar=\{ -\let\}=\myrbrace \let\rbracechar=\} -\begingroup - % Definitions to produce \{ and \} commands for indices, - % and @{ and @} for the aux/toc files. - \catcode`\{ = \other \catcode`\} = \other - \catcode`\[ = 1 \catcode`\] = 2 - \catcode`\! = 0 \catcode`\\ = \other - !gdef!lbracecmd[\{]% - !gdef!rbracecmd[\}]% - !gdef!lbraceatcmd[@{]% - !gdef!rbraceatcmd[@}]% -!endgroup - -% @comma{} to avoid , parsing problems. -\let\comma = , - -% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent -% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. -\let\, = \ptexc -\let\dotaccent = \ptexdot -\def\ringaccent#1{{\accent23 #1}} -\let\tieaccent = \ptext -\let\ubaraccent = \ptexb -\let\udotaccent = \d - -% Other special characters: @questiondown @exclamdown @ordf @ordm -% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. -\def\questiondown{?`} -\def\exclamdown{!`} -\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}} -\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}} - -% Dotless i and dotless j, used for accents. -\def\imacro{i} -\def\jmacro{j} -\def\dotless#1{% - \def\temp{#1}% - \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi - \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi - \else \errmessage{@dotless can be used only with i or j}% - \fi\fi -} +\let\url=\uref -% The \TeX{} logo, as in plain, but resetting the spacing so that a -% period following counts as ending a sentence. (Idea found in latex.) +% rms does not like angle brackets --karl, 17may97. +% So now @email is just like @uref, unless we are pdf. % -\edef\TeX{\TeX \spacefactor=1000 } +%\def\email#1{\angleleft{\tt #1}\angleright} +\ifpdf + \def\email#1{\doemail#1,,\finish} + \def\doemail#1,#2,#3\finish{\begingroup + \unsepspaces + \pdfurl{mailto:#1}% + \setbox0 = \hbox{\ignorespaces #2}% + \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi + \endlink + \endgroup} +\else + \let\email=\uref +\fi -% @LaTeX{} logo. Not quite the same results as the definition in -% latex.ltx, since we use a different font for the raised A; it's most -% convenient for us to use an explicitly smaller font, rather than using -% the \scriptstyle font (since we don't reset \scriptstyle and -% \scriptscriptstyle). +% Typeset a dimension, e.g., `in' or `pt'. The only reason for the +% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. % -\def\LaTeX{% - L\kern-.36em - {\setbox0=\hbox{T}% - \vbox to \ht0{\hbox{% - \ifx\textnominalsize\xwordpt - % for 10pt running text, \lllsize (8pt) is too small for the A in LaTeX. - % Revert to plain's \scriptsize, which is 7pt. - \count255=\the\fam $\fam\count255 \scriptstyle A$% - \else - % For 11pt, we can use our lllsize. - \selectfonts\lllsize A% - \fi - }% - \vss - }}% - \kern-.15em - \TeX -} +\def\dmn#1{\thinspace #1} -% Some math mode symbols. -\def\bullet{$\ptexbullet$} -\def\geq{\ifmmode \ge\else $\ge$\fi} -\def\leq{\ifmmode \le\else $\le$\fi} -\def\minus{\ifmmode -\else $-$\fi} +% @l was never documented to mean ``switch to the Lisp font'', +% and it is not used as such in any manual I can find. We need it for +% Polish suppressed-l. --karl, 22sep96. +%\def\l#1{{\li #1}\null} -% @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. +% @acronym for "FBI", "NATO", and the like. +% We print this one point size smaller, since it's intended for +% all-uppercase. % -\def\dots{% - \leavevmode - \setbox0=\hbox{...}% get width of three periods - \ifdim\wd0 > 1.5em - \dimen0 = \wd0 - \else - \dimen0 = 1.5em +\def\acronym#1{\doacronym #1,,\finish} +\def\doacronym#1,#2,#3\finish{% + {\selectfonts\lsize #1}% + \def\temp{#2}% + \ifx\temp\empty \else + \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi - \hbox to \dimen0{% - \hskip 0pt plus.25fil - .\hskip 0pt plus1fil - .\hskip 0pt plus1fil - .\hskip 0pt plus.5fil - }% } -% @enddots{} is an end-of-sentence ellipsis. +% @abbr for "Comput. J." and the like. +% No font change, but don't do end-of-sentence spacing. % -\def\enddots{% - \dots - \spacefactor=\endofsentencespacefactor +\def\abbr#1{\doabbr #1,,\finish} +\def\doabbr#1,#2,#3\finish{% + {\plainfrenchspacing #1}% + \def\temp{#2}% + \ifx\temp\empty \else + \space ({\unsepspaces \ignorespaces \temp \unskip})% + \fi } + +\message{glyphs,} + % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. % % Since these characters are used in examples, they should be an even number of @@ -3005,7 +2842,7 @@ end {\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 \putworderror\kern-1.5pt} +\setbox0 = \hbox{\kern-.75pt \reducedsf error\kern-1.5pt} % \setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. @@ -3154,7 +2991,7 @@ end % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 % so we'll define it if necessary. % -\ifx\Orb\thisisundefined +\ifx\Orb\undefined \def\Orb{\mathhexbox20D} \fi @@ -3182,9 +3019,8 @@ end \newif\ifsetshortcontentsaftertitlepage \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue -\parseargdef\shorttitlepage{% - \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}% - \endgroup\page\hbox{}\page} +\parseargdef\shorttitlepage{\begingroup\hbox{}\vskip 1.5in \chaprm \centerline{#1}% + \endgroup\page\hbox{}\page} \envdef\titlepage{% % Open one extra group, as we want to close it in the middle of \Etitlepage. @@ -3244,7 +3080,7 @@ end \finishedtitlepagetrue } -% Macros to be used within @titlepage: +%%% Macros to be used within @titlepage: \let\subtitlerm=\tenrm \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} @@ -3277,7 +3113,7 @@ end } -% Set up page headings and footings. +%%% Set up page headings and footings. \let\thispage=\folio @@ -3371,14 +3207,10 @@ end \def\headings #1 {\csname HEADINGS#1\endcsname} -\def\headingsoff{% non-global headings elimination - \evenheadline={\hfil}\evenfootline={\hfil}% - \oddheadline={\hfil}\oddfootline={\hfil}% -} - -\def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting -\HEADINGSoff % it's the default - +\def\HEADINGSoff{% +\global\evenheadline={\hfil} \global\evenfootline={\hfil} +\global\oddheadline={\hfil} \global\oddfootline={\hfil}} +\HEADINGSoff % When we turn headings on, set the page number to 1. % For double-sided printing, put current file name in lower left corner, % chapter name on inside top of right hand pages, document @@ -3429,7 +3261,7 @@ end % This produces Day Month Year style of output. % Only define if not already defined, in case a txi-??.tex file has set % up a different format (e.g., txi-cs.tex does this). -\ifx\today\thisisundefined +\ifx\today\undefined \def\today{% \number\day\space \ifcase\month @@ -3490,7 +3322,7 @@ end \begingroup \advance\leftskip by-\tableindent \advance\hsize by\tableindent - \advance\rightskip by0pt plus1fil\relax + \advance\rightskip by0pt plus1fil \leavevmode\unhbox0\par \endgroup % @@ -3976,18 +3808,18 @@ end \setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip \global\advance\multitablelinespace by-\ht0 \fi -% Test to see if parskip is larger than space between lines of -% table. If not, do nothing. -% If so, set to same dimension as multitablelinespace. +%% Test to see if parskip is larger than space between lines of +%% table. If not, do nothing. +%% If so, set to same dimension as multitablelinespace. \ifdim\multitableparskip>\multitablelinespace \global\multitableparskip=\multitablelinespace -\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller - % than skip between lines in the table. +\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller + %% than skip between lines in the table. \fi% \ifdim\multitableparskip=0pt \global\multitableparskip=\multitablelinespace -\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller - % than skip between lines in the table. +\global\advance\multitableparskip-7pt %% to keep parskip somewhat smaller + %% than skip between lines in the table. \fi} @@ -4302,14 +4134,11 @@ end \def\@{@}% change to @@ when we switch to @ as escape char in index files. \def\ {\realbackslash\space }% % - % Need these unexpandable (because we define \tt as a dummy) - % definitions when @{ or @} appear in index entry text. Also, more - % complicated, when \tex is in effect and \{ is a \delimiter again. - % We can't use \lbracecmd and \rbracecmd because texindex assumes - % braces and backslashes are used only as delimiters. Perhaps we - % should define @lbrace and @rbrace commands a la @comma. - \def\{{{\tt\char123}}% - \def\}{{\tt\char125}}% + % 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 @@ -4362,7 +4191,7 @@ end \def\commondummies{% % % \definedummyword defines \#1 as \string\#1\space, thus effectively - % preventing its expansion. This is used only for control words, + % preventing its expansion. This is used only for control% words, % not control letters, because the \space would be incorrect for % control characters, but is needed to separate the control word % from whatever follows. @@ -4381,7 +4210,6 @@ end \commondummiesnofonts % \definedummyletter\_% - \definedummyletter\-% % % Non-English letters. \definedummyword\AA @@ -4418,24 +4246,20 @@ end \definedummyword\TeX % % Assorted special characters. - \definedummyword\arrow \definedummyword\bullet \definedummyword\comma \definedummyword\copyright \definedummyword\registeredsymbol \definedummyword\dots \definedummyword\enddots - \definedummyword\entrybreak \definedummyword\equiv \definedummyword\error \definedummyword\euro - \definedummyword\expansion - \definedummyword\geq \definedummyword\guillemetleft \definedummyword\guillemetright \definedummyword\guilsinglleft \definedummyword\guilsinglright - \definedummyword\leq + \definedummyword\expansion \definedummyword\minus \definedummyword\ogonek \definedummyword\pounds @@ -4492,24 +4316,19 @@ end \definedummyword\b \definedummyword\i \definedummyword\r - \definedummyword\sansserif \definedummyword\sc - \definedummyword\slanted \definedummyword\t % % Commands that take arguments. \definedummyword\acronym - \definedummyword\anchor \definedummyword\cite \definedummyword\code \definedummyword\command \definedummyword\dfn - \definedummyword\dmn \definedummyword\email \definedummyword\emph \definedummyword\env \definedummyword\file - \definedummyword\indicateurl \definedummyword\kbd \definedummyword\key \definedummyword\math @@ -4537,7 +4356,7 @@ end \def\definedummyaccent##1{\let##1\asis}% % We can just ignore other control letters. \def\definedummyletter##1{\let##1\empty}% - % All control words become @asis by default; overrides below. + % Hopefully, all control words can become @asis. \let\definedummyword\definedummyaccent % \commondummiesnofonts @@ -4549,14 +4368,8 @@ end % \def\ { }% \def\@{@}% + % how to handle braces? \def\_{\normalunderscore}% - \def\-{}% @- shouldn't affect sorting - % - % Unfortunately, texindex is not prepared to handle braces in the - % content at all. So for index sorting, we map @{ and @} to strings - % starting with |, since that ASCII character is between ASCII { and }. - \def\{{|a}% - \def\}{|b}% % % Non-English letters. \def\AA{AA}% @@ -4584,7 +4397,6 @@ end % % Assorted special characters. % (The following {} will end up in the sort string, but that's ok.) - \def\arrow{->}% \def\bullet{bullet}% \def\comma{,}% \def\copyright{copyright}% @@ -4594,12 +4406,10 @@ end \def\error{error}% \def\euro{euro}% \def\expansion{==>}% - \def\geq{>=}% \def\guillemetleft{<<}% \def\guillemetright{>>}% \def\guilsinglleft{<}% \def\guilsinglright{>}% - \def\leq{<=}% \def\minus{-}% \def\point{.}% \def\pounds{pounds}% @@ -4614,9 +4424,6 @@ end \def\result{=>}% \def\textdegree{o}% % - \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax - \else \indexlquoteignore \fi - % % 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. % makeinfo does not expand macros in the argument to @deffn, which ends up @@ -4630,11 +4437,6 @@ end \macrolist } -% Undocumented (for FSFS 2nd ed.): @set txiindexlquoteignore makes us -% ignore left quotes in the sort term. -{\catcode`\`=\active - \gdef\indexlquoteignore{\let`=\empty}} - \let\indexbackslash=0 %overridden during \printindex. \let\SETmarginindex=\relax % put index entries in margin (undocumented)? @@ -4892,6 +4694,7 @@ end % But this freezes the catcodes in the argument, and can cause problems to % @code, which sets - active. This problem was fixed by a kludge--- % ``-'' was active throughout whole index, but this isn't really right. +% % The right solution is to prevent \entry from swallowing the whole text. % --kasal, 21nov03 \def\entry{% @@ -4928,17 +4731,10 @@ end % columns. \vskip 0pt plus1pt % - % When reading the text of entry, convert explicit line breaks - % from @* into spaces. The user might give these in long section - % titles, for instance. - \def\*{\unskip\space\ignorespaces}% - \def\entrybreak{\hfil\break}% - % % Swallow the left brace of the text (first parameter): \afterassignment\doentry \let\temp = } -\def\entrybreak{\unskip\space\ignorespaces}% \def\doentry{% \bgroup % Instead of the swallowed brace. \noindent @@ -5171,22 +4967,7 @@ end \message{sectioning,} % Chapters, sections, etc. -% Let's start with @part. -\outer\parseargdef\part{\partzzz{#1}} -\def\partzzz#1{% - \chapoddpage - \null - \vskip.3\vsize % move it down on the page a bit - \begingroup - \noindent \titlefonts\rmisbold #1\par % the text - \let\lastnode=\empty % no node to associate with - \writetocentry{part}{#1}{}% but put it in the toc - \headingsoff % no headline or footline on the part page - \chapoddpage - \endgroup -} - -% \unnumberedno is an oxymoron. But we count the unnumbered +% \unnumberedno is an oxymoron, of course. But we count the unnumbered % sections so that we can refer to them unambiguously in the pdf % outlines by their "section number". We avoid collisions with chapter % numbers by starting them at 10000. (If a document ever has 10000 @@ -5265,8 +5046,8 @@ end \chardef\maxseclevel = 3 % % A numbered section within an unnumbered changes to unnumbered too. -% To achieve this, remember the "biggest" unnum. sec. we are currently in: -\chardef\unnlevel = \maxseclevel +% To achive this, remember the "biggest" unnum. sec. we are currently in: +\chardef\unmlevel = \maxseclevel % % Trace whether the current chapter is an appendix or not: % \chapheadtype is "N" or "A", unnumbered chapters are ignored. @@ -5291,8 +5072,8 @@ end % The heading type: \def\headtype{#1}% \if \headtype U% - \ifnum \absseclevel < \unnlevel - \chardef\unnlevel = \absseclevel + \ifnum \absseclevel < \unmlevel + \chardef\unmlevel = \absseclevel \fi \else % Check for appendix sections: @@ -5304,10 +5085,10 @@ end \fi\fi \fi % Check for numbered within unnumbered: - \ifnum \absseclevel > \unnlevel + \ifnum \absseclevel > \unmlevel \def\headtype{U}% \else - \chardef\unnlevel = 3 + \chardef\unmlevel = 3 \fi \fi % Now print the heading: @@ -5393,8 +5174,7 @@ end \global\let\subsubsection = \appendixsubsubsec } -% normally unnmhead0 calls unnumberedzzz: -\outer\parseargdef\unnumbered{\unnmhead0{#1}} +\outer\parseargdef\unnumbered{\unnmhead0{#1}} % normally unnmhead0 calls unnumberedzzz \def\unnumberedzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\unnumberedno by 1 @@ -5438,47 +5218,40 @@ end \let\top\unnumbered % Sections. -% \outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz \def\seczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}% } -% normally calls appendixsectionzzz: -\outer\parseargdef\appendixsection{\apphead1{#1}} +\outer\parseargdef\appendixsection{\apphead1{#1}} % normally calls appendixsectionzzz \def\appendixsectionzzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}% } \let\appendixsec\appendixsection -% normally calls unnumberedseczzz: -\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} +\outer\parseargdef\unnumberedsec{\unnmhead1{#1}} % normally calls unnumberedseczzz \def\unnumberedseczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}% } % Subsections. -% -% normally calls numberedsubseczzz: -\outer\parseargdef\numberedsubsec{\numhead2{#1}} +\outer\parseargdef\numberedsubsec{\numhead2{#1}} % normally calls numberedsubseczzz \def\numberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}% } -% normally calls appendixsubseczzz: -\outer\parseargdef\appendixsubsec{\apphead2{#1}} +\outer\parseargdef\appendixsubsec{\apphead2{#1}} % normally calls appendixsubseczzz \def\appendixsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno}% } -% normally calls unnumberedsubseczzz: -\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} +\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} %normally calls unnumberedsubseczzz \def\unnumberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynothing}% @@ -5486,25 +5259,21 @@ end } % Subsubsections. -% -% normally numberedsubsubseczzz: -\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} +\outer\parseargdef\numberedsubsubsec{\numhead3{#1}} % normally numberedsubsubseczzz \def\numberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynumbered}% {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}% } -% normally appendixsubsubseczzz: -\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} +\outer\parseargdef\appendixsubsubsec{\apphead3{#1}} % normally appendixsubsubseczzz \def\appendixsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}% } -% normally unnumberedsubsubseczzz: -\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} +\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} %normally unnumberedsubsubseczzz \def\unnumberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynothing}% @@ -5554,13 +5323,14 @@ end % (including whitespace, linebreaking, etc. around it), % given all the information in convenient, parsed form. -% Args are the skip and penalty (usually negative) +%%% Args are the skip and penalty (usually negative) \def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} +%%% Define plain chapter starts, and page on/off switching for it % Parameter controlling skip before chapter headings (if needed) + \newskip\chapheadingskip -% Define plain chapter starts, and page on/off switching for it. \def\chapbreak{\dobreak \chapheadingskip {-4000}} \def\chappager{\par\vfill\supereject} % Because \domark is called before \chapoddpage, the filler page will @@ -5570,8 +5340,9 @@ end \chappager \ifodd\pageno \else \begingroup - \headingsoff - \null + \evenheadline={\hfil}\evenfootline={\hfil}% + \oddheadline={\hfil}\oddfootline={\hfil}% + \hbox to 0pt{}% \chappager \endgroup \fi @@ -5763,8 +5534,6 @@ end % \def\sectionheading#1#2#3#4{% {% - \checkenv{}% should not be in an environment. - % % Switch to the right set of fonts. \csname #2fonts\endcsname \rmisbold % @@ -5882,6 +5651,7 @@ end % This is purely so the last item on the list is a known \penalty > % 10000. This is so \startdefun can avoid allowing breakpoints after % section headings. Otherwise, it would insert a valid breakpoint between: + % % @section sec-whatever % @deffn def-whatever \penalty 10001 @@ -6015,7 +5785,6 @@ end \def\summarycontents{% \startcontents{\putwordShortTOC}% % - \let\partentry = \shortpartentry \let\numchapentry = \shortchapentry \let\appentry = \shortchapentry \let\unnchapentry = \shortunnchapentry @@ -6071,19 +5840,6 @@ end % The last argument is the page number. % The arguments in between are the chapter number, section number, ... -% Parts, in the main contents. Replace the part number, which doesn't -% exist, with an empty box. Let's hope all the numbers have the same width. -% Also ignore the page number, which is conventionally not printed. -\def\numeralbox{\setbox0=\hbox{8}\hbox to \wd0{\hfil}} -\def\partentry#1#2#3#4{\dochapentry{\numeralbox\labelspace#1}{}} -% -% Parts, in the short toc. -\def\shortpartentry#1#2#3#4{% - \penalty-300 - \vskip.5\baselineskip plus.15\baselineskip minus.1\baselineskip - \shortchapentry{{\bf #1}}{\numeralbox}{}{}% -} - % Chapters, in the main contents. \def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}} % @@ -6173,9 +5929,9 @@ end \message{environments,} % @foo ... @end foo. -% @tex ... @end tex escapes into raw TeX temporarily. +% @tex ... @end tex escapes into raw Tex temporarily. % One exception: @ is still an escape character, so that @end tex works. -% But \@ or @@ will get a plain @ character. +% But \@ or @@ will get a plain tex @ character. \envdef\tex{% \setupmarkupstyle{tex}% @@ -6192,10 +5948,6 @@ end \catcode`\'=\other \escapechar=`\\ % - % ' is active in math mode (mathcode"8000). So reset it, and all our - % other math active characters (just in case), to plain's definitions. - \mathactive - % \let\b=\ptexb \let\bullet=\ptexbullet \let\c=\ptexc @@ -6299,12 +6051,6 @@ end \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip % Flag to tell @lisp, etc., not to narrow margin. \let\nonarrowing = t% - % - % If this cartouche directly follows a sectioning command, we need the - % \parskip glue (backspaced over by default) or the cartouche can - % collide with the section heading. - \ifnum\lastpenalty>10000 \vskip\parskip \fi - % \vbox\bgroup \baselineskip=0pt\parskip=0pt\lineskip=0pt \carttop @@ -6318,7 +6064,7 @@ end \lineskip=\normlskip \parskip=\normpskip \vskip -\parskip - \comment % For explanation, see the end of def\group. + \comment % For explanation, see the end of \def\group. } \def\Ecartouche{% \ifhmode\par\fi @@ -6404,42 +6150,41 @@ end } % We often define two environments, @foo and @smallfoo. -% Let's do it in one command. #1 is the env name, #2 the definition. -\def\makedispenvdef#1#2{% - \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}% - \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}% +% Let's do it by one command: +\def\makedispenv #1#2{ + \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2} + \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2} \expandafter\let\csname E#1\endcsname \afterenvbreak \expandafter\let\csname Esmall#1\endcsname \afterenvbreak } -% Define two environment synonyms (#1 and #2) for an environment. -\def\maketwodispenvdef#1#2#3{% - \makedispenvdef{#1}{#3}% - \makedispenvdef{#2}{#3}% +% Define two synonyms: +\def\maketwodispenvs #1#2#3{ + \makedispenv{#1}{#3} + \makedispenv{#2}{#3} } -% -% @lisp: indented, narrowed, typewriter font; -% @example: same as @lisp. + +% @lisp: indented, narrowed, typewriter font; @example: same as @lisp. % % @smallexample and @smalllisp: use smaller fonts. % Originally contributed by Pavel@xerox. % -\maketwodispenvdef{lisp}{example}{% +\maketwodispenvs {lisp}{example}{% \nonfillstart \tt\setupmarkupstyle{example}% \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. - \gobble % eat return + \gobble % eat return } % @display/@smalldisplay: same as @lisp except keep current font. % -\makedispenvdef{display}{% +\makedispenv {display}{% \nonfillstart \gobble } % @format/@smallformat: same as @display except don't narrow margins. % -\makedispenvdef{format}{% +\makedispenv{format}{% \let\nonarrowing = t% \nonfillstart \gobble @@ -6458,7 +6203,7 @@ end \envdef\flushright{% \let\nonarrowing = t% \nonfillstart - \advance\leftskip by 0pt plus 1fill\relax + \advance\leftskip by 0pt plus 1fill \gobble } \let\Eflushright = \afterenvbreak @@ -6493,8 +6238,6 @@ end % we're doing normal filling. So, when using \aboveenvbreak and % \afterenvbreak, temporarily make \parskip 0. % -\makedispenvdef{quotation}{\quotationstart} -% \def\quotationstart{% {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip \parindent=0pt @@ -6510,18 +6253,28 @@ end \parsearg\quotationlabel } +\envdef\quotation{% + \setnormaldispenv + \quotationstart +} + +\envdef\smallquotation{% + \setsmalldispenv + \quotationstart +} +\let\Esmallquotation = \Equotation + % We have retained a nonzero parskip for the environment, since we're % doing normal filling. % \def\Equotation{% \par - \ifx\quotationauthor\thisisundefined\else + \ifx\quotationauthor\undefined\else % indent a bit. \leftline{\kern 2\leftskip \sl ---\quotationauthor}% \fi {\parskip=0pt \afterenvbreak}% } -\def\Esmallquotation{\Equotation} % If we're given an argument, typeset it in bold with a colon after. \def\quotationlabel#1{% @@ -6578,28 +6331,21 @@ end % Setup for the @verbatim environment % -% Real tab expansion. +% Real tab expansion \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount % -% We typeset each line of the verbatim in an \hbox, so we can handle -% tabs. The \global is in case the verbatim line starts with an accent, -% or some other command that starts with a begin-group. Otherwise, the -% entire \verbbox would disappear at the corresponding end-group, before -% it is typeset. Meanwhile, we can't have nested verbatim commands -% (can we?), so the \global won't be overwriting itself. -\newbox\verbbox -\def\starttabbox{\global\setbox\verbbox=\hbox\bgroup} +\def\starttabbox{\setbox0=\hbox\bgroup} % \begingroup \catcode`\^^I=\active \gdef\tabexpand{% \catcode`\^^I=\active \def^^I{\leavevmode\egroup - \dimen\verbbox=\wd\verbbox % the width so far, or since the previous tab - \divide\dimen\verbbox by\tabw - \multiply\dimen\verbbox by\tabw % compute previous multiple of \tabw - \advance\dimen\verbbox by\tabw % advance to next multiple of \tabw - \wd\verbbox=\dimen\verbbox \box\verbbox \starttabbox + \dimen0=\wd0 % the width so far, or since the previous tab + \divide\dimen0 by\tabw + \multiply\dimen0 by\tabw % compute previous multiple of \tabw + \advance\dimen0 by\tabw % advance to next multiple of \tabw + \wd0=\dimen0 \box0 \starttabbox }% } \endgroup @@ -6608,16 +6354,15 @@ end \def\setupverbatim{% \let\nonarrowing = t% \nonfillstart - \tt % easiest (and conventionally used) font for verbatim - % The \leavevmode here is for blank lines. Otherwise, we would - % never \starttabox and the \egroup would end verbatim mode. - \def\par{\leavevmode\egroup\box\verbbox\endgraf}% + % Easiest (and conventionally used) font for verbatim + \tt + \def\par{\leavevmode\egroup\box0\endgraf}% \tabexpand \setupmarkupstyle{verbatim}% % Respect line breaks, % print special symbols as themselves, and - % make each space count. - % Must do in this order: + % make each space count + % must do in this order: \obeylines \uncatcodespecials \sepspaces \everypar{\starttabbox}% } @@ -6674,7 +6419,6 @@ end \makevalueexpandable \setupverbatim \indexnofonts % Allow `@@' and other weird things in file names. - \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}% \input #1 \afterenvbreak }% @@ -6724,7 +6468,7 @@ end % commands also insert a nobreak penalty, and we don't want to allow % a break between a section heading and a defun. % - % As a further refinement, we avoid "club" headers by signalling + % As a minor refinement, we avoid "club" headers by signalling % with penalty of 10003 after the very first @deffn in the % sequence (see above), and penalty of 10002 after any following % @def command. @@ -6761,7 +6505,7 @@ end #1#2 \endheader % common ending: \interlinepenalty = 10000 - \advance\rightskip by 0pt plus 1fil\relax + \advance\rightskip by 0pt plus 1fil \endgraf \nobreak\vskip -\parskip \penalty\defunpenalty % signal to \startdefun and \dodefunx @@ -6791,36 +6535,13 @@ end \def\domakedefun#1#2#3{% \envdef#1{% \startdefun - \doingtypefnfalse % distinguish typed functions from all else \parseargusing\activeparens{\printdefunline#3}% }% \def#2{\dodefunx#1}% \def#3% } -\newif\ifdoingtypefn % doing typed function? -\newif\ifrettypeownline % typeset return type on its own line? - -% @deftypefnnewline on|off says whether the return type of typed functions -% are printed on their own line. This affects @deftypefn, @deftypefun, -% @deftypeop, and @deftypemethod. -% -\parseargdef\deftypefnnewline{% - \def\temp{#1}% - \ifx\temp\onword - \expandafter\let\csname SETtxideftypefnnl\endcsname - = \empty - \else\ifx\temp\offword - \expandafter\let\csname SETtxideftypefnnl\endcsname - = \relax - \else - \errhelp = \EMsimple - \errmessage{Unknown @txideftypefnnl value `\temp', - must be on|off}% - \fi\fi -} - -% Untyped functions: +%%% Untyped functions: % @deffn category name args \makedefun{deffn}{\deffngeneral{}} @@ -6839,7 +6560,7 @@ end \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}% } -% Typed functions: +%%% Typed functions: % @deftypefn category type name args \makedefun{deftypefn}{\deftypefngeneral{}} @@ -6854,11 +6575,10 @@ end % \def\deftypefngeneral#1#2 #3 #4 #5\endheader{% \dosubind{fn}{\code{#4}}{#1}% - \doingtypefntrue \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } -% Typed variables: +%%% Typed variables: % @deftypevr category type var args \makedefun{deftypevr}{\deftypecvgeneral{}} @@ -6876,7 +6596,7 @@ end \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } -% Untyped variables: +%%% Untyped variables: % @defvr category var args \makedefun{defvr}#1 {\deftypevrheader{#1} {} } @@ -6887,8 +6607,7 @@ end % \defcvof {category of}class var args \def\defcvof#1#2 {\deftypecvof{#1}#2 {} } -% Types: - +%%% Type: % @deftp category name args \makedefun{deftp}#1 #2 #3\endheader{% \doind{tp}{\code{#2}}% @@ -6916,49 +6635,25 @@ end % We are followed by (but not passed) the arguments, if any. % \def\defname#1#2#3{% - \par % Get the values of \leftskip and \rightskip as they were outside the @def... \advance\leftskip by -\defbodyindent % - % Determine if we are typesetting the return type of a typed function - % on a line by itself. - \rettypeownlinefalse - \ifdoingtypefn % doing a typed function specifically? - % then check user option for putting return type on its own line: - \expandafter\ifx\csname SETtxideftypefnnl\endcsname\relax \else - \rettypeownlinetrue - \fi - \fi - % - % How we'll format the category name. Putting it in brackets helps + % How we'll format the type name. Putting it in brackets helps % distinguish it from the body text that may end up on the next line % just below it. \def\temp{#1}% \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi} % - % Figure out line sizes for the paragraph shape. We'll always have at - % least two. - \tempnum = 2 - % + % Figure out line sizes for the paragraph shape. % The first line needs space for \box0; but if \rightskip is nonzero, % we need only space for the part of \box0 which exceeds it: \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip - % - % If doing a return type on its own line, we'll have another line. - \ifrettypeownline - \advance\tempnum by 1 - \def\maybeshapeline{0in \hsize}% - \else - \def\maybeshapeline{}% - \fi - % % The continuations: \dimen2=\hsize \advance\dimen2 by -\defargsindent + % (plain.tex says that \dimen1 should be used only as global.) + \parshape 2 0in \dimen0 \defargsindent \dimen2 % - % The final paragraph shape: - \parshape \tempnum 0in \dimen0 \maybeshapeline \defargsindent \dimen2 - % - % Put the category name at the right margin. + % Put the type name to the right margin. \noindent \hbox to 0pt{% \hfil\box0 \kern-\hsize @@ -6980,16 +6675,8 @@ end % . this still does not fix the ?` and !` ligatures, but so far no % one has made identifiers using them :). \df \tt - \def\temp{#2}% text of the return type - \ifx\temp\empty\else - \tclose{\temp}% typeset the return type - \ifrettypeownline - % put return type on its own line; prohibit line break following: - \hfil\vadjust{\nobreak}\break - \else - \space % type on same line, so just followed by a space - \fi - \fi % no return type + \def\temp{#2}% return value type + \ifx\temp\empty\else \tclose{\temp} \fi #3% output function name }% {\rm\enskip}% hskip 0.5 em of \tenrm @@ -7107,7 +6794,7 @@ end % To do this right we need a feature of e-TeX, \scantokens, % which we arrange to emulate with a temporary file in ordinary TeX. -\ifx\eTeXversion\thisisundefined +\ifx\eTeXversion\undefined \newwrite\macscribble \def\scantokens#1{% \toks0={#1}% @@ -7118,30 +6805,25 @@ end } \fi -\def\scanmacro#1{\begingroup - \newlinechar`\^^M - \let\xeatspaces\eatspaces - % - % Undo catcode changes of \startcontents and \doprintindex - % When called from @insertcopying or (short)caption, we need active - % backslash to get it printed correctly. Previously, we had - % \catcode`\\=\other instead. We'll see whether a problem appears - % with macro expansion. --kasal, 19aug04 - \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ - % - % ... and for \example: - \spaceisspace - % - % The \empty here causes a following catcode 5 newline to be eaten as - % part of reading whitespace after a control sequence. It does not - % eat a catcode 13 newline. There's no good way to handle the two - % cases (untried: maybe e-TeX's \everyeof could help, though plain TeX - % would then have different behavior). See the Macro Details node in - % the manual for the workaround we recommend for macros and - % line-oriented commands. - % - \scantokens{#1\empty}% -\endgroup} +\def\scanmacro#1{% + \begingroup + \newlinechar`\^^M + \let\xeatspaces\eatspaces + % Undo catcode changes of \startcontents and \doprintindex + % When called from @insertcopying or (short)caption, we need active + % backslash to get it printed correctly. Previously, we had + % \catcode`\\=\other instead. We'll see whether a problem appears + % with macro expansion. --kasal, 19aug04 + \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ + % ... and \example + \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}% + \endgroup +} \def\scanexp#1{% \edef\temp{\noexpand\scanmacro{#1}}% @@ -7195,18 +6877,17 @@ end % Macro bodies are absorbed as an argument in a context where % all characters are catcode 10, 11 or 12, except \ which is active -% (as in normal texinfo). It is necessary to change the definition of \ -% to recognize macro arguments; this is the job of \mbodybackslash. -% +% (as in normal texinfo). It is necessary to change the definition of \. + % Non-ASCII encodings make 8-bit characters active, so un-activate % them to avoid their expansion. Must do this non-globally, to % confine the change to the current group. -% + % It's necessary to have hard CRs when the macro is executed. This is -% done by making ^^M (\endlinechar) catcode 12 when reading the macro +% done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. -% -\def\scanctxt{% used as subroutine + +\def\scanctxt{% \catcode`\"=\other \catcode`\+=\other \catcode`\<=\other @@ -7219,13 +6900,13 @@ end \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi } -\def\scanargctxt{% used for copying and captions, not macros. +\def\scanargctxt{% \scanctxt \catcode`\\=\other \catcode`\^^M=\other } -\def\macrobodyctxt{% used for @macro definitions +\def\macrobodyctxt{% \scanctxt \catcode`\{=\other \catcode`\}=\other @@ -7233,56 +6914,32 @@ end \usembodybackslash } -\def\macroargctxt{% used when scanning invocations +\def\macroargctxt{% \scanctxt - \catcode`\\=0 + \catcode`\\=\other } -% why catcode 0 for \ in the above? To recognize \\ \{ \} as "escapes" -% for the single characters \ { }. Thus, we end up with the "commands" -% that would be written @\ @{ @} in a Texinfo document. -% -% We already have @{ and @}. For @\, we define it here, and only for -% this purpose, to produce a typewriter backslash (so, the @\ that we -% define for @math can't be used with @macro calls): -% -\def\\{\normalbackslash}% -% -% We would like to do this for \, too, since that is what makeinfo does. -% But it is not possible, because Texinfo already has a command @, for a -% cedilla accent. Documents must use @comma{} instead. -% -% \anythingelse will almost certainly be an error of some kind. - % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N % where N is the macro parameter number. % We define \csname macarg.\endcsname to be \realbackslash, so % \\ in macro replacement text gets you a backslash. -% + {\catcode`@=0 @catcode`@\=@active @gdef@usembodybackslash{@let\=@mbodybackslash} @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname} } \expandafter\def\csname macarg.\endcsname{\realbackslash} -\def\margbackslash#1{\char`\#1 } - \def\macro{\recursivefalse\parsearg\macroxxx} \def\rmacro{\recursivetrue\parsearg\macroxxx} \def\macroxxx#1{% - \getargs{#1}% now \macname is the macname and \argl the arglist + \getargs{#1}% now \macname is the macname and \argl the arglist \ifx\argl\empty % no arguments - \paramno=0\relax + \paramno=0% \else \expandafter\parsemargdef \argl;% - \if\paramno>256\relax - \ifx\eTeXversion\thisisundefined - \errhelp = \EMsimple - \errmessage{You need eTeX to compile a file with macros with more than 256 arguments} - \fi - \fi \fi \if1\csname ismacro.\the\macname\endcsname \message{Warning: redefining \the\macname}% @@ -7329,269 +6986,46 @@ end % an opening brace, and that opening brace is not consumed. \def\getargs#1{\getargsxxx#1{}} \def\getargsxxx#1#{\getmacname #1 \relax\getmacargs} -\def\getmacname#1 #2\relax{\macname={#1}} +\def\getmacname #1 #2\relax{\macname={#1}} \def\getmacargs#1{\def\argl{#1}} -% For macro processing make @ a letter so that we can make Texinfo private macro names. -\edef\texiatcatcode{\the\catcode`\@} -\catcode `@=11\relax - % Parse the optional {params} list. Set up \paramno and \paramlist -% so \defmacro knows what to do. Define \macarg.BLAH for each BLAH -% in the params list to some hook where the argument si to be expanded. If -% there are less than 10 arguments that hook is to be replaced by ##N where N -% is the position in that list, that is to say the macro arguments are to be -% defined `a la TeX in the macro body. -% +% so \defmacro knows what to do. Define \macarg.blah for each blah +% in the params list, to be ##N where N is the position in that list. % That gets used by \mbodybackslash (above). -% + % We need to get `macro parameter char #' into several definitions. -% The technique used is stolen from LaTeX: let \hash be something +% The technique used is stolen from LaTeX: let \hash be something % unexpandable, insert that wherever you need a #, and then redefine % it to # just before using the token list produced. % % The same technique is used to protect \eatspaces till just before % the macro is used. -% -% If there are 10 or more arguments, a different technique is used, where the -% hook remains in the body, and when macro is to be expanded the body is -% processed again to replace the arguments. -% -% In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the -% argument N value and then \edef the body (nothing else will expand because of -% the catcode regime underwhich the body was input). -% -% If you compile with TeX (not eTeX), and you have macros with 10 or more -% arguments, you need that no macro has more than 256 arguments, otherwise an -% error is produced. -\def\parsemargdef#1;{% - \paramno=0\def\paramlist{}% - \let\hash\relax - \let\xeatspaces\relax - \parsemargdefxxx#1,;,% - % In case that there are 10 or more arguments we parse again the arguments - % list to set new definitions for the \macarg.BLAH macros corresponding to - % each BLAH argument. It was anyhow needed to parse already once this list - % in order to count the arguments, and as macros with at most 9 arguments - % are by far more frequent than macro with 10 or more arguments, defining - % twice the \macarg.BLAH macros does not cost too much processing power. - \ifnum\paramno<10\relax\else - \paramno0\relax - \parsemmanyargdef@@#1,;,% 10 or more arguments - \fi -} + +\def\parsemargdef#1;{\paramno=0\def\paramlist{}% + \let\hash\relax\let\xeatspaces\relax\parsemargdefxxx#1,;,} \def\parsemargdefxxx#1,{% \if#1;\let\next=\relax \else \let\next=\parsemargdefxxx - \advance\paramno by 1 + \advance\paramno by 1% \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname {\xeatspaces{\hash\the\paramno}}% \edef\paramlist{\paramlist\hash\the\paramno,}% \fi\next} -\def\parsemmanyargdef@@#1,{% - \if#1;\let\next=\relax - \else - \let\next=\parsemmanyargdef@@ - \edef\tempb{\eatspaces{#1}}% - \expandafter\def\expandafter\tempa - \expandafter{\csname macarg.\tempb\endcsname}% - % Note that we need some extra \noexpand\noexpand, this is because we - % don't want \the to be expanded in the \parsermacbody as it uses an - % \xdef . - \expandafter\edef\tempa - {\noexpand\noexpand\noexpand\the\toks\the\paramno}% - \advance\paramno by 1\relax - \fi\next} - % These two commands read recursive and nonrecursive macro bodies. % (They're different since rec and nonrec macros end differently.) -% -\catcode `\@\texiatcatcode \long\def\parsemacbody#1@end macro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% \long\def\parsermacbody#1@end rmacro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% -\catcode `\@=11\relax - -\let\endargs@\relax -\let\nil@\relax -\def\nilm@{\nil@}% -\long\def\nillm@{\nil@}% - -% This macro is expanded during the Texinfo macro expansion, not during its -% definition. It gets all the arguments values and assigns them to macros -% macarg.ARGNAME -% -% #1 is the macro name -% #2 is the list of argument names -% #3 is the list of argument values -\def\getargvals@#1#2#3{% - \def\macargdeflist@{}% - \def\saveparamlist@{#2}% Need to keep a copy for parameter expansion. - \def\paramlist{#2,\nil@}% - \def\macroname{#1}% - \begingroup - \macroargctxt - \def\argvaluelist{#3,\nil@}% - \def\@tempa{#3}% - \ifx\@tempa\empty - \setemptyargvalues@ - \else - \getargvals@@ - \fi -} - -% -\def\getargvals@@{% - \ifx\paramlist\nilm@ - % Some sanity check needed here that \argvaluelist is also empty. - \ifx\argvaluelist\nillm@ - \else - \errhelp = \EMsimple - \errmessage{Too many arguments in macro `\macroname'!}% - \fi - \let\next\macargexpandinbody@ - \else - \ifx\argvaluelist\nillm@ - % No more arguments values passed to macro. Set remaining named-arg - % macros to empty. - \let\next\setemptyargvalues@ - \else - % pop current arg name into \@tempb - \def\@tempa##1{\pop@{\@tempb}{\paramlist}##1\endargs@}% - \expandafter\@tempa\expandafter{\paramlist}% - % pop current argument value into \@tempc - \def\@tempa##1{\longpop@{\@tempc}{\argvaluelist}##1\endargs@}% - \expandafter\@tempa\expandafter{\argvaluelist}% - % Here \@tempb is the current arg name and \@tempc is the current arg value. - % First place the new argument macro definition into \@tempd - \expandafter\macname\expandafter{\@tempc}% - \expandafter\let\csname macarg.\@tempb\endcsname\relax - \expandafter\def\expandafter\@tempe\expandafter{% - \csname macarg.\@tempb\endcsname}% - \edef\@tempd{\long\def\@tempe{\the\macname}}% - \push@\@tempd\macargdeflist@ - \let\next\getargvals@@ - \fi - \fi - \next -} - -\def\push@#1#2{% - \expandafter\expandafter\expandafter\def - \expandafter\expandafter\expandafter#2% - \expandafter\expandafter\expandafter{% - \expandafter#1#2}% -} - -% Replace arguments by their values in the macro body, and place the result -% in macro \@tempa -\def\macvalstoargs@{% - % To do this we use the property that token registers that are \the'ed - % within an \edef expand only once. So we are going to place all argument - % values into respective token registers. - % - % First we save the token context, and initialize argument numbering. - \begingroup - \paramno0\relax - % Then, for each argument number #N, we place the corresponding argument - % value into a new token list register \toks#N - \expandafter\putargsintokens@\saveparamlist@,;,% - % Then, we expand the body so that argument are replaced by their - % values. The trick for values not to be expanded themselves is that they - % are within tokens and that tokens expand only once in an \edef . - \edef\@tempc{\csname mac.\macroname .body\endcsname}% - % Now we restore the token stack pointer to free the token list registers - % which we have used, but we make sure that expanded body is saved after - % group. - \expandafter - \endgroup - \expandafter\def\expandafter\@tempa\expandafter{\@tempc}% - } - -\def\macargexpandinbody@{% - %% Define the named-macro outside of this group and then close this group. - \expandafter - \endgroup - \macargdeflist@ - % First the replace in body the macro arguments by their values, the result - % is in \@tempa . - \macvalstoargs@ - % Then we point at the \norecurse or \gobble (for recursive) macro value - % with \@tempb . - \expandafter\let\expandafter\@tempb\csname mac.\macroname .recurse\endcsname - % Depending on whether it is recursive or not, we need some tailing - % \egroup . - \ifx\@tempb\gobble - \let\@tempc\relax - \else - \let\@tempc\egroup - \fi - % And now we do the real job: - \edef\@tempd{\noexpand\@tempb{\macroname}\noexpand\scanmacro{\@tempa}\@tempc}% - \@tempd -} - -\def\putargsintokens@#1,{% - \if#1;\let\next\relax - \else - \let\next\putargsintokens@ - % First we allocate the new token list register, and give it a temporary - % alias \@tempb . - \toksdef\@tempb\the\paramno - % Then we place the argument value into that token list register. - \expandafter\let\expandafter\@tempa\csname macarg.#1\endcsname - \expandafter\@tempb\expandafter{\@tempa}% - \advance\paramno by 1\relax - \fi - \next -} - -% Save the token stack pointer into macro #1 -\def\texisavetoksstackpoint#1{\edef#1{\the\@cclvi}} -% Restore the token stack pointer from number in macro #1 -\def\texirestoretoksstackpoint#1{\expandafter\mathchardef\expandafter\@cclvi#1\relax} -% newtoks that can be used non \outer . -\def\texinonouternewtoks{\alloc@ 5\toks \toksdef \@cclvi} - -% Tailing missing arguments are set to empty -\def\setemptyargvalues@{% - \ifx\paramlist\nilm@ - \let\next\macargexpandinbody@ - \else - \expandafter\setemptyargvaluesparser@\paramlist\endargs@ - \let\next\setemptyargvalues@ - \fi - \next -} - -\def\setemptyargvaluesparser@#1,#2\endargs@{% - \expandafter\def\expandafter\@tempa\expandafter{% - \expandafter\def\csname macarg.#1\endcsname{}}% - \push@\@tempa\macargdeflist@ - \def\paramlist{#2}% -} - -% #1 is the element target macro -% #2 is the list macro -% #3,#4\endargs@ is the list value -\def\pop@#1#2#3,#4\endargs@{% - \def#1{#3}% - \def#2{#4}% -} -\long\def\longpop@#1#2#3,#4\endargs@{% - \long\def#1{#3}% - \long\def#2{#4}% -} -% This defines a Texinfo @macro. There are eight cases: recursive and -% nonrecursive macros of zero, one, up to nine, and many arguments. +% This defines the macro itself. There are six cases: recursive and +% nonrecursive macros of zero, one, and many arguments. % Much magic with \expandafter here. % \xdef is used so that macro definitions will survive the file % they're defined in; @include reads the file inside a group. -% \def\defmacro{% \let\hash=##% convert placeholders to macro parameter chars \ifrecursive @@ -7606,25 +7040,17 @@ end \expandafter\noexpand\csname\the\macname xxx\endcsname}% \expandafter\xdef\csname\the\macname xxx\endcsname##1{% \egroup\noexpand\scanmacro{\temp}}% - \else - \ifnum\paramno<10\relax % at most 9 - \expandafter\xdef\csname\the\macname\endcsname{% - \bgroup\noexpand\macroargctxt - \noexpand\csname\the\macname xx\endcsname}% - \expandafter\xdef\csname\the\macname xx\endcsname##1{% - \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% - \expandafter\expandafter - \expandafter\xdef - \expandafter\expandafter - \csname\the\macname xxx\endcsname - \paramlist{\egroup\noexpand\scanmacro{\temp}}% - \else % 10 or more - \expandafter\xdef\csname\the\macname\endcsname{% - \noexpand\getargvals@{\the\macname}{\argl}% - }% - \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp - \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble - \fi + \else % many + \expandafter\xdef\csname\the\macname\endcsname{% + \bgroup\noexpand\macroargctxt + \noexpand\csname\the\macname xx\endcsname}% + \expandafter\xdef\csname\the\macname xx\endcsname##1{% + \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% + \expandafter\expandafter + \expandafter\xdef + \expandafter\expandafter + \csname\the\macname xxx\endcsname + \paramlist{\egroup\noexpand\scanmacro{\temp}}% \fi \else \ifcase\paramno @@ -7641,40 +7067,29 @@ end \egroup \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% - \else % at most 9 - \ifnum\paramno<10\relax - \expandafter\xdef\csname\the\macname\endcsname{% - \bgroup\noexpand\macroargctxt - \expandafter\noexpand\csname\the\macname xx\endcsname}% - \expandafter\xdef\csname\the\macname xx\endcsname##1{% - \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% - \expandafter\expandafter - \expandafter\xdef - \expandafter\expandafter - \csname\the\macname xxx\endcsname - \paramlist{% - \egroup - \noexpand\norecurse{\the\macname}% - \noexpand\scanmacro{\temp}\egroup}% - \else % 10 or more: - \expandafter\xdef\csname\the\macname\endcsname{% - \noexpand\getargvals@{\the\macname}{\argl}% - }% - \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp - \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse - \fi + \else % many + \expandafter\xdef\csname\the\macname\endcsname{% + \bgroup\noexpand\macroargctxt + \expandafter\noexpand\csname\the\macname xx\endcsname}% + \expandafter\xdef\csname\the\macname xx\endcsname##1{% + \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% + \expandafter\expandafter + \expandafter\xdef + \expandafter\expandafter + \csname\the\macname xxx\endcsname + \paramlist{% + \egroup + \noexpand\norecurse{\the\macname}% + \noexpand\scanmacro{\temp}\egroup}% \fi \fi} -\catcode `\@\texiatcatcode\relax - \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}} % \braceorline decides whether the next nonwhitespace character is a % {. 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). -% +% as an argument (by \parsebrace or \parsearg) \def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup\else @@ -7684,8 +7099,7 @@ end % @alias. % We need some trickery to remove the optional spaces around the equal -% sign. Make them active and then expand them all to nothing. -% +% sign. Just make them active and then expand them all to nothing. \def\alias{\parseargusing\obeyspaces\aliasxxx} \def\aliasxxx #1{\aliasyyy#1\relax} \def\aliasyyy #1=#2\relax{% @@ -7706,8 +7120,7 @@ end % @inforef is relatively simple. \def\inforef #1{\inforefzzz #1,,,,**} -\def\inforefzzz #1,#2,#3,#4**{% - \putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, +\def\inforefzzz #1,#2,#3,#4**{\putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, node \samp{\ignorespaces#1{}}} % @node's only job in TeX is to define \lastnode, which is used in @@ -7768,32 +7181,11 @@ end \toks0 = \expandafter{\lastsection}% \immediate \writexrdef{title}{\the\toks0 }% \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. - \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout + \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, during \shipout }% \fi } -% @xrefautosectiontitle on|off says whether @section(ing) names are used -% automatically in xrefs, if the third arg is not explicitly specified. -% This was provided as a "secret" @set xref-automatic-section-title -% variable, now it's official. -% -\parseargdef\xrefautomaticsectiontitle{% - \def\temp{#1}% - \ifx\temp\onword - \expandafter\let\csname SETxref-automatic-section-title\endcsname - = \empty - \else\ifx\temp\offword - \expandafter\let\csname SETxref-automatic-section-title\endcsname - = \relax - \else - \errhelp = \EMsimple - \errmessage{Unknown @xrefautomaticsectiontitle value `\temp', - must be on|off}% - \fi\fi -} - - % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is % the node name, #2 the name of the Info cross-reference, #3 the printed % node name, #4 the name of the Info file, #5 the name of the printed @@ -7810,7 +7202,7 @@ end \setbox0=\hbox{\printedrefname\unskip}% \ifdim \wd0 = 0pt % No printed node name was explicitly given. - \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax + \expandafter\ifx\csname SETxref-automatic-section-title\endcsname\relax % Use the node name inside the square brackets. \def\printedrefname{\ignorespaces #1}% \else @@ -7839,8 +7231,9 @@ end % etc. don't get their TeX definitions. \getfilename{#4}% % - \edef\pdfxrefdest{#1}% - \txiescapepdf\pdfxrefdest + % See comments at \activebackslashdouble. + {\activebackslashdouble \xdef\pdfxrefdest{#1}% + \backslashparens\pdfxrefdest}% % \leavevmode \startlink attr{/Border [0 0 0]}% @@ -7964,8 +7357,7 @@ end \angleleft un\-de\-fined\angleright \iflinks \ifhavexrefs - {\toks0 = {#1}% avoid expansion of possibly-complex value - \message{\linenumber Undefined cross reference `\the\toks0'.}}% + \message{\linenumber Undefined cross reference `#1'.}% \else \ifwarnedxrefs\else \global\warnedxrefstrue @@ -8129,7 +7521,7 @@ end % space to prevent strange expansion errors.) \def\supereject{\par\penalty -20000\footnoteno =0 } -% @footnotestyle is meaningful for Info output only. +% @footnotestyle is meaningful for info output only. \let\footnotestyle=\comment {\catcode `\@=11 @@ -8192,8 +7584,6 @@ end % expands into a box, it must come within the paragraph, lest it % provide a place where TeX can split the footnote. \footstrut - % - % Invoke rest of plain TeX footnote routine. \futurelet\next\fo@t } }%end \catcode `\@=11 @@ -8281,7 +7671,7 @@ end it from ftp://tug.org/tex/epsf.tex.} % \def\image#1{% - \ifx\epsfbox\thisiundefined + \ifx\epsfbox\undefined \ifwarnednoepsf \else \errhelp = \noepsfhelp \errmessage{epsf.tex not found, images will be ignored}% @@ -8297,7 +7687,7 @@ end % #2 is (optional) width, #3 is (optional) height. % #4 is (ignored optional) html alt text. % #5 is (ignored optional) extension. -% #6 is just the usual extra ignored arg for parsing stuff. +% #6 is just the usual extra ignored arg for parsing this stuff. \newif\ifimagevmode \def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup \catcode`\^^M = 5 % in case we're inside an example @@ -8746,7 +8136,7 @@ directory should work if nowhere else does.} % % Latin1 (ISO-8859-1) character definitions. \def\latonechardefs{% - \gdef^^a0{\tie} + \gdef^^a0{~} \gdef^^a1{\exclamdown} \gdef^^a2{\missingcharmsg{CENT SIGN}} \gdef^^a3{{\pounds}} @@ -8776,7 +8166,7 @@ directory should work if nowhere else does.} \gdef^^b9{$^1$} \gdef^^ba{\ordm} % - \gdef^^bb{\guillemetright} + \gdef^^bb{\guilletright} \gdef^^bc{$1\over4$} \gdef^^bd{$1\over2$} \gdef^^be{$3\over4$} @@ -8868,7 +8258,7 @@ directory should work if nowhere else does.} % Latin2 (ISO-8859-2) character definitions. \def\lattwochardefs{% - \gdef^^a0{\tie} + \gdef^^a0{~} \gdef^^a1{\ogonek{A}} \gdef^^a2{\u{}} \gdef^^a3{\L} @@ -8949,8 +8339,8 @@ directory should work if nowhere else does.} \gdef^^ea{\ogonek{e}} \gdef^^eb{\"e} \gdef^^ec{\v e} - \gdef^^ed{\'{\dotless{i}}} - \gdef^^ee{\^{\dotless{i}}} + \gdef^^ed{\'\i} + \gdef^^ee{\^\i} \gdef^^ef{\v d} % \gdef^^f0{\dh} @@ -9041,7 +8431,7 @@ directory should work if nowhere else does.} \gdef\DeclareUnicodeCharacter#1#2{% \countUTFz = "#1\relax - %\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}% + \wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}% \begingroup \parseXMLCharref \def\UTFviiiTwoOctets##1##2{% @@ -9509,8 +8899,8 @@ directory should work if nowhere else does.} % Prevent underfull vbox error messages. \vbadness = 10000 -% Don't be very finicky about underfull hboxes, either. -\hbadness = 6666 +% Don't be so finicky about underfull hboxes, either. +\hbadness = 2000 % Following George Bush, get rid of widows and orphans. \widowpenalty=10000 @@ -9717,21 +9107,28 @@ directory should work if nowhere else does.} \message{and turning on texinfo input format.} -\def^^L{\par} % remove \outer, so ^L can appear in an @comment - % DEL is a comment character, in case @c does not suffice. \catcode`\^^? = 14 % Define macros to output various characters with catcode for normal text. -\catcode`\"=\other \def\normaldoublequote{"} -\catcode`\$=\other \def\normaldollar{$}%$ font-lock fix -\catcode`\+=\other \def\normalplus{+} -\catcode`\<=\other \def\normalless{<} -\catcode`\>=\other \def\normalgreater{>} -\catcode`\^=\other \def\normalcaret{^} -\catcode`\_=\other \def\normalunderscore{_} -\catcode`\|=\other \def\normalverticalbar{|} -\catcode`\~=\other \def\normaltilde{~} +\catcode`\"=\other +\catcode`\~=\other +\catcode`\^=\other +\catcode`\_=\other +\catcode`\|=\other +\catcode`\<=\other +\catcode`\>=\other +\catcode`\+=\other +\catcode`\$=\other +\def\normaldoublequote{"} +\def\normaltilde{~} +\def\normalcaret{^} +\def\normalunderscore{_} +\def\normalverticalbar{|} +\def\normalless{<} +\def\normalgreater{>} +\def\normalplus{+} +\def\normaldollar{$}%$ font-lock fix % This macro is used to make a character print one way in \tt % (where it can probably be output as-is), and another way in other fonts, @@ -9809,24 +9206,14 @@ directory should work if nowhere else does.} % In texinfo, backslash is an active character; it prints the backslash % in fixed width font. -\catcode`\\=\active % @ for escape char from now on. - -% The story here is that in math mode, the \char of \backslashcurfont -% ends up printing the roman \ from the math symbol font (because \char -% in math mode uses the \mathcode, and plain.tex sets -% \mathcode`\\="026E). It seems better for @backslashchar{} to always -% print a typewriter backslash, hence we use an explicit \mathchar, -% which is the decimal equivalent of "715c (class 7, e.g., use \fam; -% ignored family value; char position "5C). We can't use " for the -% usual hex value because it has already been made active. -@def@normalbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}} -@let@backslashchar = @normalbackslash % @backslashchar{} is for user documents. - +\catcode`\\=\active +@def@normalbackslash{{@tt@backslashcurfont}} % On startup, @fixbackslash assigns: % @let \ = @normalbackslash + % \rawbackslash defines an active \ to do \backslashcurfont. % \otherbackslash defines an active \ to be a literal `\' character with -% catcode other. We switch back and forth between these. +% catcode other. @gdef@rawbackslash{@let\=@backslashcurfont} @gdef@otherbackslash{@let\=@realbackslash} @@ -9834,16 +9221,16 @@ directory should work if nowhere else does.} % the literal character `\'. % @def@normalturnoffactive{% - @let"=@normaldoublequote - @let$=@normaldollar %$ font-lock fix - @let+=@normalplus - @let<=@normalless - @let>=@normalgreater @let\=@normalbackslash + @let"=@normaldoublequote + @let~=@normaltilde @let^=@normalcaret @let_=@normalunderscore @let|=@normalverticalbar - @let~=@normaltilde + @let<=@normalless + @let>=@normalgreater + @let+=@normalplus + @let$=@normaldollar %$ font-lock fix @markupsetuplqdefault @markupsetuprqdefault @unsepspaces @@ -9875,19 +9262,10 @@ directory should work if nowhere else does.} % Say @foo, not \foo, in error messages. @escapechar = `@@ -% These (along with & and #) are made active for url-breaking, so need -% active definitions as the normal characters. -@def@normaldot{.} -@def@normalquest{?} -@def@normalslash{/} - % These look ok in all fonts, so just make them not special. -% @hashchar{} gets its own user-level command, because of #line. -@catcode`@& = @other @def@normalamp{&} -@catcode`@# = @other @def@normalhash{#} -@catcode`@% = @other @def@normalpercent{%} - -@let @hashchar = @normalhash +@catcode`@& = @other +@catcode`@# = @other +@catcode`@% = @other @c Finally, make ` and ' active, so that txicodequoteundirected and @c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we diff --git a/libjava/classpath/examples/Makefile.in b/libjava/classpath/examples/Makefile.in index 1d5d02fe6b71..d77821861168 100644 --- a/libjava/classpath/examples/Makefile.in +++ b/libjava/classpath/examples/Makefile.in @@ -41,9 +41,6 @@ DIST_COMMON = README $(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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -62,7 +59,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -193,6 +192,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/external/Makefile.in b/libjava/classpath/external/Makefile.in index cd03f679553c..3de327506ded 100644 --- a/libjava/classpath/external/Makefile.in +++ b/libjava/classpath/external/Makefile.in @@ -39,9 +39,6 @@ DIST_COMMON = README $(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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -60,7 +57,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -208,6 +207,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/external/jsr166/Makefile.in b/libjava/classpath/external/jsr166/Makefile.in index 55f05841eb57..2b48838b79fa 100644 --- a/libjava/classpath/external/jsr166/Makefile.in +++ b/libjava/classpath/external/jsr166/Makefile.in @@ -39,9 +39,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -60,7 +57,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -168,6 +167,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/external/relaxngDatatype/Makefile.in b/libjava/classpath/external/relaxngDatatype/Makefile.in index 41430c160b46..a18308d2d748 100644 --- a/libjava/classpath/external/relaxngDatatype/Makefile.in +++ b/libjava/classpath/external/relaxngDatatype/Makefile.in @@ -39,9 +39,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -60,7 +57,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -168,6 +167,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/external/sax/Makefile.in b/libjava/classpath/external/sax/Makefile.in index 774243663c70..5a2a9123ccc8 100644 --- a/libjava/classpath/external/sax/Makefile.in +++ b/libjava/classpath/external/sax/Makefile.in @@ -39,9 +39,6 @@ DIST_COMMON = README $(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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -60,7 +57,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -168,6 +167,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java b/libjava/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java index 96dcf6779b7d..42dfe01dc2bd 100644 --- a/libjava/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java +++ b/libjava/classpath/external/sax/org/xml/sax/ext/EntityResolver2.java @@ -1,7 +1,7 @@ // EntityResolver2.java - Extended SAX entity resolver. // http://www.saxproject.org // No warranty; no copyright -- use this as you will. -// $Id: EntityResolver2.java,v 1.2 2006/12/10 20:25:41 gnu_andrew Exp $ +// $Id: EntityResolver2.java,v 1.2 2006-12-10 20:25:41 gnu_andrew Exp $ package org.xml.sax.ext; diff --git a/libjava/classpath/external/sax/org/xml/sax/ext/Locator2Impl.java b/libjava/classpath/external/sax/org/xml/sax/ext/Locator2Impl.java index d3c7511144f7..a73e8a4ee94f 100644 --- a/libjava/classpath/external/sax/org/xml/sax/ext/Locator2Impl.java +++ b/libjava/classpath/external/sax/org/xml/sax/ext/Locator2Impl.java @@ -1,7 +1,7 @@ // Locator2Impl.java - extended LocatorImpl // http://www.saxproject.org // Public Domain: no warranty. -// $Id: Locator2Impl.java,v 1.2 2006/12/10 20:25:41 gnu_andrew Exp $ +// $Id: Locator2Impl.java,v 1.2 2006-12-10 20:25:41 gnu_andrew Exp $ package org.xml.sax.ext; diff --git a/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java b/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java index 8ab909a7754a..24238e2f3b50 100644 --- a/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java +++ b/libjava/classpath/external/sax/org/xml/sax/helpers/XMLReaderAdapter.java @@ -2,7 +2,7 @@ // http://www.saxproject.org // Written by David Megginson // NO WARRANTY! This class is in the public domain. -// $Id: XMLReaderAdapter.java,v 1.2 2006/12/10 20:25:41 gnu_andrew Exp $ +// $Id: XMLReaderAdapter.java,v 1.2 2006-12-10 20:25:41 gnu_andrew Exp $ package org.xml.sax.helpers; diff --git a/libjava/classpath/external/w3c_dom/Makefile.in b/libjava/classpath/external/w3c_dom/Makefile.in index 76daadb2c226..4c65e720306d 100644 --- a/libjava/classpath/external/w3c_dom/Makefile.in +++ b/libjava/classpath/external/w3c_dom/Makefile.in @@ -39,9 +39,6 @@ DIST_COMMON = README $(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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -60,7 +57,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -168,6 +167,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/gnu/java/nio/FileLockImpl.java b/libjava/classpath/gnu/java/nio/FileLockImpl.java index e714ea358e58..0c6e4685cc33 100644 --- a/libjava/classpath/gnu/java/nio/FileLockImpl.java +++ b/libjava/classpath/gnu/java/nio/FileLockImpl.java @@ -88,6 +88,11 @@ public final class FileLockImpl extends FileLock return valid; } + public void close() throws Exception + { + release(); + } + /** * Releases the lock if it is still valid. Marks this lock as invalid. */ diff --git a/libjava/classpath/gnu/java/text/AttributedFormatBuffer.java b/libjava/classpath/gnu/java/text/AttributedFormatBuffer.java index 2a89ae0972ec..3633be920179 100644 --- a/libjava/classpath/gnu/java/text/AttributedFormatBuffer.java +++ b/libjava/classpath/gnu/java/text/AttributedFormatBuffer.java @@ -1,5 +1,5 @@ /* AttributedFormatBuffer.java -- Implements an attributed FormatBuffer. - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +41,10 @@ import gnu.java.lang.CPStringBuilder; import java.text.AttributedCharacterIterator; import java.util.ArrayList; import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static java.text.AttributedCharacterIterator.Attribute; /** * This class is an implementation of a FormatBuffer with attributes. @@ -53,12 +57,12 @@ import java.util.HashMap; public class AttributedFormatBuffer implements FormatBuffer { private final CPStringBuilder buffer; - private final ArrayList ranges; - private final ArrayList attributes; - private int[] a_ranges; - private HashMap[] a_attributes; + private final ArrayList ranges; + private final ArrayList> attributes; + private int[] aRanges; + private List> aAttributes; private int startingRange; - AttributedCharacterIterator.Attribute defaultAttr; + Attribute defaultAttr; /** * This constructor accepts a StringBuffer. If the buffer contains @@ -67,8 +71,8 @@ public class AttributedFormatBuffer implements FormatBuffer public AttributedFormatBuffer(CPStringBuilder buffer) { this.buffer = new CPStringBuilder(buffer); - this.ranges = new ArrayList(); - this.attributes = new ArrayList(); + this.ranges = new ArrayList(); + this.attributes = new ArrayList>(); this.defaultAttr = null; if (buffer.length() != 0) { @@ -94,23 +98,23 @@ public class AttributedFormatBuffer implements FormatBuffer * and attributes it adds exactly one attribute for the range of characters * comprised between the last entry in 'ranges' and the specified new range. * - * @param new_range A new range to insert in the list. + * @param newRange A new range to insert in the list. * @param attr A new attribute to insert in the list. */ - private final void addAttribute(int new_range, AttributedCharacterIterator.Attribute attr) + private final void addAttribute(int newRange, Attribute attr) { - HashMap map; + Map map; if (attr != null) { - map = new HashMap(); + map = new HashMap(); map.put(attr, attr); attributes.add(map); } else attributes.add(null); - ranges.add(new Integer(new_range)); + ranges.add(Integer.valueOf(newRange)); } public void append(String s) @@ -120,7 +124,7 @@ public class AttributedFormatBuffer implements FormatBuffer buffer.append(s); } - public void append(String s, AttributedCharacterIterator.Attribute attr) + public void append(String s, Attribute attr) { setDefaultAttribute(attr); startingRange = buffer.length(); @@ -128,7 +132,7 @@ public class AttributedFormatBuffer implements FormatBuffer setDefaultAttribute(null); } - public void append(String s, int[] ranges, HashMap[] attrs) + public void append(String s, int[] ranges, List> attrs) { int curPos = buffer.length(); @@ -137,8 +141,8 @@ public class AttributedFormatBuffer implements FormatBuffer { for (int i = 0; i < ranges.length; i++) { - this.ranges.add(new Integer(ranges[i] + curPos)); - this.attributes.add(attrs[i]); + this.ranges.add(Integer.valueOf(ranges[i] + curPos)); + this.attributes.add(attrs.get(i)); } } startingRange = buffer.length(); @@ -152,14 +156,14 @@ public class AttributedFormatBuffer implements FormatBuffer buffer.append(c); } - public void append(char c, AttributedCharacterIterator.Attribute attr) + public void append(char c, Attribute attr) { setDefaultAttribute(attr); buffer.append(c); setDefaultAttribute(null); } - public void setDefaultAttribute(AttributedCharacterIterator.Attribute attr) + public void setDefaultAttribute(Attribute attr) { if (attr == defaultAttr) return; @@ -174,7 +178,7 @@ public class AttributedFormatBuffer implements FormatBuffer startingRange = currentPos; } - public AttributedCharacterIterator.Attribute getDefaultAttribute() + public Attribute getDefaultAttribute() { return defaultAttr; } @@ -209,12 +213,11 @@ public class AttributedFormatBuffer implements FormatBuffer addAttribute(buffer.length(), defaultAttr); - a_ranges = new int[ranges.size()]; - for (int i = 0; i < a_ranges.length; i++) - a_ranges[i] = ((Integer)(ranges.get (i))).intValue(); + aRanges = new int[ranges.size()]; + for (int i = 0; i < aRanges.length; i++) + aRanges[i] = ranges.get (i).intValue(); - a_attributes = new HashMap[attributes.size()]; - System.arraycopy(attributes.toArray(), 0, a_attributes, 0, a_attributes.length); + aAttributes = new ArrayList>(attributes); } /** @@ -235,17 +238,17 @@ public class AttributedFormatBuffer implements FormatBuffer */ public int[] getRanges() { - return a_ranges; + return aRanges; } /** * This method returns the array containing the map on the * attributes. * - * @return An array of {@link java.util.Map} containing the attributes. + * @return A {@link java.util.List} of {@link java.util.Map}s containing the attributes. */ - public HashMap[] getAttributes() + public List> getAttributes() { - return a_attributes; + return aAttributes; } } diff --git a/libjava/classpath/gnu/java/text/FormatBuffer.java b/libjava/classpath/gnu/java/text/FormatBuffer.java index 590b16cce23e..2922897ee1f2 100644 --- a/libjava/classpath/gnu/java/text/FormatBuffer.java +++ b/libjava/classpath/gnu/java/text/FormatBuffer.java @@ -1,5 +1,5 @@ /* FormatBuffer.java -- General interface to build attributed strings. - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -37,7 +37,10 @@ exception statement from your version. */ package gnu.java.text; import java.text.AttributedCharacterIterator; -import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static java.text.AttributedCharacterIterator.Attribute; /** * This interface describes a modifiable buffer which contains attributed @@ -67,7 +70,7 @@ public interface FormatBuffer * @param s The string to append to the buffer. * @param attr Attribute to use for the string in the buffer. */ - public void append(String s, AttributedCharacterIterator.Attribute attr); + public void append(String s, Attribute attr); /** * This method appends a simple string to the buffer. This part of @@ -79,7 +82,7 @@ public interface FormatBuffer * to the string. * @param attrs The attributes of the string in the buffer. */ - public void append(String s, int[] ranges, HashMap[] attrs); + public void append(String s, int[] ranges, List> attrs); /** * This method appends a simple char to the buffer. This part of @@ -97,7 +100,7 @@ public interface FormatBuffer * @param c The character to append to the buffer. * @param attr Attribute to use for the character in the buffer. */ - public void append(char c, AttributedCharacterIterator.Attribute attr); + public void append(char c, Attribute attr); /** * This method changes the current default attribute for the next string @@ -105,14 +108,14 @@ public interface FormatBuffer * * @param attr The attribute which will be used by default. */ - public void setDefaultAttribute(AttributedCharacterIterator.Attribute attr); + public void setDefaultAttribute(Attribute attr); /** * This method returns the current default attribute for the buffer. * * @return The default attribute for the buffer. */ - public AttributedCharacterIterator.Attribute getDefaultAttribute(); + public Attribute getDefaultAttribute(); /** * This method cuts the last characters of the buffer. The number of diff --git a/libjava/classpath/gnu/java/text/FormatCharacterIterator.java b/libjava/classpath/gnu/java/text/FormatCharacterIterator.java index 889394ca4516..677d4d3b91a6 100644 --- a/libjava/classpath/gnu/java/text/FormatCharacterIterator.java +++ b/libjava/classpath/gnu/java/text/FormatCharacterIterator.java @@ -1,6 +1,6 @@ /* FormatCharacter.java -- Implementation of AttributedCharacterIterator for formatters. - Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -38,12 +38,15 @@ exception statement from your version. */ package gnu.java.text; import java.text.AttributedCharacterIterator; +import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; +import java.util.List; import java.util.Map; import java.util.Set; -import java.util.Vector; + +import static java.text.AttributedCharacterIterator.Attribute; /** * This class should not be put public and it is only intended to the @@ -62,7 +65,7 @@ public class FormatCharacterIterator implements AttributedCharacterIterator private int charIndex; private int attributeIndex; private int[] ranges; - private HashMap[] attributes; + private List> attributes; private static final boolean DEBUG = false; /** @@ -74,7 +77,7 @@ public class FormatCharacterIterator implements AttributedCharacterIterator { formattedString = ""; ranges = new int[0]; - attributes = new HashMap[0]; + attributes = new ArrayList>(0); } /** @@ -87,12 +90,13 @@ public class FormatCharacterIterator implements AttributedCharacterIterator *
    *   s = "hello";
    *   ranges = new int[] { 2, 6 };
-   *   attributes = new HashMap[2];
+   *   attributes = new ArrayList>(2);
    * 
- * "he" will have the attributes attributes[0], - * "llo" the attributes[1]. + * "he" will have the attributes attributes.get(0), + * "llo" the attributes.get(1). */ - public FormatCharacterIterator (String s, int[] ranges, HashMap[] attributes) + public FormatCharacterIterator (String s, int[] ranges, + List> attributes) { formattedString = s; this.ranges = ranges; @@ -104,55 +108,57 @@ public class FormatCharacterIterator implements AttributedCharacterIterator * and thus are already documented. */ - public Set getAllAttributeKeys() + public Set getAllAttributeKeys() { - if (attributes != null && attributes[attributeIndex] != null) - return attributes[attributeIndex].keySet(); + if (attributes != null && attributes.get(attributeIndex) != null) + return attributes.get(attributeIndex).keySet(); else - return new HashSet(); + return new HashSet(); } - public Map getAttributes() + public Map getAttributes() { - if (attributes != null && attributes[attributeIndex] != null) - return attributes[attributeIndex]; + if (attributes != null && attributes.get(attributeIndex) != null) + return attributes.get(attributeIndex); else - return new HashMap(); + return new HashMap(); } - public Object getAttribute (AttributedCharacterIterator.Attribute attrib) + public Object getAttribute (Attribute attrib) { - if (attributes != null && attributes[attributeIndex] != null) - return attributes[attributeIndex].get (attrib); + if (attributes != null && attributes.get(attributeIndex) != null) + return attributes.get(attributeIndex).get (attrib); else return null; } - public int getRunLimit(Set reqAttrs) + public int getRunLimit(Set reqAttrs) { if (attributes == null) return formattedString.length(); int currentAttrIndex = attributeIndex; - Set newKeys; + Set newKeys; do { currentAttrIndex++; - if (currentAttrIndex == attributes.length) + if (currentAttrIndex == attributes.size()) return formattedString.length(); - if (attributes[currentAttrIndex] == null) + Map currentAttr = + attributes.get(currentAttrIndex); + if (currentAttr == null) break; - newKeys = attributes[currentAttrIndex].keySet(); + newKeys = currentAttr.keySet(); } while (newKeys.containsAll (reqAttrs)); return ranges[currentAttrIndex-1]; } - public int getRunLimit (AttributedCharacterIterator.Attribute attribute) + public int getRunLimit (Attribute attribute) { - Set s = new HashSet(); + Set s = new HashSet(); s.add (attribute); return getRunLimit (s); @@ -162,24 +168,24 @@ public class FormatCharacterIterator implements AttributedCharacterIterator { if (attributes == null) return formattedString.length(); - if (attributes[attributeIndex] == null) + if (attributes.get(attributeIndex) == null) { - for (int i=attributeIndex+1;i reqAttrs) { if (attributes == null) return formattedString.length(); int currentAttrIndex = attributeIndex; - Set newKeys = null; + Set newKeys = null; do { @@ -187,9 +193,11 @@ public class FormatCharacterIterator implements AttributedCharacterIterator return 0; currentAttrIndex--; - if (attributes[currentAttrIndex] == null) + Map currentAttr = + attributes.get(currentAttrIndex); + if (currentAttr == null) break; - newKeys = attributes[currentAttrIndex].keySet(); + newKeys = currentAttr.keySet(); } while (newKeys.containsAll (reqAttrs)); @@ -201,20 +209,21 @@ public class FormatCharacterIterator implements AttributedCharacterIterator if (attributes == null) return 0; - if (attributes[attributeIndex] == null) + Map attrib = attributes.get(attributeIndex); + if (attrib == null) { for (int i=attributeIndex;i>0;i--) - if (attributes[i] != null) + if (attributes.get(i) != null) return ranges[attributeIndex-1]; return 0; } - return getRunStart (attributes[attributeIndex].keySet()); + return getRunStart (attrib.keySet()); } - public int getRunStart (AttributedCharacterIterator.Attribute attribute) + public int getRunStart (Attribute attribute) { - Set s = new HashSet(); + Set s = new HashSet(); s.add (attribute); return getRunStart (s); @@ -261,7 +270,7 @@ public class FormatCharacterIterator implements AttributedCharacterIterator { charIndex = formattedString.length()-1; if (attributes != null) - attributeIndex = attributes.length-1; + attributeIndex = attributes.size()-1; return formattedString.charAt (charIndex); } @@ -306,7 +315,7 @@ public class FormatCharacterIterator implements AttributedCharacterIterator charIndex = position; if (attributes != null) { - for (attributeIndex=0;attributeIndex charIndex) break; @@ -327,40 +336,42 @@ public class FormatCharacterIterator implements AttributedCharacterIterator * * @param attributes the new array attributes to apply to the string. */ - public void mergeAttributes (HashMap[] attributes, int[] ranges) + public void mergeAttributes (List> attributes, + int[] ranges) { - Vector new_ranges = new Vector(); - Vector new_attributes = new Vector(); + List newRanges = new ArrayList(); + List> newAttributes = + new ArrayList>(); int i = 0, j = 0; - debug("merging " + attributes.length + " attrs"); + debug("merging " + attributes.size() + " attrs"); while (i < this.ranges.length && j < ranges.length) { - if (this.attributes[i] != null) + if (this.attributes.get(i) != null) { - new_attributes.add (this.attributes[i]); - if (attributes[j] != null) - this.attributes[i].putAll (attributes[j]); + newAttributes.add (this.attributes.get(i)); + if (attributes.get(j) != null) + this.attributes.get(i).putAll (attributes.get(j)); } else { - new_attributes.add (attributes[j]); + newAttributes.add (attributes.get(j)); } if (this.ranges[i] == ranges[j]) { - new_ranges.add (new Integer (ranges[j])); + newRanges.add (Integer.valueOf (ranges[j])); i++; j++; } else if (this.ranges[i] < ranges[j]) { - new_ranges.add (new Integer (this.ranges[i])); + newRanges.add (Integer.valueOf (this.ranges[i])); i++; } else { - new_ranges.add (new Integer (ranges[j])); + newRanges.add (Integer.valueOf (ranges[j])); j++; } } @@ -369,27 +380,25 @@ public class FormatCharacterIterator implements AttributedCharacterIterator { for (;i moreRanges = new ArrayList(); + List> moreAttributes = + new ArrayList>(); do { formattedString = formattedString + String.valueOf (c); // TODO: Reduce the size of the output array. - more_attributes.add (iterator.getAttributes()); - more_ranges.add (new Integer (formattedString.length())); + moreAttributes.add (iterator.getAttributes()); + moreRanges.add (Integer.valueOf (formattedString.length())); // END TOOD c = iterator.next(); } while (c != DONE); - HashMap[] new_attributes = new HashMap[attributes.length - + more_attributes.size()]; - int[] new_ranges = new int[ranges.length + more_ranges.size()]; + List> newAttributes = + new ArrayList>(attributes.size() + moreAttributes.size()); + int[] newRanges = new int[ranges.length + moreRanges.size()]; - System.arraycopy (attributes, 0, new_attributes, 0, attributes.length); - System.arraycopy (more_attributes.toArray(), 0, new_attributes, - attributes.length, more_attributes.size()); + newAttributes.addAll(attributes); + newAttributes.addAll(moreAttributes); - System.arraycopy (ranges, 0, new_ranges, 0, ranges.length); - Object[] new_ranges_array = more_ranges.toArray(); - for (int i = 0; i < more_ranges.size();i++) - new_ranges[i+ranges.length] = ((Integer) new_ranges_array[i]).intValue(); + System.arraycopy (ranges, 0, newRanges, 0, ranges.length); + Integer[] newRangesArray = moreRanges.toArray(new Integer[moreRanges.size()]); + for (int i = 0; i < moreRanges.size();i++) + newRanges[i+ranges.length] = newRangesArray[i].intValue(); - attributes = new_attributes; - ranges = new_ranges; + attributes = newAttributes; + ranges = newRanges; } /** @@ -441,28 +450,29 @@ public class FormatCharacterIterator implements AttributedCharacterIterator * directly in the calling parameters. * * @param text The string to append. - * @param local_attributes The attributes to put on this string in the + * @param localAttributes The attributes to put on this string in the * iterator. If it is null the string will simply have no * attributes. */ - public void append (String text, HashMap local_attributes) + public void append (String text, HashMap localAttributes) { - int[] new_ranges = new int[ranges.length+1]; - HashMap[] new_attributes = new HashMap[attributes.length+1]; + int[] newRanges = new int[ranges.length+1]; + List> newAttributes = + new ArrayList>(attributes.size()+1); formattedString += text; - System.arraycopy (attributes, 0, new_attributes, 0, attributes.length); - System.arraycopy (ranges, 0, new_ranges, 0, ranges.length); - new_ranges[ranges.length] = formattedString.length(); - new_attributes[attributes.length] = local_attributes; + newAttributes.addAll(attributes); + System.arraycopy (ranges, 0, newRanges, 0, ranges.length); + newRanges[ranges.length] = formattedString.length(); + newAttributes.add(new HashMap(localAttributes)); - ranges = new_ranges; - attributes = new_attributes; + ranges = newRanges; + attributes = newAttributes; } /** * This method appends a string without attributes. It is completely - * equivalent to call {@link #append(String,HashMap)} with local_attributes + * equivalent to call {@link #append(String,HashMap)} with localAttributes * equal to null. * * @param text The string to append to the iterator. @@ -475,22 +485,31 @@ public class FormatCharacterIterator implements AttributedCharacterIterator /** * This method adds a set of attributes to a range of character. The * bounds are always inclusive. In the case many attributes have to - * be added it is advised to directly use {@link #mergeAttributes([Ljava.util.HashMap;[I} + * be added it is advised to directly use {@link #mergeAttributes(java.util.List;[I} * * @param attributes Attributes to merge into the iterator. - * @param range_start Lower bound of the range of characters which will receive the + * @param rangeStart Lower bound of the range of characters which will receive the * attribute. - * @param range_end Upper bound of the range of characters which will receive the + * @param rangeEnd Upper bound of the range of characters which will receive the * attribute. * * @throws IllegalArgumentException if ranges are out of bounds. */ - public void addAttributes(HashMap attributes, int range_start, int range_end) + public void addAttributes(Map attributes, + int rangeStart, int rangeEnd) { - if (range_start == 0) - mergeAttributes(new HashMap[] { attributes }, new int[] { range_end }); + List> mergeAttribs = new ArrayList>(); + int[] mergeRanges; + + if (rangeStart == 0) + mergeRanges = new int[] { rangeEnd }; else - mergeAttributes(new HashMap[] { null, attributes }, new int[] { range_start, range_end }); + { + mergeRanges = new int[] { rangeStart, rangeEnd }; + mergeAttribs.add(null); + } + mergeAttribs.add(new HashMap(attributes)); + mergeAttributes(mergeAttribs, mergeRanges); } private void debug(String s) @@ -501,7 +520,7 @@ public class FormatCharacterIterator implements AttributedCharacterIterator private void dumpTable() { - int start_range = 0; + int startRange = 0; if (!DEBUG) return; @@ -509,15 +528,15 @@ public class FormatCharacterIterator implements AttributedCharacterIterator System.out.println("Dumping internal table:"); for (int i = 0; i < ranges.length; i++) { - System.out.print("\t" + start_range + " => " + ranges[i] + ":"); - if (attributes[i] == null) + System.out.print("\t" + startRange + " => " + ranges[i] + ":"); + if (attributes.get(i) == null) System.out.println("null"); else { - Set keyset = attributes[i].keySet(); + Set keyset = attributes.get(i).keySet(); if (keyset != null) { - Iterator keys = keyset.iterator(); + Iterator keys = keyset.iterator(); while (keys.hasNext()) System.out.print(" " + keys.next()); diff --git a/libjava/classpath/gnu/java/text/StringFormatBuffer.java b/libjava/classpath/gnu/java/text/StringFormatBuffer.java index 2367fccb39e9..8374500ea25b 100644 --- a/libjava/classpath/gnu/java/text/StringFormatBuffer.java +++ b/libjava/classpath/gnu/java/text/StringFormatBuffer.java @@ -1,5 +1,5 @@ /* StringFormatBuffer.java -- Implements FormatBuffer using StringBuffer. - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -37,7 +37,10 @@ exception statement from your version. */ package gnu.java.text; import java.text.AttributedCharacterIterator; -import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static java.text.AttributedCharacterIterator.Attribute; /** * This class is an implementation of a FormatBuffer without attributes. @@ -48,7 +51,7 @@ import java.util.HashMap; public class StringFormatBuffer implements FormatBuffer { private final StringBuffer buffer; - private AttributedCharacterIterator.Attribute defaultAttr; + private Attribute defaultAttr; public StringFormatBuffer(int prebuffer) { @@ -65,12 +68,12 @@ public class StringFormatBuffer implements FormatBuffer buffer.append(s); } - public void append(String s, AttributedCharacterIterator.Attribute attr) + public void append(String s, Attribute attr) { buffer.append(s); } - public void append(String s, int[] ranges, HashMap[] attrs) + public void append(String s, int[] ranges, List> attrs) { buffer.append(s); } @@ -80,17 +83,17 @@ public class StringFormatBuffer implements FormatBuffer buffer.append(c); } - public void append(char c, AttributedCharacterIterator.Attribute attr) + public void append(char c, Attribute attr) { buffer.append(c); } - public void setDefaultAttribute(AttributedCharacterIterator.Attribute attr) + public void setDefaultAttribute(Attribute attr) { defaultAttr = attr; } - public AttributedCharacterIterator.Attribute getDefaultAttribute() + public Attribute getDefaultAttribute() { return defaultAttr; } diff --git a/libjava/classpath/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java b/libjava/classpath/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java index 605c6dfb7916..ca7b046f25af 100644 --- a/libjava/classpath/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java +++ b/libjava/classpath/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.java @@ -1,5 +1,5 @@ /* DSSIMidiDeviceProvider.java -- DSSI Device Provider - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -69,13 +69,16 @@ public class DSSIMidiDeviceProvider extends MidiDeviceProvider */ private static class DSSIInfo extends Info { + String copyright; String soname; long index; - public DSSIInfo(String name, String vendor, String description, - String version, String soname, long index) + public DSSIInfo(String name, String vendor, String label, + String copyright, String version, + String soname, long index) { - super(name, vendor, description, version); + super(name, vendor, label, version); + this.copyright = copyright; this.soname = soname; this.index = index; } @@ -89,9 +92,9 @@ public class DSSIMidiDeviceProvider extends MidiDeviceProvider static native String getDSSIVendor_(long handle); static native String getDSSILabel_(long handle); - private static List examineLibrary(String soname) + private static List examineLibrary(String soname) { - List list = new ArrayList(); + List list = new ArrayList(); long index = 0; long handle; @@ -107,7 +110,7 @@ public class DSSIMidiDeviceProvider extends MidiDeviceProvider String copyright = getDSSICopyright_(handle); String label = getDSSIName_(handle); String vendor = getDSSIVendor_(handle); - list.add(new DSSIInfo(name, vendor, label, + list.add(new DSSIInfo(name, vendor, label, copyright, "DSSI-1", soname, index)); index++; } while (true); @@ -133,10 +136,10 @@ public class DSSIMidiDeviceProvider extends MidiDeviceProvider return n.endsWith(".so"); } }); - List ilist = new ArrayList(); + List ilist = new ArrayList(); for (int i = 0; i < sofiles.length; i++) ilist.addAll(examineLibrary(new File(dssidir, sofiles[i]).getAbsolutePath())); - infos = (DSSIInfo[]) ilist.toArray(new DSSIInfo[ilist.size()]); + infos = ilist.toArray(new DSSIInfo[ilist.size()]); } public DSSIMidiDeviceProvider() diff --git a/libjava/classpath/gnu/javax/sound/midi/dssi/DSSISynthesizer.java b/libjava/classpath/gnu/javax/sound/midi/dssi/DSSISynthesizer.java index 9472ee4adcc5..1ae1fe87a58b 100644 --- a/libjava/classpath/gnu/javax/sound/midi/dssi/DSSISynthesizer.java +++ b/libjava/classpath/gnu/javax/sound/midi/dssi/DSSISynthesizer.java @@ -1,5 +1,5 @@ /* DSSISynthesizer.java -- DSSI Synthesizer Provider - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2005, 2006, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -97,8 +97,8 @@ public class DSSISynthesizer implements Synthesizer { private String name; private String description; - private List instruments = new ArrayList(); - private List resources = new ArrayList(); + private List instruments = new ArrayList(); + private List resources = new ArrayList(); private String vendor; private String version; @@ -147,27 +147,25 @@ public class DSSISynthesizer implements Synthesizer */ public SoundbankResource[] getResources() { - return (SoundbankResource[]) - resources.toArray(new SoundbankResource[resources.size()]); + return resources.toArray(new SoundbankResource[resources.size()]); } /* @see javax.sound.midi.Soundbank#getInstruments() */ public Instrument[] getInstruments() { - return (Instrument[]) - instruments.toArray(new Instrument[instruments.size()]); + return instruments.toArray(new Instrument[instruments.size()]); } /* @see javax.sound.midi.Soundbank#getInstrument(javax.sound.midi.Patch) */ public Instrument getInstrument(Patch patch) { - Iterator itr = instruments.iterator(); + Iterator itr = instruments.iterator(); while (itr.hasNext()) { - Instrument i = (Instrument) itr.next(); + Instrument i = itr.next(); if (i.getPatch().equals(patch)) return i; } @@ -490,7 +488,7 @@ public class DSSISynthesizer implements Synthesizer MidiChannel channels[] = new MidiChannel[16]; // The list of known soundbanks, and the default one. - List soundbanks = new ArrayList(); + List soundbanks = new ArrayList(); DSSISoundbank defaultSoundbank; /** @@ -616,17 +614,16 @@ public class DSSISynthesizer implements Synthesizer */ public Instrument[] getAvailableInstruments() { - List instruments = new ArrayList(); - Iterator itr = soundbanks.iterator(); + List instruments = new ArrayList(); + Iterator itr = soundbanks.iterator(); while (itr.hasNext()) { - Soundbank sb = (Soundbank) itr.next(); + Soundbank sb = itr.next(); Instrument ins[] = sb.getInstruments(); for (int i = 0; i < ins.length; i++) instruments.add(ins[i]); } - return (Instrument[]) - instruments.toArray(new Instrument[instruments.size()]); + return instruments.toArray(new Instrument[instruments.size()]); } /* (non-Javadoc) diff --git a/libjava/classpath/gnu/javax/sound/midi/file/MidiFileReader.java b/libjava/classpath/gnu/javax/sound/midi/file/MidiFileReader.java index fb2a472fa240..06f29af0f553 100644 --- a/libjava/classpath/gnu/javax/sound/midi/file/MidiFileReader.java +++ b/libjava/classpath/gnu/javax/sound/midi/file/MidiFileReader.java @@ -1,5 +1,5 @@ /* MidiFileReader.java -- Read MIDI files. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -198,7 +198,7 @@ public class MidiFileReader extends javax.sound.midi.spi.MidiFileReader int Mtrk = din.readInt(); if (Mtrk != 0x4d54726b) throw new InvalidMidiDataException("Invalid MIDI track header."); - int length = din.readInt(); + din.readInt(); // length int runningStatus = -1; int click = 0; diff --git a/libjava/classpath/gnu/javax/sound/midi/file/MidiFileWriter.java b/libjava/classpath/gnu/javax/sound/midi/file/MidiFileWriter.java index 5170fc1e7dfb..f3194cb1ed45 100644 --- a/libjava/classpath/gnu/javax/sound/midi/file/MidiFileWriter.java +++ b/libjava/classpath/gnu/javax/sound/midi/file/MidiFileWriter.java @@ -1,5 +1,5 @@ /* MidiFileWriter.java -- Write MIDI files. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -118,7 +118,7 @@ public class MidiFileWriter */ private int computeTrackLength(Track track, MidiDataOutputStream dos) { - int count = 0, length = 0, i = 0, eventCount = track.size(); + int length = 0, i = 0, eventCount = track.size(); long ptick = 0; while (i < eventCount) { diff --git a/libjava/classpath/gnu/javax/sound/sampled/WAV/WAVReader.java b/libjava/classpath/gnu/javax/sound/sampled/WAV/WAVReader.java index 5cd6efe5e023..f03bc4790adc 100644 --- a/libjava/classpath/gnu/javax/sound/sampled/WAV/WAVReader.java +++ b/libjava/classpath/gnu/javax/sound/sampled/WAV/WAVReader.java @@ -1,5 +1,5 @@ /* WAVReader.java -- Read WAV files. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -128,7 +128,7 @@ public class WAVReader extends AudioFileReader boolean foundFmt = false; boolean foundData = false; - short compressionCode = 0, numberChannels = 0, blockAlign = 0, bitsPerSample = 0; + short compressionCode = 0, numberChannels = 0, bitsPerSample = 0; long sampleRate = 0, bytesPerSecond = 0; long chunkLength = 0; @@ -144,7 +144,7 @@ public class WAVReader extends AudioFileReader numberChannels = readUnsignedShortLE(din); sampleRate = readUnsignedIntLE(din); bytesPerSecond = readUnsignedIntLE(din); - blockAlign = readUnsignedShortLE(din); + readUnsignedShortLE(din); // blockAlign bitsPerSample = readUnsignedShortLE(din); din.skip(chunkLength - 16); break; diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java index 1910ea655ddd..b2ca7cd4b4c5 100644 --- a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java +++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/GStreamerMixer.java @@ -1,5 +1,5 @@ /* GStreamerMixer.java -- Mixer implementation. - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -92,7 +92,7 @@ public class GStreamerMixer // 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(); + Class clazz = info.getLineClass(); DataLine.Info _info = (DataLine.Info) info; if (clazz == SourceDataLine.class) diff --git a/libjava/classpath/gnu/xml/transform/SAXSerializer.java b/libjava/classpath/gnu/xml/transform/SAXSerializer.java index 2bd1f97abd20..3ea423410a5c 100644 --- a/libjava/classpath/gnu/xml/transform/SAXSerializer.java +++ b/libjava/classpath/gnu/xml/transform/SAXSerializer.java @@ -200,7 +200,8 @@ class SAXSerializer public String getValue(String qName) { - return attrs.getNamedItem(qName).getNodeValue(); + Attr attr = (Attr) attrs.getNamedItem(qName); + return (attr == null) ? null : attr.getNodeValue(); } void serialize(Node node, ContentHandler ch, LexicalHandler lh) diff --git a/libjava/classpath/include/Makefile.in b/libjava/classpath/include/Makefile.in index 1039aee441d8..138e477b450d 100644 --- a/libjava/classpath/include/Makefile.in +++ b/libjava/classpath/include/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -169,6 +168,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/install-sh b/libjava/classpath/install-sh index a9244eb07865..6781b987bdbc 100755 --- a/libjava/classpath/install-sh +++ b/libjava/classpath/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2011-01-19.21; # UTC +scriptversion=2009-04-28.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -156,10 +156,6 @@ while test $# -ne 0; do -s) stripcmd=$stripprog;; -t) dst_arg=$2 - # Protect names problematic for `test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac shift;; -T) no_target_directory=true;; @@ -190,10 +186,6 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then fi shift # arg dst_arg=$arg - # Protect names problematic for `test' and other utilities. - case $dst_arg in - -* | [=\(\)!]) dst_arg=./$dst_arg;; - esac done fi @@ -208,11 +200,7 @@ if test $# -eq 0; then fi if test -z "$dir_arg"; then - do_exit='(exit $ret); exit $ret' - trap "ret=129; $do_exit" 1 - trap "ret=130; $do_exit" 2 - trap "ret=141; $do_exit" 13 - trap "ret=143; $do_exit" 15 + 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. @@ -240,9 +228,9 @@ fi for src do - # Protect names problematic for `test' and other utilities. + # Protect names starting with `-'. case $src in - -* | [=\(\)!]) src=./$src;; + -*) src=./$src;; esac if test -n "$dir_arg"; then @@ -264,7 +252,12 @@ do echo "$0: no destination specified." >&2 exit 1 fi + dst=$dst_arg + # Protect names starting with `-'. + case $dst in + -*) dst=./$dst;; + esac # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. @@ -392,7 +385,7 @@ do case $dstdir in /*) prefix='/';; - [-=\(\)!]*) prefix='./';; + -*) prefix='./';; *) prefix='';; esac @@ -410,7 +403,7 @@ do for d do - test X"$d" = X && continue + test -z "$d" && continue prefix=$prefix$d if test -d "$prefix"; then diff --git a/libjava/classpath/java/awt/geom/Area.java b/libjava/classpath/java/awt/geom/Area.java index a1eaf63f3c33..51f914f288f8 100644 --- a/libjava/classpath/java/awt/geom/Area.java +++ b/libjava/classpath/java/awt/geom/Area.java @@ -91,18 +91,18 @@ public class Area implements Shape, Cloneable * Segment vectors containing solid areas and holes * This is package-private to avoid an accessor method. */ - Vector solids; + Vector solids; /** * Segment vectors containing solid areas and holes * This is package-private to avoid an accessor method. */ - Vector holes; + Vector holes; /** * Vector (temporary) storing curve-curve intersections */ - private Vector cc_intersections; + private Vector ccIntersections; /** * Winding rule WIND_NON_ZERO used, after construction, @@ -115,8 +115,8 @@ public class Area implements Shape, Cloneable */ public Area() { - solids = new Vector(); - holes = new Vector(); + solids = new Vector(); + holes = new Vector(); } /** @@ -135,7 +135,7 @@ public class Area implements Shape, Cloneable { this(); - Vector p = makeSegment(s); + Vector p = makeSegment(s); // empty path if (p == null) @@ -143,7 +143,7 @@ public class Area implements Shape, Cloneable // delete empty paths for (int i = 0; i < p.size(); i++) - if (((Segment) p.elementAt(i)).getSignedArea() == 0.0) + if (p.elementAt(i).getSignedArea() == 0.0) p.remove(i--); /* @@ -157,12 +157,11 @@ public class Area implements Shape, Cloneable * 4: Repeat (3) until no segments remain in the list * 5: Remove redundant paths and sort into solids and holes */ - Vector paths = new Vector(); Segment v; for (int i = 0; i < p.size(); i++) { - Segment path = (Segment) p.elementAt(i); + Segment path = p.elementAt(i); createNodesSelf(path); } @@ -171,18 +170,18 @@ public class Area implements Shape, Cloneable for (int i = 0; i < p.size() - 1; i++) for (int j = i + 1; j < p.size(); j++) { - Segment path1 = (Segment) p.elementAt(i); - Segment path2 = (Segment) p.elementAt(j); + Segment path1 = p.elementAt(i); + Segment path2 = p.elementAt(j); createNodes(path1, path2); } } // we have intersecting points. - Vector segments = new Vector(); + Vector segments = new Vector(); for (int i = 0; i < p.size(); i++) { - Segment path = v = (Segment) p.elementAt(i); + Segment path = v = p.elementAt(i); do { segments.add(v); @@ -191,7 +190,7 @@ public class Area implements Shape, Cloneable while (v != path); } - paths = weilerAtherton(segments); + Vector paths = weilerAtherton(segments); deleteRedundantPaths(paths); } @@ -208,36 +207,34 @@ public class Area implements Shape, Cloneable Area B = (Area) area.clone(); - Vector pathA = new Vector(); - Vector pathB = new Vector(); + Vector pathA = new Vector(); + Vector pathB = new Vector(); pathA.addAll(solids); pathA.addAll(holes); pathB.addAll(B.solids); pathB.addAll(B.holes); - int nNodes = 0; - for (int i = 0; i < pathA.size(); i++) { - Segment a = (Segment) pathA.elementAt(i); + Segment a = pathA.elementAt(i); for (int j = 0; j < pathB.size(); j++) { - Segment b = (Segment) pathB.elementAt(j); - nNodes += createNodes(a, b); + Segment b = pathB.elementAt(j); + createNodes(a, b); } } - Vector paths = new Vector(); + Vector paths = new Vector(); Segment v; // we have intersecting points. - Vector segments = new Vector(); + Vector segments = new Vector(); // In a union operation, we keep all // segments of A oustide B and all B outside A for (int i = 0; i < pathA.size(); i++) { - v = (Segment) pathA.elementAt(i); + v = pathA.elementAt(i); Segment path = v; do { @@ -250,7 +247,7 @@ public class Area implements Shape, Cloneable for (int i = 0; i < pathB.size(); i++) { - v = (Segment) pathB.elementAt(i); + v = pathB.elementAt(i); Segment path = v; do { @@ -281,7 +278,7 @@ public class Area implements Shape, Cloneable return; } - Vector pathA = new Vector(); + Vector pathA = new Vector(); Area B = (Area) area.clone(); pathA.addAll(solids); pathA.addAll(holes); @@ -290,27 +287,23 @@ public class Area implements Shape, Cloneable setDirection(B.holes, true); setDirection(B.solids, false); - Vector pathB = new Vector(); + Vector pathB = new Vector(); pathB.addAll(B.solids); pathB.addAll(B.holes); - int nNodes = 0; - // create nodes for (int i = 0; i < pathA.size(); i++) { - Segment a = (Segment) pathA.elementAt(i); + Segment a = pathA.elementAt(i); for (int j = 0; j < pathB.size(); j++) { - Segment b = (Segment) pathB.elementAt(j); - nNodes += createNodes(a, b); + Segment b = pathB.elementAt(j); + createNodes(a, b); } } - Vector paths = new Vector(); - // we have intersecting points. - Vector segments = new Vector(); + Vector segments = new Vector(); // In a subtraction operation, we keep all // segments of A oustide B and all B within A @@ -318,7 +311,7 @@ public class Area implements Shape, Cloneable // and the segments before and after any node for (int i = 0; i < pathA.size(); i++) { - Segment v = (Segment) pathA.elementAt(i); + Segment v = pathA.elementAt(i); Segment path = v; if (v.isSegmentOutside(area) && v.node == null) segments.add(v); @@ -357,7 +350,7 @@ public class Area implements Shape, Cloneable while (v != path); } - paths = weilerAtherton(segments); + Vector paths = weilerAtherton(segments); deleteRedundantPaths(paths); } @@ -376,32 +369,28 @@ public class Area implements Shape, Cloneable if (equals(area)) return; - Vector pathA = new Vector(); + Vector pathA = new Vector(); Area B = (Area) area.clone(); pathA.addAll(solids); pathA.addAll(holes); - Vector pathB = new Vector(); + Vector pathB = new Vector(); pathB.addAll(B.solids); pathB.addAll(B.holes); - int nNodes = 0; - // create nodes for (int i = 0; i < pathA.size(); i++) { - Segment a = (Segment) pathA.elementAt(i); + Segment a = pathA.elementAt(i); for (int j = 0; j < pathB.size(); j++) { - Segment b = (Segment) pathB.elementAt(j); - nNodes += createNodes(a, b); + Segment b = pathB.elementAt(j); + createNodes(a, b); } } - Vector paths = new Vector(); - // we have intersecting points. - Vector segments = new Vector(); + Vector segments = new Vector(); // In an intersection operation, we keep all // segments of A within B and all B within A @@ -410,7 +399,7 @@ public class Area implements Shape, Cloneable // and the segments before and after any node for (int i = 0; i < pathA.size(); i++) { - Segment v = (Segment) pathA.elementAt(i); + Segment v = pathA.elementAt(i); Segment path = v; if (! v.isSegmentOutside(area) && v.node == null) segments.add(v); @@ -430,7 +419,7 @@ public class Area implements Shape, Cloneable for (int i = 0; i < pathB.size(); i++) { - Segment v = (Segment) pathB.elementAt(i); + Segment v = pathB.elementAt(i); Segment path = v; if (! v.isSegmentOutside(this) && v.node == null) segments.add(v); @@ -449,7 +438,7 @@ public class Area implements Shape, Cloneable while (v != path); } - paths = weilerAtherton(segments); + Vector paths = weilerAtherton(segments); deleteRedundantPaths(paths); } @@ -476,10 +465,10 @@ public class Area implements Shape, Cloneable return; } - Vector pathA = new Vector(); + Vector pathA = new Vector(); Area B = (Area) area.clone(); - Vector pathB = new Vector(); + Vector pathB = new Vector(); pathA.addAll(solids); pathA.addAll(holes); @@ -489,28 +478,25 @@ public class Area implements Shape, Cloneable pathB.addAll(B.solids); pathB.addAll(B.holes); - int nNodes = 0; - for (int i = 0; i < pathA.size(); i++) { - Segment a = (Segment) pathA.elementAt(i); + Segment a = pathA.elementAt(i); for (int j = 0; j < pathB.size(); j++) { - Segment b = (Segment) pathB.elementAt(j); - nNodes += createNodes(a, b); + Segment b = pathB.elementAt(j); + createNodes(a, b); } } - Vector paths = new Vector(); Segment v; // we have intersecting points. - Vector segments = new Vector(); + Vector segments = new Vector(); // In an XOR operation, we operate on all segments for (int i = 0; i < pathA.size(); i++) { - v = (Segment) pathA.elementAt(i); + v = pathA.elementAt(i); Segment path = v; do { @@ -522,7 +508,7 @@ public class Area implements Shape, Cloneable for (int i = 0; i < pathB.size(); i++) { - v = (Segment) pathB.elementAt(i); + v = pathB.elementAt(i); Segment path = v; do { @@ -532,7 +518,7 @@ public class Area implements Shape, Cloneable while (v != path); } - paths = weilerAtherton(segments); + Vector paths = weilerAtherton(segments); deleteRedundantPaths(paths); } @@ -541,8 +527,8 @@ public class Area implements Shape, Cloneable */ public void reset() { - solids = new Vector(); - holes = new Vector(); + solids = new Vector(); + holes = new Vector(); } /** @@ -556,9 +542,9 @@ public class Area implements Shape, Cloneable double totalArea = 0; for (int i = 0; i < solids.size(); i++) - totalArea += Math.abs(((Segment) solids.elementAt(i)).getSignedArea()); + totalArea += Math.abs(solids.elementAt(i).getSignedArea()); for (int i = 0; i < holes.size(); i++) - totalArea -= Math.abs(((Segment) holes.elementAt(i)).getSignedArea()); + totalArea -= Math.abs(holes.elementAt(i).getSignedArea()); if (totalArea <= EPSILON) return true; @@ -572,10 +558,10 @@ public class Area implements Shape, Cloneable public boolean isPolygonal() { for (int i = 0; i < holes.size(); i++) - if (! ((Segment) holes.elementAt(i)).isPolygonal()) + if (!holes.elementAt(i).isPolygonal()) return false; for (int i = 0; i < solids.size(); i++) - if (! ((Segment) solids.elementAt(i)).isPolygonal()) + if (!solids.elementAt(i).isPolygonal()) return false; return true; } @@ -599,7 +585,7 @@ public class Area implements Shape, Cloneable if (holes.size() != 0 || solids.size() != 1) return false; - Segment path = (Segment) solids.elementAt(0); + Segment path = solids.elementAt(0); if (! path.isPolygonal()) return false; @@ -657,12 +643,12 @@ public class Area implements Shape, Cloneable double xmax; double ymin; double ymax; - xmin = xmax = ((Segment) solids.elementAt(0)).P1.getX(); - ymin = ymax = ((Segment) solids.elementAt(0)).P1.getY(); + xmin = xmax = solids.elementAt(0).P1.getX(); + ymin = ymax = solids.elementAt(0).P1.getY(); for (int path = 0; path < solids.size(); path++) { - Rectangle2D r = ((Segment) solids.elementAt(path)).getPathBounds(); + Rectangle2D r = solids.elementAt(path).getPathBounds(); xmin = Math.min(r.getMinX(), xmin); ymin = Math.min(r.getMinY(), ymin); xmax = Math.max(r.getMaxX(), xmax); @@ -696,9 +682,9 @@ public class Area implements Shape, Cloneable { Area clone = new Area(); for (int i = 0; i < solids.size(); i++) - clone.solids.add(((Segment) solids.elementAt(i)).cloneSegmentList()); + clone.solids.add(solids.elementAt(i).cloneSegmentList()); for (int i = 0; i < holes.size(); i++) - clone.holes.add(((Segment) holes.elementAt(i)).cloneSegmentList()); + clone.holes.add(holes.elementAt(i).cloneSegmentList()); return clone; } catch (CloneNotSupportedException e) @@ -727,10 +713,10 @@ public class Area implements Shape, Cloneable || holes.size() != area.holes.size()) return false; - Vector pathA = new Vector(); + Vector pathA = new Vector(); pathA.addAll(solids); pathA.addAll(holes); - Vector pathB = new Vector(); + Vector pathB = new Vector(); pathB.addAll(area.solids); pathB.addAll(area.holes); @@ -741,8 +727,8 @@ public class Area implements Shape, Cloneable { for (int j = 0; j < nPaths; j++) { - Segment p1 = (Segment) pathA.elementAt(i); - Segment p2 = (Segment) pathB.elementAt(j); + Segment p1 = pathA.elementAt(i); + Segment p2 = pathB.elementAt(j); if (! match[0][i] && ! match[1][j]) if (p1.pathEquals(p2)) match[0][i] = match[1][j] = true; @@ -763,9 +749,9 @@ public class Area implements Shape, Cloneable public void transform(AffineTransform at) { for (int i = 0; i < solids.size(); i++) - ((Segment) solids.elementAt(i)).transformSegmentList(at); + solids.elementAt(i).transformSegmentList(at); for (int i = 0; i < holes.size(); i++) - ((Segment) holes.elementAt(i)).transformSegmentList(at); + holes.elementAt(i).transformSegmentList(at); // Note that the orientation is not invariant under inversion if ((at.getType() & AffineTransform.TYPE_FLIP) != 0) @@ -800,11 +786,11 @@ public class Area implements Shape, Cloneable { int n = 0; for (int i = 0; i < solids.size(); i++) - if (((Segment) solids.elementAt(i)).contains(x, y)) + if (solids.elementAt(i).contains(x, y)) n++; for (int i = 0; i < holes.size(); i++) - if (((Segment) holes.elementAt(i)).contains(x, y)) + if (holes.elementAt(i).contains(x, y)) n--; return (n != 0); @@ -854,7 +840,7 @@ public class Area implements Shape, Cloneable { Segment v; Segment start; - start = v = (Segment) solids.elementAt(path); + start = v = solids.elementAt(path); do { if (l[i].hasIntersections(v)) @@ -867,7 +853,7 @@ public class Area implements Shape, Cloneable { Segment v; Segment start; - start = v = (Segment) holes.elementAt(path); + start = v = holes.elementAt(path); do { if (l[i].hasIntersections(v)) @@ -886,7 +872,7 @@ public class Area implements Shape, Cloneable // but encloses a hole? Rectangle2D r = new Rectangle2D.Double(x, y, w, h); for (int path = 0; path < holes.size(); path++) - if (! ((Segment) holes.elementAt(path)).isSegmentOutside(r)) + if (! holes.elementAt(path).isSegmentOutside(r)) return false; return true; @@ -938,7 +924,7 @@ public class Area implements Shape, Cloneable { Segment v; Segment start; - start = v = (Segment) solids.elementAt(path); + start = v = solids.elementAt(path); do { if (l[i].hasIntersections(v)) @@ -951,7 +937,7 @@ public class Area implements Shape, Cloneable { Segment v; Segment start; - start = v = (Segment) holes.elementAt(path); + start = v = holes.elementAt(path); do { if (l[i].hasIntersections(v)) @@ -967,7 +953,7 @@ public class Area implements Shape, Cloneable return true; // What if the rectangle encloses the whole shape? - Point2D p = ((Segment) solids.elementAt(0)).getMidPoint(); + Point2D p = solids.elementAt(0).getMidPoint(); if ((new Rectangle2D.Double(x, y, w, h)).contains(p)) return true; return false; @@ -1020,7 +1006,7 @@ public class Area implements Shape, Cloneable */ private class AreaIterator implements PathIterator { - private Vector segments; + private Vector segments; private int index; private AffineTransform at; @@ -1045,14 +1031,14 @@ public class Area implements Shape, Cloneable { this.at = at; index = 0; - segments = new Vector(); - Vector allpaths = new Vector(); + segments = new Vector(); + Vector allpaths = new Vector(); allpaths.addAll(solids); allpaths.addAll(holes); for (int i = 0; i < allpaths.size(); i++) { - Segment v = (Segment) allpaths.elementAt(i); + Segment v = allpaths.elementAt(i); Segment start = v; IteratorSegment is = new IteratorSegment(); @@ -1078,7 +1064,7 @@ public class Area implements Shape, Cloneable public int currentSegment(double[] coords) { - IteratorSegment s = (IteratorSegment) segments.elementAt(index); + IteratorSegment s = segments.elementAt(index); if (at != null) at.transform(s.coords, 0, coords, 0, 3); else @@ -1089,7 +1075,7 @@ public class Area implements Shape, Cloneable public int currentSegment(float[] coords) { - IteratorSegment s = (IteratorSegment) segments.elementAt(index); + IteratorSegment s = segments.elementAt(index); double[] d = new double[6]; if (at != null) { @@ -1129,13 +1115,13 @@ public class Area implements Shape, Cloneable * * Returns a Vector of the resulting paths. */ - private Vector weilerAtherton(Vector segments) + private Vector weilerAtherton(Vector segments) { - Vector paths = new Vector(); + Vector paths = new Vector(); while (segments.size() > 0) { // Iterate over the path - Segment start = (Segment) segments.elementAt(0); + Segment start = segments.elementAt(0); Segment s = start; do { @@ -1252,7 +1238,7 @@ public class Area implements Shape, Cloneable double[] temp = new double[2]; temp[0] = t1 + s * w1; temp[1] = t2 + t * w1; - cc_intersections.add(temp); + ccIntersections.add(temp); return; } @@ -1328,28 +1314,28 @@ public class Area implements Shape, Cloneable if (! r1.intersects(r2)) return null; - cc_intersections = new Vector(); + ccIntersections = new Vector(); recursiveSubdivide(curve1.getCubicCurve2D(), curve2.getCubicCurve2D(), getRecursionDepth(curve1), getRecursionDepth(curve2), 0.0, 0.0, 1.0, 1.0); - if (cc_intersections.size() == 0) + if (ccIntersections.size() == 0) return null; - Intersection[] results = new Intersection[cc_intersections.size()]; - for (int i = 0; i < cc_intersections.size(); i++) + Intersection[] results = new Intersection[ccIntersections.size()]; + for (int i = 0; i < ccIntersections.size(); i++) { - double[] temp = (double[]) cc_intersections.elementAt(i); + double[] temp = ccIntersections.elementAt(i); results[i] = new Intersection(curve1.evaluatePoint(temp[0]), temp[0], temp[1]); } - cc_intersections = null; + ccIntersections = null; return (results); } /** * Returns the intersections between a line and a quadratic bezier - * Or null if no intersections are found1 + * Or null if no intersections are found. * This is done through combining the line's equation with the * parametric form of the Bezier and solving the resulting quadratic. * This is package-private to avoid an accessor method. @@ -1622,9 +1608,9 @@ public class Area implements Shape, Cloneable * Helper method * Turns a shape into a Vector of Segments */ - private Vector makeSegment(Shape s) + private Vector makeSegment(Shape s) { - Vector paths = new Vector(); + Vector paths = new Vector(); PathIterator pi = s.getPathIterator(null); double[] coords = new double[6]; Segment subpath = null; @@ -1786,7 +1772,7 @@ public class Area implements Shape, Cloneable } while (a != A); // until one wrap. - return (nNodes); + return nNodes; } /** @@ -1824,7 +1810,7 @@ public class Area implements Shape, Cloneable * solid areas) Clears any nodes. Sorts the remaining paths into solids * and holes, sets their orientation and sets the solids and holes lists. */ - private void deleteRedundantPaths(Vector paths) + private void deleteRedundantPaths(Vector paths) { int npaths = paths.size(); @@ -1836,19 +1822,19 @@ public class Area implements Shape, Cloneable neg = ((windingRule == PathIterator.WIND_NON_ZERO) ? -1 : 1); for (int i = 0; i < npaths; i++) - bb[i] = ((Segment) paths.elementAt(i)).getPathBounds(); + bb[i] = paths.elementAt(i).getPathBounds(); // Find which path contains which, assign winding numbers for (int i = 0; i < npaths; i++) { - Segment pathA = (Segment) paths.elementAt(i); + Segment pathA = paths.elementAt(i); pathA.nullNodes(); // remove any now-redundant nodes, in case. int windingA = pathA.hasClockwiseOrientation() ? 1 : neg; for (int j = 0; j < npaths; j++) if (i != j) { - Segment pathB = (Segment) paths.elementAt(j); + Segment pathB = paths.elementAt(j); // A contains B if (bb[i].intersects(bb[j])) @@ -1876,8 +1862,8 @@ public class Area implements Shape, Cloneable windingNumbers[i][1] = contains[i][i]; } - Vector solids = new Vector(); - Vector holes = new Vector(); + Vector solids = new Vector(); + Vector holes = new Vector(); if (windingRule == PathIterator.WIND_NON_ZERO) { @@ -1913,12 +1899,12 @@ public class Area implements Shape, Cloneable * @param clockwise gives the direction, * true = clockwise, false = counter-clockwise */ - private void setDirection(Vector paths, boolean clockwise) + private void setDirection(Vector paths, boolean clockwise) { Segment v; for (int i = 0; i < paths.size(); i++) { - v = (Segment) paths.elementAt(i); + v = paths.elementAt(i); if (clockwise != v.hasClockwiseOrientation()) v.reverseAll(); } @@ -2157,7 +2143,7 @@ public class Area implements Shape, Cloneable */ Segment cloneSegmentList() throws CloneNotSupportedException { - Vector list = new Vector(); + Vector list = new Vector(); Segment v = next; while (v != this) @@ -2170,7 +2156,7 @@ public class Area implements Shape, Cloneable v = clone; for (int i = 0; i < list.size(); i++) { - clone.next = (Segment) ((Segment) list.elementAt(i)).clone(); + clone.next = (Segment) list.elementAt(i).clone(); clone = clone.next; } clone.next = v; @@ -2209,7 +2195,7 @@ public class Area implements Shape, Cloneable */ protected int createNodes(Segment b, Intersection[] x) { - Vector v = new Vector(); + Vector v = new Vector(); for (int i = 0; i < x.length; i++) { Point2D p = x[i].p; @@ -2222,7 +2208,7 @@ public class Area implements Shape, Cloneable Intersection[] A = new Intersection[nNodes]; Intersection[] B = new Intersection[nNodes]; for (int i = 0; i < nNodes; i++) - A[i] = B[i] = (Intersection) v.elementAt(i); + A[i] = B[i] = v.elementAt(i); // Create two lists sorted by the parameter // Bubble sort, OK I suppose, since the number of intersections diff --git a/libjava/classpath/java/beans/XMLDecoder.java b/libjava/classpath/java/beans/XMLDecoder.java index 26896393a9eb..bafafe400a90 100644 --- a/libjava/classpath/java/beans/XMLDecoder.java +++ b/libjava/classpath/java/beans/XMLDecoder.java @@ -104,6 +104,7 @@ import java.util.NoSuchElementException; * @status updated to 1.5 */ public class XMLDecoder + implements AutoCloseable { private Object owner; diff --git a/libjava/classpath/java/beans/XMLEncoder.java b/libjava/classpath/java/beans/XMLEncoder.java index 40cb6dbfb59b..894e4b873c4e 100644 --- a/libjava/classpath/java/beans/XMLEncoder.java +++ b/libjava/classpath/java/beans/XMLEncoder.java @@ -50,7 +50,9 @@ import java.io.OutputStream; * @author Robert Schuster (robertschuster@fsfe.org) * @since 1.4 */ -public class XMLEncoder extends Encoder +public class XMLEncoder + extends Encoder + implements AutoCloseable { Object owner; diff --git a/libjava/classpath/java/io/Closeable.java b/libjava/classpath/java/io/Closeable.java index b8523d79e630..f5f808381aa9 100644 --- a/libjava/classpath/java/io/Closeable.java +++ b/libjava/classpath/java/io/Closeable.java @@ -48,6 +48,7 @@ package java.io; * @since 1.5 */ public interface Closeable + extends AutoCloseable { /** diff --git a/libjava/classpath/java/io/ObjectInput.java b/libjava/classpath/java/io/ObjectInput.java index f8d51e00d075..071f67d90314 100644 --- a/libjava/classpath/java/io/ObjectInput.java +++ b/libjava/classpath/java/io/ObjectInput.java @@ -48,7 +48,8 @@ package java.io; * * @see DataInput */ -public interface ObjectInput extends DataInput +public interface ObjectInput + extends DataInput, AutoCloseable { /** * This method returns the number of bytes that can be read without diff --git a/libjava/classpath/java/io/ObjectInputStream.java b/libjava/classpath/java/io/ObjectInputStream.java index c37f7665f1c4..657072d5a307 100644 --- a/libjava/classpath/java/io/ObjectInputStream.java +++ b/libjava/classpath/java/io/ObjectInputStream.java @@ -529,12 +529,13 @@ public class ObjectInputStream extends InputStream if (dump) dumpElementln("ENUM="); ObjectStreamClass osc = (ObjectStreamClass) readObject(); + int enumHandle = assignNewHandle(null, shared); String constantName = (String) readObject(); if (dump) dumpElementln("CONSTANT NAME = " + constantName); Class clazz = osc.forClass(); Enum instance = Enum.valueOf(clazz, constantName); - assignNewHandle(instance,shared); + rememberHandle(instance, shared, enumHandle); ret_val = instance; break; } diff --git a/libjava/classpath/java/io/ObjectOutput.java b/libjava/classpath/java/io/ObjectOutput.java index 628f8b97b86e..4ec6c6f07682 100644 --- a/libjava/classpath/java/io/ObjectOutput.java +++ b/libjava/classpath/java/io/ObjectOutput.java @@ -48,7 +48,8 @@ package java.io; * * @see DataOutput */ -public interface ObjectOutput extends DataOutput +public interface ObjectOutput + extends DataOutput, AutoCloseable { /** * This method writes the specified byte to the output stream. diff --git a/libjava/classpath/java/lang/AssertionError.java b/libjava/classpath/java/lang/AssertionError.java index 778eb583051d..cf953f4498bf 100644 --- a/libjava/classpath/java/lang/AssertionError.java +++ b/libjava/classpath/java/lang/AssertionError.java @@ -1,5 +1,5 @@ /* AssertionError.java -- indication of a failed assertion - Copyright (C) 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 2002, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -145,4 +145,16 @@ public class AssertionError extends Error { super(Double.toString(msg)); } + + /** + * Construct an AssertionError with detail message and cause. + * + * @param msg Detail message. + * @param cause The cause of this exception, may be null + * @since 1.7 + */ + public AssertionError(String msg, Throwable cause) + { + super(msg, cause); + } } diff --git a/libjava/classpath/java/lang/AutoCloseable.java b/libjava/classpath/java/lang/AutoCloseable.java new file mode 100644 index 000000000000..4c1ddaa32046 --- /dev/null +++ b/libjava/classpath/java/lang/AutoCloseable.java @@ -0,0 +1,50 @@ +/* AutoCloseable.java -- Resource that must be closed after it is no longer + used. + Copyright (C) 2012 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.lang; + +/** + * Resource that must be closed after it is no longer used. + * + * @since 1.7 + */ +public interface AutoCloseable +{ + void close() throws Exception; +} diff --git a/libjava/classpath/java/lang/Boolean.java b/libjava/classpath/java/lang/Boolean.java index f2eaf4125926..0e4afa813bf1 100644 --- a/libjava/classpath/java/lang/Boolean.java +++ b/libjava/classpath/java/lang/Boolean.java @@ -236,6 +236,21 @@ public final class Boolean implements Serializable, Comparable return value == other.value ? 0 : (value ? 1 : -1); } + /** + * Compares two unboxed boolean values. + * + * @param x First value to compare. + * @param y Second value to compare. + * @return 0 if both Booleans represent the same value, a positive number + * if this Boolean represents true and the other false, and a negative + * number otherwise. + * @since 1.7 + */ + public static int compare(boolean x, boolean y) + { + return Boolean.valueOf(x).compareTo(Boolean.valueOf(y)); + } + /** * If the String argument is "true", ignoring case, return true. * Otherwise, return false. diff --git a/libjava/classpath/java/lang/Byte.java b/libjava/classpath/java/lang/Byte.java index a1536e1be1b6..01e0e03d2f6d 100644 --- a/libjava/classpath/java/lang/Byte.java +++ b/libjava/classpath/java/lang/Byte.java @@ -370,4 +370,21 @@ public final class Byte extends Number implements Comparable return value - b.value; } + /** + * Compares two unboxed byte values. + * The result is positive if the first is greater, negative if the second + * is greater, and 0 if the two are equal. + * + * @param x First value to compare. + * @param y Second value to compare. + * + * @return positive int if the first value is greater, negative if the second + * is greater, and 0 if the two are equal. + * @since 1.7 + */ + public static int compare(byte x, byte y) + { + return Byte.valueOf(x).compareTo(Byte.valueOf(y)); + } + } diff --git a/libjava/classpath/java/lang/Character.java b/libjava/classpath/java/lang/Character.java index 05e641c3a484..f87cde62c1ea 100644 --- a/libjava/classpath/java/lang/Character.java +++ b/libjava/classpath/java/lang/Character.java @@ -4199,6 +4199,23 @@ public final class Character implements Serializable, Comparable return value - anotherCharacter.value; } + /** + * Compares two unboxed char values. + * The result is positive if the first is greater, negative if the second + * is greater, and 0 if the two are equal. + * + * @param x First value to compare. + * @param y Second value to compare. + * + * @return positive int if the first value is greater, negative if the second + * is greater, and 0 if the two are equal. + * @since 1.7 + */ + public static int compare(char x, char y) + { + return Character.valueOf(x).compareTo(Character.valueOf(y)); + } + /** * Returns an Character object wrapping the value. * In contrast to the Character constructor, this method diff --git a/libjava/classpath/java/lang/ClassNotFoundException.java b/libjava/classpath/java/lang/ClassNotFoundException.java index 142bc5d03060..fe1424dc2b10 100644 --- a/libjava/classpath/java/lang/ClassNotFoundException.java +++ b/libjava/classpath/java/lang/ClassNotFoundException.java @@ -1,5 +1,5 @@ /* ClassNotFoundException.java -- thrown when class definition cannot be found - Copyright (C) 1998, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 2002, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -47,9 +47,9 @@ package java.lang; * @see Class#forName(String) * @see ClassLoader#findSystemClass(String) * @see ClassLoader#loadClass(String, boolean) - * @status updated to 1.4 + * @status updated to 1.7 */ -public class ClassNotFoundException extends Exception +public class ClassNotFoundException extends ReflectiveOperationException { /** * Compatible with JDK 1.0+. diff --git a/libjava/classpath/java/lang/IllegalAccessException.java b/libjava/classpath/java/lang/IllegalAccessException.java index a352c8b1b31e..2574f66047c9 100644 --- a/libjava/classpath/java/lang/IllegalAccessException.java +++ b/libjava/classpath/java/lang/IllegalAccessException.java @@ -1,6 +1,6 @@ /* IllegalAccessException.java -- thrown on attempt to reflect on inaccessible data - Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2002, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -71,9 +71,9 @@ import java.lang.reflect.Method; * @see Field#getDouble(Object) * @see Method#invoke(Object, Object[]) * @see Constructor#newInstance(Object[]) - * @status updated to 1.4 + * @status updated to 1.7 */ -public class IllegalAccessException extends Exception +public class IllegalAccessException extends ReflectiveOperationException { /** * Compatible with JDK 1.0+. diff --git a/libjava/classpath/java/lang/InstantiationException.java b/libjava/classpath/java/lang/InstantiationException.java index 367b14bd2786..cb2cad154324 100644 --- a/libjava/classpath/java/lang/InstantiationException.java +++ b/libjava/classpath/java/lang/InstantiationException.java @@ -1,6 +1,6 @@ /* InstantiationException.java -- thrown when reflection cannot create an instance - Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2002, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,9 +46,9 @@ package java.lang; * @author Brian Jones * @author Warren Levy (warrenl@cygnus.com) * @see Class#newInstance() - * @status updated to 1.4 + * @status updated to 1.7 */ -public class InstantiationException extends Exception +public class InstantiationException extends ReflectiveOperationException { /** * Compatible with JDK 1.0+. diff --git a/libjava/classpath/java/lang/Integer.java b/libjava/classpath/java/lang/Integer.java index f379795ea3d9..25eb5d5265dd 100644 --- a/libjava/classpath/java/lang/Integer.java +++ b/libjava/classpath/java/lang/Integer.java @@ -585,6 +585,23 @@ public final class Integer extends Number implements Comparable return value > i.value ? 1 : -1; } + /** + * Compares two unboxed int values. + * The result is positive if the first is greater, negative if the second + * is greater, and 0 if the two are equal. + * + * @param x First value to compare. + * @param y Second value to compare. + * + * @return positive int if the first value is greater, negative if the second + * is greater, and 0 if the two are equal. + * @since 1.7 + */ + public static int compare(int x, int y) + { + return Integer.valueOf(x).compareTo(Integer.valueOf(y)); + } + /** * Return the number of bits set in x. * @param x value to examine diff --git a/libjava/classpath/java/lang/LinkageError.java b/libjava/classpath/java/lang/LinkageError.java index 028702081bae..34b072572cfc 100644 --- a/libjava/classpath/java/lang/LinkageError.java +++ b/libjava/classpath/java/lang/LinkageError.java @@ -1,6 +1,6 @@ /* LinkageError.java -- thrown when classes valid at separate compile times cannot be linked to each other - Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2002, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,7 @@ package java.lang; * * @author Brian Jones * @author Tom Tromey (tromey@cygnus.com) - * @status updated to 1.4 + * @status updated to 1.7 */ public class LinkageError extends Error { @@ -71,4 +71,17 @@ public class LinkageError extends Error { super(s); } + + /** + * Construct an LinkageError with detail message and cause. + * + * @param msg Detail message. + * @param cause The cause of this exception, may be null + * @since 1.7 + */ + public LinkageError(String msg, Throwable cause) + { + super(msg, cause); + } + } diff --git a/libjava/classpath/java/lang/Long.java b/libjava/classpath/java/lang/Long.java index e7579d865562..6f31dfa99530 100644 --- a/libjava/classpath/java/lang/Long.java +++ b/libjava/classpath/java/lang/Long.java @@ -584,6 +584,23 @@ public final class Long extends Number implements Comparable return value > l.value ? 1 : -1; } + /** + * Compares two unboxed long values. + * The result is positive if the first is greater, negative if the second + * is greater, and 0 if the two are equal. + * + * @param x First value to compare. + * @param y Second value to compare. + * + * @return positive int if the first value is greater, negative if the second + * is greater, and 0 if the two are equal. + * @since 1.7 + */ + public static int compare(long x, long y) + { + return Long.valueOf(x).compareTo(Long.valueOf(y)); + } + /** * Return the number of bits set in x. * @param x value to examine diff --git a/libjava/classpath/java/lang/NoSuchFieldException.java b/libjava/classpath/java/lang/NoSuchFieldException.java index 74d52d137c47..b43b53206add 100644 --- a/libjava/classpath/java/lang/NoSuchFieldException.java +++ b/libjava/classpath/java/lang/NoSuchFieldException.java @@ -1,5 +1,5 @@ /* NoSuchFieldException.java -- thrown when reflecting a non-existant field - Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2002, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -45,9 +45,9 @@ package java.lang; * @author Brian Jones * @author Warren Levy (warrenl@cygnus.com) * @since 1.1 - * @status updated to 1.4 + * @status updated to 1.7 */ -public class NoSuchFieldException extends Exception +public class NoSuchFieldException extends ReflectiveOperationException { /** * Compatible with JDK 1.1+. diff --git a/libjava/classpath/java/lang/NoSuchMethodException.java b/libjava/classpath/java/lang/NoSuchMethodException.java index e423efb79f69..116238220be6 100644 --- a/libjava/classpath/java/lang/NoSuchMethodException.java +++ b/libjava/classpath/java/lang/NoSuchMethodException.java @@ -1,5 +1,5 @@ /* NoSuchMethodException.java -- thrown when reflecting a non-existant method - Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2002, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -44,9 +44,9 @@ package java.lang; * * @author Brian Jones * @author Warren Levy (warrenl@cygnus.com) - * @status updated to 1.4 + * @status updated to 1.7 */ -public class NoSuchMethodException extends Exception +public class NoSuchMethodException extends ReflectiveOperationException { /** * Compatible with JDK 1.0+. diff --git a/libjava/classpath/java/lang/ReflectiveOperationException.java b/libjava/classpath/java/lang/ReflectiveOperationException.java new file mode 100644 index 000000000000..8b84c0e290f9 --- /dev/null +++ b/libjava/classpath/java/lang/ReflectiveOperationException.java @@ -0,0 +1,88 @@ +/* ReflectiveOperationException.java -- thrown when reflective operation fails + Copyright (C) 2012 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.lang; + +/** + * This exception is thrown when reflective operations fail. + * + * @since 1.7 + */ +public class ReflectiveOperationException extends Exception +{ + private static final long serialVersionUID = 123456789L; + + /** + * Create an exception without a message. + */ + public ReflectiveOperationException() + { + } + + /** + * Create an exception with a message. + * + * @param s the message + */ + public ReflectiveOperationException(String s) + { + super(s); + } + + /** + * Create an exception with a message and a cause. + * + * @param s the message + * @param cause the cause, may be null + */ + public ReflectiveOperationException(String message, Throwable cause) + { + super(message, cause); + } + + /** + * Create an exception with a cause. + * + * @param cause the cause, may be null + */ + public ReflectiveOperationException(Throwable cause) + { + super(cause); + } + +} diff --git a/libjava/classpath/java/lang/Short.java b/libjava/classpath/java/lang/Short.java index ec87f933e938..fae9fe7635bf 100644 --- a/libjava/classpath/java/lang/Short.java +++ b/libjava/classpath/java/lang/Short.java @@ -372,6 +372,23 @@ public final class Short extends Number implements Comparable return value - s.value; } + /** + * Compares two unboxed short values. + * The result is positive if the first is greater, negative if the second + * is greater, and 0 if the two are equal. + * + * @param x First value to compare. + * @param y Second value to compare. + * + * @return positive int if the first value is greater, negative if the second + * is greater, and 0 if the two are equal. + * @since 1.7 + */ + public static int compare(short x, short y) + { + return Short.valueOf(x).compareTo(Short.valueOf(y)); + } + /** * Reverse the bytes in val. * @since 1.5 diff --git a/libjava/classpath/java/lang/String.java b/libjava/classpath/java/lang/String.java index 45c0daff6732..27294cdd4ebc 100644 --- a/libjava/classpath/java/lang/String.java +++ b/libjava/classpath/java/lang/String.java @@ -705,6 +705,8 @@ public final class String */ public synchronized int codePointAt(int index) { + if (index < 0 || index >= count) + throw new StringIndexOutOfBoundsException(index); // Use the CharSequence overload as we get better range checking // this way. return Character.codePointAt(this, index); @@ -716,12 +718,14 @@ public final class String * index-2 to see if they form a supplementary code point. * @param index the index just past the codepoint to get, starting at 0 * @return the codepoint at the specified index - * @throws IndexOutOfBoundsException if index is negative or >= length() + * @throws IndexOutOfBoundsException if index is less than 1 or > length() * (while unspecified, this is a StringIndexOutOfBoundsException) * @since 1.5 */ public synchronized int codePointBefore(int index) { + if (index < 1 || index > count) + throw new StringIndexOutOfBoundsException(index); // Use the CharSequence overload as we get better range checking // this way. return Character.codePointBefore(this, index); diff --git a/libjava/classpath/java/lang/System.java b/libjava/classpath/java/lang/System.java index 51b3259fa8bc..9d8699183006 100644 --- a/libjava/classpath/java/lang/System.java +++ b/libjava/classpath/java/lang/System.java @@ -97,6 +97,8 @@ public final class System */ public static final PrintStream out = VMSystem.makeStandardOutputStream(); + private static final String LINE_SEPARATOR = SystemProperties.getProperty("line.separator"); + /** * The standard output PrintStream. This is assigned at startup and * starts its life perfectly valid. Although it is marked final, you can @@ -712,6 +714,16 @@ public final class System return Console.console(); } + /** + * Returns the system-dependent line separator. + * + * @return the system-dependent line separator. + */ + public static String lineSeparator() + { + return LINE_SEPARATOR; + } + /** * This is a specialised Collection, providing * the necessary provisions for the collections used by the diff --git a/libjava/classpath/java/lang/reflect/InvocationTargetException.java b/libjava/classpath/java/lang/reflect/InvocationTargetException.java index af79d3a199d9..4480fc6d0067 100644 --- a/libjava/classpath/java/lang/reflect/InvocationTargetException.java +++ b/libjava/classpath/java/lang/reflect/InvocationTargetException.java @@ -1,5 +1,5 @@ /* InvocationTargetException.java -- Wrapper exception for reflection - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -50,9 +50,9 @@ package java.lang.reflect; * @see Method#invoke(Object,Object[]) * @see Constructor#newInstance(Object[]) * @since 1.1 - * @status updated to 1.4 + * @status updated to 1.7 */ -public class InvocationTargetException extends Exception +public class InvocationTargetException extends ReflectiveOperationException { /** * Compatible with JDK 1.1+. diff --git a/libjava/classpath/java/lang/reflect/Member.java b/libjava/classpath/java/lang/reflect/Member.java index fed962cf9138..945fbf696639 100644 --- a/libjava/classpath/java/lang/reflect/Member.java +++ b/libjava/classpath/java/lang/reflect/Member.java @@ -79,7 +79,7 @@ public interface Member * * @return the class that declared this member */ - Class getDeclaringClass(); + Class getDeclaringClass(); /** * Gets the simple name of this member. This will be a valid Java diff --git a/libjava/classpath/java/lang/reflect/Modifier.java b/libjava/classpath/java/lang/reflect/Modifier.java index 15bad05e738b..c75f7b818236 100644 --- a/libjava/classpath/java/lang/reflect/Modifier.java +++ b/libjava/classpath/java/lang/reflect/Modifier.java @@ -1,5 +1,5 @@ /* java.lang.reflect.Modifier - Copyright (C) 1998, 1999, 2001, 2002, 2005, 2008 Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2001, 2002, 2005, 2008, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -299,6 +299,46 @@ public class Modifier return (mod & VOLATILE) != 0; } + /** + * @since 1.7 + */ + public static int classModifiers() + { + return PUBLIC | PROTECTED | PRIVATE | STATIC | ABSTRACT | FINAL | STRICT; + } + + /** + * @since 1.7 + */ + public static int interfaceModifiers() + { + return PUBLIC | PROTECTED | PRIVATE | STATIC | ABSTRACT | STRICT; + } + + /** + * @since 1.7 + */ + public static int constructorModifiers() + { + return PUBLIC | PROTECTED | PRIVATE; + } + + /** + * @since 1.7 + */ + public static int methodModifiers() + { + return PUBLIC | PROTECTED | PRIVATE | STATIC | ABSTRACT | FINAL | STRICT | SYNCHRONIZED | NATIVE; + } + + /** + * @since 1.7 + */ + public static int fieldModifiers() + { + return PUBLIC | PROTECTED | PRIVATE | STATIC | FINAL | TRANSIENT | VOLATILE; + } + /** * Get a string representation of all the modifiers represented by the * given int. The keywords are printed in this order: diff --git a/libjava/classpath/java/nio/channels/FileLock.java b/libjava/classpath/java/nio/channels/FileLock.java index 78210b34d4da..02b561a5690e 100644 --- a/libjava/classpath/java/nio/channels/FileLock.java +++ b/libjava/classpath/java/nio/channels/FileLock.java @@ -45,6 +45,7 @@ import java.io.IOException; * @since 1.4 */ public abstract class FileLock + implements AutoCloseable { private final FileChannel channel; private final long position; diff --git a/libjava/classpath/java/sql/Connection.java b/libjava/classpath/java/sql/Connection.java index f37527625975..b1e7034b5a31 100644 --- a/libjava/classpath/java/sql/Connection.java +++ b/libjava/classpath/java/sql/Connection.java @@ -46,6 +46,7 @@ import java.util.Map; * @author Aaron M. Renn (arenn@urbanophile.com) */ public interface Connection + extends AutoCloseable { /** * This transaction isolation level indicates that transactions are not diff --git a/libjava/classpath/java/sql/ResultSet.java b/libjava/classpath/java/sql/ResultSet.java index 3b49a6a0d6c5..c487bed6b944 100644 --- a/libjava/classpath/java/sql/ResultSet.java +++ b/libjava/classpath/java/sql/ResultSet.java @@ -60,6 +60,7 @@ import java.util.Map; * @author Aaron M. Renn (arenn@urbanophile.com) */ public interface ResultSet + extends AutoCloseable { /** * The rows will be processed in order from first to last. diff --git a/libjava/classpath/java/sql/Statement.java b/libjava/classpath/java/sql/Statement.java index 1b57fb3ce3c7..5f35e7b187d0 100644 --- a/libjava/classpath/java/sql/Statement.java +++ b/libjava/classpath/java/sql/Statement.java @@ -44,6 +44,7 @@ package java.sql; * @author Aaron M. Renn (arenn@urbanophile.com) */ public interface Statement + extends AutoCloseable { int CLOSE_CURRENT_RESULT = 1; int KEEP_CURRENT_RESULT = 2; diff --git a/libjava/classpath/java/text/AttributedString.java b/libjava/classpath/java/text/AttributedString.java index 7ffb3d4c0736..4293d7dd2537 100644 --- a/libjava/classpath/java/text/AttributedString.java +++ b/libjava/classpath/java/text/AttributedString.java @@ -1,5 +1,5 @@ /* AttributedString.java -- Models text with attributes - Copyright (C) 1998, 1999, 2004, 2005, 2006, Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2004, 2005, 2006, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -48,6 +48,8 @@ import java.util.Iterator; import java.util.Map; import java.util.Set; +import static java.text.AttributedCharacterIterator.Attribute; + /** * This class models a String with attributes over various * subranges of the string. It allows applications to access this @@ -68,7 +70,7 @@ public class AttributedString { /** A Map of the attributes */ - Map attribs; + Map attribs; /** The beginning index of the attributes */ int beginIndex; @@ -83,7 +85,8 @@ public class AttributedString * @param beginIndex the start index. * @param endIndex the end index. */ - AttributeRange(Map attribs, int beginIndex, int endIndex) + AttributeRange(Map attribs, + int beginIndex, int endIndex) { this.attribs = attribs; this.beginIndex = beginIndex; @@ -122,7 +125,7 @@ public class AttributedString * @param attributes The attribute list. */ public AttributedString(String str, - Map attributes) + Map attributes) { this(str); @@ -178,7 +181,7 @@ public class AttributedString * null to include all attributes. */ public AttributedString(AttributedCharacterIterator aci, int begin, int end, - AttributedCharacterIterator.Attribute[] attributes) + Attribute[] attributes) { // Validate some arguments if ((begin < 0) || (end < begin) || end > aci.getEndIndex()) @@ -187,29 +190,28 @@ public class AttributedString CPStringBuilder sb = new CPStringBuilder(""); // Get the valid attribute list - Set allAttribs = aci.getAllAttributeKeys(); + Set allAttribs = aci.getAllAttributeKeys(); if (attributes != null) allAttribs.retainAll(Arrays.asList(attributes)); // Loop through and extract the attributes char c = aci.setIndex(begin); - ArrayList accum = new ArrayList(); + ArrayList accum = new ArrayList(); do { sb.append(c); - Iterator iter = allAttribs.iterator(); + Iterator iter = allAttribs.iterator(); while(iter.hasNext()) { Object obj = iter.next(); // What should we do if this is not true? - if (!(obj instanceof AttributedCharacterIterator.Attribute)) + if (!(obj instanceof Attribute)) continue; - AttributedCharacterIterator.Attribute attrib = - (AttributedCharacterIterator.Attribute)obj; + Attribute attrib = (Attribute)obj; // Make sure the attribute is defined. Object attribObj = aci.getAttribute(attrib); @@ -237,7 +239,7 @@ public class AttributedString } // Create a map object. Yes this will only contain one attribute - Map newMap = new Hashtable(); + Map newMap = new Hashtable(); newMap.put(attrib, attribObj); // Add it to the attribute list. @@ -249,7 +251,7 @@ public class AttributedString while( aci.getIndex() < end ); attribs = new AttributeRange[accum.size()]; - attribs = (AttributeRange[]) accum.toArray(attribs); + attribs = accum.toArray(attribs); sci = new StringCharacterIterator(sb.toString()); } @@ -260,8 +262,7 @@ public class AttributedString * @param attrib The attribute to add. * @param value The value of the attribute. */ - public void addAttribute(AttributedCharacterIterator.Attribute attrib, - Object value) + public void addAttribute(Attribute attrib, Object value) { addAttribute(attrib, value, 0, sci.getEndIndex()); } @@ -278,14 +279,13 @@ public class AttributedString * @exception IllegalArgumentException If attribute is null or * the subrange is not valid. */ - public void addAttribute(AttributedCharacterIterator.Attribute attrib, - Object value, int begin, int end) + public void addAttribute(Attribute attrib, Object value, int begin, int end) { if (attrib == null) throw new IllegalArgumentException("null attribute"); if (end <= begin) throw new IllegalArgumentException("Requires end > begin"); - HashMap hm = new HashMap(); + HashMap hm = new HashMap(); hm.put(attrib, value); addAttributes(hm, begin, end); @@ -303,7 +303,7 @@ public class AttributedString * null. * @throws IllegalArgumentException if the subrange is not valid. */ - public void addAttributes(Map attributes, + public void addAttributes(Map attributes, int beginIndex, int endIndex) { if (attributes == null) @@ -343,8 +343,7 @@ public class AttributedString * * @return An AttributedCharacterIterator for this string. */ - public AttributedCharacterIterator getIterator( - AttributedCharacterIterator.Attribute[] attributes) + public AttributedCharacterIterator getIterator(Attribute[] attributes) { return(getIterator(attributes, 0, sci.getEndIndex())); } @@ -363,8 +362,7 @@ public class AttributedString * * @return An AttributedCharacterIterator for this string. */ - public AttributedCharacterIterator getIterator( - AttributedCharacterIterator.Attribute[] attributes, + public AttributedCharacterIterator getIterator(Attribute[] attributes, int beginIndex, int endIndex) { if ((beginIndex < 0) || (endIndex > sci.getEndIndex()) || diff --git a/libjava/classpath/java/text/AttributedStringIterator.java b/libjava/classpath/java/text/AttributedStringIterator.java index 429bd7063dbd..6d402cbca5d1 100644 --- a/libjava/classpath/java/text/AttributedStringIterator.java +++ b/libjava/classpath/java/text/AttributedStringIterator.java @@ -1,5 +1,5 @@ /* AttributedStringIterator.java -- Class to iterate over AttributedString - Copyright (C) 1998, 1999, 2004, 2005, 2006, Free Software Foundation, Inc. + Copyright (C) 1998, 1999, 2004, 2005, 2006, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -44,6 +44,8 @@ import java.util.Iterator; import java.util.Map; import java.util.Set; +import static java.text.AttributedCharacterIterator.Attribute; + /** * This class implements the AttributedCharacterIterator interface. It * is used by AttributedString.getIterator(). @@ -67,7 +69,7 @@ class AttributedStringIterator implements AttributedCharacterIterator * The list of attributes that the user is interested in. We may, * at our option, not return any other attributes. */ - private AttributedCharacterIterator.Attribute[] restricts; + private Attribute[] restricts; /*************************************************************************/ @@ -155,9 +157,9 @@ class AttributedStringIterator implements AttributedCharacterIterator * Returns a list of all the attribute keys that are defined anywhere * on this string. */ - public Set getAllAttributeKeys() + public Set getAllAttributeKeys() { - HashSet s = new HashSet(); + HashSet s = new HashSet(); if (attribs == null) return(s); @@ -167,8 +169,7 @@ class AttributedStringIterator implements AttributedCharacterIterator || attribs[i].endIndex <= getBeginIndex()) continue; - Set key_set = attribs[i].attribs.keySet(); - Iterator iter = key_set.iterator(); + Iterator iter = attribs[i].attribs.keySet().iterator(); while (iter.hasNext()) { s.add(iter.next()); @@ -190,14 +191,14 @@ class AttributedStringIterator implements AttributedCharacterIterator return getRunLimit(getAllAttributeKeys()); } - public int getRunLimit(AttributedCharacterIterator.Attribute attrib) + public int getRunLimit(Attribute attrib) { - HashSet s = new HashSet(); + HashSet s = new HashSet(); s.add(attrib); return(getRunLimit(s)); } - public synchronized int getRunLimit(Set attributeSet) + public synchronized int getRunLimit(Set attributeSet) { if (attributeSet == null) return ci.getEndIndex(); @@ -207,13 +208,13 @@ class AttributedStringIterator implements AttributedCharacterIterator int limit = current; if (current == end) return end; - Map runValues = getAttributes(); + Map runValues = getAttributes(); while (limit < end) { - Iterator iterator = attributeSet.iterator(); + Iterator iterator = attributeSet.iterator(); while (iterator.hasNext()) { - Attribute attributeKey = (Attribute) iterator.next(); + Attribute attributeKey = iterator.next(); Object v1 = runValues.get(attributeKey); Object v2 = getAttribute(attributeKey, limit + 1); boolean changed = false; @@ -262,11 +263,11 @@ class AttributedStringIterator implements AttributedCharacterIterator * * return The index of the first character in the run. */ - public int getRunStart(AttributedCharacterIterator.Attribute attrib) + public int getRunStart(Attribute attrib) { if (attrib == null) return ci.getBeginIndex(); - HashSet s = new HashSet(); + HashSet s = new HashSet(); s.add(attrib); return(getRunStart(s)); } @@ -279,7 +280,7 @@ class AttributedStringIterator implements AttributedCharacterIterator * * return The index of the first character in the run. */ - public int getRunStart(Set attributeSet) + public int getRunStart(Set attributeSet) { if (attributeSet == null) return ci.getBeginIndex(); @@ -289,14 +290,14 @@ class AttributedStringIterator implements AttributedCharacterIterator int start = current; if (start == begin) return begin; - Map runValues = getAttributes(); + Map runValues = getAttributes(); int prev = start - 1; while (start > begin) { - Iterator iterator = attributeSet.iterator(); + Iterator iterator = attributeSet.iterator(); while (iterator.hasNext()) { - Attribute attributeKey = (Attribute) iterator.next(); + Attribute attributeKey = iterator.next(); Object v1 = runValues.get(attributeKey); Object v2 = getAttribute(attributeKey, prev); boolean changed = false; @@ -340,7 +341,7 @@ class AttributedStringIterator implements AttributedCharacterIterator { if (pos >= attribs[i].beginIndex && pos < attribs[i].endIndex) { - Set keys = attribs[i].attribs.keySet(); + Set keys = attribs[i].attribs.keySet(); if (keys.contains(key)) { return attribs[i].attribs.get(key); @@ -370,9 +371,9 @@ class AttributedStringIterator implements AttributedCharacterIterator * Return a list of all the attributes and values defined for this * character */ - public Map getAttributes() + public Map getAttributes() { - HashMap m = new HashMap(); + HashMap m = new HashMap(); if (attribs == null) return(m); diff --git a/libjava/classpath/java/text/Bidi.java b/libjava/classpath/java/text/Bidi.java index 6a7bd0750693..236247d5ea07 100644 --- a/libjava/classpath/java/text/Bidi.java +++ b/libjava/classpath/java/text/Bidi.java @@ -1,5 +1,5 @@ /* Bidi.java -- Bidirectional Algorithm implementation - Copyright (C) 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 2005, 2006, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -109,7 +109,7 @@ public final class Bidi // A list of indices where a formatting code was found. These // are indicies into the original text -- not into the text after // the codes have been removed. - private ArrayList formatterIndices; + private ArrayList formatterIndices; // Indices of the starts of runs in the text. private int[] runs; @@ -161,13 +161,13 @@ public final class Bidi if (val instanceof NumericShaper) shaper = (NumericShaper) val; - char[] text = new char[iter.getEndIndex() - iter.getBeginIndex()]; - this.embeddings = new byte[this.text.length]; - this.embeddingOffset = 0; - this.length = text.length; - for (int i = 0; i < this.text.length; ++i) + text = new char[iter.getEndIndex() - iter.getBeginIndex()]; + embeddings = new byte[text.length]; + embeddingOffset = 0; + length = text.length; + for (int i = 0; i < text.length; ++i) { - this.text[i] = iter.current(); + text[i] = iter.current(); val = iter.getAttribute(TextAttribute.BIDI_EMBEDDING); if (val instanceof Integer) @@ -178,13 +178,13 @@ public final class Bidi bval = 0; else bval = (byte) ival; - this.embeddings[i] = bval; + embeddings[i] = bval; } } // Invoke the numeric shaper, if specified. if (shaper != null) - shaper.shape(this.text, 0, this.length); + shaper.shape(text, 0, length); runBidi(); } @@ -404,7 +404,7 @@ public final class Bidi { // Mark this character for removal. if (formatterIndices == null) - formatterIndices = new ArrayList(); + formatterIndices = new ArrayList(); formatterIndices.add(Integer.valueOf(i)); } else if (directionalOverride != -1) @@ -427,7 +427,7 @@ public final class Bidi if (i == size) nextFmt = length; else - nextFmt = ((Integer) formatterIndices.get(i)).intValue(); + nextFmt = formatterIndices.get(i).intValue(); // Non-formatter codes are from 'input' to 'nextFmt'. int len = nextFmt - input; System.arraycopy(levels, input, levels, output, len); @@ -716,7 +716,7 @@ public final class Bidi // Process from the end as we are copying the array over itself here. for (int index = formatterIndices.size() - 1; index >= 0; --index) { - int nextFmt = ((Integer) formatterIndices.get(index)).intValue(); + int nextFmt = formatterIndices.get(index).intValue(); // nextFmt points to a location in the original array. So, // nextFmt+1 is the target of our copying. output is the location diff --git a/libjava/classpath/java/text/BreakIterator.java b/libjava/classpath/java/text/BreakIterator.java index 628cb7235135..6fed88f82d9a 100644 --- a/libjava/classpath/java/text/BreakIterator.java +++ b/libjava/classpath/java/text/BreakIterator.java @@ -1,5 +1,5 @@ /* BreakIterator.java -- Breaks text into elements - Copyright (C) 1998, 1999, 2001, 2004, 2005, 2007 + Copyright (C) 1998, 1999, 2001, 2004, 2005, 2007, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -160,7 +160,7 @@ public abstract class BreakIterator implements Cloneable } try { - Class k = Class.forName(className); + Class k = Class.forName(className); return (BreakIterator) k.newInstance(); } catch (ClassNotFoundException x1) diff --git a/libjava/classpath/java/text/ChoiceFormat.java b/libjava/classpath/java/text/ChoiceFormat.java index 4842f491d9c5..c6a508cb89a7 100644 --- a/libjava/classpath/java/text/ChoiceFormat.java +++ b/libjava/classpath/java/text/ChoiceFormat.java @@ -1,5 +1,5 @@ /* ChoiceFormat.java -- Format over a range of numbers - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -98,8 +98,8 @@ public class ChoiceFormat extends NumberFormat // This isn't explicitly documented. But for instance we accept // '#' as a literal hash in a format string. int index = 0, max = newPattern.length(); - Vector stringVec = new Vector (); - Vector limitVec = new Vector (); + Vector stringVec = new Vector (); + Vector limitVec = new Vector (); final CPStringBuilder buf = new CPStringBuilder (); while (true) @@ -159,7 +159,7 @@ public class ChoiceFormat extends NumberFormat choiceLimits = new double[limitVec.size()]; for (int i = 0; i < choiceLimits.length; ++i) { - Double d = (Double) limitVec.elementAt(i); + Double d = limitVec.elementAt(i); choiceLimits[i] = d.doubleValue(); } } diff --git a/libjava/classpath/java/text/CollationElementIterator.java b/libjava/classpath/java/text/CollationElementIterator.java index 0ca23d074025..42452e9dcdbf 100644 --- a/libjava/classpath/java/text/CollationElementIterator.java +++ b/libjava/classpath/java/text/CollationElementIterator.java @@ -1,5 +1,5 @@ /* CollationElementIterator.java -- Walks through collation elements - Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004 Free Software Foundation + Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2012 Free Software Foundation This file is part of GNU Classpath. @@ -91,12 +91,12 @@ public final class CollationElementIterator * Array containing the collation decomposition of the * text given to the constructor. */ - private RuleBasedCollator.CollationElement[] text_decomposition; + private RuleBasedCollator.CollationElement[] textDecomposition; /** * Array containing the index of the specified block. */ - private int[] text_indexes; + private int[] textIndexes; /** * This method initializes a new instance of CollationElementIterator @@ -130,12 +130,12 @@ public final class CollationElementIterator RuleBasedCollator.CollationElement nextBlock() { - if (index >= text_decomposition.length) + if (index >= textDecomposition.length) return null; - RuleBasedCollator.CollationElement e = text_decomposition[index]; + RuleBasedCollator.CollationElement e = textDecomposition[index]; - textIndex = text_indexes[index+1]; + textIndex = textIndexes[index+1]; index++; @@ -148,9 +148,9 @@ public final class CollationElementIterator return null; index--; - RuleBasedCollator.CollationElement e = text_decomposition[index]; + RuleBasedCollator.CollationElement e = textDecomposition[index]; - textIndex = text_indexes[index+1]; + textIndex = textIndexes[index+1]; return e; } @@ -268,23 +268,23 @@ public final class CollationElementIterator String work_text = text.intern(); - ArrayList a_element = new ArrayList(); - ArrayList a_idx = new ArrayList(); + ArrayList aElement = new ArrayList(); + ArrayList aIdx = new ArrayList(); // Build element collection ordered as they come in "text". while (idx < work_text.length()) { - String key, key_old; + String key, keyOld; Object object = null; int p = 1; // IMPROVE: use a TreeMap with a prefix-ordering rule. - key_old = key = null; + keyOld = key = null; do { if (object != null) - key_old = key; + keyOld = key; key = work_text.substring (idx, idx+p); object = collator.prefix_tree.get (key); if (object != null && idx < alreadyExpanded) @@ -294,7 +294,7 @@ public final class CollationElementIterator prefix.expansion.startsWith(work_text.substring(0, idx))) { object = null; - key = key_old; + key = keyOld; } } p++; @@ -302,7 +302,7 @@ public final class CollationElementIterator while (idx+p <= work_text.length()); if (object == null) - key = key_old; + key = keyOld; RuleBasedCollator.CollationElement prefix = (RuleBasedCollator.CollationElement) collator.prefix_tree.get (key); @@ -322,8 +322,8 @@ public final class CollationElementIterator RuleBasedCollator.CollationElement e = collator.getDefaultAccentedElement (work_text.charAt (idx)); - a_element.add (e); - a_idx.add (new Integer(idx_idx)); + aElement.add (e); + aIdx.add (Integer.valueOf(idx_idx)); idx++; alreadyExpanded--; if (alreadyExpanded == 0) @@ -342,15 +342,15 @@ public final class CollationElementIterator /* This is a normal character. */ RuleBasedCollator.CollationElement e = collator.getDefaultElement (work_text.charAt (idx)); - Integer i_ref = new Integer(idx_idx); + Integer iRef = Integer.valueOf(idx_idx); /* Don't forget to mark it as a special sequence so the * string can be ordered. */ - a_element.add (RuleBasedCollator.SPECIAL_UNKNOWN_SEQ); - a_idx.add (i_ref); - a_element.add (e); - a_idx.add (i_ref); + aElement.add (RuleBasedCollator.SPECIAL_UNKNOWN_SEQ); + aIdx.add (iRef); + aElement.add (e); + aIdx.add (iRef); idx_idx++; idx++; } @@ -367,8 +367,8 @@ public final class CollationElementIterator work_text = prefix.expansion + work_text.substring (idx+prefix.key.length()); idx = 0; - a_element.add (prefix); - a_idx.add (new Integer(idx_idx)); + aElement.add (prefix); + aIdx.add (Integer.valueOf(idx_idx)); if (alreadyExpanded == 0) idxToMove = prefix.key.length(); alreadyExpanded += prefix.expansion.length()-prefix.key.length(); @@ -378,8 +378,8 @@ public final class CollationElementIterator /* Third case: the simplest. We have got the prefix and it * has not to be expanded. */ - a_element.add (prefix); - a_idx.add (new Integer(idx_idx)); + aElement.add (prefix); + aIdx.add (Integer.valueOf(idx_idx)); idx += prefix.key.length(); /* If the sequence is in an expansion, we must decrease the * counter. @@ -398,14 +398,13 @@ public final class CollationElementIterator } } - text_decomposition = (RuleBasedCollator.CollationElement[]) - a_element.toArray(new RuleBasedCollator.CollationElement[a_element.size()]); - text_indexes = new int[a_idx.size()+1]; - for (int i = 0; i < a_idx.size(); i++) + textDecomposition = aElement.toArray(new RuleBasedCollator.CollationElement[aElement.size()]); + textIndexes = new int[aIdx.size()+1]; + for (int i = 0; i < aIdx.size(); i++) { - text_indexes[i] = ((Integer)a_idx.get(i)).intValue(); + textIndexes[i] = aIdx.get(i).intValue(); } - text_indexes[a_idx.size()] = text.length(); + textIndexes[aIdx.size()] = text.length(); } /** @@ -460,19 +459,19 @@ public final class CollationElementIterator if (offset > (text.getEndIndex() - 1)) throw new IllegalArgumentException("Offset too large: " + offset); - for (index = 0; index < text_decomposition.length; index++) + for (index = 0; index < textDecomposition.length; index++) { - if (offset <= text_indexes[index]) + if (offset <= textIndexes[index]) break; } /* - * As text_indexes[0] == 0, we should not have to take care whether index is + * As textIndexes[0] == 0, we should not have to take care whether index is * greater than 0. It is always. */ - if (text_indexes[index] == offset) + if (textIndexes[index] == offset) textIndex = offset; else - textIndex = text_indexes[index-1]; + textIndex = textIndexes[index-1]; } /** diff --git a/libjava/classpath/java/text/DateFormatSymbols.java b/libjava/classpath/java/text/DateFormatSymbols.java index 53e7ba07c8c3..9d0ace65a3ec 100644 --- a/libjava/classpath/java/text/DateFormatSymbols.java +++ b/libjava/classpath/java/text/DateFormatSymbols.java @@ -56,6 +56,11 @@ import java.util.ResourceBundle; import java.util.ServiceLoader; import java.util.TimeZone; +import java.util.concurrent.ConcurrentMap; +import java.util.concurrent.ConcurrentHashMap; + +import java.util.regex.Pattern; + import java.util.spi.TimeZoneNameProvider; /** @@ -71,14 +76,6 @@ import java.util.spi.TimeZoneNameProvider; */ public class DateFormatSymbols implements java.io.Serializable, Cloneable { - String[] ampms; - String[] eras; - private String localPatternChars; - String[] months; - String[] shortMonths; - String[] shortWeekdays; - String[] weekdays; - /** * The set of properties for obtaining the metazone data. */ @@ -100,6 +97,173 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable } } + private static final Pattern ZONE_SEP = Pattern.compile("\u00a9"); + + private static final Pattern FIELD_SEP = Pattern.compile("\u00ae"); + + /** + * Class for storing DateFormatSymbols data parsed from the property files. + */ + private static class DFSData + { + private String[] ampms; + private String[] eras; + private String localPatternChars; + private String[] months; + private String[] shortMonths; + private String[] weekdays; + private String[] shortWeekdays; + private String[] dateFormats; + private String[] timeFormats; + private String[][] runtimeZoneStrings; + + /** + * Construct a new instance with the parsed data. + * + * @param ampms strings for "am" and "pm". + * @param eras strings for calendar eras. + * @param localPatternChars localised pattern characters. + * @param months strings for the months of the year. + * @param shortMonths short strings for the months of the year. + * @param weekdays strings for the days of the week. + * @param shortWeekdays short strings for the days of the week. + * @param dateFormats localised date formats. + * @param timeFormats localised time formats. + * @param runtimeZoneStrings localised time zone names. + */ + public DFSData(String[] ampms, String[] eras, String localPatternChars, + String[] months, String[] shortMonths, String[] weekdays, + String[] shortWeekdays, String[] dateFormats, + String[] timeFormats, String[][] runtimeZoneStrings) + { + this.ampms = ampms; + this.eras = eras; + this.localPatternChars = localPatternChars; + this.months = months; + this.shortMonths = shortMonths; + this.weekdays = weekdays; + this.shortWeekdays = shortWeekdays; + this.dateFormats = dateFormats; + this.timeFormats = timeFormats; + this.runtimeZoneStrings = runtimeZoneStrings; + } + + /** + * Accessor for the AM/PM data. + * + * @return the AM/PM strings. + */ + public String[] getAMPMs() + { + return ampms.clone(); + } + + /** + * Accessor for the era data. + * + * @return the era strings. + */ + public String[] getEras() + { + return eras.clone(); + } + + /** + * Accessor for the local pattern characters. + * + * @return the local pattern characters. + */ + public String getLocalPatternChars() + { + return localPatternChars; + } + + /** + * Accessor for the months of the year (long form). + * + * @return the months of the year (long form). + */ + public String[] getMonths() + { + return months.clone(); + } + + /** + * Accessor for the months of the year (short form). + * + * @return the months of the year (short form). + */ + public String[] getShortMonths() + { + return shortMonths.clone(); + } + + /** + * Accessor for the days of the week (long form). + * + * @return the days of the week (long form). + */ + public String[] getWeekdays() + { + return weekdays.clone(); + } + + /** + * Accessor for the days of the week (short form). + * + * @return the days of the week (short form). + */ + public String[] getShortWeekdays() + { + return shortWeekdays.clone(); + } + + /** + * Accessor for the date formats. + * + * @return the date formats. + */ + public String[] getDateFormats() + { + return dateFormats.clone(); + } + + /** + * Accessor for the time formats. + * + * @return the time formats. + */ + public String[] getTimeFormats() + { + return timeFormats.clone(); + } + + /** + * Accessor for the zone strings. + * + * @return the zone strings. + */ + public String[][] getZoneStrings() + { + // Perform a deep clone so subarrays aren't modifiable + String[][] clone = runtimeZoneStrings.clone(); + for (int a = 0; a < clone.length; ++a) + clone[a] = runtimeZoneStrings[a].clone(); + return clone; + } + + } + + private static final ConcurrentMap dataCache = new ConcurrentHashMap(); + + String[] ampms; + String[] eras; + private String localPatternChars; + String[] months; + String[] shortMonths; + String[] shortWeekdays; + String[] weekdays; + /** * The timezone strings supplied by the runtime. */ @@ -161,7 +325,7 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable for (int a = 0; a < bundles.size(); ++a) { String localeData = bundles.get(a).getString(name); - String[] array = localeData.split("\u00ae", size); + String[] array = FIELD_SEP.split(localeData, size); for (int b = 0; b < data.length; ++b) { if (array.length > b && array[b] != null && data[b].isEmpty() && !array[b].isEmpty()) @@ -180,21 +344,20 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable return data; } - private String[][] getZoneStrings(ResourceBundle res, Locale locale) + private static String[][] getZoneStrings(List bundles, Locale locale) { List allZones = new ArrayList(); try { Map systemZones = new HashMap(); - while (true) + for (ResourceBundle bundle : bundles) { - int index = 0; String country = locale.getCountry(); - String data = res.getString("zoneStrings"); - String[] zones = data.split("\u00a9"); + String data = bundle.getString("zoneStrings"); + String[] zones = ZONE_SEP.split(data); for (int a = 0; a < zones.length; ++a) { - String[] strings = zones[a].split("\u00ae"); + String[] strings = FIELD_SEP.split(zones[a]); String type = properties.getProperty(strings[0] + "." + country); if (type == null) type = properties.getProperty(strings[0] + ".DEFAULT"); @@ -217,12 +380,6 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable } systemZones.put(strings[0], strings); } - if (res.getLocale() == Locale.ROOT) - break; - else - res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", - LocaleHelper.getFallbackLocale(res.getLocale()), - ClassLoader.getSystemClassLoader()); } /* Final sanity check for missing values */ for (String[] zstrings : systemZones.values()) @@ -288,16 +445,94 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable return allZones.toArray(new String[allZones.size()][]); } - private String[] formatsForKey(ResourceBundle res, String key) + /** + * Retrieve the date or time formats for a specific key e.g. + * asking for "DateFormat" will return an array containing the + * full, long, medium and short date formats localised for + * the locales in the specified bundle. + * + * @param bundles the stack of bundles to check, most-specific first. + * @param key the type of format to retrieve. + * @param an array of localised strings for each format prefix. + */ + private static String[] formatsForKey(List bundles, String key) { String[] values = new String[formatPrefixes.length]; for (int i = 0; i < formatPrefixes.length; i++) - values[i] = res.getString(formatPrefixes[i] + key); + values[i] = getString(bundles, formatPrefixes[i] + key); return values; } + /** + * Simple wrapper around extracting a {@code String} from a + * {@code ResourceBundle}. Keep searching less-specific locales + * until a non-null non-empty value is found. + * + * @param bundles the stack of bundles to check, most-specific first. + * @param key the key of the value to retrieve. + * @return the first non-null non-empty String found or the last + * retrieved if one isn't found. + */ + private static String getString(List bundles, String key) + { + String val = null; + for (ResourceBundle bundle : bundles) + { + val = bundle.getString(key); + if (val != null && !val.isEmpty()) + return val; + } + return val; + } + + /** + * Retrieves the locale data from the property files and constructs a + * {@code DFSData} instance for it. + * + * @param the locale for which data should be retrieved. + * @return the parsed data. + * @throws MissingResourceException if the resources for the specified + * locale could not be found or loaded. + */ + private static DFSData retrieveData(Locale locale) + throws MissingResourceException + { + DFSData data = dataCache.get(locale); + if (data == null) + { + ClassLoader ldr = ClassLoader.getSystemClassLoader(); + List bundles = new ArrayList(); + ResourceBundle res + = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", locale, ldr); + bundles.add(res); + Locale resLocale = res.getLocale(); + while (resLocale != Locale.ROOT) + { + res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", + LocaleHelper.getFallbackLocale(resLocale), ldr); + bundles.add(res); + resLocale = res.getLocale(); + } + String[] lMonths = getStringArray(bundles, "months", 13); + String[] lWeekdays = getStringArray(bundles, "weekdays", 8); + data = new DFSData(getStringArray(bundles, "ampms", 2), + getStringArray(bundles, "eras", 2), + getString(bundles, "localPatternChars"), + lMonths, getStringArray(bundles, "shortMonths", 13, lMonths), + lWeekdays, getStringArray(bundles, "shortWeekdays", 8, lWeekdays), + formatsForKey(bundles, "DateFormat"), + formatsForKey(bundles, "TimeFormat"), + getZoneStrings(bundles, locale)); + DFSData cachedData = dataCache.putIfAbsent(locale, data); + // Use the earlier version if another thread beat us to it. + if (cachedData != null) + data = cachedData; + } + return data; + } + /** * This method initializes a new instance of DateFormatSymbols * by loading the date format information for the specified locale. @@ -314,29 +549,17 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable public DateFormatSymbols (Locale locale) throws MissingResourceException { - ClassLoader ldr = ClassLoader.getSystemClassLoader(); - List bundles = new ArrayList(); - ResourceBundle res - = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", locale, ldr); - bundles.add(res); - Locale resLocale = res.getLocale(); - while (resLocale != Locale.ROOT) - { - res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation", - LocaleHelper.getFallbackLocale(resLocale), ldr); - bundles.add(res); - resLocale = res.getLocale(); - } - ampms = getStringArray(bundles, "ampms", 2); - eras = getStringArray(bundles, "eras", 2); - localPatternChars = res.getString("localPatternChars"); - months = getStringArray(bundles, "months", 13); - shortMonths = getStringArray(bundles, "shortMonths", 13, months); - weekdays = getStringArray(bundles, "weekdays", 8); - shortWeekdays = getStringArray(bundles, "shortWeekdays", 8, weekdays); - dateFormats = formatsForKey(res, "DateFormat"); - timeFormats = formatsForKey(res, "TimeFormat"); - runtimeZoneStrings = getZoneStrings(res, locale); + DFSData data = retrieveData(locale); + ampms = data.getAMPMs(); + eras = data.getEras(); + localPatternChars = data.getLocalPatternChars(); + months = data.getMonths(); + shortMonths = data.getShortMonths(); + weekdays = data.getWeekdays(); + shortWeekdays = data.getShortWeekdays(); + dateFormats = data.getDateFormats(); + timeFormats = data.getTimeFormats(); + runtimeZoneStrings = data.getZoneStrings(); } /** diff --git a/libjava/classpath/java/text/DecimalFormat.java b/libjava/classpath/java/text/DecimalFormat.java index 9f02bb8d4cbd..77af0d396c4c 100644 --- a/libjava/classpath/java/text/DecimalFormat.java +++ b/libjava/classpath/java/text/DecimalFormat.java @@ -1,5 +1,5 @@ /* DecimalFormat.java -- Formats and parses numbers - Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -177,7 +177,7 @@ public class DecimalFormat extends NumberFormat private boolean hasFractionalPattern; /** Stores a list of attributes for use by formatToCharacterIterator. */ - private ArrayList attributes = new ArrayList(); + private ArrayList attributes = new ArrayList(); /** * Constructs a DecimalFormat which uses the default @@ -438,7 +438,7 @@ public class DecimalFormat extends NumberFormat // add NumberFormat field attributes to the AttributedString for (int i = 0; i < attributes.size(); i++) { - FieldPosition pos = (FieldPosition) attributes.get(i); + FieldPosition pos = attributes.get(i); Format.Field attribute = pos.getFieldAttribute(); as.addAttribute(attribute, attribute, pos.getBeginIndex(), diff --git a/libjava/classpath/java/text/MessageFormat.java b/libjava/classpath/java/text/MessageFormat.java index ba5805aa0b9b..0e04b2b447a0 100644 --- a/libjava/classpath/java/text/MessageFormat.java +++ b/libjava/classpath/java/text/MessageFormat.java @@ -1,5 +1,5 @@ /* MessageFormat.java - Localized message formatting. - Copyright (C) 1999, 2001, 2002, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 1999, 2001, 2002, 2004, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -164,7 +164,6 @@ public class MessageFormat extends Format public static final MessageFormat.Field ARGUMENT = new MessageFormat.Field("argument"); // For deserialization - @SuppressWarnings("unused") private Field() { super(""); diff --git a/libjava/classpath/java/text/NumberFormat.java b/libjava/classpath/java/text/NumberFormat.java index fef986bc38e4..555ee373957b 100644 --- a/libjava/classpath/java/text/NumberFormat.java +++ b/libjava/classpath/java/text/NumberFormat.java @@ -1,5 +1,5 @@ /* NumberFormat.java -- Formats and parses numbers - Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2007 + Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2007, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -177,7 +177,6 @@ public abstract class NumberFormat extends Format implements Cloneable * This constructor is only used by the deserializer. Without it, * it would fail to construct a valid object. */ - @SuppressWarnings("unused") private Field() { super(""); diff --git a/libjava/classpath/java/util/Collections.java b/libjava/classpath/java/util/Collections.java index 828c6ecea123..b970dd8f60a4 100644 --- a/libjava/classpath/java/util/Collections.java +++ b/libjava/classpath/java/util/Collections.java @@ -120,10 +120,10 @@ public class Collections * @return an empty parameterized set. * @since 1.5 */ + @SuppressWarnings("unchecked") public static final Set emptySet() { - /* FIXME: Could this be optimized? */ - return new EmptySet(); + return (Set) EMPTY_SET; } /** @@ -161,6 +161,7 @@ public class Collections * @return A non-iterating iterator. */ // This is really cheating! I think it's perfectly valid, though. + @SuppressWarnings("unchecked") public Iterator iterator() { return (Iterator) EMPTY_LIST.iterator(); @@ -196,7 +197,7 @@ public class Collections */ public boolean equals(Object o) { - return o instanceof Set && ((Set) o).isEmpty(); + return o instanceof Set && ((Set) o).isEmpty(); } /** @@ -288,10 +289,10 @@ public class Collections * @return an empty parameterized list. * @since 1.5 */ + @SuppressWarnings("unchecked") public static final List emptyList() { - /* FIXME: Could this be optimized? */ - return new EmptyList(); + return (List) EMPTY_LIST; } /** @@ -369,7 +370,7 @@ public class Collections */ public boolean equals(Object o) { - return o instanceof List && ((List) o).isEmpty(); + return o instanceof List && ((List) o).isEmpty(); } /** @@ -480,10 +481,10 @@ public class Collections * @return an empty parameterized map. * @since 1.5 */ + @SuppressWarnings("unchecked") public static final Map emptyMap() { - /* FIXME: Could this be optimized? */ - return new EmptyMap(); + return (Map) EMPTY_MAP; } /** @@ -511,9 +512,10 @@ public class Collections * There are no entries. * @return The empty set. */ + @SuppressWarnings("unchecked") public Set> entrySet() { - return EMPTY_SET; + return (Set>) EMPTY_SET; } // The remaining methods are optional, but provide a performance @@ -546,7 +548,7 @@ public class Collections */ public boolean equals(Object o) { - return o instanceof Map && ((Map) o).isEmpty(); + return o instanceof Map && ((Map) o).isEmpty(); } /** @@ -572,9 +574,10 @@ public class Collections * No entries. * @return The empty set. */ + @SuppressWarnings("unchecked") public Set keySet() { - return EMPTY_SET; + return (Set) EMPTY_SET; } /** @@ -601,9 +604,10 @@ public class Collections * Collection, will work. Besides, that's what the JDK uses! * @return The empty set. */ + @SuppressWarnings("unchecked") public Collection values() { - return EMPTY_SET; + return (Collection) EMPTY_SET; } /** @@ -1854,7 +1858,7 @@ public class Collections public List subList(int from, int to) { if (from == to && (to == 0 || to == 1)) - return EMPTY_LIST; + return emptyList(); if (from == 0 && to == 1) return this; if (from > to) @@ -2480,7 +2484,7 @@ public class Collections * @throws ArrayStoreException if the type of any element of the * collection is not a subtype of the element type of a. */ - public T[] toArray(T[] a) + public E[] toArray(E[] a) { synchronized (mutex) { diff --git a/libjava/classpath/java/util/Formatter.java b/libjava/classpath/java/util/Formatter.java index 62f68456239b..466fab535ae9 100644 --- a/libjava/classpath/java/util/Formatter.java +++ b/libjava/classpath/java/util/Formatter.java @@ -678,6 +678,12 @@ public final class Formatter conversion); noPrecision(precision); + if (arg == null) + { + genericFormat("null", flags, width, precision); + return; + } + int theChar; if (arg instanceof Character) theChar = ((Character) arg).charValue(); @@ -748,6 +754,12 @@ public final class Formatter int radix, char conversion) { assert radix == 8 || radix == 10 || radix == 16; + + if (arg == null) + { + return new CPStringBuilder("null"); + } + noPrecision(precision); // Some error checking. @@ -1353,9 +1365,12 @@ public final class Formatter argumentIndex = previousArgumentIndex; // Argument indices start at 1 but array indices at 0. --argumentIndex; - if (argumentIndex < 0 || argumentIndex >= args.length) - throw new MissingFormatArgumentException(format.substring(start, index)); - argument = args[argumentIndex]; + if (args != null) + { + if (argumentIndex < 0 || argumentIndex >= args.length) + throw new MissingFormatArgumentException(format.substring(start, index)); + argument = args[argumentIndex]; + } } switch (conversion) diff --git a/libjava/classpath/java/util/TimeZone.java b/libjava/classpath/java/util/TimeZone.java index 86a62918ed5b..a8b2b51cf8c2 100644 --- a/libjava/classpath/java/util/TimeZone.java +++ b/libjava/classpath/java/util/TimeZone.java @@ -1,5 +1,5 @@ /* java.util.TimeZone - Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007 + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -102,10 +102,10 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable /* Look up default timezone */ if (defaultZone0 == null) { - defaultZone0 = (TimeZone) AccessController.doPrivileged - (new PrivilegedAction() + defaultZone0 = AccessController.doPrivileged + (new PrivilegedAction() { - public Object run() + public TimeZone run() { TimeZone zone = null; @@ -146,21 +146,21 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable /** * JDK 1.1.x compatibility aliases. */ - private static HashMap aliases0; + private static HashMap aliases0; /** * HashMap for timezones by ID. */ - private static HashMap timezones0; + private static HashMap timezones0; /* initialize this static field lazily to overhead if * it is not needed: */ // Package-private to avoid a trampoline. - static HashMap timezones() + static HashMap timezones() { if (timezones0 == null) { - HashMap timezones = new HashMap(); + HashMap timezones = new HashMap(); timezones0 = timezones; zoneinfo_dir = SystemProperties.getProperty("gnu.java.util.zoneinfo.dir"); @@ -169,7 +169,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable if (zoneinfo_dir != null) { - aliases0 = new HashMap(); + aliases0 = new HashMap(); // These deprecated aliases for JDK 1.1.x compatibility // should take precedence over data files read from @@ -1469,7 +1469,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable { synchronized (TimeZone.class) { - tz = (TimeZone) timezones().get(ID); + tz = timezones().get(ID); if (tz != null) { if (!tz.getID().equals(ID)) @@ -1497,7 +1497,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable // aliases0 is never changing after first timezones(), so should // be safe without synchronization. - String zonename = (String) aliases0.get(ID); + String zonename = aliases0.get(ID); if (zonename == null) zonename = ID; @@ -1605,17 +1605,17 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable { synchronized (TimeZone.class) { - HashMap h = timezones(); + HashMap h = timezones(); int count = 0; if (zoneinfo_dir == null) { - Iterator iter = h.entrySet().iterator(); + Iterator> iter = h.entrySet().iterator(); while (iter.hasNext()) { // Don't iterate the values, since we want to count // doubled values (aliases) - Map.Entry entry = (Map.Entry) iter.next(); - if (((TimeZone) entry.getValue()).getRawOffset() == rawOffset) + Map.Entry entry = iter.next(); + if (entry.getValue().getRawOffset() == rawOffset) count++; } @@ -1624,8 +1624,8 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable iter = h.entrySet().iterator(); while (iter.hasNext()) { - Map.Entry entry = (Map.Entry) iter.next(); - if (((TimeZone) entry.getValue()).getRawOffset() == rawOffset) + Map.Entry entry = iter.next(); + if (entry.getValue().getRawOffset() == rawOffset) ids[count++] = (String) entry.getKey(); } return ids; @@ -1651,7 +1651,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable return ids; } - private static int getAvailableIDs(File d, String prefix, ArrayList list) + private static int getAvailableIDs(File d, String prefix, ArrayList list) { String[] files = d.list(); int count = files.length; @@ -1691,9 +1691,9 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable { synchronized (TimeZone.class) { - HashMap h = timezones(); + HashMap h = timezones(); if (zoneinfo_dir == null) - return (String[]) h.keySet().toArray(new String[h.size()]); + return h.keySet().toArray(new String[h.size()]); if (availableIDs != null) { @@ -1704,7 +1704,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable } File d = new File(zoneinfo_dir); - ArrayList list = new ArrayList(30); + ArrayList list = new ArrayList(30); int count = getAvailableIDs(d, "", list) + aliases0.size(); availableIDs = new String[count]; String[] ids = new String[count]; @@ -1712,7 +1712,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable count = 0; for (int i = 0; i < list.size(); i++) { - String[] s = (String[]) list.get(i); + String[] s = list.get(i); for (int j = 0; j < s.length; j++) if (s[j] != null) { @@ -1721,12 +1721,12 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable } } - Iterator iter = aliases0.entrySet().iterator(); + Iterator> iter = aliases0.entrySet().iterator(); while (iter.hasNext()) { - Map.Entry entry = (Map.Entry) iter.next(); - availableIDs[count] = (String) entry.getKey(); - ids[count++] = (String) entry.getKey(); + Map.Entry entry = iter.next(); + availableIDs[count] = entry.getKey(); + ids[count++] = entry.getKey(); } return ids; diff --git a/libjava/classpath/java/util/regex/Matcher.java b/libjava/classpath/java/util/regex/Matcher.java index 8d033d5e3160..95a35535935c 100644 --- a/libjava/classpath/java/util/regex/Matcher.java +++ b/libjava/classpath/java/util/regex/Matcher.java @@ -102,6 +102,28 @@ public final class Matcher implements MatchResult anchoringBounds = 0; } + /** + * Changes the pattern used by the {@link Matcher} to + * the one specified. Existing match information is lost, + * but the input and the matcher's position within it is + * retained. + * + * @param newPattern the new pattern to use. + * @return this matcher. + * @throws IllegalArgumentException if {@code newPattern} is + * {@code null}. + * @since 1.5 + */ + public Matcher usePattern(Pattern newPattern) + { + if (newPattern == null) + throw new IllegalArgumentException("The new pattern was null."); + pattern = newPattern; + match = null; + + return this; + } + /** * @param sb The target string buffer * @param replacement The replacement string @@ -620,7 +642,7 @@ public final class Matcher implements MatchResult * * @param s the string to literalize. * @return the literalized string. - * @since 1.5 + * @since 1.5 */ public static String quoteReplacement(String s) { diff --git a/libjava/classpath/javax/activation/ActivationDataFlavor.java b/libjava/classpath/javax/activation/ActivationDataFlavor.java index 91812092ee97..0ab5a8097b8a 100644 --- a/libjava/classpath/javax/activation/ActivationDataFlavor.java +++ b/libjava/classpath/javax/activation/ActivationDataFlavor.java @@ -63,7 +63,7 @@ public class ActivationDataFlavor extends DataFlavor * flavor */ // Raw types enforced as part of spec. - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") public ActivationDataFlavor(Class representationClass, String mimeType, String humanPresentableName) { @@ -80,7 +80,7 @@ public class ActivationDataFlavor extends DataFlavor * flavor */ // Raw types enforced as part of spec. - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") public ActivationDataFlavor(Class representationClass, String humanPresentableName) { @@ -110,7 +110,7 @@ public class ActivationDataFlavor extends DataFlavor } // Raw types enforced as part of spec. - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") public Class getRepresentationClass() { return representationClass; diff --git a/libjava/classpath/javax/activation/MimeTypeParameterList.java b/libjava/classpath/javax/activation/MimeTypeParameterList.java index 3d36ede948b8..24c9486f1fe2 100644 --- a/libjava/classpath/javax/activation/MimeTypeParameterList.java +++ b/libjava/classpath/javax/activation/MimeTypeParameterList.java @@ -224,7 +224,7 @@ public class MimeTypeParameterList * Returns an enumeration of all the parameter names. */ // Raw type is forced by public spec. - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") public synchronized Enumeration getNames() { return new IteratorEnumeration(parameterNames.iterator()); diff --git a/libjava/classpath/javax/management/DefaultLoaderRepository.java b/libjava/classpath/javax/management/DefaultLoaderRepository.java index d331552a0111..d70bf7efec58 100644 --- a/libjava/classpath/javax/management/DefaultLoaderRepository.java +++ b/libjava/classpath/javax/management/DefaultLoaderRepository.java @@ -78,7 +78,7 @@ import java.util.List; * to load the class. */ // API issue with lack of on Class - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") public static Class loadClass(String name) throws ClassNotFoundException { @@ -127,7 +127,7 @@ import java.util.List; * to load the class. */ // API issue with lack of on Class - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") public static Class loadClassWithout(ClassLoader exclude, String name) throws ClassNotFoundException { diff --git a/libjava/classpath/javax/management/MBeanConstructorInfo.java b/libjava/classpath/javax/management/MBeanConstructorInfo.java index 509483f256a9..3d5ebdab0ce8 100644 --- a/libjava/classpath/javax/management/MBeanConstructorInfo.java +++ b/libjava/classpath/javax/management/MBeanConstructorInfo.java @@ -76,7 +76,7 @@ public class MBeanConstructorInfo * @param cons the constructor. */ // API issue with lack of on Constructor - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") public MBeanConstructorInfo(String desc, Constructor cons) { super(cons.getName(), desc); diff --git a/libjava/classpath/javax/management/remote/rmi/RMIConnection.java b/libjava/classpath/javax/management/remote/rmi/RMIConnection.java index 434051d58ac0..edf8c895c868 100644 --- a/libjava/classpath/javax/management/remote/rmi/RMIConnection.java +++ b/libjava/classpath/javax/management/remote/rmi/RMIConnection.java @@ -152,7 +152,7 @@ public interface RMIConnection * NotificationFilter, * Object) */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") void addNotificationListener(ObjectName name, ObjectName listener, MarshalledObject filter, MarshalledObject passback, Subject delegationSubject) @@ -224,7 +224,7 @@ public interface RMIConnection * NotificationFilter, * Object) */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") Integer[] addNotificationListeners(ObjectName[] names, MarshalledObject[] filters, Subject[] delegationSubjects) throws InstanceNotFoundException, IOException; @@ -298,7 +298,7 @@ public interface RMIConnection * @throws IOException if an I/O error occurred in communicating with * the bean server. */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") ObjectInstance createMBean(String className, ObjectName name, MarshalledObject params, String[] sig, Subject delegationSubject) @@ -367,7 +367,7 @@ public interface RMIConnection * @throws IOException if an I/O error occurred in communicating with * the bean server. */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") ObjectInstance createMBean(String className, ObjectName name, ObjectName loaderName, MarshalledObject params, String[] sig, Subject delegationSubject) @@ -767,7 +767,7 @@ public interface RMIConnection * the bean server. * @see DynamicMBean#invoke(String, Object[], String[]) */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") Object invoke(ObjectName bean, String name, MarshalledObject params, String[] sig, Subject delegationSubject) throws InstanceNotFoundException, MBeanException, @@ -871,7 +871,7 @@ public interface RMIConnection * @throws SecurityException if the client or delegated subject (if any) does * not have permission to invoke this operation. */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") Set queryMBeans(ObjectName name, MarshalledObject query, Subject delegationSubject) throws IOException; @@ -914,7 +914,7 @@ public interface RMIConnection * @throws IOException if an I/O error occurred in communicating with * the bean server. */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") Set queryNames(ObjectName name, MarshalledObject query, Subject delegationSubject) throws IOException; @@ -960,7 +960,7 @@ public interface RMIConnection * NotificationFilter, * Object) */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") void removeNotificationListener(ObjectName name, ObjectName listener, MarshalledObject filter, @@ -1080,7 +1080,7 @@ public interface RMIConnection * @see #getAttribute(ObjectName, String, Subject) * @see javax.management.DynamicMBean#setAttribute(Attribute) */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") void setAttribute(ObjectName name, MarshalledObject attribute, Subject delegationSubject) throws InstanceNotFoundException, AttributeNotFoundException, @@ -1121,7 +1121,7 @@ public interface RMIConnection * @see #getAttributes(ObjectName, String[]) * @see DynamicMBean#setAttributes(AttributeList) */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") AttributeList setAttributes(ObjectName name, MarshalledObject attributes, Subject delegationSubject) throws InstanceNotFoundException, ReflectionException, diff --git a/libjava/classpath/javax/security/sasl/Sasl.java b/libjava/classpath/javax/security/sasl/Sasl.java index 402ad6edeab5..475be09e01e2 100644 --- a/libjava/classpath/javax/security/sasl/Sasl.java +++ b/libjava/classpath/javax/security/sasl/Sasl.java @@ -265,6 +265,16 @@ public class Sasl */ public static final String REUSE = "javax.security.sasl.reuse"; + /** + *

The name of a property which specifies the credentials to use. + * The value of the property is a mechanism-specific object which can + * be used to supply credentials to a mechanism which provides delegated + * authentication.

+ * + *

The value of this constant is "javax.security.sasl.credentials".

+ */ + public static final String CREDENTIALS = "javax.security.sasl.credentials"; + private static final String CLIENT_FACTORY_SVC = "SaslClientFactory."; private static final String SERVER_FACTORY_SVC = "SaslServerFactory."; private static final String ALIAS = "Alg.Alias."; diff --git a/libjava/classpath/javax/sound/midi/MetaMessage.java b/libjava/classpath/javax/sound/midi/MetaMessage.java index 4d43975c3a49..0aab153cbfa3 100644 --- a/libjava/classpath/javax/sound/midi/MetaMessage.java +++ b/libjava/classpath/javax/sound/midi/MetaMessage.java @@ -120,10 +120,12 @@ public class MetaMessage extends MidiMessage // Now compute the length representation long buffer = length & 0x7F; - while ((length >>= 7) > 0) + // Avoid altering length variable; PR42551 + lengthValue = length; + while ((lengthValue >>= 7) > 0) { buffer <<= 8; - buffer |= ((length & 0x7F) | 0x80); + buffer |= ((lengthValue & 0x7F) | 0x80); } // Now store the variable length length value diff --git a/libjava/classpath/javax/sound/midi/MidiDevice.java b/libjava/classpath/javax/sound/midi/MidiDevice.java index 7a0ca7f2bb87..7ce22caedfc2 100644 --- a/libjava/classpath/javax/sound/midi/MidiDevice.java +++ b/libjava/classpath/javax/sound/midi/MidiDevice.java @@ -46,6 +46,7 @@ package javax.sound.midi; * */ public interface MidiDevice + extends AutoCloseable { /** * Get the Info object describing this device. diff --git a/libjava/classpath/javax/sound/midi/MidiSystem.java b/libjava/classpath/javax/sound/midi/MidiSystem.java index b273b98e5ffc..0e3680563fbd 100644 --- a/libjava/classpath/javax/sound/midi/MidiSystem.java +++ b/libjava/classpath/javax/sound/midi/MidiSystem.java @@ -1,5 +1,5 @@ /* MidiSystem.java -- Access system MIDI resources - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -76,9 +76,9 @@ public class MidiSystem */ public static MidiDevice.Info[] getMidiDeviceInfo() { - Iterator deviceProviders = + Iterator deviceProviders = ServiceFactory.lookupProviders(MidiDeviceProvider.class); - List infoList = new ArrayList(); + List infoList = new ArrayList(); while (deviceProviders.hasNext()) { @@ -88,8 +88,7 @@ public class MidiSystem infoList.add(infos[--i]); } - return (MidiDevice.Info[]) - infoList.toArray(new MidiDevice.Info[infoList.size()]); + return infoList.toArray(new MidiDevice.Info[infoList.size()]); } /** @@ -103,7 +102,7 @@ public class MidiSystem public static MidiDevice getMidiDevice(MidiDevice.Info info) throws MidiUnavailableException { - Iterator deviceProviders = + Iterator deviceProviders = ServiceFactory.lookupProviders(MidiDeviceProvider.class); if (! deviceProviders.hasNext()) @@ -216,10 +215,11 @@ public class MidiSystem public static Soundbank getSoundbank(InputStream stream) throws InvalidMidiDataException, IOException { - Iterator readers = ServiceFactory.lookupProviders(SoundbankReader.class); + Iterator readers = + ServiceFactory.lookupProviders(SoundbankReader.class); while (readers.hasNext()) { - SoundbankReader sr = (SoundbankReader) readers.next(); + SoundbankReader sr = readers.next(); Soundbank sb = sr.getSoundbank(stream); if (sb != null) return sb; @@ -238,10 +238,11 @@ public class MidiSystem public static Soundbank getSoundbank(URL url) throws InvalidMidiDataException, IOException { - Iterator readers = ServiceFactory.lookupProviders(SoundbankReader.class); + Iterator readers = + ServiceFactory.lookupProviders(SoundbankReader.class); while (readers.hasNext()) { - SoundbankReader sr = (SoundbankReader) readers.next(); + SoundbankReader sr = readers.next(); Soundbank sb = sr.getSoundbank(url); if (sb != null) return sb; @@ -260,7 +261,8 @@ public class MidiSystem public static Soundbank getSoundbank(File file) throws InvalidMidiDataException, IOException { - Iterator readers = ServiceFactory.lookupProviders(SoundbankReader.class); + Iterator readers = + ServiceFactory.lookupProviders(SoundbankReader.class); while (readers.hasNext()) { SoundbankReader sr = (SoundbankReader) readers.next(); @@ -283,10 +285,11 @@ public class MidiSystem public static MidiFileFormat getMidiFileFormat(InputStream stream) throws InvalidMidiDataException, IOException { - Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class); + Iterator readers = + ServiceFactory.lookupProviders(MidiFileReader.class); while (readers.hasNext()) { - MidiFileReader sr = (MidiFileReader) readers.next(); + MidiFileReader sr = readers.next(); MidiFileFormat sb = sr.getMidiFileFormat(stream); if (sb != null) return sb; @@ -305,10 +308,11 @@ public class MidiSystem public static MidiFileFormat getMidiFileFormat(URL url) throws InvalidMidiDataException, IOException { - Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class); + Iterator readers = + ServiceFactory.lookupProviders(MidiFileReader.class); while (readers.hasNext()) { - MidiFileReader sr = (MidiFileReader) readers.next(); + MidiFileReader sr = readers.next(); MidiFileFormat sb = sr.getMidiFileFormat(url); if (sb != null) return sb; @@ -327,10 +331,11 @@ public class MidiSystem public static MidiFileFormat getMidiFileFormat(File file) throws InvalidMidiDataException, IOException { - Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class); + Iterator readers = + ServiceFactory.lookupProviders(MidiFileReader.class); while (readers.hasNext()) { - MidiFileReader sr = (MidiFileReader) readers.next(); + MidiFileReader sr = readers.next(); MidiFileFormat sb = sr.getMidiFileFormat(file); if (sb != null) return sb; @@ -350,10 +355,11 @@ public class MidiSystem public static Sequence getSequence(InputStream stream) throws InvalidMidiDataException, IOException { - Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class); + Iterator readers = + ServiceFactory.lookupProviders(MidiFileReader.class); while (readers.hasNext()) { - MidiFileReader sr = (MidiFileReader) readers.next(); + MidiFileReader sr = readers.next(); Sequence sq = sr.getSequence(stream); if (sq != null) return sq; @@ -372,10 +378,11 @@ public class MidiSystem public static Sequence getSequence(URL url) throws InvalidMidiDataException, IOException { - Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class); + Iterator readers = + ServiceFactory.lookupProviders(MidiFileReader.class); while (readers.hasNext()) { - MidiFileReader sr = (MidiFileReader) readers.next(); + MidiFileReader sr = readers.next(); Sequence sq = sr.getSequence(url); if (sq != null) return sq; @@ -394,10 +401,11 @@ public class MidiSystem public static Sequence getSequence(File file) throws InvalidMidiDataException, IOException { - Iterator readers = ServiceFactory.lookupProviders(MidiFileReader.class); + Iterator readers = + ServiceFactory.lookupProviders(MidiFileReader.class); while (readers.hasNext()) { - MidiFileReader sr = (MidiFileReader) readers.next(); + MidiFileReader sr = readers.next(); Sequence sq = sr.getSequence(file); if (sq != null) return sq; @@ -417,10 +425,11 @@ public class MidiSystem boolean supported[] = new boolean[3]; // The number of supported formats. int count = 0; - Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class); + Iterator writers = + ServiceFactory.lookupProviders(MidiFileWriter.class); while (writers.hasNext()) { - MidiFileWriter fw = (MidiFileWriter) writers.next(); + MidiFileWriter fw = writers.next(); int types[] = fw.getMidiFileTypes(); for (int i = types.length; i > 0;) { @@ -449,10 +458,10 @@ public class MidiSystem */ public static boolean isFileTypeSupported(int fileType) { - Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class); + Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class); while (writers.hasNext()) { - MidiFileWriter fw = (MidiFileWriter) writers.next(); + MidiFileWriter fw = writers.next(); if (fw.isFileTypeSupported(fileType)) return true; @@ -473,7 +482,7 @@ public class MidiSystem boolean supported[] = new boolean[3]; // The number of supported formats. int count = 0; - Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class); + Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class); while (writers.hasNext()) { MidiFileWriter fw = (MidiFileWriter) writers.next(); @@ -507,7 +516,7 @@ public class MidiSystem */ public static boolean isFileTypeSupported(int fileType, Sequence sequence) { - Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class); + Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class); while (writers.hasNext()) { MidiFileWriter fw = (MidiFileWriter) writers.next(); @@ -531,7 +540,7 @@ public class MidiSystem public static int write(Sequence in, int fileType, OutputStream out) throws IOException { - Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class); + Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class); while (writers.hasNext()) { MidiFileWriter fw = (MidiFileWriter) writers.next(); @@ -556,7 +565,7 @@ public class MidiSystem public static int write(Sequence in, int fileType, File out) throws IOException { - Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class); + Iterator writers = ServiceFactory.lookupProviders(MidiFileWriter.class); while (writers.hasNext()) { MidiFileWriter fw = (MidiFileWriter) writers.next(); diff --git a/libjava/classpath/javax/sound/midi/Receiver.java b/libjava/classpath/javax/sound/midi/Receiver.java index bc660d0d62d8..535c9df65cdc 100644 --- a/libjava/classpath/javax/sound/midi/Receiver.java +++ b/libjava/classpath/javax/sound/midi/Receiver.java @@ -47,6 +47,7 @@ package javax.sound.midi; * */ public interface Receiver + extends AutoCloseable { /** * Send a MIDI message and timestamp. Some receivers don't support diff --git a/libjava/classpath/javax/sound/midi/SoundbankResource.java b/libjava/classpath/javax/sound/midi/SoundbankResource.java index 0b4675b106fd..6c3a4f28bf23 100644 --- a/libjava/classpath/javax/sound/midi/SoundbankResource.java +++ b/libjava/classpath/javax/sound/midi/SoundbankResource.java @@ -1,5 +1,5 @@ /* SoundbankResource.java -- An audio resource from a sound bank - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -49,7 +49,7 @@ public abstract class SoundbankResource { private final Soundbank soundbank; private final String name; - private final Class dataClass; + private final Class dataClass; /** * Create a SoundbankResource object. diff --git a/libjava/classpath/javax/sound/midi/Track.java b/libjava/classpath/javax/sound/midi/Track.java index 550d2e1c4ab5..9c392577f2cb 100644 --- a/libjava/classpath/javax/sound/midi/Track.java +++ b/libjava/classpath/javax/sound/midi/Track.java @@ -1,5 +1,5 @@ /* Track.java -- A track of MIDI events - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -54,10 +54,10 @@ public class Track /** * The list of MidiEvents for this track. */ - Vector events = new Vector(); + Vector events = new Vector(); // A HashSet to speed processing - private HashSet eventSet = new HashSet(); + private HashSet eventSet = new HashSet(); // This is only instantiable within this package. Track() @@ -83,7 +83,7 @@ public class Track long targetTick = event.getTick(); int i = events.size() - 1; - while (i >= 0 && (((MidiEvent)events.get(i)).getTick() > targetTick)) + while (i >= 0 && (events.get(i).getTick() > targetTick)) i--; events.add(i+1, event); return true; @@ -127,7 +127,7 @@ public class Track { try { - return (MidiEvent) events.get(index); + return events.get(index); } catch (IndexOutOfBoundsException e) { @@ -158,7 +158,7 @@ public class Track synchronized (events) { int size = events.size(); - return ((MidiEvent) events.get(size - 1)).getTick(); + return events.get(size - 1).getTick(); } } } diff --git a/libjava/classpath/javax/sound/midi/Transmitter.java b/libjava/classpath/javax/sound/midi/Transmitter.java index ab81cc8198de..2c62795a338d 100644 --- a/libjava/classpath/javax/sound/midi/Transmitter.java +++ b/libjava/classpath/javax/sound/midi/Transmitter.java @@ -47,6 +47,7 @@ package javax.sound.midi; * */ public interface Transmitter + extends AutoCloseable { /** * Set the Receiver to which MIDI events will be sent. diff --git a/libjava/classpath/javax/sound/sampled/AudioSystem.java b/libjava/classpath/javax/sound/sampled/AudioSystem.java index 01133c91d3aa..599952154fd2 100644 --- a/libjava/classpath/javax/sound/sampled/AudioSystem.java +++ b/libjava/classpath/javax/sound/sampled/AudioSystem.java @@ -1,5 +1,5 @@ /* Main interface to audio system - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -84,10 +84,10 @@ public class AudioSystem public static AudioFileFormat getAudioFileFormat(File f) throws UnsupportedAudioFileException, IOException { - Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class); + Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class); while (i.hasNext()) { - AudioFileReader reader = (AudioFileReader) i.next(); + AudioFileReader reader = i.next(); try { return reader.getAudioFileFormat(f); @@ -111,10 +111,10 @@ public class AudioSystem public static AudioFileFormat getAudioFileFormat(InputStream is) throws UnsupportedAudioFileException, IOException { - Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class); + Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class); while (i.hasNext()) { - AudioFileReader reader = (AudioFileReader) i.next(); + AudioFileReader reader = i.next(); try { return reader.getAudioFileFormat(is); @@ -138,10 +138,10 @@ public class AudioSystem public static AudioFileFormat getAudioFileFormat(URL url) throws UnsupportedAudioFileException, IOException { - Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class); + Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class); while (i.hasNext()) { - AudioFileReader reader = (AudioFileReader) i.next(); + AudioFileReader reader = i.next(); try { return reader.getAudioFileFormat(url); @@ -162,10 +162,10 @@ public class AudioSystem { HashSet result = new HashSet(); - Iterator i = ServiceFactory.lookupProviders(AudioFileWriter.class); + Iterator i = ServiceFactory.lookupProviders(AudioFileWriter.class); while (i.hasNext()) { - AudioFileWriter writer = (AudioFileWriter) i.next(); + AudioFileWriter writer = i.next(); AudioFileFormat.Type[] types = writer.getAudioFileTypes(); for (int j = 0; j < types.length; ++j) result.add(types[j]); @@ -183,10 +183,10 @@ public class AudioSystem { HashSet result = new HashSet(); - Iterator i = ServiceFactory.lookupProviders(AudioFileWriter.class); + Iterator i = ServiceFactory.lookupProviders(AudioFileWriter.class); while (i.hasNext()) { - AudioFileWriter writer = (AudioFileWriter) i.next(); + AudioFileWriter writer = i.next(); AudioFileFormat.Type[] types = writer.getAudioFileTypes(ais); for (int j = 0; j < types.length; ++j) result.add(types[j]); @@ -206,10 +206,11 @@ public class AudioSystem public static AudioInputStream getAudioInputStream(AudioFormat.Encoding targ, AudioInputStream ais) { - Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class); + Iterator i = + ServiceFactory.lookupProviders(FormatConversionProvider.class); while (i.hasNext()) { - FormatConversionProvider prov = (FormatConversionProvider) i.next(); + FormatConversionProvider prov = i.next(); if (! prov.isConversionSupported(targ, ais.getFormat())) continue; return prov.getAudioInputStream(targ, ais); @@ -229,10 +230,11 @@ public class AudioSystem public static AudioInputStream getAudioInputStream(AudioFormat targ, AudioInputStream ais) { - Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class); + Iterator i = + ServiceFactory.lookupProviders(FormatConversionProvider.class); while (i.hasNext()) { - FormatConversionProvider prov = (FormatConversionProvider) i.next(); + FormatConversionProvider prov = i.next(); if (! prov.isConversionSupported(targ, ais.getFormat())) continue; return prov.getAudioInputStream(targ, ais); @@ -251,10 +253,10 @@ public class AudioSystem public static AudioInputStream getAudioInputStream(File f) throws UnsupportedAudioFileException, IOException { - Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class); + Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class); while (i.hasNext()) { - AudioFileReader reader = (AudioFileReader) i.next(); + AudioFileReader reader = i.next(); try { return reader.getAudioInputStream(f); @@ -278,10 +280,10 @@ public class AudioSystem public static AudioInputStream getAudioInputStream(InputStream is) throws UnsupportedAudioFileException, IOException { - Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class); + Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class); while (i.hasNext()) { - AudioFileReader reader = (AudioFileReader) i.next(); + AudioFileReader reader = i.next(); try { return reader.getAudioInputStream(is); @@ -305,10 +307,10 @@ public class AudioSystem public static AudioInputStream getAudioInputStream(URL url) throws UnsupportedAudioFileException, IOException { - Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class); + Iterator i = ServiceFactory.lookupProviders(AudioFileReader.class); while (i.hasNext()) { - AudioFileReader reader = (AudioFileReader) i.next(); + AudioFileReader reader = i.next(); try { return reader.getAudioInputStream(url); @@ -401,10 +403,10 @@ public class AudioSystem */ public static Mixer getMixer(Mixer.Info info) { - Iterator i = ServiceFactory.lookupProviders(MixerProvider.class); + Iterator i = ServiceFactory.lookupProviders(MixerProvider.class); while (i.hasNext()) { - MixerProvider prov = (MixerProvider) i.next(); + MixerProvider prov = i.next(); if (prov.isMixerSupported(info)) return prov.getMixer(info); } @@ -417,10 +419,10 @@ public class AudioSystem public static Mixer.Info[] getMixerInfo() { HashSet result = new HashSet(); - Iterator i = ServiceFactory.lookupProviders(MixerProvider.class); + Iterator i = ServiceFactory.lookupProviders(MixerProvider.class); while (i.hasNext()) { - MixerProvider prov = (MixerProvider) i.next(); + MixerProvider prov = i.next(); Mixer.Info[] is = prov.getMixerInfo(); for (int j = 0; j < is.length; ++j) result.add(is[j]); @@ -536,10 +538,11 @@ public class AudioSystem { HashSet result = new HashSet(); - Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class); + Iterator i = + ServiceFactory.lookupProviders(FormatConversionProvider.class); while (i.hasNext()) { - FormatConversionProvider prov = (FormatConversionProvider) i.next(); + FormatConversionProvider prov = i.next(); if (! prov.isSourceEncodingSupported(source)) continue; AudioFormat.Encoding[] es = prov.getTargetEncodings(); @@ -558,10 +561,11 @@ public class AudioSystem { HashSet result = new HashSet(); - Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class); + Iterator i = + ServiceFactory.lookupProviders(FormatConversionProvider.class); while (i.hasNext()) { - FormatConversionProvider prov = (FormatConversionProvider) i.next(); + FormatConversionProvider prov = i.next(); AudioFormat.Encoding[] es = prov.getTargetEncodings(source); for (int j = 0; j < es.length; ++j) result.add(es[j]); @@ -579,10 +583,11 @@ public class AudioSystem AudioFormat sourceFmt) { HashSet result = new HashSet(); - Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class); + Iterator i = + ServiceFactory.lookupProviders(FormatConversionProvider.class); while (i.hasNext()) { - FormatConversionProvider prov = (FormatConversionProvider) i.next(); + FormatConversionProvider prov = i.next(); AudioFormat[] es = prov.getTargetFormats(encoding, sourceFmt); for (int j = 0; j < es.length; ++j) result.add(es[j]); @@ -618,11 +623,11 @@ public class AudioSystem public static boolean isConversionSupported(AudioFormat.Encoding targ, AudioFormat source) { - Iterator i + Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class); while (i.hasNext()) { - FormatConversionProvider prov = (FormatConversionProvider) i.next(); + FormatConversionProvider prov = i.next(); if (prov.isConversionSupported(targ, source)) return true; } @@ -638,11 +643,11 @@ public class AudioSystem public static boolean isConversionSupported(AudioFormat targ, AudioFormat source) { - Iterator i + Iterator i = ServiceFactory.lookupProviders(FormatConversionProvider.class); while (i.hasNext()) { - FormatConversionProvider prov = (FormatConversionProvider) i.next(); + FormatConversionProvider prov = i.next(); if (prov.isConversionSupported(targ, source)) return true; } @@ -714,10 +719,10 @@ public class AudioSystem File out) throws IOException { - Iterator i = ServiceFactory.lookupProviders(AudioFileWriter.class); + Iterator i = ServiceFactory.lookupProviders(AudioFileWriter.class); while (i.hasNext()) { - AudioFileWriter w = (AudioFileWriter) i.next(); + AudioFileWriter w = i.next(); if (w.isFileTypeSupported(type, ais)) return w.write(ais, type, out); } @@ -739,10 +744,10 @@ public class AudioSystem OutputStream os) throws IOException { - Iterator i = ServiceFactory.lookupProviders(AudioFileWriter.class); + Iterator i = ServiceFactory.lookupProviders(AudioFileWriter.class); while (i.hasNext()) { - AudioFileWriter w = (AudioFileWriter) i.next(); + AudioFileWriter w = i.next(); if (w.isFileTypeSupported(type, ais)) return w.write(ais, type, os); } diff --git a/libjava/classpath/javax/sound/sampled/Line.java b/libjava/classpath/javax/sound/sampled/Line.java index 62d284bd8496..1e08f1a8b491 100644 --- a/libjava/classpath/javax/sound/sampled/Line.java +++ b/libjava/classpath/javax/sound/sampled/Line.java @@ -1,5 +1,5 @@ /* An input or output line - Copyright (C) 2005 Free Software Foundation, Inc. + Copyright (C) 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,6 +43,7 @@ package javax.sound.sampled; * @since 1.3 */ public interface Line + extends AutoCloseable { /** * An object of this type holds information about a Line. @@ -50,7 +51,7 @@ public interface Line */ class Info { - private Class klass; + private Class klass; /** * Create a new Info object. The argument is the class of the line, diff --git a/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java b/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java index 260c385aa3e4..1e53961964e1 100644 --- a/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java +++ b/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java @@ -293,7 +293,7 @@ public class DefaultMutableTreeNode * * @return an enumeration of tree nodes */ - @SuppressWarnings("unchecked") // Required for API compatibility + @SuppressWarnings("rawtypes") // Required for API compatibility public Enumeration children() { if (children.size() == 0) @@ -718,7 +718,7 @@ public class DefaultMutableTreeNode * * @return Enumeration */ - @SuppressWarnings("unchecked") // Required for API compatibility + @SuppressWarnings("rawtypes") // Required for API compatibility public Enumeration preorderEnumeration() { return new PreorderEnumeration(this); @@ -729,7 +729,7 @@ public class DefaultMutableTreeNode * * @return Enumeration */ - @SuppressWarnings("unchecked") // Required for API compatibility + @SuppressWarnings("rawtypes") // Required for API compatibility public Enumeration postorderEnumeration() { return new PostorderEnumeration(this); @@ -740,7 +740,7 @@ public class DefaultMutableTreeNode * * @return Enumeration */ - @SuppressWarnings("unchecked") // Required for API compatibility + @SuppressWarnings("rawtypes") // Required for API compatibility public Enumeration breadthFirstEnumeration() { return new BreadthFirstEnumeration(this); @@ -751,7 +751,7 @@ public class DefaultMutableTreeNode * * @return Enumeration */ - @SuppressWarnings("unchecked") // Required for API compatibility + @SuppressWarnings("rawtypes") // Required for API compatibility public Enumeration depthFirstEnumeration() { return postorderEnumeration(); @@ -764,7 +764,7 @@ public class DefaultMutableTreeNode * * @return Enumeration */ - @SuppressWarnings("unchecked") // Required for API compatibility + @SuppressWarnings("rawtypes") // Required for API compatibility public Enumeration pathFromAncestorEnumeration(TreeNode node) { if (node == null) @@ -1073,7 +1073,6 @@ public class DefaultMutableTreeNode return !queue.isEmpty(); } - @SuppressWarnings("unchecked") public TreeNode nextElement() { if (queue.isEmpty()) @@ -1081,6 +1080,7 @@ public class DefaultMutableTreeNode TreeNode node = queue.removeFirst(); + @SuppressWarnings("unchecked") Enumeration children = (Enumeration) node.children(); while (children.hasMoreElements()) @@ -1100,11 +1100,13 @@ public class DefaultMutableTreeNode Stack> childrenEnums = new Stack>(); - @SuppressWarnings("unchecked") PreorderEnumeration(TreeNode node) { next = node; - childrenEnums.push((Enumeration) node.children()); + @SuppressWarnings("unchecked") + Enumeration children = + (Enumeration) node.children(); + childrenEnums.push(children); } public boolean hasMoreElements() @@ -1127,14 +1129,16 @@ public class DefaultMutableTreeNode return current; } - @SuppressWarnings("unchecked") private TreeNode traverse(Enumeration children) { // If more children are available step down. if (children.hasMoreElements()) { TreeNode child = children.nextElement(); - childrenEnums.push((Enumeration) child.children()); + @SuppressWarnings("unchecked") + Enumeration grandchildren = + (Enumeration) child.children(); + childrenEnums.push(grandchildren); return child; } @@ -1163,11 +1167,13 @@ public class DefaultMutableTreeNode Stack> childrenEnums = new Stack>(); - @SuppressWarnings("unchecked") PostorderEnumeration(TreeNode node) { nodes.push(node); - childrenEnums.push((Enumeration) node.children()); + @SuppressWarnings("unchecked") + Enumeration children = + (Enumeration) node.children(); + childrenEnums.push(children); } public boolean hasMoreElements() @@ -1185,7 +1191,6 @@ public class DefaultMutableTreeNode return traverse(children); } - @SuppressWarnings("unchecked") private TreeNode traverse(Enumeration children) { if (children.hasMoreElements()) @@ -1193,8 +1198,9 @@ public class DefaultMutableTreeNode TreeNode node = children.nextElement(); nodes.push(node); - Enumeration newChildren = - (Enumeration) node.children(); + @SuppressWarnings("unchecked") + Enumeration newChildren = + (Enumeration) node.children(); childrenEnums.push(newChildren); return traverse(newChildren); diff --git a/libjava/classpath/javax/swing/tree/TreeNode.java b/libjava/classpath/javax/swing/tree/TreeNode.java index b68b498a7b3c..f146741f49e7 100644 --- a/libjava/classpath/javax/swing/tree/TreeNode.java +++ b/libjava/classpath/javax/swing/tree/TreeNode.java @@ -107,7 +107,7 @@ public interface TreeNode * * @return An enumeration of the children of this node. */ - @SuppressWarnings("unchecked") // Required for API compatibility + @SuppressWarnings("rawtypes") // Required for API compatibility Enumeration children(); } diff --git a/libjava/classpath/javax/xml/namespace/NamespaceContext.java b/libjava/classpath/javax/xml/namespace/NamespaceContext.java index b3e1e1f61d0d..9816480c394f 100644 --- a/libjava/classpath/javax/xml/namespace/NamespaceContext.java +++ b/libjava/classpath/javax/xml/namespace/NamespaceContext.java @@ -61,7 +61,7 @@ public interface NamespaceContext /** * Returns all the prefixes currently bound to the given namespace URI. */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") public Iterator getPrefixes(String namespaceURI); } diff --git a/libjava/classpath/javax/xml/stream/XMLEventFactory.java b/libjava/classpath/javax/xml/stream/XMLEventFactory.java index fc2d493d5d43..750b62e2cd6d 100644 --- a/libjava/classpath/javax/xml/stream/XMLEventFactory.java +++ b/libjava/classpath/javax/xml/stream/XMLEventFactory.java @@ -223,7 +223,7 @@ public abstract class XMLEventFactory /** * Create a start-element event. */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") public abstract StartElement createStartElement(QName name, Iterator attributes, Iterator namespaces); @@ -238,7 +238,7 @@ public abstract class XMLEventFactory /** * Create a start-element event. */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") public abstract StartElement createStartElement(String prefix, String namespaceUri, String localName, @@ -248,7 +248,7 @@ public abstract class XMLEventFactory /** * Create a start-element event. */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") public abstract StartElement createStartElement(String prefix, String namespaceUri, String localName, @@ -259,7 +259,7 @@ public abstract class XMLEventFactory /** * Create an end-element event. */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") public abstract EndElement createEndElement(QName name, Iterator namespaces); @@ -273,7 +273,7 @@ public abstract class XMLEventFactory /** * Create an end-element event. */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") public abstract EndElement createEndElement(String prefix, String namespaceUri, String localName, diff --git a/libjava/classpath/javax/xml/stream/XMLEventReader.java b/libjava/classpath/javax/xml/stream/XMLEventReader.java index d5c76b6b1925..10373ee0edb0 100644 --- a/libjava/classpath/javax/xml/stream/XMLEventReader.java +++ b/libjava/classpath/javax/xml/stream/XMLEventReader.java @@ -43,7 +43,7 @@ import javax.xml.stream.events.XMLEvent; /** * An XML parser. */ -@SuppressWarnings("unchecked") +@SuppressWarnings("rawtypes") public interface XMLEventReader extends Iterator { diff --git a/libjava/classpath/javax/xml/stream/events/DTD.java b/libjava/classpath/javax/xml/stream/events/DTD.java index b1a906919f52..f7c07957950d 100644 --- a/libjava/classpath/javax/xml/stream/events/DTD.java +++ b/libjava/classpath/javax/xml/stream/events/DTD.java @@ -60,13 +60,13 @@ public interface DTD /** * Returns the notations declared in the DTD. */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") List getNotations(); /** * Returns the entities declared in the DTD. */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") List getEntities(); } diff --git a/libjava/classpath/javax/xml/stream/events/EndElement.java b/libjava/classpath/javax/xml/stream/events/EndElement.java index a6b5c3fa2811..cd7c2d3865ff 100644 --- a/libjava/classpath/javax/xml/stream/events/EndElement.java +++ b/libjava/classpath/javax/xml/stream/events/EndElement.java @@ -55,7 +55,7 @@ public interface EndElement /** * Returns the namespaces that have gone out of scope. */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") Iterator getNamespaces(); } diff --git a/libjava/classpath/javax/xml/stream/events/StartElement.java b/libjava/classpath/javax/xml/stream/events/StartElement.java index 359b57eefd71..9d1897299405 100644 --- a/libjava/classpath/javax/xml/stream/events/StartElement.java +++ b/libjava/classpath/javax/xml/stream/events/StartElement.java @@ -56,13 +56,13 @@ public interface StartElement /** * Returns the attributes declared on this element. */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") Iterator getAttributes(); /** * Returns the namespaces declared on this element. */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") Iterator getNamespaces(); /** diff --git a/libjava/classpath/javax/xml/xpath/XPathFunction.java b/libjava/classpath/javax/xml/xpath/XPathFunction.java index 4406e318c897..b7be0902d88f 100644 --- a/libjava/classpath/javax/xml/xpath/XPathFunction.java +++ b/libjava/classpath/javax/xml/xpath/XPathFunction.java @@ -52,7 +52,7 @@ public interface XPathFunction * Evaluate the function with the specified arguments. * @param args the list of arguments */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") Object evaluate(List args) throws XPathFunctionException; diff --git a/libjava/classpath/lib/Makefile.in b/libjava/classpath/lib/Makefile.in index 384e77294ec6..c4174e2bf778 100644 --- a/libjava/classpath/lib/Makefile.in +++ b/libjava/classpath/lib/Makefile.in @@ -42,9 +42,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -63,7 +60,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -173,6 +172,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/lib/gnu/java/beans/editors/ColorEditor.class b/libjava/classpath/lib/gnu/java/beans/editors/ColorEditor.class index ace906317905bd956ce0905193fd8332b3098b57..5d010e752bb8a8c828d25d26cfaa32f85580ef62 100644 GIT binary patch delta 36 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 delta 209 zc-p(j`ILj})W2Q(7#J7~8LT#PNij)qxmF~n7L;V>=M{4?Ff!=yFeor6vNPySj%CtO zFyLVjWiVu9VAjy|0?8WlFo-i4axv&KnDQ`~F_=$Y$>hq&viUueGGmD>gA@Z3gBH+e z7NANw22LO=lz|n( lnSmjRft?|RfrlX#XiPeT08oSnVhn>IPz3{!Z2{I{2>_z&9|-^e diff --git a/libjava/classpath/lib/gnu/java/text/AttributedFormatBuffer.class b/libjava/classpath/lib/gnu/java/text/AttributedFormatBuffer.class index d079038dc97869d389765be88deac035495a695e..dd989b6d98048a6b5862290f37786ea5fdf9af2b 100644 GIT binary patch literal 4924 zc-pmBZE##=6@K3AZZ_TClqP9{bkougS~i=sv1w?lO{?uf%EGoOO-wBfg`3UIX3KUr z+`U^USQT1S3RVzMu^?X^E2EB9Ng@^*{DX==WgKzzmp}aHjQ<_=Iq$u>x!LT{kC|p> z?|tvN?|aU3&T~F)KK$>m-vh7-=cA}oxFuJtbRRX3o86A}h||5xaqRqP#j(cvOZG9- z*GNthJ{vGp9dYbgUfp?&QIk zIqMU(KllkJwQ#RF={;7(BQ;^#X4bLnG=HX3vTyOGPhK9v-)I8vMRd+b8u-M!c zfU-1T)$?(@N_5?THI^OIc1VE6r=SGgm^E%z3XYss*mTvl$YEc;n0Iz6tVvvk?~Y-G zaH=$B#SlWfflpzDLMYKO9L3EFD?agX3@fo(j;v9LCjuS{xIycoidD>7w6F-wZUa#? zM6q6>r3UdatV6r(>oBkgFBBHb}89_^I)^$GCL%jzbU*Q9N^)hg1RQQWT3G#9cv&GG~@FoqP`7h@07 zQQXNinwOpi?!w&+&Sb?=*p^tBdkZBU3q``oUIY6uKvj$;J3ckHnGbe?Bd9HD1+k65}OwN)pbUlic z$!1PYTE%Mj-AdT*vUtCN5j?;&thM8^9aohls}>wo=&zyf8nRgO$TBdF9E-1PIk(TX z7q2>c6W6FVFOJ`*aBB^uhtt)4RSN3lmF&Du?Y3ihF^-`WMNwhNe2WGq@ep$^XE{Q2 zx<)-HL?kguR(-Z&?=Nwo@>0qvHwhk=SUe&UrJq5Uy2ceZ5162qa|01 z)Xj;GYZx8TY{eNe^9AwfaRX1Fk1dHwlkqxkBwMgdTYAHj22RPe2$xS3vm*G0fv2Q9 zhs*g#E$PZn8@K^W|zGY_gCI=z@BAnvQGRgVj+ANcr zvc+82!QgXa;CTsuBww#doiA_UkE0s$$EmLMD4Be`F6YyEgt-IABxev$Uc$;loikW9 zg|%F-J2Zn^r;wOiCX;FkU7gd|_!4eR%6$qw`mScsdjSo}Itngo%iDNO5+OJ>!$=d` zU5MjutVaf&*oz(v;Ir6|ehgANgwJS%8VlvyHR6o+U1`L99^yMZ#Elwld|yQ| z7uyJ?=VkI25<=g`T5@{i;9MY@wZ%t??J;Wl5_O#nM7PaH(gqWwI=UmsdN%Uh6XHFd z?3%_{Qnb${&Vx&NRx z|1X}Z=Y7O8yd|tnlBaE_UepiqbRu}4IwBdRsh_1^3M z`zYu@Fi@dD#y`bceVR4-35n4$_E33!hHR99j?rQPqt$3jy@#t-L>0MHVJwA=&3rPMxNj}H*%Z%zP z0g~H&jO{qVRB%at%(HaFBYBxi@~rYIc3lgv6Zad8&YQ%0KEUiU-@-D_f~;nl<@c0l z>nwN6{$8Q3>xT$m^xWDZZnnRQ7P+5esfpiR>`ci{wyk9Qyxz1%chw*9`W7SmV|LA- z635Tbfs5FPUtlwS8Nk--W9!w3`1Osox)220NqpJE)~(|LM8xvXePi`nI1^|h5l^AQ zSNztNrYQ+^llbHL6d#+$SF1bHyUdK=1h{GP(KYcuHn+X;KQ~WpkB6zjQ~8rBSicRx zYVcv5^4sJ6UVB_E=R<@e6*G;~QYLbfnNZdEm+Q3tfa-q7vGjYw`~%bJLk9DY0b{Fu zV_)-)UGmy{&gD=-(c|HMO_=u9v&6bkzW#1(3THxn7qFayGjZKor}51DxMv#Q95}6% zh|aKl|DlJOAfLgrQ+R$3@_J?g@Fzy^Bf|YNzm@*N$bHO~`d7}UkIDMqn1g>0L_O!h z?`0-9UesS?T`$apwbhyM&zhO=U3{;`;WO2T|6TL&ORU`4&UbEslIN?H{HKPJIu^ZL RU%?M_swuq6Vto^f{ttmwX#D^H literal 4282 zc-oy;TX0)f6fpFEy_RomrLyE) zT_tuxA1Ns9_y+=`{db@LCu(3L7W$rM}bVS+mcvW}UwMj$>!XOO7=$Sg@x}=RoPy zDa#HcsIXRR<;?tK-;wdtR>ldVR-yg+^W~=$YR5gHGwrKs1IeLb`pHioC}ndKmc5&* zHutTfLTg&9m7Hv@Z@+DubLni+p+dx5hDN12^W?IA%~(poFi)1hZW${x@_<>KddQri ziH4$M+78_wm9q+pC)Z3^r_55$k-!zUq^qSOIc3^r#+Dt7 z5W7K?@eze!vM^yq5WqSEEx1D=5Q~q55mmVJ{~nH@9e2u+^$O8gx=fGYhOILtE1$9G zp&kl%83>~;j13CSRgxJ&7uJd1JqGF#5$S^l*0@sKKogq9TepE8Y-W5pD?jN>X{0Gp z=`*kvjS)&)3~a?VN&m!zpAv=bvDEv{qvYoHbT)4tE=`YH_AzrjM@voVLdMLEn08ja zdz(RLDoc_#rEjKmNl-ABijPP{yCi=D0(_51tqS!sw&m8S?CuKVBMObHN+*JSSSOF9 zf%|ZfnV2a#3IpXdxGk}J^-g^CmJo2ifd|0)3ovyo`YNX4C&GAe8IFFD$~)GiKs|(A z#Gbd#xm~~zO*30S1tZpb7scMSNd{mY`2@AV+J0^BMRH9Y22`bRZ;j_bx>ij zin&{;4`JwpfiXPF5Q~;`-%8_pb=M!eMYE4d;71j@s~{aqRU0N!t|3V}gRae#?4be$ zm6c*ky2-S}<|&y9$(zVshM%N#PV$yICqf9em3K6Z=E-Ww*%pi6!f*>`O3pDeo0EtN z24*n8!ejE&-b@H(a+YaJK^G02k$Dy@&gC<*an`^&nIFMo_Pix?W6pqq26=VCz{l|< z>y=2QAX8PFWGGDM@@iBUrxex?(pbTJ(>4H&>8gIRP5D zwZH80YV%{L=-|k3p=4*Q!K@6yX!UW|D+f7{Q~A7QCv#@8XcfbFg+u#&av#POUJy5R zh*9}($qH%ZC&VkLNvLMG?jTG;;2eAuj?jE5ugzeO9bFp9tKCBU^b&N_Q9`Fz!^bj{_ zw9zH(T*B@Zml6H)7?bcwnaKvmvGh8*# zSd-k(o{1|&738|J=UuG7iha!2{==JldKPiuc;YQ=+PsLtZB7K#U_`0Ja8_aGm*4?ZiVmDv=KJgcLzD6Fa2Kh2z(QIl?y* zQXAd(ewBO$guu7ZNe+k0Ff?iVXNlw-EzPoA=E}0!=KF1<#p61g596brk1TZpT%!p_ zKbjEhD~0m01fw5aan#0I2A<^eDOSkSbo2~|;YIE2F4v6jEb2KE$qiE6p7h-QjW%k9 zEzjYOpms$*wg+~E<`G-Ycu#Anw>9{E0YiO&;mqMyF)N}2d|NToj>ebnC%lbJs z-t%m-7nrTfScezUim)tmo-5 zkH;35$7SOc1iBu+MwDM?F1|rpUN0lB#rM$Sc@SxtJpS77e0_%6qTk<5Ke2Bk_@)=u zy%J^z&C2>3`$yuAao8lfIf)V-*NvMEdLX{R=eL;0dFJjr#PMCk@qKdh12*dq%dqwP z*!ndh{u;#H?72pb?Fn|Bi>*)R1qg}fANkH|_2!Su=0eCbs4(qMs}x;Hsv9L9FQ(|k zBJ!0(=53b$Ps+Gy^wBl)pMpEF_>aLeyVb)~=b8Lo1*~_aRx9cMQ1MXO8dekIamObiw6NQqk+- zeqEUM_Z~IJAhTj$Beowr1I^|46u~OYdOc0xr5= zJ`v!0Q9rJ|jpr+S_jl~B-xJ&)a1Z{(Y`#a(f95sx9{cjIusBT4Osul8Cj)>KVXDbi?tLovGIagL6zF2wq-&GFR;0yZsMSMw@p5kzL J6<ff$?3=9m04Du7X7G~vq|ZMoD>b>q+RoZ;<5g=$ zM(N3dOeQR{j0~!i8yHn5=P~Jv0xbo)l!<|hg^_`kft!H=L{Hwtq@o05h%$(QCB?y{ U1cM}y=3-!EkYbQwkYnHk0FSIZ1poj5 delta 139 zc-m`V|G>(1>ff$?3=9m046+ls7HMj0_+%xPCFc$1++ovPd#A=uf`Lq&oRNBNsC}gY@KcOyQyoEQ}1S44e!QnhQ*GPqt!K dkz!zC5Cz)B#305X4y3sl7#SoOq!?rvI04~Z9h?9F diff --git a/libjava/classpath/lib/gnu/java/text/FormatCharacterIterator.class b/libjava/classpath/lib/gnu/java/text/FormatCharacterIterator.class index 5942a8b50b334c5a0f085c7ff2559a38a55226ab..064e10a57b6b0c7f11f95841e3753c4328d49360 100644 GIT binary patch literal 9268 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 literal 7254 zc-oy3C-@Yj%%OAegvKtLDo#?n?Fu%3BKx zt+mC1bGj(nlI%8j3#3IbAvU7aUi7EA-^>WgHt}`HdCiq6n=FmFY&_9$RV=f8RjiLH zeOEMJ{_ZQOZlhp)Q!1Is#**3gSR!Y72n48dNjw?PE)#fa>)Hk0rc}2Xf(Mlbrl2B- z=>nX?eboj62&&n61`Lc3phhrhj7ha&wt)$l$f#T6Npp3sx6@3ok98(Y6?LjBmS~Tq z}FraPcu(xpGFSgED~JwKRY5AM_cQ1$<}ypoHomAi}0*# z31K;!0=RtC39>jda0QxaKVc?&vfFh6wv5A-XbIpd;yFr_fp=jg&2^=c*;qW8A(?`( z+gwvBkzhdaRB~}0b3K?gcPd9SDh)?FMOV6V>9m>DG}tFAkTlg0&l1hRb-`V}&e`xPxU|HkQt+eVYt)sC~Y!L@LQWQ)){RFW91v z>IIC!4ogGXq;k2-;Mol+4om~vz`EmCC1yFdcxzkgny7qRJe|o}>3g}^6HnTBC}*0J z-S$(EPxjQCh^hVFB;irUQwDaRnZ;yynEU$D=B{`uM;L<{TOvNEFs<0w<+*sG+e`;>6KyI(T&oG; zM(kEU`we^qH>-2i*Jmb~3Drcp^(;CT2k}vEtx>6vQPQ_5>5mEOOT~CrElTnZ10TmH z=utK`a>bULQFtlLy7tNZb} z03I4$HTGn(X0L(I;|uEWDEY2bA9X}Z9JQ7bOSV^EH1H*SnJUbL*{iF7a-*f>;W~hm z2EL+V2*&MuQ{nfBfm5iUitb!*pM8ymSV6Xo+|T8$#redtGePZe-`TRG;QX7F8$v%0 zK0IzA*8lKe?eew}9T3n3WonHNiuvdeRjj)RxMnyUZ1F zl_%9_X>8^z3v3Tsl1Ve,LHGXeZu(C|NAN3`wCF^dj*_~(NkWvYW?(^sZ01wD?l zNA`1iWZTAZI?lx;%9QK1$*AU>y&!+5a%DZ&MD2!g;O!{4d23$(zCm9*4Kt*a2mYP^lBhNT5_alURud4<^)5|s9GoT4p6m4SImeSHbt zTevgEcsl8O7k%y4x+9jnty|4%8M)}0inUD7RJ014I_|eDZ?t2pjXZ)`&!Sol{EId| zi*ucM9`z>%abd>*8c#UhOn~aAd+9+EHRy9iSnEW{^JLrEVB48%*$KPsjCbZVGLuFY z6dTFW$S%ylZkLg{j**3UyKQ6(rBtAEEF&{qMkYD)Xddr4A;l*4(!>XtJ2z?*Q!O

iIIdNTG zAAJ-n%5Y%#MXt@L_IA%d?zq;-Sb+~SiT9JZn@QluFb%g8?mGzb$N5$F2?Bg4ow^In zxD{979#=A4?YMt66LFPJxTQ?R5VbGk?;5UobVzIMkT&y;0%NL8_NsYw?&>mZh|J65 z-N%a{yPpYmkO${MZL`LbbZkx~OuCvhI8x`HvmMg3+wj@e9!YY@`ZcR194!=`?1De7f)^#S-i$M=;DzX{{7RzHXdBdqts>nV7= zP?x8#(Bp^c@hLKwr{%|3JO){uSadK%RG&l?PhkO`W_q5ccVBn0zt&-5t;7BjoBgT$ zY#L#|!{Owx%}J{j6+>{bQKv?7Q8mKFMCG`qNYgP~b#VCCo?;F*7IW|%Bl;$1-(qon zfhYP!uD`@Qe*u@`J6MeGyEtgIBbd%;3mm+qT-{iltFJH*f6QF{$y?6V&A8UKw2Wm} z7t%pUhoah!eAWQoQz#>Tz2|jTg_`12sI4s6mac_%88mD?oq2R0FVgWlmkz_xvE9+p zZ0ndD@ti`Z`iUxSo>8i-u>VZg|3c{g>QXt`Q5korpQpj4tf$zSzq=&M9LXJyWTPz^ z9619;^8a$l2OatA9Qg)Y-lxDQ5*Bd@`yAnfgG5YcFc`mW-P^4Y(Zzp)PQ@X$5-kaK zxjH7|$9M@~iUcuJ&T*NGI_7#EbNATh)Ho`KO9$tV8rIy}BT%N6PJWHd;_Uv`LyzH&I z9}}u<(2imJATk~0xdFWQ$w-yM-ZGum{itzVR305ul{7pG!>D}=ygJJN5l#-nZ$&&d zAYEal0Tbmy2GWT0d4K)v1PlYM^a$5Pj}qxLp?sj#yjQ^&~rr9vIl8AC@As_@Sv?$_80hj4K}&L8D% zX|?wLBf~E%1&0tJ$p!yQS=4r3i-f&-9J1Q&2(Okyx&c>t&9-U+QJAEam)4`JlAPhvZthNqS_T^m6Qz{jy7LmRmU9Ew{>ja+}V(tE`L~ z$ve(eLoa$}HTglglbyl5N7zm1OqFN&M%~SS z;srV=SUM(Q)zPYAx^CQZ8c#4`t54&rR<`m(h1@-guM6CatD|QV$d}JjXLWhs;o-+L zMViO0Byy3J35t=ekB1idHH%@NL!`xR*jJF^q7w0h{T?mKXG$Mk6!0tz_MHjLuyKU;pi~4c+Fy@^eJXvzex^=={!Ua9hI1Wsj=zwH@rFEtKguah z-)0MDr)>O*jpTDAA%Hj76g^LGCgSI8jTC*A_#wWn>D$TglGA+S!wvk(%9Cb4sawF7 z=|xIDL2ZiMpr-UCyVkzJ-RfI0t>N$z-qqG^sBs@dXw+fT;=t>0py94Bpsgo1!)vV5 zJ~XdQeW%Xg0UhdJkd7q-rv1QO15*{r(g`(+kR%81QMgC|Qe;8}*iEZMJoW7yr|hJWwxb>q)*R z#I_Ffm1<3W%}S){vi;>Yk@^OMu$*I%G|OsJG1wc0VYv8sO*5-n+t6yJUU{~zS8TxW z@E-xF6j_0PcI3eQKXUidNX!zj-2AHsV!$6t!8Co(={afvdTdaG_V7{qWSXDjD@ zSm67jE*E^bh8%CY;;tJED&H4W*^OHa;{?awNcWXET$sZk65NmqN{Xrs6lD3XRFD=3 zE%E`mAms?<`HDPwSU{NeBp`wTdN%lLIp7x&B7cPU*k)6v@eY3Cio z4B~XRv!g!P9WLsP@TDeH1QF$AO1AR4q4-4N`R&KsAoh^ zAAhie%e|I$`m7BcAvEmNejLRyz(HAzIOep!?y%|ZFb@q2>>&NNXP(J5Whl?ENUoiZ z8Rvk2Vt0sr0z82SZ6`qIyDQxQ3|DZK|MHw-&+S7*=@;oABHw%HEea6`79Dnpc5P2$ JDB-5Puis_~ua^J- delta 764 zc-n1}O-~b16o%j1`M#MZl5rfN^(#^Ahgbz`ODWZY^3|fauqF`GG@%g;0*R;_Htcla z>ihux0U9My7B1WvHztI&8x#JB@yul)q;@ko_niB@=RN1nNB^xSfBpUT9l&+WZOdj% zWa)j(_ZI3;TQ6I=7aPkfxvAFkrPEaIV(z;R9>w?*R;}Y%ZQnPT6{ur;F zJaiOr0!3OgYfgzzWjGk6A7;&{ax_MsRf|t>G>OwZ$a!eAYxR2lkcdIBpUeD>bEQG= zEWam)fa9Ete0}HfopGy@`jEJ0a0vMSu z$bUWpOqFa>Rr+F>Do!#{N-XZ6(kZ#fOKrz6fx&iUrt=AV1@L)AZj-rfQ1U?bLpx^~_lTn~Fecf?>FT=-+Z5&BWk zXpe@yDA;9CuKJOG*@+*D!k`|1)#7jK|5WuE13K~y`;$y^$V%l|12Pm1408t5KPniQ zf|iWgts;m1StooH_M{btW^6W-8zCpHF}U%On>-8Vok;R%0)u}U8hQNud4U+Dli Aj{pDw delta 362 zc-kFKJxjw-6g~Gfc`<3)#;Va+ty-O;(h6>hqxey*;wT8gmJrcY+9FOBH`kC={0|w5 z;GnDcqr{u{hQqn{zVq>IycpK+-{%*A9c(04xGRVKIJoZ-s_on0F=*ZeaoD^Z4Wc;Q zBj{1w?L86bgdq2$I2s)gu9NI4ty9@7*)UNioF>_EIwt8jHgrf6>}JEjRQgV1yV&gw zZwArBDC);)LmX-=gjV9T(l=4k8iZQXsii-{c^2G?<;Wk489A5}EXE>FuYAq7uD`jp z?P(vdeNUgD;=6K!>5MM|GmKSejAyLupn`ME;R3U~Ibv5<^X#e&7xSD(iY-94Ar$p^ kSx{_|nWk7?OIIu}Ci!Pg#Vui31q!yQW0k8Gu!eP*{{k^FJOBUy diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.class b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSIMidiDeviceProvider.class index dec2b5f668206c1f18454e3a7c58d4c6db89d555..3d8fe9a8414f0bffb9a1a1eda366615b3aa948c9 100644 GIT binary patch delta 1209 zc-l=;U2_v<7(Kg9HoKd33e^cD)J{qVsfkjWI(FJXZ2>9OP{33m7R7A|Y08?EG^tj_ zh^=1`KFV8Bzz@)IDvlQ|!;orbK(Cx}#?d=({1M)HC!XD{9kY}7oPGCs&w2Jd`}6w0 zLu-Ed=ZCuh+VQ0ivV^VTC-2s!-V1e+Kq5bCS_jQS)*P|YL(>!KA)83pn;18z%(hZ7 zYqce^lf`Y~M{oPwx4PUD7r)lste2oAvzeS(EEQO7il^ij>A#x8J#ifpo;T2sJvKXJ z;8`SWmNIYvgEkvBu+L>L8rbWyqXzb4P=zT$*_BKVJl?J&hEW4+a7@BPtN6?FB>&r$ z;|4Mq6CK`-%D906JR^p^{kk@qpO`LWGh;<@-TS9@3S}SOk`Na4YWN`oZ)1$Q>60bX zn)Klv36C;{Ch><-ADT6A0+vRz_YAy(oQ~7@z_$JHl5e|oR`mEbH=UEP&dJ0wbD6ee zv5?JWc9gQ#v2;Pj1u^4mexQPS9Ti+MATTeMeDOd9mkoT3771!G@1D_dM#yT(b6vs) zcD6xWR$Hat#XU8>sSa^YX(LpwGte=M0M4R`k}WvLXBF(ic`=|pQO46OF&J4BwxJKZ zIaSq88z3?d2bsBpOxMAEE4Y6J57bug=63-c2S^M&)YTb~yKdH&R7u z$q75|#4mH5qvO2Oqu~}|ihXkuc#XZg0$WxDJhvcv{cD5Q{#Wl=t$!VFh;jeJb7y8qTC@sH7UsS8*|V2XlAuQ5B!uTW!+) zB)?)?Ut=v65W+XyyNL+-7VdZ9JExg2rw4vlQ|Pn1vFR0DWmhsfv6Ek~%?k~o=&zZ+5e1RL#{sr=Up-ES0C7{-6IY-eZ2V}z0{Y_la>ibA@vF;H4&m#E=Y)Lez4eT>4=3R&U8v9qpDmzzEIsc{H{e}bd*cI+d_dUZFUbC(47CY|#>7V3O zf)5=sHxij8hL7k`&fcRV-2=xHd~EL}>Z=QegY@~TaMo~${(#eb7S=lF&}8cqwYJ(@ z=6r6S_f|U>>|QVJT(qaWnkPqjDqxf^3|F{nfA%&eN4ajeL9K%~Jk&XS?9kxBfb;er zZ^Ze=4*9Lltey6IpN_FnGOfguJww1*l3ZW~W7Kj{Yh!HYl6@&yUvRuoIuL582qj>I zk}AUO^VmL*J3>^_XIL#Iefd`D?+N(^N>t^Fq}%+Kx*6VRbd#=sbApQORMO4Nu(L6q zjE4?)k{6Tl8QyFzcp>iU3hnM@KZLiNgKUY0T*^xYDZg@0U8YF>H@ahVWrFUO$+=?E zouM~7rGn)-+gU1`*R=c8$bRX1fMxWMlIk_|u|}F_>6iS6X<~p)yswc5>0qe9Zjn4k zwCyOp3@hveFDTv4NW6jY;DnyiE$3y;8y3(Js&tJMIxH4f!99xX$5n}XCGS)GCP_Ug z=BreiA+hk@E!Ik;8P5qF)Ikt6pPh6#k|yyIMt`Y?)8kh(i2bU4ni&70cPt^cjY z7gk3&VJA#=;e&B9B~IslVMDqhGQaZ4Jf11?>D0NHlh*(2?YYM#&gV*u<|@aET*^*! zd75iQ>>mp)mG9B_YT^z{_<<^Zlrm+C4;Bd_Sn d#q@p^rTv;)!YXa3r2I4}Zd}u!WP)$;{{se|wb}px diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIMidiChannel.class b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIMidiChannel.class index 0405bdd810b6ba6d3797592d81a84657cf2b3ad1..194122d1d564d7f49debaeff5cf6a51048ef0587 100644 GIT binary patch delta 266 zc-lK7aYkap2Nphte+;Y)e;7C!zB2GJ{GI%dC5V-kL4c8Mavq!F>pNEIFWfG^6U|Q*2I*`jhoJ#3!q;>oA&64rKRWwFS!CO`gZ@%jh=w z4Z9O#08rkEF>-Pdhc9CyP=)B^s~pOV*p4XycLP~%K$Zn# zKbZfQQ-yK*WF;;q#)V)#HC#H3E5Um9aVaxyhKg}aX5?03+zl4D=2m7rIys)(nei-` XzXQm>4p#S>TZi#JP)vBTF^?nw7M(~S delta 266 zc-lK7aYkap2Npg?1_oA!e+--q-x>HA{!jkL62!{RAi&5mIgd?oav7^ND?gAY0Onl> z^2C8WiOJ$@L9FsXmI6>bno)i7DK;lY!^!#_;*(X_br>xt2eNyx+5_bsCeLH{W%QW* zhTVxV2q^Ew7(Ka&!HSgHC#H3tHFBqaVaxyg^F=ZX5?03+zS@B=2m7rJ~^J-nejZB XzXQm>30C)+TZi!>P)vBTF^?nwKT1bu diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIReceiver.class b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSIReceiver.class index e49d868ffcbbfca118ba91c04b6eed7ff9acc511..c710c51639ec8ff9a4866d8472920abc13cb5533 100644 GIT binary patch delta 85 zc-mXdx0-K5DJ$cS$z`msZ4WT8GaO>zWjMm1!*HCznBfG21;a@OFNRYL{y;jM;S56_ o!&!zxhVu-~3>O$WfOIdzMTQ9sml;+vT%SCTErId=R delta 85 zc-mXdx0-K5DJ$cy$z`msZ4WW9GaO;yWjMy5!*G(pnBf$I1;c3uFNQM={y;jM;T%IA o!+C~6hKmf%43`)>fOIdzWrhh1R~c3^+?+g*ErIdjPx# diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSISoundbank.class b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer$DSSISoundbank.class index 79fce7a58156bf9108a4abb11b7ae2cbf0d52b37..691d70495bbaa20be811fcbca386ad0f181c747f 100644 GIT binary patch literal 2819 zc-oy+-%}e^6#i}kSqK+OTS^OUfwmyo0NvKsVg=C(R-+-Uq^7p`Yf08{X|kca8>aNl zH{X17MrV9*#%ZfF&eR#x4mvtM`)~MvsOR2Y5(rzsKHTiN_nz-N=broBlfVA?^$!5& zQPmJ(m@L{=W5rxE?-_2TY8Q;MCeX9+gr9=ao=)=)m-{4nf4tGEezcf zXp~I5Xk1%bvGSgV7(@RKx;l!X#Wu?p!=ZEon)MuE7pE9H3YMF9#HuGMHqC_XdQP=$ z*`7us3l)b!TeBQjr5*E@g*$wXVJyAx(n_XjVGD1DVJ-1La67B`d@Fj6Zf3Spu-d_J zjN=dv#}P$8M-PrOL=$>W!%2q2jXGU%9CKY3D~=QBm$)I0I69jf~l)cX_%us+#4_9S2^Co z+jJPOq7*^bn^+7fPRN>ucNj+Ym8gH@)YgVD6ne%j1=f&ZIKGRAhU*Lii+kKs=eEGq zFhjI+-SqOyQ~ItB+0?-Mo4wu~e{5-XGw$hFkO!cJ6X4;zQX= zt$SXxc!Ju-F^`WqKEbCHjZUC4q}H6!pOw9Q?@JtcDestdw`!JLnS{mh8H#kj%ch%A z@kk-0^ww3M@z}HY$WeH7z@D(9IxR_ za-xQjWM4}SqshM38uXtP{}}zARM?1WIRXS(w`@P!Qj{i&PQ;wkw;wZxl{>H#q0Hb>+v{o zP7)Kt%eWjc8fp%-662Z2b*h+Jysv1u?-0;1yb=o5o57!lf~P{kqs`ziLc!Ca;E`tV zm!aTSF%y7i$y@IA5%`oG8+eW3cg$|!%?SQPs+sVsErfk_!grAlAsmz=Ae;{fuQd~X z8%p>d76QWW$XjZ_@X4|a^AFKKzJZ&J=;kvMPw>&$6PRD4b>cBC)4%RF|NhNnn5YUf zK+=)|kK+M7k4HF)A4sM@k|ZBcxSv$`q#vR#4+G02V0!5o!3xPYLa0uX@Fa1TgLM5p UTgkAZ4z-HAN_z4>911M&EmmH+?% literal 2595 zc-oy+-%}e^6#i~PvJftm(g=hijY!-4fUfm-rB*B08cfsLRBDUAmSiOtk`3-|n6_`e z`PMfbeb5(2JL-%$W7Vn2xw(+LLN6eU=PsRYMoUfCTDQ z!&=raFRhp*S3{IxbQfI<#n5FLHIrd5--Z@lTUg68483L3DcNGp6?KbN!g5@@Q8O*q zp->*6;fkuB7miErJ+?_P?2<{JqwA(suGNn?G=l#2P&-Ea9GG zSWo>A-0pN9Z701zC7P|5%^om3#&HM(F@!P9aTp^E;Z%A-!zja%b~Vo1wsBjQB!&cr zCGK&K7<#33jDvgD6C4`4rS&97k7pg{=<}?T9R28KIFuKbS!mRjO#7O#R8@_tmyGIy zVGFtTH@jqM8P4P%Q9M-Uuu(2EBvbia@La3yRE=KfIIV%Y*uS&?98-9jN|efXYH%if zlOfg?57lGeAf%aP(=8}j##8AaVaCW|VM|v%YT>D^pX|BqqUE%4wJpn&sq|ug?{V1j zoRMk1%yAB{P;q6!RI76u&NECr953Os9CLV`l5y)w5e%u+VnA^M_B321F&yZiUdp-c zlbH<6aa(~kyvcBM9}f+e7{(VL(xtu~f$8Q7(9RXZEmdaH`!dO5y~S}AMTTzSnzrG} zRt{~oUP&zH@00i2xUPZ5a&Y%oj(2cF-f8A7w^KZRZDW|nBFDRUkD^fq>V$MhrqX+z zUe5am93M(~N6n8LM%9srSmG#wMn;Zg^{o~;^=V>%j0>*)heKQ(X1{3A(sPMDquT}mN&G0{I#NM1|o zO_!H?bN}7v@Au31z<|6IX)W)q!x*IBBeeR4_@eZFK9g-Co_Tb!nj+px9Pz78SZ^-j) z#p8H}&Oq(MbHwg3>S_%{h%vd*qKc}`JBo&T4n7SHQ6Tt4C-{><@QZ=q$xiU6f#5TN z;E7J~-9Ye5nDN0E$yfqxJ6_$yYa#rJ3mY9J{Tw6sY#V8!MfwJE0i(tIcB*F^eNAZY=YebT$+DYc+`gjX0YeTUJhOfDTrZ;Gt zX70;>|7Pt_<0LWQTMBuPg!Mg!@dL^AN0R0}64g&Ce8vmWl8H|8{fG__!*ML5LQKPi W6(pT7*(-{Bm82~bkzJ^f^zk3d9Zwkm diff --git a/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer.class b/libjava/classpath/lib/gnu/javax/sound/midi/dssi/DSSISynthesizer.class index 0e098ae2d53855fb3def973f6cd672eddc3eb68b..4ad4e0b239e1c9f6d5cf899b98a3c1871e89208b 100644 GIT binary patch literal 6612 zc-o~`349dg75{&eO?I;xAck-RK?23Hy8%~FQ3xVO5SAtZ4Ms!S%4Bzv3~Xl7nMs;R zPfHKmqP=Xb)>>0;vc&H1H~W3_zW3hu zzW4s`eQzE+b^mby%W&EcNg&*z_e6Ioy-HuyGJ5nxv`b59(S&7b(YmIlSW~}lcdC|l zoof2w6DViaXj0KTqFdW`sd3wn5`npS3bNz`0+!LK=!v8%AhrmUjK26Zz1U2c4BRMc+;ArR%u&yVYSt+y9ZWWo8)If_j1W zIA36TCg$r*Q|afx2N6Y>`7V$#71MZjk&Gb9g18tf{kTNn{E5SyIRYKNS4*g-j8)(m zCz7c!%n0S5E4+pGx>SZA0p9B}8EdhQ97*0~wVR!EaoxVfW!@m86ahar680tsy)2&u zQHM?J#mxfI(3wNHHpU*OM85b{qCS9n3Zzc33!qV;ETLL)Q|q=hLl0mZ;iOm96NVYU zmE^i!)wF0Kh#0oBu~!N7PR7`Lf4@3PxS1V)wTuc(FGCAj{n$Y<8e2SMydG~LOe%>) zPORN(SsUIFBrVsOQ_ki|Zd2@dC-0%ksKx@Gb;wxA zvo>h#z+DU^PRJm3BFU640ejLe9j8Lpdt2n`P>!j=F6$Pk_9zLN!`5=@Ppj8-wXvtG zO*OYGZG3@L)EjXn*{qlvzo&>kyHlgGUo(jV5#%g`@yIGYDqyjuC)7T=y)=4aZbfWR z`nU*pcN%)XQ-z2gBznDKt9sleQI3=mX+!$zS`Z2syu3K=n++-=O*UOo;|gW5kWi&& zrDM?4)7@>Dwn`A3ADSpuVFGZemAS^|PQ*-xB@HE!iAmv@5!P?O2mE-yz}XWp%J?Am z3CMKrtUL9bPD^JNvZZb{U^$S}=2`a`Jvg#%r*M$Xb@;=S}E$!fUr{#_aKopeCY6&kg4^Q|(f^ zvniKO9N+@cr&Me=4Js~@O2tq{S_Sc<37sp{8br)IKo$w+DE6Z42AOxw;x9-tm6Z+3`4kI z#s~)749+?WZ+%S0ah#xtcPdt+vkR4n9ejkZ%J>?`-N)!;!Z&0*golaMHk{r>AQWo# zxJg>QjC_<5r?mh&%Cu}h7il(mt02eS&9F3##RFyee&tqY_BV*Jgm>ZIcWvS$gsbgD0@?lPkPZHT@B5;gp#Qk`Q zOe+KqKVI>=z%yI~9_GUWigyt`#V7&zYXtmL^H80r>A)s*GRa!XhkuL&nP~MH?AtFDtVan(&7kq zwnW@XTgxazVsz3zgwCpxA?!W^eQ&X-DtYAeu|tlh-bDXx!niMBn5E`jkifWOz|y(icRQ4KgGTqt5Hv@CB%6h z_P8F$5*k@jDjG&uy>AyHb)XXp}sUTI)#8bXU`Em9Q7@c6NIY-kZ|V4<9)d zsHr)E_c2WNW6B6_Y^nIr5I%B(h&MMdR+b#WC+YdrQQYCnY&Me)1gQ>X(nidXHersm z8DS~rY+miEO>bU-`i%*NlrCopiiIIVWk#I*CXt6Def^cjG`x z#agE*czL5W%b;v;eBRN)voFw$4f-PXd4#k%H!y9UA-#t%>I%P1TQQ<{rt-X=Gj$jT z1sV=u`I2EA5_k|pjZ23yEU?N)se1qwHC4VD#mn7frd*s+T;)4{=joHg{(!)(rysAW z8ODPG$8f_izAll1N7$|+$F2xv3?vN!X%{M_-4u;3%$Ia5mJBSFy0MbRI-)m7W>&`S zOxYg5HTb4eB`eT~$M86vc0N_HCkQS@bfS6q79J&_L@0W0?tMEI6j$;)Y02+8Zv0-_ z6XSz>k0-dle+J;*TL9co;s=FLwQn3$jjH$|epC=uH;;oVR|n62jGs8}_$i)BX}in` zn1?}kWGTxxh-ah9eukfWK=i^~_wM(E=r1UQ5`IZ@AHDr5&c{4-D0_<8oUhdC1d<^2B} k|8Z(ZF;xPA|I)mU#^>lcNze229;5LE8egQEb_%8c1Lyr>iU0rr literal 6391 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 Dr+H(J diff --git a/libjava/classpath/lib/gnu/xml/transform/SAXSerializer.class b/libjava/classpath/lib/gnu/xml/transform/SAXSerializer.class index b5719ac931593757fd41fa267c0a28d674558dd1..5852448de9d7c77f7458baa5cf197a343fe3637f 100644 GIT binary patch delta 1651 zc-l==ZERCz6n>uDcKx_-HyB&DJ7Lp^FuIN*7=93EvTSIGqD1xs5ktmSN0qfpSK@|0 znuz!d6O$VgqbP!o2`Y%d@S*~WjyXUl0wM_VB@RIZ1o=?F^L87OCVfwz=Q+C`=?9D_Wc8RkYN#R!py&F}bxq+MJ3d z;wGNKI|}cj-M;Ldkkz5^9#-1pe38fASNH%Q5@usG^=P6YTHDqfC0wOrrt6$F3Lha( z_=TO8j6NM}4S@Jq!9tOa)+^kPN)w&<#EXqYk$uE08mZu*lE`gI)g=egrq(q#$Ks7z z`KiKZ_}o6_YYcBu*ou`zQ0yO!C0kO}b7S)wwDFe;Z{jU2|4QL&blD615BoaNt?&(c z>|Oqfik%9zs0<*2Zxy~nul$8nqIzy!vMQOZYa`sHW1g(m2D=r0z#h9SVEOl9zZX9e z#r869aa!RgC?b$4v%03Lw#vjl98~yO!@g*|;TCvU;TP;7y!DBurf58+eUB;})52gT zza~*Xe~>w$@T+D_u^7a?_-&v+&rPVWXh<|w*v~4JHgOWC6n@v2tXnW`{+xNS`Y8<> zKcn!+AU?gVB^7Pb_&)rpa1LEkVgG|`Yqa=+!e40b7f+6-VyRfPMT;*f{EZ&LGvW-> zrtvEZSJ5+CS}R5V5C5a^uP!}Hm#&>VaYNyzy~G^u>m(Ho^sL)z7W>n)VZbGWI3m0r zPn9`%&5&NUO^s}ammTm&94w&>4@8zP-vK#+9mvK`ge1DNKN$rm1TxVpm?(|UMh;%U z!i-ubK+dHSxrKQfK?y8)w4YH>5|)Q9CpKiBzJi$Kk#m*(ME;cYYWd|2TV5-x6Kf~> z@_nx(f8gi3h&~-`a6#lr5&GqvFJ~ZPWm$eJ5O%Q1qsh$zx-EAX%&_H-ly~Bb0fmEY zZip!#5;F(e4Gfs?=-_>lm|jG=w_TIWh-JDgbF+i*-RNMEPy>uA??Q38gS|w=QZ7sN zYXmt!bl}|WULa|p;F{Yic5qxfE)|P6%C_Rq1lL)Hn;c7WJYB4$n^Ty@N9gC{3~(k*&SsE}%wZFUq}j||rkKYC%;!Re zxR?c8!a}yw;%XLgJ%@7(N3fg4>}3h}3wDfmv5$B2H1FYcjxxYfL$S;l%7_u-SfiNZ zGAqz0!w;ima0QGKy0BOVT}N(uz+E0rtR-b%>pN}?ba$onIkIT9^IltX00vbh+uI8>q>wxgQ4cBwVO8Ya%e*o`5~ M6DAL&Zjr&ze-y5g*8l(j delta 1499 zc-l==S!`8R6kY4S`QGz7(bx7cv_>Il`yL1?A81Vobs!QY(hoy0M(MNG(3Z51#Nx;M zK>jc>xiK+{A_x{y5QG*lYC$WtfGAUCkQob=3KT&=gyKH0W%#*gpS9NBcb#FM{_#h~ z+uQm#wgDK&g0=PwA-6hI&yU@Gp_1TIg-@`|y&iff_^CoOR=AIZ<5O2Ee2y;&r#hK> zw!SJ^*)%6f`0jsTx`WrTTH#C75fNdhH6&lHdBX;=RzYK^iPkARhH?ij*bqXiyDD75 zuiYJC9d5x!g>Ue!doEmE+NQ7xD~PC6d9tRVF*W(Mn%Pw*|9gc+_|W9HEBuHpZaVUe z zSonR!2B%-e&FEph4_IJQ3)&6**6`KbY9)9pc zit;Hb=ApyFVDW9ud{`3GvanYCJkg13$ETe(4?F#6=Fqatk`1F09VkwC*h|E<@@X}o z5##`+Mf&arn{iy!hwmgu6FTbCQDF}mwmt6QDDO60ahGEcCrrh~QsRTM&FG#O)lm

1+>Y{V+tI>o1I_FIq_Gd=Hl`yp_jTUMzRX%`S2IucI0ChNsMjS%= zO&rDo9L3u>hIge+mf{3f;-owd-PnNBXh)B9>>2DtucV%pjysQ2=#x8rLGJHGxkH!e z$7R~M!U9}n39hpY{TxGZJS~>f$0-bOD#Lu95ze5^m#A3HEY>nR%{k0vibFV$`JB%f z7qWnhSjgop;%aKH=P+*KaCUM8ce0rK1v|le*u#6-%aOdnQ5HDbQY^J{S!NY5VHI;M z3S{j)C^Yw2zC|$GQbG$0&Ape%C$=ql?Ia8^2%oHa9796;IRga@xgABLePKr2zM^5} zHXS&UH%6R0(ro3BXGWqZ=gC75WtK$qkz}^CRTdXwCUYdp=5kDCuKTneq4T8j5OyMm NLxjl(nQt61_CL>mblLy_ diff --git a/libjava/classpath/lib/java/awt/geom/Area$AreaIterator$IteratorSegment.class b/libjava/classpath/lib/java/awt/geom/Area$AreaIterator$IteratorSegment.class index fc1e1f6c58bfa2ea902cec513f3cc5ebebbb1223..e92c06a6b0a2c99760df028f7ae6a9d88d91f035 100644 GIT binary patch delta 22 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 J$=0sW(0{A!YkU9z diff --git a/libjava/classpath/lib/java/awt/geom/Area$QuadSegment.class b/libjava/classpath/lib/java/awt/geom/Area$QuadSegment.class index dd5cd3dcd33b565d7c3ab5496f7e0989e8b14b11..80f2414fe7f75211c5ed2fd7c9e570151ca8de2a 100644 GIT binary patch delta 636 zc-jq-OGwmV6vfYnR5Rx~IDeZg4Rpp)M{8!9L@7th2a1+042{~1rP)X;GbKt%Nh;Dx z8vkIcOwmQ6K`=r^W)EsnS`j@gvUDh+MT;J^O!{{BF7ElAbI(LzB5-RX4G&h)4Kf28 zmD-CUEJhwnQOYt@vm6IlfksxMjaB9y zSu|>}hI?UUEwWjM0@j*0;_v!GTBjZc4)N~rnYSO%56sRflvC&{m>rdW?gEL6w1D*Y0G%vAEg`Pq997&voi*q{k z3vA;{l<^fR`5L?VR)>DCh3C=359sAbMEFU&U(k@xnBpStaS4wY!#jS(0>7y^F00jC zQg(hfm)FkOe(D;3!N%W6Qfiok`Ax9kuRAjmMm0@2m2)(hb0FsvI(8y#h~~w hB7RIt0Jmi;rX|;$Pm0+Jw27crDTGIg%%|(a{{gGfjxYcK delta 636 zc-jq-Z%oW_9LL|k8C~yBr+zv8o!pfz=8miGROcwh>h3a4g(qc~jhR139S@kI2Nd~J zKNE{&>w(sVoXy|aG@dA)nB`BjOw7Lw<6(TCeLkP<{eFGkpHH8&&v`wax*OA(12PvW z%tJO^hMm2!Ud-b%qLKZ`?b2r?qLj~(m#W418ukr{Z%)01F zbDP$9P)QmTx>2DIDfD55Zc^wY@bV~Du^DA-K_!o)hOG$k1orV18h9G5Y)1zTbn^^) z*?}m};StYch@E)O3m9h?zVQQLN-!lyD4wzE`0?DB}q<@grLJ32pqWw*R6aUvZP)agURD$RBvYpBUvYZ5n@T zGdQUw@UJm3YuG%c-uMq@0TM+s9$4BvB8ZVVHJS;F#3M~~*d!SXBn1vhg;UioNkf68 z!y|K0EE({L73Go{JvQ5(bPaUmdXY>*|`EcpmY0S<@< lXJsiaix&}Dj$2ZM`%-L-B#oO()Dor2#fNP18;_H>{0G#wk_G?( diff --git a/libjava/classpath/lib/java/awt/geom/Area$Segment.class b/libjava/classpath/lib/java/awt/geom/Area$Segment.class index 8bf86731618b762ae1b9f2eb1eec8336166c3e89..b9d4cf283f0300f45a30ce7fb6afc6c96c756287 100644 GIT binary patch delta 1974 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 diff --git a/libjava/classpath/lib/java/awt/geom/Area.class b/libjava/classpath/lib/java/awt/geom/Area.class index 33273fe49ba95396792d10986f2c95d2d262a3a2..e6f9f59432d187842a8b8bf8e04a348bd5381e29 100644 GIT binary patch literal 24352 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 literal 23671 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 bh+83*<*LAouvv_ye&4_?T*3peo6G+THVUxk diff --git a/libjava/classpath/lib/java/beans/XMLDecoder.class b/libjava/classpath/lib/java/beans/XMLDecoder.class index 813af311c12f6e64d308576314cc80acbf11f7d0..83afdd9ea7f6ca83e996c749cb445cf872ae4022 100644 GIT binary patch literal 2957 zc-pO2-&Yh>9RJ*9cV}4!6i^W=8#Hqn#1%D-Fbr1+bX`ag#Vi|kFEF&s*vzcpTlHS= zb^7_#OAp!!D6M=d&gshKDd%xe$=kxt_cYnTr=LZ12 zSXK~Y*tuZbFtRh;u-xqB^Z7HpXqUL7AkMH|UX=}NE;}}}z>A)OBtu*Ebg<&txw7qY zW2Vd*684hC9fp>Ctz$n!GhZ(9>z-*_dDHc{G~APqkPp?~lT(9fU9Wf(p2LkrlIokA zc6PLSOjb>%>+hwO5(B$JuEnz9x_R3u38uD)q+IoaoKvR99mBK9Xoqi9@yv2|G&m)T zZnJoo$O)J8s#a& zF~#TLFz(HpZWv2#$w+C;w1kGIg$9jb)>)xNvWGB< zfa{PIT!$IzGF?;k#C=3X15}~nn2P6coPu<@H?+B{J2U^5PXYJ5ifz~~b}y(AA3 zYgEdc`%=YQpe9R=7A7VK3pr})uKZ)ViYMI-+jK)^BQI{s;!A-^dcv+aMLukbCw5yT z7~zOcYJxiYOCX7um{a=djEQNGD?JEurRkI_O|)F8XJ{2~MJsmD|DE*d6yd~ZRrGGQ zhF!O%VY@UF$L|oqyXc_ZF5e7K;7LI4o+271!FC5=XAvhjAfo0zQ{) zy6+vbHHBf`s{rbPKDiBG7dt*eyTu#=97w zZn?0A$$NBgX&rm?yO^F9RzfZPouGofx{B9Va7kEv3xnZ9;a8Y$nOlQ-&p%yYsHz*L z`2hYR&cCUE_pzO*J6HmpOu=53qTdts^b;YCL#zQun2MuxcAPb$kM2*hW{j{_TwraH z=&pv*(HC=&ngX%OcI#e;@)Z{IqOC@%ZPX%KmF=S+y8G$d_W&AMCNh4}7Vejm%;3Tc hum=L{q`>T}89vra2|Ni^bd5Hk{$p6 literal 2926 zc-pO2&36-36#u<6&7|qHK*2(*)&UXHDJ6U(Qb7o<6hn%%v=mXCCa>+(bOvW8eC%|u ze}LcaT(|)bZACn?@xVFiapBgze}b<3xc6n4Ow)pRj*Ira+;{Kq{_bb;!(ZQg2Vgg@ zXh;Y=F=t(|a#PZB{M`A|g%h&mmZhg5DX>;ORV-&FH!?LROMyVMd)1MiKu4kR?XbW) zd95Tb2e#`JY(J1nv8NEjA8dRlqgLCwTn$D8Pg?WDrlxMYx#7B)wAyXIcF$K_UzP>L z1u`vFEZ;A+{hfV==b={SjVe2&o+mXfU{FL;@tf`9R6uKp=GH!V`e-4GoVAl4dSQ@KB zOcS=l9G+$lJpv~mm&2pW&^w-ifh`&~FRS|4ETNTkJd3RYZKbN`NhhcYDV5pYLZj+o zhS{cLJF=9g85!hVCy>{Ie7sOy%M9bC;>b*ntWV(5{}b6mJaNEH=x1L$1)8$G<1OTS zmyQ->n8h9)d$Es#^kp!(va2^||1F;kcR)uQ+WGdpj%K8&6Dtu!qEw-ADselr#)~>y zp=WRu$27bouzr=`bsWY{4f*)%NaUQz&a6t-c#!Xhv1R`+>(G!UhJ-OvoAKoZj;1`r zg?_LPG7*}u;j}=uZg9-=tn0&0Sza5d1|!qQ-KtaeBXtcU#H>DyMR&AXnjNgjd1|pp zD~(qvd3nom+`wSJhUHv0T;<$1`i=T%7*{Rduqv!`-B4LA@64cxQ7-WqHDfjw3#HR` zX2L3s>sW)e8qO2@8K;_yrK()R&Yh8-uaZ@gXDrW`UIr7mz{sx&lpoco|FJC}GWOi9 z6L_78z9G>0pf1a|SS#Mdlm?47%gR?BCD6=jvzA|^c~mWbA&qGP%Dge}dNRr?+1eG} zM#i+~&KtatVtJ;d7BI@bY#nnLrj_LoU<)dsn$iZ}-jKr+a@wj^R`#V17niBuhKr+P z$BOwuf!@Mnn(|8bqc&Yu+1SQSJMwC%k{NZYUP%twykghHf?-2!rY2~jZ^RT5Jf(C? z@GPj4)`2={Hq}Y=R4aa8oI6RB9}KhoIlZCc1Uj z)X;@)K;52HPz=@?f}KKAkxH9=I|%KmMzr_H>V1V~)bt{>bcn{cW)&3U_Jp`|BumoS zPPqMF<0n`^_B-IM~SHOY(G!3b06cx3K|t$mh3;!@e3)#GyOl z&>eB;#v#RlZ!Zu+lHO^1hHNgWtN>l+Eew2sz&|$Cr`% zoN?>OTfDh%NvC diff --git a/libjava/classpath/lib/java/beans/XMLEncoder.class b/libjava/classpath/lib/java/beans/XMLEncoder.class index af6b30fdd6b4165fc58a2134b7e928843ce43275..7a42958082a86aeccaaac5f23121b1fc4517606a 100644 GIT binary patch literal 3474 zc-n;O5sCs<5Kyq7e{>kk3=}al^g6Tx)`1o}IHU51qhn{B(HX~a#=#l=!(jxU@7ue} zB{}hCZui^odw)Lf^S-+mKRoj~fKTCB19bxN1I~<-7;_yzpSYth)$6CT<8IDCM4+ka zsIspMw5a_l$Dc@a6@qN{R5tHAV^gkxmObRVIclcnMFz$WxanZ4K!bZY?M???)~DAh zf!^{qWn%fX-gp#})7GI1G}8(1xH<^PQ! zh8DC+11qHJCrm7ZDbSeWQGX#b=H_;X&@`p8X=iH4$$9d*v>6E|y*vR;)hq&&tIP6u zRqY%IcUnR(Be>ecRWb!_|5PDADRizK!#!&ZF3z&2w3adIZM;|8Ko;ok1a97!s$x~(P!B?bar zCT>DE8KDxprfq3nHB%MnHE}b(D6mYS9v%?FS_XzBG&@Y}#H|7*9d+d<3K`cA@=~FF zbg7DgK7kdBw_`|Qz{G91Jw&*B%E{A2^MY!qO%>swiQV`T5%KanGMPf4*m%#hE9CiX2<)TjJvqtWTod%sDh8mez;R0StIYI8l$zqF>n`STog|X zd$G@igE1oPXZQ} zefUNU56Y?VP1e4atUTT!r5~1U@W}rl{)iOYBQK-!@~DZ&Bw~hp*i9E?VIuh;6I90D z;&{R&1}P$EcQ5nGhV>qh?;bgXpEhA28g|1#_(F;eW(&Erd$T8}ZsYuj-6&n)N-EX! zuOY%WBXuEv4Tz~b2Rg5H@}0nYlyV&Qyk5?yA!^j|zREt0CcFL=;`Ujz40oJ{bqZ_d zl-^oio0R1)UT>h?Zp6`pPfEQ|8&_bR^0kVwtfy@u$9c)ePRa=0SK6;&&3QD+TM-*< zQNzP6jD9EMycNypQy$Dvx8y;{mqN+z7UhQ-g$A#kw-r-S-A-G(s%%6nHu!!BZPd*W zGomDH+KB%MkvVCrqlgavJNrbxNJhB&bpI?aPil4%TP*EWB*X;U_}{c+KMuV zWW?^YB1P<<#p+~(%B4Z&62f;trPMQvR^IxXGS9&j+&cyzk5cL}Jc-BgLp(u0$8ZWy;SD^EbG)C&v-mAfF5v|JjOQ59 z^LQV#_y8wG9eyI}F(;Pc6|ojYu^z9AcAQbHI3oK(*k$f=6`(*~#6=u4%%Bb}q8W#{ zsz<9>!HA>e=mu)tL(XW7`)%5YaNxHT*P-I zg$zX@V@@DKa~|D?5lsk+`te4*@y zGwC9}OXjeyWKCGtHPk(#>beQfsLDm?^$Arujo)P>s&YC#UCrIcxq7)&IfHiifmE76 zd0LQ@ro$d)$s+sY_zY|K&>oxD8!xbTI7^=l&&PQ_Kcre|7Wg-fen8{@VNf4p9p{uS zMAc~RsHD+>@2TM}2tql4?Ua#Hy4}H!STq2I22JQyw)BcEy<+PJ*j%!eD2-E%DLnPl UiYZ-gidfYg)hcuJxRQG2zeQ&dTmS$7 literal 3443 zc-nty}*dwP>S*;H=K%^T1J8Y-@e z=K_)3;jCO6lIk|?WXIe4M-RHGphKX}old!vftSnDaD_lm>6kJxKjmb5vg2OX6}T!n zo-MRj_;Eu&?E_^Ys$ArxQm*fJ=L*?C`WCwc^qak`7jz0(&7mVN*WOh$dhYLTrE%P59htW?U|m;6C{OwQ*))er5l1G6>SsOp*e;vxZXh9atggsr({b=jqzZ6-b{g`*T3a?%AxEbws?+i@eccvxmY((?mXG3bhtv6ABz z5*=&s33M1p2we7IawcxZEkvQry}^k*Nh+|hxhe%E1_HO5xD7kV2$k5i&8zdOnyNsz ziBFbU0HCl(#wvkf)C4n*e8&vlJ{zjk!s)=xR)`mh$n^-e8$9Qv7ZQg{+_&-@d9tk zRjsQ+9W{}X_(%N;s<|c(V4NVcce9G;1TvYYh0JC!@+8b~jz zM3{*bWMkyiEOE1A2JT}Ws<4cW@3NCtG=4=V(osqZ~gBfMr!$aX#@K?vzQsZe{ zWyMFTO6S)i7)<%12*5)ozJLc~cvwz_qpW>3S$TcC zlzvRM!Q=mf`1_>T-SROkA5WV2ibTwCr`=RR7Dn@fOi&(sE8_{17@&xp-QCP97uLI9 zetYB)e%3?;de{y9;Rh);kSpXuR~~~W{PML9bwZ(pk*xJo28YP|2Phk5d_Bz0=k7hSTI$Lc=PU|2C{EIX?9}r`?tQVu zMee`UtGLwHwurS$)av8SBa(cIQ<2*3`Yi6UB5~cew74E}ifoKYrol89Y4PMt@IOkp&!+M4rc&C4~${A!9j(N*ocy{{+5Q=Eeb7 ze7?;*f5e=BOm6&y+*st@JLJ-NqWUwk=jY_bFK`pyMJFqo#IN}&{0-9hE%Ez3tNt!4 z{s&tA6D|K4r|=iN$!ed)-)Z$9_$mIW>UuBnC7R`#bRJ(Nb68ihCamkF)SXs!-Adlb z%4zia4OO`aI>W?j?o_dI2JP_Qqv8beX+ch!R(qHw)Aq~p8P@R8y*8hn zi|ifF(yxd2W4vD)QcY@1|BK`2-!%R{&;G;F`2k_LP%&Ct%W1SSKwXWzr^^9!QbtPY zb}Kt##Q-GnBSNdNrI&5#Wn14Q1fi|=;y8^kg=bzVo04J>(TX`5DbLa8l+^S81yeu< AMgRZ+ diff --git a/libjava/classpath/lib/java/io/Closeable.class b/libjava/classpath/lib/java/io/Closeable.class index e47f5e4dbbb91ecf57b25003a0e66f1adb12e5e2..68ec82094ecebda2f8cc580073db4b6868f09591 100644 GIT binary patch delta 92 zc-q^@c!81Y)W2Q(7#J7~8Tcl0>B_P*urV@-XC;;;>gOcprRzJEmgGC<B=!OuqNl^7pF2ZFl%UrF*0zuRwSnulw{`T6|*yN iPAsxk1gd3VWC5yUU}IopUgOcprRzJEmgGC<& gB5Vvy48mYBQ3f$IRpJa142&WOAt06nvY8m90C7eZB>(^b delta 178 zc-p(iyq}rt)W2Q(7#J7~86+oixlPPfWaOUMAIc~+@o8E;BLgc?hMk3xft`Vafsug| z$YTN0TtE>XEF!!ZB7A5f{0st65jF-U20^fxFoOu1Dp3Y8kcbdW2#CdjY$gT?0GNXf AB>(^b diff --git a/libjava/classpath/lib/java/io/ObjectInputStream$1.class b/libjava/classpath/lib/java/io/ObjectInputStream$1.class index ebb9450e0eb948b53eddf2f9efbbba5b18e9072d..cd95577b555fbadfab4e255cdaf60613435c5d5d 100644 GIT binary patch delta 47 zc-m{=Y~b9mkC}1v<6w`hNX{JMy9atOy DNJ0#f delta 47 zc-m{=Y~b9mkC}1P7=_O#yf5j@Z5lt@!_q9|I`BC4}`xaU3Rdu}8Y360gd%oe-ORd2T0 zU9OXbJCG^Ouw*Y*$vzayeiTU?!qSela?tj>`>hT(4zqCt9_h5>?jiqCCf!VWnDil6 z`mtJ$bJK6{vQAh7yq@Ou46kSHFV>L%0+WkOB1|r`A7wwrew6)yJ-+-($yGM4u`$fX zbv6=g+`u}rRz}c3Zk16qOCs6l$u$kPkR`WSy#ue@g-<3>D)&%NZjebdk=x}y4v?)f zg-)_d9^e!?AP*5GV=|4nOxVtfnUcqpKcW07UwlS+it-nfrzoGLJVp6S%2UbbUY}`v zP5C^lZz*4(+@bsfnh-TuZW?@`im{vDt)WRIU=b67#4;D2aOX^3um!dxu z{naw#(sGlh6=tOdO(_}FO0!-=W|M|Z6S-5XOtV&-Jz8U0wZOD#k!ja}>Cs}-$NeDp jm$-{@KT3{qKgHc6?q88}+`r*|f%~-9p#Xs0l0W$$(D0x? delta 690 zc-jq)TS${}7{;G}^uDFrG!<>jEO1dcb?%851RW?ZBAb&4D@Me} znm8e%12cn+NvzBc7gEGZx)@6NnOPDPMOSqb(sT9Wd*0{y|Gq>Z5f~0R%rB zIvp1)b|Fvpz$NV{m;I=aFjmV!)XQN6<*4Ox_PCC-agvQwD3sGy${F{ZWpa*57n2A| zC5pAu!%fuM>$>3T<@GYJS9pzC-&}Ez#U#$;I+H&3``J&j-_O3+$`stFy2-{ZHg25fsTIxFrLhJVq0_NuHpU+$p0tKz7Je zoFO}9487zfd4?o8AkUGKj5V`tylR~CSCqfzi*G2;QvR0mEamSg&r&`?c{ZIba+{VM z<&&&VQT~B)oAMdTZOT7UZc{!>xlQ?J%5BQ$D7Pv9Lb*-(SITV+%CuEq5-a+_m%gJ| zexgi%@x|ZiiIS^}B7gW_f8mq`6f59XgEhJs>$DP^)r+m_LyJ~ppVlC(wKzteP(Qk~ z4p9x@8X4Ch654>IHsTJqDP4jgU5W>qhm7Xqg*q^Len>LtsZ8RNPZVu@xb3`l6dG(rZ?ql5d iaW}yIeR7!lG45V+|DMcoKgs<^?&mdxl>n^p^3nhM%b%VA diff --git a/libjava/classpath/lib/java/io/ObjectInputStream$GetField.class b/libjava/classpath/lib/java/io/ObjectInputStream$GetField.class index 0662f872473b05ebebf325244bf211c733d14c31..eb606bd3a98ead1a890b9bada9d9407b1fdb8f3e 100644 GIT binary patch delta 13 Uc-m{^Xyn+y!p!(@GAr{R02`A8U;qFB delta 13 Uc-m{^Xyn+y!p!)0GAr{R02_`3UjP6A diff --git a/libjava/classpath/lib/java/io/ObjectInputStream$ValidatorAndPriority.class b/libjava/classpath/lib/java/io/ObjectInputStream$ValidatorAndPriority.class index a95eebd471a32aeff214f4ed39a8d1e57da9f1a8..05d09e224a53185f13b64d8eac44386464b12a51 100644 GIT binary patch delta 35 qc-ou9Hi>OR8WV3Y0}Dqe11Coq10P5Dd9ykO!~; delta 35 qc-ou9Hi>OR8WV320}Dq811Co)10P4&d9yE(fXr diff --git a/libjava/classpath/lib/java/io/ObjectInputStream.class b/libjava/classpath/lib/java/io/ObjectInputStream.class index dcc37dda2b4d113fd69297dfe73377d8a0e33819..911a87fefc217fcaf6089c2427b6fe8ae97f6635 100644 GIT binary patch delta 11448 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

7~Fx>VTM%cbZr|oBq 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 diff --git a/libjava/classpath/lib/java/io/ObjectOutput.class b/libjava/classpath/lib/java/io/ObjectOutput.class index ccc1902d67cfb306f45735521e7ae6bf91a021f5..6a1172773913df05a986b151eecd6e76cdcb80d3 100644 GIT binary patch delta 210 zc-s5LG?SU@)W2Q(7#J7~8N?@YdDyTsa4<56XC;;;>gOcprRzJEmgGC<LzzP&(V_{@qXW(F9WZ(qySb#Ja gScC^dgcnVOkAWXeM1VmMO+*M)1c-%!Y$gT~0CI~8-v9sr diff --git a/libjava/classpath/lib/java/lang/AssertionError.class b/libjava/classpath/lib/java/lang/AssertionError.class index e81c3c60d33d35b190cde794a1432df925752b8a..c8e7090d43528ae51717a503bb31f779b0a9ebc5 100644 GIT binary patch delta 232 zc-ni%vyqSM)W2Q(7#J7~8KO6GbuedXY4~I%mL=-vB<7{-2bUCO=A~OBiG*Yn<(DTW z<)m6`hH)`4GlcRma4`fkG6-SnVq{=VPAn}>Wn>V=YQW?P%yx{No6j@PV2T5p!NADC z19XQc&`@R|&90@bvz;MiBaq3&zz-z3fHVWcJO(y~`3wR;mI6c>gCK(t0|S_)!4L*C S1jGtwhybc)WQYXojsgIpurikb delta 38 tc-q^@_l}3_)W2Q(7#J7~8A3O5budr<$85vMvDuns1`~TQP?(7!1ONuL3grL* diff --git a/libjava/classpath/lib/java/lang/AutoCloseable.class b/libjava/classpath/lib/java/lang/AutoCloseable.class new file mode 100644 index 0000000000000000000000000000000000000000..a25ccd62254d254cef54572e31fd8b3c13153549 GIT binary patch literal 187 zc-lMlZ`VEs1_nb09(D#MMh5Y$#Ii*FoW#6zeaF(0eCM3};?%^XoK$uO7DfgEgrt8` zR%&tyBLizPNChJUvxa6EBLkOfMRICENoIatF*^e%BZDwP16&5EDmcHiC^^+FGY6;-o}uy z2FPb(&;pWdKvfJ3zZtZFq!>gULlTh10A?ivS&R&v3@MY(bLcZMvQOd^mrRA4s|hui aQ%m~*10>$p)M<{Apm5(;0-pbOr$CS0U#B delta 143 zc-lKFd|Qa?)W2Q(7#J7~8Im`0$+1ihV^QVeVqj#5=V6Fsh?-o@vXhZ-vnlI-=E+W+ zda(>Y7_@1RQ}XV}T-)Kru}QCLm;B;MCGSz`(eTA#M$j!^EHk WB-y~47{LZGfpG$uOk@xS(@6jdM-@Z> diff --git a/libjava/classpath/lib/java/lang/Byte.class b/libjava/classpath/lib/java/lang/Byte.class index 56635ac580c1dc7bb6b433af9cf680589dd23fee..906aec7d7ccd79d9fca4bf00fba3c9b9d98a3dae 100644 GIT binary patch delta 180 zc-s3cep`a;)W2Q(7#J7~8A>;D-C$8-PtMORNGwWaWMI{Ba?cWHbV|jnJmy42L>h}WMJTt+QASg4aD0Ra@PR) zObj|ek`1Vefw7rE7swWasAI@y;ALO{vkHJLMgd2lU4@f3aEmkMPCmgc!(Rl}UCba1 Grb_@To*_2? delta 114 zc-p%y@mZYf)W2Q(7#J7~845RY-C$7=)$qwmEKAhSNz6;v_fN`7O)jz4^yFe-WXR=V z$YjWxEW>)3QFQYI)+elT0**kDY@n1Z&;U&aCLm;B;MCGSz`(eTA!o7yj|_hvP=tvg KpFtQ*7XScR{~BTd diff --git a/libjava/classpath/lib/java/lang/ClassNotFoundException.class b/libjava/classpath/lib/java/lang/ClassNotFoundException.class index 27239e4835913fcc3a2dba669d75b5eb32ab115d..fd984dc9b55b53483336d4c3627c3e09a3f35ac8 100644 GIT binary patch delta 41 wc-s5NHj#aTshnC?Vp*boPGVlVeo$&!PHJ*VW?8C#L26NANoIcDMh81)06mZoGynhq delta 22 dc-ouD{*P^fDYtM|Vp*boPGVlV{>ETCW&l`(2WJ2P diff --git a/libjava/classpath/lib/java/lang/IllegalAccessException.class b/libjava/classpath/lib/java/lang/IllegalAccessException.class index e5dd5b449a785db8e29ccae7159b2090efb142d1..2091af3e8956ebaae29c25c9a9a66293aa19332d 100644 GIT binary patch delta 41 wc-m`anZYu_R8B1`u`E$PCowNwKPWXVCpEbwvndqT*W$K0xK=D<&q0nrI?;?sjQc`C)Em=A1d-eDmEi z=gz$vJU!ZZ{K~$A0E+SB4(CFfVXuug&I>h#oe+51h2>ZwAY$AWsWw|cZMRLfz2L&L zcuraEPwHJR>_MY|ZEiSH*Ich*uWGkv-m%|>0D?|T#2YRg#32UM)`yzPn*}U+mH8DK z-W1U0&2I{OeF2|_BYj?h&yKeRQdLMx9j4(OHY3r9w>jL@*boUdhi7>s^BW%uH;wT+ zaTNQ_?zju@;{#QujU90mAGt6d%^E%t@bn_R(FNhA*>j@{y?OJZkKAsq_{>~!LLf7* zQq9ziG7TqLSiaXJ{TyG~@rA&kheHcOg>yrZy21*U9;#&tE_{X40@hg#bq)L~*1U?! z{7Ma9E4w2{e5(o^LDlH^N%(g?;H+`Bm2n2WoY^u+egK!zjoJ)uT~J%umnh`k#wf@K zQN(siFAmROAP~1!u_fRz^POOefy@;sH7qUq^Q{KAnz4qpMPJSKYSXs2=xf-Xw#Iba zT8qAxy|r=2-J-8!XI*Pezkn22*$l%aXCqD4Ay?L;ST@83xq7!s2y$S(8t3t6FGv#W z=o9NedqQl7dcxz+dHjD+om@gap7DXFV3W&u_vOZ%=G@Jf}m`%q*hcHh7&CZvoS zy0Krp!TEz+#}wc+tarPOn=23(_;FT*2VpFgJEa$ z1T@)$8+mlglSt(;O`gIK9{Y*2QI{az+9z~L;`pl)$8U-0ul5&!HKuQCt(knS2JA8Y zwWK02C2dct1GhV-@3_7c&f*4n4w>>i{PF_E$ct)r+N#l)Amy)|=gV-&-#OQRu<*;c zS^mlS{tG_&H-^hAxJ_O~2}w*KLKRt2O_~~&UNB%MzX)MC-!i+@ob+)GuOFgPe;0O_ zSg6G6v8=|x{a89f@7{xbhx}PxI8b8q*xZ2*F5mo*dDyg+rHO@4;iE)MzN1)KjvA+eyaCys6Wg?n1ng_ zn?0qD89sxtXRcwt`4?8%GjiK9piw5=lm(pzBaMb2gS_xkHvDu8iYW&{x)r4~6nBvi zlPC|<$&Z;d3}Ff&O2e^;itreXz!DmXr8El5s03>%h;|x{O*9T$s1!S?47;fu-E=1o z(s-Pri8w=5_}NdB@C)6IOH_^D=pF&OS7g&vQApE7knR)JbiasFwU|%SRZm7i+u8V; zq=`8=$Cd>dq8?K)m203_Ou>1cv*8Rj;{scDT*AtDIcn~5{wZ8clw*G4Zgcnx4ntgj Uv2iPk&zSAIc>g^H#YgeOKiPU{!2kdN delta 1537 zc-n*j-`?YGHS9m(dtNq?E|88E4WgoPGo&JIfYfgHRid z3pMs<}a_4NumFlat;Z)4tdG?^RpYC#X$bmO#fqc^mo|s$YXglkjtZabOpRht zK@`W0IDt<^mAoh=ig6<<&?Msvu~W9oQG696Pl~9VWjalT^IRn^1!wV%9$$+o*=9M1 z^AfbRpFhbU*z-x{??6WUtN}ae#BR%-WxHm(w}TpEFOftC zNxV!F8%bglNpvPjxMw6@BMGxL=aHTyRy)J)#?2`&B>fnt*zHXbP3;hpYU*MP>q}Bl zW)xm0{VuB~y+4UfN&I;O-XQk8HKTM-q>XMStiBmrZDF-9(l#r9EA#|MA+w`Mqt(R5 zV5QZ@jv^-J9|rjf7)9z5nlv6X~U){Uf~0Gk^ny8eXV1Yqlfx2s+lN z9}Hq(#FH_Ap+cQmXUgwIwppX;O|T!uSWThU)6S*ooId1Gnzt7jNom7zkwlKDw>zaF z@uJ;7H@Ze09mE)wJvM;PC`pXl3)~d_oT8NbrFx2}S(+Ll5z=rB;f%P=;kHxmw>NXY z|5vV9>&R(UAoCQMxDhH(g^kaFgQvm8P4Mu!DBvoJ_&k(xGw$OS+|RA3;^}ylI}qSb ztm7GYhG${}&q6!TMhDNqMt(bXa5r}GTp2dOrQ@x5z=FdzS2QLvS|r@t1c$|m`C1;zwsV#6f~<#V!zXwb~)~; KE4U@TUi}B+eO46! diff --git a/libjava/classpath/lib/java/lang/LinkageError.class b/libjava/classpath/lib/java/lang/LinkageError.class index b297fe1b51b8857f245436634d97161f6b70137c..f23cc2d3767e88d7a698e919367bbe7cc6927dbc 100644 GIT binary patch delta 215 zc-ni+Je`&6)W2Q(7#J7~85A~hu`@<#Y4~I%mL=-vB<7{-2bUCO=A~OBiG*Yn<(DTW z<)m6`hH)`4Gf43;a4|?QGBD>Br!z9JCMT8_r!q2#V$(61kI|Nqd9n}VggBrU21W)R zptYVrGnj!iyOy@jb_U6fKqeCdKak`C(hLkC3~UUc3<5xw0z?^uAcGJC1DGYvAPzJH R#FAl<1*&FbkOS+M2LRpgC;b2b delta 37 sc-ouJ`k0yP)W2Q(7#J7~8KgFHu`^E2W3*yqn!J*60=ooIl!-wS0NeoyApigX diff --git a/libjava/classpath/lib/java/lang/Long.class b/libjava/classpath/lib/java/lang/Long.class index 7223992a11cd5c1f0730b069727f5aab289dd784..69096d990217b89c85c265f477ae069cc0ad1860 100644 GIT binary patch delta 1378 zc-n?QZwk+qJFIhjan$BDD*w_0@_-j3km6!=^4R1S@G4v^DK& zY7=4BYT?%%wrdGi>E%?9$AHVpaM5883)VbH%R{!|poI5jT=9_OG zxsNXYZn^E$AERRcmg1`+TiR4?ZhY{8t?|}`0%KW2LwUUo3SP3~dAy)Nd6-X|956-X z1=D8J>vr^Eue{S7D;mWKGma}*xH-N(9^MjfX$sf3Boj@ERy#6yQx2L7Eu$E><0LE7 z=Fpn=>^OyO3QSuPEltU08|v}C9UtIBHZ?ZKTVqKDhO+wdIvYO5r)GSjAb$?Kjy>Xy zNe%rBrew?#lTTW{RVt2dweGQ{R)b*RlI&^*8$*1CvF8x$f{O%9ToA;1EMvKVZS03M zEPyWcvLs;D3S+-ww)JoX@wY)WJmSK>l&W3vRjQG-eogDwG)JgIjqivC&F#+AKxfc7 z(77QRbXeM*`&rqqD~@*O0agxlZkQwEXK;x7kt-4iij620O;{qD5fz)}5p0+tScRaVmVKYp*_h`ipt z#?U$hfH@(3Lt}7_58`O!|wc&6*MLH2HhG)lcEsshsO)9D z5vDRyP??&ThxgBbt-OmzX7KJ~JZ(w5>W&PKMYREH!pdN`Bh*&d{n+7I^jxjGVw$Ts zi#%~o#|`Nn_o79|HNlB7yG4}H zAV+)+zxYNDc|18|`Xc)I&dM{Mo)zCih#z1UmtYe=VuAPx`7HazFDMefqDuURYVkX2 z#AV){KXC`syNd+wA)`!tD|03o$AD_?;yZH6TU#`lrIi)KcsF98h|z6$5jn^4?D`Q* zW-AJZaax9b?gf)sL&R9|I4QbituLsYmMy*|%B1Y|MRPSze&eS=1|P|bzQz3D^_Qj! zU?C42I8u0pnDM3AzbWe!3aw=~i5%di+cc zN*>*&c&JV(q}%1RzcMf0@*k-~2y73uz%#3kt(r0XS e#P}EZxr_!pSO524!e^Oo(asn8{Uu!b_xxYtxEYTC delta 1304 zc-n=Odu-EH6vw~6dw%`3{jIE}Tif-qu9;Q$$k-!W%a#?>Aes?EqHcFO$TP!xnhm1JMF+6wkpuJq&wTYJ9M<*9S7dU zd%U%|Bh{7cR-l%(l&{wDK0dJGoPvTy_G(t7Hg_BJ4{=_mY)M^*f=?WH4twO7?R%yC z=;QW5Ju?6e#Ko@-s}C1qFcUUDsT;x;_J#~^$nac|-f(JXB4q7xkMxE3w{(aa3r+OFAu@1_ZSafj zh=@mVz34ad9sEQ<6-vx}J6`7Ig}hBS9qOOND~tCE!^-9^Mm@=>rx>-HQBN~!fKhS@ zs%8Q88W%9=jViicxy&a|K}XdV2A@tc=`hGbuKOFtBfC8 z5_RM*Zs&J4>r7Ch&GlrI^K|?nT}Vp1Jb`va=P%6F3vo zJesR&1YwV=jx5I1n5E(|Qm!gOd$5XCH6t+hJS?=>51Z-oqQ6GTN(va3`fh`q5#f4V1!Gdc1iHp3aVH`W~5kIUI iS=?>*&hAR`AIT*-8uTe2%c)?<`Kj6W&roQtpZ^1TQVF2| diff --git a/libjava/classpath/lib/java/lang/NoSuchFieldException.class b/libjava/classpath/lib/java/lang/NoSuchFieldException.class index 4ead8e6eec11589a8b77eb726bd7cb89385074c2..6dbff7efc378b2905aab82d83b162746e07b70aa 100644 GIT binary patch delta 41 wc-s5VJc(t3v7A~~Vp*boPGVlVeo$&!PHJ*VW?8C#L26NANoIcDM!SQI06nY^tpET3 delta 22 dc-ou9@}GHvF}HA5Vp*boPGVlV{>H$Ai~v~@2jBnz diff --git a/libjava/classpath/lib/java/lang/NoSuchMethodException.class b/libjava/classpath/lib/java/lang/NoSuchMethodException.class index 47cacd0af19e9c5b97c24fca5ede6437dce53aa0..b81172dd5a4569aea429d5ab188b0005531c73b5 100644 GIT binary patch delta 41 wc-m`XnaVQ3L{2R$u`E$PCowNwKPWXVCpEbwvn2#fIMwAdd2LH8Q1|lmPI@9xuCxDW z$vfQ`h!gt1w4Xl+y}tC6uubXtd_F(iBhV3{d)IaRKsbRZ?7B>_C5(%=93i=>92IO4 zItue9A-?Ng$rL)!lST?%giJ{}@}z!yDZPrgv?U>1axFFxY{Td1G9J{FPbifB_kayT z?z^@ec*?16%$wRer>*-rx3A59hzP|tqu*{SHP3y}u_E56<_!~!Tj~3v%4rjpsQX-V zZKnvsg+Fl98aGKumEF2$$pfX|pa1K%OB#kec*(qX!YC3*ay9rALnq?g^RoGy=9^Wn z#5GZDp!+G5WcZun3aqhs9lhM8n~GSgo;>?IKRKQqMV}`AbC2 K(h>9F%*+SG*`C}0 literal 0 Hc-jL100001 diff --git a/libjava/classpath/lib/java/lang/Short.class b/libjava/classpath/lib/java/lang/Short.class index 0baf8dc1405c95a4744df46157b87b0034ede5b2..0043f318e021baffcacb61190a346730969a6726 100644 GIT binary patch delta 264 zc-lKCxl)Sj)W2Q(7#J7~8LAg@u`01A=jRqA7Ns&WuxbPcYkG1qFftVKFyt`gGBPk$ z0CDAH4p!sIuB=ZP#W!oS39!{WFfaij0|SrL4u%kEAl}AMum;FyVlV)bY(V`CjIBW9 z85qPM>KKX`co`VLtYRRGk%5z;grO8jD+0xA7??pi7=)w*II090{?`HN3Zb&PhRNt= r_JPgh5rQaZhyWQX;0SbS`Q$ntaUFCw0I?xh1cWQVWF>~ogB~llu>N6E1Lk@HdIW&mFS2m}BC diff --git a/libjava/classpath/lib/java/lang/reflect/Member.class b/libjava/classpath/lib/java/lang/reflect/Member.class index aca4f3daaac2ee61ab9c82d6e98143417055f8a0..083005b1008f2f4c2a1102140f840fdd74fceb96 100644 GIT binary patch delta 100 zc-p(l)Wpnn>ff$?3=9m04B`{HCMj_SXQt;RmXsEyGBSv1X!>L&mL=-vB<7{-JLe=8 u7u#srO`JJXn~{MRsD+7vkA;zepFx0u0Z0on2!Ux~1`(hfBZDYdg%|)=WfPkK delta 57 zc-m`XzRJXP>ff$?3=9m045AacCQUpzO__m(k%5*E({Z@%WtJ?P7u@n46$-;~`EHv|HM3gU=H;e}Aj4$OyU=R7IotKP zS+Y5U+JRw+75YQx{7aTWtGk}nv|NXQPXjEG@?lc$gmU&(92xA;Z2n^5Z zP@xIygpLrx!g^lEkZ+yTp<|d~q+mIGrBy5O#x1{lgLE_PqS>&-z2j7xTb4)ph5whD z#854-XxdgqGN#Ve2DiECQGU3~&r^|L7?U^zv%K1UVVFrIj~3kW);i*9?hbF*W}S!) zCh~bvk?PVEw5Ge(Y*D$X!WSDjX-_msQoKVEHFc7->D{O5F>$7=*v z<;|RJdQ@lZKXB5S4dZpZsp1V1^U#xyi^z}+l)qxuXryzP7bAU(VIuJ~tz=QdW!jk! zMBsvstH{yznDsh$sM~Y>G78UZA}fFv1<(@hP9lF)xQ4f>{6!68{rPjydtMu&JRAkL81t!71vGDB4Z^cjQ#L+mwu{SC3z@*L`%w9#~iDCQVODEc_v?$b@Bb1t=y(RgV0 zXM`h4X!jQkJ;eCNJ|h35(tDUp#rH6kiYR-CrY3@WnEr!u1`wnFr)0Hx!nur5T)`CS zc@jC2;2M%xL@` zI$x$*D&hNGWatz~gQ-6;`FodIP&zkddEF1_lpjTkV4qH&esCzc)HgYeS31cxiW7as zVw62apQyQeAA^Ahu^Cf%NJ+XVJ=lm0-=-1VA%Gg9a4?O!EEA_85>!{Bm=uOdO9&I7 z(jmOsTL+z=K)yd(XqUH`i>v5mFfG|v(v;B#8t zFG$5N$@dkl!`H;>8(hG*w0hs+I__Zw-{UrZz(@E|_7U;9cKR5>`}9|oGhdh3x1Run CY-U&h literal 1809 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 AVgLXD diff --git a/libjava/classpath/lib/java/text/AttributedString$AttributeRange.class b/libjava/classpath/lib/java/text/AttributedString$AttributeRange.class index 53c56927c6db890b1f35a090e783a143c03f30fe..f38e62e285749cf22c0af897e52dc9aa49a6009c 100644 GIT binary patch literal 1023 zc-pN~U2oGc6g_UTrp-bZI$EG?z@URR9i%*OnuLmwA_b5rs*qqvPHT0ULOLZ58t?oe z9x5ar_yPPV#I-j*Ix#dPBH8y`-{b3hkDagIK7Rr50QW4E7`g}i9rvX;lKw*}vp6cG zm<$P|)ArAW=RBPX3nqiB=?VG%v*b+nLi;y>Ys+YHrVJWaVQGQsd@ zF}l+W|8(?VpJ#k5MHbNDa+dw7V%yuLly)ShaT=r(am2s^hKfihCvI8p$9cQYuoj-( z7Ud}K#Az&d8Ty^S5l^)f1lI?=aNK=sw5}xNGw{VBS|3{H5bQm_zwTYhDZ`*pL)Y*+P z)D~Msp9D4NhcIc7(&Sl$N~q9GdP9B7%DS$)Bk~xH8divN%ye;)><2^9T=g2}9M?Wl)WAB;P0f5m^GiD86=i#kRqWw9t$MnW7H;6CKD(u>DruzZ mF*H&Ynb;ug=z0{ZLaY*Q>6&h%O}0*G6L-;tdNv-m;C=^(5(3Zw delta 280 zc-kF~Jx&8L6ofzTZb)JbEaV3Wgg~GGLxU8hi$LNI5kC?QP$O{xxI(liNwGqrK(yf& zTm+c6h2M;4{KoTFpV$2N@5d)_&e6<2%)Z_x+12yoQxiuX@GN^$HUfc`BRxKun$ro? zSTeR5sM9dE9ca=h7Vf^dOh#^4{3I8z3O3)sT*!0F)XnJxR)ni!FC`0AdmclN5`*JL*qFOZ3ilh~@Dw)*1 PDs;fU(5s5$fJ5?sOqCod diff --git a/libjava/classpath/lib/java/text/AttributedString.class b/libjava/classpath/lib/java/text/AttributedString.class index bf878f4fb081f188e3442b8361c89cd9922d0aae..a6e41999fa1da786258647235dafb6908e8aec95 100644 GIT binary patch delta 1208 zc-m!BZERCz6n;+I+ivacTDsd}=gRINk=f2IoBM-k6Bk981A>^a5is6`D-_Gz+FKK1 zj6nQ|zn0|5e80}u8U7kJ3q3J22g!@x7hh#KGf-Yt;uDZKa$rTARz^0i1?5x_Q4>aUZ& zMIN?`7XK^sWZ!Q8diunUFb{M)p69chp|Y6CYL=o0<>*5V`Y{g!Sb*bLij!!-X}rry zBrt>|enbYt_!t+k2_yJ|n`_4vY{ON2#oct^8g}41c5$uW;})ad#(CV~?E9ScfW4!* zSAj=(h{yOHe_#xMk_}@N!VszWo67JHRpVcZ<0&m6&^tt8FtB4?1(zD-QfnxN?{EN4 zG?0sF4sve^^kO#-u~K7DxuGn4JiWs>!l#GdEn{u$Y<#^6g* zSc;W*;na#~Sc(K4T{vx$*~J`X5%r4=N@Vpp7E*%QmCO`#c~<9GD2ea9a!jsT#r!~Y*)u04qW delta 960 zc-lphUrdu{6vlrCS}5gfDM%?*I;y+D!XR{B%q82!vKf{A$+8PY=dfgK13Q9HSaz|g zTb5-Pi*awV#CTyM7e-^^x)~6v1x3_>sEo0p!o)xG-(0dK2D5B&J1u4A%lDn{ecyAQ z=Q+=NhHH0Jdqy7hCxKe-<&q^VHsjgFyLRTpLmQmtaDIdHn8i_!3#%*4R#&ZAV+Fl~ zg1fad8VyEbvG(T1&RCO!ljdW~zx&4!EA{!piE!59 zdq&Kl^`dETy(|~ZA=i`P^AtJwLC9;2yd7+hw7%QqB)P-|}x*T;`^*sbXVV`BcHAs}&noQWk!@M{)vAMp^m|01j^d+F z3lmh4WCa7PWRO+b>T3+Mp0jLbgl0yGGDasC`G|40Yipk|!ROk?E~faJOYByy-CW@S z(;Q-kZ<*y7*EIXOX5Z4&+guHESHnGh?(;i;Fvp*g#RDl}RDwK|3jUHXf6MdyBd_vE z-r`?VSA5_ZQK5ZmeZI0ca=1uR?^-1Eo zlY%&&frxA8IT}}1p23yih5Dj_URDiwZGrC0`b27-V5q*A;b-lBdu3G*r`Lu2_JG&c z!!>s zSDk&CYbNRQd)27x-~4Y>PO4HinftzS&A4gYrAyY%tJ$}pX5NO!$Yp^_#e590IOU_X tQy?7_ON=L^iz@kmr=-htls;YlYdZ6mUOGCISvt01?&yGfmHIB8{{ZG0|H=RW diff --git a/libjava/classpath/lib/java/text/AttributedStringIterator.class b/libjava/classpath/lib/java/text/AttributedStringIterator.class index 9768432c04b9e756c15234843565bfabdee59b9a..6607eb6ddec7aa27a13c167e74f6bb833a2db659 100644 GIT binary patch literal 6136 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 HFEQnRFH>gp delta 2330 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 H81DZ8#>bve delta 5916 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 D5bS7h delta 1434 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 UvZNV3T!J^MJ;PrFj=|sm0~*Rd5C8xG diff --git a/libjava/classpath/lib/java/text/CollationElementIterator.class b/libjava/classpath/lib/java/text/CollationElementIterator.class index 2e5675ee45ad2ba8af3ed3406440c15eae469b00..b98f01988f53e1c7ad917c2e1be08518bff0ae06 100644 GIT binary patch delta 1503 zc-n1Ldr*{B96jgTWnZkYhzsnjh=`(s!l(l?p@T0N+Y!Mxu2#CrCqu2P;G*(}tR8PhaVY!S%^n&vCh%rv#KhnY1wj_l0W#OWxYojc&2J$s$FfS(JKs{Di5g`(u4J--d1_PnW zTwf@xSL!uRJdYO$>ykjQRxg`RBn|KlEcsvAa0i}3gA=Q;Ouka7hl}+2f!biWIH)hs zLt(qjzUagn3?mY!Oe`Mj8(lJcTIu-Gvhvc|mMO)PtawSaTY6buG4$4|+m>uLDz7zP z-jl6kc~y#j4uY+i4E?Dn!ikoL*O^-nQjVG*?a5#bDxN+!3r2>m>{4 z1%lH9HC2JRL49i7B7Ld>h~h3vZMZ6!JG!POP*+m5I6OkVtK|$W6mHgIrynCzINXYZ z>UUe8*aJw8MLUjKaYXg9_x65*V?@mSs+z@N!ZcvuSO*T^Qztgzg!0?_yV`Nei98%L z0UaGOr(Uy9cMxU?d%6{0say8`ysQ!&Nw!8@F=$s+t|PtIMT|FOzIEa|@)E2~fte&_i z>dHN~)O}cPpazW%<_@>{4aB9oW9Af^@?*B*euIfyaraU3%7Qq9QV{R4?!ju6?&|Aq z@pRjZ%Hz=6(CF{P`|z@w>B=-4m1>PEJAQ%)cKcUQ9d{KmPsJwW%SMk$$grD`2Cx97 zDwMD`@*BtDHlM^F^x+;$ai3+>IGHxipqu4Prk|;NhMAnr9L`}r11#iRj^;cTQRg@= z5XM5OSR~Iv*0P#QS;Ghyvyox0lab9_!rffXR@U>V%$(&)Uf?QT=jsS=a1DQz(mPzs zKbfeR*`%d#z1ELP%jO1cq_id6q|M}J^p-1k7>P#eNJk&(87LMRAT-U7?XWkS>gkeFJHUyDf_z+eM(*|I-AR9)p4NWp_#~8L^k01x0 z;1M)quLzCcA$%lMCzgtVD2AaM+9k^_bOkvWDkzT082kXGqCZ-&5AmYV7p=mzW54)L z5~E@uf?a5PXy9WpKo}IlEk)~%)kvGuh6DZ<9GZ~bio-XYsjwE?yj;!+8mn_(G-h$YiS;*~2~U0=|4;_O67hNxRYeCcJI9=r@jN_e(8U z=Z)g)C|+;DwL@Mx-zBa1M($w6mPg92|EElC>oIS_37B~jJ$V}0JcF@3i}5^%89a|! zf~$E6^}LMLyn+q9+PR9PF8znA*oYq_Z}~~#N9A{C@TOYsPEPx&b48p04+K*X zZ#8(*v~ik#=vdxLu|*+7EiJ%1T~LfJ)=WR0aq>saNbjyXS+g_W`@H8o@8vw_-7`43 zJ;&_3-+3CqllZ;O>^BkuR(+tXylrTP;S586dm8g1iw&$J;+OgAe7RM=>dM@r>VQ>g z)tG2NlM|z`p0H&VOM$v*f$q*vtlkntu0%r58HEXk^Zt8J#0^kFwmv9I>yI#Vr(={dK0WHCCV?)kG`44<-6RUp3RlUBkRkmYYrtA)kmAE#_307gd*A^>+N&?uu@* zIhtWZ9H5r#-L5dUToCvJ1wK15;m33xnFNkOa*qP8H`V|ZeNSX<(;ccGy)xdV;5 zDK0US_KgudK=nBL?Sj}xoC24}IF4rB88^Y*N)OG3&bww zZncbikSYUzMy6JzM;gY97ediU2ceW72N4AYo2tYiK@l)iISvc5!BjpR5fq6uH5W(G zm@ZDXnu$;G84OHQ&)}FKJ7%ySZIaM|S?tAeK_;H%b+qGz6ndUl@VP`f@s>0Y#5Ba< zEayH%H}RDGrXiMI`CmRj8JLI;oP61&U07v3&hD-Dfl!axV!@doi-5PLc>*yEKspMMHBv=1Z0ti4FCvGRFk94~$7@(5`oAuCH3#K6yMY!CVJC0tVfR?auqZ0Si=Xs;cly(R ig!>&6?nylw5kWtPSqi^|yc=72yx*M|2Kc;zrW10^X})1R{*vn8-`E9h8g|5 zp0UQp8alBM0cMJ~Y$f<`BkWkML7IbqeePVpZn6M=T_2Ri=SwiEP zY;`kdTX}P;M?%1`blO}|C{5^vQQfu;%gjvc7Wo=P=R?JkX;0H`tUO(^>=ADjxnLM) zC-sX2Yxu^g$~rb#shF+oe6hM}ux3r>I9)OgHw8JH&Il_F_2$jI-7n!yLa;Az{nMfU z?GpHsV>I?mY0{A4M~i|6td!tSB*&tVpehI=#L#L5VHd4Y5J8loHU+ZlTc;rAq74cZ z7j-JAanU9PwJu63sB=+DK|NMTsLSR}dAf|w z>_144ZYMHj*aIV@BNWn{ND8`^u>(7)AqCyoMXH=A(4Es|Cz9EvnkBk0(H-K-Y$B9h zF3vyWDk6!}=><*J63#6aX^b3IUDhvbS6wV(aIspM?KZSDLjZjG;UmZp*S!Ze$#9qh(k^x+=1P{cX63T#Ch;D~iCam4!eal|_JbHsWNaKyR~ za>V)%al|GN=7`N8!V#N7lp{6=nYg!6748(e$+BEA?HO9<(e)ZT9#>j&%ec?WRNP}; znG&@iqF5!ScqF9QgS{R_+M@^(MSN-S(?!9-O7K2m{D5Tggq)3PyQjEGFi+_5U_3( zYu&fD7F=;@1X1>olo|zFwC-E2*4mc3bg`{kTl=e3{`cNlG8ra@KK*~6hurO)bI*Rx z{l=%i{Bak62}YI$LvY*${?-2CNMKE*c(y+hnA_CS;Ez8{XbJj5!FB#+p@0RKU|=`=tWZ;9KphA?%`HvMftE-x5Ecxs z&@io$V5oRuVt-`b` zEPvffUUEVbPF+)DU298ApfOTBD>1F~H!Jk&;EG0nq_u@8=N<#f)FhaSraFHpFs0%v zw06Smxz*hCPnpKMoc@O928ujzX+^hQsv|AI#uYqu1X}z&91v1eWAe>f>2Kj)PCEFE zhNi~IN}gthS2ndoDr2iGy;>3otg82~<=S;oVw%&^+87Bo1ZruCC>d@JTAG%d%yr2? z*goQ1E<-s+| z%9-^E&8U^)BC&E!tqTPkgOO`kJ^2-Jk1ua*ZjD4irzpNA+bDxFW~j+uFBqDa7BYXa8>iwl3)6apRQ1|$B+y`E zI%ZH6O|20@ZUTQHZ;sPf_pYOp{)eUwzX?CTth{>dHsdPMwV`*cM3c#6B{{Jb!p4vxW!tC{(B`ZS+Hb z3m5b>yynA&5FKZEYbfMGqjn*+*Q_EvP#3`eFMt=97Vw3%g5Dr#~{jmO{2*2a3K)@jE|)DqrZVFbcBQJI7qoFXFXKBwmGim!v92S!HWM@OUEdn3)cwX!F9O7!u4^l z)VF9;GdbRfo0MM$Lv+u)yroBHfHXN_aVBoT_bl8>-{~objql?JOmFlkm3qqakH)s} zL#EE&#P#4dY_f4X?x61`{F0&Adt~?Ylp5S+<8Iuef~h$aBpc(CQB}>Y4qVt8XsiqL z=4?USYvVrLPxlCh=QK1&*6P|-tEB#sjSXniYx;w0xjz(I=C4~t6{_xpUc!GKUE~9^ z^@h_QjVW0c4YVHRxwk+|Zb0&v{+|U}pJXlUiszedCsD*b*oi_5d)dKspC;1Z9uz9w zblB*`kExX))2lzy#Dq3DFFE~|$M&aW;wR{`@FZ!{aLY*mI@Ulb8>Aa1cMW z@I()fjtXYuXR0E3sOniw?1);{x-dey#Z$^Hex6bzdbmSx-tdf#XYm}pVYO<67A#Nk z#$GEW!|w$ee!QxbFR5bt@>f=WahYk^LT^5cd(ZPA;L9(>BRMk2l7T(?H$Ea)2kQbAY+D12^fJk1@$3{rTQ%DsZ9_cSbZSl&mXk$NPH5+18iK96{yIee)larpx8*h7LgdA_l$R5cj zE`TkgWHh_0WTNG>dl2lA9>~ZTTTYO%(d<4u$fDz4TcsO^vNXo2El-n*)0vjIpbb&eClHwj#s|<$2yeVEOk~+(bX!%M!Op{rqkFw$^ zMd_!he$vEN{VRHSw|c`yn=8Sv-b<72-gTO0sazMOWQF7P(Gg*b#bn+XxF}IGU4b<$ zNZOxW>k^R8K$J#qMVc7nEhaMn|E>xU#ua}+a@v%jAk95LEA-~piWoJ-_d<|wCRryK zn_7v}IEw1}N_+A)^=PPG5T~RQYU;7%N`;*jeXfW3B%iOupL7fzboy?&`oC;jd+F_E zAsaq9g90-8B>=m|DNTo}@&67om zZ)xh}N*j-0yGLr}DjP-eUBQ98rN@*;jtS`hdn?_mbuoiMuCe7>)dps=4J=rvne^#f5m@qN<9Uf8)lqLh%o(?oju~R8O7yxLh9%_1tv!UhIL1LS>2D zY*{2{DNAg$Ws_C z85DQm{dYPF%cJBLF~0LEDEvDmJS7x9Ve3v_G25~DA-SIc{F}ow{0}gV>V8R0v)jBU>vC1 zku}gyZH$cq9imUmllrNc&OsFL&utus;i?^28Kj*?e3f6Q9#5XL<$0AC)GKgyV7b3F zq{HV$6*S+A@-w4hVMDB^P*=QSV}!b*U%1DSVk@oJTEZ9D$nJxx)=+3+Q?QZ7OXPWv zyax7bPW|{$ZB5hzREOnX7ElkPLE$uJCq`X#bcX|pFaL_M>g1mSvco9`QVm%kX{9iF zd~Fz#mp%dozWwAKR^&B3f7pn@@qitOu||DvUCTc% zKGs&M9|U@NB=RX^%HM7I0Bwr;KR6S<=Nt-6eMMh(0kzc>S*a?Rvrhd8r4T-|<$v(F zC46$7kn$Tn8+e?n$+ZV(PC1w#EdNRNifWO_X$ zwm&pBdSm0T7#xFLk0bOr3?p$o>5kHSqq!cV;VxHcMvr6lI0`PDh;f9>bosl22zVE^b#%B z*%Zs<=<*c|mkwOIgL6~gm!ZU!lQf-CQ5al-^;)qme4A87&o&Usf1J|0R&NkHfa-E&H*}&ttt)Lwn%QALhnKxs2JMJvA z%u-hyO1)NBuIqjjc&%Jl$svsKIykmt^F|ESTbyn}mfF?J>J2X8)X}y1$Wt4flI!$! z;sL?tBR?!Ugwu+;hTnt9`sxCrIHQC{6mfP4gNvdYn_#OmwW`)6G__Z}j&3#0R07IO zWXLRJ$s7!nZ{P%(hhizm$ub{Hr2+xYn|XGrEW~%^Oxz%guvN~&ZqB>dyDJqh*D-J) zq2dDx6(5MHSj`@!XPPw4er(~)!Mhu=m8VYnZUr79Mh1#81KW6Np#;hgrRmQLpkpvc0Y^uyeC=uCCsY zCApl_f**P9GEb4B+=*W+mpe>E`w&Wa>Y#@?6xs-dR+4jdJASX+%9E?kyaYsODOHIa(_pZ{6;+QbvWbmgA}|S z|LDa35XWl6gI+6!^Ep+V(TOkAJXq%P(z(qNjkAIKtc7~t?RA@8H_NXFnW|F!b4zKMfsV3uIo8h6DR3aZ)6c_%;;KG>nl4)Q`8yrgpO8*WS z&@O|^9BsJY>xjxF{i}-FWk^k#tE-fup3#Q&^p=d0GN;#B&@RVqL{oR3>NzN`T)VbqP9PX5S^%=Ej2es`oPB$uLd^8hqoX@}K z!X@V;Tl^R&b!-poQ7QpUm*to%D^V>$td*zE zrSgDrm9!am$`<23*=lT&hm0Mv&Dbdq8@o7fmq(08WxLTOJB-ITe?oQ|Ps=Xj8QE<- z%lV74$M~h}HC~r?;|Xl z=12+mn3c%iMEN>(JWl${$x_O!S42Hb(z&jbiEImJ7N%22r!eceFbf~+T<1nLUYE(- z^I$dhN*UoYu@gR-!aW-Y**~c4n1w&HfKJtWpR)GrJvoQ^KUL*exrvsVCZ{pO-+}98 zI;ps14_ajgXKr}{%bEQL!z1ruR`d?TOZ(4K^o$kwfy`#+H;qe)F_*GAjXP1!8bMs+ zK4Q!xT$awtK1vqVh04lW1FRcy4V=zCG|I_*%I#4v`gqQkDqYGqQwyYkNxKm4Vq{dB z)7mhmaD-1qHTOou(r7_6t~+Ew^#)T$DCo^c-Yo1cX@glNAkR|F=c$MnsIcc*%3jiC z$``#NQKlwoHPB!zJ0DOKgUT*oS-X<7x=YQZM5(!5&PcFbt=Zn98$m^>GFDue8%D=- z18%D-Qtd!x;UU(GaYhHWvqZ!4U}cR z!Vak~W14bAvyRu%E-O`47|lbkvqM7Z0ldy#((6&bpnp*p% zwuZ~K#9z&EU2MFV_Vp^bZ)InBGuYXAEiNv}W^cp=rMPzB}?GQ6&ef^H?RqnaU~&@cXl0rDwwJgL~f>Zg* zn8k6PVd4zKfwQ@PzL9}dhK1FJ3+oLxt}#4p`Z95sVdEhq3%iVd=rsDHi{}T8Y`kRT z;5B0)-Y{~t0ndr5TBiw6@y}z6Tt_42;-^e=H|Qq+C)&JB7}zB@>Vz=~_cApy_^=9% zax?ujgDIg-ZqaShOZ4-!JHpA5{7Z+vSIQ z<#sjRxmWH{oV6;()e4_{xjPaOku<0{SLb)-4nl3?&F)^ucua&3e z8SU=1vGnT38Cq}Z6<9<)rOH>TPt>cRL!R9yFLZO`QH`iE6P7V6@xmZn>;{pSWOVGo zR1DE)PTwB6eMf?TepVP&NyyFw^4)2X?@2|jO^bX#7N$XdAQkztw8&f1-n=yx`TDfT zkEBK3o{D^XTI7zj$epRkThb!$PK&%J6?tDeWc8IShCC~VJb=hAAEMPc?BJiLx(W4D zo@BgCyT8J+_G%Kr0SRtim0!dNo=GhAV98+?%-k=p)$EhkAM+J3KDs?AN2OxpF#Y=X zr1&=d`W;Pma1=A)vpMnxqm&HFullBcPb&QnN&h3#|2ye_+zb6TWAuNGd417;Acej; z6b{o1n`L`|d0a2_-_j*U7+lO^eafevJd))`=-Aqm3}ShFD3nRNdMeE=>MKgK_B#APNm;W`WKRZ z3+ab@p??a7>#sHMu;GZ(f1A;wdYT$v!H?i{Z1Ww0#jBj=Hs1kxcOyIn95%u2<1^$B z+kB79yOjm}Q&rei)OEK4E9@#|7c{Ui*HKc$e;xA2O=^3C<4CUKjwA0owk6n{hW=!8 z4Nup?GS{KMc`;f27LGSB!C3QB_{_^tY+jC1^9r0|uE%NS22`3?Vgct%%&W9WUym{? zf0p;PNHy{o&V=1kvHX>Nt-> zBQ0Hpd8%qgv$Mw*unU!sSDvam&jR+H9}e#p#iu@jnAcI`*CWHc0a@ma$T4ri5c6hu z&08?iycKyICz#($YUU=!*dBu6npuGt!{nd(lgV)y9P33z{Vzl@X8#ha-s=kvK(t;9 z9tXQm)~Q1Nqp~-$4`Sir>K?tSQI&+N2lQ&bDh*t1)vHrguIFmIUKOk4%~hvfjaJ#1 zt37%(P~}ywUe+tRh1o58iTdPeK1dU8f!o}Qe&$0M&U2snFwOP|=9=5F$lQTt=1w%5 zyKn{1yDR+qgg362PqgX!AtL|c9_zUJb{&&^W-QUW*tdMTV~On0D+i0h=gE2A?4nX0 zrwtCKt??hAEk^I&Sf4Q6r}g%+Pb=)>^**gCJ#LMS+hb#AY}^wYUshwPJ3mJ~JWm}w zM|XY!gE9zv literal 11437 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Ï?fju9zj>6SKvKqDXusmWh9hv&9i{q4-2xDn1j} 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 D3lOdUbks+0V69B;#B)I?p delta 82 zc-lKDaFd_w)W2Q(7#J7~84@>g&1BKk*6_(nEKAhSNz6;v4=yRn%uBb9_Kb!ImX>7Z h=zAm8gBpq diff --git a/libjava/classpath/lib/java/text/MessageFormat$Field.class b/libjava/classpath/lib/java/text/MessageFormat$Field.class index 9d3230341b6dded3eeb96e66d41f497874353191..c8eb504ef8794aeae356c6cc08a7c558615a73d9 100644 GIT binary patch delta 41 zc-jFe0M`Gu3APEaxB~^L00sc6lf45y1+D-E0I!q(19}O$01yDW02BbclY#^^9l{Lv delta 41 zc-jFe0M`Gu3APEaxB~^M00sc7lf45y1+M@F0I-w)19}O%01yDX02BbdlY#^^9z_iP diff --git a/libjava/classpath/lib/java/text/MessageFormat.class b/libjava/classpath/lib/java/text/MessageFormat.class index 5ad2834305c401d99962b432684a3a757c961e61..b077c51624c72bb6b826836165a2ed60d2f72dbf 100644 GIT binary patch delta 1264 zc-l>reNdED7{$+dUYB*z#a;PQ5mFYUiT`$Z>c*FYVS1DtsEAoEn%|Xzrt6t z%D>RebAa~NUypM4>4YeW?Dj>Cjj1mgs(XoC$W5s6b6jkAbHJCbl7kK-a{;u4<2 z_n3>z@S+Q)=*BW!Lpg3>weDMoUjoxdndrTXAoOAg?jZ#CVaEf6;SWUNAspy~3;jsN z-^d~`je-Iin8hFz(ToxfhL093XD})_6xFn1J#E-bJ8Bt*I?bwQM4&mUkaJ=X%vgjn z4kMX>(R9JdaY$nd(m5VEbZh(sOlKPAF&>p|MY(hFKbw4aHpS;uJLUDeU7^9N;v3 z#eB4KhANKkbr!F~9S=)|-5&cl2quUssR#7yCsxARz*Y z7DH0lD47zZ$`U#muAX#O+hbsnScHiK4y`VUQ)iqWCaKuOseDY8CT5u?VUT2~j}voD zlQCFwRZpVFI#YWEy3>OYc{Y&m%9EP;FiA1&Qi2FsfDy6~W26)l#D{cQf=pS8r{yKg zl4U57FQZYa5s-B_EbGxC8*o~$yJRD7$R_+M zo6#q=7?5o=W|F+aY}vsnQqMejkI%?XdgOi1kq=lTyXckOTqz%M zwKQ<8?BOX)#|VI9;F#LH1tmt4ee z)ZOGlQ#*p?oXSgib>wATT|u~X=_s$lDczW;HB+vsTPaoHzv+B#W2oHG8TBAat4n&- znp6+})M1CK?$m~f`h77hFdM-LGln2W*W(N;+(rn}3>$I`J7ychvA_sLrS@Ji!qtKC zTkLT#8Sxly=$mN7VXTp;Jnp5|H0@@M0lmiXH7BGSp7aAfGW+I@4sEpx9 zAKIy9I9sI+mx;iwC{wg3Atnl%^r0f?DyOB$C_iY{nfveTIp;a=``dY+?Z4IeUZGF# z{llFA;(5jlA#7^Iu(dhP`&g$&KULlK#Tu~mE=3GL5=R)h(BDeAQPQ8 z@eoEa3Af;dF<3DUKm3DW+<_hU;J^f82`nIyMgy62LpIGQpgW4_ffe+`Do#QbE!aRW zY@!v7^u;#%W2a^{(dG)AmczVIc+!q33_~CzF^$oPTxKhVlSV-K|YCArlEuBIL;;LW`^nsxfz)Y6Z2qUKKxjq>Cb8U^N404 z60|0>NI$w*U6{VrqYUm`i2#C{7<}u5+ZIA!xl*rv+9o+WPoap++YobhuGmKGho;1 zkT8`PmBm@g$Kj`TN6qD2bvkN+DG_cmUwbL0g>aWtmF>u~EY)6??p_8jdD_+PNSC@o zn8XRI6eB=hz*H$gn3Q6Ulp#^dkt8o-kyIdCR-s5d~jq7o`E0r4d(U3+~Ex+?UsB$Qzt2Z_=70I~XYMa;EHJ zvNSPOb~9b}aH+h{Ect+W@*xXkAD!|s*GMyKWIxx-0lp?J+#`qBEUi4G^&4sDS^11t zq>Q7|;p(3?mDVGA)T8i`P94@Ugv)VtcXk24S2-~`rU7`$8Pyik5O`kiF2G-gbexwE zDZ_}@nj|ACGq%?Mn$G7sCd*$sqZX1=25}U=_4+3BG@cwvrh~WvdF$sRgWK7rl zS%w$l3~$UctVl6@k!wsrvEhem?bRCrDl~43H4G*r0=|a+9gQ$V8xHklT)8DdyYpc& e5)fcKs^aG)1P8(3DZTpPfpg#kU7&RULH`4rLn;*j diff --git a/libjava/classpath/lib/java/text/NumberFormat$Field.class b/libjava/classpath/lib/java/text/NumberFormat$Field.class index 4a926d3fa8489ac566cf158c631a3fb83a8179e3..3f43075427f32fbeb72d93155256cce4f4f3e4d0 100644 GIT binary patch delta 61 zc-p%la6w>$I6Lb$1~!K6lV#X#Sr0I}`Dz{PNpL6YGTgFKL}#c+ke PoZ%{i9mAE$92_116#5W{ delta 61 zc-p%la6w>$I6Lch1~!HrlV#X#Sr0O>G8~#5$KES@0m!<@z{PNhL6YGzgFKL}#c-9u PoZ%XS9mCbh92_117D^D4 diff --git a/libjava/classpath/lib/java/text/NumberFormat.class b/libjava/classpath/lib/java/text/NumberFormat.class index e1072aa8ed9d1df042baa5ef370caf573e7b4689..0a1939e8829cdea64dbc684ebff4183a23d4fedd 100644 GIT binary patch delta 786 zc-kG0TWkwp6vzMPeCw8$+LGQkz3Q~pZL*P3Okxz>R86;4YZ8KDh7b|NB1Am6B(n47 z@-QzhFD&ly;7KA8PZEMhY;(WG<^ESw7!K6@8H9GX>|_T zzoG`;;KENd;D=mwK4@%24b6m=Vwgs8_$YxW&BAO-VgWTFP0h$tTu!>yS?9w-DNLaS zGT|CYEP;(W;h|;fNyD!iqNNB^26Lzzb192?ltTxtk<0GGv|jw4>#0E)+NoUzHE#$` z+66c5(H{HIO#88v4xpP3Vl5p)fexdjYzythE;>5mEz=p<=53=3a^Aa$u1Js1C7-=9 zx>czXz8F2yY7srv+aaUAB)ybpzDtR5jhfU^Kk0a1&`#g5n11M5KhZ_MkX2TokJw26 zMCu2qTE5p`>+pcs3k!Q-Wgn(-JsjKs7yIGn5SloGPL86BXQGE==;t_!$~JQlL)YE7jix8)p&X9NM`Di#d-p_o}xKS!D%Yg^gSi<3F9)s)=P(>#5~!nplQY zwSl)I!aES-LA3Br%;h1u=U-04mAxH-7@ewYygHDuoI@3l$dSOX|Ar>tL>-T5k6Wnc z+X(U8!z?GB|*r7opzr2#n`PFTW9Bl0l3+1>)1nGL6Dh2OMEG9v!v zs4^=s)nt@*VY=x?)T~02$)eTdp3Ap}#jMTm$}5yGai z;OwMb)T*oykBE(pg@lzvge|HFO)DNdC$qTsJNe!Fo$s9K&gss3sN_<#aTyXEM~cfaz!rv;9po^^xJuso zv(zXpB{Np1`n!SpR!2z=uhs{2DQQAo-q#%}bT-KB;C@@zg8>{~h&_AR( diff --git a/libjava/classpath/lib/java/text/SimpleDateFormat.class b/libjava/classpath/lib/java/text/SimpleDateFormat.class index 1bca569ab66fe394eb7aadfc996bf407e00a32a1..a6de266da51a25457865b0c82015d2ff32132950 100644 GIT binary patch delta 69 zc-mVufpOLZ#tlMJ3PKv1K3R!niTb4_nK}ACnZ+g6Tuh2g20RRwOoogM>XQ}agaxBL M(bQ~?lRBac0H|RT`Tzg` delta 77 zc-osafpO6U#tlMJDqE!%+b6t4D4)i3_NV{3?ghvlix7gGZswNVQ~Wh DAj1n^ delta 47 zc-s5K@rh%D6Emv~11Fo)WOrs8MxV(o%+b6N4D4)C3_NVn3?giClix7gGv-XzVQ~Wh D9s>(M diff --git a/libjava/classpath/lib/java/util/Collections$2.class b/libjava/classpath/lib/java/util/Collections$2.class index 98e5b9315687262adba33c5fcae800f9c7aff76c..2ed6a1167dbc6d111f5ab05f0844bc57d40820f9 100644 GIT binary patch delta 19 bc-q^;xrcMZMP|mOlP@usGj5vf#Zm+SP+A9? delta 19 bc-q^;xrcMZMP|l@lP@usGp?KL#Zm+SP#Oo4 diff --git a/libjava/classpath/lib/java/util/Collections$3.class b/libjava/classpath/lib/java/util/Collections$3.class index b5e3812169755237371376b8a2d5d7a6ae35b0e8..575702bfeefc763fb8fae7d6cbe9c92d9d407778 100644 GIT binary patch delta 41 uc-lM4bChQTH!EZGWFFS(g6RzGyqOFFyjcvAKw6$ReexDo8=%}r)(`;I6AD=X delta 41 uc-lM4bChQTH!EZKWFFS(g2@c*yr~QVylD)QKw6$RdGZ!k8=%}r)(`;F{|Y?- diff --git a/libjava/classpath/lib/java/util/Collections$4.class b/libjava/classpath/lib/java/util/Collections$4.class index 9a096576108c6a6951be067e80762c15bca8f7a0..8bcf8e2bf3d5041b41cbf0b564c4379d77dac8e8 100644 GIT binary patch delta 27 jc-nix^MYrC9xG$!WPR4@oMjB`ycG=cyk(Qmv(5wnc##M} delta 27 jc-nix^MYrC9xG$&WPR4@oJ9=myd@0syhW4Gv(5wnci9Lr diff --git a/libjava/classpath/lib/java/util/Collections$5.class b/libjava/classpath/lib/java/util/Collections$5.class index 3046de6df7c13e67e6bdf17df723464ce488aad2..18e449828ef4b490e09e8787485f586b343d2733 100644 GIT binary patch delta 23 fc-mXTyM}i|3oGN7$*ruptp6D}L>MN2XWa?_Xi*4{ delta 23 fc-mXTyM}i|3oGM?$*ruptiKsJg#S$b&bk!MvKXDtlo@HlUK1iGWtw@10*9S>#@ahrZWgiWiZG{Wlf&K M=E+zx`5s#s0KL->q5uE@ delta 57 zc-q^-w}o$m6f2|VWNB6>Mw7{Ltlo@vlUK1iGI~sY10+Ky>#@ahCNl_1r7*}yrA?l~ M=E+zv`5s#s0J^uXH*aZfDu}ci%VwV||#jY^u0{LcQ*CzkxT+Dh8Xv+P`r@7T9pX1VH{4hD5 zSA6n39;wN?+$K!o%s{U7PX^c{njd(&B)u4*}8I8d5n!Kirc0g7-qsL@v cKF!G=c(oWqfUFqCLa@qyJ{QL7$yfON0HGE)RR910 delta 190 zc-mVew@7Y7D~IS(1{Sg944h&s82H3iG6;#SVvrJBJ$V+#OwJt)++sT!#Kd+_w&7eR zdy0Wo>@)+9*ck?Xv2zUKV&@r@#V#=D0{LcQmnQ$`T+Dh4Xv*!$r@7T9pX1VHd^0(o zSA6n39;wN?+$Kz7|AAcV$@92%7`cE-(ip`i8}WoNDnS+bGwOlmHF-@Lt$?g_MwiLb de43L#@M1{U$@44mRK82H3zPHtjuW?VcuibZ|0E{hK1Mj$Jgbth1E7m%eo I`8tat0MzghZvX%Q diff --git a/libjava/classpath/lib/java/util/Collections$CheckedList.class b/libjava/classpath/lib/java/util/Collections$CheckedList.class index f103934355e9c0a456f02d9967cda91161ff403c..153d80288d5d6d7336bf331c751219bc215ea561 100644 GIT binary patch delta 145 zc-p%qcS~-A1t%vf1DgaJ1GfbGWJk`qydprBD1)SgID@i;#N^kUYbDhfm?YF0xFj?f zcqOzL1~!Qw4BQewCmXZQ;bmpumSkg)kmO)clH{Cxhc%s1Z1M~?^~u?6 pI*iIdRy3m?m@mz)!)QI(gS~{;1E|9jsKXnm!w0CtaxxQ#CICOu76bqQ delta 93 zc-mVnuv%b)7Axmx1~!Q=4BQf5CmXZQ;bmmtmSkd(kYr&{l4PBHhc%s1Xz~m;^~u?6 pI*jr_Ry3m)m@mz)!)QL)gS~{;1*pRnsKXto!vms703Vp diff --git a/libjava/classpath/lib/java/util/Collections$CheckedMap$CheckedEntrySet.class b/libjava/classpath/lib/java/util/Collections$CheckedMap$CheckedEntrySet.class index a0d77a84368e56872f74f4c693dcaf5ef530ac89..1e0de3b641099d7172116783c374993c6ed819c9 100644 GIT binary patch delta 37 tc-ou9H;He<9#&pS1~w@v25u>720nS6oG2>_x-2=f2{ delta 37 tc-ou9H;He<9#&pa1~w@%25u>F20n0$fF2>_s$2-^Sv diff --git a/libjava/classpath/lib/java/util/Collections$CheckedMap.class b/libjava/classpath/lib/java/util/Collections$CheckedMap.class index 42fbd4ac730e6c28cd4a7d18ab10ac7b2764f6e4..92527ed7abc4f91308473a9a24734232d4c669c3 100644 GIT binary patch delta 271 zc-k$EJxjx26ot<#N=Qx8#z5=6wFE`!hw0$tEI5dug1Cu`AUL{+gR`^99sCE<+BSA- z5d;Tu5?AdnP|>C~inG21x95CtPFM;{?PZH<7^O>?)PO@xc+^6ULiltgJJ#t~M<-p0 ztu1vgh4g|P*;Uokl#?6#V7d>3K6PV&6b&&+F^IlUpl{4-U8EmbbN1Cq(tmU|)VZcJ z_X6WwLze59;RXV3$!+>rUF(;k>}CRWmry6OZa%@_XZYL`+wGQLFv72J_zf<Yk6vfXcN{l9H(?ILJwFJeQD(TS4S#T(V3gRX%g5c;P4o*IS$bAE8tyL+a zsEbgX#l`jsRJ7Jc>FnZ1aQmGY3YQBORWL{=FsTNIPT^4<89IYc=dxiP4qfTw zTKd+SdXQYABztyIwKZkr-rkw$z@RVP=wgI=7^4V8-^kGqrnC;IFH6q0I*9vE&WaLE zNA593xq>uTG08QAT$g5IU)|`JKsJ-1YQ}V%TsEI!a0@=S#dhyzUNFF~aQF=_zhj&~ zP~;Bg_!DLBVpaR=+`|?}61f-Z_y3jUF%_!ec+>Z0RZ14UT{90OI}JY@=;gdb-uxe3 C$5HA4 diff --git a/libjava/classpath/lib/java/util/Collections$CheckedRandomAccessList.class b/libjava/classpath/lib/java/util/Collections$CheckedRandomAccessList.class index 7cb5ae94af934abf2b4261835499375f2ae9ef1a..9ae361edfa615caf22110128bb60a44eed421a09 100644 GIT binary patch delta 17 Yc-p(kev^Ge95d@(1~!R%larat06KIA9{>OV delta 17 Yc-p(kev^Ge95d@p1~!RXlarat06IJd7XSbN diff --git a/libjava/classpath/lib/java/util/Collections$CheckedSet.class b/libjava/classpath/lib/java/util/Collections$CheckedSet.class index e77d9ec4d24a519746896c38795a2fb149655943..b8694fc42ad4ad530419fd9e7c084ca8575d6d4a 100644 GIT binary patch delta 29 lc-mXWwTx@S4`$YM1~%!8$$yz^7>g!XvBWagPQJn72LPEK3M>Es delta 29 lc-mXWwTx@S4`$Y61~%!G$$yz^81p7qvBWY~PQJn72LPBx3LF3c diff --git a/libjava/classpath/lib/java/util/Collections$CheckedSortedMap.class b/libjava/classpath/lib/java/util/Collections$CheckedSortedMap.class index 3e00bc057fdfe0ebbad3778025a647ad4de3cbfe..0af46c40e84528d149586c2fe778b4a2792a0fb0 100644 GIT binary patch delta 85 zc-lK4bU{vJ=N-PFDsY88-$o8CRgnBmhJ#8`%H= delta 85 zc-lK4bU7Ck8J9b_pq5T-T<<)8NW@w$00tsggt_h l5iIkC-IY^`L0CqaL0m>@vJ=N-PDchI87BrY8AqVXBmg`h8>IjM diff --git a/libjava/classpath/lib/java/util/Collections$CheckedSortedSet.class b/libjava/classpath/lib/java/util/Collections$CheckedSortedSet.class index 576324033ad80d1023022330c598c61328954be3..76b1860527cf2e5570921fd07b4cb9730b1a3cda 100644 GIT binary patch delta 65 zc-s3X@K0bv5-Vp91Di}Q1Gh}yhrOSXZ?X(W5&-!)7Q6re delta 65 zc-s3X@K0bv5-Vp11Di}I1Gh}q=4{g&BFSdfrat!=in(W9XKG~Ahj!_28>SqmRRG<8q sHI~s3$PZ<-nmipyx&YM&Gx|+-WDjKwpFAB%CQW|J?!%Zf*^0vt09U&lIRF3v delta 95 zc-rd_>=4{g&BFSNfratU=inC!?VKG~Ahj!_EC>SqmRRGs{o sHI`8y$PZ<-m^>XwIs(-PGkQ;UWDjKwnLHgx#!Y_9?!%Zd*^0vt08@G#8UO$Q diff --git a/libjava/classpath/lib/java/util/Collections$EmptySet.class b/libjava/classpath/lib/java/util/Collections$EmptySet.class index a1a88ebf79b92dbabeab9021a47b19b3a8dd76ec..d099ca2f11114467213fd4a94525ffa020001b7b 100644 GIT binary patch delta 93 zc-s3W^i60(3oGOD$*rv3jGHH4WKCk+H`#=(gz?1Wm29Dm7bpK`^Jcsa6gQk)!>+^l wY_cGS_2ef&)<+;KiSgIudo1dcXLFcxvNEtTvN3QnvQNIr5ymJu*?`jx0D3wfIRF3v delta 93 zc-s3W^i60(3oGNY$*rv3jGHE3WKCk+JK2P-gz@;~m29Dm7bgE_^JcsS6gQk)!>+^l wbh03a_2ef&)(0RfiSg&;do1dcXLFcxvM{hRvNCWovQ56p5ymJm*?`jx0C)EvEC2ui diff --git a/libjava/classpath/lib/java/util/Collections$LIFOQueue.class b/libjava/classpath/lib/java/util/Collections$LIFOQueue.class index 5716fa2175367eb999fdc6cfd2e91df3d26e1dfa..25475af47b364742dda638386540997fbf1de4df 100644 GIT binary patch delta 119 zc-ng|_*`(qSr$$&1{PT#22NSu$=6s47y~CavRhAXVht7zV_=dE2Z~29@W@6o$N_0} z*{I2{SX)`+fuaeMKeDS&p3SDim;z?KXER~U1hc%^O&RlmrsOjg1NqU66=2a44jsnY I$qPB$0N2AKZU6uP delta 119 zc-ng|_*`(qSr$$=1{PTl22NSe$=6s47=0%!KeDS&p3SDim;h$IXER|;1+%=_O&PO*rsOl`1NqU6C1BAK4jsnI I$qPB$0L9BACIA2c diff --git a/libjava/classpath/lib/java/util/Collections$MapSet.class b/libjava/classpath/lib/java/util/Collections$MapSet.class index 8a02ecb6d5cbd2f50305115806fdd5d23c4256a3..e89a8a5701ee31ae38c2936f1afe193cf3321169 100644 GIT binary patch delta 109 zc-re0=@!{w%qBRUfkk#E1F!5X265Th3^KBFCcCgzF)oiy3%i zmoR7nX=B-?lk?bHSyur?S5IEep*~rjLzi*=WM7V0#w|d80^`ofJe*OC`zEJz#xfoT Lil|P0#i;AFcyS)VM3kDZ4>ke!!7k)4l08OYXR z=b!w8qm5B&ay@4hqbg97;bd+uV@3lYD~fT`>BG6qcc=T2gbp1g_M4FJ1YDdYeE diff --git a/libjava/classpath/lib/java/util/Collections$SingletonMap.class b/libjava/classpath/lib/java/util/Collections$SingletonMap.class index d1c50c42220b9357c8d380b214c67f13b67c2cbe..e5f2dec278551f3d9776ff1315bb89f022fd06a3 100644 GIT binary patch delta 115 zc-lK6enfmjBRlUj1{U@i44mvU8Ti;|P3~i#$Gez;oqZ{T1p8J71@`TeEjiK{k4|2| z5yN;9NQzGu;f!FsJ2{s#neoNsi<}vppMa`AGYGMNnf#wieR3w33gf@YeOwuwoDA$7 STns`S+(7X>MzP6x++hIY=OT^( delta 115 zc-lK6enfmjBRlUT1{U@y44mv!8Ti_G86Mxn`h++hIGry@Q8 diff --git a/libjava/classpath/lib/java/util/Collections$SingletonSet.class b/libjava/classpath/lib/java/util/Collections$SingletonSet.class index 53a098dc3de258d0212d8372dbb0d44eae651ee4..74259753f38d288969f27794443ccb8a9e3196e7 100644 GIT binary patch delta 87 zc-m_dZWG?%!p5n~z`~}_z{zGX*_SPz(PHviwkSr2$sFuKjP;YF+1n+%8Q9r+82H$F q83ft-7!=w18I*x+Ew%}hf3r6;&YE1$5z4q^@>Px`#`TjeIQ;-^>lQ=+ delta 87 zc-m_dZWG?%!p5n|z`~}@z{#dF*_SPz(PZ*kwkSrM$sFuKjMbB)+1n-C8Q9r682H#a q83ft77!=vM8I*x+Ew-M?zuB7^r%kTs2xVL_`6@>eh zSzF;XNPmDxL(rcfEsYZGeG!)zzMtp)K0JQXPrjULX3pC3+!Hrbc8?A-+k4)@el@$c zT-?cJQ+Qg}T61Ljp2pMzv3ev!HEB{k(VTh~N3TX-F==5EVDctk`VDtUS05BtT{%{l z+(Y_C>LJa@XT+2&JJCM$mtv|@>bf^daxqyifDaF5F+hzBVRFQ{=Hat^5vWl=7oo7{k2VRHkU jQ!;97un)O|_>ePhBfX>59<+XpUG6}-G{GGyjOYIW`(#yH delta 335 zc-mVazd(LNIjdZVl}}b;S)zVUVqUtwe^ORza*4H_Ms!GswI-0*Je74hqv(7F7LJ7s zoE(c7_&63b2yrZ7km6W6Igq`CcP&t6Jy2!?P-f%gOYGA)k20`x9A^;WI6AqIqlfbz zkoN${y9eZnPd?8hH`$sqkoPT6^gV+B$6E#oj*pXPau#qhGO%+pGl+090@W!__Tv$l z?93I&DGn5s1d57-b#LLy;Zy^PXfOzKs!a~$Q=c5b9nEP56tQ5C<20MRg}Z>$2gvgS z>hOV@lgOC@6iEY$q(EIz%2^8(sRxSGLPb<2ckp^}_5elufF}0vBu>wVkcx8Y*IR*hP83qY1g~5DFy*92?hx+naKjIZU85{5m*2K diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedList.class b/libjava/classpath/lib/java/util/Collections$SynchronizedList.class index 74f95300db4f3994e4c1d44e4bc2abf10bea8fd7..24776e1b480b50c4dc7a563d08a8090f8a7573b5 100644 GIT binary patch delta 243 zc-q@9w_k2U1v_UF11ncD0~c4y^AuKdZr*=O;#F|c!WFbHwAF-UQB zO zR4xzBt3c7~48mMjCqLsV;Cv0_y#=ay4OCOb`JaKEn-R$S4>m)XCz?|bC?d=t$1OOy zoTph(3&_)9;OEw5kOb25+**^ld7C)xfT9izBHVURdvZ7v7my=w=qdLlELPnsFcmcPfupY>Sgv|p&{+<$Z^3(_w;3wCa$ zApMbw<&9eDOd^6+kXrQX(tWi>+C#T{< PAy*?L%pDu}ce(!$OME%e diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedListIterator.class b/libjava/classpath/lib/java/util/Collections$SynchronizedListIterator.class index 2a50db405672fce46c1c7883d91d261ee4a2b41c..b3939e6e574ce15906d632fee738914fe7259e69 100644 GIT binary patch delta 125 zc-rd~=oQ#d!NPfofsOkz12^}T$&D;Cd0#QGbH8B_4}QqCy@B0QqCy>SjoN0BMLCgQ!F#aA*vPrY48Rz~a~xX%UE2 zP!L+Qg#^;jrkb0_e;*w^}6|rfMm?p){HHGFzFZjr|k=!A< zNAjSv?wRe9V_wNKU79y<`s`M?5Ba3P^z|_^r^hzbQe=aN&=GV9ZTh?9*aC?yQU-O& zR&~!*xCT9^z}6;{BQI38o7{r7p{?n@GIt;^6t^8MNk)yVa}V+X=|SrL7rJk3|DiN$ z*8b{#ETx&~7LSqqQNoV(BzkLIa>S4?E-i@Yig(IM$RY)joPJQ|9Auf|lAGK*^w&5K ZS;bUd-~GD3jc$iT3Y138N)fjX{sC7oQB(i` delta 329 zc-k$_JxfAi6bJA#gtv2jp2vIj+RFuLy531$8l^F6tQ02+92!HSDHUScaS_H zc|!6m3-*QXk)__qQ9W8x@6xyHJc4|Xr$+J;Uz8*5OEtd9W9Scb483w~lfRBHthcxg?LgbJeKqbv`jpaLshUuf+28?W2pK?{ZiMa=+rKD_ zn%Cd5mkcCKlz4*VkJ5S~r-=t0Bg@Q_Yhtu)Y*}^AI0IQB&tzsF)HnwzP|D<{w+`HO bE<)BYRg|IIbhpv%kTGS-qUKEnxAy-5w9Qah diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedRandomAccessList.class b/libjava/classpath/lib/java/util/Collections$SynchronizedRandomAccessList.class index 08fdb6ca728f00535cb3b0ae863ab624b0bc1c00..9efce59f14369259b4a1225d05ae4a30cacbd5ba 100644 GIT binary patch delta 57 zc-p(beSv#}Eeq=e23GEglbu*{SZ6b^anG5&nPrjWW(IcdtqlC!+ZaT+w=;+WX(=FI LfqV1hJk}%t)wB?T7dHWcI L`SwhH$m$0G!)Opm delta 55 zc-mXfvz})|5DRNR11sNz$>A(HtTP$d_-0K$!P3XMf`OfH6@v)hiplY;m7F_(yj={! Ld^;vTWc338zi1F4 diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedSortedMap.class b/libjava/classpath/lib/java/util/Collections$SynchronizedSortedMap.class index 62a25ade1e2f8b9b179c99d13758ef1442057e2e..5d7cbf97da39537d01e736bc15f73581d7fdff2b 100644 GIT binary patch delta 132 zc-lKFa#m!+16D46W(HP%76vYU*2%9}3px21*!cMwxcLPpr?5@slxAS(mt_#k&9Ja-0pe%Hx-9NnBDKwcP7E@bi|juyc@Ag_RdpTCen3P>yP Z=S?=}T+P`I6zv4+Xb0*LpUlMN4FFpV7{dSn delta 132 zc-lKFa#m!+16D4+{|v1B3=CZSjFVrn7IJbiu<>&@l46OX87`XUPPd>m}$a#fKV}f-e>nLD zTRG@#46OXe7`XV4Pd>m}$a#T*jsGG8H~*!{R%}x_?=rCS-)9i!zdQK` zTRG<&AnzTJ_hxbgdow3H1G@kxgS-Iy1E)Y21Ft|ggQ!5yWGCi)#{9`_Eb5bQGV3tb0$G8Kos%P2+yLo=3f}+# diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableList.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableList.class index db804bfbc60af456377987a95b8361b57195e1b1..98c66ce661a987f436e1150bcf710c5c8d6880c5 100644 GIT binary patch delta 122 zc-m``Y?0ic&dzy~fmQGn1DD|G$p-AXj5jCGV=rfX0VEYCn{xy*eg%q(PhP;`$0Wo! z`2$BRBj02{&JadiL4)=VUh delta 122 zc-m``Y?0ic&dzz1fmQGr1DD|O$p-AXj8`YmV=rfX0wfhDn{xy*eguk&PhP;`$0Yc7 z@&}GsMy|RaVZ~3@pNP7&wLJPQJ&Q!MI|wJ6kH_rpasBq8ax9N%hGF>^h7mCdaZz XGG3j$ojsND{$yDWf5w@Ub2*#<2|yOh delta 67 zc-mVpxL$C>RaVaF3@pMk7&wJzPQJ&Q!MJ3yJ6kH_y2)$Vq8WDpN%hGF>^h7`CdaZz XGG3g#ojsND_GDQOf5xekb2*#<1NauB diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.class index 081bf52dcc1364755c8894724b49907c16bfca07..664edb1c76ad6792e5afcc2cbe69bf5ab55a8399 100644 GIT binary patch delta 95 zc-rd}?iAjj#m@SUfmQhZWPSE>#xIkXv)3tdGO&tpF>s0SFz|`+GYE_DF^Gr=Fi46B uGH3y5V-exWZXB~@r5M;mWPqw<8Tduy7z9P+8RUVq0+6pMqA>X{M-KpKnh(wZ delta 95 zc-rd}?iAjj#m@SQfmQhRWPSE>#t)O1v)3uIGO&uUF>r}+Fz|_RGYE@tF^GupFi48< uGH3y5V-fzzZXB~@#TeK`B!H?U8Tdt{7z9P68RUVq0+6pMA~X3fM-Kp6q7Qxm diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableMap.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableMap.class index d985db96dd21ecf5e6c1081fb9ddd2f3614c311e..7a9ea6e229ee947f0d96c56a954c37dbef6f683e 100644 GIT binary patch delta 175 zc-p%rdrfvjDu|Y?*w6Czo-`WH;Ve#)V*Yr+Kv)R|9QUpDfGg#kmux MV;4}zZlI1d0C=h|(f|Me delta 175 zc-p%rdrfvjDuCmV9cG3EnF@yW|M zQ#k7x*o7Myq=g$N7x1Z0w&c=h)CS8naQQRZ0$GNW8M%!ZeI}c5S2IRT-oPEqm;@x% zCu{R~aTYMJixe_Qixh$NF6J>|Y?yq5Czo-;WH;Ve#<^g1r+Kv)mji89pDfGg#km!z MV;fM%cA$bN~PV diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableSet.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableSet.class index 39be8d6650eab8880cbf58e8b0ac56bbea2d7205..77c4642f8294e63c3d2b06fa66252e3d1057928f 100644 GIT binary patch delta 30 mc-lL~d5Uwx24>b*46GurCvRoWVEj5+jwOaklwooWiyr{5!wN3| delta 30 mc-lL~d5Uwx24>c046Gv0CvRoWVEi~)jwOak?97C!*9*$W;3 diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedMap.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedMap.class index 39be88cf4cd87ad706c986efebba6100f1abd992..0a3361563748c3dff24d0a53252043368bff911e 100644 GIT binary patch delta 64 zc-p%xa9LnOI4h?G1FNVd1DB}POZ}j2|brvqm%i1(NEMx!7zNB`3SHOZ}jBh8mvqm%i1d{5Lx!7zNMJKznz>% diff --git a/libjava/classpath/lib/java/util/Collections.class b/libjava/classpath/lib/java/util/Collections.class index 1e5ed0c27d8290f38cc2b2b4c9eac34d84fe1e38..e2f120771415e215c067bee6ed3598597c5155a5 100644 GIT binary patch delta 1207 zc-mc)X-rgC6vzMf-gjp~EKFsP#X-g*`yypXWoL$UWEEQ@BTd_+skNkl_^A@Bg*Gv^ zF^z{sOKobJmQ7j2HqZ}(V!+bHRAWWj5?4f9(!`kboAmh2^nEz@EWiJ`_q=!Cqkgg2 zFNP1Ntqwzwm`8+h7qNODb*0VvM?v7}W1K-a?QtbLo=HRw^D2?d*7P(hVrbIkc$V1s zf8stpaaD=;s51Sa=o-D8UMmiaLCSGx`8@*UIRwi|M9A}S$_t2>Q%I5*u}My2vz$S$ z`~d}W7G?5Bye@ynTk==b%PZI`ui}urhL7cSw97dhmp9NY=kcZd9lde^gWO|G-ovC^ z#4qwbuF54`lMgU2AL6#3T*i{TgMZ|s(UF%niD;!@Rt9WJBV3uWL0J&5{E(#lk*-$5 z!@gGqkU67AhcOvWqZvo+ZuUG_qY4qGir{2FR+Z59%yIh;uGAt(`4Fvka<&#ORYy@- zy(a4o%uEbDi_I}$3u&7q7Qf*AMV!is1da~<92fd#gLzy|doPDhB z$8&0c>!+|z4I)YnAz2M0mE$aRhLZ9UXgTLoF~yoA&g;z2F@J;kdFKCM{!iu?n4f3< zCi4^GF)imEbr8%(JN%3e*o{tXFpeS4IF3Y)T}C&3p8r>B4->tx8hr>f`VndjV4ZOq zQN|#Wj3J~O!^ky8;N~k($ThEVmd4y)Sf^naGq4z!=rzwPVu8N(+&T~ovyQ_m9S?t< zfIyvyAe{uePDZFsfkUSvN~iI4bRkWr!>zMWptDh|b5O2xQKj=yquto9J*eaO4PAma zbt!h~EojzdXwl_3#A}zXz*n3f(A7xc+gJxH+f%qi_QJW)-7x8TKEu1P=>~+e|AOW( zqMON7^ixhdpRfZ~-HGRQ7ee$gMCi|$=thD*!KXTj9Q`#sx(8m}iye9ZyY*?_{RH;u zAqpsd>^KLhC%D5T&v=37o8q}HB9h}cJx!4%XG8BYvB*;|aqkD*`yn=RoTC4x<&uHW zCtO{D)dcvP1j0=c4)&u>ibhI1g^fzRJ~6>IhGxAk(MT)adVZJMl1PnP4m%29wiLqO zQiL^@VmK_Nh_ZN*%>HIe83mUOTX#ZQ>JVail`faHiv9FSrIYrSd#!me`{g6h&rK_p zk#w&-Q@l-)6+ZrdTiD*Az-lM`Tah99D7Dfj>RI=W^&6ONJqWb*vc@Mun0Hc3Rff32 z8Ylh6UI^=aVwyEEbhO$fKBAfGgVvicue}A^+S^pUwMjJ4`K@iDoQi6i#7X+Drj2*b T+}0r0Q{Oh9cyZKtxk3B~_0=hq delta 1219 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 W>ZCJzM2Y*1U7fY7bI#@weg6-oLN<#4 diff --git a/libjava/classpath/lib/java/util/TimeZone$1.class b/libjava/classpath/lib/java/util/TimeZone$1.class index 7ec855bf98bf7cf2928cc4ec5ff1883d10ea1f59..b97d9ca01d69c5b4ddb81d95ab386a2c3db06c48 100644 GIT binary patch delta 317 zc-m{?n8(R=>ff$?3=9m042~1I4o@~>lHB;jgi%wFkwGLqwZtVgEwMDGBqTF8H7Y+Z z)iZ^IL64Dv+1)pUi$R&efQP|waukzKoQQ^|PgY`CqJBff$?3=9m047L-w4o~i965aU3j8Q_DkwGLqwZtVgEwMDGBqTF8H7Y+Z z)iY({X=#3aMh0eg-w-YaWd=hY2BXQ&Og@u0Fv*JYyXGb5HV`Byr21W)B1~mp#1~UdG24)6xpbMB7EEp_-Gz-vN PD+U`NiwmfVkpT<)U*H*5id4HbLu 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 diff --git a/libjava/classpath/lib/java/util/regex/Matcher.class b/libjava/classpath/lib/java/util/regex/Matcher.class index 0d623321cbfd85e181ba21a406b8904b2af74b34..c1632e9490af6d38b5b09e76f3113b35153550a7 100644 GIT binary patch literal 7772 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 OLSA+RTSp2P&i?^Xt=!xI literal 7507 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 G^Dh9P_L1}e diff --git a/libjava/classpath/lib/javax/security/sasl/Sasl.class b/libjava/classpath/lib/javax/security/sasl/Sasl.class index f730d3191f40cd2d3a1fb5c865e8fa2f72661f77..2208e38b9127445c20f1cdcd79898970eb33cdae 100644 GIT binary patch delta 2965 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 UrpU7?>$CKWv`i&!W+r;)AD;Cz?*IS* delta 237 zc-kF}y-Gr19ETsX_q+;;C#a(qK`r9sdZ57u^P@|UuD~UPrW8L4w1OJqjljXdlw4F2 z$|djuYI7Dhub>OCe`kAm_0BzfFI+i($RpZqwK(ys~mM;*K6A}8qI50 zSeFZ_&U$4=D($~u-~6hRdWB1>l&Nt?g(q%!rpX&ECfxEN_KSOFJn+pU5qZg@|G$V5 z1CKKD@AGJfT{b*A7Uw5Phpf;hCCUt`Rei diff --git a/libjava/classpath/lib/javax/sound/midi/MidiDevice$Info.class b/libjava/classpath/lib/javax/sound/midi/MidiDevice$Info.class index 773d831675245146e58a92a9561cc8c88fa664ec..08ec6aa66c1d7efaf56d57b805c1c3df3a05fe14 100644 GIT binary patch delta 91 zc-m{`YUbMTgh{lEfrX)mfs>(^fsdh&L71VRL6Tv@j#jv8_2R@JPPI)v8Xei2eZ}#S+^!%XVC!wb-Nli delta 91 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 AZU6uP diff --git a/libjava/classpath/lib/javax/sound/midi/Receiver.class b/libjava/classpath/lib/javax/sound/midi/Receiver.class index 965bd62c370281e7811906426a5b830f1d11cda8..01b552499f25712e243bb3c93550b352057ccc48 100644 GIT binary patch delta 100 zc-s5HIGu^>)W2Q(7#J7~83ZPBnaZ*=urV@-XC;;;>gOcprRzJEmgGC<(2C&B(wC)WXEV$iU9P!NADC3FNT=X)d4$4+Afd$H>43Qo+Cv0QMdd3IG5A delta 68 zc-ouJ^n;P>)W2Q(7#J7~8Tcl0nNEzcX5^eWBSaG@!obAB$iT|L#=ywH4&<=_X%3(W Q7Xvqt$H>3~Qo+Cr0QGGNApigX diff --git a/libjava/classpath/lib/javax/sound/midi/SoundbankResource.class b/libjava/classpath/lib/javax/sound/midi/SoundbankResource.class index 9d6077963fd5504611df56c42ebdc37b8becbf1d..6ff8e6175a8c282a8c5390cb5d0d38b221adb9d0 100644 GIT binary patch delta 419 zc-ni#@rh%?Mg`8`%=Em(lG377Mg|d|ti-ZJ{hY+SbbaTX#NuKbExU>90-0PjCd)I) zOx9#HRu$r5;AIeIWMJ0N4C7>AWDwffit?dkgTH0HI44thEVp_Ue86-9W#hDqTCfhPg z^GgHSS`d{CG7Pel)0q|P<$ydMplu*AP9TdJ$d+eN0Foe+^?@`G z4J_!*APv{d3NjE#GcqVLC}GhohORjjqB$8&w=#nY+;gfJrbwWh5|8Nw7Dfg&26eDu I8er9$0IZ-YeE)XqR{(UcPsBUXUGr_FFYj@5g6jemzG&6FGi|mrVzZM`GrJkdQ0gA@ z66-?4zDynvaVYE&F~=-O)#N;jETwl|^J!ULTGrcI#ELj5R%uAI`}Ra_FEDS!ukH}L ypzMk#&M=1qYbdH{vi1*LE5c_vd{v;=+4%c%Ys4ifx?GH&;43!Sa%OEe-T4JBo+Qcu diff --git a/libjava/classpath/lib/javax/sound/midi/Track.class b/libjava/classpath/lib/javax/sound/midi/Track.class index 48f61a4f035c13dc095a090f716dffe19ca2089a..bdbc3a80b6442ec30cdb3e6d263f7eae02ea28f2 100644 GIT binary patch literal 2152 zc-oCrT~ixX7=8{U1mY^63FS)yg*HG+fPSbzsDQLh4IeEL3RdirY{T-g(ai?Yi(WV# zy?1(}9XopE4bJFjVMbLaPW@aL== zHB`VWP#H5VV=B9`Y}j#qdEJmzN+*98x*3Dh5& zL@md#Eq#5$w$pYwn6Np53tP`-(PGH^4a4xPQCZ}uig*>y4ZCWWsv-O}t zCo`PbN*EtGX4=Yla6=$?7-!VB^-rUUO4gaaJ0=5U3g%wSph_-r4ex=uD&z$i*RvV+ zD^!dpzGA08kuy2eb*$8bTLPzxi*Q0pwoO%*Entq$*#B@LL$|~3abUf(>8zbFu9)(2 zc-0-~l@ZX!yH(16RS92SL!Lb9RL++du5f;ZI>_5h$!q+&K`+6*se2cd-Fv8B*hTGQ z)bZ2L&r^@l@UwDk;#vb2*UMbrLM4XLh*31Fa4G~^@H%&P41s+3zi2BH>fOJhZej8n zw}ze_w0#XvXuotjf9#y+a&}DG?BJX$dCC0)%I>?L``iyvFQq>B4*H)WNUOF7-#-5{ zCv)AQ+r`knYdf_6ggiW`!xEGEaa-+6xTE$Q_yNKMCTTTIA~UqQNuY6bu=8QeQ9qB1 z+^290i&&uNq$1a?Nb7lW^6O2~7xWwCGsL`MKEsHx?t=H>fch`gNYBW>sbBu4K)sH~ z(UF#isFH`49ZbwiGJCkXP!rw7yH5^j4Jul_YVTvR!2+!_Y%gHYDn(i=v|1&tHU8>0 z5Q0VPk7;cvDgiYjkph)So=PhtNdj^d&a(g|ED;D^uuPK5SCmL9!9yx_O}UPQ_J5k% z!wg5|=D8irKE+G{bq#zhsYKsNUmwn@J%_qcO~pNGKd0tCQGdx1{(=_wijW2iNP}!h zgn0a%yG6XOkn-P}FZBR-If3Q*3ED2?DO2(XMN?W{n9|#`E49uV??q9+E2|>^8L1p`BCE{=)TmMD2Hk`8_p{RARrnm7V#-m8d232xS5vDBq=j E0B@~ delta 1007 zc-mEy%TE(g6vn^l%yfof`lbb;NQvc7990nD)gi;Kphke_LE%v$y|g$tpB^eK+@G9X)Zi=c zs@0)DWqDyi^`S{e2x0b3i28gurXz^3hA3JT92Zbu{950wBZjyD<=*V#)ZE>N0>oH+ zM1vDa9VxU5kQU}1&zj+39!~3MM+cj>g;XcHxZ(-6Y@6}=kkQf0<()XE<2){~-?m7# z6Bl{7L%}5$7lXoOHYgrd2QbVF9AWd~urS69vDJ}MF#{Z5l7 zQ?$2&`jOu7lbQcf&%UgnddThTYg~n!JB<@_ByV=XPA7R*uqJiM*^y@|+@^Bz8#RX(%@!ReC?Rg)GhCYO8^3JIHRQ zO53EQzzaX7Xsw}ZNE7j+g&XFaa!S)bK(Pu?3^xcvKmab}aMJ{$t7$c)lU6=g)tbwC zSov=MO+~yRqBS&= Z&2t1OFX>o0T=YSvh}%YaZkbHC{{o~Tp9BB^ diff --git a/libjava/classpath/lib/javax/sound/midi/Transmitter.class b/libjava/classpath/lib/javax/sound/midi/Transmitter.class index 41b968b49ff38ac6a3be4147a56ce54368d3179f..b68647baefba22127fb1e62f129ca7dcbc91ee3a 100644 GIT binary patch delta 93 zc-s5TIE#tv)W2Q(7#J7~8Tco1S;(?8urV@-XC;;;>gOcprRzJEmgGC<dTFtac+urjbQFaT+G1`aUI$-o7aVPxP2 Il1vOd0FR{y_5c6? diff --git a/libjava/classpath/lib/javax/sound/sampled/AudioSystem.class b/libjava/classpath/lib/javax/sound/sampled/AudioSystem.class index 81dc2ac1a00e01550bd4d7a6d818e2c7ff7483da..4c0d466d5836ec775a9c188d84537a38a1b597dc 100644 GIT binary patch literal 13183 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 VpQpq^aWS8-iA&V;`*=t`{|X|mV`cyV diff --git a/libjava/classpath/lib/javax/sound/sampled/Line$Info.class b/libjava/classpath/lib/javax/sound/sampled/Line$Info.class index 209f4f955895464b6a832cbbbe9887dc5312bd7c..b12d731a3779392abfe40bd5d0d0bbc7fb8f19e1 100644 GIT binary patch delta 430 zc-mc$%SyvQ6o$V^nkExttr}acB2^bAsVKNF7F_67grduUqHeT^uKNm>zJ?3M+uCPw z=}UMr8KiVE=lti){FnLhfBmOi>(iU7+x+42e!Qz%qrB}jlkq^s>uFz6IlQ~L3~{MN zXyz1dlJ+%<`O){_?O1iyP~ig(0TtP6Lc!%`hDiFEAV+$beKDJLKB&LSA&MVT7qYhsqbAdjjjHv~u0%S|9i(PVk}Z?|IX_RIx%**o}=OeRYhA^dVKuCoMRBKGD_k}9zwe%gE_Fic`Y4T{Q#_F&w=B_w<%xX%C z-^|ehhkUA1o)@<2#U>F_Iu`%jhAcU|O?Lo4eWCH_a^y}`w>)$Xg^FJ~7?xR4&B^;^ wR-2Q1dT+EJCNz%6QriEN_JEFH?!C%dDYsQ-2~#JvJ{hM!7AMT5MxS2$7v4A{5C8xG diff --git a/libjava/classpath/lib/javax/sound/sampled/Line.class b/libjava/classpath/lib/javax/sound/sampled/Line.class index 40270c1546f8989099cb12b68b4e5e5df337ff22..56aec6b25e996bf54eead13d166b88db35e78e43 100644 GIT binary patch delta 178 zc-m`ZTfoM3>ff$?3=9m045|~kOk~*^*cchavl7b^^>Y&Q()ArnOY)s_@{3awlX6lw z+Ql(4N=%;1n8zZ=$e=J$Kx7gl`{aB^RyKA91x5yGs6YS{CyO#8gX}~BiOHo*!t9I; ztUwDmCr@QEwHIMvU}0nsW#D39WDo<2vH)pupok;`2aw0aAO$9+8DxO85RfIyAkU!4 Nz{#KlRHwqg2>_kw97zBG delta 149 zc-mXQ*2pGs>ff$?3=9m049e^bOpFW?lM5L|CaOqnjE-Yu5o2V~0r4kaWDIAKVPsGM zauk@^8RRDWGpVyEGBU`5W&4=Kd4WbSaI!EmurjbQFic*VLO_-@gDitQ11Ez5P@NJ3CjbN^6U_hs diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$BreadthFirstEnumeration.class index 25f7b08b78eb9a8fe864684eefb075567480ea9c..b79d528ca3d86b9775d5b337785ca56c58da75ce 100644 GIT binary patch delta 21 cc-m{=ZQ$K-iIvlgfs4hQL4?I}@@>|o06Z)Oj{pDw delta 21 cc-m{=ZQ$K-iIvlwfs4h0L4?I>@@>|o06a$pk^lez diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode$PostorderEnumeration.class index 58240b4697f86fe4d6a1448fb71ce02b3775bae4..8e60a6bf8c3b70e56f83087511e080a7d4ee4fca 100644 GIT binary patch delta 601 zc-lQtO-~b16g_X=?bMbbw15SQTGEQP(@L=&L0X|;AOe;&#zf+>D&@tfi@hy3Xu(nR1BB!7UVE`5oO z^f%lRSTGyt%`_2RJmHSSZGP_{0MHhQYUrT12+=!4={*v(gA{GUq+R4`4}&~A;4$*f zUBLZIA_V~xLB#phkY?0qAsI#lSZ)uO4sI2=3a%j*5@{lu-i zM~c}!w4cLz**S8Chqhy&iQ-TA%4YfurFzRpCy0G~K#)G7n+_18LlyG(^_$G~UsVjc zt4gpgC)a8JY`9eSIA<3p%WD%+6vlru_oQjlDM=e?rItoAM$;s=NsO zlzJB;DB`MER3e7d(nZ{he~a$jcr!CZ8Mt%i{;B3h&N`G?*1uG8GeGBLjlG@+2Lf97tNGM?MgG7{pEug(mhXT%S6z z%gO$rMUOMz39VZ{NmJRC&*Y>-QM#1n8&%n( zF8f}flKF7Z7%sCBpTW=CU6vzLwdw{wuDHcmws1{oAvOsOU)uOdFYOTt}N?U_3-dHQ9Tm+0UKAOEbKNYNSb<0t?MX$xOoO9Hh@1XJkqDC8DV;jDF8-tth8?j9c z#kLR-NE@HwkGBxIxxq#i5uV4;2T&G7DL5#NepQT5QhLe zJIp5qg3xdPM=-3wU|H`;F({mK%`)ON#4VY14mO#XwSM-!?b5~>Y3MsV+nCG`9Bbpm zH%mxape;=Az>zkLcpGP|8b0=*18_3*ZMf(T_R>B0semx8!Jy)Qu<eI%jJk_y za3eq!?4if-Q3JzN=e|C{I6Xy_o+Cj`Ow$X@&?_6;=zOc!<3*cQ@XHv$H7-Em!re%* zrrP{|RywX2yT&`4F{s{o>xFeY9pxxEI*b<5^0#YbG;0@ly<6xKZgA9WR}L%a`vpOK%cU6vzK}<_^VSOi}FgVK9`6wgWA#il{|vQ%ijSt)*I7Xhac zaSX=+;f=yg-5Cg;)?UiRL~IpY{=r+KNTU$&bc&eZeCHZm7|$JywlTFsFas%@XbY!y zp`;BX(#9F047cdK{2$nD^zb`4!0$rm_b|*&7`$NpcJ((C0%MrE9Km^lywK_EWM(KM z*{aj(5yM^-s2|Cb$tFpQS%!7^$(du=#o@FK6zNJ7X*q!NtB$?A4u!Rhf7DGVguI6v zBpmPx_VF5g{3)T n4hgLRYtqdVsaE$LT_Vdw4@ppEgtyoke+k#gs-k)sD{%h>(bIK9 diff --git a/libjava/classpath/m4/ac_prog_javac.m4 b/libjava/classpath/m4/ac_prog_javac.m4 index 2162c1d8d8a9..0f8f226efbd7 100644 --- a/libjava/classpath/m4/ac_prog_javac.m4 +++ b/libjava/classpath/m4/ac_prog_javac.m4 @@ -36,7 +36,7 @@ dnl Modified to remove jikes by Andrew John Hughes on 2008-02-11 AC_DEFUN_ONCE([AC_PROG_JAVAC],[ AC_REQUIRE([AC_EXEEXT])dnl -ECJ_OPTS="-warn:-deprecation,serial,unusedImport" +ECJ_OPTS="-warn:-deprecation,serial,unusedImport,unusedPrivate,resource" JAVAC_OPTS="-Xlint:unchecked,cast,divzero,empty,finally,overrides" GCJ_OPTS="-g" if test "x$JAVAPREFIX" = x; then diff --git a/libjava/classpath/m4/acinclude.m4 b/libjava/classpath/m4/acinclude.m4 index 65cb8fc4769f..b5fa999bb5e7 100644 --- a/libjava/classpath/m4/acinclude.m4 +++ b/libjava/classpath/m4/acinclude.m4 @@ -190,6 +190,8 @@ AC_DEFUN([CLASSPATH_WITH_GJDOC], case ${gjdoc_version} in 0.7.9) ;; 0.8*) ;; + 0.9*) ;; + 1*) ;; *) AC_MSG_ERROR([Building documentation requires GJDoc >= 0.7.9, ${gjdoc_version} found.]) ;; esac fi diff --git a/libjava/classpath/m4/lib-ld.m4 b/libjava/classpath/m4/lib-ld.m4 new file mode 100644 index 000000000000..ebb30528bd5a --- /dev/null +++ b/libjava/classpath/m4/lib-ld.m4 @@ -0,0 +1,110 @@ +# lib-ld.m4 serial 4 (gettext-0.18) +dnl Copyright (C) 1996-2003, 2009-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl Subroutines of libtool.m4, +dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision +dnl with libtool.m4. + +dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. +AC_DEFUN([AC_LIB_PROG_LD_GNU], +[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], +[# I'd rather use --version here, but apparently some GNU ld's only accept -v. +case `$LD -v 2>&1 conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by GCC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]* | [A-Za-z]:[\\/]*)] + [re_direlt='/[^/][^/]*/\.\./'] + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL([acl_cv_path_LD], +[if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break ;; + *) + test "$with_gnu_ld" != yes && break ;; + esac + fi + done + IFS="$ac_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi]) +LD="$acl_cv_path_LD" +if test -n "$LD"; then + AC_MSG_RESULT([$LD]) +else + AC_MSG_RESULT([no]) +fi +test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) +AC_LIB_PROG_LD_GNU +]) diff --git a/libjava/classpath/m4/lib-link.m4 b/libjava/classpath/m4/lib-link.m4 new file mode 100644 index 000000000000..c73bd8e3a478 --- /dev/null +++ b/libjava/classpath/m4/lib-link.m4 @@ -0,0 +1,774 @@ +# lib-link.m4 serial 21 (gettext-0.18) +dnl Copyright (C) 2001-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_PREREQ([2.54]) + +dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and +dnl augments the CPPFLAGS variable. +dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname +dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + pushdef([Name],[translit([$1],[./-], [___])]) + pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + ac_cv_lib[]Name[]_libs="$LIB[]NAME" + ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" + ac_cv_lib[]Name[]_cppflags="$INC[]NAME" + ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" + ]) + LIB[]NAME="$ac_cv_lib[]Name[]_libs" + LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" + INC[]NAME="$ac_cv_lib[]Name[]_cppflags" + LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + AC_SUBST([LIB]NAME[_PREFIX]) + dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the + dnl results of this search when this library appears as a dependency. + HAVE_LIB[]NAME=yes + popdef([NAME]) + popdef([Name]) +]) + +dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message]) +dnl searches for libname and the libraries corresponding to explicit and +dnl implicit dependencies, together with the specified include files and +dnl the ability to compile and link the specified testcode. The missing-message +dnl defaults to 'no' and may contain additional hints for the user. +dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} +dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and +dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs +dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. +dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname +dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + AC_REQUIRE([AC_LIB_RPATH]) + pushdef([Name],[translit([$1],[./-], [___])]) + pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + + dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME + dnl accordingly. + AC_LIB_LINKFLAGS_BODY([$1], [$2]) + + dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, + dnl because if the user has installed lib[]Name and not disabled its use + dnl via --without-lib[]Name-prefix, he wants to use it. + ac_save_CPPFLAGS="$CPPFLAGS" + AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) + + AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ + ac_save_LIBS="$LIBS" + dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS, + dnl because these -l options might require -L options that are present in + dnl LIBS. -l options benefit only from the -L options listed before it. + dnl Otherwise, add it to the front of LIBS, because it may be a static + dnl library that depends on another static library that is present in LIBS. + dnl Static libraries benefit only from the static libraries listed after + dnl it. + case " $LIB[]NAME" in + *" -l"*) LIBS="$LIBS $LIB[]NAME" ;; + *) LIBS="$LIB[]NAME $LIBS" ;; + esac + AC_TRY_LINK([$3], [$4], + [ac_cv_lib[]Name=yes], + [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])']) + LIBS="$ac_save_LIBS" + ]) + if test "$ac_cv_lib[]Name" = yes; then + HAVE_LIB[]NAME=yes + AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.]) + AC_MSG_CHECKING([how to link with lib[]$1]) + AC_MSG_RESULT([$LIB[]NAME]) + else + HAVE_LIB[]NAME=no + dnl If $LIB[]NAME didn't lead to a usable library, we don't need + dnl $INC[]NAME either. + CPPFLAGS="$ac_save_CPPFLAGS" + LIB[]NAME= + LTLIB[]NAME= + LIB[]NAME[]_PREFIX= + fi + AC_SUBST([HAVE_LIB]NAME) + AC_SUBST([LIB]NAME) + AC_SUBST([LTLIB]NAME) + AC_SUBST([LIB]NAME[_PREFIX]) + popdef([NAME]) + popdef([Name]) +]) + +dnl Determine the platform dependent parameters needed to use rpath: +dnl acl_libext, +dnl acl_shlibext, +dnl acl_hardcode_libdir_flag_spec, +dnl acl_hardcode_libdir_separator, +dnl acl_hardcode_direct, +dnl acl_hardcode_minus_L. +AC_DEFUN([AC_LIB_RPATH], +[ + dnl Tell automake >= 1.10 to complain if config.rpath is missing. + m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) + AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS + AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld + AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host + AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir + AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + ]) + wl="$acl_cv_wl" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" + dnl Determine whether the user wants rpath handling at all. + AC_ARG_ENABLE([rpath], + [ --disable-rpath do not hardcode runtime library paths], + :, enable_rpath=yes) +]) + +dnl AC_LIB_FROMPACKAGE(name, package) +dnl declares that libname comes from the given package. The configure file +dnl will then not have a --with-libname-prefix option but a +dnl --with-package-prefix option. Several libraries can come from the same +dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar +dnl macro call that searches for libname. +AC_DEFUN([AC_LIB_FROMPACKAGE], +[ + pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + define([acl_frompackage_]NAME, [$2]) + popdef([NAME]) + pushdef([PACK],[$2]) + pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + define([acl_libsinpackage_]PACKUP, + m4_ifdef([acl_libsinpackage_]PACKUP, [acl_libsinpackage_]PACKUP[[, ]],)[lib$1]) + popdef([PACKUP]) + popdef([PACK]) +]) + +dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and +dnl the libraries corresponding to explicit and implicit dependencies. +dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. +dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found +dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. +AC_DEFUN([AC_LIB_LINKFLAGS_BODY], +[ + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + pushdef([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) + pushdef([PACKUP],[translit(PACK,[abcdefghijklmnopqrstuvwxyz./-], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) + pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) + dnl Autoconf >= 2.61 supports dots in --with options. + pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[translit(PACK,[.],[_])],PACK)]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_ARG_WITH(P_A_C_K[-prefix], +[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib + --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + if test "$acl_libdirstem2" != "$acl_libdirstem" \ + && ! test -d "$withval/$acl_libdirstem"; then + additional_libdir="$withval/$acl_libdirstem2" + fi + fi + fi +]) + dnl Search the library and its dependencies in $additional_libdir and + dnl $LDFLAGS. Using breadth-first-seach. + LIB[]NAME= + LTLIB[]NAME= + INC[]NAME= + LIB[]NAME[]_PREFIX= + dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been + dnl computed. So it has to be reset here. + HAVE_LIB[]NAME= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='$1 $2' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + dnl See if it was already located by an earlier AC_LIB_LINKFLAGS + dnl or AC_LIB_HAVE_LINKFLAGS call. + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" + else + dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined + dnl that this library doesn't exist. So just drop it. + : + fi + else + dnl Search the library lib$name in $additional_libdir and $LDFLAGS + dnl and the already constructed $LIBNAME/$LTLIBNAME. + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + dnl The same code as in the loop below: + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + dnl First look for a shared library. + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + dnl Then look for a static library. + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + dnl Found the library. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + dnl Linking with a shared library. We attempt to hardcode its + dnl directory into the executable's runpath, unless it's the + dnl standard /usr/lib. + if test "$enable_rpath" = no \ + || test "X$found_dir" = "X/usr/$acl_libdirstem" \ + || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then + dnl No hardcoding is needed. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + dnl The hardcoding into $LIBNAME is system dependent. + if test "$acl_hardcode_direct" = yes; then + dnl Using DIR/libNAME.so during linking hardcodes DIR into the + dnl resulting binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode DIR into the resulting + dnl binary. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + dnl Rely on "-L$found_dir". + dnl But don't add it if it's already contained in the LDFLAGS + dnl or the already constructed $LIBNAME + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" + else + dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH + dnl here, because this doesn't fit in flags passed to the + dnl compiler. So give up. No hardcoding. This affects only + dnl very old systems. + dnl FIXME: Not sure whether we should use + dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" + dnl here. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + dnl Linking with a static library. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" + else + dnl We shouldn't come here, but anyway it's good to have a + dnl fallback. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" + fi + fi + dnl Assume the include files are nearby. + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + */$acl_libdirstem2 | */$acl_libdirstem2/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` + if test "$name" = '$1'; then + LIB[]NAME[]_PREFIX="$basedir" + fi + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + dnl Potentially add $additional_includedir to $INCNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's /usr/local/include and we are using GCC on Linux, + dnl 3. if it's already present in $CPPFLAGS or the already + dnl constructed $INCNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INC[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $INCNAME. + INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + dnl Look for dependencies. + if test -n "$found_la"; then + dnl Read the .la file. It defines the variables + dnl dlname, library_names, old_library, dependency_libs, current, + dnl age, revision, installed, dlopen, dlpreopen, libdir. + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + dnl We use only dependency_libs. + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's /usr/local/lib and we are using GCC on Linux, + dnl 3. if it's already present in $LDFLAGS or the already + dnl constructed $LIBNAME, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ + && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ + || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LIBNAME. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIB[]NAME; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LTLIBNAME. + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + dnl Potentially add DIR to rpathdirs. + dnl The rpathdirs will be appended to $LIBNAME at the end. + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + dnl Potentially add DIR to ltrpathdirs. + dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + dnl Handle this in the next round. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + dnl Handle this in the next round. Throw away the .la's + dnl directory; it is already contained in a preceding -L + dnl option. + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + dnl Most likely an immediate library name. + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" + ;; + esac + done + fi + else + dnl Didn't find the library; assume it is in the system directories + dnl known to the linker and runtime loader. (All the system + dnl directories known to the linker should also be known to the + dnl runtime loader, otherwise the system is severely misconfigured.) + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user must + dnl pass all path elements in one option. We can arrange that for a + dnl single library, but not when more than one $LIBNAMEs are used. + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + else + dnl The -rpath options are cumulative. + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + dnl When using libtool, the option that works for both libraries and + dnl executables is -R. The -R options are cumulative. + for found_dir in $ltrpathdirs; do + LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" + done + fi + popdef([P_A_C_K]) + popdef([PACKLIBS]) + popdef([PACKUP]) + popdef([PACK]) + popdef([NAME]) +]) + +dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, +dnl unless already present in VAR. +dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes +dnl contains two or three consecutive elements that belong together. +AC_DEFUN([AC_LIB_APPENDTOVAR], +[ + for element in [$2]; do + haveit= + for x in $[$1]; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + [$1]="${[$1]}${[$1]:+ }$element" + fi + done +]) + +dnl For those cases where a variable contains several -L and -l options +dnl referring to unknown libraries and directories, this macro determines the +dnl necessary additional linker options for the runtime path. +dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) +dnl sets LDADDVAR to linker options needed together with LIBSVALUE. +dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, +dnl otherwise linking without libtool is assumed. +AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], +[ + AC_REQUIRE([AC_LIB_RPATH]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + $1= + if test "$enable_rpath" != no; then + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + dnl Use an explicit option to hardcode directories into the resulting + dnl binary. + rpathdirs= + next= + for opt in $2; do + if test -n "$next"; then + dir="$next" + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2"; then + rpathdirs="$rpathdirs $dir" + fi + next= + else + case $opt in + -L) next=yes ;; + -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` + dnl No need to hardcode the standard /usr/lib. + if test "X$dir" != "X/usr/$acl_libdirstem" \ + && test "X$dir" != "X/usr/$acl_libdirstem2"; then + rpathdirs="$rpathdirs $dir" + fi + next= ;; + *) next= ;; + esac + fi + done + if test "X$rpathdirs" != "X"; then + if test -n ""$3""; then + dnl libtool is used for linking. Use -R options. + for dir in $rpathdirs; do + $1="${$1}${$1:+ }-R$dir" + done + else + dnl The linker is used for linking directly. + if test -n "$acl_hardcode_libdir_separator"; then + dnl Weird platform: only the last -rpath option counts, the user + dnl must pass all path elements in one option. + alldirs= + for dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="$flag" + else + dnl The -rpath options are cumulative. + for dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + $1="${$1}${$1:+ }$flag" + done + fi + fi + fi + fi + fi + AC_SUBST([$1]) +]) diff --git a/libjava/classpath/m4/lib-prefix.m4 b/libjava/classpath/m4/lib-prefix.m4 new file mode 100644 index 000000000000..1601ceaefd3c --- /dev/null +++ b/libjava/classpath/m4/lib-prefix.m4 @@ -0,0 +1,224 @@ +# lib-prefix.m4 serial 7 (gettext-0.18) +dnl Copyright (C) 2001-2005, 2008-2010 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and +dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't +dnl require excessive bracketing. +ifdef([AC_HELP_STRING], +[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], +[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) + +dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed +dnl to access previously installed libraries. The basic assumption is that +dnl a user will want packages to use other packages he previously installed +dnl with the same --prefix option. +dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate +dnl libraries, but is otherwise very convenient. +AC_DEFUN([AC_LIB_PREFIX], +[ + AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + use_additional=yes + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + AC_LIB_ARG_WITH([lib-prefix], +[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir], +[ + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + ]) + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi +]) + if test $use_additional = yes; then + dnl Potentially add $additional_includedir to $CPPFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/include, + dnl 2. if it's already present in $CPPFLAGS, + dnl 3. if it's /usr/local/include and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + for x in $CPPFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + dnl Really add $additional_includedir to $CPPFLAGS. + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" + fi + fi + fi + fi + dnl Potentially add $additional_libdir to $LDFLAGS. + dnl But don't add it + dnl 1. if it's the standard /usr/lib, + dnl 2. if it's already present in $LDFLAGS, + dnl 3. if it's /usr/local/lib and we are using GCC on Linux, + dnl 4. if it doesn't exist as a directory. + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + for x in $LDFLAGS; do + AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux*) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + dnl Really add $additional_libdir to $LDFLAGS. + LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" + fi + fi + fi + fi + fi +]) + +dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, +dnl acl_final_exec_prefix, containing the values to which $prefix and +dnl $exec_prefix will expand at the end of the configure script. +AC_DEFUN([AC_LIB_PREPARE_PREFIX], +[ + dnl Unfortunately, prefix and exec_prefix get only finally determined + dnl at the end of configure. + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the +dnl variables prefix and exec_prefix bound to the values they will have +dnl at the end of the configure script. +AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], +[ + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + $1 + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" +]) + +dnl AC_LIB_PREPARE_MULTILIB creates +dnl - a variable acl_libdirstem, containing the basename of the libdir, either +dnl "lib" or "lib64" or "lib/64", +dnl - a variable acl_libdirstem2, as a secondary possible value for +dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or +dnl "lib/amd64". +AC_DEFUN([AC_LIB_PREPARE_MULTILIB], +[ + dnl There is no formal standard regarding lib and lib64. + dnl On glibc systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine + dnl the compiler's default mode by looking at the compiler's library search + dnl path. If at least one of its elements ends in /lib64 or points to a + dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. + dnl Otherwise we use the default, namely "lib". + dnl On Solaris systems, the current practice is that on a system supporting + dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under + dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or + dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. + AC_REQUIRE([AC_CANONICAL_HOST]) + acl_libdirstem=lib + acl_libdirstem2= + case "$host_os" in + solaris*) + dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment + dnl . + dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." + dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the + dnl symlink is missing, so we set acl_libdirstem2 too. + AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], + [AC_EGREP_CPP([sixtyfour bits], [ +#ifdef _LP64 +sixtyfour bits +#endif + ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) + ]) + if test $gl_cv_solaris_64bit = yes; then + acl_libdirstem=lib/64 + case "$host_cpu" in + sparc*) acl_libdirstem2=lib/sparcv9 ;; + i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; + esac + fi + ;; + *) + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + ;; + esac + test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" +]) diff --git a/libjava/classpath/missing b/libjava/classpath/missing index 86a8fc31e3c2..28055d2ae6f2 100755 --- a/libjava/classpath/missing +++ b/libjava/classpath/missing @@ -1,10 +1,10 @@ #! /bin/sh # Common stub for a few missing GNU programs while installing. -scriptversion=2012-01-06.13; # UTC +scriptversion=2009-04-28.21; # UTC # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. +# 2008, 2009 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify @@ -84,6 +84,7 @@ Supported PROGRAM values: help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file + tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and @@ -121,6 +122,15 @@ case $1 in # Not GNU programs, they don't have --version. ;; + tar*) + if test -n "$run"; then + echo 1>&2 "ERROR: \`tar' requires --run" + exit 1 + elif test "x$2" = "x--version" || test "x$2" = "x--help"; then + exit 1 + fi + ;; + *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. @@ -216,7 +226,7 @@ WARNING: \`$1' $msg. You should only need it if \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then - eval LASTARG=\${$#} + eval LASTARG="\${$#}" case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` @@ -246,7 +256,7 @@ WARNING: \`$1' is $msg. You should only need it if \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then - eval LASTARG=\${$#} + eval LASTARG="\${$#}" case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` @@ -308,6 +318,41 @@ WARNING: \`$1' is $msg. You should only need it if touch $file ;; + tar*) + shift + + # We have already tried tar in the generic part. + # Look for gnutar/gtar before invocation to avoid ugly error + # messages. + if (gnutar --version > /dev/null 2>&1); then + gnutar "$@" && exit 0 + fi + if (gtar --version > /dev/null 2>&1); then + gtar "$@" && exit 0 + fi + firstarg="$1" + if shift; then + case $firstarg in + *o*) + firstarg=`echo "$firstarg" | sed s/o//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + case $firstarg in + *h*) + firstarg=`echo "$firstarg" | sed s/h//` + tar "$firstarg" "$@" && exit 0 + ;; + esac + fi + + echo 1>&2 "\ +WARNING: I can't seem to be able to run \`tar' with the given arguments. + You may want to install GNU tar or Free paxutils, or check the + command line arguments." + exit 1 + ;; + *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. diff --git a/libjava/classpath/native/Makefile.in b/libjava/classpath/native/Makefile.in index 8761df3e5d32..360fb52c7a5d 100644 --- a/libjava/classpath/native/Makefile.in +++ b/libjava/classpath/native/Makefile.in @@ -39,9 +39,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -60,7 +57,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -207,6 +206,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/fdlibm/Makefile.in b/libjava/classpath/native/fdlibm/Makefile.in index 0fa84e35a6af..bd15ce000e15 100644 --- a/libjava/classpath/native/fdlibm/Makefile.in +++ b/libjava/classpath/native/fdlibm/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -197,6 +196,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/jawt/Makefile.in b/libjava/classpath/native/jawt/Makefile.in index 1965c7d041b3..8131810182af 100644 --- a/libjava/classpath/native/jawt/Makefile.in +++ b/libjava/classpath/native/jawt/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -214,6 +213,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/jni/Makefile.in b/libjava/classpath/native/jni/Makefile.in index 542704bf4ba6..6971c2b9aa79 100644 --- a/libjava/classpath/native/jni/Makefile.in +++ b/libjava/classpath/native/jni/Makefile.in @@ -39,9 +39,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -60,7 +57,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -207,6 +206,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/jni/classpath/Makefile.in b/libjava/classpath/native/jni/classpath/Makefile.in index 5df9d61b00ef..13522d56d115 100644 --- a/libjava/classpath/native/jni/classpath/Makefile.in +++ b/libjava/classpath/native/jni/classpath/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -188,6 +187,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/jni/gconf-peer/Makefile.in b/libjava/classpath/native/jni/gconf-peer/Makefile.in index 431f0a87ad99..df8aa6f14f16 100644 --- a/libjava/classpath/native/jni/gconf-peer/Makefile.in +++ b/libjava/classpath/native/jni/gconf-peer/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -214,6 +213,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/jni/gstreamer-peer/Makefile.in b/libjava/classpath/native/jni/gstreamer-peer/Makefile.in index 8f3afc61c310..5160d3ffe53e 100644 --- a/libjava/classpath/native/jni/gstreamer-peer/Makefile.in +++ b/libjava/classpath/native/jni/gstreamer-peer/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -216,6 +215,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/jni/gtk-peer/Makefile.in b/libjava/classpath/native/jni/gtk-peer/Makefile.in index 2ca2fe57af09..ee92424bf444 100644 --- a/libjava/classpath/native/jni/gtk-peer/Makefile.in +++ b/libjava/classpath/native/jni/gtk-peer/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -252,6 +251,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c index a5e59f7e4fd8..771b23e3738a 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c @@ -59,14 +59,14 @@ enum java_awt_font_baseline { java_awt_font_HANGING_BASELINE = 2 }; -static PangoFT2FontMap *ft2_map = NULL; +static PangoFontMap *font_map = NULL; JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkFontPeer_initStaticState (JNIEnv *env, jclass clazz __attribute__((unused))) { gtkpeer_init_font_IDs(env); - ft2_map = PANGO_FT2_FONT_MAP(pango_ft2_font_map_new()); + font_map = pango_ft2_font_map_new(); } JNIEXPORT void JNICALL @@ -287,7 +287,7 @@ Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont pango_font_description_set_size (pfont->desc, size * PANGO_SCALE); /* Create new context */ - pfont->ctx = pango_ft2_font_map_create_context (ft2_map); + pfont->ctx = pango_font_map_create_context (font_map); g_assert (pfont->ctx != NULL); pango_context_set_font_description (pfont->ctx, pfont->desc); diff --git a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c index c2fbba21283c..0b0dbec4bdbe 100644 --- a/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c +++ b/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c @@ -313,7 +313,7 @@ Java_gnu_java_awt_peer_gtk_GtkImage_initFromBuffer(JNIEnv *env, jobject obj, JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkImage_freePixbuf(JNIEnv *env, jobject obj) { - gdk_pixbuf_unref (cp_gtk_image_get_pixbuf (env, obj)); + g_object_unref (cp_gtk_image_get_pixbuf (env, obj)); } /** diff --git a/libjava/classpath/native/jni/java-io/Makefile.in b/libjava/classpath/native/jni/java-io/Makefile.in index b9c68adc149b..3b3cfecca3e7 100644 --- a/libjava/classpath/native/jni/java-io/Makefile.in +++ b/libjava/classpath/native/jni/java-io/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -213,6 +212,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/jni/java-io/java_io_VMConsole.c b/libjava/classpath/native/jni/java-io/java_io_VMConsole.c index 2883f5f73ebe..3ce0a489da32 100644 --- a/libjava/classpath/native/jni/java-io/java_io_VMConsole.c +++ b/libjava/classpath/native/jni/java-io/java_io_VMConsole.c @@ -47,6 +47,10 @@ exception statement from your version. */ /*************************************************************************/ +#ifndef IUCLC +#define IUCLC 0 +#endif + #define TERMIOS_ECHO_IFLAGS (IUCLC|IXON|IXOFF|IXANY) #define TERMIOS_ECHO_LFLAGS (ECHO|ECHOE|ECHOK|ECHONL|TOSTOP) diff --git a/libjava/classpath/native/jni/java-lang/Makefile.in b/libjava/classpath/native/jni/java-lang/Makefile.in index ea9c3af09a2a..ef5ec214e964 100644 --- a/libjava/classpath/native/jni/java-lang/Makefile.in +++ b/libjava/classpath/native/jni/java-lang/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -227,6 +226,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/jni/java-math/Makefile.in b/libjava/classpath/native/jni/java-math/Makefile.in index 67e4e84c725e..f5c3838e5173 100644 --- a/libjava/classpath/native/jni/java-math/Makefile.in +++ b/libjava/classpath/native/jni/java-math/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -214,6 +213,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/jni/java-net/Makefile.in b/libjava/classpath/native/jni/java-net/Makefile.in index 252b9c526ff9..64d4025d3fab 100644 --- a/libjava/classpath/native/jni/java-net/Makefile.in +++ b/libjava/classpath/native/jni/java-net/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -223,6 +222,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/jni/java-nio/Makefile.in b/libjava/classpath/native/jni/java-nio/Makefile.in index d3458810f8e1..1576cc47b033 100644 --- a/libjava/classpath/native/jni/java-nio/Makefile.in +++ b/libjava/classpath/native/jni/java-nio/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -221,6 +220,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/jni/java-util/Makefile.in b/libjava/classpath/native/jni/java-util/Makefile.in index 50189a649b09..a612fd129ede 100644 --- a/libjava/classpath/native/jni/java-util/Makefile.in +++ b/libjava/classpath/native/jni/java-util/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -210,6 +209,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/jni/java-util/java_util_VMTimeZone.c b/libjava/classpath/native/jni/java-util/java_util_VMTimeZone.c index a3a986d36bcf..0830cbe8cb06 100644 --- a/libjava/classpath/native/jni/java-util/java_util_VMTimeZone.c +++ b/libjava/classpath/native/jni/java-util/java_util_VMTimeZone.c @@ -53,6 +53,7 @@ exception statement from your version. */ #include #include +#include #include "java_util_VMTimeZone.h" @@ -169,7 +170,13 @@ Java_java_util_VMTimeZone_getSystemTimeZoneId (JNIEnv * env, tz1_len = strlen (tz1); tz2_len = strlen (tz2); tzoff_len = jint_to_charbuf (tzoff + 11, tzoffset); - tzid = (char *) malloc (tz1_len + tz2_len + tzoff_len + 1); /* FIXME alloc */ + tzid = (char *) malloc (tz1_len + tz2_len + tzoff_len + 1); + if (tzid == NULL) { + JCL_ThrowException (env, "java/lang/OutOfMemoryError", + "malloc() failed"); + return 0; + } + memcpy (tzid, tz1, tz1_len); memcpy (tzid + tz1_len, tzoff + 11 - tzoff_len, tzoff_len); memcpy (tzid + tz1_len + tzoff_len, tz2, tz2_len); diff --git a/libjava/classpath/native/jni/midi-alsa/Makefile.in b/libjava/classpath/native/jni/midi-alsa/Makefile.in index 8a32375b47e6..ac3db83f581c 100644 --- a/libjava/classpath/native/jni/midi-alsa/Makefile.in +++ b/libjava/classpath/native/jni/midi-alsa/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -216,6 +215,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/jni/midi-dssi/Makefile.in b/libjava/classpath/native/jni/midi-dssi/Makefile.in index b9083b0599c0..b1dd722d26a5 100644 --- a/libjava/classpath/native/jni/midi-dssi/Makefile.in +++ b/libjava/classpath/native/jni/midi-dssi/Makefile.in @@ -40,9 +40,6 @@ DIST_COMMON = README $(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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -216,6 +215,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c b/libjava/classpath/native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c index ec1477ec8dbe..55881bef8843 100644 --- a/libjava/classpath/native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c +++ b/libjava/classpath/native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c @@ -283,15 +283,20 @@ JNIEXPORT void JNICALL Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1 (JNIEnv *env, jclass clazz __attribute__((unused)), jlong handle) { - unsigned int port_count, j, cindex; + unsigned int port_count, j, cindex, ret; const char **ports; int controller = 0; dssi_data *data = (dssi_data *) (long) handle; - if ((data->jack_client = jack_client_new (data->desc->LADSPA_Plugin->Label)) == 0) + jack_status_t status; + char buffer[31]; + + if ((data->jack_client = jack_client_open (data->desc->LADSPA_Plugin->Label, + JackUseExactName, &status)) == 0) { - /* JCL_ThrowException (env, "javax/sound/midi/MidiUnavailableException", */ - JCL_ThrowException (env, "java/io/IOException", - "can't create jack client"); + ret = snprintf(buffer, 31, "can't create jack client: %4d", status); + assert (ret == 30); + JCL_ThrowException (env, "javax/sound/midi/MidiUnavailableException", + buffer); return; } diff --git a/libjava/classpath/native/jni/native-lib/Makefile.in b/libjava/classpath/native/jni/native-lib/Makefile.in index 83c9e26b4791..82d60cdac5f9 100644 --- a/libjava/classpath/native/jni/native-lib/Makefile.in +++ b/libjava/classpath/native/jni/native-lib/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -188,6 +187,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/jni/qt-peer/Makefile.in b/libjava/classpath/native/jni/qt-peer/Makefile.in index ada76339080e..5fef00d2104c 100644 --- a/libjava/classpath/native/jni/qt-peer/Makefile.in +++ b/libjava/classpath/native/jni/qt-peer/Makefile.in @@ -43,9 +43,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -64,7 +61,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -218,6 +217,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/jni/xmlj/Makefile.in b/libjava/classpath/native/jni/xmlj/Makefile.in index 5394250d3662..257d03eb2bb9 100644 --- a/libjava/classpath/native/jni/xmlj/Makefile.in +++ b/libjava/classpath/native/jni/xmlj/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -212,6 +211,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/native/plugin/Makefile.in b/libjava/classpath/native/plugin/Makefile.in index 1d2c51a75a55..c673768574c1 100644 --- a/libjava/classpath/native/plugin/Makefile.in +++ b/libjava/classpath/native/plugin/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -214,6 +213,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/org/omg/CORBA/LocalObject.java b/libjava/classpath/org/omg/CORBA/LocalObject.java index 60436ee35405..cb0a7e3dbe91 100644 --- a/libjava/classpath/org/omg/CORBA/LocalObject.java +++ b/libjava/classpath/org/omg/CORBA/LocalObject.java @@ -267,7 +267,7 @@ public class LocalObject * * @throws NO_IMPLEMENT always. If used, the method must be overridden. */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public ServantObject _servant_preinvoke(String operation, Class expectedType) { throw new NO_IMPLEMENT(INAPPROPRIATE); diff --git a/libjava/classpath/org/omg/CORBA/portable/Delegate.java b/libjava/classpath/org/omg/CORBA/portable/Delegate.java index 33812abe22ee..798a1c5e8fee 100644 --- a/libjava/classpath/org/omg/CORBA/portable/Delegate.java +++ b/libjava/classpath/org/omg/CORBA/portable/Delegate.java @@ -376,7 +376,7 @@ public abstract class Delegate * @return the servant or null if the servant is not an expected type * of the method is not supported, for example, due security reasons. */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public ServantObject servant_preinvoke(org.omg.CORBA.Object self, String operation, Class expectedType ) diff --git a/libjava/classpath/org/omg/CORBA/portable/InputStream.java b/libjava/classpath/org/omg/CORBA/portable/InputStream.java index aee540d0103e..4ac63b66dcd2 100644 --- a/libjava/classpath/org/omg/CORBA/portable/InputStream.java +++ b/libjava/classpath/org/omg/CORBA/portable/InputStream.java @@ -237,7 +237,7 @@ public abstract class InputStream * @param klass a CORBA class * @throws NO_IMPLEMENT, always. */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public Object read_Object(Class klass) { throw new NO_IMPLEMENT(); diff --git a/libjava/classpath/org/omg/CORBA/portable/ObjectImpl.java b/libjava/classpath/org/omg/CORBA/portable/ObjectImpl.java index c7ee707f3ae9..5b7919fd0a83 100644 --- a/libjava/classpath/org/omg/CORBA/portable/ObjectImpl.java +++ b/libjava/classpath/org/omg/CORBA/portable/ObjectImpl.java @@ -341,7 +341,7 @@ public abstract class ObjectImpl * @return the servant or null if the servant is not an expected type * of the method is not supported, for example, due security reasons. */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public ServantObject _servant_preinvoke(String method, Class expected_type) { return delegate.servant_preinvoke(this, method, expected_type); diff --git a/libjava/classpath/org/omg/CORBA_2_3/portable/InputStream.java b/libjava/classpath/org/omg/CORBA_2_3/portable/InputStream.java index b457abe98b5d..33ad522db98a 100644 --- a/libjava/classpath/org/omg/CORBA_2_3/portable/InputStream.java +++ b/libjava/classpath/org/omg/CORBA_2_3/portable/InputStream.java @@ -99,7 +99,7 @@ public abstract class InputStream * * @return an abstract interface, unmarshaled from the stream */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public Object read_abstract_interface(Class clz) { boolean isValue = read_boolean(); @@ -148,7 +148,7 @@ public abstract class InputStream * * @return an value type structure, unmarshaled from the stream */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public Serializable read_value(Class clz) { return Vio.read(this, clz); diff --git a/libjava/classpath/org/omg/CORBA_2_3/portable/OutputStream.java b/libjava/classpath/org/omg/CORBA_2_3/portable/OutputStream.java index e9496ffce4d8..4273bfc90572 100644 --- a/libjava/classpath/org/omg/CORBA_2_3/portable/OutputStream.java +++ b/libjava/classpath/org/omg/CORBA_2_3/portable/OutputStream.java @@ -136,7 +136,7 @@ public abstract class OutputStream * * @param value a value type object to write. */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public void write_value(Serializable value, Class clz) { Vio.write(this, value, clz); diff --git a/libjava/classpath/org/omg/DynamicAny/_DynAnyFactoryStub.java b/libjava/classpath/org/omg/DynamicAny/_DynAnyFactoryStub.java index dcfb9b59e3c7..c0939937fd6a 100644 --- a/libjava/classpath/org/omg/DynamicAny/_DynAnyFactoryStub.java +++ b/libjava/classpath/org/omg/DynamicAny/_DynAnyFactoryStub.java @@ -68,7 +68,7 @@ public class _DynAnyFactoryStub /** * The purpose and value of this field are not documented. */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public static final Class _opsClass = DynAnyFactoryOperations.class; /** diff --git a/libjava/classpath/org/omg/DynamicAny/_DynAnyStub.java b/libjava/classpath/org/omg/DynamicAny/_DynAnyStub.java index 1a81be30613b..a2adec9ed721 100644 --- a/libjava/classpath/org/omg/DynamicAny/_DynAnyStub.java +++ b/libjava/classpath/org/omg/DynamicAny/_DynAnyStub.java @@ -66,7 +66,7 @@ public class _DynAnyStub /** * The purpose and value of this field are not documented. */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public static final Class _opsClass = DynAnyOperations.class; /** diff --git a/libjava/classpath/org/omg/DynamicAny/_DynArrayStub.java b/libjava/classpath/org/omg/DynamicAny/_DynArrayStub.java index 74e763b3784c..719cf87ae353 100644 --- a/libjava/classpath/org/omg/DynamicAny/_DynArrayStub.java +++ b/libjava/classpath/org/omg/DynamicAny/_DynArrayStub.java @@ -66,7 +66,7 @@ public class _DynArrayStub /** * The purpose and value of this field are not documented. */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public static final Class _opsClass = DynArrayOperations.class; /** diff --git a/libjava/classpath/org/omg/DynamicAny/_DynEnumStub.java b/libjava/classpath/org/omg/DynamicAny/_DynEnumStub.java index e56ed75175e5..07b2b7c5dbf0 100644 --- a/libjava/classpath/org/omg/DynamicAny/_DynEnumStub.java +++ b/libjava/classpath/org/omg/DynamicAny/_DynEnumStub.java @@ -66,7 +66,7 @@ public class _DynEnumStub /** * The purpose and value of this field are not documented. */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public static final Class _opsClass = DynEnumOperations.class; /** diff --git a/libjava/classpath/org/omg/DynamicAny/_DynFixedStub.java b/libjava/classpath/org/omg/DynamicAny/_DynFixedStub.java index 759b48a4e2f6..51eadf004d04 100644 --- a/libjava/classpath/org/omg/DynamicAny/_DynFixedStub.java +++ b/libjava/classpath/org/omg/DynamicAny/_DynFixedStub.java @@ -66,7 +66,7 @@ public class _DynFixedStub /** * The purpose and value of this field are not documented. */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public static final Class _opsClass = DynFixedOperations.class; /** diff --git a/libjava/classpath/org/omg/DynamicAny/_DynSequenceStub.java b/libjava/classpath/org/omg/DynamicAny/_DynSequenceStub.java index 488a7de9cf1a..6de97b2fc457 100644 --- a/libjava/classpath/org/omg/DynamicAny/_DynSequenceStub.java +++ b/libjava/classpath/org/omg/DynamicAny/_DynSequenceStub.java @@ -67,7 +67,7 @@ public class _DynSequenceStub /** * The purpose and value of this field are not documented. */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public static final Class _opsClass = DynSequenceOperations.class; /** diff --git a/libjava/classpath/org/omg/DynamicAny/_DynStructStub.java b/libjava/classpath/org/omg/DynamicAny/_DynStructStub.java index 907f3c834683..f2ca27f0a80c 100644 --- a/libjava/classpath/org/omg/DynamicAny/_DynStructStub.java +++ b/libjava/classpath/org/omg/DynamicAny/_DynStructStub.java @@ -68,7 +68,7 @@ public class _DynStructStub /** * The purpose and value of this field are not documented. */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public static final Class _opsClass = DynStructOperations.class; /** diff --git a/libjava/classpath/org/omg/DynamicAny/_DynUnionStub.java b/libjava/classpath/org/omg/DynamicAny/_DynUnionStub.java index 6789a34e8a1d..de351d8d4a9f 100644 --- a/libjava/classpath/org/omg/DynamicAny/_DynUnionStub.java +++ b/libjava/classpath/org/omg/DynamicAny/_DynUnionStub.java @@ -68,7 +68,7 @@ public class _DynUnionStub /** * The purpose and value of this field are not documented. */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public static final Class _opsClass = DynUnionOperations.class; /** diff --git a/libjava/classpath/org/omg/DynamicAny/_DynValueStub.java b/libjava/classpath/org/omg/DynamicAny/_DynValueStub.java index fffccfe0e8ee..199b7eba832c 100644 --- a/libjava/classpath/org/omg/DynamicAny/_DynValueStub.java +++ b/libjava/classpath/org/omg/DynamicAny/_DynValueStub.java @@ -68,7 +68,7 @@ public class _DynValueStub /** * The purpose and value of this field are not documented. */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public static final Class _opsClass = DynValueOperations.class; /** diff --git a/libjava/classpath/org/omg/PortableServer/_ServantActivatorStub.java b/libjava/classpath/org/omg/PortableServer/_ServantActivatorStub.java index 658ac683c30e..811d7430ecda 100644 --- a/libjava/classpath/org/omg/PortableServer/_ServantActivatorStub.java +++ b/libjava/classpath/org/omg/PortableServer/_ServantActivatorStub.java @@ -70,7 +70,7 @@ public class _ServantActivatorStub * This the purpose of this field is undocumented up till 1.5 java API * inclusive. */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public static final Class _opsClass = ServantActivatorOperations.class; /** diff --git a/libjava/classpath/org/omg/PortableServer/_ServantLocatorStub.java b/libjava/classpath/org/omg/PortableServer/_ServantLocatorStub.java index 039140ebc253..f63340f98223 100644 --- a/libjava/classpath/org/omg/PortableServer/_ServantLocatorStub.java +++ b/libjava/classpath/org/omg/PortableServer/_ServantLocatorStub.java @@ -71,7 +71,7 @@ public class _ServantLocatorStub * This the purpose of this field is undocumented up till 1.5 java API * inclusive. */ - @SuppressWarnings("unchecked") // Needed for API compatibility + @SuppressWarnings("rawtypes") // Needed for API compatibility public static final Class _opsClass = ServantLocatorOperations.class; /** diff --git a/libjava/classpath/resource/Makefile.in b/libjava/classpath/resource/Makefile.in index 81e609175f58..6c136eecb1f5 100644 --- a/libjava/classpath/resource/Makefile.in +++ b/libjava/classpath/resource/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -192,6 +191,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/resource/gnu/java/util/regex/MessagesBundle_it.properties b/libjava/classpath/resource/gnu/java/util/regex/MessagesBundle_it.properties index f43bb6f8378d..d6d27bdcb087 100644 --- a/libjava/classpath/resource/gnu/java/util/regex/MessagesBundle_it.properties +++ b/libjava/classpath/resource/gnu/java/util/regex/MessagesBundle_it.properties @@ -1,5 +1,5 @@ # Localized error messages for gnu.regexp, in Italian. -# $Id: MessagesBundle_it.properties,v 1.2 2006/12/10 20:25:50 gnu_andrew Exp $ +# $Id: MessagesBundle_it.properties,v 1.2 2006-12-10 20:25:50 gnu_andrew Exp $ # Messaggi italiani per gnu.regexp. # # Attenzione: Questa traduzione fu scritto da un italo-americano. diff --git a/libjava/classpath/scripts/Makefile.in b/libjava/classpath/scripts/Makefile.in index d8685815e03c..210923274709 100644 --- a/libjava/classpath/scripts/Makefile.in +++ b/libjava/classpath/scripts/Makefile.in @@ -40,9 +40,6 @@ 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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -61,7 +58,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -169,6 +168,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/scripts/classpath.spec.in b/libjava/classpath/scripts/classpath.spec.in index 4120d25507c2..5363565bf1b5 100644 --- a/libjava/classpath/scripts/classpath.spec.in +++ b/libjava/classpath/scripts/classpath.spec.in @@ -1,4 +1,4 @@ -# $Id: classpath.spec.in,v 1.3 2006/12/10 20:25:50 gnu_andrew Exp $ +# $Id: classpath.spec.in,v 1.3 2006-12-10 20:25:50 gnu_andrew Exp $ %define version_num @PACKAGE_VERSION@ %define release_num 1 diff --git a/libjava/classpath/tools/Makefile.in b/libjava/classpath/tools/Makefile.in index 2cf1a008500c..b4b2eff49e5c 100644 --- a/libjava/classpath/tools/Makefile.in +++ b/libjava/classpath/tools/Makefile.in @@ -54,9 +54,6 @@ DIST_COMMON = README $(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/lib-ld.m4 \ - $(top_srcdir)/../../config/lib-link.m4 \ - $(top_srcdir)/../../config/lib-prefix.m4 \ $(top_srcdir)/../../config/multi.m4 \ $(top_srcdir)/../../config/no-executables.m4 \ $(top_srcdir)/../../config/override.m4 \ @@ -75,7 +72,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.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/pkg.m4 $(top_srcdir)/configure.ac + $(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 @@ -344,6 +343,7 @@ MAKEINFO = @MAKEINFO@ MKDIR = @MKDIR@ MKDIR_P = @MKDIR_P@ MOC = @MOC@ +MOC4 = @MOC4@ MOZILLA_CFLAGS = @MOZILLA_CFLAGS@ MOZILLA_LIBS = @MOZILLA_LIBS@ NM = @NM@ diff --git a/libjava/classpath/tools/classes/com/sun/javadoc/Doc.class b/libjava/classpath/tools/classes/com/sun/javadoc/Doc.class index 8b98e630029bd4ee522c24dc645c87c331cd8849..79882ce6ae59de336aeaae71f8f3a634286fbf95 100644 GIT binary patch delta 169 zc-ni)dXbIm)W2Q(7#J7~8Pqm%X)@I_GH?cGrspM=loq8jGKBhMC6*=X=OpH(>-#5V zr6!kHLqsz3^@CH3G81z$s}hrPQmv8HIp^mVBo={0ZG4jRbM=c$^YlToDf!9zF8RsU wcGhf+42%rS3``8H4D3Lwg;{`>GH@|40O`qoOnrh(3`#&@CI)2&6)>#|0Nmp&9{>OV delta 43 yc-p(j_LNoN)W2Q(7#J7~8C2LAm>3y^CpR()Z&VgwnmnCpB_|_;5>SqbK^XuM2no3W diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class index 56584bdbb7ba83759c7a9a921b6d0ab8c1528781..322735549586fedab8536604294a280cd397215a 100644 GIT binary patch delta 244 zc-osS@JE2_)W2Q(7#J7~84@;f=`ynzFfzDLc4X0?oW*>Z(QvaJ%WFm-F`xY8#GJ6i zqRhmkoYauYg47TYgOS15Co8cmQNOe#GeZ(Ri~R%WKBT6>J@>u?(z? zF_T%@of#7+d$P+jKA)V)o@dI$zz@``$H2|Nz?ja!!I;S)%9zC0AsKm!~g&Q diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class index 939e890ceaee35270c0221330eaf108c11558f1d..902a01419b0e57e0c317903d9cf7d907a27a280b 100644 GIT binary patch delta 331 zc-jrkTSP+v9DwovceZ7ci77^mF-;{}H;Pd`)Vl1U=(0sO-IY?xQWo9Tb=g`)L_~@h zQ$!@9he(Pf$&o~Q=)E55ynnu*YEdn*8=b+4xEzr-GULBGkKW)A1L+Zuv5c&E*yvLN zIiklY3FL~2JTa3mb_yheLUB_hUW&z!OM;ZhCZ%#nxtvfT*SO`5N_n74RI25h8u`P6 zo?1-QkxV^i8c3xP3r(cq#flFb&Dd!nn^vZ2XC^=g^K`OE7b|oVqK7cOMCoIjes&mO zmqGRzVxM6S7~zOfju|7yIC1=(GQk;>oHNA*0WP)mm4@6h%e{7gVu5FZylBcROQr)pTzMF-rj#h9wzfoJOiX08HiklB z4ozdsG5+K%lrwYs-G2LgUvI-EaMHvnw>p2v9QQi^pz~>+cw&neExmHUn^xYn@`1sp7QVEQ f$9bs-H$3atZ+-ev1^lWKrIbUNluKFsg+;l4?=oz{ diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet.class deleted file mode 100644 index d81864f04a86ac18c451176a82d6145543665683..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc-jL100001 literal 4359 zc-o~`>317f75`mH_DJ$1u^khtEbZXBw!BGkNFb4uw07b&Ze_=fjg4crvGgoYBF`wJ zQ4%*$C`-$lvKDBe1sW2dVQES2q@iJ_5SE^v{s|nu@QKe2hr@j{vMpPxM;CRr$WJc!rP*ik8DU9rWh>DObUBMpUetEebP$l z*-_m#kcE1E(P0*Dwb@i*dbXeQByJzxXDL)Xh$N@JI9brM`4ze8K{&7#3=-bH(iXi1Bg-xgVu&U3vPyG6#(aObMxrYzIZ4KuGf)3$XwFAY}6iMB1_?aSkF(pDR3M!vM!r$g&UP} zbX*d9L%xB_ zDwJ!$FRJ(wzRV)z3M|6z3L>mYC>iKqRq-`Ex%Ap}5%&KtuZ=5TlB19X{05#<@Xdvy zw78?`3fwMuZjO$ns&$7E(w3Kd|mZMDyO}-T(ozTMgE}m2H zJ;Ig}pNUk#Hk{eTOjU7S7J#r!CstO^@QZMP5MMQ!ifJhpn8?e1fN=#sB(#?o@qSK` zlfva47}TWF_sPD?FkTinddXs4%zsd>)efU9H%DZr1V06!sUO9J#~ zvm&Esd)%Xow}$aE34MXkSPr!_g&AR%iuiNRms0z>!g8s2Y1vh7Z5yGpfo9!tWV$<^|dj}oJ|C0B_v#&jlcBQzM_n7oxI z8Pt@#wGU+*J8Tu~l#uNfn|OJ?#v}(ealdH_+clqjyXwo^VQAc{`}voJYHMY`&NI1E z5M+9YX9wVODK%~FFCpC4F%R_xUiz?szhNFh8&E~-QOoO1a*Z0)p&oE&8_~ct?k{-H zW7xqXNe)$)7Wq_53Tc;B2<6Z6})5c z8d}CX=h508*fEE;MBpOSF`i#RED?wV>faf71@Uoz{jT9TygN}9shUIgi|Cod{ZFAu za=V6s@%kh4c*tdNw0@L7b9nC@-gl9nm+%i>f2J}rRf2p}B1K&w^hj;!*~;+g68O<; zI6gj)Y@#|+MJ(araet(mCA7u@`y$m>!9Kf+)AI8X!msd&gc7NaC|B_*AFn=>2ul8! z@wtc+30}n$evEl``HEbA-G{M@_}5q^8NRh71OAo>RDwLipGaU1-zkAUR~h>KBJ^Sj z^h{;wkBZPsCD4J@p+7BwHdfT;#YM!{OB}fkXyX5j%V?lh>cE^k4)Vhx$62oFay-wa zRgSN5-IU{-jQ2wEN&Y7SMfmT13&OOOyTfgaXhI|1jTUO=zn)gaD9XPf9o)aSqnBdb z2gh-ey6`aVz|*vopNw6&LA&t=?ZMwEfqzgpZqi-~(LUNt`>BI^sFQkWkPgxi_0cTd zPiN^cou>!r0zF8t(Ez>9yKnODO?t=|pQ&SAX_|AqA8*%b~Ag3lMh%eclGgnf1R z1zW(+Ht^#W96|uw@$cfS7yra{{F3wh4UBRGo#TYMi5Py(Clm^CE%*(7iy#f58Nb8t o5umf~><>J<;Lcv<+3W7?kIc`9Ke?%T1AlglflTbp_zQgh1)PP?!TO>fgc5Pjn~apD*nni8OVLk?~l)quDaAw{W>Dp>`oRS)fHV?r`X( z{FGjhKp+nM0Dcr=)`_YD5h~)cGjG=K&6`<&|MB%3fXC=Mun2=#O@b&DMR6qbIM7*^ z7QsOlrBWBcU{vT_M0%sd-D!Avq?1hTh?w(N%yD27{J+VZ=MidpoD|(hgnoGO-s{YJ zmZ(HOXUqP-5X0BvjR;bq;$U0niHg@(b_w<{JCF?!njWgCxv1ch2M3o4SN-{vg)mWa zYjQY}`HmQ+lCT(Nkw|w%o)|nU+Gae$F#PYu^2}~l*0#i9+3pWtghniNC{?V-go?ki z$!8%oq2uq*8Dr1IGHyAzN$6eNpNHG16Y3(0WKndVa@VP^L7o%Z`}2Ic+u0FAU^H4c{zbg@6UPh&b)ZIgS)I`@yLdA9}h~FakGqvuzmuF C((0uE diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class index b3a2f7b42ee3aedb8e80fffc42273287e42b30af..04004cb70a28500330ec7bdcc7958f9456230719 100644 GIT binary patch delta 362 zc-ni(ahHqh)W2Q(7#J7~8LT#P{bXde(D0ckU_4ojNu8G|Gn@X zqQs<}R2z`t64rLsj0`-Ud3mWt&N+$2#i_;Y3>J(GS`!7dCNF2wU}T$ofys=I@d*P9 z<1+?M#^(%zj4vjOF#9txzM1@uS$=X0vnCVc$I0uN<@p>Kn1GOhfk$f#gM{|v`^=(B zjNcfffg)lMaRwO%Sq26$OBcvu1VX*ZVl1k;jK9Ikcz^;746G1k0**l6=>tW0fMS|Z zqdB#-4=^xpV=!0)8shBpU-GkeLcpA`bKnnX?6w|##()gXyUs6`Rcu4N$aZxj@S zMM1P_)21KMBIrj%Z>CnolHElii)Dj4?ErFs)z)v%Jl&hEfdd)T}Ki7=^~*$QUJU zhr!dH%<6}FXHL&&I;Xa>#&${dYcd#C6vPncNA^~)b8a`2*GmTlgCYIDKUq$@Z4uL+ zM;%ZZ6fK`O3W=OvEE>fs=={ol!6Y7WoHqxdP!AfY7e4Ak7xg1TA&gQODN>Q9ZvO7* za}K~xF*qsCTO|Kk3^s89C2)&qhlmP>F2&u3kU&XT1q~xCc>PZw22l-IY(y}zy1BDJ zx2PpR<_k1FVr;oCd56h>B{@|$C!m7)>p#*=<8P9O7NPME$(Nh3CMlMN<7bj9E`Dn1 oSKt5Z)*0w{2CHECk5v(2t0JVaYOyt}TX_SUBFmQHG`6681D6wBUH||9 delta 472 zc-m!-?JGlJ7{;&XJUg4|V9m>jFKUWOUQ+V1lqs8yVe>NYhnLf9aME+M(F^p^OL*xO!t@%;^q3u(yR5e`(K}da zmgUV&`yL4V0cEZn+|79qJ{~Y|!z}^bT+JW=&7p_yRX<hT!En(aUnJ;GPFm zzd+3k{1N-eBZ4jiIc5)YdB9Y*5M9UFPX=51x%y=j%wU)uTAVGf1*!O(3Wyjwi#a}v KjRx~rg!B#B;$JoZ diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class index 794d3568d94c3045f20262d914639282d3a85b39..9c7adce8f36cb4a5bf046744c760bdfb708c4a15 100644 GIT binary patch literal 28956 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 z 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 E0Hyx5m;e9( diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class index 88ed2d53cc68cb7b657fb5ec0f7124d448a0477a..e15bd1484a3900c8d009e7309e6fd15c3073e8bc 100644 GIT binary patch delta 1545 zc-nnb+fy556#sqM&2CsW5GbJpl5#DVBoLs0NC3Im3l$Ix7Af_zg$2?=pxdPuv|<(S zqQ$QkLF?dy!%N4hGa5j&I^+1FzBu|+-+j`5z=zheA*DD@ec5xq^PS&0zjN8|_sowy z%8$3dx(T2P*A^AME~z&%8r95cLuc@Jp4QH5p=mQR9_rQ2#$884AJs2}dNkA2jcB-e zaXcrwL(Sv5&zO4>hhuM?<})5s8kf z$U{CuvN_p4rWvhjYCU0H;D-d{V_zc$({CP|~afr}&bnS21LE zP7Z0~$2B9Oof_BsW~TH$OJO*$dvKG6sSjJ@v$Cnp;ba`bX%%NM&Lw+sUKCR@CTUdn zARSbcW=E>eM^@8_CNq^IMY7 zxqw;)3*gqIuW(VWPQA*&E?Tw^EZZ{QC;0deQo0njY>j+Yu9+iFwCy%HV5ip7#?m*L zENu`-16=-fsQxXa46MWTCDJ~Rd+(ud3V8r^5K)g*k{NVTw=r-dlO(MOvdG&*x=5#N zD>A!AI4kF`LQ^27z}vlr0t#NlLypS1{V|mEuOZhhZ6L6W6p!eZVyGgMx`ph4z&dKa z6`R&@&{g42(%FAX}BoZ`lZwzB^3)eZtJ!ncH4|^OHLx-j%y%FWLQHAk8Dj z5Z=H;n>c7gf1+mow_|e7s`AJ-|3sCR_6RzuJ{x{P7rIHx_!*C)hbnd9dpw3?RR12V zqL*&%@KX2t@HiyG97liL-^%bryz?uB5=jQPFhG47>=K&SknIons$)30ZyC-YshfC) zh|LSk7oZCM2;LxoKooB$<;E%cw?phu3}Ohwl+J-7=oq173cWBE9RZ_>!EN7-(H*mX zu*4#4(AiG1-s;OHA`D$?C=705g5f)~be9J_uZQZfY vw$-zRg@N>U*Rg1^jp4oY_hVR!VdX}=!6nw-N^#GtyY|(yv#%e<-9GvUS=BmT delta 1291 zc-nPSUrbw782_DnZ|^O)w@?ag>DI1A#u#lWgW*I5-GptjDQt>@o%7EX3UorzQs%#H z-6qPWPQ^2~utYNxBQeV?|grLzwdnK zWB)H+{rkVaz6qcMSC;kE9Qvd6$~^m0Ys zswS{k!yX=&1M&mt=Rk z@xPRq`m~6AhBw<%x&!-=GBAlL{+n%^n#S`Qj`JGTC(mG(x2j=v4linWfge^w^;z^% z`!nV&wLbwWwSW`+oZ4UYGG5j23WJa5HDAcUYdFcE&6>IK>C}Ar-Htkt#%Tk2oaC~0 ziO8Mjx3mCzi~p$wolDrMV+j{Uzux6__D=Wv4D6J^J`fmZXyYAH3qNhQ%S-6t7wlbm zz(%rY0%)zGY3ZktU}Rm90`y1;MzVnFuTb*^VG?R-ttJm(7ZmDy4OusxjP)4Qp`I** z2VU~_(O#ibgUHN2qBxC^ALYKNg-ydHgp&mc_wWN%JMv8yn#WcV@~Ah^x`JxI;!!QM z6J(Uokc<}4`Hj-Iiv6y*N4*A@UvYPd5Sg$JS43bG8R`s;8FkI=0R0bInR7=cPLkKyr3$Ip|uLN->yC^h?uAvv*%O_6A@(?W6u&KT{A zUOYvF7G)NU67%03S8Zk)kcDyAcjb9lWx6<#dj4I&j@|d3Z;R{1o}%@O1du;@V4M);T`vT c7M3ksTH6>!wd{DgGJ>9R)W!^cSa!So4{|E(cK`qY diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class index 3576ed98ead13691e0fb1a521133b7a7ab181492..064c32a94a0daaf91d77f9322a70ab49fce2abfd 100644 GIT binary patch delta 29 lc-q^_xs`LnEoMg5$+wxE88s)%vjnp0F-Y+0PcCI~004?;2j~C* delta 29 lc-q^_xs`LnEoMf|$+wxE8FeSivjnmlF-Y(lPcCI~004_H2lxO0 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class index 3d38a044d032c7996ec76fc619fb7b9200d2d2a9..be042e31c85d6a4a41f2a8da560e19375ae4305d 100644 GIT binary patch delta 29 lc-q^}xt(*vEoMfO$+wxE87(Huvjnr+GDz{-O)h6~0052f2rd8s delta 29 lc-q^}xt(*vEoMfG$+wxE8Eq!Zvjnp`GDz_{O)h6~0054-2tEJ+ diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class index c6e6f121d7e85b6c9fe6a449d9c93727760c4ddd..bc665c53955651577e07305439a98daeaedf26fd 100644 GIT binary patch delta 31 nc-s5P^^xN8`MxN8|?xa%fcvN`|&vP}s% delta 31 nc-s5P^^FmZV#vN<56HaN1qd^KdaS3OQnwZ71{L%@-Mp%`lA|{>T%jsqdvS zCy)#;4x+8Yruo?Or8R=tGLB5|Ib7!`7aaGRAV2lekk<+rjdfUXvoMnNR|SP zzJW%xL>`^2r=%C!im`(s;{!&X?Vz%SF=KWM<8S1a3HmJ~N9I@LlrPYgZx~g+W0L%1 z-OV_SDH*CFgEG2lZn6+{(g>Aqyv6wJCopde(VG4yFeZ1aX|v9aT)MI z1}sS+t#`PjpqKY^AFs5_D-mx>@@OP7-hzAw@`lXpYA@-RBxzkumo#)=OkuXamgQ40 hM0MLRdjPa1r3ZA_^U_+#+HoB>=vkBr+{A6<{{YUNQZxVn delta 538 zc-mdk%TB^T6b9gb3ZbQ~mWo^yZ+Jmy)e&Oi1Aq(GUJ{oLG(m$jq2QKhz%E?)3T{k9 zqDI5o#HVoM##d0M13|;4=QQ)r*E5seC<94;`+j-_kVl~_zj!%P*w<7jh!6y_xf2mH z1p2vkY0-A;tWJ-bwtZ-~Wa!YsAc(05L-xCbcSWv4%PJPI=uyG+G$B?hE7-uMhzvop z;#^R--Jm{Jbt<%2w_La6R8*{DjX(JQAstoAjfUOiTWnXv zEW;+E|V@4m-#xwNOKB7I$8fFjiJGLMo>Cs@KGspV) zFp7Dk0N#m^7)1PIjKCtx_$ke}N8B8Mu=0SV+ablCAr^%2fj>|igBn(l<{&%e2t43m z2hjhCk60HlX@34Q^|7gsO?Evav%ud0$>7r&lhPNL)M188DL=5qW82taRpta`zk>7& DjXg)M diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class index c7429e294aaafb7fa687c0479c496eb731c837e9..23331dd807afc31e2ec5d194175140baab639880 100644 GIT binary patch literal 81614 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 literal 79930 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 BYq0RL}=I delta 19 bc-s5Q@|9)7FGfbM$-fyr8GR?aG8q5>Q@{rq diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class index 3802e3405cedc6a9e4188d1b65f5c15f269c9132..64faa74cd05de155d226bfbef01fe39cf60d140b 100644 GIT binary patch delta 37 tc-p(ic8_gC1`}ic_bu!1EH=hy<*on5QeM_HjU`qaWe%)yKe&h?n?M#|%wieC^=6G27jQJj#H^lF(trRdix z16s505mt#ol^N18!#c5EGNKxzx@Jr_M09JtXIzg==!vMFiRpz&y)vaY;(BLVAI#{J zgua;7x7~l*N$Qsc{jp>Wu5kz$A8FIUis>ZNn0H#u+`1e#)WW9P*isi+1<5JIw!-9< oU`LA-lx9~MipsLDJO?UrXq(Hnx1uUXI delta 264 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

2AG8rk1I^9BFlos$ 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 TkVJfFFA)l9mWWEF94Gxh&`(jy diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class index de3c21147f65bec0edd3c7c533c778645ccb485f..71e6b9640534e5af6b68ef52e33fb8ae86b89a03 100644 GIT binary patch delta 350 zc-ot3{lr?})W2Q(7#J7~8Sbz%FflTyPb`$$sI{J3Swh1nIX_pwxHL~cE3qswB|ll; zB|q6()02xqieWzw!vThalZAN9*$(qC9AP***`G&SSO7^e zh-5Si>FYY?&sEXM;@#|n`Xa0FU*9Vj9Q6w?Ii0_o$_(mud&avQ@9bi*0J M1~7qHx4^910PfsTz5oCK delta 242 zc-nhnJ=0p?)W2Q(7#J7~8E&#OFflTyPb`$$sI{JZaxkx$GCRY5Mh4;J{9OIw(megF z#InSc{A7KX{A4Z$DTaeQ42KvFPyWMg&UTcC;TXg5$(B6Y+$VV$I2r7?8TK)poZP_^ zDVop7Amjtmsh^XWm#*)hl$DxXGWjP@)Z|iLe@6SwM|mUo!($kj8JK{MP|!Zeux}=V z)DDIN+Zc{$ZDTm0eSl%#PKHyA4BHq^uVG#TRKvtz4kY=2Iv5z{Gq5u(V31>2%wPfJ fi9yU@uw<}e00D)`39<%^%O@vDi?Uw_>%0K~3SB^Y diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class index 7f8381f9160093696469802aa85d7d9f98debf1b..6050b4153ed910ad657321d70a5958c035238116 100644 GIT binary patch delta 1026 zc-n1~S!_&U6vzJuL+AERwPxmamd?_+T|&b_xe+EA?B{dMsQfP8YC z(T+Jfd%6v+te%s*U{O`>tct}IQ>rU-i>oX9XO(E!jdwcU;{$(m^lAS|M>9Tix0Hza zRYx)klhKN=9q^6d{7(U%m{R7MLU8}DI^R#Z!)G0arh!P)(S$e59cNMz|LmA&8wd@( zxkqYAS}}A);lN;|AqFQ(&TUCerP0IC4u!I51l%Zv52FymXmrIGWMeG)qFkaABypld zCSfWjV>T+VOsEFauo2U-4Kr{AGjSTTa9#XHRB=n%Qku(@>E@bF7R}?MouV|Kw|m^R zPKy?(K%vk=350l!)1*aQ=Zw)}6|uQ2TB2x>(9%R1SDt;j9CZcksNn`zj3em=yWA$N ziI?T!LTeRm5L&0`n%koFD*Lz42DXeCZB+hh!=g=!t{Nt7<|c`3Ren)=fnx`fP%G17 z8Od&5pS~(VBEuKDclIUK~UihhX9`a^(8?IEH?x;~Y-~os{kc9P}If%4704 zzs`F-8hgDa?-H$4>_f3z#o99rzUA#gXSvy1z$?WY;LE4;T;(g^7V$3oERF(kikV_8^taUSez72^lS*2bX{e)idyzp%?);@8(bQU(M>h8Q$dSv@l)|{E5B#R zqC1M_hD^Gv@{bGMQ}kNszM^2bKQ(fBI20X%wrC^&k*fi3>+vzW9$z9C&_bxk_miTx zK~UEAAXy*F2MQR8{TPq#h(9iV6wae3(zVd`RNmGzj%JRe=lobsQI~0rda1H>Rl%0X lN-aVYC5d8)mL>J#746xPt7xq!`@d~T6^L&kN{$ohe*or!4b}hv delta 980 zc-k$JZA^_}7{~utNp(6Wb>jV8l<;tP2vFJIVjb!X3Z|9}7gec#vhJoj^7p7ANia{o{FbpRP; zIcI6NasDvP$PLC@f}^y)*1NW$&RgYQ?=Pz__0Fg-wO~KqTk!!O`KfK<@XuC!!B@72 zr-gm9A`IDK=*KtqhcD9V3HH3fo!%OMU4=J)MOAs}I_?X<$2}t|Xc{L)qz6ra1!H(| zL~i6{Sdj@ErXUhoaA4|%ixCl2n1f*$FNTued%vN0bySRhX! z%CQhNC_*EO(To!8#1ibmQk=vxoW*k768{Kg?6Pm5m0aM^xXo@-1^3!>XchZ4jZ+*Z zRmw~jRY~gMPKQC&{Mg~68nu3`)1+EORYG+`HJs_8tK~h{AQTP!%ITv6~`{0z{B(kqEK&R}bdm1{H$ zR|@-LbUqem@;1>|;(J8h@g{Yv?nUvV=qfkG`?xxGsP}W3>*2qWy!@XOdrWr44e>#b z!SmyE?i1ZDYE3ZszRYDM%xu0bcMWpZB%@1i(-=|0YrK(B7cM~{0z?ziZlb>x?#p=B zg-@wn7)ZN;{ww%S=)#ZAz)o2cfOr|hWe0Ev!MH2_fvT?$)%ah3kbdE}bf5r4vd5!w nU}7Zos*g)eObP0f-~EJ(5)0^=WKO=8m_jcGDTG1>`%vgV`-%mJ diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class index ce853e17119cb5f0b3bc1cffeee0cda5f08ce1ee..499539d2eabd44603ec39dfb7d0ad7ea5e2ab2b6 100644 GIT binary patch delta 81 zc-ni*{g!)!0t;i)WJQ)f$yNp_hBgKThIR%ch7JZZAls3li@}?rXYvV_ZHf~axELle kh%iiMkYkt%R56{wiD3pqD8o#KB!*cG84U9#&u8@m08+RVU;qFB delta 81 zc-ni*{g!)!0t;i|WJQ)f$r1)BhEfIvhB5{thH?foAls3llEIsydh!XDZHf&HTnvp2 jA`DFoattj%6>SVo4DAe|3>^$f44n)a484=*v-$x5C&3dx diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class index 2963ccf597e98c18e5bb77c300c694c342331147..3cbde58449f7aef1949eb413af8bd3a3756402d8 100644 GIT binary patch delta 221 zc-mVtm9b+QqrjmzXJ=qyWKf*U$RxE@92$RfeP$h3urA(0_za;oxVM*Yn{l^qyGJQ$c6 zn1FVP>|jXV#*nGCjUiWia)7D|w+KTFLo5Rbh-|J`RaSKraAZhi+Qh)fpa2xp1Zo0l mmzVP{~Pe4a~oqtY=x@y$n7nN+zL7@0N!<(QZ@0|2vhCkFrk diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class index 7c9903dc5ea5b8e06bb649007ba6e6c02015a421..d7e8ae7700bdf33a360cfa77c25d84de71545748 100644 GIT binary patch delta 47 zc-niy@`Po>Hb%ycleaS_$Zla^X4uBS#;}EfhhZy&5RevS*ukL8u#-WZVb5d}CIbLr Cw+!U~ delta 47 zc-niy@`Po>Hb%w;leaS_$S!7JW?0I=#;}-yhhYhW5RevSSk9o#u!2FIVfADaCIbLf C2n%@CaYSx{{9Zb4JoXhsIs{F02+B1Q%wpRB~PME#t^ qymWp4q^#8BlFceYLPE^Rj46{XRiyb-8Pgb;85kMUfyOW~W&i;3Bp6fx diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class index a38964f0f0851e5271b8c6447a0970c13c32d240..2b9c1944a284f951fc8cee3d5d1f7da08fdbb1e8 100644 GIT binary patch delta 568 zc-noDO-NL66vfYP#8IARWs_(a88uiG^BifS@}tO_NXEz-ijtt`bHK65SJO;s=**<0 zMMcB}2DOQzz=9Cz0~fhy6VWD!h*oWbpjDf|=Ye$obRNo%YZE0^oP5+qoXA)^A`Y}GHeYk?h<&`JeuEN3Tm>|zbOX{3V?dubtR zlzoQnBtwh|y12#xZgG$Ybn}QqJR#0BM|s9Eo^za8dU(kRUUQOpD)~S!pKUsWvZjq8RWq!5E~>%cAS0%cQMHj%oV@xenDk>RFs`dy z))W&a^`xGfy%${995;&76>en2+^msLLETkWqbgNMle(as{D#dN)u)0knP~}aR6t|W EUkTxYyZ`_I delta 412 zc-jq+U1-g59L7JN|G}C6e+|dN@v<|qSX*ZuA!1Bwak4ZN*&S+U7;RpXmz~{syO4{c z+_=$1jnZ01yVx$=NN$uQS8i7;S4ex|clCUqr|3me4CgL{>`9l?dNtmIAS!$Uh&wMcaV}}uYOwsNFI!traD!N?EDHG0GO`l7+ z=28aCaNFfPu$D)z;E5|4ay7%QVZ?R3wT?-1e72r1uIIZOm@d1KpEmHz&CJy`zGk&tuuO9K6$Nk|6Q&XO-jKy8vsAQ54oe^=EsYnJqLt-}>ORTkr`fxXRj)LcD zwU=XFpyb8SzK=osx#uMwdnL5K%FFQg#_NoS)TZjw*@&AVHR2Wn0b`^wEL?{FMFvy} diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class index b68553892896681e61814ee0c21c3a17aa013465..44a0368205ee838c55cd9909e8772c145d59a55d 100644 GIT binary patch delta 4122 zc-oCt3s{s@8h*cjhWY;)eqdl2U_cjy6=4QM!yOY0A@dqu5*O069B_oOVL)ck%5u!i zw9?GK+Mu=dvPBn4OdKFet=25Fwe5bt+ik1u>TX-D`<IobUZ^ zbGW>FqWSQD9^MCFG+ib`BIIfn@#)%Ir0#as8_Wb_m8ah43beMk3BEk-1f^?B49=|a zm32*xMgCS_(NfoP*W#wSqRAe&cky{mb){vcGFr85hBQk6D^w(+!Gz1PQpOd8VM4pg zT+RMRmZQ; z<>k*ef^fZx8*rnxTTa$*BBX3dNIA=djaVT*lTFO9MMV~d#o`v+CgWB@ym)F+Yrx|z zs`U5+D*k}mwL~S$u@UVm?!X_}TfaL{>GstJ8VLHlY5CPc*_|pT;!lK(yoveRiTE@f zA8IRPCc$77V8D|7s1KsBs8}))w%ut8BL2lOFZrt6LdJF;vg8bDFt+)#v;Ouh-?PFPc@m)Lj=S6$;-~ z@t$x=@%XC(u7Iab9DbnULva{J$>;KlvyW7Kj8FKP0S29uMT?D1H++WAW&B-p#MIyWqsFXw&?QZqTc&i9kf{{|mCR3U=D$c4)rwnasTow)0JaJ>P zGua+8VzCxqE0oQz7^%>2`B5cVCd#EenMP>)<0h2ni+7vq-GLdLb*_51i5yfYQvtye z_SVx>#JKwcjIrC*sM1K3bM%_Uk=G~FD6K5M)8Y94vqk$j-f14k?^saFl}Dvqjx=5? zOc*_>OdK+*qok&np= z)wAdlnLH<3PMD#x$ycw?rF>N>Q=@j1IZg3WlS<9BOxtD7HM}e8_Jcidm@Sf9LJPNK z34U0B7#(CzDo6+W5t!G5PWR_vvi3yCt+)iK`@OudE>R7oxSZ&q}yU_23ssE9;7{{i_y_(Pg)(pl^DxYq!g=A zhSiwDV`Mh2K@G0OLaf6go*y2p$1+@xZMYE+ayTEtCiG!54&i1zgDrTT=fk_W72o1E z{KTzMhc+_e4jRt$pb&S`C~T)P?4Wb8lcwP=s=?iK5jv-5h%)Iq+|QH=Q>0bs!~;CNW=pLci3hl4&Xs0i7vIKVp)?*{*v&<_C`%g0LE4Q3 z?BOu0+*BiGyV)#ZFV<_Hrw*f^wfMBu;Cepc5rFoP`O)p?>ahGlH!G3!PkF`ND zmv=y~Tg|&CxQY|8I=mftR|;za$-Qog_RkLNd-a{V0VBB_J5W3nN`Q$HVWA|Xk%i}xmAhdI@+cK{ zN)Nl260sxPs{+F0Q4Xo_>p3(;pHqAaW0vUF>ZTH(?9qhS#H1#I-H3nvNvKpb#=o z>UchNaL+5D(Wszep0r~zoyK7fl_E&z;A-xLYiI&CFujE;pwUDeokNrG98JMX+#m(u z_6V3!z?q`abQS|2L^Z371A?Kgml@5aQ#?lN(T%Unie^%%rIwdM^c74xD%>9BQlc4 zve5bBKErJ8r5Q8j!Vt0-JA-E~XF;@Nd6W`bi1@k}>M*y6K^Jq3^ z(FK@KbKs^bG}BzHq~Bv5Rr5f(kcY-Ro(&6l4lKlex)_J(5t_- zb7ECjIu1d$(1l%&$B@&8@#3$5h35Crf*Fnj$O+NHnL4Mw0|^C%R()`cu9sYE^<>o- z?%RIis{-Z}ju-GSW(8E&h76IJju5$fQN!73p(T;z6W0xAxL!JN?QO$|i1}&4e1YQt zc|+tACJQ3r3Pvrl{6Jw>!^%!IaG@=QkuF6X&);P7A(NUgg6D7{ErXNSa`Iy;1u%n_ zV=k?LmoA5&uD}g+B`5Ax*h;H-fCqU_uSSSx_5kkv(Y%dW#1}0*h6tG$8IFa-jXReW z?_f;r{G453+_%COy#;Df9&LDK(f(_&JNDv-!5xpIL>skrnVBW;oti@x(H5C%@1a0D t5=AEn|Cwv&;nJxeJeh9R-pRC9e|Sdm*8eSj+iATq^<-~ku$YTh{1?DljgtTX delta 3863 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 AuK)l5 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class index 11549cf7f8bbc4d7d978eda7561a745fd96e8be8..e17d157925083904ec4e52b31fbe73c8d5826851 100644 GIT binary patch delta 1183 zc-noFTWl0{6vltwcDu9P4z)I^r5FiCOsIWWZ&70v9;hbOEoh5W5z+1Lv~1lA?9LWY zVMS5AJZM=jDKS2P+8FUtsKyI4UJ@TFYJw)F5N|QY#Av)?3`XLAX5F+g(UYAbd0{;G0`~?Y`3^tv?g+yXrY*m4#!90$y_4ZHns_oPnwQ4>Y&xDDimn2X?<6bJJz}qGoz2Z$E`r&3 zDdU8>#SrA3c(OtrAx^?#Ks3%y?Q`>~?2t{;Qx$SH731kbm_bp$IiGT!N@ti2!uFW1 z++xONvBf5_@ZWx}$Yl#| zzL;=x`F~6;*tj0WX^GiXW#f&k@d`HEZ1DSQV3>JF_@P%t$rS9Ncdf2@o;Q^|XNYVrd_z>uH)zyg<*=rg6^I zb42w#muNrB^a4G4k$$~oZcu5$Fdty24pP=6d-VzvdX0DWCeu2^j1Kd)ruaqgP;Z9x z684T>&-}^L)arf0Izod!V39uLY<)z#j+zBNHVb^h75WrcGi=u}cIY^}^ckc2oJaKq zPv|T5=o_BYw>+iqc*bxY(DxkD4@~JNj_7BO>Q|2GH@?&fv)AwZp_7W}Pc=5^FD=$7 xouePs6$q5q)wf-Ek69pKWL?EhBfZ9mTfu$)QUP}P-rvsy=8PBfUVozGCSLX zm##J5UNor#%1skB22>L6O+>5_jYPZ-Z#a15cz$h_3Mux(;>sC#`1Yai`5)mAv2PfiT%V)w`(rpPEp1 zy^X`IB3W?;-3$d|z;m5qY|X-DW10=YSSs7t6mHSvZmv7!T805JeZ(vIZd{q6EbOrJ zjx9#2;*>K~#Ehuq5;bJH!lIRKty&&-LzA9OEn0BU+1l^+y56M)jogsq)m%?>5Q4R|0`^Z>HGdo_w1xMJRfZ9pP;yln`2Olz=9Y&6oEO77!5|KH3n4! z{u#V^YH&8W-MQMpV1$(H@rRW!CFes(OtP zz0T9x%k$dDZoSDqt$mAQdYhBl&lw%yI~``a5m*@C5H>R)ihSxQin2yL5k;l%Hp#kv?=YtOy$VdFJnZ1wO6j~f3eE#k4re}d8IiW@v`PRr~& Jk1H92zX3nN_JRNa diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class index 5b5aff1523b15920750d39c73eb64feab85253b6..df34d72c46065b3f0a72c46d0bd85ac21f84d0f4 100644 GIT binary patch delta 13 Uc-ni)^pt6X2P32BWKTvJ03zT73jhEB delta 13 Uc-ni)^pt6X2P31!WKTvJ03wS6`Tzg` diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class index 884422294cd85151bf944b3a62d5097e4d16f488..47b676e040faca3fa11c881a766466fd02e0bb83 100644 GIT binary patch delta 73 zc-jF;0Ji_i3CanuC<6h(lPLqIDZ~H?0L1_k0LB0v0LK6)0LTC_0LcJ50LlPG0LuVV f0L=hu0MGz#0MnEC19}P902%<;03ZO_lY9hD8}AkH delta 73 zc-jF;0Ji_i3CanuC<6holPLqIDYF0x0JH!T0JQ)e0JZ=p0Ji`!0Js1<0J#7~0J;EE f0K5Qd0KWik0K${`19}O@02%t)e aHq)LhRJAuy!w%{?Dr$^iEE$b@2K@uo^g^Ei delta 200 zc-mXQzLQPh)W2Q(7#J7~8PwPrm>3xpCKk$V)H7w|=3)?MkYs0&U}TU33W@MANHIt= zGH@g&C#Mz{s~9jcm}*QcP?*fh6vN8Hpv0g&xr?ce@%3a*X3YX;24)5(pqboSTNt>s znT>WZh;0ONnHczhBo|1EGl?E>?L4Nmd004OT@4 Pb5>;rM^?4TwJaV0)58rh delta 59 zc-lM4d6aX*Tt-H-$@3UPS$wFfwXP&Sc$Tsm&nGs>7hfs>`4Xq&0!G4y!(cA*%s{HLD?m gGpjK}2&)N043JJ>HDkyJ$`=FGm9bh(j$%s#0Plzo$p8QV delta 82 zc-lL_dw_Std1gk7%@>$wFfzJM&Sc$T>A@h)>dBzQ>cyZ6q&0!G4yzA?A*(NgHLD+k gGiv}t2x}li43JJ>4Q9v($`=FGm9d6Sj$%s#058=Mn*aa+ diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class index 7bf3e4cb45fca3184739ef44744cae94563e5fb1..0869d61f60191c5181573d9d50364771b1aba57d 100644 GIT binary patch delta 89 zc-m{{YvN8%rG{qs`=_tZOYD7t3mC95Zc8><&X5ReXI^s?TQio4lGW1^^j-5W4^X delta 89 zc-m{{YvN8%rG{W8~zctZOY}8F*Ra7z9}38AMqV8RS@#7}Qyl p84Orc7z|lc8H|CnC2Jak8*4g45ReXI&16Ucs?TQ4p1hhZ1^`*f5{&== diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class index 41645e8e9b4e1d801a4a7c8b04ae405539c2d9e0..021d8852511211be7a5a9273199d9fe408d2cb7c 100644 GIT binary patch delta 97 zc-rgWYvK#n4FwiT&!Zj$Y7)~u~1>NJ4+oSW5DENtZOYp7t3mC2K5$8*3ax5ReXIO<+g?s?TOkn!JWB1^_kZ6rKP8 delta 98 zc-m{{>)_iU$->8(n4FwiT&!Yfz{p^vF|kl#vl~ktBV+F5qpWK!3mJG>ix>o0iy1^& yOBv)?%NW#I%NYz6Y5@xaHV33{6&Sc0Y&!EW8pfK5vNrG94L3wf{Qx-EjgVy9+ zMrCFl2HnXgnCci)C%ZFi<~cGj0U-ke=OzX*A(?FqavOmhCI&tr$pw;N&0^qS&1T>S z^2Hzu83Y&v85qDU6$VuXpbHq(zJEgC3A21QcUrfBJr5VP_Aj=@n&LGFgAdr< zaIx%Q5ZlBcBc!yAL1iOQkcoj0Nb)f-Gcd5WGjOnWFbJ@AGVlY%#2}g&1b~xLMB!NMg~)jiG>QAk1?4rF_upL&GI&|ih+f-nt_eAhJll{mVt-0jzNO8 zoX04@cg05t`p06hhy07M0*07(U>0AB^E0AvNK0C)wg0DJ|l0FDK) T0GkD|0H+180ILPFlQ{-@zUCgU diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class index 81583d897832602c1dd2b2206e0ac058c11faed8..0c49dc9f9e8504d359afdaeff4bcf8f41b33d5af 100644 GIT binary patch delta 30 mc-q^;wuf!QJVr*t&GQ+V85yTfUd-gfI){Oab?)RZOdbH3TM3r{ delta 30 mc-q^;wuf!QJVr*7&GQ+V85y@uUd-gfx{HB}b@${iOdbH70}1p1 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class index a3952995909a35fb6a950d527278cff004bc95d8..04172f0e42bd36fbd9fde35a9fc4f69c180a7be9 100644 GIT binary patch delta 29 lc-mXZwvuhbJVr*N$@3XMG0vYniOGv~F#`wdlF1L5JOG^93N8Qu delta 29 lc-mXZwvuhbJVr*-$@3XMG47o_iOGxgAOi>Mp~(-KJOH473X1>$ diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class index 61bf1f80899a6b076d1378d5aa4c4d9c2fa8f403..c27b42a9a33d58c2741b13c6da4f8d1d700f845a 100644 GIT binary patch delta 29 lc-mXZwvuhbJVr+2$@3XMF)o`tiOGv~6$1zB>d6n8JOG`#3Pb<^ delta 29 lc-mXZwvuhbJVr*d$@3XMF&>#biOGxg1Oo@_$;l6yJOH6z3ZVc1 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class index 60869e5f88ff6d7e0dc228d5db3e11d6bcb75dea..e86838565e9052d6c344d5567a6e55d1d820c181 100644 GIT binary patch delta 29 lc-s5V`k!^fY(_?d$#WP_GhUmV!Q{nyn}LJn&gAV(9ssY^3i|*6 delta 29 lc-s5V`k!^fY(_@I$#WP_Gk%_&!Q{pIgMowP=j8279ssj53sV39 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class index 5a9d848280684db85646e054b201fb8f999cbef3..7b0d498bdb266b811092430bb2f744898940bab6 100644 GIT binary patch delta 31 nc-ni$^^9vn7YpOs$=xh9yqg%rShp~UvuG9YUc*wsyO)87bsvK+>wX3^)&r9bSv>%E C4i1?B delta 47 zc-s5H^^&ciOGxg7y}3E@yQRFJOH5k3Yh=^ delta 29 lc-mXZwvuhbJVr+I$@3XMF+P|)iOGxg2?Gb~)5#B+JOHGi3ibd1 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class index fd99e130d6745935ce6158d34c5e5cdf073540b8..e2571d3b48c89bea16fc39756c9fb77b63136495 100644 GIT binary patch delta 29 lc-mXZwvuhbJVr*-$@3XMF`k?}iOGxgECUDYxycWiJOH8F3aiOGxgH3J9ho5>HEJOHJD3k(1N diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class index 991629a166d46005051da7152c3afb93d3a72f4e..6b6b275563d9450e8a3fce2e7c154951824e3543 100644 GIT binary patch delta 29 lc-mXZwvuhbJVr*d$@3XMF?s>z&CDnLGfhehUl$ delta 30 mc-mXZwvuhbTt+4%gURz5KQVrtJc-GR^(O-d>#xZVnLGfkXA58e diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class index b5015e391a9f8926e63d69a6a90a8113c4b6c33d..b8edf6954565655466737e73272d269c504fd5e8 100644 GIT binary patch delta 30 mc-s5V`k!^fY(_?d$#WP_Gv1q=!Q{!t@|b~x<;mpjOdbHZkP8<8 delta 30 mc-s5V`k!^fY(_@I$#WP_Gya~O!Q{!t%D}+E$~bvDlLr8<90_p% diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class index 8690a7e735bea54b2f7a1cd026d43f34c5f90bb3..ba8882960bdf15736eadcffef2b701783ec8197b 100644 GIT binary patch delta 31 nc-s5V`k!^fY(_?d$#WP_F|jg? delta 31 nc-s5V`k!^fY(_@I$#WP_F|l$_&S3InV-;ZFU=^Iaoyh|LrPBze diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class index 2a4473bbd2371a4eb31db26211270c6c3ed6b257..6b6d81b67f846af82405424e770b0796d506e10d 100644 GIT binary patch delta 31 nc-mXWwv27VY(_@I$#WP#GO>J{+|T66#`2qigXPcUdrTexvK9*| delta 31 nc-mXWwv27VY(_?-$#WP#GO-Fz?q~93W0hdwV3nMFkI4f7m$V3k diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class index 50d01704914aeb45f2bd2b44f0805c7291d39c08..2e70f426a37e61467470a379bf4a10e47acfb306 100644 GIT binary patch delta 30 mc-q^^wv%ncY(_?-&2t!;85tQTFJSUvWn3xpCKk$V)H7wQ=VTCPkYs0&U}O-;N-Rs%&q>Tn z*AK2NE=kShVUS{wW@KPaEh=JU5cL5|XXfh%6lLa>1eX-0CgxgmFvv18Xooun`FZ-e zTPcL*6_*wi&XWhz1Y|pv=|xWfWBbmVbEdFoh-mq$0#_t zpUFse6N8wL%r*wOjX>`*G4KINE+EaoD#pOUDn9uhlenP@gDL~iUkqws73vHcK$?X? XlR=w756BV%iZL=k05ecjpM?nkdLKr) delta 191 zc-ke7yAA%^ors?3)mqtJsh223;Q>697)&weoG+P^ zIlGrw_Vs=|fiZm-BLt_Ne;v&w=~1TYQW1Pbg%maFLVUGeZ}$6eE`)>AHjrghGz%w1 zhi-H<2N^}KHQ5Yrc=nyrRhtcI-JUAWl(;h^qq+3WB*>D3pKH)Wu<(C3Edo_rpJ)@R N%PSN9V=3*~<^$tH7Uci{ diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class index afa9335a840a8fd82b561a5a27e2e9bd171d676b..255a0b67fd55e9ca2775b8e4159c0acad19f7a7a 100644 GIT binary patch delta 27 jc-p(pdYyGcEEDHC23D5U44f=$C#Ny_F)p6Gl}QNzcu@#O delta 27 jc-p(pdYyGcEEDHx23D3644f>dCZ{p^F&>z_l}QNzeftQy diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class index 97bda5f9b93f71476036bd8adb3cfd67e85990e6..a50c91d36d23e4f8bcdf5d283cb3ced0b03615a4 100644 GIT binary patch literal 28819 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 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class index bdf920109b7646d383e08f2c5152adebc190d503..ad2f73d0735680a059384d0db58a17055cabb493 100644 GIT binary patch delta 64 zc-p(Ed0%sb0H>IQhEH;Su6}W8o_RBBZ(A722pI1o3l9cxdF0< B6$JnQ delta 58 yc-p(Kc~f(P0H?61hEG;vS)zVUVqUtwe^ORza>-;hP9xELMg}1anau^9`P=|8A`;&K diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class index e9947add8c39655915082685531096a292eef729..903c7b5bb799f1cd4c83a9febb4df32c653fc6f7 100644 GIT binary patch delta 77 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


+5oO~ft z5BZyN7;0DwOf}02OLQ#G}d|zZ`<&xAVBrR!7w^nxlu&x^);! z25};{Cv$u1AeQF0r{%Y2p8^CgU=p@>GGBrPiv{U)C6wB}! z+Hp2k;T%t?244lzW_#+b_B_ha<6LwEif$o~aLpURik2s^<{@+rVf|jzL?6P5Er+nN z3>W65*LYs(pyU;lysALTyquJI*oN(%l#8<7R5MV)f544`dI)b)=-h`4;SF92Sku)y zgx-Cav-Uw)hv96kyL1@o#Y1q1uzLt^<=eOIMJ>;s(Rv8)q(=L2I*B*<#M5%bg(SY) zC${B?V#(6ri4t$(Nb>3p4^Xk0G~qbh5}0-_jRN9Kt~Gqq$v0h?&u@notfQOP(!CeZ z!5jE?6VAtGj_F&l16$$J%&U3s22#WwQQy$O9bsIB58#8Iv_3lKLzFh3F1r=Cd5Qkv zT*B@4Lc;)4-MvT97?pJhA1(LSPbmJ4;8TP6OmqnM=R>lDWdY8N{1jk8^w0{EvUV`J zd#OPmliQ-52`qq(MI7fvN9{`rbX3wZ0xe=*;DAY#diH^wkV=m@P;hus?l8M!aCnVp z5-^L04?c~lQL*8~VGIu9ppXs}Dx_lEn}~Zeac?P!JF_J2 z<5}D`5BG5)731DY+}nt|w*+pPOnw3G#e5R}*)6P(ClwyWkwbW<( zAD{9S)WBp0zZ@!YFYUXJiMO9k?EV6AjX80Rc!m8y#J!4Z197cE&6HK_FH-qnf#b_^ z0iBaOSy*jn6(1fhQEkGng2T%LD=VXOc})~wO^12rkpdGcb0$=(GByN3xqM<}|75AM z=WtO`e1)_eVG2D7wHI~KAvKBDiQ+P(Li@}27iG{>>{>_YiDyb*Au6mUd$w}?n5dK~ zW2HPtDbG{N3&)T$RZSb?)RsY2TkO;qY5z;5o$3uK;>2oIKh~+Lw%DmJmvriM;ZieR E139`gL;wH) diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class index 55600beac8506e1ca251ef16a40e3e2d6b7701de..193cf9483f1cb1324c4de1c63cd5d333f490261c 100644 GIT binary patch delta 35 rc-m{_ZROptfR*v` zs%P7#t5)|awyth!jw_s8(Y8GC(o3R^A+x8w&{R{is_LWip3pspPJi>Nt&>*i|6;|) zs`c8wxx|p#F@#wu87?VgO1^5{GfY)_+m`D& zb=|X_z%$=6Rx#Yt3^>>fSd7bM49gOZUsvG!PS_9`X{Z@#{g`ftw`;h$S%$Gv ztLs8S9m|Ggcqa~zofUFGNv&~=W!0Nvo| z56~@+0d&#@ps3*p@=QkF1j3BQFwW5TETIpSh0NoiFnNe`g(F-jutQudyv6vF zBV0PfUdlo*ekyNzl9E>)*j$`lcy+ JhI=Ri{{Y{$bzlGh delta 562 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 F{|80o#Cre$ diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class index 3db73689da6e61a65c3bef7ff986d610e32c5220..a61b2bd4286210b5b93753c26af795b33387358a 100644 GIT binary patch delta 4861 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 K-luph1^8bVe$Nj8 delta 4832 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 IaXi4k06>kpX#fBK diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class index 470c80c2d83b14122789e512e473d74e8a9a7c01..405eb2a289fdebc8f9bedd90bd7f1b3dc63b1743 100644 GIT binary patch delta 43 yc-mXTvW8_t86)GO$>oeWl1mw+7?v@}GAw6MU|7MR45SSiRx%hfteO0W(EtDs_6zR- delta 43 yc-mXTvW8_t86)Gw$>oeWl2aI@7^X7FGE8GoV3^LJ45SSiW-u5t%%1#*(EtDiybEUl diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class index 804802be5dc6cb989583869c8c696e9b7c67d629..2030e06e708bdc068e31db25bf56addff24ec5c0 100644 GIT binary patch delta 25 hc-ouHHkoaMEEA*OWI3h?#^A~2OxcX#lOHn~003FW2PXgk delta 25 hc-ouHHkoaMEEA*cWI3h?MyJW;OxcWXlOHn~0038&2J`>` diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class index b59c7fdc62ffa06abba8716de52957778e4bc19f..d3a656f6fe07976505543bc6f68981a56a28f90c 100644 GIT binary patch delta 79 zc-m{@Xye#W&&0&UF}ab+j*W?zft87G@=>M-hC&QHOd<@TOri|(Okxb0OyUg2OcD&X jOp*-lOi~PiOfn4FO!5qsObQIOOiB#(OsbQwF&h8?5NQmZ delta 79 zc-m{@Xye#W&&0&|V{#*t9UJ3c23E#@laDezFl1ujVPatrWnyKJXJTW}WMXG9X5wJ5 jW#VLTXX0WAWa44SX5we4WD;PgWfEejXA+%!joAPItQHQM diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class index 965c1aa4199de799077f1fb3c479ea8e187b9983..c7e946969bc5783aa7c01a4647d635da3a30769a 100644 GIT binary patch delta 31 nc-lM9a-LLf~ zYvp#R+KaV1&iKLV=;$Qa%+T+Ccl@S*!0{)D?*!;1J8vx|jrNHC(9|H>Rz0>?GY6W;1D%Y$oKCI7Sb$n7kVy?##0nahiY4soL zZAJ-4@jTyW@R%C3G(PS#l(Hs%&fsLt-_0AgSX+TVJ{pP+gc6a^NL1-tm{R&QhoQ=^ z>EWGGBT;X!qW+gmyx!#T^fKsb=Pl^RSpfqK)@*n*6bpNaZ6p?!a1H^UG#wKAF(}~z zg8XZfC)kf+2^SG!Fh!MESRH53S5$V07-e9!7AOb{xWur3FJA|V6IK!uUcng)BA5_x znPJ}^z#rGjMKQ_iga$UvCxmh~!&ik8Dm^D*9t-??p}ataL&WP;&(-X*K*bvplDNiy z7g};uysd4nGn7|`JCUqrij8y{&} z-{IS0F>UTixQ~x{nR$uT@-NNyq#jm^F@PxHY4UW)g8(oy1(8Kp2Kj*u3IlQ)_B2Ym zGjIlK(s26>c0&r~KBL{3K}DdtDh>Gu)ac+d*-a@N{)UkIHRQ1;dmg0+j-dgKS=)-_ z3(&(t8xPF1c2hSm!$DHIaR&A1A!r|bG{#n(MH|iRDMDSyV!J5jIFR*PaDo_U-bq60 zC`%=wU!>d)y3(g`ni#rKgm!cguX>p95;|%1B`H-q`~+;vdR^poQzB_MT?@6tNK%?D zSxuOB3Nz5zmetZE+j>&yyMtV-wMjOnaK7^kc;pm@44>nGY#YfQ=3B)k*|2kH-f?yz zl59(An7iA*SuMp6AI283OCYt_X*){ZruMj?v{pI{s(U9QFhjrB$*x>IWR=bFB0z%axp?ujgf>3s&NU2 zF^(g2u^Y+y=^poBl7=ybAQFU_#sp?*odd@L?%@hDxSAc4i!zcjbff^ezYLr6&X}}mYy~e6I zNKuI!+iI=tOgqyTJ8h>k32kQJ-Iq=u`qW?0nfAGF+I0>=JJZ)DGkdMI_qW&D-?!G8 zt-n(zKY9A|3V=>L`a!0WKZY#Q!ikDQHp9ikG-z z-YslqaPtnKxiqDvQ!?D}>Ohre%t31#wu)%yznVKNK8C1=`-B$m6#}+Sbc^U>=%kyS z76mV38~;jhTVK)d?%=-&4b0E~5*k_0k0q8B#vNjd`!Iv4BQ0YP!y<+l?8alKVu^T> zp@KJXl#hs;r9m81@FpUBUUWwXF{0oEq72q4EfG(RGnhTzJ_)B7Sci-l&Wbq0Q2ruc zUm~T&wWNX|LNYYOMT{|&z5oQL^>X8w;3d*dHq8%6t?WFXlIp4S1qCTwJmIB<7 zwk>&he!>d5Gr2haYr%g!$$smnP1SamLAbg!!tlS_|a zBRi$7M=b>;Ncx$GYZ=KrE;%me@V4Xq96re5!#rkJ33p@Z;eT;+I&S`7xVgtffppH0 z8A7EYp&2J>08UZsPooBBNU*bL!zj8ihHZ#bW5!5_Ny4AQF(eSBiPUhOq7*LRA~-JN zGo(?V+0~okqKu>yJ~EnOru_xnA{C?bS>47RDlZ{3j>R=$@f*o%AshW)ge~e?KsKT} z^WdSj96s)C`gV;rt=o-JKX;WLcAaR?673sAdyZ(|B--;tdx2=*BH9Z?dyytBixJ#4 gsHw&XM4wYTUZfT#CJ#si6Cq6oNi*#}G>U%y58VhPUH||9 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.class index 5ff7b1902988c058f70d51bb5bb124d9654ca52a..dd89517daa378d88aabba35bb2d69635fec09c3e 100644 GIT binary patch delta 121 zc-s5L^oW`3)W2Q(7#J7~83ZK&Ff#A}c}xtv04R?K A@&Et; diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class index 59a4e3fb9f4c4c0f838db37b415ea978dd8a46ea..efa322a7692cb9e217d207ee40a683ad8e035539 100644 GIT binary patch literal 1324 zc-oDW+fvg|6o&sTrKM$aMi4xqh?H^&ASwc)EflE625G4x-h`5A!_&RyMKksetgV;Fiiofn9%8rvB?E6}{A8|fm|T-ity5y|Wnd9<)$Z1HHx$gL7xC~oE0GLqlc zb($vAlM{h1{j9ka?t|Ro1-s&ye%-SKdjFhXN-Y!8vQ)0wj_ofCG$qGMZ0_z`aSY&M z41)sgXK(4QQ<1oYZi0$Co7n^eu1H+P5OuW_7U@m?)yG&VPULloW<=w-!G%Yt-!m-d z_*TX8m>QLcF*U|is)5STmRhF6)PzI}Q&UW74d=4z*7s@_Lo*U_hHf!5C(v;Qt<_x9 zXXcJXf|+?{?g{k#)_c|T%(5S}wJ6cb+?^y65|WV&BP$Jdg{tc*yR1YT zGwaN3G?Xd1_C6zzB-#;;L2p=9!S`&Z!t;5F4lW_EDba~28R@oT$g${ttnw$E3zZrlRI5+vIZKNKQnbWz3}OPKn8X}i<1{qnF^ygNPpT4Cr(64$ zX5Jx*E%i44=u4w#u<(Lf?sLj`E|EG#F*W`fCH87kUhQft<`KaHZTX_A(-+Y6UQ}&U UBHYX!bz~wO>7`8Ih4R_`1=xcDH~;_u literal 1204 zc-oDVYflqF6o%h{(i=m$isBVTw3N$oQxOntX$#f0i|tY+ep;4IyQJ=t?bZn2{H{Mn zjUmy*AK*Xm&lu;-Zc-b+m}YzCoq6WGXKp`#fBOMo39n-4VVJ5rZN+RFt=5U*Hx%D> zn=Pe&eB_#n_3p$|^wSe7h6uyZvGLYWnub$Xw8LY|^cfLTa%ZdMSH+<{KL)m^PZy)~_r7j#vxl*lqt-d9yI zEKJYN7>3nOaobdfaEou6P1~{kEr#CoOpP+TM^*wCF%iQhhE!*Y>N<6f%NP-mey~?a zg5fI1HCz{#n_-f%^gkvuwS*uiIr`bB;6*{XinyPaQ z%VYE#c8eidb=#h46>XZFpli55)|eD%uXqF;6LfZ>H9@B%V?2zBFeby;A4VR=fiR}R zI2gtu8GEP>8RHnmnDDzG)Gz4@eEbe}@EPOhxbg)z0&!D{+kv?Nw%L+o5|+$PqIu+{4a~e0U5EhS@9a?#9f`oDi)B1 zf-)BIT3oq?pxRi$dol6>Y3#|_^oi#ZF0&{U^(8asc#)a?ifYFrCAVM=5v+r*9nBvP SXza_aqZVx*6Th0A_wo;bALLvB diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler$MethodRef.class index 313ad8786ba6e91031f6960a0cf3f2d7d8602af7..c5de4c84c7fc6b1654b8228330a638768183a98e 100644 GIT binary patch literal 2976 zc-oy+TW}QB7F}nir_W^Q1Ol0f2}Dp4GcyUJfOD@V1TY#2WI`ku1@Y0DG)dz;V)qP) zZw3AG)3VA(mE~7{_|Pgr&?-uQ{qj*->-e>Q< z)?WL}TYtWG3cyu3ED;gdFkPwViY43kXYJZdu2!v<{G3;Ii@8Cyxs$8GYI)WzIo|4m zQ=6$y?R54@7y?W7+Xw7i$*xT2c1-SfiZuySpzZ9gI%j+KWXTaQ$~-I3IdazQIr~aH zl?$Tw(Pzf?=_9rYB%FJT&TP%CR(vK34%KUJDL3N!HM%y9yVDiBR`(cs%{+7eIXN_j z{>(t%01ridcUoZSIp*=2=T@d^GW*?%TN@DQ>b`J==?T_2Sev{MVBUhnut&z-GRJ%P3V zlzd^?D(xx@i?JkuOR-wwGS;u!sXf`lobPxC951)CFuax2I=+R=u|}Y|k$tOX{2xJY zQ)#*_G$D~d20ap4qP>v6gM*}XY1jCw=)8i?()9~=t@yuszDJc)urP`poDJumx?S=w z0CJB4d6R{mXWBl-k>{|Jf7Nz1Dh1|M7eU#-iiIw0Xv0hm2v=a^!ltVcPXD_(m)OJk zI_tW{^Xx;)KY`syCU86Ml(>URnRnX4U9d^N>u>RWb-Pd~LteG48n#e_dlsPxM`B8# z<@~ZN>{F~o?J3%1L&-*oHYFOnGUZO$H8!O6Z^3c(v{oogr5hnp!YHYgJ|eYgl;?2E<4_Dvsc)3?n-X0nly4%gcic~cjd2*NPh;_vEx7FJb z51Eo8DSJ+W_s@%`Ur(Ca77J}kDk^7aKAh26y5tPnnsrHrd+`9Ram~LPydYXjBU%fi1u-g&5%^c= V6~TjAqYvR>z7zUpcm$6j@fV^UwLt&? delta 1513 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 W<3A`b{v-cM#{Yo0nLOdo;QN1tYywRH literal 30526 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�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 delta 404 zc-k$GJ4?f06o${6RANg4t!Wx>(blT1wi@I84h{|lD~gk2h7OfB)lghr1abb*(M<#q z@d8#9{Q){F_%r$g6pxbSywCUW9ys60*rgqP`+0gLA_t2KNgzu=v2I5W)t*q*Eqf6H znLLnC>5bmQ^oe#A9q1HUExFzeYAbSUwBXfCzUNj}eZS^M(1WCcUXZ@y?z?umW^edq zufA3HOKw#~ik3mj?w_i75u`Dopr6a4sp%~$29deH*1kiy5m#+ZNa9R?El?Obz4I{! z-+Dw6$(%#agzX06Yq{YDj0@^2-oez-^+*#Bu=4zPKws#QK5lujl{AVXEgJD9BTE@J zF)}fPVUnV)$RRKGjJU82OCAY$lX>)?9ofd1IOlXYzc|N(PAXx^6U-|KN1hDaF}taN fUzn!@ZZgj>$4p0_4cxYAh3EJy66UcW4$RYE@pV|A diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class index 955983bf135fa61e3eaa56f6f74cb5ff71dd7a3a..ad70fb684d18aadd5c0210cbbce9433ba50fe44c 100644 GIT binary patch literal 13494 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 literal 12269 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 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Variables.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Variables.class index c9b4581dc5dcb7ebfc83412a617f340a9cbae768..ebc89802244f3cc471e4c31fee40a2074196b605 100644 GIT binary patch literal 3583 zc-oy-+jA3j6#lkNni5tnL6AzRk!zb$0@Z>v6>YgjN>K|91yQ!ik}js3xY-nnC|*DT z1yn$+GhW^pW*lc6rB#_xXLxgb_Qf|I{Ug-xY&P4Jq`)|xc7NA%zVm(OoL_(c=jUGl ztjBl&H42uc%|bMp(enA6W)Da0Y&MgRS|dg>I-psGHk8rx0r(WmJF1Op(TrxMqkD#q z>PcIH?}(-A3KsM_TLs(5M0aZW;eOqYDVWu7q)p8(SUk~Od7`U#%3j>G^|WrqHuIX_ z)JF7trP1A5j=PCR!$=r?pJK zO}e)oPwF|_$eQ)&;Gv{unpr#SUJh$VY~2dG(imnsh<0og1)jPKc)x9No4^C;WX@Ok z>bBB_5#6-Q+;uSt^Tr81JW|Np;UPV|KAg3}?Lln9Mv>?l70;rZktDOGtr=#1mp(QF zT?Yc#qTrFc;q(-YOiH)vv5h2Y8B5nvV_`4P!a?+irylH75yx}PIW3pdO(tMlH7C6@ zn2(8xUKP91$BeeK#Z3hdH&BSh|hRSm0}h{Nfjy3O>M5g zPV`jsJ-a{^io8Tr46;&+bO!z6Ld#JVX`w|e9hTIU7)Ml?$kK|zWYp}eCBR$CnoQhX zkIlwwU^nG~Q01-)8wDvE{kVO%IxY|)@0g0?!f3r=+50-veb2UB{9 z%zB(BwPrRv>Y8-Ye_=f?P?IprezjABQx{UQe@QCiqq_>CRO|OBh$Z+$#bsP!{Arz` zuWEjvY>|tf3ah*r?9Udgq`uvdpyznKbFExLnE6u6N7j#!G96&l>o!mVTmm6zi~({~D}gAMN1!YVN8TSY;^mmq*{3e>|4*+L4p64Ey8#18D?-~G%|fgUb`@}Lj8 z&}B4$1TEG`>ve-T$J0K3JLt7x0{aE#1P&hNH_Ykb%?|FRKjNhc3?&-Uu0W>yvq#YpAKU zO|G}e?P3B7N3{+|2gnTgUizW2a);1>Bv$ZA?4n}bFwje)6UcCN1X=!!A%}PQ0(=My z*O12-JaYrb@I7~K;{^WT1M(+M;xC+Xc;D%ChC3ebcf9Pl<7P*kkI}n0O*{!~r`I#g zrzAT0ik%^<+sqzWtHpb64=J91-^r%4UK0H6R_fW3M4yX9n~D;hE0@SoQL2yBH3IdQKg z>Nw8xU!4!|GI>nn0=c}%m@btS_gRmzvo2%%SaHHc4ab+gxJ||_nceRhH#GK Z@d^=MCBkcE_0sO4X!q*nnse{7{{VT-BW(Zx literal 3290 zc-oy-+fx&F6#f$OA?tOx$b*oi@+tfz%)a>0u+NkWFHKMXx8r2y)sYex* zY4La>qFG`q0}4vE8>V5kDJZV1?`5z(iKy;HG0IiU#{v%)D=428*b5)Z%b;MH3O7nT zsGN0*0KBNko?5QLgHo|ps3=2;Sg)w?X025!=0R1ku){F*&h*Hjo;)gqDDZU{L)O6VC3m5s&K0QtTp0T0E(1(ewU%o%y|JlSpmYt70Ga zv*xtXQQc$#HqI5K;~DN-#YMY{5Du`StweTH!IHY!S6W5a4i$&c$;5I{I`y;9QaL0g zeOSd?!bGtaB{-Lm#wM}1dQ==iuiYgfA+5)Q{#?yx`8O>+rYF7V!`mXLVNr6@1 zgo<}?l9xx*?B^|W0C+wP`C?NHW}eID85)HobzQ}vq^{-;OLpa9^dN4vsXYZ;=U{o4IKWEKUzyTsm@LWn*D>Y23SBs}@2x%2(gyqs) zy~*M^73XEKB&m-i&gc^SqKfzMK3jN5OLf|DNIoZ4ks%@Hf}9_N(-q;WH>&4&D8(ma z#Z36mI77m&&hk=RA)S79N?wE{O(jNvAs$8@5ut$Qh< z<>GB2gcrTtiF7ie?>A)jEy$0y^>PV*N?pvajGGK{4%703S@>l|+@d~OP4uqZGIUw;Nm9$_iX3Yt}qP+eH9DVQq*#gE|s(e}HVe^)Xp&t_;EW#w$61D~3cvkUM&R! zb`i#Ilw%K;V=sa2BZd3X&Yv#My*?bUq5HF-^3eMo=wcl~H$4`~Z-a<9&|05TK3WJ=VqXrwK&Vr5Idae8=-3M!4d%#F?mK-n z6>zb_|EJ2rUn0wPtn&f-8h^&S3VuW1HkZ&`#avIjPLk|xZaGy&$ksTTY@2&$!?{)4 z%Bo<8mEGfE`~E{Zy`bRkzu!MVi=*tfXmFzD0(Q!KqvNQ$p;4|k%I$0+7I+#UJD@^t zae+|S>_t=xfpF5KQxz!>Io}I)}($u%FF(@ z)1PBGQSOQ;Em=`Mo-T^5oAexsUYXM^gHPpv@A3q$<{C8X=reM6$gywPa;$Si5H-$@ zqf*vH%yl^}WnW$joCfS^dzq8>3OTsOf9b9>%Nyw7C*cI!GKO1Z@HTn8Gp()1@*Ish z9QClzB=;iPWBJ@o<}UTz{BpVHvU&>P0z2ZDMEDgEd_Ap8n)4`{^IdYszW4cmF(1ff diff --git a/libjava/classpath/tools/com/sun/javadoc/Doc.java b/libjava/classpath/tools/com/sun/javadoc/Doc.java index 554720d69d5f..f1d82d94dcf5 100644 --- a/libjava/classpath/tools/com/sun/javadoc/Doc.java +++ b/libjava/classpath/tools/com/sun/javadoc/Doc.java @@ -1,5 +1,5 @@ /* Doc.java -- Model of an item to document. - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -42,7 +42,7 @@ package com.sun.javadoc; * This interface is the super-interface of all items that can have * Javadoc comments associated with them. */ -public interface Doc extends java.io.Serializable, Comparable +public interface Doc extends java.io.Serializable, Comparable { /** diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java index 4369782f9606..9e1fac62ead7 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java +++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java @@ -1,5 +1,5 @@ /* gnu.classpath.tools.doclets.AbstractDoclet - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -103,25 +103,20 @@ public abstract class AbstractDoclet * Mapping from tag type to Taglet for user Taglets specified on * the command line. */ - protected Map tagletMap = new LinkedHashMap(); + protected Map tagletMap = new LinkedHashMap(); /** * Stores the package groups specified in the user * options. Contains objects of type PackageGroup. */ - private List packageGroups = new LinkedList(); - - /** - * The current classpath for loading taglet classes. - */ - private String tagletPath; + private List packageGroups = new LinkedList(); /** * Keeps track of the tags mentioned by the user during option * processiong so that an error can be emitted if a tag is * mentioned more than once. */ - private List mentionedTags = new LinkedList(); + private List mentionedTags = new LinkedList(); public static int optionLength(String option) { return instance.getOptionLength(option); @@ -226,9 +221,6 @@ public abstract class AbstractDoclet new DocletOptionFile("-d", new File(System.getProperty("user.dir"))); - private DocletOptionFlag optionNoEmailWarn = - new DocletOptionFlag("-noemailwarn"); - private DocletOptionFlag optionAuthor = new DocletOptionFlag("-author"); @@ -253,93 +245,12 @@ public abstract class AbstractDoclet private DocletOptionColonSeparated optionExcludeDocFilesSubDir = new DocletOptionColonSeparated("-excludedocfilessubdir"); - private DocletOptionTagletPath optionTagletPath = - new DocletOptionTagletPath("-tagletpath"); - private DocletOptionTag optionTaglet = new DocletOptionTag("-taglet"); private DocletOptionTag optionTag = new DocletOptionTag("-tag"); - private class DocletOptionTaglet - extends DocletOption - { - DocletOptionTaglet(String optionName) - { - super(optionName); - } - - public int getLength() - { - return 2; - } - - public boolean set(String[] optionArr) - { - - boolean tagletLoaded = false; - - String useTagletPath = AbstractDoclet.this.tagletPath; - if (null == useTagletPath) { - useTagletPath = System.getProperty("java.class.path"); - } - - try { - Class tagletClass; - try { - tagletClass - = new FileSystemClassLoader(useTagletPath).loadClass(optionArr[1]); - } - catch (ClassNotFoundException e) { - // If not found on specified tagletpath, try default classloader - tagletClass - = Class.forName(optionArr[1]); - } - Method registerTagletMethod - = tagletClass.getDeclaredMethod("register", new Class[] { java.util.Map.class }); - - if (!registerTagletMethod.getReturnType().equals(Void.TYPE)) { - printError("Taglet class '" + optionArr[1] + "' found, but register method doesn't return void."); - } - else if (registerTagletMethod.getExceptionTypes().length > 0) { - printError("Taglet class '" + optionArr[1] + "' found, but register method contains throws clause."); - } - else if ((registerTagletMethod.getModifiers() & (Modifier.STATIC | Modifier.PUBLIC | Modifier.ABSTRACT)) != (Modifier.STATIC | Modifier.PUBLIC)) { - printError("Taglet class '" + optionArr[1] + "' found, but register method isn't public static, or is abstract.."); - } - else { - Map tempMap = new HashMap(); - registerTagletMethod.invoke(null, new Object[] { tempMap }); - tagletLoaded = true; - String name = (String)tempMap.keySet().iterator().next(); - Taglet taglet = (Taglet)tempMap.get(name); - tagletMap.put(name, taglet); - mentionedTags.add(taglet); - } - } - catch (NoSuchMethodException e) { - printError("Taglet class '" + optionArr[1] + "' found, but doesn't contain the register method."); - } - catch (SecurityException e) { - printError("Taglet class '" + optionArr[1] + "' cannot be loaded: " + e.getMessage()); - } - catch (InvocationTargetException e) { - printError("Taglet class '" + optionArr[1] + "' found, but register method throws exception: " + e.toString()); - } - catch (IllegalAccessException e) { - printError("Taglet class '" + optionArr[1] + "' found, but there was a problem when accessing the register method: " + e.toString()); - } - catch (IllegalArgumentException e) { - printError("Taglet class '" + optionArr[1] + "' found, but there was a problem when accessing the register method: " + e.toString()); - } - catch (ClassNotFoundException e) { - printError("Taglet class '" + optionArr[1] + "' cannot be found."); - } - return tagletLoaded; - } - } - private class DocletOptionGroup extends DocletOption { @@ -364,7 +275,7 @@ public abstract class AbstractDoclet packageMatcher.addWildcard(packageWildcard); } - SortedSet groupPackages = packageMatcher.filter(rootDoc.specifiedPackages()); + SortedSet groupPackages = packageMatcher.filter(rootDoc.specifiedPackages()); packageGroups.add(new PackageGroup(optionArr[1], groupPackages)); @@ -376,27 +287,6 @@ public abstract class AbstractDoclet } } - - private class DocletOptionTagletPath - extends DocletOption - { - DocletOptionTagletPath(String optionName) - { - super(optionName); - } - - public int getLength() - { - return 2; - } - - public boolean set(String[] optionArr) - { - AbstractDoclet.this.tagletPath = optionArr[1]; - return true; - } - } - private class DocletOptionTag extends DocletOption { @@ -528,7 +418,6 @@ public abstract class AbstractDoclet optionGroup, optionDocFilesSubDirs, optionExcludeDocFilesSubDir, - optionTagletPath, optionTaglet, optionTag, }; @@ -558,12 +447,12 @@ public abstract class AbstractDoclet nameToOptionMap.put(option.getName(), option); } - private Map nameToOptionMap = new HashMap(); + private Map nameToOptionMap = new HashMap(); private int getOptionLength(String optionName) { registerOptions(); - DocletOption option = (DocletOption)nameToOptionMap.get(optionName.toLowerCase()); + DocletOption option = nameToOptionMap.get(optionName.toLowerCase()); if (null != option) { return option.getLength(); } @@ -572,9 +461,9 @@ public abstract class AbstractDoclet } } - protected List getKnownDirectSubclasses(ClassDoc classDoc) + protected List getKnownDirectSubclasses(ClassDoc classDoc) { - List result = new LinkedList(); + List result = new LinkedList(); if (!"java.lang.Object".equals(classDoc.qualifiedName())) { ClassDoc[] classes = rootDoc.classes(); for (int i=0; i { private String name; private String lowerName; @@ -608,9 +497,9 @@ public abstract class AbstractDoclet return lowerName.hashCode(); } - public int compareTo(Object other) + public int compareTo(IndexKey ik) { - return lowerName.compareTo(((IndexKey)other).lowerName); + return lowerName.compareTo(ik.lowerName); } public String getName() @@ -619,29 +508,29 @@ public abstract class AbstractDoclet } } - private Map categorizedIndex; + private Map> categorizedIndex; - protected Map getCategorizedIndex() + protected Map> getCategorizedIndex() { if (null == categorizedIndex) { - categorizedIndex = new LinkedHashMap(); + categorizedIndex = new LinkedHashMap>(); - Map indexMap = getIndexByName(); - LinkedList keys = new LinkedList(); //indexMap.keySet().size()); + Map indexMap = getIndexByName(); + LinkedList keys = new LinkedList(); //indexMap.keySet().size()); keys.addAll(indexMap.keySet()); Collections.sort(keys); - Iterator it = keys.iterator(); //indexMap.keySet().iterator(); + Iterator it = keys.iterator(); //indexMap.keySet().iterator(); char previousCategoryLetter = '\0'; Character keyLetter = null; while (it.hasNext()) { - IndexKey key = (IndexKey)it.next(); + IndexKey key = it.next(); char firstChar = Character.toUpperCase(key.getName().charAt(0)); if (firstChar != previousCategoryLetter) { keyLetter = new Character(firstChar); previousCategoryLetter = firstChar; - categorizedIndex.put(keyLetter, new LinkedList()); + categorizedIndex.put(keyLetter, new LinkedList()); } - List letterList = (List)categorizedIndex.get(keyLetter); + List letterList = categorizedIndex.get(keyLetter); letterList.add(indexMap.get(key)); } } @@ -650,16 +539,16 @@ public abstract class AbstractDoclet } - private Map indexByName; + private Map indexByName; - protected Map getIndexByName() + protected Map getIndexByName() { if (null == indexByName) { // Create index // Collect index - indexByName = new HashMap(); //TreeMap(); + indexByName = new HashMap(); //TreeMap(); // Add packages to index @@ -709,10 +598,9 @@ public abstract class AbstractDoclet protected void printTaglets(Tag[] tags, TagletContext context, TagletPrinter output, boolean inline) { - for (Iterator it = tagletMap.keySet().iterator(); it.hasNext(); ) { - String tagName = (String)it.next(); - Object o = tagletMap.get(tagName); - Taglet taglet = (Taglet)o; + for (Iterator it = tagletMap.keySet().iterator(); it.hasNext(); ) { + String tagName = it.next(); + Taglet taglet = tagletMap.get(tagName); Doc doc = context.getDoc(); if (inline == taglet.isInlineTag() && ((doc == null @@ -724,14 +612,14 @@ public abstract class AbstractDoclet || (doc instanceof PackageDoc && taglet.inPackage()) || ((doc.isClass() || doc.isInterface()) && taglet.inType()))))) { - List tagsOfThisType = new LinkedList(); + List tagsOfThisType = new LinkedList(); for (int i=0; i>>> usedClassToPackagesMap, ClassDoc usedClass, UsageType usageType, Doc user, PackageDoc userPackage) { - Map packageToUsageTypeMap = (Map)usedClassToPackagesMap.get(usedClass); + Map>> packageToUsageTypeMap = usedClassToPackagesMap.get(usedClass); if (null == packageToUsageTypeMap) { - packageToUsageTypeMap = new HashMap(); + packageToUsageTypeMap = new HashMap>>(); usedClassToPackagesMap.put(usedClass, packageToUsageTypeMap); } - Map usageTypeToUsersMap = (Map)packageToUsageTypeMap.get(userPackage); + Map> usageTypeToUsersMap = packageToUsageTypeMap.get(userPackage); if (null == usageTypeToUsersMap) { - usageTypeToUsersMap = new TreeMap(); + usageTypeToUsersMap = new TreeMap>(); packageToUsageTypeMap.put(userPackage, usageTypeToUsersMap); } - Set userSet = (Set)usageTypeToUsersMap.get(usageType); + Set userSet = usageTypeToUsersMap.get(usageType); if (null == userSet) { - userSet = new TreeSet(); // FIXME: we need the collator from Main here + userSet = new TreeSet(); // FIXME: we need the collator from Main here usageTypeToUsersMap.put(usageType, userSet); } userSet.add(user); @@ -806,7 +694,8 @@ public abstract class AbstractDoclet */ private Map collectUsage() { - Map _usedClassToPackagesMap = new HashMap(); + Map>>> _usedClassToPackagesMap = + new HashMap>>>(); ClassDoc[] classes = rootDoc.classes(); for (int i = 0, ilim = classes.length; i < ilim; ++ i) { @@ -816,9 +705,9 @@ public abstract class AbstractDoclet // classes implementing InterfaceRelation relation = (InterfaceRelation)getInterfaceRelations().get(clazz); - Iterator it = relation.implementingClasses.iterator(); + Iterator it = relation.implementingClasses.iterator(); while (it.hasNext()) { - ClassDoc implementor = (ClassDoc)it.next(); + ClassDoc implementor = it.next(); addUsedBy(_usedClassToPackagesMap, clazz, UsageType.CLASS_IMPLEMENTING, implementor, implementor.containingPackage()); } @@ -915,18 +804,18 @@ public abstract class AbstractDoclet return _usedClassToPackagesMap; } - private Map usedClassToPackagesMap = null; + private Map>>> usedClassToPackagesMap = null; - protected Map getUsageOfClass(ClassDoc classDoc) + protected Map>> getUsageOfClass(ClassDoc classDoc) { if (null == this.usedClassToPackagesMap) { this.usedClassToPackagesMap = collectUsage(); } - return (Map)this.usedClassToPackagesMap.get(classDoc); + return this.usedClassToPackagesMap.get(classDoc); } protected static class UsageType - implements Comparable + implements Comparable { public static final UsageType CLASS_DERIVED_FROM = new UsageType("class-derived-from"); public static final UsageType CLASS_IMPLEMENTING = new UsageType("class-implementing"); @@ -943,9 +832,9 @@ public abstract class AbstractDoclet this.id = id; } - public int compareTo(Object other) + public int compareTo(UsageType ut) { - return this.id.compareTo(((UsageType)other).id); + return this.id.compareTo(ut.id); } public String toString() { @@ -976,7 +865,7 @@ public abstract class AbstractDoclet return MessageFormat.format(getString(key), new Object[] { value1 }); } - protected List getPackageGroups() + protected List getPackageGroups() { return packageGroups; } diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageMatcher.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageMatcher.java index 196b74c88c43..39f1103e4b52 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageMatcher.java +++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageMatcher.java @@ -1,5 +1,5 @@ /* gnu.classpath.tools.doclets.PackageMatcher - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -53,7 +53,7 @@ import com.sun.javadoc.PackageDoc; */ public class PackageMatcher { - private Set patterns = new HashSet(); + private Set patterns = new HashSet(); /** * Add a wildcard to be matched. Wildcards can contain asterisk @@ -117,9 +117,9 @@ public class PackageMatcher * array given will be put into the output list if it matches one * or more of the wildcards added to this PackageMatcher before. */ - public SortedSet filter(PackageDoc[] packageDocs) + public SortedSet filter(PackageDoc[] packageDocs) { - SortedSet result = new TreeSet(); + SortedSet result = new TreeSet(); for (int i=0; i it = patterns.iterator(); while (it.hasNext()) { - Pattern pattern = (Pattern)it.next(); + Pattern pattern = it.next(); Matcher matcher = pattern.matcher(packageDoc.name()); if (matcher.matches()) { return true; diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java index 5ec9806345f0..99361fff7ca0 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java +++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java @@ -1,5 +1,5 @@ /* gnu.classpath.tools.doclets.htmldoclet.HtmlDoclet - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -109,12 +109,12 @@ public class HtmlDoclet /** * Contains ExternalDocSet. */ - private List externalDocSets = new LinkedList(); + private List externalDocSets = new LinkedList(); /** * Contains String->ExternalDocSet. */ - private Map packageNameToDocSet = new HashMap(); + private Map packageNameToDocSet = new HashMap(); /** * Cache for version string from resource /version.properties @@ -682,7 +682,7 @@ public class HtmlDoclet HtmlPage output = newHtmlPage(new File(packageDir, "package-summary" + filenameExtension), pathToRoot); - Set keywords = new LinkedHashSet(); + Set keywords = new LinkedHashSet(); keywords.add(packageDoc.name() + " packages"); output.beginPage(getPageTitle(packageDoc.name()), getOutputCharset(), @@ -725,10 +725,10 @@ public class HtmlDoclet } static class TreeNode - implements Comparable + implements Comparable { ClassDoc classDoc; - SortedSet children = new TreeSet(); + SortedSet children = new TreeSet(); TreeNode(ClassDoc classDoc) { TreeNode.this.classDoc = classDoc; @@ -739,9 +739,9 @@ public class HtmlDoclet return classDoc.equals(((TreeNode)other).classDoc); } - public int compareTo(Object other) + public int compareTo(TreeNode other) { - return classDoc.compareTo(((TreeNode)other).classDoc); + return classDoc.compareTo(other.classDoc); } public int hashCode() @@ -750,9 +750,9 @@ public class HtmlDoclet } } - private TreeNode addClassTreeNode(Map treeMap, ClassDoc classDoc) + private TreeNode addClassTreeNode(Map treeMap, ClassDoc classDoc) { - TreeNode node = (TreeNode)treeMap.get(classDoc.qualifiedName()); + TreeNode node = treeMap.get(classDoc.qualifiedName()); if (null == node) { node = new TreeNode(classDoc); treeMap.put(classDoc.qualifiedName(), node); @@ -766,9 +766,9 @@ public class HtmlDoclet return node; } - private TreeNode addInterfaceTreeNode(Map treeMap, ClassDoc classDoc) + private TreeNode addInterfaceTreeNode(Map treeMap, ClassDoc classDoc) { - TreeNode node = (TreeNode)treeMap.get(classDoc.qualifiedName()); + TreeNode node = treeMap.get(classDoc.qualifiedName()); if (null == node) { node = new TreeNode(classDoc); treeMap.put(classDoc.qualifiedName(), node); @@ -781,7 +781,7 @@ public class HtmlDoclet } } else { - TreeNode rootNode = (TreeNode)treeMap.get(""); + TreeNode rootNode = treeMap.get(""); if (null == rootNode) { rootNode = new TreeNode(null); treeMap.put("", rootNode); @@ -849,10 +849,9 @@ public class HtmlDoclet if (!node.children.isEmpty()) { output.beginElement("li", "class", "level"); output.beginElement("ul"); - Iterator it = node.children.iterator(); + Iterator it = node.children.iterator(); while (it.hasNext()) { - TreeNode child = (TreeNode)it.next(); - printPackageTreeRec(output, child, node); + printPackageTreeRec(output, it.next(), node); } output.endElement("ul"); output.endElement("li"); @@ -861,7 +860,7 @@ public class HtmlDoclet private void printClassTree(HtmlPage output, ClassDoc[] classDocs) { - Map classTreeMap = new HashMap(); + Map classTreeMap = new HashMap(); for (int i=0; i interfaceTreeMap = new HashMap(); for (int i=0; i"); + TreeNode interfaceRoot = interfaceTreeMap.get(""); if (null != interfaceRoot) { - Iterator it = interfaceRoot.children.iterator(); + Iterator it = interfaceRoot.children.iterator(); if (it.hasNext()) { output.div(CssClass.PACKAGE_TREE_SECTION_TITLE, "Interface Hierarchy"); output.beginDiv(CssClass.PACKAGE_TREE); while (it.hasNext()) { - TreeNode node = (TreeNode)it.next(); + TreeNode node = it.next(); printPackageTreeRec(output, node, null); } output.endDiv(CssClass.PACKAGE_TREE); @@ -947,10 +946,10 @@ public class HtmlDoclet output.beginDiv(CssClass.FULL_TREE_PACKAGELIST); output.div(CssClass.FULL_TREE_PACKAGELIST_HEADER, "Package Hierarchies:"); output.beginDiv(CssClass.FULL_TREE_PACKAGELIST_ITEM); - Set allPackages = getAllPackages(); - Iterator it = allPackages.iterator(); + Set allPackages = getAllPackages(); + Iterator it = allPackages.iterator(); while (it.hasNext()) { - PackageDoc packageDoc = (PackageDoc)it.next(); + PackageDoc packageDoc = it.next(); output.beginAnchor(getPackageURL(packageDoc) + "tree" + filenameExtension); output.print(packageDoc.name()); output.endAnchor(); @@ -975,8 +974,6 @@ public class HtmlDoclet { output.beginDiv(CssClass.INDEX_ENTRY); output.beginDiv(CssClass.INDEX_ENTRY_KEY); - String anchor = null; - String description = null; if (entry instanceof PackageDoc) { output.beginAnchor(getPackageURL((PackageDoc)entry) + "package-summary" + filenameExtension); output.print(entry.name()); @@ -1105,10 +1102,10 @@ public class HtmlDoclet output.beginDiv(CssClass.PACKAGE_MENU_LIST); - Set packageDocs = getAllPackages(); - Iterator it = packageDocs.iterator(); + Set packageDocs = getAllPackages(); + Iterator it = packageDocs.iterator(); while (it.hasNext()) { - PackageDoc packageDoc = (PackageDoc)it.next(); + PackageDoc packageDoc = it.next(); output.beginSpan(CssClass.PACKAGE_MENU_ENTRY); output.beginAnchor(getPackageURL(packageDoc) + "classes" + filenameExtension, null, @@ -1153,9 +1150,9 @@ public class HtmlDoclet { if (!classDocs.isEmpty()) { output.div(CssClass.CLASS_MENU_SUBTITLE, header); - Iterator it = classDocs.iterator(); + Iterator it = classDocs.iterator(); while (it.hasNext()) { - ClassDoc classDoc = (ClassDoc)it.next(); + ClassDoc classDoc = it.next(); printClassMenuEntry(output, classDoc); } } @@ -1166,10 +1163,10 @@ public class HtmlDoclet output.beginDiv(CssClass.CLASS_MENU_LIST); if (categorized) { - Set classes = new TreeSet(); - Set interfaces = new TreeSet(); - Set exceptions = new TreeSet(); - Set errors = new TreeSet(); + Set classes = new TreeSet(); + Set interfaces = new TreeSet(); + Set exceptions = new TreeSet(); + Set errors = new TreeSet(); for (int i=0; i> categorizedIndex = getCategorizedIndex(); + Iterator it = categorizedIndex.keySet().iterator(); int n = 1; int count = categorizedIndex.size(); while (it.hasNext()) { - Character c = (Character)it.next(); - List classList = (List)categorizedIndex.get(c); + Character c = it.next(); + List classList = categorizedIndex.get(c); printIndexPage(n++, count, c, classList); } } @@ -1270,7 +1267,7 @@ public class HtmlDoclet printIndexPage(0, 0, null, null); } - private void printIndexPage(int index, int maxIndex, Character letter, List classList) + private void printIndexPage(int index, int maxIndex, Character letter, List classList) throws IOException { String pageName = "alphaindex"; @@ -1334,12 +1331,12 @@ public class HtmlDoclet printIndexCategory(output, letter, classList); } else { - Map categorizedIndex = getCategorizedIndex(); - Iterator categoryIt = categorizedIndex.keySet().iterator(); + Map> categorizedIndex = getCategorizedIndex(); + Iterator categoryIt = categorizedIndex.keySet().iterator(); while (categoryIt.hasNext()) { - letter = (Character)categoryIt.next(); - classList = (List)categorizedIndex.get(letter); + letter = categoryIt.next(); + classList = categorizedIndex.get(letter); output.anchorName(letter.toString()); printIndexCategory(output, letter, classList); } @@ -1420,13 +1417,13 @@ public class HtmlDoclet output.div(CssClass.SERIALIZED_TITLE, "Serialized Form"); - Iterator it = getAllPackages().iterator(); + Iterator it = getAllPackages().iterator(); while (it.hasNext()) { - PackageDoc packageDoc = (PackageDoc)it.next(); + PackageDoc packageDoc = it.next(); - List serializableClasses = new LinkedList(); + List serializableClasses = new LinkedList(); ClassDoc[] classes = packageDoc.allClasses(); for (int i=0; i cit = serializableClasses.iterator(); while (cit.hasNext()) { - ClassDoc classDoc = (ClassDoc)cit.next(); + ClassDoc classDoc = cit.next(); output.anchorName(classDoc.qualifiedTypeName()); @@ -1500,13 +1497,13 @@ public class HtmlDoclet output.div(CssClass.DEPRECATION_TITLE, "Deprecated API"); - List deprecatedInterfaces = new LinkedList(); - List deprecatedExceptions = new LinkedList(); - List deprecatedErrors = new LinkedList(); - List deprecatedClasses = new LinkedList(); - List deprecatedFields = new LinkedList(); - List deprecatedMethods = new LinkedList(); - List deprecatedConstructors = new LinkedList(); + List deprecatedInterfaces = new LinkedList(); + List deprecatedExceptions = new LinkedList(); + List deprecatedErrors = new LinkedList(); + List deprecatedClasses = new LinkedList(); + List deprecatedFields = new LinkedList(); + List deprecatedMethods = new LinkedList(); + List deprecatedConstructors = new LinkedList(); ClassDoc[] classDocs = getRootDoc().classes(); for (int i=0; i 0) { - externalDocSet = (ExternalDocSet)packageNameToDocSet.get(packageDoc.name()); + externalDocSet = packageNameToDocSet.get(packageDoc.name()); } StringBuffer result = new StringBuffer(); result.append(getClassDocURL(output, classDoc)); @@ -2900,14 +2897,13 @@ public class HtmlDoclet String url = null; if (null != asClassDoc && asClassDoc.isIncluded()) { url = getClassDocURL(output, asClassDoc); - } + } else if (!type.isPrimitive()) { if (type.qualifiedTypeName().length() > type.typeName().length()) { String packageName = type.qualifiedTypeName(); packageName = packageName.substring(0, packageName.length() - type.typeName().length() - 1); - ExternalDocSet externalDocSet - = (ExternalDocSet)packageNameToDocSet.get(packageName); + ExternalDocSet externalDocSet = packageNameToDocSet.get(packageName); if (null != externalDocSet) { url = externalDocSet.getClassDocURL(packageName, type.typeName()); } @@ -2950,7 +2946,7 @@ public class HtmlDoclet private String getPackageURL(PackageDoc packageDoc) { if (packageDoc.name().length() > 0) { - ExternalDocSet externalDocSet = (ExternalDocSet)packageNameToDocSet.get(packageDoc.name()); + ExternalDocSet externalDocSet = packageNameToDocSet.get(packageDoc.name()); String url; if (null != externalDocSet) { url = externalDocSet.getPackageDocURL(packageDoc.name()); @@ -2974,7 +2970,7 @@ public class HtmlDoclet { ExternalDocSet externalDocSet = null; if (classDoc.containingPackage().name().length() > 0) { - externalDocSet = (ExternalDocSet)packageNameToDocSet.get(classDoc.containingPackage().name()); + externalDocSet = packageNameToDocSet.get(classDoc.containingPackage().name()); } if (null != externalDocSet) { return externalDocSet.getClassDocURL(classDoc.containingPackage().name(), diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java index b38c2b083794..b0e2127c89a7 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java +++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java @@ -1,5 +1,5 @@ /* gnu.classpath.tools.gjdoc.ClassDocImpl - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -103,9 +103,9 @@ public class ClassDocImpl return filter ? filteredFields : unfilteredFields; } - private static Set primitiveNames; + private static Set primitiveNames; static { - primitiveNames = new HashSet(); + primitiveNames = new HashSet(); primitiveNames.add("int"); primitiveNames.add("long"); primitiveNames.add("char"); @@ -116,11 +116,11 @@ public class ClassDocImpl primitiveNames.add("boolean"); } - private Map findClassCache = new HashMap(); + private Map findClassCache = new HashMap(); public ClassDoc findClass(String className, String dimension) { - ClassDoc cached = (ClassDoc)findClassCache.get(className + dimension); + ClassDoc cached = findClassCache.get(className + dimension); if (null != cached) { return cached; } @@ -324,7 +324,7 @@ public class ClassDocImpl ClassDoc[] importedClasses, PackageDoc[] importedPackages, char[] source, int startIndex, int endIndex, - List importStatementList) throws ParseException, IOException { + List importStatementList) throws ParseException, IOException { String superclassName = "java.lang.Object"; @@ -334,7 +334,7 @@ public class ClassDocImpl importedPackages, null); rc.setImportStatementList(importStatementList); - List implementedInterfaces = new ArrayList(); + List implementedInterfaces = new ArrayList(); String word=""; int item=0; @@ -511,7 +511,7 @@ public class ClassDocImpl ClassDoc[] interfaces=new ClassDoc[implementedInterfaces.size()]; for (int i=0; i isSerMethodList = new ArrayList(); if (null != maybeSerMethodList) { - for (Iterator it=maybeSerMethodList.iterator(); it.hasNext(); ) { + for (Iterator it = maybeSerMethodList.iterator(); it.hasNext(); ) { MethodDocImpl method=(MethodDocImpl)it.next(); method.resolve(); @@ -664,7 +664,7 @@ public class ClassDocImpl isSerMethodList.add(method); } } - this.serializationMethods=(MethodDoc[])isSerMethodList.toArray(new MethodDoc[0]); + this.serializationMethods = isSerMethodList.toArray(new MethodDoc[isSerMethodList.size()]); maybeSerMethodList=null; } } @@ -795,10 +795,10 @@ public class ClassDocImpl this.importedClasses=importedClasses; } - private static Map typeMap = new HashMap(); + private static Map typeMap = new HashMap(); Type typeForString(String typeName) throws ParseException { - String orgTypename=typeName; + //String orgTypename=typeName; int ndx=typeName.indexOf('['); String dim=""; if (ndx>=0) { @@ -815,7 +815,7 @@ public class ClassDocImpl return classDoc; } - Type type = (Type)typeMap.get(typeName+dim); + Type type = typeMap.get(typeName+dim); if (null!=type) { try { if (type.dimension().equals(dim)) { @@ -995,9 +995,9 @@ public class ClassDocImpl return (o!=null) && (o instanceof ClassDoc) && ((ClassDoc)o).qualifiedName().equals(qualifiedName()); } - private List maybeSerMethodList; + private List maybeSerMethodList; - void setMaybeSerMethodList(List maybeSerMethodList) { + void setMaybeSerMethodList(List maybeSerMethodList) { this.maybeSerMethodList=maybeSerMethodList; } @@ -1061,7 +1061,7 @@ public class ClassDocImpl private Object findFieldValue(String identifier, ClassDoc classDoc, String fieldName, - Set visitedFields) + Set visitedFields) throws UnknownIdentifierException, IllegalExpressionException { while (classDoc != null) { @@ -1097,7 +1097,7 @@ public class ClassDocImpl throw new UnknownIdentifierException(identifier); } - public Object getValue(String identifier, Set visitedFields) + public Object getValue(String identifier, Set visitedFields) throws UnknownIdentifierException, IllegalExpressionException { int ndx = identifier.lastIndexOf('.'); @@ -1124,13 +1124,13 @@ public class ClassDocImpl } // Compares this Object with the specified Object for order. - public int compareTo(java.lang.Object o) { + public int compareTo(Doc d) { int rc; - if (o instanceof ClassDocImpl) { + if (d instanceof ClassDocImpl) { ClassDocImpl c1 = this; - ClassDocImpl c2 = (ClassDocImpl)o; + ClassDocImpl c2 = (ClassDocImpl)d; if (null != c1.containingClass() && null == c2.containingClass()) { rc = c1.containingClass().compareTo(c2); @@ -1153,10 +1153,10 @@ public class ClassDocImpl } } - rc = super.compareTo(o); + rc = super.compareTo(d); if (0 == rc) { return Main.getInstance().getCollator().compare(containingPackage().name(), - ((ClassDocImpl)o).containingPackage().name()); + c2.containingPackage().name()); } else { return rc; @@ -1167,11 +1167,11 @@ public class ClassDocImpl } } - private List importStatementList; + private List importStatementList; - public void setImportStatementList(List importStatementList) + public void setImportStatementList(List importStatementList) { - this.importStatementList = new LinkedList(); + this.importStatementList = new LinkedList(); this.importStatementList.addAll(importStatementList); } diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java index 253cf5ec4158..aa06addf7fab 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java +++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java @@ -1,5 +1,5 @@ /* gnu.classpath.tools.gjdoc.ClassDocProxy - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -155,13 +155,8 @@ public class ClassDocProxy implements ClassDoc, WritableType { } // Compares this Object with the specified Object for order. - public int compareTo(java.lang.Object o) { - if (o instanceof Doc) { - return Main.getInstance().getCollator().compare(name(), ((Doc)o).name()); - } - else { - return 0; - } + public int compareTo(Doc d) { + return Main.getInstance().getCollator().compare(name(), d.name()); } public TypeVariable[] typeParameters() { return new TypeVariable[0]; } diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java index 9a81cb793f05..9b911d310034 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java +++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java @@ -1,5 +1,5 @@ /* gnu.classpath.tools.gjdoc.ClassDocReflectedImpl - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -37,7 +37,17 @@ package gnu.classpath.tools.gjdoc; -import com.sun.javadoc.*; +import com.sun.javadoc.Doc; +import com.sun.javadoc.ClassDoc; +import com.sun.javadoc.ConstructorDoc; +import com.sun.javadoc.FieldDoc; +import com.sun.javadoc.MethodDoc; +import com.sun.javadoc.PackageDoc; +import com.sun.javadoc.SeeTag; +import com.sun.javadoc.SourcePosition; +import com.sun.javadoc.Tag; +import com.sun.javadoc.TypeVariable; + import java.util.Map; import java.util.HashMap; @@ -104,7 +114,7 @@ public class ClassDocReflectedImpl public boolean definesSerializableFields() { return false; } public FieldDoc[] fields() { return new FieldDoc[0]; } public FieldDoc[] fields(boolean filtered) { return new FieldDoc[0]; } - public ClassDoc findClass(java.lang.String className) { return null; } + public ClassDoc findClass(String className) { return null; } public ClassDoc[] importedClasses() { return new ClassDoc[0]; } public PackageDoc[] importedPackages() { return new PackageDoc[0]; } public ClassDoc[] innerClasses() { return new ClassDoc[0]; } @@ -195,13 +205,8 @@ public class ClassDocReflectedImpl public String toString() { return "ClassDocReflectedImpl{"+qualifiedName()+"}"; } - public int compareTo(java.lang.Object o) { - if (o instanceof Doc) { - return Main.getInstance().getCollator().compare(name(), ((Doc)o).name()); - } - else { - return 0; - } + public int compareTo(Doc d) { + return Main.getInstance().getCollator().compare(name(), d.name()); } public String dimension() { return dimension; } diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DocImpl.java index ecd8100402c7..dfa1a7a3c617 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DocImpl.java +++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DocImpl.java @@ -1,5 +1,5 @@ /* gnu.classpath.tools.gjdoc.DocImpl - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -71,8 +71,8 @@ public abstract class DocImpl implements Doc, TagContainer { } // Compares this Object with the specified Object for order. - public int compareTo(java.lang.Object o) { - return Main.getInstance().getCollator().compare(name(), ((Doc)o).name()); + public int compareTo(Doc d) { + return Main.getInstance().getCollator().compare(name(), d.name()); } // Return the first sentence of the comment as tags. diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java index d5b1b1eb0182..8f2a49c99c5c 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java +++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java @@ -1,5 +1,5 @@ /* gnu.classpath.tools.gjdoc.ExecutableMemberDocImpl - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -402,14 +402,14 @@ public class ExecutableMemberDocImpl extends MemberDocImpl implements Executable } - public int compareTo(Object other) { + public int compareTo(Doc d) { int rc; - if (other instanceof MemberDocImpl) { - MemberDocImpl otherMember = (MemberDocImpl)other; + if (d instanceof MemberDocImpl) { + MemberDocImpl otherMember = (MemberDocImpl)d; rc = name().compareTo(otherMember.name()); if (0 == rc) { - if (other instanceof ExecutableMemberDocImpl) { - rc = signature().compareTo(((ExecutableMemberDocImpl)other).signature()); + if (d instanceof ExecutableMemberDocImpl) { + rc = signature().compareTo(((ExecutableMemberDocImpl)d).signature()); if (0 == rc) { return containingClass().compareTo(otherMember.containingClass()); } diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java index f99024daa70f..4fa8e5d6bf1a 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java +++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java @@ -1,5 +1,5 @@ /* gnu.classpath.tools.gjdoc.FieldDocImpl - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -95,11 +95,11 @@ public class FieldDocImpl } } - public static Collection createFromSource(ClassDoc containingClass, - PackageDoc containingPackage, - char[] source, int startIndex, int endIndex) { + public static Collection createFromSource(ClassDoc containingClass, + PackageDoc containingPackage, + char[] source, int startIndex, int endIndex) { - List rcList=new ArrayList(); + List rcList=new ArrayList(); FieldDocImpl fd=new FieldDocImpl(containingClass, containingPackage, @@ -120,7 +120,6 @@ public class FieldDocImpl final int STATE_COMMENT = 7; final int STATE_LINECOMMENT = 8; - int lastFieldDefStart = ndx; int state = STATE_FIELDNAME; int prevState = state; @@ -298,7 +297,7 @@ public class FieldDocImpl return constantValue(new HashSet()); } - public Object constantValue(Set visitedFields) { + public Object constantValue(Set visitedFields) { if (!isStatic() || !isFinal() || (!type().isPrimitive() && !"java.lang.String".equals(type().qualifiedTypeName())) diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java index ce9e96d820b5..f2315a920aab 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java +++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java @@ -1,5 +1,5 @@ /* gnu.classpath.tools.gjdoc.Main - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -141,11 +141,6 @@ public final class Main */ private String option_doclet = "gnu.classpath.tools.doclets.htmldoclet.HtmlDoclet"; - /** - * Option "-overview": path to the special overview file. - */ - private String option_overview; - /** * Option "-coverage": which members to include in generated documentation. */ @@ -161,31 +156,11 @@ public final class Main */ private String option_docletpath; - /** - * Option "-classpath": path to additional classes. - */ - private String option_classpath; - /** * Option "-sourcepath": path to the Java source files to be documented. * FIXME: this should be a list of paths */ - private List option_sourcepath = new ArrayList(); - - /** - * Option "-extdirs": path to Java extension files. - */ - private String option_extdirs; - - /** - * Option "-verbose": Be verbose when generating documentation. - */ - private boolean option_verbose; - - /** - * Option "-nowarn": Do not print warnings. - */ - private boolean option_nowarn; + private List option_sourcepath = new ArrayList(); /** * Option "-locale:" Specify the locale charset of Java source files. @@ -197,11 +172,6 @@ public final class Main */ private String option_encoding; - /** - * Option "-J": Specify flags to be passed to Java runtime. - */ - private List option_java_flags = new LinkedList(); //ArrayList(); - /** * Option "-source:" should be 1.4 to handle assertions, 1.1 is no * longer supported. @@ -212,12 +182,12 @@ public final class Main * Option "-subpackages": list of subpackages to be recursively * added. */ - private List option_subpackages = new ArrayList(); + private List option_subpackages = new ArrayList(); /** * Option "-exclude": list of subpackages to exclude. */ - private List option_exclude = new ArrayList(); + private List option_exclude = new ArrayList(); /** * Option "-breakiterator" - whether to use BreakIterator for @@ -263,7 +233,7 @@ public final class Main * * @param allOptions List of all command line tokens */ - private boolean startDoclet(List allOptions) + private boolean startDoclet(List allOptions) { try @@ -273,7 +243,7 @@ public final class Main Debug.log(1, "loading doclet class..."); - Class docletClass; + Class docletClass; if (null != option_docletpath) { try { @@ -341,14 +311,14 @@ public final class Main //--- Feed the custom command line tokens to the Doclet // stores all recognized options - List options = new LinkedList(); + List options = new LinkedList(); // stores packages and classes defined on the command line - List packageAndClasses = new LinkedList(); + List packageAndClasses = new LinkedList(); - for (Iterator it = allOptions.iterator(); it.hasNext();) + for (Iterator it = allOptions.iterator(); it.hasNext();) { - String option = (String) it.next(); + String option = it.next(); Debug.log(9, "parsing option '" + option + "'"); @@ -448,13 +418,13 @@ public final class Main // check that it exists and find out whether it is a class // or a package - for (Iterator it = option_subpackages.iterator(); it.hasNext();) + for (Iterator it = option_subpackages.iterator(); it.hasNext();) { - String subpackage = (String) it.next(); - Set foundPackages = new LinkedHashSet(); + String subpackage = it.next(); + Set foundPackages = new LinkedHashSet(); - for (Iterator pit = option_sourcepath.iterator(); pit.hasNext(); ) { - File sourceDir = (File)pit.next(); + for (Iterator pit = option_sourcepath.iterator(); pit.hasNext(); ) { + File sourceDir = pit.next(); File packageDir = new File(sourceDir, subpackage.replace('.', File.separatorChar)); findPackages(subpackage, packageDir, foundPackages); } @@ -463,14 +433,14 @@ public final class Main } if (option_all) { - Set foundPackages = new LinkedHashSet(); - for (Iterator pit = option_sourcepath.iterator(); pit.hasNext(); ) { - File sourceDir = (File)pit.next(); + Set foundPackages = new LinkedHashSet(); + for (Iterator pit = option_sourcepath.iterator(); pit.hasNext(); ) { + File sourceDir = pit.next(); findPackages("", sourceDir, foundPackages); } addFoundPackages(null, foundPackages); - for (Iterator packageIt = foundPackages.iterator(); packageIt.hasNext(); ) { - String packageName = (String)packageIt.next(); + for (Iterator packageIt = foundPackages.iterator(); packageIt.hasNext(); ) { + String packageName = packageIt.next(); if (null == packageName) { packageName = ""; } @@ -478,16 +448,16 @@ public final class Main } } - for (Iterator it = packageAndClasses.iterator(); it.hasNext();) + for (Iterator it = packageAndClasses.iterator(); it.hasNext();) { - String classOrPackage = (String) it.next(); + String classOrPackage = it.next(); boolean foundSourceFile = false; if (classOrPackage.endsWith(".java")) { - for (Iterator pit = option_sourcepath.iterator(); pit.hasNext() && !foundSourceFile; ) { - File sourceDir = (File)pit.next(); + for (Iterator pit = option_sourcepath.iterator(); pit.hasNext() && !foundSourceFile; ) { + File sourceDir = pit.next(); File sourceFile = new File(sourceDir, classOrPackage); if (sourceFile.exists() && !sourceFile.isDirectory()) { rootDoc.addSpecifiedSourceFile(sourceFile); @@ -525,8 +495,8 @@ public final class Main //--- Create one file object each for a possible package directory // and a possible class file, and find out if they exist. - List packageDirs = rootDoc.findSourceFiles(classOrPackageRelPath); - List sourceFiles = rootDoc.findSourceFiles(classOrPackageRelPath + ".java"); + List packageDirs = rootDoc.findSourceFiles(classOrPackageRelPath); + List sourceFiles = rootDoc.findSourceFiles(classOrPackageRelPath + ".java"); boolean packageDirExists = !packageDirs.isEmpty(); boolean sourceFileExists = !sourceFiles.isEmpty(); @@ -554,10 +524,10 @@ public final class Main else if (packageDirExists) { - Iterator packageDirIt = packageDirs.iterator(); + Iterator packageDirIt = packageDirs.iterator(); boolean packageDirFound = false; while (packageDirIt.hasNext()) { - File packageDir = (File)packageDirIt.next(); + File packageDir = packageDirIt.next(); if (packageDir.isDirectory()) { rootDoc.addSpecifiedPackageName(classOrPackage); packageDirFound = true; @@ -671,19 +641,19 @@ public final class Main } } - private void addFoundPackages(String subpackage, Set foundPackages) + private void addFoundPackages(String subpackage, Set foundPackages) { if (foundPackages.isEmpty()) { reporter.printWarning("No classes found under subpackage " + subpackage); } else { boolean onePackageAdded = false; - for (Iterator rit = foundPackages.iterator(); rit.hasNext();) { - String foundPackage = (String)rit.next(); + for (Iterator rit = foundPackages.iterator(); rit.hasNext();) { + String foundPackage = rit.next(); boolean excludeThisPackage = false; - for (Iterator eit = option_exclude.iterator(); eit.hasNext();) { - String excludePackage = (String)eit.next(); + for (Iterator eit = option_exclude.iterator(); eit.hasNext();) { + String excludePackage = eit.next(); if (foundPackage.equals(excludePackage) || foundPackage.startsWith(excludePackage + ":")) { excludeThisPackage = true; @@ -817,7 +787,7 @@ public final class Main */ private void findPackages(String subpackage, File packageDir, - Set result) + Set result) { File[] files = packageDir.listFiles(); if (null != files) { @@ -1026,7 +996,7 @@ public final class Main //--- Collect unparsed arguments in array and resolve references // to external argument files. - List arguments = new ArrayList(args.length); + List arguments = new ArrayList(args.length); for (int i = 0; i < args.length; ++i) { @@ -1062,7 +1032,7 @@ public final class Main // Contains objects of type String[], where each entry // specifies an option along with its aguments. - List options = new LinkedList(); + List options = new LinkedList(); //--- This will hold all command line tokens not recognized // to be part of a standard option. @@ -1070,17 +1040,17 @@ public final class Main // Contains objects of type String, where each entry is // one unrecognized token. - List customOptions = new LinkedList(); + List customOptions = new LinkedList(); rootDoc = new RootDocImpl(); reporter = rootDoc.getReporter(); //--- Iterate over all options given on the command line - for (Iterator it = arguments.iterator(); it.hasNext();) + for (Iterator it = arguments.iterator(); it.hasNext();) { - String arg = (String) it.next(); + String arg = it.next(); //--- Check if gjdoc recognizes this option as a standard option // and remember the options' argument count @@ -1129,8 +1099,7 @@ public final class Main //--- Create an array of String arrays from the dynamic array built above - String[][] optionArr = (String[][]) options.toArray(new String[options - .size()][0]); + String[][] optionArr = options.toArray(new String[options.size()][0]); //--- Validate all options and issue warnings/errors @@ -1181,6 +1150,7 @@ public final class Main return reporter.getErrorCount(); } + /* private void addJavaLangClasses() throws IOException { @@ -1201,6 +1171,7 @@ public final class Main } } } + */ /** * Helper class for parsing command line arguments. An instance of this class @@ -1241,7 +1212,7 @@ public final class Main * Initialized only once by method initOptions(). FIXME: Rename to * 'optionProcessors'. */ - private static Map options = null; + private static Map options = null; /** * Initialize all OptionProcessor objects needed to scan/parse command line @@ -1251,7 +1222,7 @@ public final class Main private void initOptions() { - options = new HashMap(); + options = new HashMap(); //--- Put one OptionProcessor object into the map // for each option recognized. @@ -1261,7 +1232,7 @@ public final class Main void process(String[] args) { - option_overview = args[0]; + System.err.println("WARNING: Unsupported option -overview ignored"); } }); options.put("-public", new OptionProcessor(1) @@ -1328,7 +1299,7 @@ public final class Main void process(String[] args) { - option_nowarn = true; + System.err.println("WARNING: Unsupported option -nowarn ignored"); } }); options.put("-source", new OptionProcessor(2) @@ -1412,7 +1383,6 @@ public final class Main void process(String[] args) { - option_verbose = true; System.err.println("WARNING: Unsupported option -verbose ignored"); } }); diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java index acc8128630c5..87ed585fe01c 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java +++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java @@ -1,5 +1,5 @@ /* gnu.classpath.tools.gjdoc.MemberDocImpl - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -170,15 +170,15 @@ public abstract class MemberDocImpl extends ProgramElementDocImpl implements Mem return Main.getInstance().includeAccessLevel(accessLevel); } - public int compareTo(Object o) { - if (o instanceof MemberDocImpl) { - int rc=name().compareTo(((MemberDocImpl)o).name()); + public int compareTo(Doc d) { + if (d instanceof MemberDocImpl) { + int rc=name().compareTo(((MemberDocImpl)d).name()); if (rc==0) - rc=containingClass().qualifiedName().compareTo(((MemberDocImpl)o).containingClass().qualifiedName()); + rc=containingClass().qualifiedName().compareTo(((MemberDocImpl)d).containingClass().qualifiedName()); return rc; } else { - return super.compareTo(o); + return super.compareTo(d); } } diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java index 84960bcf3498..770a62756554 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java +++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java @@ -1,5 +1,5 @@ /* gnu.classpath.tools.gjdoc.PackageDocImpl - Copyright (C) 2001 Free Software Foundation, Inc. + Copyright (C) 2001, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,11 +46,11 @@ class PackageDocImpl extends DocImpl implements GjdocPackageDoc { private String packageName; private File packageDirectory; - private Set allClassesSet = new TreeSet(); - private List ordinaryClassesList = new ArrayList(); - private List exceptionsList = new ArrayList(); - private List interfacesList = new ArrayList(); - private List errorsList = new ArrayList(); + private Set allClassesSet = new TreeSet(); + private List ordinaryClassesList = new ArrayList(); + private List exceptionsList = new ArrayList(); + private List interfacesList = new ArrayList(); + private List errorsList = new ArrayList(); private ClassDoc[] allClasses; private ClassDoc[] ordinaryClasses; @@ -70,8 +70,8 @@ class PackageDocImpl extends DocImpl implements GjdocPackageDoc { } public void resolve() { - for (Iterator it=allClassesSet.iterator(); it.hasNext(); ) { - ClassDocImpl classDoc=(ClassDocImpl)it.next(); + for (Iterator it = allClassesSet.iterator(); it.hasNext(); ) { + ClassDocImpl classDoc = (ClassDocImpl) it.next(); try { classDoc.resolve(); } catch (ParseException e) { @@ -153,9 +153,9 @@ class PackageDocImpl extends DocImpl implements GjdocPackageDoc { return this.errors; } - private ClassDoc[] toClassDocArray(Collection classDocList) + private ClassDoc[] toClassDocArray(Collection classDocList) { - ClassDoc[] result = (ClassDoc[])classDocList.toArray(new ClassDoc[classDocList.size()]); + ClassDoc[] result = classDocList.toArray(new ClassDoc[classDocList.size()]); Arrays.sort(result); return result; } @@ -193,9 +193,9 @@ class PackageDocImpl extends DocImpl implements GjdocPackageDoc { return packageName; } - public int compareTo(Object o) { - if (o!=null && o instanceof PackageDocImpl) - return name().compareTo(((PackageDocImpl)o).name()); + public int compareTo(Doc d) { + if (d !=null && d instanceof PackageDocImpl) + return name().compareTo(((PackageDocImpl)d).name()); else return 0; } diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Parser.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Parser.java index d355b5384cce..af6b6b432a25 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Parser.java +++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Parser.java @@ -1,5 +1,5 @@ /* gnu.classpath.tools.gjdoc.Parser - Copyright (C) 2001, 2005, 2008 Free Software Foundation, Inc. + Copyright (C) 2001, 2005, 2008, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -37,21 +37,38 @@ package gnu.classpath.tools.gjdoc; -import java.io.*; +import com.sun.javadoc.ClassDoc; +import com.sun.javadoc.ConstructorDoc; +import com.sun.javadoc.FieldDoc; +import com.sun.javadoc.MethodDoc; +import com.sun.javadoc.PackageDoc; + +import gnu.classpath.tools.IOToolkit; +import gnu.classpath.tools.NotifyingInputStreamReader; +import gnu.classpath.tools.MalformedInputListener; +import gnu.classpath.tools.MalformedInputEvent; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.io.IOException; +import java.io.Reader; + import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import java.nio.charset.CoderResult; import java.nio.charset.CodingErrorAction; -import java.util.*; -import com.sun.javadoc.*; - -import gnu.classpath.tools.IOToolkit; -import gnu.classpath.tools.NotifyingInputStreamReader; -import gnu.classpath.tools.MalformedInputListener; -import gnu.classpath.tools.MalformedInputEvent; +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Set; +import java.util.Stack; class IgnoredFileParseException extends ParseException { @@ -356,11 +373,11 @@ import gnu.classpath.tools.MalformedInputEvent; if (endIndex-startIndex<=1) return endIndex; //assert (parser.ctx!=null); - Collection fields=FieldDocImpl.createFromSource(parser.ctx.classDoc, - parser.ctx.classDoc.containingPackage(), - source, startIndex, endIndex); + Collection fields = FieldDocImpl.createFromSource(parser.ctx.classDoc, + parser.ctx.classDoc.containingPackage(), + source, startIndex, endIndex); - for (Iterator it=fields.iterator(); it.hasNext(); ) { + for (Iterator it=fields.iterator(); it.hasNext(); ) { FieldDocImpl field=(FieldDocImpl)it.next(); boolean fieldHasSerialTag=!field.isTransient() && !field.isStatic(); //field.hasSerialTag(); if ((field.isIncluded() || fieldHasSerialTag) && parser.getAddComments()) { @@ -408,27 +425,26 @@ import gnu.classpath.tools.MalformedInputEvent; parser.setLastComment(null); if (execDoc.isMethod()) { - parser.ctx.methodList.add(execDoc); - if (execDoc.isIncluded()) { - parser.ctx.filteredMethodList.add(execDoc); + MethodDoc methDoc = (MethodDoc) execDoc; + parser.ctx.methodList.add(methDoc); + if (methDoc.isIncluded()) { + parser.ctx.filteredMethodList.add(methDoc); } - } - else { - parser.ctx.constructorList.add(execDoc); - if (execDoc.isIncluded()) { - parser.ctx.filteredConstructorList.add(execDoc); - } - } - - if (execDoc.isMethod() - && (execDoc.name().equals("readObject") - || execDoc.name().equals("writeObject") - || execDoc.name().equals("readExternal") - || execDoc.name().equals("writeExternal") - || execDoc.name().equals("readResolve"))) { + if (methDoc.name().equals("readObject") + || methDoc.name().equals("writeObject") + || methDoc.name().equals("readExternal") + || methDoc.name().equals("writeExternal") + || methDoc.name().equals("readResolve")) { // FIXME: add readExternal here? - parser.ctx.maybeSerMethodList.add(execDoc); + parser.ctx.maybeSerMethodList.add(methDoc); + } + } else { + ConstructorDoc constDoc = (ConstructorDoc) execDoc; + parser.ctx.constructorList.add(constDoc); + if (constDoc.isIncluded()) { + parser.ctx.filteredConstructorList.add(constDoc); + } } return endIndex; @@ -764,7 +780,7 @@ public class Parser { return processedFiles.size(); } - static Set processedFiles = new HashSet(); + static Set processedFiles = new HashSet(); ClassDocImpl processSourceFile(File file, boolean addComments, String encoding, String expectedPackageName) @@ -803,8 +819,8 @@ public class Parser { try { parse(source, 0, sourceLevelComponents); - ClassDoc[] importedClasses=(ClassDoc[])importedClassesList.toArray(new ClassDoc[0]); - PackageDoc[] importedPackages=(PackageDoc[])importedPackagesList.toArray(new PackageDoc[0]); + ClassDoc[] importedClasses = importedClassesList.toArray(new ClassDoc[importedClassesList.size()]); + PackageDoc[] importedPackages = importedPackagesList.toArray(new PackageDoc[importedPackagesList.size()]); if (Main.DESCEND_IMPORTED) { for (int i=0; i it=importedStringList.iterator(); it.hasNext(); ) { + importedClassesList.add(new ClassDocProxy(it.next(), classDoc)); } } - classDoc.setImportedClasses((ClassDoc[])importedClassesList.toArray(new ClassDoc[0])); + classDoc.setImportedClasses(importedClassesList.toArray(new ClassDoc[importedClassesList.size()])); currentPackage.addClass(classDoc); @@ -945,26 +961,24 @@ public class Parser { //Debug.log(9,"ctx="+ctx); } - private Doc[] toArray(List list, Doc[] template) + private T[] toArray(List list, T[] template) { - Doc[] result = (Doc[])list.toArray(template); - return result; + return list.toArray(template); } void classClosed() throws ParseException, IOException { - ctx.classDoc.setFields((FieldDoc[])toArray(ctx.fieldList, - new FieldDoc[0])); - ctx.classDoc.setFilteredFields((FieldDoc[])toArray(ctx.filteredFieldList, - new FieldDoc[0])); - ctx.classDoc.setSerializableFields((FieldDoc[])toArray(ctx.sfieldList, new FieldDoc[0])); - ctx.classDoc.setMethods((MethodDoc[])toArray(ctx.methodList, new MethodDoc[0])); - ctx.classDoc.setFilteredMethods((MethodDoc[])toArray(ctx.filteredMethodList, new MethodDoc[0])); + ctx.classDoc.setFields(toArray(ctx.fieldList,new FieldDoc[ctx.fieldList.size()])); + ctx.classDoc.setFilteredFields(toArray(ctx.filteredFieldList,new FieldDoc[ctx.filteredFieldList.size()])); + ctx.classDoc.setSerializableFields(toArray(ctx.sfieldList, new FieldDoc[ctx.sfieldList.size()])); + ctx.classDoc.setMethods(toArray(ctx.methodList, new MethodDoc[ctx.methodList.size()])); + ctx.classDoc.setFilteredMethods(toArray(ctx.filteredMethodList, new MethodDoc[ctx.filteredMethodList.size()])); ctx.classDoc.setMaybeSerMethodList(ctx.maybeSerMethodList); - ctx.classDoc.setConstructors((ConstructorDoc[])toArray(ctx.constructorList, new ConstructorDoc[0])); - ctx.classDoc.setFilteredConstructors((ConstructorDoc[])toArray(ctx.filteredConstructorList, new ConstructorDoc[0])); - - ctx.classDoc.setInnerClasses((ClassDocImpl[])toArray(ctx.innerClassesList, new ClassDocImpl[0])); - ctx.classDoc.setFilteredInnerClasses((ClassDocImpl[])toArray(ctx.filteredInnerClassesList, new ClassDocImpl[0])); + ctx.classDoc.setConstructors(toArray(ctx.constructorList, new ConstructorDoc[ctx.constructorList.size()])); + ctx.classDoc.setFilteredConstructors(toArray(ctx.filteredConstructorList, + new ConstructorDoc[ctx.filteredConstructorList.size()])); + ctx.classDoc.setInnerClasses(toArray(ctx.innerClassesList, new ClassDocImpl[ctx.innerClassesList.size()])); + ctx.classDoc.setFilteredInnerClasses(toArray(ctx.filteredInnerClassesList, + new ClassDocImpl[ctx.filteredInnerClassesList.size()])); ctx.classDoc.setBoilerplateComment(boilerplateComment); Main.getRootDoc().addClassDoc(ctx.classDoc); @@ -993,16 +1007,16 @@ public class Parser { class Context { Context(ClassDocImpl classDoc) { this.classDoc=classDoc; } ClassDocImpl classDoc = null; - List fieldList = new LinkedList(); - List filteredFieldList = new LinkedList(); - List sfieldList = new LinkedList(); - List methodList = new LinkedList(); - List filteredMethodList = new LinkedList(); - List maybeSerMethodList = new LinkedList(); - List constructorList = new LinkedList(); - List filteredConstructorList = new LinkedList(); - List innerClassesList = new LinkedList(); - List filteredInnerClassesList = new LinkedList(); + List fieldList = new LinkedList(); + List filteredFieldList = new LinkedList(); + List sfieldList = new LinkedList(); + List methodList = new LinkedList(); + List filteredMethodList = new LinkedList(); + List maybeSerMethodList = new LinkedList(); + List constructorList = new LinkedList(); + List filteredConstructorList = new LinkedList(); + List innerClassesList = new LinkedList(); + List filteredInnerClassesList = new LinkedList(); } File currentFile = null; @@ -1016,10 +1030,10 @@ public class Parser { List allClassesList = new LinkedList(); List interfacesList = new LinkedList(); - List importedClassesList = new LinkedList(); - List importedStringList = new LinkedList(); - List importedPackagesList = new LinkedList(); - List importedStatementList = new LinkedList(); + List importedClassesList = new LinkedList(); + List importedStringList = new LinkedList(); + List importedPackagesList = new LinkedList(); + List importedStatementList = new LinkedList(); List referencedClassesList = new LinkedList(); diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java index 09d1be73b9e4..dd76ffada96b 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java +++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java @@ -1,5 +1,5 @@ /* gnu.classpath.tools.gjdoc.RootDocImpl - Copyright (C) 2001, 2007 Free Software Foundation, Inc. + Copyright (C) 2001, 2007, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -409,11 +409,11 @@ public class RootDocImpl } } - List findSourceFiles(String relPath) { + List findSourceFiles(String relPath) { - List result = new LinkedList(); - for (Iterator it = sourcePath.iterator(); it.hasNext(); ) { - File path = (File)it.next(); + List result = new LinkedList(); + for (Iterator it = sourcePath.iterator(); it.hasNext(); ) { + File path = it.next(); File file = new File(path, relPath); if (file.exists()) { result.add(file); diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java index d12da3519b10..efa88603c66e 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java +++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java @@ -1,5 +1,5 @@ /* gnu.classpath.tools.gjdoc.expr.Evaluator - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -37,6 +37,8 @@ exception statement from your version. */ package gnu.classpath.tools.gjdoc.expr; +import com.sun.javadoc.FieldDoc; + import java.io.StringReader; import java.math.BigInteger; import antlr.RecognitionException; @@ -68,7 +70,7 @@ public class Evaluator * array access) or references unknown static fields. */ public static Object evaluate(String expression, - Set visitedFields, + Set visitedFields, EvaluatorEnvironment environment) throws IllegalExpressionException { diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java index cf4df8938b40..cdb1f90488d6 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java +++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java @@ -1,5 +1,5 @@ /* gnu.classpath.tools.gjdoc.expr.EvaluatorEnvironment - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -37,10 +37,12 @@ exception statement from your version. */ package gnu.classpath.tools.gjdoc.expr; +import com.sun.javadoc.FieldDoc; + import java.util.Set; public interface EvaluatorEnvironment { - public Object getValue(String identifier, Set visitedFields) + public Object getValue(String identifier, Set visitedFields) throws IllegalExpressionException, UnknownIdentifierException; } diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java index 92382c41a70d..4e0ef0ea4d9a 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java +++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java @@ -1,5 +1,5 @@ /* gnu.classpath.tools.gjdoc.expr.Type - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -51,9 +51,9 @@ class Type public static final Type STRING = new Type(String.class); public static final Type NULL = new Type(null); - private Class clazz; + private Class clazz; - private Type(Class clazz) + private Type(Class clazz) { this.clazz = clazz; } diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java index 9ac103c75a1c..790407bae182 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java @@ -1,5 +1,5 @@ /* ClassRmicCompiler.java -- - Copyright (c) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005 + Copyright (c) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -76,26 +76,23 @@ public class ClassRmicCompiler { private String[] args; private int next; - private List errors = new ArrayList(); - private boolean keep = false; + private List errors = new ArrayList(); private boolean need11Stubs = true; private boolean need12Stubs = true; - private boolean compile = true; private boolean verbose; private boolean noWrite; private String destination; - private String classpath; private ClassLoader loader; private int errorCount = 0; - private Class clazz; + private Class clazz; private String classname; private String classInternalName; private String fullclassname; private MethodRef[] remotemethods; private String stubname; private String skelname; - private List mRemoteInterfaces; + private List> mRemoteInterfaces; /** * @return true if run was successful @@ -126,9 +123,9 @@ public class ClassRmicCompiler } if (errors.size() > 0) { - for (Iterator it = errors.iterator(); it.hasNext(); ) + for (Iterator it = errors.iterator(); it.hasNext(); ) { - Exception ex = (Exception) it.next(); + Exception ex = it.next(); logError(ex); } } @@ -146,7 +143,7 @@ public class ClassRmicCompiler remotemethods = null; stubname = null; skelname = null; - mRemoteInterfaces = new ArrayList(); + mRemoteInterfaces = new ArrayList>(); analyzeClass(cls); generateStub(); @@ -175,7 +172,7 @@ public class ClassRmicCompiler */ public Exception getException() { - return errors.size() == 0 ? null : (Exception) errors.get(0); + return errors.size() == 0 ? null : errors.get(0); } private void findClass() @@ -202,7 +199,7 @@ public class ClassRmicCompiler } } - private static Type[] typeArray(Class[] cls) + private static Type[] typeArray(Class[] cls) { Type[] t = new Type[cls.length]; for (int i = 0; i < cls.length; i++) @@ -231,11 +228,11 @@ public class ClassRmicCompiler private static final String forName = "class$"; - private static Object param(Method m, int argIndex) + private static List param(Method m, int argIndex) { - List l = new ArrayList(); + List l = new ArrayList(); l.add(m); - l.add(new Integer(argIndex)); + l.add(Integer.valueOf(argIndex)); return l; } @@ -283,10 +280,10 @@ public class ClassRmicCompiler cv.visitMaxs(-1, -1); } - private void generateClassConstant(MethodVisitor cv, Class cls) { + private void generateClassConstant(MethodVisitor cv, Class cls) { if (cls.isPrimitive()) { - Class boxCls; + Class boxCls; if (cls.equals(Boolean.TYPE)) boxCls = Boolean.class; else if (cls.equals(Character.TYPE)) @@ -321,7 +318,7 @@ public class ClassRmicCompiler new Type[] { Type.getType(String.class) })); } - private void generateClassArray(MethodVisitor code, Class[] classes) + private void generateClassArray(MethodVisitor code, Class[] classes) { code.visitLdcInsn(new Integer(classes.length)); code.visitTypeInsn(Opcodes.ANEWARRAY, typeArg(Class.class)); @@ -352,7 +349,7 @@ public class ClassRmicCompiler desc.append(m.getName() + "("); // signature - Class[] sig = m.getParameterTypes(); + Class[] sig = m.getParameterTypes(); for (int j = 0; j < sig.length; j++) { desc.append(getPrettyName(sig[j])); @@ -418,7 +415,6 @@ public class ClassRmicCompiler throws IOException { stubname = fullclassname + "_Stub"; - String stubclassname = classname + "_Stub"; File file = new File((destination == null ? "." : destination) + File.separator + stubname.replace('.', File.separatorChar) @@ -433,7 +429,7 @@ public class ClassRmicCompiler Type.getType(RemoteStub.class).getInternalName(); String[] remoteInternalNames = - internalNameArray((Class[]) mRemoteInterfaces.toArray(new Class[] {})); + internalNameArray(mRemoteInterfaces.toArray(new Class[mRemoteInterfaces.size()])); stub.visit (Opcodes.V1_2, Opcodes.ACC_PUBLIC + Opcodes.ACC_FINAL, classInternalName, null, superInternalName, remoteInternalNames); @@ -601,10 +597,10 @@ public class ClassRmicCompiler for (int i = 0; i < remotemethods.length; i++) { Method m = remotemethods[i].meth; - Class[] sig = m.getParameterTypes(); - Class returntype = m.getReturnType(); - Class[] except = sortExceptions - ((Class[]) remotemethods[i].exceptions.toArray(new Class[0])); + Class[] sig = m.getParameterTypes(); + Class returntype = m.getReturnType(); + Class[] except = sortExceptions + (remotemethods[i].exceptions.toArray(new Class[remotemethods[i].exceptions.size()])); MethodVisitor code = stub.visitMethod (Opcodes.ACC_PUBLIC, @@ -664,9 +660,8 @@ public class ClassRmicCompiler for (int j = 0; j < sig.length; j++) { - int size = size(sig[j]); int insn = loadOpcode(sig[j]); - Class box = sig[j].isPrimitive() ? box(sig[j]) : null; + Class box = sig[j].isPrimitive() ? box(sig[j]) : null; code.visitVarInsn(Opcodes.ALOAD, var.get("argArray")); code.visitLdcInsn(new Integer(j)); @@ -695,7 +690,7 @@ public class ClassRmicCompiler } // push remote operation opcode - code.visitLdcInsn(new Long(remotemethods[i].hash)); + code.visitLdcInsn(Long.valueOf(remotemethods[i].hash)); code.visitMethodInsn (Opcodes.INVOKEINTERFACE, Type.getInternalName(RemoteRef.class), @@ -710,7 +705,7 @@ public class ClassRmicCompiler if (! returntype.equals(Void.TYPE)) { int retcode = returnOpcode(returntype); - Class boxCls = + Class boxCls = returntype.isPrimitive() ? box(returntype) : null; code.visitTypeInsn (Opcodes.CHECKCAST, typeArg(boxCls == null ? returntype : boxCls)); @@ -797,7 +792,7 @@ public class ClassRmicCompiler // get j'th arg to remote method code.visitVarInsn(loadOpcode(sig[j]), var.get(param(m, j))); - Class argCls = + Class argCls = sig[j].isPrimitive() ? sig[j] : Object.class; // out.writeFoo @@ -872,7 +867,7 @@ public class ClassRmicCompiler Type.getMethodDescriptor (Type.getType(ObjectInput.class), new Type[] {})); - Class readCls = + Class readCls = returntype.isPrimitive() ? returntype : Object.class; code.visitMethodInsn (Opcodes.INVOKEINTERFACE, @@ -936,8 +931,6 @@ public class ClassRmicCompiler Type.getType(Exception.class) })); code.visitInsn(Opcodes.ATHROW); - Label endReturnTryCatch = new Label(); - // catch IOException code.visitTryCatchBlock (beginReturnTryCatch, handler, handler, @@ -1024,7 +1017,6 @@ public class ClassRmicCompiler private void generateSkel() throws IOException { skelname = fullclassname + "_Skel"; - String skelclassname = classname + "_Skel"; File file = new File(destination == null ? "" : destination + File.separator + skelname.replace('.', File.separatorChar) @@ -1119,7 +1111,7 @@ public class ClassRmicCompiler { // assign opnum if hash matches supplied hash dispatch.visitVarInsn(Opcodes.LLOAD, var.get("hash")); - dispatch.visitLdcInsn(new Long(remotemethods[i].hash)); + dispatch.visitLdcInsn(Long.valueOf(remotemethods[i].hash)); Label notIt = new Label(); dispatch.visitInsn(Opcodes.LCMP); dispatch.visitJumpInsn(Opcodes.IFNE, notIt); @@ -1214,7 +1206,7 @@ public class ClassRmicCompiler private void generateMethodSkel(MethodVisitor cv, Method m, Variables var) { - Class[] sig = m.getParameterTypes(); + Class[] sig = m.getParameterTypes(); Label readArgs = new Label(); cv.visitLabel(readArgs); @@ -1235,7 +1227,7 @@ public class ClassRmicCompiler // dup input stream cv.visitVarInsn(Opcodes.ALOAD, var.get("objectinput")); - Class readCls = sig[i].isPrimitive() ? sig[i] : Object.class; + Class readCls = sig[i].isPrimitive() ? sig[i] : Object.class; // in.readFoo() cv.visitMethodInsn @@ -1314,7 +1306,7 @@ public class ClassRmicCompiler (Opcodes.INVOKEVIRTUAL, Type.getInternalName(clazz), m.getName(), Type.getMethodDescriptor(m)); - Class returntype = m.getReturnType(); + Class returntype = m.getReturnType(); if (! returntype.equals(Void.TYPE)) { cv.visitVarInsn @@ -1338,7 +1330,7 @@ public class ClassRmicCompiler { // out.writeFoo(result) cv.visitVarInsn(loadOpcode(returntype), var.deallocate("result")); - Class writeCls = returntype.isPrimitive() ? returntype : Object.class; + Class writeCls = returntype.isPrimitive() ? returntype : Object.class; cv.visitMethodInsn (Opcodes.INVOKEINTERFACE, Type.getInternalName(ObjectOutput.class), @@ -1370,7 +1362,7 @@ public class ClassRmicCompiler Type.getInternalName(IOException.class)); } - private static String typeArg(Class cls) + private static String typeArg(Class cls) { if (cls.isArray()) return Type.getDescriptor(cls); @@ -1378,7 +1370,7 @@ public class ClassRmicCompiler return Type.getInternalName(cls); } - private static String readMethod(Class cls) + private static String readMethod(Class cls) { if (cls.equals(Void.TYPE)) throw new IllegalArgumentException("can not read void"); @@ -1406,7 +1398,7 @@ public class ClassRmicCompiler return method; } - private static String writeMethod(Class cls) + private static String writeMethod(Class cls) { if (cls.equals(Void.TYPE)) throw new IllegalArgumentException("can not read void"); @@ -1434,7 +1426,7 @@ public class ClassRmicCompiler return method; } - private static int returnOpcode(Class cls) + private static int returnOpcode(Class cls) { int returncode; if (cls.equals(Boolean.TYPE)) @@ -1461,7 +1453,7 @@ public class ClassRmicCompiler return returncode; } - private static int loadOpcode(Class cls) + private static int loadOpcode(Class cls) { if (cls.equals(Void.TYPE)) throw new IllegalArgumentException("can not load void"); @@ -1489,7 +1481,7 @@ public class ClassRmicCompiler return loadcode; } - private static int storeOpcode(Class cls) + private static int storeOpcode(Class cls) { if (cls.equals(Void.TYPE)) throw new IllegalArgumentException("can not load void"); @@ -1517,7 +1509,7 @@ public class ClassRmicCompiler return storecode; } - private static String unboxMethod(Class primitive) + private static String unboxMethod(Class primitive) { if (! primitive.isPrimitive()) throw new IllegalArgumentException("can not unbox nonprimitive"); @@ -1545,12 +1537,12 @@ public class ClassRmicCompiler return method; } - public static Class box(Class cls) + public static Class box(Class cls) { if (! cls.isPrimitive()) throw new IllegalArgumentException("can only box primitive"); - Class box; + Class box; if (cls.equals(Boolean.TYPE)) box = Boolean.class; else if (cls.equals(Byte.TYPE)) @@ -1573,7 +1565,7 @@ public class ClassRmicCompiler return box; } - private static int size(Class cls) { + private static int size(Class cls) { if (cls.equals(Long.TYPE) || cls.equals(Double.TYPE)) return 2; else @@ -1583,7 +1575,7 @@ public class ClassRmicCompiler /** * Sort exceptions so the most general go last. */ - private Class[] sortExceptions(Class[] except) + private Class[] sortExceptions(Class[] except) { for (int i = 0; i < except.length; i++) { @@ -1591,7 +1583,7 @@ public class ClassRmicCompiler { if (except[i].isAssignableFrom(except[j])) { - Class tmp = except[i]; + Class tmp = except[i]; except[i] = except[j]; except[j] = tmp; } @@ -1605,14 +1597,12 @@ public class ClassRmicCompiler boolean noWrite, boolean verbose, boolean force, String classpath, String bootclasspath, String extdirs, String outputDirectory) { - this.keep = keep; this.need11Stubs = need11Stubs; this.need12Stubs = need12Stubs; this.verbose = verbose; this.noWrite = noWrite; // Set up classpath. - this.classpath = classpath; StringTokenizer st = new StringTokenizer(classpath, File.pathSeparator); URL[] u = new URL[st.countTokens()]; @@ -1638,15 +1628,15 @@ public class ClassRmicCompiler private void findRemoteMethods() throws RMICException { - List rmeths = new ArrayList(); - for (Class cur = clazz; cur != null; cur = cur.getSuperclass()) + List rmeths = new ArrayList(); + for (Class cur = clazz; cur != null; cur = cur.getSuperclass()) { - Class[] interfaces = cur.getInterfaces(); + Class[] interfaces = cur.getInterfaces(); for (int i = 0; i < interfaces.length; i++) { if (java.rmi.Remote.class.isAssignableFrom(interfaces[i])) { - Class remoteInterface = interfaces[i]; + Class remoteInterface = interfaces[i]; if (verbose) System.out.println ("[implements " + remoteInterface.getName() + "]"); @@ -1684,11 +1674,11 @@ public class ClassRmicCompiler boolean[] skip = new boolean[rmeths.size()]; for (int i = 0; i < skip.length; i++) skip[i] = false; - List methrefs = new ArrayList(); + List methrefs = new ArrayList(); for (int i = 0; i < rmeths.size(); i++) { if (skip[i]) continue; - Method current = (Method) rmeths.get(i); + Method current = rmeths.get(i); MethodRef ref = new MethodRef(current); for (int j = i+1; j < rmeths.size(); j++) { @@ -1703,7 +1693,7 @@ public class ClassRmicCompiler } // Convert into a MethodRef array and sort them - remotemethods = (MethodRef[]) + remotemethods = methrefs.toArray(new MethodRef[methrefs.size()]); Arrays.sort(remotemethods); } @@ -1748,7 +1738,7 @@ public class ClassRmicCompiler { Method meth; long hash; - List exceptions; + List> exceptions; private String sig; MethodRef(Method m) { @@ -1784,12 +1774,12 @@ public class ClassRmicCompiler return true; } - private static List removeSubclasses(Class[] classes) + private static List> removeSubclasses(Class[] classes) { - List list = new ArrayList(); + List> list = new ArrayList>(); for (int i = 0; i < classes.length; i++) { - Class candidate = classes[i]; + Class candidate = classes[i]; boolean add = true; for (int j = 0; j < classes.length; j++) { @@ -1806,17 +1796,17 @@ public class ClassRmicCompiler public void intersectExceptions(Method m) { - List incoming = removeSubclasses(m.getExceptionTypes()); + List> incoming = removeSubclasses(m.getExceptionTypes()); - List updated = new ArrayList(); + List> updated = new ArrayList>(); for (int i = 0; i < exceptions.size(); i++) { - Class outer = (Class) exceptions.get(i); + Class outer = exceptions.get(i); boolean addOuter = false; for (int j = 0; j < incoming.size(); j++) { - Class inner = (Class) incoming.get(j); + Class inner = incoming.get(j); if (inner.equals(outer) || inner.isAssignableFrom(outer)) addOuter = true; diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java index 868fc758ee36..02f72441a17f 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java @@ -1,5 +1,5 @@ /* Main.java -- RMI stub generator. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -236,7 +236,7 @@ public class Main System.exit(1); } - ArrayList backends = new ArrayList(); + ArrayList backends = new ArrayList(); // FIXME: need an IDL RmicBackend // FIXME: need a ClassGiopRmicCompiler RmicBackend @@ -262,7 +262,7 @@ public class Main for (int i = 0; i < backends.size(); i++) { - RmicBackend b = (RmicBackend) backends.get(i); + RmicBackend b = backends.get(i); b.setup(keep, need11Stubs, need12Stubs, iiop, poa, false, warnings, noWrite, verbose, force, classpath, diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java index e02f086efdc4..d533f1220556 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java @@ -86,7 +86,7 @@ public class RmiMethodGenerator { StringBuilder b = new StringBuilder(); - Class[] args = method.getParameterTypes(); + Class[] args = method.getParameterTypes(); for (int i = 0; i < args.length; i++) { @@ -108,7 +108,7 @@ public class RmiMethodGenerator { StringBuilder b = new StringBuilder(); - Class[] args = method.getParameterTypes(); + Class[] args = method.getParameterTypes(); for (int i = 0; i < args.length; i++) { @@ -128,7 +128,7 @@ public class RmiMethodGenerator { StringBuilder b = new StringBuilder(); - Class[] args = method.getExceptionTypes(); + Class[] args = method.getExceptionTypes(); for (int i = 0; i < args.length; i++) { @@ -184,7 +184,7 @@ public class RmiMethodGenerator public String getStaticMethodDeclarations() { StringBuilder b = new StringBuilder(); - Class[] args = method.getParameterTypes(); + Class[] args = method.getParameterTypes(); for (int i = 0; i < args.length; i++) { diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java index dd35c2bd5a05..cf1b0b67925b 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java @@ -1,5 +1,5 @@ /* SourceGiopRmicCompiler -- Central GIOP-based RMI stub and tie compiler class. - Copyright (C) 2006, 2008 Free Software Foundation + Copyright (C) 2006, 2008, 2012 Free Software Foundation This file is part of GNU Classpath. @@ -50,7 +50,7 @@ import java.util.TreeSet; * @author Audrius Meskauskas, Lithuania (audriusa@Bioinformatics.org) */ public class SourceGiopRmicCompiler - extends Generator implements Comparator, RmicBackend + extends Generator implements Comparator, RmicBackend { /** The package name. */ protected String packag; @@ -74,17 +74,18 @@ public class SourceGiopRmicCompiler /** * The Remote's, implemented by this class. */ - protected Collection implementedRemotes = new HashSet(); + protected Collection> implementedRemotes = new HashSet>(); /** * The extra classes that must be imported. */ - protected Collection extraImports = new HashSet(); + protected Collection extraImports = new HashSet(); /** * The methods we must implement. */ - protected Collection methods = new HashSet(); + protected Collection methods = + new HashSet(); /** * The map of all code generator variables. @@ -228,7 +229,7 @@ public class SourceGiopRmicCompiler * @param remote * the class to compile. */ - public synchronized void compile(Class remote) + public synchronized void compile(Class remote) { reset(); String s; @@ -261,7 +262,7 @@ public class SourceGiopRmicCompiler + implName); // Get the implemented remotes. - Class[] interfaces = remote.getInterfaces(); + Class[] interfaces = remote.getInterfaces(); for (int i = 0; i < interfaces.length; i++) { @@ -277,11 +278,11 @@ public class SourceGiopRmicCompiler vars.put("#idList", getIdList(implementedRemotes)); // Collect and process methods. - Iterator iter = implementedRemotes.iterator(); + Iterator> iter = implementedRemotes.iterator(); while (iter.hasNext()) { - Class c = (Class) iter.next(); + Class c = iter.next(); Method[] m = c.getMethods(); // Check if throws RemoteException. @@ -374,7 +375,7 @@ public class SourceGiopRmicCompiler * the interface, for that the repository Id must be created. * @return the repository id */ - public String getId(Class c) + public String getId(Class c) { return "RMI:" + c.getName() + ":0000000000000000"; } @@ -386,25 +387,25 @@ public class SourceGiopRmicCompiler * the collection of interfaces * @return the fully formatted string array. */ - public String getIdList(Collection remotes) + public String getIdList(Collection> remotes) { StringBuilder b = new StringBuilder(); // Keep the Ids sorted, ensuring, that the same order will be preserved // between compilations. - TreeSet sortedIds = new TreeSet(); + TreeSet sortedIds = new TreeSet(); - Iterator iter = remotes.iterator(); + Iterator> iter = remotes.iterator(); while (iter.hasNext()) { - sortedIds.add(getId((Class) iter.next())); + sortedIds.add(getId(iter.next())); } - iter = sortedIds.iterator(); - while (iter.hasNext()) + Iterator iterIds = sortedIds.iterator(); + while (iterIds.hasNext()) { - b.append(" \"" + iter.next() + "\""); - if (iter.hasNext()) + b.append(" \"" + iterIds.next() + "\""); + if (iterIds.hasNext()) b.append(", \n"); } return b.toString(); @@ -421,10 +422,10 @@ public class SourceGiopRmicCompiler // Generate methods. StringBuilder b = new StringBuilder(); - Iterator iter = methods.iterator(); + Iterator iter = methods.iterator(); while (iter.hasNext()) { - AbstractMethodGenerator m = (AbstractMethodGenerator) iter.next(); + AbstractMethodGenerator m = iter.next(); b.append(m.generateStubMethod()); } @@ -474,7 +475,7 @@ public class SourceGiopRmicCompiler HashFinder hashFinder = new HashFinder(); // Find the hash character position: - Iterator iter = methods.iterator(); + Iterator iter = methods.iterator(); String[] names = new String[methods.size()]; int p = 0; @@ -489,7 +490,8 @@ public class SourceGiopRmicCompiler vars.put("#hashCharPos", Integer.toString(hashCharPosition)); - ArrayList sortedMethods = new ArrayList(methods); + ArrayList sortedMethods = + new ArrayList(methods); Collections.sort(sortedMethods, this); iter = sortedMethods.iterator(); @@ -515,10 +517,10 @@ public class SourceGiopRmicCompiler return output; } - public int compare(Object a, Object b) + public int compare(AbstractMethodGenerator ag1, AbstractMethodGenerator ag2) { - MethodGenerator g1 = (MethodGenerator) a; - MethodGenerator g2 = (MethodGenerator) b; + MethodGenerator g1 = (MethodGenerator) ag1; + MethodGenerator g2 = (MethodGenerator) ag2; return g1.getHashChar() - g2.getHashChar(); } @@ -530,12 +532,12 @@ public class SourceGiopRmicCompiler */ protected String getImportStatements() { - TreeSet imp = new TreeSet(); + TreeSet imp = new TreeSet(); - Iterator it = extraImports.iterator(); + Iterator it = extraImports.iterator(); while (it.hasNext()) { - String ic = it.next().toString(); + String ic = it.next(); imp.add("import " + ic + ";\n"); } diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/Variables.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/Variables.java index 1fc6a8095183..14ba6493ae08 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmic/Variables.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/Variables.java @@ -1,6 +1,5 @@ /* Variables.java -- - Copyright (c) 2004, 2005 - Free Software Foundation, Inc. + Copyright (c) 2004, 2005, 2012 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -44,10 +43,10 @@ import java.util.Iterator; class Variables { - private final HashSet free = new HashSet(); - private final HashMap names = new HashMap(); - private final HashSet wides = new HashSet(); - private final HashSet declared = new HashSet(); + private final HashSet free = new HashSet(); + private final HashMap names = new HashMap(); + private final HashSet wides = new HashSet(); + private final HashSet declared = new HashSet(); private boolean allocated = false; public void declare(Object name) @@ -77,7 +76,7 @@ class Variables { // total allocation size is first unallocated slot int i = free.size() + names.size() + wides.size(); - names.put(name, new Integer(i)); + names.put(name, Integer.valueOf(i)); if (size == 2) wides.add(name); return i; } @@ -103,10 +102,10 @@ class Variables if (size == 2) { // look for consecutive free slots - for (Iterator it = free.iterator(); it.hasNext(); ) + for (Iterator it = free.iterator(); it.hasNext(); ) { - Integer i = (Integer) it.next(); - Integer next = new Integer(i.intValue() + 1); + Integer i = it.next(); + Integer next = Integer.valueOf(i.intValue() + 1); if (free.contains(next)) { free.remove(i); @@ -119,7 +118,7 @@ class Variables } else if (free.size() > 0) { - Integer i = (Integer) free.iterator().next(); + Integer i = free.iterator().next(); free.remove(i); names.put(name, i); return i.intValue(); @@ -136,11 +135,11 @@ class Variables if (declared.contains(name)) throw new IllegalStateException(name + " can't be deallocated"); - Integer i = (Integer) names.get(name); + Integer i = names.get(name); names.remove(name); free.add(i); if (wides.remove(name)) - free.add(new Integer(i.intValue() + 1)); + free.add(Integer.valueOf(i.intValue() + 1)); return i.intValue(); } @@ -149,6 +148,6 @@ class Variables if (! names.containsKey(name)) throw new IllegalArgumentException("no variable " + name); - return ((Integer) names.get(name)).intValue(); + return names.get(name).intValue(); } } diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/dbcentx.mod b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/dbcentx.mod index 144d38deac48..5d11345accd6 100644 --- a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/dbcentx.mod +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/dbcentx.mod @@ -7,7 +7,7 @@ Corporation, Norman Walsh, and the Organization for the Advancement of Structured Information Standards (OASIS). - $Id: dbcentx.mod,v 1.1 2008/05/27 19:26:05 jsumali Exp $ + $Id: dbcentx.mod,v 1.1 2008-05-27 19:26:05 jsumali Exp $ Permission to use, copy, modify and distribute the DocBook XML DTD and its accompanying documentation for any purpose and without fee diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsa.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsa.ent index c03b1c91e9cc..beb34bfda83c 100644 --- a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsa.ent +++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsa.ent @@ -5,7 +5,7 @@